タイトルが意味不明すぎてやばい。。
最近暗号技術にはまっていて、『暗号技術のすべて』という本を読んどります。
で、古典暗号である「シーザー暗号」が分かりやすくて楽しいのでまとめてみるんご。
でゅふふっ。でゅふふふふふふふふっ。でゅふふふふふふふふふふふふっ。
僕のプロフィールはこちら
シーザー暗号とは
サラダじゃないよ。
ジュリアス・シーザー(ユリウス・カエサル)が考案した暗号です。
ガリア戦争の際、味方とのやりとりにシーザー暗号を用いていたらしいです。
シーザー暗号の特徴
- シーザー暗号は「古典暗号のひとつ」である
- シーザー暗号は「単一換字式暗号のひとつ」である。
シーザー暗号の仕組み
シーザー暗号の仕組みは「アルファベットを3文字分ずらす」というものです。
対応表は以下。
平文 | 暗号文 |
---|---|
a | D |
b | E |
c | F |
d | G |
e | H |
f | I |
g | J |
h | K |
i | L |
j | M |
k | N |
l | O |
m | P |
n | Q |
o | R |
p | S |
q | T |
r | U |
s | V |
t | W |
u | X |
v | Y |
w | Z |
x | A |
y | B |
z | C |
※暗号化された文字列は「大文字」であることが多いので、暗号文は大文字とする。
シーザー暗号の暗号アルゴリズム・復号アルゴリズム
暗号アルゴリズム | 平文の各文字を右に3文字ずらす |
---|---|
復号アルゴリズム | 暗号文の各文字を左に3文字ずらす |
※復号アルゴリズムに関して、アルファベットであれば26文字と決まっているので「暗号文の各文字を右に23(26-3)文字ずらす」でも可。
シーザー暗号を使ってみる
シェルで実行した場合はこうなるんご。
暗号化
1 2 |
$ echo IZUMI | tr A-Z D-ZA-C LCXPL |
復号化
1 2 |
$ echo LCXPL | tr D-ZA-C A-Z IZUMI |
実際にshellで打ち込んでみたらこんな感じ。
ROTって何?
シーザー暗号は「ROT3」とも呼びます。
ROTとは、rotate(回転)という意味で、ROTの後に付く数字は「何文字ずらしたか」の数字を表します。
n文字ずらすという時点で、シーザー暗号ではなく「シフト暗号」になるのでここで詳細は書きません。
3文字ずらす場合は「ROT3」だし、10文字ずらす場合は「ROT10」となります。
おすすめ書籍
この本、スーパー分かりやすくて超好き。
まとめ
シーザー暗号って面白いよね。
おわり。
うんちょこちょこちょこぴーーーーーーーーーーーーーーーーーーーーーーーーーー!!!
関連記事
以下の記事も合わせて読まれています。