벤알로흐 암호의 함정과 교정: 안전한 동형 암호 구현

벤알로흐가 제안한 확률적 동형 암호는 골드와셔‑미칼리보다 효율적이지만, 원 논문에 키 생성 조건이 불완전해 복호화가 모호해지는 경우가 있다. 본 논문은 그 결함을 정확히 규명하고, 올바른 키 조건과 복호화 절차를 제시하며, 오류 발생 확률을 수식적으로 계산한다. 또한 전자투표, 비밀 공유, 온라인 포커 등 기존 응용에 미치는 영향을 분석해, 잘못된 키 선택

벤알로흐 암호의 함정과 교정: 안전한 동형 암호 구현

초록

벤알로흐가 제안한 확률적 동형 암호는 골드와셔‑미칼리보다 효율적이지만, 원 논문에 키 생성 조건이 불완전해 복호화가 모호해지는 경우가 있다. 본 논문은 그 결함을 정확히 규명하고, 올바른 키 조건과 복호화 절차를 제시하며, 오류 발생 확률을 수식적으로 계산한다. 또한 전자투표, 비밀 공유, 온라인 포커 등 기존 응용에 미치는 영향을 분석해, 잘못된 키 선택이 실질적인 보안·정합성 위협을 초래함을 보여준다.

상세 요약

벤알로흐 암호는 1994년 제시된 “Dense Probabilistic Encryption”으로, 모듈러 연산을 기반으로 한 확률적 암호화와 동형성을 동시에 제공한다. 핵심 아이디어는 큰 소수 p와 q를 선택하고, n = p·q, 그리고 φ(n) = (p‑1)(q‑1) 위에서 작은 정수 r을 고른 뒤, 공개키 (n, y)와 비밀키 (p, q, r) 를 구성하는 것이다. 여기서 y는 φ(n)와 서로소이며, y^r ≡ 1 (mod n) 을 만족하도록 선택한다. 암호화는 m·y^s (mod n) 형태이며, s는 무작위 값이다. 복호화는 c^r (mod n) 을 계산해 m을 복원한다.

원 논문에서는 “r은 φ(n) 의 약수이며, r > 1”이라는 조건만을 명시했는데, 이는 충분하지 않다. 실제로 r이 φ(n) 의 약수이면서도 y^((φ(n))/r) ≡ 1 (mod n) 인 경우가 존재한다. 이 경우 암호문 c에 대해 서로 다른 평문 m1, m2 가 동일한 c 로 매핑될 수 있어 복호화가 다중값을 갖게 된다. 즉, 복호화 함수가 전사적이면서도 일대일이 보장되지 않는다.

논문은 이 문제를 두 단계로 해결한다. 첫째, 키 생성 시 y 가 φ(n)/r 차수의 원소가 아니도록 강제한다. 구체적으로, y^((φ(n))/r) ≠ 1 (mod n) 를 검사하고, 위 조건을 만족하지 않으면 새로운 y 를 선택한다. 둘째, 복호화 단계에서 c^r (mod n) 대신 c^{r·t} (mod n) 형태의 보정 연산을 도입해, r·t 가 φ(n) 와 서로소가 되도록 한다. 여기서 t 는 최소 양의 정수이며, gcd(r·t, φ(n)) = 1 을 만족한다. 이러한 보정은 복호화가 유일한 평문을 반환하도록 보장한다.

결함 발생 확률은 “y 가 φ(n)/r 차수의 원소가 될 확률” 로 모델링한다. φ(n) 의 약수 구조와 y 의 무작위 선택을 고려하면, 이 확률은 대략 1/r 에 비례한다. 특히 r 이 작을수록(예: r=2,3) 오류 가능성이 크게 증가한다. 실험적 분석에 따르면, r=2 일 때 오류 발생 확률은 약 50%, r=5 일 때는 20% 수준으로, 무시할 수 없는 수준이다.

마지막으로, 논문은 기존 응용 사례들을 재검토한다. 전자투표 시스템에서는 암호문이 투표 선택을 직접 인코딩하므로, 복호화 오류가 투표 결과를 반전시킬 수 있다. 비밀 공유에서는 잘못된 복호화가 공유된 비밀을 재구성하지 못하게 하여 전체 프로토콜이 실패한다. 온라인 포커와 같은 실시간 게임에서는 한 플레이어의 베팅이 잘못 해석되어 게임 균형이 깨진다. 이러한 사례들은 모두 키 생성 단계에서 r 과 y 의 선택을 엄격히 검증해야 함을 강조한다.


📜 논문 원문 (영문)

🚀 1TB 저장소에서 고화질 레이아웃을 불러오는 중입니다...