0

公開鍵の暗号化について、次の例が基本的に正しい場合に質問があります。次に、私が KG1、EA1、および DA1 と呼ぶ 3 つのアルゴリズムの実装をどこで見つけることができるか、またそれぞれのコード行数について知りたいと思います。

Alice は、メッセージを安全に取得したいと考えています。彼女は、鍵生成アルゴリズム KG1 を使用して秘密鍵「C2A836B33FF1E」と公開鍵「35B1AC692」を作成し、公開鍵を世界に公開します。

ボブは、彼のメッセージ「HELLO FROM BOB」と公開鍵「35B1AC692」の入力を、文字列「DF1537532CB23B」を生成する暗号化アルゴリズム EA1 に入れ、この文字列をアリスに送信します。チャックもコピーを傍受します。

アリスには、文字列「DF1537532CB23B」と彼女の秘密鍵「C2A836B33FF1E」を入力として取り、出力「HELLO FROM BOB」を生成できる復号化アルゴリズム DA1 がありますが、チャックは秘密鍵「C2A836B33FF1E」を持っていないため、アリスにはできません。 「DF1537532CB23B」を「HELLO FROM BOB」に変換します。また、Chuck は KG1 アルゴリズムと公開鍵 "35B1AC692" を知っていますが、この情報を使用して秘密鍵に戻ることはできません。

4

2 に答える 2

1

ええ、それはほとんどそれです。チャックがメッセージを解読できないというのは完全に正しいわけではなく、既知の数学的方法では簡単に解読できないことに注意してください。これは、キー生成アルゴリズムが一方向関数と呼ばれるものに依存しているためです。これらは、特定の入力に対して計算するのは比較的簡単ですが、出力から元に戻すのは非常に難しい関数です。

一方向関数の例は、2 つの大きな素数を掛け合わせることです。掛け算は簡単ですが、素因数を再び見つけるのは非常に難しく、新しい数学的ブレークスルーがなければなりません。

メソッドの実装に関しては、使用されている正確な暗号化スキームによって異なります。以前よりよく知られている公開鍵暗号方式の 1 つに RSA があります。鍵の生成、暗号化、および復号化の 3 つすべてに関する詳細な手順については、こちらを参照してください。

于 2011-05-26T13:56:43.910 に答える
1

あなたは物事を正しく理解しました。このスキームによって引き起こされる主な問題は、「ボブは、彼が「世界」から取得した公開鍵がアリスの公開鍵であり、チャックの公開鍵ではないことをどのように確認できるでしょうか?実際、それがチャックの公開鍵である場合、チャックはBob が Alice に送信したメッセージを復号化します。

これは、証明書によって解決されます。すべての参加者は、よく知られた信頼できる認証局の公開鍵のコピーを持っています。アリスがその公開鍵を世界に公開したい場合、アリスはこれらの機関の 1 つに支払い、自分の公開鍵を含む証明書を取得します。証明書を取得すると、誰もが認証局の公開鍵を使用して、証明書が破損していないことを確認できます。そのため、公開鍵が Chuck のものではなく、Alice のものであることを確認してください。

認証の基本的なプロセスは暗号署名です。認証局は秘密鍵を使用して一部のデータを暗号化します。データ、その署名、および機関の公開鍵があれば、機関の公開鍵で署名を復号化すると元のデータにつながることを確認できます。

RSA は事実上の標準であり、多くの言語とプラットフォームで利用できます。自分で再実装しないでください。

于 2011-05-26T14:04:25.657 に答える