換字式暗号(弊研究室の某課題について考える24日目)

はじめに

この記事は弊研究室の某課題について考えるの24日目の記事になります

今日は換字式暗号についてです。シーザー暗号とかヴィジュネルとかですね

シーザー暗号

シーザー暗号はローマ皇帝ガイウス・ユリウス・カエサル使用した暗号で、辞書順の文字列を-3文字ずらした暗号となります。下の図のようなことである

ADになるといった感じになります

f:id:kataware8136:20180307204316p:plain

よくあるのはROT13という13文字シフトする暗号が有名です

シーザー暗号は鍵として何文字シフトするか(ROT13なら鍵は13)、それと辞書を必要とします。

普通の辞書はABCDEFGHIJKLMNOPQRSTUVWXYZですが、ほかの文字を付け加えた辞書で暗号化することも可能です。

シーザー暗号のアルゴリズム

辞書をABCDEFGHIJKLMNOPQRSTUVWXYZとしてA=0Z=26とする

文字xとして鍵nでシーザー暗号すると、下のようになる

暗号化:C_n[x] = (x + n) mod 26

復号:P_n[x] = (x - n ) mod 26

ヴィジュネル暗号

ヴィジュネル暗号は下の画像に示すヴィジュネル方陣と任意の鍵を用いて暗号化と復号を行う換字式暗号です

https://upload.wikimedia.org/wikipedia/commons/c/c7/Vigenere-square.png

画像の最上段が平文、一番左の列が鍵として交差する部分が暗号化された新たな文字となります。

たとえば平文がhelloworldで鍵がkeyだった場合hkが重なるrが生み出される暗号となります。

平文が鍵の長さより長い場合は鍵を繰り返して暗号化を行います。

helloworld

keykeykeyk

こんな感じで対応して暗号化されます。

ヴィジュネル暗号は鍵が分からない&鍵の長さがわからないことで復号を困難としています。なのでCTFの問題的には鍵が求められるor鍵の周期がわかるといったことで解けるようになります。

SECCONのヴィジュネル

k: ????????????

p: SECCON{???????????????????????????????????}

c: LMIG}RPEDOEEWKJIQIWKJWMNDTSR}TFVUFWYOCBAJBQ

k=key, p=plain, c=cipher, md5(p)=f528a6ab914c1ecf856a1d93103948fe

 |ABCDEFGHIJKLMNOPQRSTUVWXYZ{}
-+----------------------------
A|ABCDEFGHIJKLMNOPQRSTUVWXYZ{}
B|BCDEFGHIJKLMNOPQRSTUVWXYZ{}A
C|CDEFGHIJKLMNOPQRSTUVWXYZ{}AB
D|DEFGHIJKLMNOPQRSTUVWXYZ{}ABC
E|EFGHIJKLMNOPQRSTUVWXYZ{}ABCD
F|FGHIJKLMNOPQRSTUVWXYZ{}ABCDE
G|GHIJKLMNOPQRSTUVWXYZ{}ABCDEF
H|HIJKLMNOPQRSTUVWXYZ{}ABCDEFG
I|IJKLMNOPQRSTUVWXYZ{}ABCDEFGH
J|JKLMNOPQRSTUVWXYZ{}ABCDEFGHI
K|KLMNOPQRSTUVWXYZ{}ABCDEFGHIJ
L|LMNOPQRSTUVWXYZ{}ABCDEFGHIJK
M|MNOPQRSTUVWXYZ{}ABCDEFGHIJKL
N|NOPQRSTUVWXYZ{}ABCDEFGHIJKLM
O|OPQRSTUVWXYZ{}ABCDEFGHIJKLMN
P|PQRSTUVWXYZ{}ABCDEFGHIJKLMNO
Q|QRSTUVWXYZ{}ABCDEFGHIJKLMNOP
R|RSTUVWXYZ{}ABCDEFGHIJKLMNOPQ
S|STUVWXYZ{}ABCDEFGHIJKLMNOPQR
T|TUVWXYZ{}ABCDEFGHIJKLMNOPQRS
U|UVWXYZ{}ABCDEFGHIJKLMNOPQRST
V|VWXYZ{}ABCDEFGHIJKLMNOPQRSTU
W|WXYZ{}ABCDEFGHIJKLMNOPQRSTUV
X|XYZ{}ABCDEFGHIJKLMNOPQRSTUVW
Y|YZ{}ABCDEFGHIJKLMNOPQRSTUVWX
Z|Z{}ABCDEFGHIJKLMNOPQRSTUVWXY
{|{}ABCDEFGHIJKLMNOPQRSTUVWXYZ
}|}ABCDEFGHIJKLMNOPQRSTUVWXYZ{

練習問題としていい感じです

上杉暗号

下の図を見れば察するのではないでしょうか....

例えばうえすぎなら四三 五六 七五 六三って感じになります

f:id:kataware8136:20180307232146p:plain