AES-128/192/256 Encryption/Decryption 암호화/복호화
키는 텍스트 그대로 사용됩니다. 운영 환경에서는 Argon2 등으로 키를 유도(KDF)하는 것을 권장합니다.
CBC/CFB/CFB1/CFB8/OFB: 16바이트 IV 권장(블록 크기). GCM: 12바이트 Nonce 권장. ECB는 IV가 필요 없습니다.
About AES
AES (Advanced Encryption Standard)는 미국 NIST가 표준으로 지정한 대칭키 블록 암호입니다. 블록 크기는 128비트(16바이트)이며, 키 길이에 따라 AES-128/192/256으로 구분됩니다. 높은 성능과 안전성으로 웹, 모바일, 클라우드 등 다양한 환경에서 사실상 표준처럼 사용됩니다.
키 길이
- AES-128: 보안/성능 균형 우수, 실무에서 가장 흔함
- AES-192: 추가적인 보안 여유
- AES-256: 장기 데이터 보호나 높은 규제 요건에서 선호
운영 모드(Mode of Operation)
블록 암호를 실제 데이터에 적용할 때는 모드를 선택해야 하며, 각 모드는 IV/Nonce, 패딩, 인증 기능 등 특성이 다릅니다.
| Mode | IV / Nonce | Padding | Auth Tag | 특징 / 주의 |
|---|---|---|---|---|
| ECB | 불필요 | 필요(보통 PKCS#7) | 없음 | 동일 평문 블록 → 동일 암호문. 패턴 노출로 권장되지 않음. |
| CBC | 필수 (16바이트) | 필요(블록 단위) | 없음 | 가장 전통적인 모드. 무작위 IV 필요(재사용 금지). |
| CFB / CFB8 / CFB1 | 필수 (16바이트) | 불필요 | 없음 | 스트림처럼 동작. 일부 오류 전파 특성 유의. |
| OFB | 필수 (16바이트) | 불필요 | 없음 | 스트림처럼 동작. IV/Nonce 재사용 금지. |
| GCM | 필수 (권장 12바이트) | 불필요 | 필수 (예: 16바이트) | AEAD 모드. 암호화+무결성(인증) 제공. TLS 등에서 표준. |
GCM (Galois/Counter Mode)
- 출력: 암호문(ciphertext) + 인증 태그(tag). 복호화 시에는 ciphertext + iv + tag가 모두 필요합니다.
- Nonce(IV): 보통 12바이트 랜덤 값을 권장. 동일 키로 재사용 금지.
- Tag 길이: 일반적으로 16바이트(128비트)를 권장.
- AAD: 추가 인증 데이터(암호화하지 않고 무결성만 검증)도 포함할 수 있습니다. (현재 UI는 AAD 항목 미제공)
인코딩 & 주의사항
- 인코딩: 이 페이지는 IV/Tag를 Base64로 주고받습니다. 암호문도 JSON으로 Base64 인코딩되어 제공될 수 있습니다.
- IV 길이: GCM은 12바이트 권장, 기타 모드는 16바이트 권장. 모드에 따라 맞는 길이를 사용하세요.
- 키 유도: 사용자가 입력한 패스프레이즈를 그대로 키로 쓰지 말고, 실 서비스에서는 PBKDF2/scrypt/Argon2 등을 사용하세요.
- ECB 금지: 패턴 노출 위험으로 일반 데이터에는 사용하지 않는 것이 좋습니다.