2장 고전 암호 (Shift, Monoalphabetic Substitution, Multiple-Letter Encryption, Polyalphabetic, Transposition)

2026. 4. 14. 04:40·CSE/정보보안

plaintext 는 소문자, CIPHERTEXT는 대문자로 표기한다.

Shift Ciphers (카이사르, 시저)

  • 공백 없애고, k칸씩 뒤로 밀기 (ex. a→D , x→ A)
  • 카이사르 : k == 3
  • 암 : (x+k)(mod 26) → y
  • 복 : (y-k)(mod 26) → x

Attack 유형

단일 Shift Ciphers는 Ciphertext only, Known plaintext, Chosen plaintext, Chosen ciphertext Attack 방법으로 쉽게 복호화가 가능하다.

Ciphertext only Attack

k=1..26 브포돌리기

Known plaintext Attack

plaintext ↔ ciphertext 매칭되는 한글자를 알고 있는 경우, k 바로 구해서 평문 뽑기 가능.

Chosen plaintext Attack

plaintext a 를 넣으면 (“a”+k) mod 26 = “a”+k

즉, 결과 자체가 k 를 의미한다.

Chosen ciphertext Attack

ciphertext A 를 넣으면 (”A”-k) mod 26 = “A”-k

즉, 결과 자체가 k음수를 의미한다.


Monoalphabetic Substitution Ciphers (단일치환)

시프트 암호를 수정한 버전

알파벳의 각 문자가 다른 문자로 1:1 치환이 되며, encryption key(치환 테이블)는 26! 개의 경우의 수가 존재한다.

Ciphertext Only Attack

언어의 특성 : 영어에서 문자의 분배는 uniform하지않다. (e > t > … 순으로 빈도수가 높다.)

단일 치환 암호는 상대적 철자 빈도를 변화시키진않기때문에 예측이 가능하며, 각 글자를 개별적으로 알아야한다.

  1. 암호문의 철자 빈도 계산
  2. 계산된 값을 알려진 값과 비교
  3. 정점/저점 찾기 (카이사르의 경우, 그래프 생김새로 몇번 밀었는지 유추 가능)

Multiple-Letter Encryption (Playfair cipher)

“여러 문자를 한꺼번에” 암호화 하도록 수정한 버전

테이블 기반으로 쌍을 지어**(2개씩 묶어서)** 암호화하여 26*26의 경우의 수가 존재한다.

  1. 5*5 matrix 생성 및 keyword 설정
  2. keyword 채우고 남는 곳은 키워드 미포함 알파벳으로 채우기
  3. 암호화 (두글자씩 쌍으로 암호화)
    • 한 쌍이 같으면 사이에 x 채워넣고 다시 쌍 지어 계산 (홀수도)
    • 같은 열이면 바로 아래 글자로
    • 같은 행이면 바로 오른쪽 글자로
    • 그 외는 자신의 행과 상대의 열 교점으로

Polyalphabetic cipher (다중치환)

하나의 암호 알파벳만 사용하는 게 아니라 **여러 개의 암호 알파벳(key)**을 번갈아 가며 사용하는 것 ( 같은 알파벳이여도 위치에 따라 다르게 적용된다. )

ith key값과 ith plaintext 값을 이용해 치환할 값을 선택한다.

→ 추측해야할 알파벳이 많아 추측하기 어려움. 철자 빈도가 평평함

Vigenere Table : 테이블 내용이 카이사르의 연속임.

Transposition Ciphers (전치)

앞에선 치환했다면, 이건 그냥 순서를 재배열하는거임.

철자 빈도 분포 동일.

Rail Rence Cipher

  1. 메세지를 여러행에 걸쳐 대각선 방향으로 지그재그로 쓴다.
  2. 행 단위로 차례로 읽어 암호문 만들기

Row Transposition Ciphers

  1. 메세지를 정해진 열의 개수에 맞춰 행 방향으로 쓴다.
  2. key에 지정된 순서대로 열을 재배열한 뒤 세로 방향으로 읽는다.

Rotor Machines

제 2차 세계 대전 당시 독일에서 사용함. 시간에 따라 변하는 복잡한 치환 암호.

원통을 직렬로 연결하여 사용하며, 각 로터는 하나의 치환 규칙을 제공하며, 글자가 하나 암호화될 때마다 로터가 회전하면서 치환규칙이 계속 바뀐다. 3개의 로터를 쓰면 26^3 의 경우의수를 가지게됨.

'CSE > 정보보안' 카테고리의 다른 글

1장 정보보안 소개 (CIA)  (0) 2026.04.14
'CSE/정보보안' 카테고리의 다른 글
  • 1장 정보보안 소개 (CIA)
tistraw0454
tistraw0454
tistraw0454 님의 블로그 입니다.
  • tistraw0454
    tistraw0454 님의 블로그
    tistraw0454
  • 전체
    오늘
    어제
    • 분류 전체보기 (63)
      • Rev (29)
      • Pwn (11)
        • how2heap (2)
      • WHS (4)
      • CSE (15)
        • 정보보안 (2)
        • 인공지능보안 (0)
        • 자료구조 (7)
        • Java (6)
      • SQLD (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    rtld
    serial port
    whitehat school
    ELF
    VirtualKD
    VMware Workstation
    rop
    시스템해킹
    __libc_start_main()
    가젯
    windows
    movaps
    WHS
    _start
    vkd
    Debug
    gadget
    windows kernel
    plt
    windbg
    PWN
    Got
    __libc_start_main
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
tistraw0454
2장 고전 암호 (Shift, Monoalphabetic Substitution, Multiple-Letter Encryption, Polyalphabetic, Transposition)
상단으로

티스토리툴바