[TIL]230322 - 컴퓨터시스템보안 3주차: 고전 대칭키 암호(1)

Jimin·2023년 3월 22일
0
post-thumbnail

대칭 키 암호의 기본 개념

Kerckhoff의 원리

  • 19세기 아우후스트 케르크호프스가 제안한 원리
  • 암호체계의 안전성은
    • 암호 알고리즘의 비밀을 지키는 데 의존되어서는 안되며,
    • 키의 비밀을 지키는 데 의존되어야 함
  • 현대 암호학의 핵심이 되는 원리

  • 케르크호프스가 생각한 군사 암호의 설계 원칙
    1. 암호 체계는 비밀에 붙여질 필요가 없어야만 하고, 적의 손에 떨어지더라도 문제가 없어야 한다
      -> 공개가 되어도 상관없음, 암호의 보안성은 키 관리에 중점을 둠

-> 오늘날 암호 설계에 있어서 가장 핵심이 되는 원칙

대칭키 암호체계란?

- 용어 설명

  • 평문(Plaintext): 송신자가 수신자에게 보내는 본래의 메시지
  • 암호 알고리즘(Ecnryption algorithm): 평문을 암호문으로 변경하는 알고리즘
  • 복호 알고리즘(Decryption algorithm): 암호문을 평문으로 복원하는 알고리즘
  • 공유 비밀 키(Shared secret key): 송신자와 수신자가 함께 공유하는 암호화와 복호화에 사용되는 값(value)
  • 암호(Chipter): 암호 알고리즘과 복호 알고리즘을 통칭(일련의 보안 체계)

- 대칭키 암호체계의 특징

  • 송신자와 수신자가 비밀키(key)를 공유함
  • 즉, 암호키와 복호키가 동일함 (값이 무조건 똑같은 건 아님)

cf) 비대칭키(공개키 암호) -> 암호화키(공개) != 복호화키(중요, 비공개)

  • 복호화키 공개, 암호화키 비공개 -> ex) 전자 서명(공인 인증서 등)

고전 대칭 키 암호체계의 종류

  • 대치 암호: 평문(암호문)내 각 기호를 다른 기호로 치환하여 암호화(복호화) 수행
  • 전치 암호: 평문(암호문)내 각 기호의 위치를 다른 위치로 변환하여 암호화(복호화) 수행
  • 상기의 대치 암호화 전치 암호 알고리즘은 스트림 암호, 블록 암호로 분류할 수 있음

대치 암호

대치 암호란?

  • 하나의 기호를 다른 기호에 대체하여 암호화/복호화 수행
    • 평문에서 기호가 알파벳이라면 하나의 문자가 다른 문자로 대체됨으로써 암호화
    • 반대로 암호문에서 하나의 문자가 다른 문자로 대체됨으로써 복호화
    • ex) a->d로 대체, 2->5로 대체

대치 암호는 하나의 기호를 다른 기호로 대체함
대치 암호 -> 단일문자 암호 / 다중문자 암호

단일 문자 암호(Monoalphabetic ciphers)

  • 평문에서 하나의 문자(기호)가 위치와 상관없이 암호문에서 항상 같은 문자(기호)로 대체
  • 즉, 단일문자 암호에서 평문의 기호와 암호문에 대응되는 기호는 항상 일대일 대응 관계를 갖는 암호체계

덧셈 암호(Additive cipher)

  • 가장 간단하면서도 직관적인 암호 체계
  • 이동 암호(shift cipher)혹은 시저 암호(Ceasar cipher)로 통칭
    • 쥴리어스 시저가 사용한 데서 유래하였으며, 키 값이 3인 암호를 사용함
  • 평문, 암호문, 키에서 사용되는 기호는 모두 Z26의 우너소
    • 암호 알고리즘: 키는 평문 문자와 더해짐 -> C = (P + k) mod 26(알파벳 개수)
    • 복호 알고리즘: 암호문자에서 키를 뺌 -> P = (C - k) mod 26
      - 단순히 key 값을 더했으니 빼는 의미가 아님
      - key의 모듈러 역원 계산을 통해 역원인 -k를 더해주는 것임

덧셈 암호의 기본 개념

예제1) key = 15일 때, 평문 "hello"를 암호화하시오

암호문: WTAAD

예제2) key = 15일 때, 암호문 "WTAAD"를 복호화하시오

평문: hello

덧셈 암호의 해독

  • 덧셈 암호는 전수조사 공격(Brute Force Attack)에 매우 취약
    • 덧센 암호의 키 공간 Z26 -> 26개의 key value만이 존재
    • 이 중에서 key = 0은 사용하지 않음 (암호문과 평문이 동일)
    • 따라서 덧셈 암호에서 실제 가용한 키 개수는 25개
    • 단지 25개의 키만 존재하므로, 암호문에 해당 키들을 모두 더해서 유의미한 평문을 유추할 수 있음

전수조사 공격: 키 범위가 제한적일 때(키의 공간이 적을 때) 사용
가능한 키 전부 대입해서 찾음
-> 보안성이 없음!

  • 덧셈 암호는 전수조사 공격에 매우 취약
  • 현대 암호에서 중요한 사항: 키 공간을 굉장히 크게 만들어야 함
    -> 키의 값도 커지게 되므로 연산량도 많아짐 -> 비트 연산 수행 -> 비트 길이도 길어짐 -> 빠른 속도를 요구하므로 주로 C언어 사용

0개의 댓글