Serpent 암호화/복호화 도구
AES 결선 진출 - 128/192/256비트 키를 지원하는 초고보안 블록 암호
⚠️ 성능 참고
Serpent는 AES의 10-14라운드에 비해 32라운드로 AES보다 느립니다. 성능이 중요한 애플리케이션에는 AES를 고려하세요. 최대 보안 마진이 우선순위일 때 Serpent를 선택하세요.
Serpent 암호화에 대해
Serpent는 Ross Anderson(케임브리지), Eli Biham(테크니온), Lars Knudsen(DTU)이 설계한 대칭 블록 암호로 1998년 NIST AES 공모전에 제출되었습니다. 5개 최종 후보 중 최고 보안 평가를 받으며 Rijndael(AES)에 이어 2위로 마감했습니다. SP 네트워크는 128비트 블록을 32 완전 라운드로 처리합니다(AES-128의 3배).
Serpent는 32라운드에서 8가지 다른 4비트→4비트 S-box를 라운드 로빈 방식으로 적용합니다(각 S-box 정확히 4번 등장). 모든 S-box는 차분 및 선형 암호 분석에 대한 최적 저항을 위해 전수 탐색으로 선택되었습니다. 비트슬라이스 구현: 32개 병렬 블록의 각 비트 위치가 하나의 32비트 CPU 레지스터를 차지합니다.
NIST 평가 위원회는 Serpent의 최고 보안 신뢰성을 인정하면서도 Rijndael의 우월한 처리량이 결정적이었다고 지적했습니다. 경쟁 후 Schneier와 Kelsey는 “보안이 유일한 기준이었다면 Serpent가 명확한 선택이었을 것”이라고 결론 지었습니다.
주요 기능
- 32라운드 SP 네트워크: AES-128의 3배 라운드 수, 5개 AES 후보 중 최대 보안 마진, 최상의 공격도 32라운드 중 12라운드만 도달
- 비트슬라이스 S-box: 32비트 레지스터 32개 연산으로 128비트 처리, 조회 테이블 없음, 캐시 타이밍 부채널 공격 면역
- 차분·선형 분석 저항성 최적화를 위한 전수 탐색으로 8개의 4→4비트 S-box 선택
- 132개의 4비트 서브키를 확장 키 재료의 선형 피드백으로 도출
- 동일 32라운드 구조의 128·192·256비트 키 지원
암호화 모드
- CBC: Serpent CBC — 128비트 블록이 이전 암호문과 XOR. Sweet32 임계값이 2⁶⁴ 블록으로 실용적 데이터량에서 도달 불가능.
- ECB: Serpent ECB — 각 16바이트 블록 독립 처리. 단일 블록 작업 전용.
- CFB: Serpent CFB — 자동 동기화 스트림, Sweet32 제약 없음, 스트리밍에 적합.
- OFB: Serpent OFB — 결정론적 키스트림, 주기 2¹²⁸ 블록, 오류 전파 없음.
알고리즘 비교
| 알고리즘 | 키 길이 | 블록 크기 | 라운드 | 보안 | 속도 |
|---|---|---|---|---|---|
| Serpent | 128/192/256비트 | 128 bits | 32 | 우수 | 느림 |
| AES | 128/192/256 bits | 128 bits | 10-14 | 우수 | 빠름 |
| Twofish | 128/192/256 bits | 128 bits | 16 | 우수 | 빠름 |
AES 경진대회 배경
Serpent는 NIST AES 최종 평가(1999)에서 5개 후보 중 최고 보안 마진 평가를 받았습니다.
Rijndael이 AES로 선정된 주요 이유는 성능: 범용 하드웨어에서 2-3배 높은 처리량.
Kelsey와 Schneier는 Serpent의 32라운드 설계가 현저히 더 큰 보안 마진을 제공하며 아키텍처 취약점이 발견되지 않았음을 확인했습니다.
보안 고려사항
- 완전 32라운드 공격 없음. 최상의 공개된 공격: 12/32라운드(부메랑 2011), 복잡도 2¹²².
- S-box의 차분·선형 암호 분석 저항성을 전수 검증. NIST 문서 완전 공개.
- 비트슬라이스 구현으로 조회 테이블 없음 → 고정 시간 → 캐시 타이밍 부채널 공격 저항.
- 장기 보관 파일에는 Serpent-256. 고처리량 네트워크에는 AES-256-GCM 권장.
사용 사례
- Serpent-256으로 수십 년 사용 장기 암호화 보관 파일
- AES-NI 없는 임베디드 시스템 캐시 타이밍 보안 환경
- VeraCrypt 캐스케이드: Serpent+AES+Twofish 다중 암호 컨테이너
- AES 후 학술 참고: 완전 공개 문서, 25년 이상 미해독 기록
참고 자료
- NIST AES 경진대회 문서
- 위키백과 - Serpent (암호)
- Anderson, Biham, Knudsen의 원본 Serpent 논문