まず、ハッシュとには違いがあります暗号化。 SHA256はハッシュ関数であり、暗号化関数ではありません。
次に、SHA256は暗号化関数ではないため、復号化できません。あなたが意味するのはおそらくそれを逆転させることです。その場合、SHA256は「一方向性関数であるため、元に戻すことはできません。逆にすると、が発生します。原像攻撃。これは設計目標を打ち破ります。
第3に、SHA256検証は、再度計算し、結果を手元の結果と比較することで機能します。両方の結果が一致する場合、検証は成功します。理論的な背景は、同じハッシュ結果を与える別の入力を見つけるのが難しいということです。これに違反すると、 2番目の原像攻撃が発生し、設計目標が無効になります。
最後に、デジタル署名は単なるハッシュとキーの組み合わせではありません。ただし、ハッシュ関数はセキュリティを向上させる可能性があります。
SHA256は暗号化関数ではなく、ハッシュ関数。基本的な違いは、暗号化は(キーが与えられた場合)双方向関数ですが、ハッシュは一方向関数にすぎないことです。一部のデータが与えられると、ハッシュを計算できます。ハッシュが与えられると、データを元に戻すことは困難です(数学的に不可能です)。 。
通常、ハッシュ関数には小さなコドメイン(SHA256の場合は256ビット)がありますが、大きなドメイン(任意の文字列をハッシュできます)があるため、ハッシュからデータを見つけることは数学的に不可能であると言いました。衝突が発生します:同じハッシュを持つ異なる文字列。
このため、パスワードがハッシュ形式で保存されている場合、アカウントのロックを解除する無限のパスワードが存在します(ただし、非常に長くなる可能性があります)。
幸いなことに、暗号化ハッシュ関数を使用すると衝突が発生することが少ないため、アカウントは引き続き安全です。
質問の最初の部分に答えると、データの検証は簡単です。アリスがハッシュチェックサムを含むファイルをボブに送信すると、ボブはtのハッシュを簡単に計算できます。彼は受け取ったファイルをファイルし、それをアリスから受け取ったハッシュと比較します。これは通常、送信中にエラーが発生したかどうか(ファイルが破損しているかどうか)を確認するのに十分ですが、ハッシュを変更した攻撃者によって送信が変更された場合は十分ではありません。したがって、アリスとボブはハッシュを送信するための安全なチャネル(たとえば、有効な証明書を含むhttpsページ)または何らかの方法でハッシュに署名する必要があります。
次に、2番目の質問への回答に移ります。アリスは署名できます。ボブに送信する前に秘密鍵を使用してハッシュします。このようにして、攻撃者は署名を無効にせずに秘密鍵を改ざんすることはできません。
これで、アリスがRSA(または同様の)鍵のみで署名する理由を尋ねることができます。すべてのメッセージではなくハッシュ。これは、RSAの計算がハッシュの計算よりも遅いためです(したがって、彼女は小さな文字列であるハッシュに対してのみ遅いことを実行する必要があります)。これは、特にPGPが作成され、コンピューターの速度が遅い場合に当てはまりました。