阿部ブログ

日々思うこと

ワンタイム・パッド暗号~徒然なるままに

2010年12月30日 | 日記

現在多用されている暗号は時間をかければ解読できる、本来は暗号とはいえない暗号が使われている。
200桁の整数にはまともに因数分解すると今のスパコンでも理論上、数億年も掛かるものがあるが、この因数分解の困難さに公開鍵暗号などは依拠している。
この因数分解にしても量子コンピュータが実現でき、その上で量子アルゴリズムにより因数分解を行うと従来になく高速に処理できる事をベル研のショアが数学的に証明している。ショアの研究は、NP完全問題では大いなる進歩であるが、殊、暗号と言う観点からは課題が浮き彫りになる。つまり容易に暗号が解読されるのだ。

話は少々変わるが量子暗号装置をある企業で見る事ができた。量子暗号の装置は、所謂ルーターをちょいと大きくしたぐらいの装置で動いており、研究者曰く「原理はごくごく簡単で、装置ももっと小型に出来ます。今すぐにでも」と言っていた。量子暗号の有効通信距離も500キロを優に超えると言うし、1000キロも楽勝と言う。

一番強固な暗号? これは完全な私見だが「ワンタイム・パッド暗号」が一番安全で実戦的な暗号だと考えている。ワンタイム・パッド暗号とは、一回限りの乱数表に基づく暗号鍵を利用する暗号で、理論上は解読不可能。

自分の経験を語る訳にはいかないが、ソビエト諜報機関NKGBの暗号システムについては語れる。

ソビエトの情報員は簡易に報告内容をまとめる。この際、地名や人名など固有名詞は与えられた『コードブック』により4桁の数値に置き換える。コードブックとは実務を経験した事が無ければ想像できないだろうが、一つ一つの単語、フレーズ、記号や数字などがある数値に置き換えられている膨大な辞書である。
コードブックにない単語などは、ある表をもとに一つ一つの単語を数値に置き換える。所謂「改字表」だ。これが「コード化」。
数値に置き換えられたコードを、今後は「ワンタイム・パッド」により暗号化する。暗号化するとは普通の算術の計算を行わない計算方法により数値化する。
何も難しい事ではない、単純に繰上げ計算を行わないのだ。これでコードがサイファー化された。
コードとワンタイム・パッドによりコードがサイファー化され二重に暗号化されたこの暗号は、理論上は解読不可能となった。

この暗号は完全無敵の暗号だが、やはり欠点はある。つまり暗号担当者は重複のない暗号キーを何十万、何百万と作成しなくてはならい。今の時代であれば簡単な事だろうが、1930年代後半から40年代では重複の無い暗号キーを作成、配布する事は極めて難しい事であった。
ドイツと日本は単純なサイファー暗号で代用したのだ。結果は知るべし。特に日本海軍の無能さにはあきればかり。次いで日本外務省。外務省は戦後も存続しているが、外務省の無能さは国民広く知るところであり、今でも語学のできる無能者が蝟集する。

ソビエトはドイツ、日本と違いワンタイム・パッド暗号を採用した。それは夥しい暗号鍵作成者を組成し維持すると言う莫大なコストを支払った。だが、このコストは無駄ではなかった。
ただ、ドイツのソビエト侵攻作戦「バルバロッサ」の一時期、情報機関や外交機関が出す暗号電文は膨大な数になり用意されていたワンタイム・パッド暗号表は一挙に枯渇した。この時なにがおこったか?それはワンタイム・パッド暗号表を複製して用いたのだ。

本来重複のない乱数が大量に暗号文のキーとして用いられる事により、後の暗号解読につながることとなる。これが米国の「Venona」作戦で、WWⅡ中のNKGBなどの暗号を1980年代に至るまで解読作業が継続された。

今、Eメールが企業も個人も含め多用されているが、これは暗号化されていない平文での情報交換である。これの問題を指摘する識者は皆無だ。


最新の画像もっと見る