전단사 압축 (Bijective Compression)

고급암호학수정일

전단사 압축(bijective compression)은 압축 해제 함수가 '모든 가능한 입력'을 받아들여 유효한 원문으로 풀어 내고, 다시 압축하면 정확히 같은 비트열로 돌아오도록 압축과 해제를 일대일(전단사)로 맞춘 데이터 압축을 말합니다. 암호학에서는 여기서 한 걸음 더 나아가, 무작위 비트열을 풀었을 때 실제 평문과 비슷한 구조와 통계를 가진 데이터(예: 문법에 맞는 문장)가 나오게 하는 이상적인 압축기를 가리키기도 합니다. 테리 리터는 이 표현을 엄밀한 수학 용어가 아닌 '관용적 이름'으로 봐야 한다고 지적했습니다.

자세히 알아보기

일반적인 압축 형식(ZIP 등)은 아무 비트열이나 풀 수 있는 것이 아니라, 대부분의 무작위 입력에 대해 '형식 오류'를 냅니다. 이 성질은 암호 해독에 도움이 됩니다. 공격자가 키를 하나씩 시도하다가 압축이 정상적으로 풀리면 맞는 키라고 자동으로 판별할 수 있기 때문입니다.

전단사 압축의 발상은 이 판별 수단을 없애는 것입니다. 틀린 키로 복호화한 결과도 언제나 '정상적으로 풀리는' 데이터라면, 컴퓨터가 정답을 자동으로 골라내기 어려워집니다. 그러나 무작위 입력을 사람이 읽을 만한 자연어로 풀어 내는 압축기는 만들기 매우 어렵고, 데이터 종류마다 다른 모델이 필요해 실용화되지는 않았습니다.

이 생각은 2014년 줄스(Ari Juels)와 리스텐파트(Thomas Ristenpart)가 제안한 '허니 암호(honey encryption)'로 이어졌습니다. 허니 암호는 메시지 분포를 모델링하는 분포 변환 인코더를 써서, 틀린 비밀번호로 복호화해도 그럴듯한 가짜 평문이 나오게 합니다.

블록체인·암호화폐에서는

이 발상은 암호화폐 지갑에는 거의 도움이 되지 않습니다. 공격자가 비밀번호를 추측해 키스토어 파일을 복호화하면, 얻은 개인 키로 공개 주소를 계산해 블록체인에 기록된 주소와 비교하는 것만으로 맞는 키인지 즉시 확인할 수 있기 때문입니다. 그래서 지갑 보안은 그럴듯함이 아니라 강한 비밀번호와 느린 키 유도 함수(scrypt, Argon2id 등)에 의존합니다. 또 일반적인 통신에서는 '압축 후 암호화'가 길이 정보를 흘려 CRIME·BREACH 같은 공격을 낳았다는 점도 기억해야 합니다.

쉽게 말하면

어떤 열쇠로 열어도 그럴듯한 편지가 나오는 금고를 만들어, 도둑이 진짜 편지를 구별하지 못하게 하자는 아이디어입니다.

예시

이상적인 전단사 압축기에서는 임의의 16바이트를 풀어도 'the river runs north' 같은 정상 단어열이 나와야 합니다.

이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.