web-dev-qa-db-ja.com

SHAとAES暗号化の違いは何ですか?

SHAとAES暗号化の違いは何ですか?

74
Pete

SHAは暗号化ではなく、一方向のハッシュ関数です。 AES(Advanced_Encryption_Standard)は、対称暗号化標準です。

AESリファレンス

99
skaffman

[〜#〜] sha [〜#〜] は、国家安全保障局によって開発された「セキュアハッシュアルゴリズム」のファミリです。現在、2012 +の新しいハッシュアルゴリズムである SHA- になるユーザーについては、多数のオプションが競合しています。

SHA関数を使用して、大きなドキュメントを取得し、入力の「ダイジェスト」(「ハッシュ」とも呼ばれます)を計算します。これは一方向のプロセスであることを認識することが重要です。ダイジェストを取り、元のドキュメントを復元しないでください。

[〜#〜] aes [〜#〜] 、Advanced Encryption Standardは対称ブロックアルゴリズムです。これは、16バイトブロックを使用して暗号化することを意味します。キーは暗号化と復号化の両方を許可するため、「対称」です。

UPDATE:Keccak は、2012年10月2日にSHA-3の受賞者に選ばれました。

77
Jeff Moser

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用)

57
Robert Horvick

SHAはSecure Hash Algorithmを表し、AESはAdvanced Encryption Standardを表します。 SHAはハッシュアルゴリズムのスイートです。一方、AESは暗号化に使用される暗号です。SHAアルゴリズム(SHA-1、SHA- 256など...)入力を取得してダイジェスト(ハッシュ)を生成します。これは通常、デジタル署名プロセスで使用されます(いくつかのバイトのハッシュを生成し、秘密鍵で署名します)。

6
François P.

SHAはハッシュ関数であり、AESは暗号化標準です。入力が与えられると、SHAを使用して、他の入力から生成される可能性が非常に低い出力を生成できます。また、関数の適用中に一部の情報が失われるAESは、同じ暗号化キーを共有する2つのパーティ間で送信されるデータを第三者に開示しないよう保護することを目的としています。暗号化キーと出力(およびIV ...)がわかれば、元の入力にシームレスに戻ることができます。SHAは入力以外は必要ありません。 AESには少なくとも3つのシンが必要ですが、暗号化/復号化するもの、暗号化キー、初期化ベクトル(IV)が必要です。

6
em70

SHAには、入力を適用する以外に何も必要ありませんが、AESには、暗号化/復号化するもの、暗号化キー、および初期化ベクトルの少なくとも3つが必要です。

3
chen