4

.NET 署名済みアセンブリには公開キーが含まれていますが、公開キーは RSA での暗号化に使用されます。.NET は署名付きアセンブリの復号化に公開キーをどのように使用しますか?

署名されたアセンブリにはハッシュが含まれていますが、ハッシュは公開キーではなく秘密キーを使用して暗号化されています。では、.NET で秘密鍵が暗号化に使用され、公開鍵が復号化に使用される理由と方法について説明します。つまり、RSACryptoPad のようなすべてのソフトウェアは、復号化ではなく暗号化に公開鍵を使用します。

4

3 に答える 3

6

公開鍵と秘密鍵のペアは、アセンブリ全体の暗号化には使用されません。代わりに、アセンブリに署名するために使用されます。

少し単純化すると、アセンブリなどのファイルに署名するには、ファイルのハッシュを取得し、そのハッシュを秘密鍵で暗号化します。ファイルを使用している人が、ファイル自体のハッシュを作成し、公開鍵を使用して暗号化されたハッシュを復号化し、これら2つのハッシュが同じであることを確認することで、署名を検証します。これは2つのことを証明します:

  1. アセンブリは、秘密鍵を使用して作成されているため、誰からのものであるか、つまりあなたからのものです。
  2. アセンブリをリリースしたときに作成したハッシュは現在のものと同じであるため、アセンブリは他の人によって変更されていません。秘密鍵を必要とする暗号化されたハッシュに対応する変更を加える必要があるため、署名されたアセンブリを変更することはできません。

このウィキペディアの記事には、デジタル署名に関する詳細がたくさんあります。

公開鍵と秘密鍵のペアの優れている点は、どちらの方法でも機能することです。したがって、秘密鍵で暗号化されたものは公開鍵でのみ復号化できますが、公開鍵で暗号化されたものは秘密鍵で復号化できます。この後者の使用法は、誰かがあなたに何かを送信したい場合、あなただけがあなたの自由に利用できる公開鍵でそれを暗号化できるが、あなたの秘密鍵を持っているあなただけがそれを復号化できることを彼らは知っていることを意味します。

キーはペアとしてのみ機能するため(暗号化を非対称にする)、他の誰かが公開キーで行った暗号化を単純に逆にしてメッセージを受け取ることはできません。

于 2009-03-22T07:17:31.437 に答える
3

署名は秘密鍵を使用してのみ作成できますが、その後は公開鍵のコピーを持っている人なら誰でも署名を検証できます。署名に復号化は必要ありません。署名はプレーン テキスト アセンブリに追加されるだけです。

于 2009-03-22T06:39:14.713 に答える
1

アセンブリに署名する目的は、それらのソースを確認することです。私が私の集会に署名してそれをあなたに送るならば、あなたはそれが私から来たものであり、途中で改ざんされていないことを合理的に確信しているはずです。

于 2009-03-22T06:51:10.597 に答える