3

秘密鍵と公開鍵は数学的に関連しており、1 つの鍵で暗号化されたデータは他の鍵でしか復号化できないことを理解しています。私の質問は、秘密鍵は常にデータの暗号化に使用され、公開鍵は常に復号化に使用されるということですか? またはその逆になる可能性があります。そうであれば、他の方向(暗号化するための公開鍵と復号化するための秘密鍵)で使用されるアプリケーションの例を挙げていただけますか?

4

4 に答える 4

10

暗号化とは、一部のデータの機密を保持することです。データは不透明なブロブに変換され、その逆の操作には、攻撃者が知らない何か、つまり「秘密」または「プライベート」情報が必要です。暗号化の要点は、公開情報だけでは復号化を実行できないということです。したがって、復号化では秘密鍵が使用されます。ただし、誰にでもデータを暗号化させることに問題はないため、暗号化では公開鍵を使用できます。

いくつかのアルゴリズム(実際には1つだけ:RSA)があり、一見すると「リバーシブル」に見えます。暗号化に秘密鍵を使用し、復号化に公開鍵を使用することを考えるかもしれません。上で説明したように、機密性があります(復号化キーが公開されている場合、誰でも復号化できるため、暗号化されたデータは機密と見なされなくなります)。このような「逆暗号化」は、デジタル署名アルゴリズムの基礎として使用できます。このアルゴリズムでは、機密性の概念はありませんが、代わりに、キー所有者のアクションの検証可能な証明があります。

ただし、RSAにはべき乗剰余以上のものがあります。RSA暗号化は、最初に「パディング」と呼ばれる操作によって入力メッセージを大きな整数に変換します。RSA署名生成は、最初に「パディング」とも呼ばれる別の操作によって入力メッセージを大きな整数に変換します。しかし、これはまったく同じパディングではありません。パディングはセキュリティに不可欠であり、必要な特性は暗号化と署名でまったく異なります。たとえば、暗号化パディングには高レベルの追加のランダム性が必要ですが、署名パディングには多くの冗長性(および長い入力メッセージに対応するためのハッシュ関数)が必要です。

署名を「秘密鍵による暗号化」と呼ぶのは、RSA標準が歴史的に言っている方法ですが(したがって、「md5WithRSAEncryption」などの名前)、不正確であり(パディングは異なり、異なる必要があります)、過度に具体的です(適用されます)。 RSAのみであり、El Gamal、DSA、Diffie-Hellman、NTRUではありません...)。これは広範囲にわたる混乱です。

于 2011-03-29T11:08:13.467 に答える
1

安全なメッセージを送信したい場合は、あなたの公開鍵でメッセージを暗号化します. そうすれば、(秘密鍵を知っている)あなただけがそれを復号化できます。

于 2011-03-29T02:58:04.180 に答える
1

暗号化に公開鍵を使用できるだけでなく、秘密のために暗号化する場合、これは実際には通常の操作モードです。これは理にかなっています。誰でも公開鍵で暗号化でき、適切な受信者だけが秘密鍵を使用して復号化できます。

多くの公開鍵システムでは、署名は数学的に反対のケース (「秘密鍵による暗号化」) に似ていますが、署名操作は暗号化操作とは根本的に異なることに注意してください。たとえば、RSA では、署名には不変で検証可能なパディング方法を使用する必要がありますが、暗号化にはランダムなパディングを使用する必要があります。

于 2011-03-29T03:00:02.300 に答える
-1

交換可能です。

デジタル署名->秘密鍵は暗号化し、公開鍵は復号化して送信者を確認します。

メッセージの送信->公開鍵暗号化、秘密復号化、および所有者がメッセージを読み取ります。

編集:人々は「交換可能な」定義に同意しないようです。セキュリティの観点から最善のものではなく、操作の数学的観点について話していることを明確にする必要があります。多くの場合、意図した操作にはキーを使用する必要があります。

ただし、SOスレッドでのHenrickHellströmの応答は、それらが数学的に交換可能である理由を説明しています。公開鍵と秘密鍵は交換可能ですか?

于 2011-03-29T02:55:01.573 に答える