Twofish 암호화/복호화
AES 최종 후보 - 최대 256비트 키의 128비트 블록 암호
보안 알림
이 도구는 모든 데이터를 브라우저에서 로컬로 처리합니다. 암호화 키를 절대 공유하지 마세요. 프로덕션 환경에서는 강력한 무작위 생성 키를 사용하세요.
Twofish 소개
Twofish는 Counterpane의 6인 팀(Schneier, Kelsey, Whiting, Wagner, Hall, Ferguson)이 설계한 대칭 128비트 블록 암호입니다. 핵심 설계 혁신은 키 의존 S-box입니다: 키 설정 중에 q0/q1 치환과 GF(2⁸)의 4×4 MDS 행렬 곱셈을 통해 키 재료에서 4개의 8→8비트 S-box를 구성합니다.
16라운드 Feistel의 g() 함수는 두 개의 32비트 워드를 키 의존 S-box와 MDS를 통해 처리하고 PHT(32비트 덧셈)로 결합합니다. 입력 및 출력 화이트닝으로 슬라이딩 공격을 방지합니다. 1998년 이후 완전 16라운드에 대한 공격 없음.
주요 특징
- q0/q1 치환 및 MDS를 통한 키 의존 S-box — 각 키마다 고유 S-box 구성으로 사전 계산 차분 분석 방지
- GF(2⁸)의 4×4 MDS 행렬 — 비제로 입력 차분이 최대 가중치 출력 차분 생성
- PHT (Pseudo-Hadamard Transform) — 32비트 덧셈으로 효율적인 Feistel 확산
- 입출력 화이트닝 — 라운드 1 전과 라운드 16 후에 서브키 XOR로 슬라이딩 공격 방지
암호 모드
- CBC: Twofish CBC — 128비트 블록이 이전 암호문과 XOR. Sweet32 임계값 2⁶⁴ 블록 — 실용적으로 도달 불가능.
- ECB: Twofish ECB — 각 16바이트 블록 독립 처리. 단일 블록 작업 전용.
- CFB: Twofish CFB — 자동 동기화 스트림, Sweet32 제약 없음.
- OFB: Twofish OFB — 결정론적 키스트림, 주기 2¹²⁸ 블록.
알고리즘 비교
| 알고리즘 | 키 길이 | 블록 크기 | 보안 | 속도 |
|---|---|---|---|---|
| Twofish | 128/192/256 bits | 128 bits | 우수 | 빠름 |
| AES | 128/192/256 bits | 128 bits | 우수 | 빠름 |
| Blowfish | 32-448 bits | 64 bits | 양호 | 빠름 |
| 3DES | 112/168 bits | 64 bits | 보통 | 느림 |
보안 고려사항
- 1998년 이후 완전 16라운드 공격 없음. 최상의 감소 라운드: 6라운드.
- 키 의존 S-box가 AES에 없는 추가 공격 저항 계층 제공: 키 없이는 대체 층 구조 알 수 없음.
- Sweet32 취약 BF-CBC 대체를 위한 Blowfish의 권장 후계자.
- 고처리량: AES-256-GCM. Twofish-256은 VeraCrypt, AES-NI 없는 환경, 장기 보관에 적합.
사용 사례
- VeraCrypt 캐스케이드: Twofish+AES+Serpent 알고리즘 다양성
- Blowfish BF-CBC 마이그레이션: Sweet32 없는 128비트 Schneier 설계 계승
- AES-NI 없는 환경: 소프트웨어 전용 128비트 구현
- AES 독립 보안 보증의 장기 고보안 스토리지