チェックサムとは何ですか(そしてなぜ気にする必要がありますか)?

チェックサムは、データのエラーをチェックするために使用される一連の数字と文字です。元のファイルのチェックサムがわかっている場合は、チェックサムユーティリティを使用して、コピーが同一であることを確認できます。

チェックサムの説明

チェックサムを生成するには、そのファイルをアルゴリズムに通すプログラムを実行します。これに使用される一般的なアルゴリズムには、MD5、SHA-1、SHA-256、およびSHA-512が含まれます。

このアルゴリズムは、入力を受け取り、固定長の文字列(数字と文字のシーケンス)を生成する暗号化ハッシュ関数を使用します。入力ファイルは、1MBの小さなファイルでも4GBの大きなファイルでもかまいませんが、どちらの場合も、同じ長さのチェックサムになります。チェックサムは「ハッシュ」と呼ばれることもあります。

ファイルに小さな変更を加えると、外観が大きく異なるチェックサムが生成されます。たとえば、ほぼ同じ2つの異なるテキストファイルを作成しましたが、一方には感嘆符があり、もう一方にはピリオドがあります。Windows 10の組み込みのチェックサムユーティリティを実行した後、非常に異なるチェックサムが表示されました。基になるファイルの1文字の違いにより、非常に異なる外観のチェックサムが生成されます。

チェックサムが役立つ場合

チェックサムを使用して、ファイルやその他のデータで、送信または保存中に発生したエラーをチェックできます。たとえば、ネットワークの問題が原因でファイルが正しくダウンロードされなかったり、ハードドライブの問題が原因でディスク上のファイルが破損したりする可能性があります。

元のファイルのチェックサムがわかっている場合は、そのファイルでチェックサムまたはハッシュユーティリティを実行できます。結果のチェックサムが一致する場合、使用しているファイルが同一であることがわかります。

コンピューターはチェックサムスタイルの手法を使用して、バックグラウンドで問題がないかデータをチェックしますが、これを自分で行うこともできます。たとえば、Linuxディストリビューションではチェックサムが提供されることが多いため、Linux ISOが正しくダウンロードされていることを確認してから、ディスクに書き込んだりUSBドライブに入れたりすることができます。チェックサムを使用して、アプリケーションからドキュメントやメディアまで、他の種類のファイルの整合性を検証することもできます。元のファイルのチェックサムを知っている必要があります。

MD5、SHA-1、およびSHA-256の合計の違いは何ですか?

チェックサムは、ファイルにエラーがないことを確認するための便利な方法です。ダウンロードの問題やハードドライブの問題が原因でランダムエラーが発生した場合、たとえそれがほんの小さなエラーであっても、結果のチェックサムは異なります。

ただし、これらの暗号化ハッシュ関数は完全ではありません。セキュリティ研究者は、MD5およびSHA-1機能との「衝突」を発見しました。つまり、同じMD5またはSHA-1ハッシュを生成するが、異なる2つの異なるファイルを見つけました。

これが偶然に発生する可能性は低いですが、攻撃者はこの手法を使用して、悪意のあるファイルを正当なファイルに偽装する可能性があります。そのため、ファイルが本物であることを確認するためにMD5またはSHA-1の合計に依存するべきではなく、破損をチェックするだけです。

SHA-256の衝突の報告はまだありません。そのため、アプリケーションはMD5の合計とSHA-1の合計の代わりにSHA-256の合計を作成しています。SHA-256は、より強力で安全なアルゴリズムです。

チェックサムアルゴリズムが異なれば、結果も異なります。ファイルには、異なるMD5、SHA-1、およびSHA-256チェックサムが含まれます。元のファイルのMD5合計しかわからない場合は、コピーのMD5合計を計算して、一致するかどうかを確認する必要があります。

関連:シャッターとは何ですか?SHA-1衝突攻撃、説明

チェックサムの計算方法

元のファイルのチェックサムがわかっていて、PCでチェックしたい場合は、簡単に行うことができます。Windows、macOS、およびLinuxにはすべて、チェックサムを生成するための組み込みユーティリティがあります。サードパーティのユーティリティは必要ありません。

関連:MD5、SHA-1、およびSHA-256ハッシュとは何ですか?また、それらを確認するにはどうすればよいですか?

Windowsでは、PowerShellのGet-FileHashコマンドがファイルのチェックサムを計算します。これを使用するには、最初にPowerShellを開きます。Windows 10では、[スタート]ボタンを右クリックし、[WindowsPowerShell]を選択します。スタートメニューで「PowerShell」を検索し、「WindowsPowerShell」ショートカットをクリックして起動することもできます。

更新: Get-FileHashはWindows 10に含まれています。ただし、Windows 7では、PowerShell4.0更新をインストールして入手する必要があります。

プロンプトで、Get-FileHashスペースバーを入力して押します。

チェックサムを計算するファイルのパスを入力します。または、作業を簡単にするために、ファイルをファイルエクスプローラーウィンドウからPowerShellウィンドウにドラッグアンドドロップして、パスを自動的に入力します。

Enterキーを押してコマンドを実行すると、ファイルのSHA-256ハッシュが表示されます。ファイルのサイズとコンピューターのストレージの速度によっては、処理に数秒かかる場合があります。

別のタイプのチェックサムが必要な-Algorithm場合は、次のように、コマンドの最後に適切なオプションを追加します。

Get-FileHash C:\ path \ to \ file.iso -Algorithm MD5
Get-FileHash C:\ path \ to \ file.iso -Algorithm SHA1

計算されたチェックサムを元のチェックサムと比較します。基になるファイルにわずかな違いしかない場合でも、チェックサムに大きな違いがあるため、あまり近くを見る必要はありません。

チェックサムが一致する場合、ファイルは同一です。そうでない場合は、問題があります。ファイルが破損しているか、2つの異なるファイルを比較しているだけです。ファイルのコピーをダウンロードし、そのチェックサムが期待したものと一致しない場合は、ファイルをもう一度ダウンロードしてみてください。