보안 강화된 새로운 해시 알고리즘
초록
본 논문은 기존 MD5 해시와 비교하여 임의성 및 충돌 저항성을 높이기 위해 128비트 블록과 난수 키를 이용한 비트 연산 기반 새로운 메시지 다이제스트 알고리즘을 제안한다. 구현은 파이썬으로 수행했으며, 실험 결과는 MD5 대비 문자 다양성에서 약 70% 향상을 보였다고 주장한다.
상세 분석
이 논문은 해시 함수 설계에 있어 기본적인 암호학적 원칙을 충분히 고려하지 않은 점이 눈에 띈다. 먼저 입력 메시지를 ASCII 코드로 8비트 변환 후 “01”과 64비트 패딩을 추가해 512비트 배수보다 64비트 짧게 만든다. 이는 MD5와 SHA‑1이 사용하는 Merkle‑Damgård 패딩과는 전혀 다른 방식이며, 패딩 길이를 고정하지 않아 충돌 가능성을 오히려 증가시킬 위험이 있다. 난수 키를 각 128비트 블록마다 생성하고 OR·AND·XOR·시프트 등 임의의 비트 연산을 적용한다는 설명은 구체적인 연산 순서와 라운드 함수 설계가 명시되지 않아 재현성이 떨어진다. 특히 키 생성에 사용된 “key = (key*39) % 967; keyf = (key)! ”와 같은 수식은 키 공간을 967 이하로 제한하고, 팩토리얼 연산은 실용적인 구현이 불가능할 정도로 큰 값을 만든다. 결과적으로 키의 엔트로피가 충분히 확보되지 못하고, 키 재생성 방식이 예측 가능하면 사전 계산 공격(레인보우 테이블)이나 충돌 공격에 취약할 수 있다.
논문은 보안성을 “난수성 70%”라는 통계로 주장하지만, 이는 단순히 출력 문자열에 포함된 서로 다른 문자 종류의 비율을 MD5와 비교한 것에 불과하다. 암호학적 해시 함수는 충돌 저항성, 2차 사전 공격 저항성, 출력 비트의 균등 분포 등을 수학적으로 증명하거나 최소한 광범위한 실험(예: 수백만 개 입력에 대한 충돌 탐색)으로 검증해야 한다. 본 논문은 이러한 검증 절차를 전혀 제공하지 않으며, 실험 섹션도 “distinctiveness”라는 모호한 지표와 몇 개의 임의 문자열에 대한 비율만 제시한다.
또한 구현 언어가 파이썬이라고 명시했지만, 실제 코드가 제공되지 않아 알고리즘의 시간·공간 복잡도, 메모리 사용량, 실용적인 해시 길이(128비트) 등이 산업 표준에 부합하는지 판단할 수 없다. 128비트 출력은 현재 대부분의 보안 애플리케이션에서 요구하는 최소 160비트(SHA‑1) 혹은 256비트(SHA‑256)보다 현저히 짧아 충돌 확률이 높다.
요약하면, 제안된 알고리즘은 기존 연구에서 널리 사용되는 구조적 설계 원칙(예: 압축 함수, 라운드 상수, 비선형 함수)과는 거리가 멀며, 보안성 주장에 대한 실증적·수학적 근거가 부족하다. 따라서 학술적·실무적 가치가 낮으며, 실제 보안 시스템에 적용하기에는 신뢰할 수 없는 설계라고 평가할 수 있다.
댓글 및 학술 토론
Loading comments...
의견 남기기