2

これは理論に基づいた質問である可能性があるため、これがこの質問の正しい場所であるかどうかはわかりません。しかし、私は次のC#実装にも興味がありました。そしてそれがどれほど実現可能か

ファイルの暗号化と復号化にPGPを使用することを計画しています。2つの公開鍵(私の公開鍵と受信者の公開鍵)でファイルを暗号化して、いずれかの秘密鍵を使用してファイルを復号化できるようにすることは可能ですか?このシナリオは実行可能ですか?そうです、同じものを正しく実装するために私が取るべき方向は何ですか。どんな助けでも大歓迎です

4

4 に答える 4

4

高レベルでは(PGP APIを使用している場合)、はい、2つ以上の公開PGPキーをOpenPGP API(またはソフトウェア)に渡して、データを暗号化することができます。次に、使用されている公開PGPキーのいずれかに対応するPGP秘密キーを使用して、データを復号化できるようになります。

下位レベル-OpenPGPは常にデータを暗号化するための対称鍵を生成し、この鍵は1つ以上の公開PGP鍵を使用して暗号化されるため、使用する鍵の数に違いはありません。

現在、何を使用するかは、使用しているプラ​​ットフォームと開発環境によって異なります(これはプログラミングサイトであるため、データをコードで暗号化することを想定しています)。LinuxおよびCの場合、GnuPGライブラリが存在します。JavaとC#の場合、BouncyCastleにはいくつかのPGPサポートがあります。最後に、SecureBlackboxライブラリのOpenPGPBlackboxは、.NET、VCL、ActiveX、C ++など、さまざまなプラットフォームと言語に対応するOpenPGP機能の全範囲を提供します。

ちなみに、あなたが受け入れた答えは完全に間違っているので、私はそれを受け入れるのをやめることを強くお勧めします。

于 2012-12-15T06:39:31.903 に答える
3

このwikiページを見てください:

http://en.wikipedia.org/wiki/Pretty_Good_Privacy

実際のデータはランダムキーで暗号化/復号化され、このランダムキーは公開/秘密キーに従って暗号化/復号化されます。

したがって、結果として、2つのキーを使用してファイル(データ)を暗号化する必要はありません。それでも、1つのランダムキーを使用してデータを暗号化します。唯一の違いは、このランダムキーを複数の公開キー(たとえば、自分と受信者)で暗号化することです。

その結果、誰でも秘密鍵を使用してランダム鍵を復号化し、データを復号化できるようになります。

于 2012-12-14T22:06:19.817 に答える
0

質問はcrypto.stackexchange.comにも属している可能性がありますが、ここでも問題ありません。PGPの原則を理解しているかどうかはわかりません。公開鍵は暗号化に使用され、秘密鍵は復号化に使用されます。したがって、公開鍵を使用して暗号化すると、受信者は自分の秘密鍵を使用して復号化および/または署名します。

詳細については、RSAまたはElGamalアルゴリズムについて読むことをお勧めします。お役に立てば幸いです。

どちらのアルゴリズムも、開始できる良い方法を提供します。または、スタンフォード大学が提供するいくつかのオンラインコースに参加したい場合もあります。

于 2012-12-14T21:17:00.137 に答える
-4

私がそれが機能していることを確認できる唯一の方法は、2つのファイルを含むzipまたはtarアーカイブを用意することです。1つはキー1で暗号化され、もう1つはキー2で暗号化されています。

ファイルがテキストの場合、同じ元のファイルの2つの異なる暗号化バージョンを1つのドキュメントに貼り付けることができます。

ファイルを暗号化する方法はないので、私が知っている2つの異なるキーで復号化できます。

于 2012-12-14T21:08:07.027 に答える