조합 함수 기반 충돌 저항 해시 설계: NP‑완전성 활용
초록
본 논문은 3차원 컨틴전시 테이블(3DCT)의 NP‑완전성을 이용해 새로운 해시 함수 H₃를 설계한다. H₃는 전통적인 고정 길이 해시 H₂와 가변 길이 함수 H₁을 순차적으로 적용한 구조이며, H₁의 역문제(프리이미지·충돌 찾기)가 3DCT와 동등하게 어려워 보인다는 점을 보안 근거로 제시한다.
상세 분석
논문은 먼저 2차원 0‑1 행렬의 행·열 합을 인코딩하는 함수 g₁과, 3차원 0‑1 텐서의 행·열·파일 합을 인코딩하는 함수 g₂를 정의한다. g₂는 각 합을 동일한 비트 길이(f₀⁴)로 이진화하여 하나의 문자열로 연결한다. 핵심 아이디어는 임의의 가중치 텐서 W와 원본 텐서 A의 원소별 곱(A · W)을 만든 뒤, g₂를 적용하면 입력 A에 대한 고유한 출력 y가 얻어진다. 저자는 “g₂(A·W)=y를 만족하는 A를 찾는 문제는 3DCT와 동치이며, 따라서 NP‑Complete이다”라고 주장한다. 이를 기반으로 H₁을 설계하고, H₁의 출력을 기존 MD5·SHA‑1 등 고정 길이 해시 H₂에 다시 입력해 최종 해시 H₃=H₂∘H₁을 만든다.
하지만 몇 가지 근본적인 결함이 존재한다. 첫째, NP‑Complete 문제의 어려움은 최악의 경우 복잡도에 대한 것이며, 평균적인 암호학적 난이움과는 별개이다. 실제 공격자는 구조적 약점을 이용해 특수한 입력을 만들 수 있는데, 논문은 이러한 가능성을 전혀 논의하지 않는다. 둘째, g₂는 단순히 행·열·파일 합을 나열한 것이므로, 서로 다른 텐서가 동일한 합을 가질 경우 충돌이 발생한다. 행·열·파일 합이 동일한 두 텐서는 존재함이 알려져 있으며, 이를 이용해 충돌을 쉽게 구성할 수 있다. 셋째, H₁의 출력 길이가 입력에 비례해 급격히 증가하므로 실용적인 해시 함수라 보기 어렵다. 메모리·시간 복잡도가 명시되지 않았으며, 실제 구현 시 수백 메가바이트 이상의 중간 데이터를 필요로 할 가능성이 크다. 넷째, H₂에 기존 해시를 사용한다는 점은 보안에 도움이 되지만, H₁이 이미 충돌을 허용한다면 H₂가 이를 완전히 보정하지 못한다. 마지막으로, 논문 전반에 걸쳐 정의와 기호가 일관되지 않고, 증명은 직관적 설명에 머물러 형식적인 복잡도 이론과 암호학적 보안 모델 사이의 연결 고리가 부족하다. 따라서 제안된 H₃는 이론적 흥미는 있지만, 현재의 암호학적 표준에 부합하는 실용적인 해시 함수라 보기는 어렵다.
댓글 및 학술 토론
Loading comments...
의견 남기기