고수준에서 암호학 이해하기

Source

  • Evernote/Inbox/고수준에서 암호학 이해하기.md

Summary

이 문서는 개별 암호 알고리즘의 수학적 구현보다는, 알고리즘들이 어떻게 연결되어 안전한 구조를 형성하는지에 초점을 맞춘 고수준 암호학 개요다. 주요 구성 요소로 키 교환(Key Exchange), 키 유도(Key Derivation), 암호학적 해시(Cryptographic Hashing), 키 스트레칭(Key Stretching), 대칭/비대칭 암호화(Encryption), 전자서명(Signing), 메시지 인증(Message Authentication)을 분류하여 설명한다. 각 구성 요소의 목적, 사용 조건, 그리고 일반적인 오용 사례(예: 해시를 키 스트레칭에 직접 사용, MAC 적용 순서 오류 등)에 대한 주의사항을 제시한다. 핵심 메시지는 ‘알고리즘 자체보다 구조적 연결과 올바른 사용 맥락이 보안에 더 중요하다’는 점이다.

Key Points

  • 암호학 시스템의 안전성은 개별 알고리즘보다 알고리즘 간의 연결 구조에 더 크게 의존한다.
  • 키 교환(Key Exchange): Diffie-Hellman 계열이 대표적이며, 중간자 공격 방지를 위해 인증된 키 교환이 필요할 수 있다. 생성된 키는 키 유도를 통해 사용한다.
  • 키 유도(Key Derivation): 기존 키에서 새 키를 생성하며, 키 노출 시 이전 데이터 보호 및 알고리즘 간 키 크기 조정에 사용된다.
  • 암호학적 해시(Cryptographic Hashing): 데이터의 고정 길이 요약을 제공하며, 충돌 저항성, 첫 번째/두 번째 원상복구 저항성이 필수 조건이다. 메시지 인증에는 전용 알고리즘(MAC)을 사용해야 한다.
  • 키 스트레칭(Key Stretching): 비밀번호 등 약한 입력을 키로 변환할 때 사용하며, 무작위 대입 공격을 어렵게 하기 위해 의도적으로 느려야 한다(bcrypt, scrypt 등). Salt 사용이 필수적이다.
  • 대칭 암호화(Symmetric Encryption): AES 등 표준 알고리즘이 빠르며, 블록 암호의 경우 운용 모드(mode of operation) 선택이 중요하다. 스트림 암호도 대안이다.
  • 비대칭 암호화(Asymmetric Encryption): RSA 등이 대표적이며, 대칭 암호화보다 느려 주로 키 교환이나 서명에 사용된다.
  • 전자서명(Signing): 데이터의 무결성과 발신자 인증을 제공하며, 데이터는 해시한 후 서명한다. 암호화 알고리즘과 구분되어야 한다.
  • 메시지 인증(Message Authentication): MAC을 사용하여 데이터 변조 여부를 확인하며, ‘암호화 후 MAC 적용(encrypt-then-MAC)’ 방식이 가장 안전하다.