포스트

[정보보안] 암호학 Cryptography

다음은 정보보안에서 암호학에 대한 이야기다.


  • 암호학(Cryptography)의 정의와 관련 용어:
    • Cryptography: “비밀 코드(비밀 문서)”를 만드는 것.
    • Cryptanalysis: “비밀 코드”를 해독하는 것.
    • Cryptology: Cryptography와 Cryptanalysis를 포함하는 개념.
    • Crypto: 위 모든 것을 포괄하며 더 많은 것을 의미하는 용어.
  • 암호학의 핵심 기능:
    • 보안 통신: 기밀성(confidentiality): (다른 사람이 어떤 정보인지 모르는 것)과 무결성(integrity): (중간에 정보의 변형이 있으면 안된다)을 제공한다.
    • 비밀 인증 및 키 설정: 통신 상대방을 인증하고 보안 통신을 위한 키를 설정한다.
      • 키를 확립하는 과정(key establishment): Alice와 Bob만 아는 정보
      1
      2
      3
      4
      5
      6
      7
      
          talking to Bob                          talking to Alice
                              ------------>
          Alice               <------------               Bob
                              ------------>
      
                                    ^
                     attacker??? ---|        
      
      • 엘리스와 밥이 안전하게 통신하기 위해서 키가 필요하다.
  • 암호학의 확장된 기능:
    • 디지털 서명(Digital signatures).
    • 익명 통신(Anonymous communication).
    • 익명 디지털 현금(Anonymous digital cash): 누가 사용했는지 모르게 디지털 코인을 사용하는 방법과 이중 지불 방지한다.
    • 프로토콜: 선거, 비공개 경매, 안전한 다자간 계산 등.
    • 계산의 비공개 위탁(Privately outsourcing computation).
    • 영지식 증명(Zero knowledge (proof of knowledge)): 어떤 사실을 알고 있음을 증명하되, 그 사실 자체를 노출하지 않는 것.
  • 대칭 암호화(Symmetric encryption)의 구성 요소:
    • E, D: 암호화 및 복호화 알고리즘 (cipher).
    • k: 비밀 키 (예: 128비트).
    • m, c: 평문(plaintext), 암호문(ciphertext).
    • 암호화 알고리즘은 공개되어 있으며, 독점적인(proprietary) 암호는 절대 사용해서는 안 된다.
  • 케르크호프스 원칙(Kerckhoffs’ Principle):
    • 기본 가정: 시스템은 공격자에게 완전히 알려져 있으며, 오직 키만이 비밀이라는 원칙. 즉, 암호 알고리즘은 비밀이 아니다.
    • 이유: 비밀 알고리즘은 노출 시 취약점이 드러나며, 결국 비밀로 유지되지 못하기 때문에 사전에 약점을 찾는 것이 낫다.
  • 단순 치환 암호(Simple Substitution):
    • 시저 암호(Caesar’s cipher): 알파벳을 특정 숫자(예: 3)만큼 이동하여 암호화.
    • 일반적인 단순 치환: 키는 알파벳의 임의의 순열일 수 있다. 26! (약 2의 88승)개 이상의 가능한 키가 존재한다.
  • 암호 해독(Cryptanalysis):
    • 모든 키 시도(Exhaustive key search): 시저 암호처럼 키 공간이 작을 경우 (26개) 모든 키를 시도하여 해독.
    • 영문자 빈도 분석(English letter frequency counts): 단순 치환 암호의 키 공간이 클 경우 (26!) 빈도 분석을 통해 해독.
  • 다른 암호 방식:
    • 비즈네르 암호(Vigener cipher): 키 길이에 따라 다른 시프트 값을 적용하는 방식.
    • 이중 전치(Double Transposition): 평문의 행과 열을 모두 순열하는 방식.
  • 일회용 패드(One-Time Pad, OTP):
    • 암호화: 평문(Plaintext) ⊕ 키(Key) = 암호문(Ciphertext).
    • 복호화: 암호문(Ciphertext) ⊕ 키(Key) = 평문(Plaintext).
    • 보안성: 올바르게 사용하면 수학적으로 증명된 보안(Provably secure) 제공. 암호문은 평문에 대한 어떠한 정보도 제공하지 않으며, 모든 평문이 동일하게 나타날 가능성이 있다.
    • 올바른 사용 조건: 패드(키)는 랜덤하고, 단 한 번만 사용해야 하며, 송신자와 수신자만 알아야 한다. 또한, 패드(키)의 크기는 메시지와 동일해야 한다.
    • 실제 사례: Project VENONA에서 “일회용” 패드의 반복 사용으로 암호 해독이 가능해졌다.
  • 스트림 암호(Stream ciphers)공격:
    • 개념: OTP를 의사 난수 생성기(PRG)를 사용하여 실용적으로 만든 것. E(k,m) = m ⊕ G(k), D(k,c) = c ⊕ G(k). PRG는 예측 불가능해야 한다.
    • 공격 1: 두 번 사용된 패드(Two-time pad)는 불안전하다: 스트림 암호 키를 두 번 이상 사용하면 안 된다. C1 ⊕ C2 = m1 ⊕ m2가 되어 평문이 노출될 수 있다. (예: 802.11b WEP의 IV 반복 문제).
    • 공격 2: 무결성이 없다 (OTP는 가변적이다): 암호문에 대한 변경이 감지되지 않고 평문에 예측 가능한 영향을 미친다. (예: “From: Bob”을 “From: Eve”로 변경 가능).
  • 코드북 암호(Codebook Cipher):
    • 문자 그대로 “코드워드”로 가득 찬 책.
    • 현대 블록 암호는 코드북으로 볼 수 있다.
  • 클로드 섀넌(Claude Shannon)과 기본 개념:
    • 정보 이론의 창시자.
    • 1949년 논문 “Comm. Thy. of Secrecy Systems”.
    • 혼돈(Confusion): 평문과 암호문 사이의 관계를 모호하게 만드는 것.
    • 확산(Diffusion): 평문의 통계적 특성을 암호문 전체에 퍼뜨리는 것.
    • OTP는 혼돈만 제공하며, 이중 전치는 확산만 제공한다.
  • 암호학의 분류(Taxonomy of Cryptography):
    • 대칭 키(Symmetric Key): 암호화와 복호화에 동일한 키를 사용. 스트림 암호와 블록 암호가 있다.
    • 공개 키(Public Key) 또는 비대칭 암호(asymmetric crypto): 암호화용 공개 키와 복호화용 개인 키 두 가지 키를 사용. 디지털 서명은 대칭 키 암호에서는 비교할 수 없는 기능이다.
    • 해시 알고리즘(Hash algorithms): “단방향(one way)” 암호로 볼 수 있다.
  • 암호 해독의 분류(Taxonomy of Cryptanalysis):
    • 공격자(Trudy)에게 사용 가능한 정보의 관점에서 분류.
    • 암호문 단독 공격(Ciphertext only), 기지 평문 공격(Known plaintext), 선택 평문 공격(Chosen plaintext).
    • 그 외: 적응적 선택 평문 공격, 관련 키 공격, 전방 탐색 (공개 키 암호) 등.

간단히 비유하자면, 암호학은 메시지를 숨기고 보호하는 다양한 도구를 만드는 건축과 같다. 초기에는 간단한 벽돌(단순 치환)로 건물을 지었지만, 쉽게 해체될 수 있어 더 복잡한 구조(비즈네르, 이중 전치)를 만들었다. 일회용 패드는 완벽한 방탄 벽(증명된 보안)이지만, 매번 새 벽돌을 사용하고 파기해야 하며(랜덤, 일회성), 그렇지 않으면 쉽게 뚫린다. 현대 암호학은 혼돈(메시지를 뒤섞어 알아보지 못하게 함)과 확산(메시지 흔적을 넓게 퍼뜨림)이라는 건축 원칙을 사용하여 더욱 견고한 구조물을 만들며, 대칭 키와 공개 키라는 두 가지 주요 건축 양식을 가지고 있다.

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.