概要
部外者に解読されないような通信(内容)のことで、推理小説等によく見られる。
常に通信の傍受(盗聴)・監視されるリスクも想定したものが多い。
「暗号」と言っても、見た目から解読方法まで様々で
- 意味の分からない謎の文章や図形、その集まり
- 無関係な人物が見たり聞いても、違和感のない会話・合言葉・単語を用いるもの
- 特定の物体の存在・状態・色・配置・ジェスチャー・ハンドサインなどを暗号とするもの
- 単体では機能せず、2つ以上の暗号や図形・情報を組み合わせるもの
- ヒントや乱数表、複雑な計算、受信機・変換装置がなければ困難なもの
…などが挙げられ、どれが使用されるか、伝達手段なども状況によって異なる。
(例)協力者の店で、「いつもの」と注文し出される銘柄や商品で任務や状況を知る。
ギャグ漫画等では書いた本人は普通の文章のつもりが、字が汚い、言葉遣いが古く難解…などの理由で読んだ者が暗号文とみなし解読に四苦八苦するパターンもある。
厳密には暗号とは異なるが、熱や紫外線で視認可能となるものもある。
暗号の手法
現在、インターネットなどで中心となっているものは、RSA暗号といい、素因数分解を用いたものである。大きな素数が求めにくいことを利用している。
RSA暗号は、公開鍵暗号方式の一つで、約150桁の素数2つを掛け合わせることで得た約300桁の数列を公開鍵として公開し、元の素数2つを秘密鍵とする。
送信側は公開鍵を用いて秘密にしたい情報(クレジットカード番号など)を暗号化して受信側に送り、受信側は秘密鍵を用いて暗号を復号化する。
原理的に、大きな数の素因数分解は、とても時間のかかる「解けない問題」であり、解く方法は総当りで片っ端から計算していくしかない(公開鍵が2桁程度なら人間の直感で解読できる可能性はある)ため、秘密が守られるのである。
この方法ならば、将来的にコンピュータの性能が向上して素因数分解の総当りにかかる時間が短くなった場合でも、計算量が素因数分解をする桁数に対して指数関数的に増大する性質から、単純に素数の桁数を増やしてやれば対応できるのである。
なお、量子コンピュータが実用化された場合は素因数分解自体が解けるようになるため、公開鍵暗号によるセキュリティは効果を失う。
他にも、単純に文字を別の文字に置換したもの、送信側と受信側に共通の符牒を用いるもの、機械を通して暗号化・復号化するものなどがある。
古代においては、棒にリボンを斜めに巻きつけてそこに文字を書き、それを解いて受信側に届け、受信側がリボンを棒に巻きつけることで解読する、というものもあった。
また機械式暗号の中で特に有名なのがドイツが用いたエニグマである。これは暗号文からの解読ができなかったため、暗号機そのものを鹵獲して解読したほど難解なものであった。
現在、エニグマシミュレーションでエニグマを再現されている。
民族語や方言、少数言語を使う事もあり、大戦中にはアメリカのコードトーカーでは先住民の民族語を使用し、日本でも薩隅方言等の方言が使われた事がある。
暗号例
スパイや軍人の専門分野ではなく、実際以下の例で作った事は誰しもあるのではないだろうか?(簡単に解けるかどうかはともかく、暗号の定義からいけば、これらもそうである)
その1
じろじろ見てんじゃねーよ、おまえらバカか?
つまらねぇ記事の糞くだらねぇ解説見てて、本当
はおまえらもこんなの読みたくねーと思ってるんだろ
これは善意からの忠告だからな、よーく聞いておけよ、おの
れらは所詮、ネットでしか生きられないチキン連中
もしかしなくてもそう、認めたくなくても
それが現実、リアルでは生きられないってのwww
うまだいすき
その2
たじたつたはたこたれたもたそたうた
ヒント
その3
コツは、痔、漏れそう(アナグラム)