브루트포스 방지를 위한 새로운 대칭 암호 Cryptompress
초록
Cryptompress는 128비트 초기 키와 최소 30비트 블록을 사용해, 공격 실패 시 키 길이를 32비트씩 증가시키는 동적 키 확장 메커니즘을 도입한 대칭 암호이다. 압축 기반 변환과 재구성된 Feistel 네트워크를 결합해 네 개의 행렬(add‑sub, reduced, sequence, term)을 생성하고 이를 최종 암호문으로 만든다.
상세 분석
본 논문은 기존 대칭 암호가 브루트포스 공격에 취약한 점을 보완하기 위해 키 길이와 구조를 동적으로 변형시키는 새로운 프레임워크를 제시한다. 첫 번째 핵심은 “키 자동 확장” 메커니즘이다. 초기 비밀키는 128비트이며, 암호화·복호화 과정에서 공격이 탐지되면(예: 비정상적인 오류 발생, 반복된 시도) 키 길이가 32비트씩 증가한다. 이는 공격자가 사전에 키 공간을 정확히 예측하기 어렵게 만들며, 실제 구현에서는 키 확장 정보를 암호문에 은닉시켜 전송한다는 점이 특징이다.
두 번째 핵심은 압축 시퀀스(Compression Sequence)이다. 입력 블록을 30비트 이상으로 분할한 뒤, 사전(Look‑up Table)과 시프트 연산을 조합해 데이터를 압축한다. 압축 과정에서 발생하는 잔여 비트는 add‑sub 행렬에 매핑되어 가감 연산을 수행하고, 그 결과는 reduced 행렬에 저장된다. 이어서 sequence 행렬은 압축된 데이터 흐름을 재배열하고, term 행렬은 최종적으로 남은 비트를 조합해 암호문을 만든다. 이러한 다단계 행렬 연산은 단순한 XOR 기반 라운드와 달리 비선형성을 크게 증가시켜 통계적 분석을 어렵게 만든다.
세 번째로 제안된 재구성 Feistel 네트워크는 기존 Feistel 구조의 라운드 함수를 변형한다. 각 라운드에서 사용되는 함수는 현재 키 길이와 행렬 상태에 따라 동적으로 선택되며, 라운드 수 자체도 키 확장에 따라 가변적이다. 따라서 공격자는 라운드 구조를 고정된 파라미터로 가정할 수 없으며, 키가 확장될 때마다 라운드 함수와 순서가 바뀌어 암호문 패턴이 지속적으로 변한다.
보안 분석 부분에서는 키 공간이 2^128에서 시작해 매 실패 시 2^32씩 추가되므로, 실질적인 키 엔트로피는 공격 횟수에 비례해 기하급수적으로 증가한다는 점을 강조한다. 또한, 행렬 기반 변환이 선형대수적 공격(LINEAR, DPA 등)을 방어하는데 유리하다고 주장한다. 그러나 논문은 구체적인 복호화 복잡도, 키 동기화 메커니즘, 그리고 실제 구현 시 발생할 수 있는 키 관리 오버헤드에 대한 정량적 평가가 부족하다. 또한, “불성공 시 키 길이 증가”라는 아이디어는 공격자가 의도적으로 실패를 유도해 키를 과도하게 늘리는 Denial‑of‑Service 형태의 공격에 취약할 가능성을 내포한다.
종합적으로, Cryptompress는 키 동적 확장과 다중 행렬 변환을 결합해 기존 대칭 암호의 구조적 한계를 보완하려는 시도로서 흥미롭다. 하지만 실용적인 적용을 위해서는 키 동기화, 성능 최적화, 그리고 새로운 공격 시나리오에 대한 상세한 보안 검증이 추가로 요구된다.
댓글 및 학술 토론
Loading comments...
의견 남기기