本日も暗号について記します。
過去分はこちら。
↓↓↓
暗号: ラインセグメント日記
かの有名なシーザー(Caesar)の名を冠した暗号です。
「ブルータス、お前もか」、「賽は投げられた」を言った人です。
さて、シーザー暗号とは、アルファベット順にいくつかシフトするという暗号です。
これも過去2日間のアトバシュ暗号、ポリュビオス暗号表と同じく単一換字式暗号です。
すなわち、ある文字の変換後の文字が一定となります。
シーザー暗号でのシフトの数は$-3$個だそうです。
シーザー暗号 - Wikipedia
EはBに、DはAに、CはZに、BはYに、AはXに、、、変換されます。
変換表は下記のようになります。
変換前 | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z |
変換後 | x | y | z | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w |
シーザー暗号におけるシフトの数は自由に変更可能で、全部で26種類あります。
26種類の理由は自明と思いますが、アルファベットが26種類あるので、26の倍数だけシフトしても同じ文字に変換されます。
全ての整数が$26n+a$($0\leqq a\leqq25$)と表せて、$26$の剰余をとると$a$種類の変更パターンが残ります。
今回もシーザー暗号の工夫可能性を探ります。
・アルファベットの大文字も含めた52種類でシフトする。
・アトバシュ暗号と組み合わせて、単なるシフトで無くす。
・シフトした後、1個以外を$5\times5$の行列や、$2\times13$の行列に格納して、行や列をシフトする。
(ルービックキューブやAESのMixColumnsのように)
・アルファベットだけでなく、数字や記号やひらがな、カタカナ、漢字も含める。
・アルファベットを5個ごとにグループ化して、そのグループ内でシフトする。
シフトに対する所感として、AESのMixColumnsを連想します。
まるでルービックキューブのようなのですが、変換後の文字がオーバーラップすることもなく、グチャグチャになるので、これ自体は暗号とするのにもってこいだと思います。
それへの一歩として、単純な一方向への一定のシフトという意味でシーザー暗号は基本的な意味をもつと思いました。
また、上記のWikiによると、シーザー暗号にはアルゴリズムとKeyという暗号の基本要素があるということで、
変換表:アルファベット
Key:シフト数
というシフトの定式化ができているそうです。
すこし拡張して、シーザー暗号を
変換表:アルファベット
Key:シフト数
方向:1方向
とすると、アルファベットを1次元(数直線や$x$軸)上に並べるシフトを意味するとします。
方向が2方向の場合、上記の行列に入れて行や列をシフトするものに対応すると思います。
アルファベットを$2\times13$の行列に左上から2行にわたり格納して、1行を$-1$、5列を$-1$、2行を$-2$シフトするとしたとき
変換表:アルファベットの$2\times13$の行列
Key:$\left(1,0\right)$、$\left(0,5\right)$、$\left(2,0\right)$、$\left(2,0\right)$
方向:2方向
とでもなるのでしょうか。
ルービックキューブ状にすると、より複雑になります。
群論の登場ですね。
上記の考えは、基本的な暗号方式を元に考察を進めたものであり、人間が見つめるだけでは解きにくいような暗号化の方法を考えてみたものですが、やはり単一換字式暗号ですので頻度分析で探れます。
ですが、その域でなくなったときに、シーザー暗号のような単一換字式暗号を用いるときに少し複雑化してみて、効果が証明できれば有用となるでしょう。
最後に、シーザー暗号のアプリケーションを作成しました。
シフトの数を調整でき、アルファベットの大文字・小文字に対応しています。
↓↓↓
シーザー暗号で暗号化