SHA暗号化とAES暗号化の違いは何ですか?
回答:
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ハッシュを送信して、メッセージが復号化されたときにデータを検証できるようにします。これはやや不自然な例です。
これらのWikipediaの検索語句(AESおよびSHA以外)の詳細を知りたい場合は、以下をお試しください。
対称鍵アルゴリズム(AES用)暗号化ハッシュ関数(SHA用)公開鍵暗号(PGPおよびSSL用)
SHAはハッシュ関数で、AESは暗号化標準です。入力を指定すると、SHAを使用して、他の入力から生成される可能性が非常に低い出力を生成できます。また、関数の適用中に一部の情報が失われるため、同じ出力を生成する入力を生成する方法を知っていても、その入力は最初に使用されたものとは異なる可能性があります。一方、AESは、同じ暗号化キーを共有する2つのパーティ間で送信されるデータを第三者に開示しないよう保護することを目的としています。つまり、暗号化キーと出力(およびIV ...)がわかれば、元の入力にシームレスに戻ることができます。SHAには入力の適用以外は必要ありませんが、AESには少なくとも3つのシンが必要です。暗号化/復号化するもの、暗号化キー、および初期化ベクトル(IV)です。
SHAはSecure Hash Algorithmを表し、AESはAdvanced Encryption Standardを表します。したがって、SHAはハッシュアルゴリズムのスイートです。一方、AESは暗号化に使用される暗号です。SHAアルゴリズム(SHA-1、SHA-256など)は入力を受け取り、ダイジェスト(ハッシュ)を生成します。これは通常、デジタル署名プロセスで使用されます(いくつかのバイトのハッシュを生成し、秘密鍵で署名します)。 。
SHAでは入力の適用のみが必要ですが、AESでは少なくとも3つのものが必要です-暗号化/復号化するもの、暗号化キー、および初期化ベクトル。