질문 188 · 실전 면접 답변
절대 깨지지 않는 완벽한 보안을 갖춘 암호 알고리즘이라는 것이 가능할까요?
이렇게 답해 보세요 (핵심 답변)
보안을 논할 때는 먼저 공격자의 능력(위협 모델)과 지키려는 성질(기밀성·무결성·인증)부터 정의해야 합니다. 평문만큼 긴 무작위 비밀 키를 단 한 번만 쓰는 일회용 패드(One-Time Pad)는 이론적인 완전 비밀성을 제공하지만 키 전달이 어렵고 메시지 변조(무결성)까지는 막지 못합니다. 따라서 실무 암호는 현실적인 계산 능력 안에서 안전하다는 계산적 안전성에 기반하며, 알고리즘뿐 아니라 키 관리·구현·프로토콜을 합친 시스템 전체로 보안을 다룹니다.
함께 설명하면 좋은 이유 (꼬리질문 대비)
- 무한한 계산 자원을 가정하는 정보 이론적 안전성과 현실적 계산 한계를 가정하는 계산적 안전성은 전제 조건이 다릅니다.
- 내용을 숨기는 기밀성(암호화)과 암호문이 중간에 조작되었는지 검증하는 무결성(MAC, AEAD)은 별도로 챙겨야 하는 성질입니다.
면접에서 자주 하는 실수
'어떤 암호도 믿을 수 없다'는 극단적 단정과 '유명한 암호 알고리즘만 쓰면 시스템 전체가 완벽히 안전하다'는 단정을 모두 피해야 합니다.
원리와 예제까지 읽기
공식 참고 자료
질문 목록 출처 ↗ · 원본 188번을 바탕으로 질문과 답변을 새로 정리했습니다.