[Dreamhack - 암호학 level 1] Basic_Crypto1 (정답O)

0_0·2022년 11월 29일
0

Dreamhack

목록 보기
1/3

암호학 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)


mod 26

A(a)를 0으로 ~ Z(z)를 25로.

  • modular(모듈러) n : 지정된 숫자(n)로 나누었을 때 나머지를 이용하여 0~(n-1)의 범위 내에서 표현할 수 있도록 하는 표현 방식.
  • 영어 알파벳이 대소문자 구분 없이는 총 26개.
  • -26 ≡ 0 ≡ 26 ≡ 52 ≡ 78 (mod 26)

문제에서..

암호화된 텍스트 : 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 = 3인 경우,

( 암호문 - 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

평문 : BASIC_CRYPTO_DREAMHACK



!! 정답 스포 주의 !!









정답 : DH{BASIC_CRYPTO_CREAMHACK}

0개의 댓글