SHA 暗号化と AES 暗号化の違いは何ですか?
6 に答える
SHAは暗号化ではなく、一方向のハッシュ関数です。AES(Advanced_Encryption_Standard)は、対称暗号化標準です。
SHAは、国家安全保障局によって開発された「セキュアハッシュアルゴリズム」のファミリーです。現在、 2012年以降の新しいハッシュアルゴリズムであるSHA-3になる人をめぐって、数十のオプション間で競争があります。
SHA関数を使用して、大きなドキュメントを取得し、入力の「ダイジェスト」(「ハッシュ」とも呼ばれます)を計算します。これは一方向のプロセスであることを理解することが重要です。ダイジェストを取得して元のドキュメントを復元することはできません。
AES、Advanced Encryption Standardは、対称ブロックアルゴリズムです。これは、16バイトのブロックを取り、それらを暗号化することを意味します。キーは暗号化と復号化の両方を可能にするため、「対称」です。
更新: Keccakは2012年10月2日にSHA-3の勝者に選ばれました。
SHA と AES は異なる目的を果たします。SHA はデータのハッシュの生成に使用され、AES はデータの暗号化に使用されます。
SHA ハッシュが役立つ場合の例を次に示します。Linux ディストリビューションの DVD ISO イメージをダウンロードしたいとします。これは大きなファイルであり、場合によっては問題が発生することがあります。そのため、ダウンロードしたファイルが正しいことを検証する必要があります。信頼できるソース (公式のディストリビューション ダウンロード ポイントなど) にアクセスすると、通常、ISO イメージの SHA ハッシュが利用可能になります。ダウンロードしたデータに対して、比較可能な SHA ハッシュを (任意の数のオープン ツールを使用して) 生成できるようになりました。2 つのハッシュを比較して、それらが一致していることを確認できます。これにより、ダウンロードしたイメージが正しいことが検証されます。これは、信頼できないソース (トレントなど) から ISO イメージを取得する場合、または ISO の使用に問題があり、イメージが破損しているかどうかを確認したい場合に特に重要です。
このケースでわかるように、SHA は破損していないデータを検証するために使用されました。ISO のデータを参照するすべての権利があります。
一方、AES は、データを暗号化したり、何らかの秘密を知っている人がそのデータを閲覧できないようにするために使用されます。
AES は共有キーを使用します。これは、データの暗号化解除に使用されるのと同じキー (または関連するキー) がデータの暗号化に使用されることを意味します。たとえば、AES を使用して電子メールを暗号化し、その電子メールをあなたに送信した場合、あなたと私は両方とも、電子メールの暗号化と復号化に使用される共有キーを知る必要があります。これは、PGP や SSL などの公開鍵を使用するアルゴリズムとは異なります。
それらをまとめたい場合は、AES を使用してメッセージを暗号化し、暗号化されていないメッセージの SHA1 ハッシュを送信して、メッセージが復号化されたときにデータを検証できるようにすることができます。これはやや不自然な例です。
これらのウィキペディアの検索用語 (AES と SHA 以外) について詳しく知りたい場合は、以下を含めてみてください。
対称鍵アルゴリズム (AES 用) 暗号化ハッシュ関数 (SHA 用) 公開鍵暗号 (PGP および SSL 用)
SHAはハッシュ関数であり、AESは暗号化標準です。入力が与えられると、SHAを使用して、他の入力から生成される可能性が非常に低い出力を生成できます。また、関数の適用中に一部の情報が失われるため、同じ出力を生成する入力を生成する方法を知っていても、その入力は最初に使用されたものと同じではない可能性があります。一方、AESは、同じ暗号化キーを共有する2つのパーティ間で送信されるデータをサードパーティに開示しないように保護することを目的としています。これは、暗号化キーと出力(およびIV ...)がわかれば、シームレスに元の入力に戻ることができることを意味します。SHAは入力以外は何も適用する必要がないことに注意してください。一方、AESは、暗号化/復号化するもの、暗号化キー、および初期化ベクトル(IV)の少なくとも3つのシンを必要とします。
SHAはSecureHashAlgorithmの略で、AESはAdvancedEncryptionStandardの略です。つまり、SHAはハッシュアルゴリズムのスイートです。一方、AESは、暗号化に使用される暗号です。SHAアルゴリズム(SHA-1、SHA-256など)は入力を受け取り、ダイジェスト(ハッシュ)を生成します。これは通常、デジタル署名プロセスで使用されます(数バイトのハッシュを生成し、秘密鍵で署名します) 。
SHA では、適用する入力以外は何も必要ありませんが、AES では、暗号化/復号化するもの、暗号化キー、および初期化ベクトルの少なくとも 3 つが必要です。