준사이클릭 코드 기반 맥엘리시 암호 체계 두 가지에 대한 구조적 공격

이 논문은 quasi‑cyclic(준사이클릭) 코드를 이용한 두 종류의 McEliece 변형을 분석한다. 첫 번째는 원시 BCH 코드의 서브코드를 사용하고, 비밀 퍼뮤테이션 행렬을 통해 구조를 숨긴다. 저자들은 BCH의 알려진 패리티‑체크 행렬과 코드가 서브코드라는 사실을 이용해 비밀 퍼뮤테이션을 만족하는 선형 방정식 시스템을 구성하고, 이를 풀어 퍼뮤테이션을 복원한다. 두 번째 변형은 quasi‑cyclic LDPC 코드를 사용하고, 퍼뮤테이…

저자: Ayoub Otmani, Jean-Pierre Tillich, Leonard Dallot

본 논문은 quasi‑cyclic(준사이클릭) 코드를 기반으로 한 McEliece 암호 체계 두 변형에 대한 구조적 취약성을 상세히 분석하고, 실제 공격 알고리즘을 제시한다. 첫 번째 변형은 원시 BCH 코드의 서브코드를 이용한다. 원시 BCH 코드 C₀는 길이 n = 2^m − 1, 설계거리 2t + 1을 갖는 이진 순환 코드이며, 알려진 패리티‑체크 행렬 H₀를 가진다. 서브코드 C는 C₀의 일부 코드워드들의 p‑블록 circulant 형태를 결합해 차원 k = p(k₀ − 1)인 quasi‑cyclic 코드가 된다. 비밀 퍼뮤테이션 π (n₀‑차원) 를 적용해 공개키 G_π = G·Π를 만든다. 저자들은 다음 세 가지 사실을 이용한다. (1) C₀의 H₀는 사전에 구할 수 있다. (2) C는 C₀의 서브셋이므로 모든 코드워드 c∈C는 H₀·cᵀ = 0을 만족한다. (3) 퍼뮤테이션 행렬 Π는 0·1 상수 다항식으로 표현되는 p‑블록 circulant 행렬 Π(x)와 동치이다. 이를 G·Π = G_π 로 쓰면 H₀·G·Πᵀ = 0이 된다. 각 열에 대해 전개하면 Π의 각 원소에 대한 선형 방정식이 다수 생성된다. 방정식 수는 n₀·p보다 크게 되며, 시스템은 과잉결정이다. Gaussian elimination을 수행하면 해 공간의 차원이 1임을 확인하고, 유일한 퍼뮤테이션을 복원한다. 복원된 퍼뮤테이션을 역으로 적용하면 원본 생성 행렬 G와 BCH 디코딩 알고리즘을 완전 복구한다. 실험에서는 파라미터 A(m=12, t=26, p=91, n₀=45, k₀=43)와 파라미터 B(m=11, t=31, p=89, n₀=23, k₀=21)에 대해 모두 성공했으며, 연산 시간은 수초 수준이었다. 두 번째 변형은 quasi‑cyclic LDPC 코드를 사용한다. 여기서는 퍼뮤테이션 대신 일반적인 가역 행렬 S와 T를 도입해 공개키를 G_pub = S·G·T 로 만든다. 설계자는 이 변환이 일반 퍼뮤테이션보다 더 안전하다고 주장했지만, 논문은 두 가지 구조적 약점을 지적한다. 첫째, quasi‑cyclic 구조는 모든 블록이 동일한 circulant 다항식으로 표현될 수 있다는 점이다. 따라서 G·T 를 다항식 행렬 G(x)·Π(x) 로 나타낼 수 있고, Π(x)의 각 항은 0·1 상수 다항식이다. 둘째, 선택된 S·T 가 충분히 희소하지 않아, G_pub 의 블록 행렬을 이용해 저중량 다항식 쌍을 찾을 수 있다. 저자들은 “두 저중량 다항식의 곱이 공개 다항식이 된다”는 아이디어를 바탕으로, 먼저 펑크처된 비밀 코드의 패리티‑체크 행렬 H′를 O(n³) 시간에 복원한다. 구체적으로, G_pub 의 블록 구조를 분석해 각 블록이 circulant 행렬임을 확인하고, 연립 방정식으로 H′의 계수를 구한다. 복원된 H′ 로부터 원본 LDPC 코드의 전체 패리티‑체크 행렬 H 를 얻기 위해서는 비밀 코드의 저중량 코드워드(예: 무게 ≤ d₀)를 찾아야 한다. 저중량 코드워드 탐색은 일반적으로 NP‑hard하지만, 제시된 파라미터에서는 기대 무게가 충분히 낮아 약 2³⁷ 연산(≈1.4×10¹¹) 정도면 충분히 찾을 수 있다. 구현 결과, H′ 복원은 약 140초 내에 완료되었으며, 저중량 코드워드 탐색은 GPU 가속을 이용해 몇 시간 안에 수행되었다. 논문은 또한 circulant 행렬과 다항식 링 사이의 동형성을 정리하고, p‑블록 circulant 행렬의 가역성 조건(다항식이 x^p‑1과 서로소) 등을 이용해 이론적 근거를 제공한다. 이러한 수학적 도구는 두 공격 모두에서 핵심적인 역할을 한다. 결론적으로, quasi‑cyclic 코드를 이용해 키 크기를 줄이려는 시도는 구조적 제약을 과도하게 부여하게 되며, 이는 선형 방정식 시스템이나 저중량 코드워드 탐색을 통해 비밀 키를 효율적으로 복원할 수 있는 통로를 만든다. 특히 퍼뮤테이션 대신 일반 가역 행렬을 사용하더라도, 그 행렬이 circulant 형태에 제한되면 여전히 충분히 정보가 누출된다. 따라서 실용적인 McEliece 변형 설계 시, 코드 선택뿐 아니라 비밀 변환 행렬의 무작위성, 희소성, 그리고 전체 구조적 복잡성을 종합적으로 고려해야 한다는 교훈을 제공한다.

원본 논문

고화질 논문을 불러오는 중입니다...

댓글 및 학술 토론

Loading comments...

의견 남기기