산술 기반 암호 원시술 형식 검증과 Coq 툴박스 확장
초록
본 논문은 기존 Coq 기반 암호 게임 증명 툴박스에 수론 연산을 지원하는 모듈을 추가함으로써, 산술 기반 암호 원시술의 형식 검증을 가능하게 한다. 확장된 툴을 이용해 Blum‑Blum‑Shub 난수 생성기의 예측 불가능성 증명과 Goldwasser‑Micali 공개키 암호의 의미론적 보안을 기계 검증하였다.
상세 분석
이 연구는 암호학에서 널리 사용되는 게임 기반 보안 증명의 형식화 문제를 Coq 증명 도우미 위에 구축된 기존 툴박스에 수학적 기반을 보강함으로써 해결한다. 기존 툴은 확률적 게임 전환과 인출자(oracle) 정의, 복구 가능성(reduction) 구조를 모델링하는 데 초점을 맞췄으나, 정수론 연산—특히 모듈러 거듭제곱, 소인수 분해 가정, QR(Quadratic Residue) 판정—에 대한 공식화가 부족했다. 논문은 이러한 결함을 메우기 위해 두 가지 핵심 모듈을 구현한다. 첫째, Coq의 표준 라이브러리를 확장하여 자연수와 정수에 대한 모듈러 연산, 유클리드 알고리즘, 베즈 정리 등을 정의하고, 증명 가능한 성질(예: 페르마 소정리, 오일러 정리)을 정리한다. 둘째, 암호학적 가정인 난이도 가정(예: RSA 문제, QR 문제)을 Coq의 Prop 형태로 선언하고, 해당 가정이 게임 전환 단계에서 어떻게 사용되는지를 명시한다.
구현된 수론 라이브러리는 추상적인 연산자를 제공함으로써, 증명자가 구체적인 수치를 다루지 않고도 “모듈러 거듭제곱이 효율적으로 계산 가능하다”는 전제를 명시적으로 삽입할 수 있게 한다. 이는 특히 BBS 난수 생성기의 경우, 상태 전이 함수 s_{i+1}=s_i^2 mod N에서 N이 두 큰 소수의 곱이라는 전제가 핵심이므로, 이를 Coq 내에서 안전하게 가정하고 증명 흐름에 통합한다는 점에서 의미가 크다.
또한, Goldwasser‑Micali 암호의 의미론적 보안 증명에서는 암호문이 QR인지 비QR인지에 따라 복호화가 달라지는 구조를 활용한다. 논문은 QR 판단을 위한 레전드(legendre symbol) 정의와 그 계산 복잡도에 대한 형식적 증명을 제공하고, 이를 통해 “암호문이 QR인지 여부를 알 수 없으므로, 어떤 평문도 동일한 확률로 암호화된다”는 보안 논리를 Coq 안에서 완전하게 전개한다.
실험 결과, 확장된 툴박스를 이용해 BBS와 Goldwasser‑Micali 두 사례 모두 전체 증명을 자동 검증했으며, 증명 길이는 기존 수학적 논문에 비해 약 30% 정도 감소했다. 이는 수론 연산을 미리 정의해 놓음으로써 증명자가 반복적으로 증명해야 할 기본 사실들을 재사용할 수 있었기 때문이다. 또한, 증명 과정에서 발생할 수 있는 미세한 논리 오류(예: 모듈러 역원 존재성 가정 누락)를 Coq가 자동으로 포착함으로써 인간 검증자의 실수를 크게 줄였다.
이러한 접근은 향후 RSA, ElGamal, Paillier 등과 같이 산술적 구조에 의존하는 암호 체계의 형식 검증에도 확장 가능성을 시사한다. 특히, 수론적 가정과 게임 전환을 명확히 분리하고, 각각을 독립적인 Coq 모듈로 관리함으로써, 새로운 암호 설계자가 기존 검증 인프라를 재활용하면서도 자신만의 가정을 쉽게 추가할 수 있는 환경을 제공한다는 점이 큰 장점이다.
댓글 및 학술 토론
Loading comments...
의견 남기기