MD5とSHAとの主な違いは、MD5が暗号学的に強くなく安全ではないのに対し、SHAはSHA 256やSHA 512などのバージョンでより暗号学的に強く、安全であることです。
通信におけるメッセージの保護には、さまざまなアルゴリズムが使用されています。
そのうちの2つがMD5とSHAです。
ここで、MD5は暗号的に壊れており、衝突の原因になると考えられている。
一方、SHAはNIST(National Institute of Standards and Technology)が開発した暗号ハッシュ関数のファミリーを指す。
SHAにはSHA256やSHA512などのバージョンがあり、全体としてMD5よりも安全性が高い。
MD5とは
MD5とは、Message-Digest Algorithmの略です。
128ビットのハッシュ値を生成することができる。
このアルゴリズムを設計した最初の動機は、暗号ハッシュ関数として使用することでした。
しかし、このアルゴリズムは、多くの脆弱性を引き起こした。
しかし、データの完全性を検証するためのチェックサムとして使用することは可能である。
また、パーティション分割されたデータベースから特定の鍵のパーティションを見つけるなど、非暗号的なタスクにも適している。
一般に、暗号ハッシュ関数は、同じ値にハッシュする2つの別々のメッセージを見つける能力がなければならない。
MD5はこの要件を満たしていません。
さらに、ファイルサーバーは、ファイルに対して事前に計算されたMD5チェックサムを提供する。
また、ユーザーがダウンロードしたファイルのチェックサムをそれと比較することも可能です。
MD5を使用するアプリケーションの例として、Unix系OSでは、配布パッケージにMD5サム・ユーティリティが含まれています。
SHAとは
SHAとは、Secure Hash Algorithmの略です。
米国標準技術研究所はSHAを様々なバージョンで発表しています。
その一部を紹介すると、以下の通りです。
SHA-0:160ビットのハッシュ関数のオリジナルバージョンです。
その後、SHA-1がこれに取って代わった。
SHA-1:160ビットのハッシュ関数です。
Digital Signature Algorithmの一部として設計された。
ただし、2010年以降は使用されていない。
SHA-2:ブロックサイズの異なる2つの等価ハッシュ関数から構成される。
SHA256とSHA512です。
SHA-256は32ビットワード、SHA-523は64ビットワードを使用する。
さらに、SHA-224、SHA-384、SHA-512/224、SHA 512/256と呼ばれる切り詰めたバージョンもあります。
SHA-3:SHA-2の内部構造は、他のSHAファミリーと異なっている。
さらに、SHA-2と同じハッシュ長をサポートしている。
MD5とSHAとの相違点
定義
MD5は、128ビットのハッシュ値を生成するハッシュ関数を用いたアルゴリズムで、広く利用されている。
これに対し、SHAは米国標準技術局(NIST)が米国連邦情報処理規格(FIPS)として公表した暗号ハッシュ関数の集合です。
ロングフォーム
また、MD5はMessage-Digest Algorithm、SHAはSecure Hash Algorithmの略です。
セキュリティ
MD5とSHAとの重要な違いは、SHAがMD5よりも安全であることです。
速度
また、MD5とSHAとのもう一つの違いは、MD5がSHAよりも高速であることです。
攻撃
また、MD5では多くの攻撃が報告されていますが、SHAではあまり攻撃が報告されていません。
これもMD5とSHAとの違いです。
結論
簡単に説明すると、MD5とSHAは、通信におけるメッセージの安全性を確保するためのアルゴリズムです。
しかし、MD5とSHAとの大きな違いは、MD5が暗号学的に強くなく安全ではないのに対し、SHAはSHA 256やSHA 512といったバージョンで暗号学的に強く、安全であることである。