シーザー暗号
さて,これまでは下記のように文字を文字に置き換える方法でした.
今回は文字を数字に置き換える方法をとってみたいと思います.
数値に置き換える利点は,コンピュータでの処理をしやすくするところです.コンピュータで処理=計算することになるので,暗号化の鍵はキーワード(鍵語/上表ではKEYWORD)ではなく,計算式になります.
まず単純にA〜Zに数値を入れていきます.
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 |
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 |
ココで肝心なのは,A=01からではなくA=00から置き換えるコトです.
0〜25という数値はアルファベット26文字と,どう関係しているのでしょうか?
今が深夜の0:00だとすると,今から50時間後は何時でしょう?
計算方法はいくつかあると思いますが,時間は24時間で0:00に戻るので50時間で24時間がいくつあるか(=何日経ったか)を計算し,残った数値はその日の何時であるかを表すことになるので…
50−24=26
26−24=2
もう少しスマートな計算式は
50÷24=2余り2
これは24時間が2回と残り2
となり午前2:00となります.
では,今から130時間後は何時でしょう?
130÷24=5余り10
となり10:00となります.
以上のコトは,また別の式=mod記数方でも表すコトができます.
50 mod 24 = 2
130 mod 24 = 10
これらは50や130を24で割ったときの[余り]を求める式です.
0 mod 24 = 0
1 mod 24 = 1
2 mod 24 = 2
3 mod 24 = 3
・・・
|
23 mod 24 = 23
24 mod 24 = 0
25 mod 24 = 1
26 mod 24 = 2
・・・
|
47 mod 24 = 23
48 mod 24 = 0
49 mod 24 = 1
50 mod 24 = 2
・・・
|
と表記できるのがおわかりでしょうか?
|