암호학 level 1
Basic_Crypto1
This Problem Basic_Crypto(Roman emperor's cipher)
FLAG FORMAT(A~Z) and empty is "_"
DH{decode_Text}
Roman emperor's cipher = Caesar Cipher
(카이사르 암호 = 시저 암호)
C = m + k (C : 암호문, m : 평문, k : 키)
암호화 함수 : E(x) = x + k (mod 26)
( E(x) : 암호문, x : 평문, k : 키 )
복호화 함수 : D(x) = x - k (mod 26)
( E(x) : 평문, x : 암호문, k : 키 )
E(x)=x+k
->E(x)-k=x
->x-k=D(x)
A(a)를 0으로 ~ Z(z)를 25로.
암호화된 텍스트 : EDVLF FUBSWR GUHDPKDFN
FLAG FORMAT(A~Z) and empty is "_"
=> 알파벳 순서를 A~Z로 변경하고, 빈 칸을 _로 채운다.
=> 경우의 수로 k(비밀키)를 추측
EDVLF FUBSWR GUHDPKDFN
= 4 3 21 11 5 . 5 20 1 18 22 17 . 6 20 7 3 15 10 3 5 13
( 암호문 - k = 평문 ) 에서 암호문은 EDVLF FUBSWR GUHDPKDFN, k(비밀키)는 3.
=> 1 0 18 8 2 . 2 17 -2 15 19 14 . 3 17 4 0 12 7 0 2 10
=> mod 26의 범위 내 수로 맞추기 (26의 배수를 더하거나 빼주면 된다.)
=> 1 0 18 8 2 . 2 17 24 15 19 14 . 3 17 4 0 12 7 0 2 10
=> BASIC CRYPTO DREAMHACK
=> 빈칸을 "_"로 변경
=> BASIC_CRYPTO_DREAMHACK
정답 : DH{BASIC_CRYPTO_CREAMHACK}