본문 바로가기
Java/암호화

암호화 알고리즘 종류

by Mecodata 2024. 3. 18.

대칭 알고리즘

DES (Data Encryption Standard, 데이터 암호화 표준)

  • 1970년대에 IBM에서 개발한 AES 도입 이전까지의  표준 대칭 키 암호화 알고리즘
  • 블록 크기가 64 bit (8 byte), 키 크기가 56 bit (7byte)로 고정
  • 작동 원리 = 암호화할 데이터를 블록으로 나눈 후 각 블록 내의 데이터의 일련의 수학적 연산을 적용하여 작동
  • 현재는 IT기술의 발전으로 안전성이 보장되지 않아 사용이 지양됨

3DES (Triple DES)

  • DES를 3번 반복하는 방식의 대칭 키 암호화 알고리즘 
  • DES와 마찬가지로 블록 크기가 64 bit (8 byte), 키 크기가 56 bit (7byte)로 고정
  • 암호화를 3번 실행하기 때문에 속도가 느리고 DES의 사실상 퇴출로 사용이 지양됨

AES (Advanced Encryption Standard, 고급 암호화 표준)

    • 미국 국립표준기술연구소(NIST)에서 권장하는 표준 대칭 키 암호화 알고리즘 (DES의 대체)
    • 블록 크기가 128 bit (16 byte)로 고정되있지만 키 크기는 128, 192, 256 bit (16, 24, 32 byte)를 지원
    • 작동 원리 = 암호화할 데이터를 블록으로 나눈 후 각 블록 내의 데이터의 일련의 수학적 연산을 적용하여 작동
    • 키의 크기가 수학적 연산의 라운드 수(라운드 함수 적용 횟수)를 결정하며 라운드를 더 많이 사용할수록 보안성이 더 높지만 그만큼 컴퓨팅 연산 성능이 많이 요구됨 
    • AES-128 = 10라운드, AES-192 = 12라운드, AES-256 = 14라운드

Blowfish

  • 브루스 슈나이어가 설계한 대칭 키 암호화 알고리즘 
  • 블록 크기가 64 bit (8 byte)로 고정되어있지만, 키 크기가 32~448 bit(4~56 byte)로 다양하게 설정 가능함
  • 작동 원리 = 암호화할 데이터를 블록으로 나눈 후 각 블록 내의 데이터의 일련의 수학적 연산을 적용하여 작동
  • 수학적 연산에 16라운드의 Feistel 암호화 함수 사용
  • DES 보다는 보안성이 높으나 AES 보다는 보안성이 낮음 (속도도 AES가 더 빠름)

 

비대칭 알고리즘

RSA (Rivest-Shamir-Adleman)

  • 1977년 로널드 리베스트(Ronald Rivest), 아디 샤미르(Adi Shamir), 레오네르드 아들먼(Len Adleman)에 의해 발명된 비대칭 표준 암호화 알고리즘
  • 공개 키와 개인 키의 쌍을 사용
  • 키의 크기는 1024, 2048, 3072, 4096 bit (128, 256, 384, 512 byte)를 지원 
  • 소인수분해 방식의 암호를 사용하기 때문에 보안성이 매우 높음
  • 보안성이 높으나 연산이 복잡하고 수행 속도가 느림

'Java > 암호화' 카테고리의 다른 글

암호화 패딩 종류  (0) 2024.03.18
블록 암호화 기법 종류  (0) 2024.03.18
javax.crypto.Cipher  (0) 2024.03.18
Jasypt (application.properties 암호화)  (0) 2024.02.28

댓글