HOME > Theory > Crypt |
暗号を使おう! |
秘密のバックドアのあるPGP鍵ソースコード |
Date: Sat, 1 Jun 1996 14:16:12 +0200 やあ。 これは、生成されたときに秘密のバックドアのあるPGP鍵の例です。生成された鍵を見るだけでは、これにバックドアがあることはわかりません。 鍵生成コードには、木づち(Mallets)公開鍵が含まれています。鍵を生成するとき、Nの上位バイトはNの暗号化された因数に設定されます。暗号化は木づち公開鍵を使ってなされ、木づちだけがNからの因数を回復させることができます。 この例は、鍵生成ソースコード(それは乱数生成装置の品質を検証するためにも結局必要ですが)だけではなく、このソースをコンパイル・リンクすることができる必要性を示しています。というのも、この能力がなければ、このようなバックドアをシステムに組み込むのはあまりにも簡単になってしまうからです(そう、このコードは逆設計されうるものですが、自己修正コードなどを持つことによって非常にむずかしいものにできるのです)。 しかし、こんなペテンが続かないようユーザーに保証する方法が一つあるようです。これは、PGPアスキー鍵に現われるようなフレーズをユーザーが特定できるようにする「虚飾(vanity)鍵」で生成されることで可能です。もしこうすれば、この機能についての詳細を保存できるような余地は、Nにはほとんど残らないでしょう。
|
これが木づち秘密鍵(パスフレーズは "xyzzy")
鍵は以下のもので構成されています。
これはJoeのPGP鍵(パスフレーズは "xyzzy")
鍵は以下のもので構成されています。
nの1-63バイトを見るなら、
そして、木づちのプライベート 'd'を使って復号化すれば、こうなります。
あなたは、Joeの Pのうち、最初の 0x80と最後の0x01がないものを見ることができます。
|
これは、Joeの鍵を生成したコード(Perl)です。
これは、Joeの公開鍵からPを復元するためのコード(木づちの秘密鍵が必要)
Gary |