cryptography 기본 용어 정리

2025-06-19

%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2025-06-09_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_3.25.40.png 암호학(cryptography)은 평문(plaintext), 암호문(ciphertext), 그리고 키(key)를 중심으로 구성된다. 통신에서 Alice는 메시지를 안전하게 Bob에게 전달하고 싶어 한다. 이를 위해 Alice는 메시지를 암호화하고, Bob은 이를 복호화해서 원래의 내용을 읽는다.

Alice는 먼저 전달하려는 평문 메시지 mm을 가지고, 자신의 암호화 키 KAK_A를 사용해 암호화한다. 이 과정을 통해 KA(m)K_A(m)이라는 암호문(ciphertext)이 생성된다. 암호화는 평문을 외부에서 알아볼 수 없는 형태로 바꾸는 과정으로, 네트워크 상에서 중간에 누군가 메시지를 가로채더라도 내용을 파악하지 못하게 한다.

이 암호문은 Bob에게 전달된다. Bob은 자신의 복호화 키 KBK_B를 사용해 이 암호문을 복호화한다. 복호화는 암호화를 역으로 수행하는 과정이고, 아래 식으로 표현할 수 있다.

m=KB(KA(m))m = K_B(K_A(m))

즉, Bob이 자신의 키로 Alice의 암호문을 복원하면 원래 메시지 mm이 다시 나타난다.

실제로는 KAK_A가 Alice의 공개키, KBK_B가 Bob의 개인키일 수도 있다. 대칭키 암호에서는 KAK_AKBK_B가 동일한 키를 공유하는 경우도 있다.

%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA_2025-06-09_%E1%84%8B%E1%85%A9%E1%84%92%E1%85%AE_3.25.54.png 암호화 시스템도 완전히 안전하지는 않다. 만약 공격자인 Trudy가 시스템을 공격하려고 한다면, 사용 가능한 정보에 따라 다양한 방법을 시도할 수 있다.

첫 번째는 암호문만을 가지고 시도하는 공격(ciphertext-only attack)이다. 이 경우 Trudy는 평문은 전혀 모르고, 오직 암호화된 메시지(=ciphertext)만 가지고 분석해야 한다. 이 상황에서는 두 가지 주요 전략이 존재한다.

  • 하나는 무차별 대입(brute force) 방식으로, 가능한 모든 키를 하나씩 대입해 복호화를 시도하고, 그중 자연스러운 결과가 나오는 키를 찾아내는 방식이다. 키 공간이 충분히 클 경우 시간과 자원이 매우 많이 들기 때문에 실용적인 키 크기를 사용하는 것이 중요하다.
  • 다른 하나는 통계적 분석(statistical analysis)이다. 예를 들어 어떤 글자가 더 자주 나오는지를 분석해서 암호문 속 규칙을 추론하려는 시도다. 단순한 암호일수록 성공 확률이 높다.

두 번째는 알고 있는 평문을 기반으로 한 공격(known-plaintext attack)이다. 여기서 Trudy는 어떤 암호문이 어떤 평문에 대응되는지를 일부 알고 있다. 예를 들어, Trudy가 "alicebob"이라는 평문과 그에 대응하는 암호문을 알고 있다면, 특히 암호 체계가 단순하다면(ex, 단일 치환 암호) 각 알파벳이 어떻게 암호화되는지를 비교적 쉽게 유추할 수 있다.

세 번째는 선택 평문 공격(chosen-plaintext attack)이다. Trudy가 자신이 선택한 평문을 암호화해서 대응하는 암호문을 얻을 수 있는 상황을 의미한다. 이 경우 암호화 함수의 구조나 키에 대한 정보를 유추해내기가 상대적으로 쉬워진다. 특히 블록 암호나 대칭키 시스템에서는 주의가 필요하다.