암호화 알고리즘

From CS Wiki

분류

크게 대칭키 알고리즘과 공개키 알고리즘으로 분류할 수 있다.
비밀키(대칭키) 암호 공개키(비대칭키) 암호
암호화 방법 암호화와 복호화에 같은 키를 사용 암호화와 복호화에 다른 키를 사용

키 쌍 K1, K2에 대해

  • K1으로 암호화한 것은 K2로 복호화
  • K2로 암호화한 것은 K1으로 복호화
키의 개수 암호를 공유하는 사용자의 순서쌍 개수

n(n-1)/2

사람당 2개씩(공개키, 비밀키)

2n

장점 상대적으로 빠름 키 분배 문제 해소

전자서명 가능

단점 안전한 키 분배가 문제

참여자 증가에 따라 키 개수 기하급수적 증가

키 발급자에 대한 보증 어려움

상대적으로 느림

대칭키(비밀키) 방식

블록 암호화 스트림 암호로 나눌 수 있다.

블록 암호

구분 DES 3DES SEED AES ARIA IDEA
키 길이 56bit 56*3bit 128bit 128/192/256bit 128/192/256bit 128bit
블록 크기 64bit 64bit 128bit 128bit 128bit 64bit
라운드 16번 16*3번 16번 10/12/14번 12/14/16번 8번
구조 Feistel Network Feistel Network Feistel Network SPN SPN SPN
비고 AES 이전 미국 표준 DES의 취약점 보완 및

호환성 유지용 임시방편

ARIA 이전 국내 표준 현 미국 표준 현 국내 표준 국제 표준

(PGP에서 사용)

스트림 암호

비대칭키(공개키) 방식

대표적으로 인수분해 기반 방식(대표적으로 RSA), 이산대수 기반 방식, 타원곡선 방식으로 나뉜다.
  • 인수분해 : RSA, Rabin
  • 이산대수 : Diffie-Hellman, Elgamal, DSA, Schnorr
  • 타원곡선 : ECC
  • RSAECC의 비교
구분 ECC RSA
속도 빠름 느림
키 길이 짧음
시장점유율 낮음 높음
주요 사용처 모바일 환경

(그 외 환경으로 확대 중)

유선 환경
장점 효율성 오랜 기간 입증된 안전성
  • 그 외
    • ElGamal
    • Knapsack
    • DSA
      • Digital Signature Algorithm
      • 1991년 미국국립표준·기술연구소(NIST)에서 표준안으로 개발한 공개 키 기반의 알고리즘

해시 알고리즘

  • SHA
  • MD

국내 개발 암호화 알고리즘

ARIA, HIGHT, LEA, SEED