web-dev-qa-db-ja.com

署名できるのに暗号化できないのはなぜですか?

-編集-この質問からのリンクのチェーンをたどった後、これは 署名に使用するのと同じように暗号化に同じ非対称キーを使用しないのはなぜですか? ですが、この質問は私たちがすべきではない技術的な理由があり、リンクはあまり技術的ではなく、RSAに限定されていません

誤解しているかもしれません。 GPGでは、署名のみのRSA鍵を生成できます。私の理解では、RSA鍵は公開鍵と鍵のペアです。署名は、メッセージをハッシュして秘密鍵で暗号化することで機能し、他の人は公開鍵を使用してメッセージを復号化します。ハッシュが復号化されたものと一致するかどうかは、メッセージの署名よりも私の理解からです。

GPGはどのようにしてキーを生成してそれに署名できますが、メッセージを暗号化できませんか?別のアプリでは、署名用の鍵と暗号化用の鍵が1つずつあると提案されていたと思いますが、理由はありませんでした。暗号化されたメッセージと署名されたクリアテキストが異なるキーを使用していて、別のユーザーからのものであるように見えるので、それは混乱しませんか?

6
user5575

アプリで暗号化と署名に別々のキーペアを使用するように勧めているのはなぜですか?

暗号化/復号化と署名/検証の両方に1つのRSA鍵ペアを使用できないという技術的な理由はないというのは正しいことです。しかし、テクノロジーがそれを可能にするからといって、それが良いアイデアであるとは限りません。バックアップに関係する理由と、秘密キーを紛失した(または盗まれた)場合にどうなるか。これを説明する最良の方法は、いくつかの事例を紹介することです。

以下では、1-keypair userは、暗号化と署名の操作に同じキーペアを使用する人ですが、2-keypair userは、プロファイルに2つの個別のキーペアが関連付けられている人物です。

これらの例では、自分用に暗号化した一連の重要なファイルがハードドライブにあり、署名して他の人に送信した一連のドキュメントもあるとします。

ケース1:1キーペアのユーザー、秘密鍵を紛失/削除した

ハードドライブ上のファイルを解読することはできません。暗号化するのに十分重要なものすべて?それらはなくなった、あなたはそれらを取り戻すことは決してないだろう。これはばかげているように聞こえるかもしれませんが、人々は自分の電話を失ったり、ラップトップが死んだり、マスターパスワードを忘れたりすると、常にキーを失います。GPGでは、それを回復する方法はありません。

署名については、問題ありません。ペアになっている公開キーがまだ問題ないため、既に署名したドキュメントでも適切に検証されます。新しいドキュメントの場合は、新しい署名キーを作成するだけです。

「よし、それから秘密鍵をDropboxなどにバックアップする」と思うかもしれませんが、ケース2をよく検討してください。

ケース#2:1キーペアユーザー、あなたの秘密鍵がハッカーに盗まれる

データをクラウドストレージに置くと、そのサーバーの管理者がデータにアクセスできるようになります。したがって、少なくとも理論上は、(あなたではない)他の人があなたの秘密鍵にアクセスできるようになります。だから何?まあ、もし彼らがあなたのラップトップを手に入れたら、彼らはそれらの重要なファイルを解読することができます。また、さらに重要なことに、あなたの名前でドキュメントに署名できるようになりました。

これはあなたにとって大したことではないかもしれませんが、デジタル署名は一部の場所では法的に拘束力があるため、政治家や弁護士にとっては巨大な取引ですハッカーが彼らに代わって法的契約を歌って欲しい。法律では、non-repudiationの概念があります。つまり、ドキュメントに署名が付いている場合、署名者があなたであることがわかります。複数の人があなたの秘密鍵に(理論的にも)アクセスできるようになるとすぐに、否認防止を要求できなくなります。つまり、最悪の場合、その鍵でこれまでに署名した契約はすべて無効になります。

これらの2つのケースは次のことを示しています。

  1. データを失うリスクがないように、復号化秘密鍵をバックアップしたいとします。実際、多くの企業や政府機関では、従業員に中央サーバー上の復号化キーをバックアップすることを求めています。

  2. あなたは今までにこれまで決して[〜#〜] ever [〜#〜]署名鍵をバックアップしたい。ずっと。

ソリューション

ために 1-keypair usersデータを保護するか、否認防止を保護するかを選択する必要があります。その間、2-keypair usersそのような問題はありません。また、プロファイルに2つ目のキーペアを設定することの欠点はまったくないため、誰かが1-keypair user

4
Mike Ounsworth

署名の「説明」を「秘密鍵による暗号化」として使用しないでください。これは、実際には機能しない欠陥のあるアナロジーです。

RSAは実際には2つのアルゴリズムであり、1つは非対称暗号化用で、もう1つは署名用です。たまたま、2つのアルゴリズムにはいくつかの共通の数学要素があり、特に同じ種類のキーを使用します(これが、「RSA暗号化キー」や「RSA署名キー」ではなく「RSAキー」と呼ばれる理由です) )。したがって、所定のRSA鍵ペアを暗号化と署名の両方に使用できることが考えられます。

ただし、暗号化キーと署名キーを別々に保持したいのは 正当な理由 の理由があります。 OpenPGP 形式はそのことを認識し、意図された使用法を示すキーを「タグ付け」します。したがって、署名のみのRSAキーは、OpenPGPが「暗号化にそのキーを使用しないでください」というラベルが付いたRSAキーです。

7
Thomas Pornin