web-dev-qa-db-ja.com

メッセージの暗号化に使用された公開鍵を証明することは可能ですか?

ほぼタイトル:アリスがボブの公開鍵で暗号化するメッセージをボブに送信する場合、暗号化されたメッセージがボブ宛てであることを暗号文がボブの公開鍵で暗号化されていることをイブが証明することは可能ですか?

更新

アルゴリズムがRSAであるとします。

8
John

ここで私の答えに別のアプローチをとります。あなたは、「暗号文がボブの公開鍵で暗号化されていることを証明します」と言います。ボブの鍵をどうやって確認しますか。公開鍵サーバー( http://pgp.mit.edu/ )の構造のために、「ボブ」になりすまして鍵を作成することを妨げるものは何もありません。ボブが最終的な受信者期間であることを検証するメカニズムもありません。例えば。ここを参照してください: http://pgp.mit.edu:11371/pks/lookup?search=topsecretgov.gov&op=vindex

この質問の最終的な終盤は何ですか?否認のことですか?トムリークの回答を楽しんでいましたが、私の回答は「脅威」の1つであり、目的はあなたを説明することです[〜#〜]最終的に暗号化に依存することはできません[〜#〜]そのサーバーに誰がキーを置いたかを検証するメカニズムはありません。あなたは召喚状MIT inhopes彼らがログに記録しているのに、何を手に入れますか?IPです。これは意味がありません。

さらに詳しく知るために、秘密鍵はキーストロークロガーやマルウェアなどで危険にさらされる可能性があります。これは、「distros」(Debian、FreeBSDなど)を標的としたマルウェアの作者が長年に渡ってゴミの小片をこっそり忍び込んできた方法です。恐ろしい鍵管理。

2
munkeyoto

現在実装されているRSAのみを使用する、いいえ、これは不可能です。 Eveがメッセージがボブの公開鍵で暗号化されていることを証明する唯一の方法は、ボブの秘密鍵を使用してメッセージを復号化することであり、これは公開鍵暗号化の目的全体を無効にします「秘密鍵」、秘密)。

すべてを完全に復号化せずに誰かがメッセージについて何かを学べるようにするメカニズムが利用可能です。アリスがボブの公開鍵を使用して実際のメッセージを暗号化し、そのメッセージを取得し、送信元と目的の受信者を含むいくつかの非機密の「ヘッダー」情報を追加し、アリスの独自のアルゴリズムを使用してパッケージ全体に署名するスキームを考えます。秘密鍵。 Aliceの公開鍵(および公開情報)を知っている人は誰でもデジタル署名を検証できるため、Aliceが目的の受信者に関する情報を含め、現在持っているとおりにこのメッセージを送信したことを知ることができます。彼らはまだメッセージを見ることができず、メッセージがボブの公開鍵で本当に暗号化されていることを証明することもできませんが、とにかくそれは彼らのビジネスの何ものでもありません。ボブがそれを解読できない場合、彼は彼女が失敗したことをアリスに伝えることができます。

実際のメッセージを対称的に暗号化するTweakを追加し、そのメッセージのキーを受信者の公開キーで非対称的に暗号化すると、これがPGPの基本的な考え方になります。 Eメールを受信者に届けるためには、Eメールの送信に固有の情報があり、それは単に明白に見える必要があります。しかし、実際の内容を読む前に、だれがそれを送信したか、彼らの意図は何か、誰もそれを改ざんしていないことを証明できることは価値があります。

全体の背後にあるもう1つの複雑さの層は、誰かの公開鍵が本当に自分のものであることを証明する方法です。これはキー署名で行われます。信頼できるエンティティは、そのエンティティの秘密キーを知っている人だけが生成できる情報(DSA署名、またはエンティティの秘密キーで暗号化された暗号ハッシュのいずれか)を追加して、情報の有効性を保証します。 )。 SSL/TLSでは、署名により階層的な「信頼チェーン」が形成され、CAがエンドユーザーの証明書を保証し、別のCAがそのCAの証明書を保証し、以下同様に、「信頼されたルート」証明書の1つに戻ります。システムを使用する場合に信頼する必要があるWebブラウザーまたはOS。 PGPでは、これはより安全な「信頼の網」構造であり、お互いを知って信頼するピアが安全な環境でお互いの鍵に署名し、署名者を知って信頼する他の人々に配布して、証明書を信頼できるようにします。

0
KeithS