2017年05月29日

手がかりを失くさせた暗号方式 〜連続鍵暗号で人間の手の届かない領域へ〜

応援クリックを1日1回宜しくお願いいたします。



本日は、いかにも小説に出てきそうな暗号です。



過去分はこちら。
↓↓↓
暗号: ラインセグメント日記


連続鍵暗号(進行鍵暗号、Running Key Cipher)というらしく、ある本の文章を暗号鍵とします。
Running key cipher - Wikipedia
Practical Cryptography

前提として、今回はアルファベットからアルファベットへの暗号化を行うので、暗号鍵に使う本の文章も英文とします。

暗号化の例を示すため、どこかから英語の本(ページと行数を指定すれば文章が一意に指定できるものであって、印刷されたものが望ましいと考えられる・・)を持ってこないといけないのですが、

なんと英語の本がありました←

数式が含まれていると、暗号鍵に含めにくいので、数式が無い英語の本・・・と思っても難しいので、少し含まれている本にしました。

今回、例に用いる本はこちらです。
↓↓↓

こちらの本の231ページの1行目の文章を暗号鍵とします。


ここで、「そのページの何文字目までが暗号鍵?」と思われるかも知れません。

連続鍵暗号の強みは、暗号鍵の長さに際限がなく、周期性により解読されない点にあります。

そのため、平文の長さと同じだけ暗号鍵をとります。


連続鍵暗号の暗号化・復号化

例えば、平文を「the key for the running key cipher comes from a statistically random source」とします。
少し形を整えて「thekeyfortherunningkeyciphercomesfromastatisticallyrandomsource」にします。

すると、文字数は63文字ですので、暗号鍵も63文字とります。

今回の例でいうと、暗号鍵は「dexpressionsquelonpourraitcherchermaisjenaipasletempsetmesidees」となります。

ここから先は昨日のヴィジュネル暗号と同じ要領で暗号化します。

すなわち、平文と暗号鍵のアルファベットを0〜25の数字に置き換えて、平文と同じ位置の暗号鍵の数字だけアルファベット順にシフトするというものです。

例えば、平文の1文字目のtは19で、暗号鍵の1文字目のdは3ですので、19+3=22$\rightarrow$wとなります。


復号化は、暗号文と同じ位置の暗号鍵の数字だけアルファベットの逆順にシフトします。

例えば、暗号文の1文字目のwは22で、暗号鍵の1文字目のdは3ですので、22-3=19$\rightarrow$tとなります。



連続鍵暗号の特徴

連続鍵暗号は暗号鍵の長さが平文より短くなることはないので、暗号鍵の周期性を探られないという点でヴィジュネル暗号と異なるだけで、それ以外は全く同じです。

ですが、暗号の解読に際しての手法は異なるようで、暗号鍵に珍しい単語が含まれていたりランダムなアルファベットで構成されていたりすると、難しくなるそうです。

そういった本を選ぶことがセキュリティ的に望ましいようです。

本記事で例にとった本からの抜粋箇所はガロアが記したフランス語の文章の紹介から抜粋したので英語ではないため、少し難しくなるかなと思います。

しかし、歴史的に有名な人の文章なので、その本以外にも入手できる可能性がある文章であり、実際Googleで完全一致検索をして検索結果が出て来ます。
"d'expressions que l'on pourrait chercher mais je n'ai pas le temps et mes idees" - Google 検索

このような少しでも有名な文章は避けた方がいいかも知れません。


最後に、連続鍵暗号のアプリケーションを作成しました。
↓↓↓
連続鍵暗号で暗号化

アルファベットの大文字・小文字が暗号化対象です。
暗号鍵が平文・暗号文より短いときは暗号化・復号化しません。



posted by Line Segment at 18:00 | Comment(0) | TrackBack(0) | ホームページ | このブログの読者になる | 更新情報をチェックする