LLM 기반 시저 암호 해독기 DecipherLM: 혼합 시프트 암호 해독 성공!
dev.to에 게시된 혼합 시프트 암호(Mixed-Shift Cipher)를 LLM(Large Language Model)을 활용해 해독하는 DecipherLM 프로젝트의 배경과 목표 제시
초기 단일 키(Single Key) 방식의 실패를 극복하고, 라인별(Line-by-Line) 분석 및 컨텍스트 기반(Context-Aware) 접근 방식을 통해 정확도 향상
Qwen2.5-0.5B 모델을 활용한 컨텍스트 기반 해독 아키텍처(Context-Aware Decryption Architecture)를 구축하여 100% 정확도 달성
GPT-2, SmolLM2-135M 등 다양한 모델의 성능 비교를 통해 모델 선택의 중요성 강조 및 성능 저하 원인 분석
최종적으로, 컨텍스트 기반의 해독 방식을 통해 짧은 문장에서도 정확한 해독을 가능하게 함
혼합 시프트 암호 해독의 기술적 난제
본문은 시저 암호(Caesar Cipher)의 변형인 혼합 시프트 암호(Mixed-Shift Cipher) 해독의 어려움을 설명하며, 기존의 빈도 분석(Frequency Analysis) 방식이 짧은 문장에서는 효과가 없음을 지적한다.
혼합 시프트 암호(Mixed-Shift Cipher): 각 라인마다 다른 시프트 값을 적용하여 전통적인 암호 분석 기법(Traditional Cryptanalysis)의 한계를 노출
짧은 문장(Short Sentences): 빈도 분석의 신뢰도가 낮아지고, LLM의 문맥 이해 능력(Contextual Understanding)에 의존
DecipherLM 아키텍처(DecipherLM Architecture): LLM을 활용하여 이러한 난제를 해결하고, 정확한 해독(Accurate Decryption)을 달성
LLM 기반 해독 아키텍처의 설계
DecipherLM은 세 단계의 파이프라인(Pipeline)을 통해 암호를 해독하며, 각 단계는 특정 문제 해결(Specific Problem Solving)에 초점을 맞춘다.
전역 분석 모듈(Global Analysis Module): 전체 텍스트의 PPL(Perplexity)을 계산하여 가장 일반적인 시프트 값(Global Master Key) 식별
합의 엔진(Consensus Engine): 라인별 시프트 값의 최빈값(Mode)을 찾아 신뢰할 수 있는 시프트 값(Trusted Shifts) 풀 생성
컨텍스트 인식 정밀 단계(Context-Aware Precision Stage): Qwen2.5-0.5B 모델을 사용하여 이전 두 줄의 문맥을 고려, 해독 정확도(Decryption Accuracy) 극대화
이러한 다단계 접근 방식은 AI 환각(Hallucination)을 방지하고, 암호 해독의 정확성을 높이는 데 기여한다.
모델 선택과 성능 비교 분석
다양한 LLM 모델을 테스트하여 DecipherLM에 가장 적합한 모델을 선정하고, 각 모델의 장단점을 분석한다.
GPT-2: 구식 토크나이저(Tokenizer)로 인해 암호화된 텍스트(Ciphered Text) 처리에 실패
SmolLM2-135M: 간단한 작업에 적합하지만, 노이즈에 취약(Vulnerable to Noise)하여 짧은 문장에서 할루시네이션(Hallucination) 발생
Qwen2.5-0.5B: 문자 수준 인식(Character-Level Awareness)이 뛰어나고, 현대적인 토크나이저(Tokenizer)를 사용하여 최고의 성능(Best Performance) 달성
SmolLM2-360M: 과도한 분석으로 인해 오히려 성능 저하
결론적으로, 모델의 크기보다 특정 작업에 최적화된 모델 선택(Optimized Model Selection)이 중요함을 강조한다.
컨텍스트 기반 해독의 핵심 원리
DecipherLM의 핵심은 각 라인을 독립적으로 평가하는 대신, 이전 두 줄의 해독 결과를 함께 고려하는 컨텍스트 기반(Context-Aware) 접근 방식이다.
롤링 컨텍스트 버퍼(Rolling Context Buffer): 이전 두 줄의 해독된 텍스트를 모델에 제공하여 문맥적 일관성(Contextual Consistency) 유지
PPL(Perplexity) 기반 점수 매기기: 문맥을 고려하여 각 라인의 PPL을 계산하고, 가장 낮은 PPL을 가진 시프트 값 선택
해결 사례(Case Study): 컨텍스트를 통해 “A memory hums a silver spoon”과 같은 짧은 문장도 정확하게 해독
이러한 접근 방식은 AI 환각(Hallucination)을 최소화하고, 해독의 정확성을 높이는 데 기여한다.
DecipherLM 아키텍처의 실제 구현
DecipherLM의 실제 구현 코드를 제공하며, 주요 구성 요소와 작동 방식을 설명한다.
의존성 설치(Dependency Installation): `torch`, `python-dotenv`, `transformers`, `accelerate` 등 필요한 라이브러리 설치
모델 로드(Model Loading): Qwen2.5-0.5B 모델을 로드하고, GPU 사용을 위한 설정
시저 시프트 함수(Caesar Shift Function): 텍스트를 시프트하는 함수 구현
PPL 계산 함수(PPL Calculation Function): LLM을 사용하여 PPL을 계산하는 함수 구현
해독 함수(Decryption Function): 전역 분석, 합의 엔진, 컨텍스트 기반 해독을 수행하는 함수 구현
이 코드는 DecipherLM의 전체적인 작동 방식(Overall Operation)을 이해하는 데 도움을 준다.