ToolAct툴액트

DES 암호화·복호화 도구

DES와 Triple DES(3DES) 지원, 다섯 가지 암호화 모드

암호화 설정

입력 내용
문자 수: 0
바이트 수: 0
변환 결과
문자 수: 0
바이트 수: 0

DES란?

DES(Data Encryption Standard)는 1977년 IBM이 개발하고 NSA의 수정을 거쳐 미국 연방 표준이 된 암호 알고리즘입니다. Feistel 네트워크 구조를 사용하여 64비트 평문을 좌우로 나누고 16라운드의 변환을 거칩니다. 키는 명목상 64비트이지만 8비트는 패리티 검사용으로 예약되어 실제 키 길이는 56비트입니다. 당시 56비트는 충분히 안전했지만, 1999년에는 전용 하드웨어로 22시간 만에 무차별 대입이 가능해졌습니다. Triple DES(3DES)는 DES의 수명을 연장하기 위해 개발되었으며, 세 개의 서로 다른 키로 DES 암호화를 세 번 적용하여 168비트의 실질 키 길이를 달성합니다. 3DES는 EMV 칩 카드와 다양한 은행 프로토콜 등 금융 분야에서 아직 널리 사용되고 있습니다. AES가 DES를 대체하는 새 암호 표준이 되었지만, 레거시 시스템이나 금융 프로토콜, 임베디드 기기에서는 DES와 3DES가 여전히 활용되고 있습니다. 이 도구는 DES와 3DES 두 알고리즘을 모두 지원하며, CBC, ECB, CFB, OFB, CTR 다섯 가지 모드를 제공합니다.

사용 방법

시작하기

  1. 암호 알고리즘 선택: DES(56비트 키) 또는 3DES(168비트 키)
  2. 암호화 모드 선택 — CBC 추천
  3. 패딩 방식 선택 — 대부분의 경우 PKCS#7이면 충분
  4. 키를 입력하거나 '랜덤 키 생성' 클릭
  5. IV가 필요한 모드에서는 IV를 입력하거나 생성
  6. 왼쪽에 평문(암호화) 또는 암호문(복호화) 입력
  7. 오른쪽에 자동으로 결과가 표시됩니다

암호화 모드 설명

CBC암호 블록 체인 모드. 각 평문 블록을 이전 암호 블록과 XOR한 후 암호화. IV 필요. 보안성이 좋아 가장 널리 쓰이는 모드.
ECB전자 코드북 모드. 각 블록이 독립적으로 암호화되어 같은 평문 블록은 같은 암호문을 생성. 8바イト 단일 블록에는 괜찮지만 긴 데이터에는 비추천.
CFB암호 피드백 모드. 블록 암호를 스트림 암호로 변환. 바이트 단위나 작은 단위의 데이터 처리에 적합.
OFB출력 피드백 모드. CFB와 유사하지만 오류가 전파되지 않음. 통신 채널이 불안정할 때 유용.
CTR카운터 모드. 증가하는 카운터로 키스트림 생성. 병렬 암호화·복호화를 지원하여 성능이 우수.

  • AES를 쓸 수 있다면 AES를 우선하세요 — DES는 주로 레거시 호환용
  • 3DES는 DES보다 훨씬 안전하지만 속도는 약 3배 느림
  • 암호화할 때마다 다른 랜덤 IV를 사용하세요
  • 8바イト 초과 데이터에 ECB 모드를 쓰지 마세요
  • 기억하기 쉬운 문자열보다 랜덤 생성 키가 안전합니다

사용 예시

DES-CBC 암호화

CBC 모드로 텍스트 암호화

평문: Hello World
키(hex): 0123456789abcdef
IV(hex): fedcba9876543210
모드: CBC / PKCS#7
출력: Base64 인코딩 암호문

3DES 암호화

더 높은 보안의 Triple DES

알고리즘: Triple DES
키(hex): 24바イト(48자리 hex)
모드: CBC / PKCS#7
168비트 키는 현재도 안전한 수준

ECB 단일 블록

ECB는 정확히 8바イト 데이터에 적합

평문: 8바イト
키: 0123456789abcdef
모드: ECB / PKCS#7
주의: 8바イト 초과 데이터에 ECB를 쓰지 마세요

자주 묻는 질문

Q: DES와 3DES의 차이점은?

A: DES는 56비트 실질 키를 사용하며 이제는 안전하지 않다고 봅니다. 일반 PC로 며칠 내에 무차별 대입이 가능합니다. 3DES는 세 개의 키로 DES를 세 번 적용하여 168비트 실질 키 길이를 가지므로 훨씬 안전합니다. 레거시 호환이 필요 없다면 3DES를 쓰거나 아예 AES로 넘어가는 게 좋습니다.

Q: DES는 아직 안전한가요?

A: 단독 DES는 안전하지 않습니다. 1999년 전용 장비가 22시간 만에 키 전체 탐색에 성공했고, 지금은 GPU 클러스터로 몇 시간이면破解 가능합니다. 실제 보안이 필요하면 AES나 3DES를 쓰세요. 다만 암호학 학습이나 레거시 시스템 호환성 테스트에는 DES로 충분합니다.

Q: 왜 암호문이 매번 달라지나요?

A: 정상입니다. ECB를 제외한 모든 모드에서 랜덤 IV(초기화 벡터)를 사용하기 때문에 같은 평문과 키로 암호화해도 매번 다른 암호문이 생성됩니다. 올바른 키와 IV가 있으면 복호화는 항상 원본 데이터를 복원합니다.

Q: IV란 무엇인가요?

A: IV(Initialization Vector, 초기화 벡터)는 암호화 시 사용하는 추가 매개변수입니다. 같은 평문을 같은 키로 암호화하더라도 매번 다른 암호문을 만들어 공격자가 패턴을 파악하지 못하게 합니다. IV는 비밀로 할 필요는 없지만 암호화할 때마다 다른 랜덤 값을 써야 합니다. DES의 IV는 항상 8바イト입니다.

Q: 키 형식은 Hex, Text, Base64 중 뭐가 좋나요?

A: 같은 키의 다른 표현 방식일 뿐입니다. Hex는 바イト당 두 문자로 가장 직관적. Text는 입력한 문자의 바イト 그대로라 편하지만 인코딩 영향을 받습니다. Base64는 더 컴팩트합니다. Hex를 추천 — 오류가 가장 적습니다. '랜덤 키 생성'을 누르면 선택한 형식으로 자동 생성됩니다.

Q: 암호문이 평문보다 긴 이유는?

A: 블록 암호는 데이터가 8바イト의 배수여야 하므로 PKCS#7 패딩으로 1~8바イト이 추가됩니다. 출력 형식도 영향을 줍니다: Base64는 약 33% 오버헤드, Hex는 데이터가 두 배로 늘어납니다. NoPadding을 선택하면 평문이 정확히 8바イト 배수여야 합니다.

Q: ECB 모드를 쓸 수 있나요?

A: 가능하지만 상황에 따라 다릅니다. ECB는 각 8바イト 블록을 독립적으로 암호화하므로 같은 블록은 같은 결과를 냅니다. 8바イト 단일 블록이라면 ECB도 괜찮습니다. 텍스트나 파일 같은 긴 데이터에서는 ECB가 평문의 패턴을 노출하므로 피해야 합니다. 짧은 데이터는 OK, 긴 데이터는 NG입니다.

Q: 이 도구는 안전한가요? 데이터가 유출되진 않나요?

A: 모든 암호화·복호화는 crypto-js라는 검증된 암호화 라이브러리를 사용하여 브라우저 내에서 이루어집니다. 서버로 데이터가 전송되지 않습니다. 다만 브라우저 환경은 전용 하드웨어만큼 안전하지 않아 키가 브라우저 확장 프로그램이나 개발자 도구에 노출될 수 있습니다. 이 도구는 학습, 테스트, 일상 용도에 적합합니다.