4

このサイトのアルゴリズムを使用して、公開鍵と秘密鍵でデータを暗号化および復号化するとします。

CodeProjectの C# .NET での公開鍵 RSA 暗号化

ここで、誰かが別のアルゴリズムを使用して私の公開鍵を使用してデータを暗号化し、それを私に送信したとしましょう。別のアルゴリズム (サイトのものなど) を使用すると、秘密鍵を使用して情報を復号化できますか? それとも、アルゴリズムが異なるため、これは不可能ですか?

私の要点は、使用されたキーが正しいと仮定して、異なる暗号化アルゴリズムが使用された場合、最終結果は常に同じでしょうか?

情報を暗号化して、さまざまなマシン、おそらくさまざまなプログラミング言語で解読できるようにする標準的な方法はありますか?

4

1 に答える 1

8

少し議論が進んでいますが、質問に答える私の謙虚な試みは次のとおりです。

別のアルゴリズム (サイトのものなど) を使用すると、秘密鍵を使用して情報を復号化できますか? それとも、アルゴリズムが異なるため、これは不可能ですか?

間違いなく、データを復号化することはできません。通常、アルゴリズムとキーが完全に一致する必要があります。ただし、異なる可能性があるのは、暗号化/復号化に使用されるプラットフォーム、OS、ハードウェア、言語、またはプログラムです。これは、アルゴリズムが明確に定義された仕様を持つパブリック コントラクトとして機能し、すべてのパブリック API が同じ結果をレンダリングする限り、実装が異なる可能性があるためです。

私の要点は、使用されるキーが正しいと仮定して、異なる暗号化アルゴリズムが使用された場合、最終結果は常に同じでしょうか?

ほとんどの場合、これらは異なる結果になります (ほとんど言っても、私はそのようなアルゴリズムを知りません)。アルゴリズムと必要なキーが完全に一致する必要があります。

情報を暗号化して、さまざまなマシン、おそらくさまざまなプログラミング言語で解読できるようにする標準的な方法はありますか?

はい、たとえば RSA は秘密鍵を安全に保管し、公開鍵を共有します。これは、HTTPS が最初に行うことです。公開鍵を持っている人は誰でも、秘密鍵で暗号化されたデータを復号化できます。

または、単一のキーで暗号化/復号化する対称アルゴリズムである AES を使用できます。これは、HTTPS が 2 番目に行うことです。信頼できる関係者間でのみキーを共有すると、両方が暗号化と復号化を行うことができます (ただし、キーを持っていないため、他の誰もできません)。

于 2013-04-28T09:54:33.030 に答える