보안 정의 및 공격자 모델
정확한 보안 정의와 공격자 모델은 암호화 체계가 무엇으로부터 보호해야 하는지, 그리고 공격자가 어떤 권한을 가질 것으로 가정되는지를 명확히 지정하여, '안전하다'는 모호한 개념을 테스트 가능한 주장으로 전환합니다.
Definition
보안 정의는 체계가 달성해야 할 목표와 그 목표를 달성해야 할 공격자의 모델을 공식적으로 명시하며, 일반적으로 공격자의 성공 확률이 무시할 수 있을 정도로 작은 게임 또는 이상적인 기능성 비교 형태로 제시됩니다.
Scope
이 주제는 보안 목표와 위협이 어떻게 공식화되는지 다룹니다: 목표 정의(의미론적 보안, 구별 불가능성, 위조 불가능성)와 공격자에게 증가하는 권한을 부여하는 공격 모델(선택 평문 공격, 선택 암호문 공격, 적응형 공격), 이상/실제 및 게임 기반 프레임워크, 그리고 모델링된 공격자와 실제 공격자 간의 격차(사이드 채널). 이 정의들을 충족시키기 위해 사용되는 환원 및 난이도 가정은 관련 주제에서 다루므로 여기서는 제외합니다.
Core questions
- 보안 목표는 왜 직관적이기보다는 정확하게 정의되어야 하는가?
- 기밀성 목표(의미론적 보안)와 무결성 목표(위조 불가능성)는 어떻게 구별되는가?
- 공격 모델(CPA, CCA, 적응형)은 공격자의 능력을 어떻게 포착하는가?
- 게임 기반 및 이상/실제 정의는 보안을 어떻게 표현하는가?
- 모델에서 증명 가능하게 안전한 체계가 사이드 채널과 같은 실제 공격에 실패할 수 있는 이유는 무엇인가?
Key concepts
- 의미론적 보안
- 암호문 구별 불가능성 (IND)
- 선택 평문 공격 (CPA)
- 선택 암호문 공격 (CCA)
- 존재적 위조 불가능성
- 적응형 공격자
- 게임 기반 정의
- 이상/실제 패러다임
- 사이드 채널 격차
Key theories
- 의미론적 보안 및 구별 불가능성
- 기밀성은 암호문이 유용한 정보를 전혀 누설하지 않도록 정의됩니다. 즉, 공격자는 선택된 두 메시지의 암호문을 구별할 수 없으며, 이는 Goldwasser와 Micali가 도입한 정의로 모든 현대 암호화 보안의 기반이 됩니다.
- 공격 모델 및 공격자 권한
- 보안은 공격자가 할 수 있는 일(수동적 관찰, 선택 평문 공격 또는 적응형 선택 암호문 공격 수행)에 상대적으로 명시되며, 적대적이고 상호작용적인 환경에서 사용되는 체계에는 더 강력한 모델(CCA 보안)이 필요합니다.
Mechanisms
게임 기반 정의는 도전자와 공격자를 대결시킵니다. IND-CPA 보안의 경우, 공격자가 두 개의 메시지를 제출하면 도전자는 그 중 하나를 무작위로 암호화하고, 보안은 공격자가 우연 이상의 확률로 어떤 메시지가 암호화되었는지 추측할 수 없어야 함을 요구합니다. 더 강력한 CCA 정의는 공격자에게 복호화 오라클을 제공합니다. 이상/실제 패러다임은 대신 체계와의 상호작용이 이상화된 신뢰할 수 있는 기능과의 상호작용과 구별 불가능하다면 해당 체계를 안전하다고 간주합니다. 실제 공격자는 이러한 모델 외부의 타이밍 또는 전력 누출을 악용할 수 있으며, 이는 사이드 채널을 인식하는 정의의 필요성을 제기합니다.
Clinical relevance
올바른 정의를 선택하는 것은 중요합니다. 상호작용 프로토콜에 사용되는 암호화는 단순히 CPA 보안이 아닌 CCA 보안이 필요하며, 실제 시스템(예: 초기 TLS)에 대한 패딩 오라클 공격은 너무 약한 정의를 충족하는 체계를 배포한 결과로 직접 발생했습니다. 공격자 모델은 또한 배포가 무엇으로부터 보호하지 않는지를 명확히 합니다. 예를 들어, 사이드 채널을 무시하는 모델은 타이밍 및 전력 공격이 '안전한' 구현에 대해 성공하는 이유를 설명합니다.
Evidence & guidelines
현대 표준은 체계가 강력한 정의를 충족하도록 요구합니다. 인증된 암호화(IND-CCA와 무결성)는 기밀성의 기본이며, 서명은 적응형 선택 메시지 공격 하에서 존재적으로 위조 불가능해야 합니다. 범용 구성 가능성(Universal Composability) 프레임워크는 임의의 구성 하에서도 안전하게 유지되는 정의를 제공합니다. 구현은 공식 모델 외에 사이드 채널에 강한(일정한 시간) 코딩도 필요합니다.
History
1980년대 이전에는 보안이 비공식적으로 판단되었습니다. Goldwasser와 Micali의 의미론적 보안(1982-1984)은 엄격하고 구별 불가능성 기반의 정의를 도입했으며, 곧 선택 암호문 모델과 서명 및 MAC의 위조 불가능성으로 확장되었습니다. 이상/실제 시뮬레이션 패러다임과 Canetti의 범용 구성 가능성 프레임워크(2001)는 구성 하에서의 보안 문제를 다루었으며, 현재 모든 진지한 암호화 분석을 지배하는 정의적 기반을 완성했습니다.
Key figures
- Shafi Goldwasser
- Silvio Micali
- Oded Goldreich
- Ran Canetti
- Mihir Bellare
Related topics
Seminal works
- goldwasser1984
- katz2020
- goldreich2004
Frequently asked questions
- CPA와 CCA 보안의 차이점은 무엇인가?
- 선택 평문 공격(CPA) 보안은 공격자가 자신이 선택한 메시지의 암호문을 얻을 수 있다고 가정합니다. 선택 암호문 공격(CCA) 보안은 공격자가 자신이 선택한 암호문의 복호문도 얻을 수 있도록 허용하는 더 강력한 모델로, 공격자가 암호문을 제출하고 시스템이 어떻게 반응하는지 관찰할 수 있는 모든 경우에 필요합니다.
- 체계가 증명 가능하게 안전하다면, 사이드 채널 공격은 왜 작동하는가?
- 보안 정의는 입력과 출력을 보는 공격자를 모델링하며, 타이밍, 전력 소비 또는 전자기 방출과 같은 물리적 누출은 모델링하지 않습니다. 추상적인 체계가 정의를 충족하더라도 실제 구현은 이러한 채널을 통해 비밀을 누설할 수 있으므로, 일정한 시간(constant-time) 및 누출 방지 구현도 필요합니다.