본 글은 정보보호 개론 맥락에서 암호 시스템의 기본 개념과 동작 방식을 정리한 내용임

개념과 배경

암호학은 정보의 안전한 전달과 저장을 위한 방법론을 다루는 학문임 정보 보안의 목표는 CIA로 요약됨

  • 무결성 중간 위조·변조 불가
  • 기밀성 허용되지 않은 자는 내용 파악 불가
  • 가용성 적절한 시점에 허가된 사용자만 접근 가능

현대 보안에서는 암호 알고리즘이 공개되어도 안전해야 한다는 전제를 둠 즉 안전성은 비밀 알고리즘이 아니라 키에 의존함 컴퓨터가 다루는 모든 정보는 이진수이므로 보호는 결국 비트열을 다른 형태로 변환하는 문제로 귀결됨

암호 시스템의 기본 구성

평문을 암호문으로 바꾸는 과정이 암호화, 암호문을 다시 평문으로 복원하는 과정이 복호화 표기 관례 예시 c = E_k(p), p = D_k(c)에서 p는 plaintext, c는 ciphertext, k는 키를 의미함

양방향 암호화는 복호화가 가능함 단방향 암호화는 복호화 경로가 없거나 실질적으로 불가능한 변환을 의미함 (대표적으로 해시 함수) 본 글은 양방향 암호화를 중심으로 설명함

키의 도입

고전 암호는 알고리즘이 노출되면 빠르게 깨짐 현대 암호는 임의의 비트열인 키를 도입해 동일 알고리즘이라도 키 없이는 복호화를 계산적으로 불가능에 가깝게 만듦 키 선택과 관리가 안전성의 핵심 축임

대칭 암호

하나의 비밀키로 암호화와 복호화를 모두 수행하는 방식 송신자와 수신자만 키를 공유하면 기밀성 확보 가능 대표 알고리즘 예시 DES, AES, SEED, ARIA 현실 과제는 안전한 키 분배와 회전 주기 설계, 키 유출 시 즉시 전파 범위가 넓다는 점

비대칭 암호

공개키와 개인키로 구성되는 공개키 암호 방식 대칭키의 배포 어려움을 완화하기 위해 고안됨 최초로 제안된 공개키 방식은 디피–헬만 키 교환이며, 이후 RSA, ElGamal 등으로 확장됨 (디피–헬만은 키 교환 프로토콜이며 일반적 의미의 암호문 전송 방식과는 구분됨) 동작 개요

  • 수신자의 공개키로 송신자가 평문을 암호화
  • 암호문을 수신자에게 전달
  • 수신자가 개인키로 복호화하여 평문 획득 공개키는 배포 가능, 개인키는 소유자만 보관 사용함 공개키를 통한 기밀성, 개인키를 통한 서명·인증 등 다양한 조합 가능

트랩도어 일방향 함수

비밀통로 일방향 함수(trapdoor function)는 순방향 계산은 쉽지만 역방향은 매우 어렵게 설계된 함수이며 특정 비밀 정보(트랩도어, 여기서는 개인키)를 알면 역연산이 가능함 정의 스케치 어떤 함수 f에 대해 y = f(x)는 쉽지만 x = f^{-1}(y)는 계산적으로 어렵다고 가정하는 구조를 일방향 함수라 부름 트랩도어 k를 알면 f^{-1}를 효율적으로 계산 가능함 여기서 어렵다는 의미는 알려진 어떤 방법을 사용하더라도 현실적인 시간 내에 풀 수 없거나 성공 확률이 무시 가능한 수준이라는 뜻임 현대 공개키 암호는 이러한 가정을 전제로 함 대표 후보로 RSA의 트랩도어 퍼뮤테이션이 널리 사용됨 다만 수학적으로 완전한 증명은 부재하므로 후보로서 다루며 안전성은 현재 알려진 최선의 공격 대비 계산적 곤란성에 기반함

정리

  • 암호 알고리즘은 공개를 전제, 안전성은 키에 의존
  • 대칭 암호는 성능 우수, 키 분배가 관건
  • 비대칭 암호는 키 분배 문제를 완화, 트랩도어 일방향 함수 가정을 활용
  • RSA 등은 현재 실무에서 널리 사용되나 안전성은 계산적 어려움 가정 위에 성립 다음 글에서는 이러한 가정의 근간이 되는 어려운 문제에 대해 다룸

참고자료