안전한 암호화 알고리즘

From CS Wiki

국내외 권고 암호알고리즘[edit | edit source]

분류 NIST (미국)

(2015)

CRYPTREC (일본)

(2013)

ECRYPT (유럽)

(2018)

국내

(2018)

대칭키 암호 알고리즘
  • AES
  • 3TDEA
  • AES
  • Camellia
  • AES
  • Camellia
  • Serpent
  • SEED
  • HIGHT
  • ARIA
  • LEA
해시 함수
  • SHA-224
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-512/224
  • SHA-512/256
  • SHA3-224
  • SHA3-256
  • SHA3-384
  • SHA3-512
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-512/256
  • SHA3-256
  • SHA3-384
  • SHA3-512
  • SHA3-shake128
  • SHA3-shake256
  • Whirlpool-512
  • BLAKE-256
  • BLAKE-384
  • BLAKE-512
  • SHA-224
  • SHA-256
  • SHA-384
  • SHA-512 SHA-512/224
  • SHA-512/256
  • SHA3-224
  • SHA3-256
  • SHA3-384
  • SHA3-512
  • LSH-224
  • LSH-256
  • LSH-384
  • LSH-512
  • LSH-512-224
  • LSH-512-256
공개키 암호 알고리즘 키 공유용
  • DH
  • ECDH
  • MQV
  • ECMQV
  • DH
  • ECDH
  • ECIES-KEM
  • PSEC-KEM
  • RSA-KEM
  • DH
  • ECDH
암복호화용
  • RSA
  • RSA-OAEP
  • RSA-OAEP
  • RSAES
전자서명
  • RSA
  • DSA
  • ECDSA
  • RSA-PSS
  • RSASSA-PKCS1(v1.5)
  • DSA ECDSA
  • RSA-PSS
  • ISO-9796-2 RSA-DS2
  • PV Signatures
  • Schnorr ECSchnorr
  • KDSA
  • ECKDSA
  • XMSS
  • RSA-PSS
  • KCDSA
  • ECDSA
  • EC-KCDSA

대칭키 암호 알고리즘[edit | edit source]

보안강도에 따른 대칭키 암호 알고리즘 분류

분류 NIST (미국)

(2015)

CRYPTREC (일본)

(2013)

ECRYPT (유럽)

(2018)

국내

(2018)

112 비트 이상
  • AES-128
  • AES-192
  • AES-256
  • 3TDEA
  • AES-128
  • AES-192
  • AES-256
  • Camellia-128
  • Camellia-192
  • Camellia-256
  • AES-128
  • AES-192
  • AES-256
  • Camellia-128
  • Camellia-192
  • Camellia-256
  • Serpent-128
  • Serpent-192
  • Serpent-256
  • SEED HIGHT
  • ARIA-128
  • ARIA-192
  • ARIA-256
  • LEA-128
  • LEA-192
  • LEA-256
128 비트 이상
  • AES-128
  • AES-192
  • AES-256
  • AES-128
  • AES-192
  • AES-256
  • Camellia-128
  • Camellia-192
  • Camellia-256
  • AES-128
  • AES-192
  • AES-256
  • Camellia-128
  • Camellia-192
  • Camellia-256
  • Serpent-128
  • Serpent-192
  • Serpent-256
  • SEED
  • HIGHT
  • ARIA-128
  • ARIA-192
  • ARIA-256
  • LEA-128
  • LEA-192
  • LEA-256
192 비트 이상
  • AES-192
  • AES-256
  • AES-192
  • AES-256
  • Camellia-192
  • Camellia-256
  • AES-192
  • AES-256
  • Camellia-192
  • Camellia-256
  • Serpent-192
  • Serpent-256
  • ARIA-192
  • ARIA-256
  • LEA-192
  • LEA-256
256 비트 이상
  • AES-256
  • AES-256
  • Camellia-256
  • AES-256
  • Camellia-256
  • Serpent-256
  • ARIA-256
  • LEA-256

해시 함수[edit | edit source]

해시함수는 사용 목적에 따라 메시지인증/키유도/난수생성용과 단순해시메시지 압축/전자 서명용으로 구분

메시지인증/키유도/난수생성용 해시함수

분류 NIST (미국)

(2015)

CRYPTREC (일본)

(2013)

ECRYPT (유럽)

(2018)

국내

(2018)

112 비트 이상
  • SHA-1[1]
  • SHA-224
  • SHA-256
  • SHA-384
  • SHA-512 SHA-512/224 SHA-512/256
  • SHA3-224
  • SHA3-256
  • SHA3-384
  • SHA3-512
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-224
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-512/224
  • SHA-512/256
  • SHA3-224
  • SHA3-256
  • SHA3-384
  • SHA3-512
  • SHA3-shake128
  • SHA3-shake256
  • Whirlpool-512
  • BLAKE-224
  • BLAKE-256
  • BLAKE-384
  • BLAKE-512
  • HAS-160[2]
  • SHA-1
  • SHA-224
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-512/224
  • SHA-512/256
  • SHA3-224
  • SHA3-256
  • SHA3-384
  • SHA3-512
  • LSH-224
  • LSH-256
  • LSH-384
  • LSH-512
  • LSH-512-224
  • LSH-512-256
128 비트 이상
  • SHA-1
  • SHA-224
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-512/224
  • SHA-512/256
  • SHA3-224
  • SHA3-256
  • SHA3-384
  • SHA3-512
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-224
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-512/224
  • SHA-512/256
  • SHA3-224
  • SHA3-256
  • SHA3-384
  • SHA3-512
  • SHA3-shake128
  • SHA3-shake256 Whirlpool-512
  • BLAKE-224
  • BLAKE-256
  • BLAKE-384
  • BLAKE-512
  • HAS-160
  • SHA-1
  • SHA-224
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-512/224
  • SHA-512/256
  • SHA3-224
  • SHA3-256
  • SHA3-384
  • SHA3-512
  • LSH-224
  • LSH-256
  • LSH-384
  • LSH-512
  • LSH-512-224
  • LSH-512-256
192 비트 이상
  • SHA-224
  • SHA-256
  • SHA-384
  • SHA-512 SHA-512/224 SHA-512/256
  • SHA3-224
  • SHA3-256
  • SHA3-384
  • SHA3-512
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-224
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-512/224
  • SHA-512/256
  • SHA3-224
  • SHA3-256
  • SHA3-384
  • SHA3-512
  • SHA3-shake128
  • SHA3-shake256 Whirlpool-512
  • BLAKE-224
  • BLAKE-256
  • BLAKE-384
  • BLAKE-512
  • SHA-224
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-512/224
  • SHA-512/256
  • SHA3-224
  • SHA3-256
  • SHA3-384
  • SHA3-512
  • LSH-224
  • LSH-256
  • LSH-384
  • LSH-512
  • LSH-512-224
  • LSH-512-256
256 비트 이상
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-512/256
  • SHA3-256
  • SHA3-384
  • SHA3-512
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-512/256
  • SHA3-256
  • SHA3-384
  • SHA3-512
  • SHA3-shake128
  • SHA3-shake256
  • Whirlpool-512
  • BLAKE-256
  • BLAKE-384
  • BLAKE-512
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-512/256
  • SHA3-256
  • SHA3-384
  • SHA3-512
  • LSH-256
  • LSH-384
  • LSH-512
  • LSH-512-256

단순해시/전자서명용 해시함수[edit | edit source]

분류 NIST (미국)

(2015)

CRYPTREC (일본)

(2013)

ECRYPT (유럽)

(2018)

국내

(2018)

112 비트 이상
  • SHA-224
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-512/224
  • SHA-512/256
  • SHA3-224
  • SHA3-256
  • SHA3-384
  • SHA3-512
  • SHA-256
  • SHA-384
  • SHA-512
  • HA-224
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-512/224
  • SHA-512/256
  • SHA3-224
  • SHA3-256
  • SHA3-384
  • SHA3-512
  • SHA3-shake128
  • SHA3-shake256
  • Whirlpool-512
  • BLAKE-224
  • BLAKE-256
  • BLAKE-384
  • BLAKE-512
  • SHA-224
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-512/224
  • SHA-512/256
  • SHA3-224
  • SHA3-256
  • SHA3-384
  • SHA3-512
  • LSH-224
  • LSH-256
  • LSH-384
  • LSH-512
  • LSH-512-224
  • LSH-512-256
128 비트 이상
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-512/256
  • SHA3-256
  • SHA3-384
  • SHA3-512
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-512/256
  • SHA3-256
  • SHA3-384
  • SHA3-512
  • SHA3-shake128
  • SHA3-shake256
  • Whirlpool-512
  • BLAKE-256
  • BLAKE-384
  • BLAKE-512
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-512/256
  • SHA3-256
  • SHA3-384
  • SHA3-512
  • LSH-256
  • LSH-384
  • LSH-512
  • LSH-512-256
192 비트 이상
  • SHA-384
  • SHA-512
  • SHA3-384
  • SHA3-512
  • SHA-384
  • SHA-512
  • SHA-384
  • SHA-512
  • SHA3-384
  • SHA3-512
  • SHA3-shake256
  • Whirlpool-512
  • BLAKE-384
  • BLAKE-512
  • SHA-384
  • SHA-512
  • SHA3-384
  • SHA3-512
  • LSH-384
  • LSH-512
256 비트 이상
  • SHA-512
  • SHA3-512
  • SHA-512
  • SHA-512
  • SHA3-512
  • SHA3-shake256
  • Whirlpool-512
  • BLAKE-512
  • SHA-512
  • SHA3-512
  • LSH-512

공개키 암호 알고리즘[edit | edit source]

보안강도 인수분해 문제(비트) 이산대수문제 (비트) 타원곡선 (비트)
공개키 개인키
112 비트 이상 2048 2048 224 224
128 비트 이상 3072 3072 256 256
192 비트 이상 7680 7680 384 384
256 비트 이상 15360 15360 512 512
분류 NIST (미국)

(2015)

CRYPTREC (일본)

(2013)

ECRYPT (유럽)

(2018)

국내

(2018)

인수분해 문제
  • RSA(암, 전)
  • RSA-OAEP(암)
  • RSASSA-PKCS1(v1.5)( 전)
  • RSA-PSS(전)
  • RSA-KEM(키)
  • RSA-OAEP(암)
  • RSA-PSS(전) ISO-9796-2 RSA-DS2( 전)
  • RSAES(암)
  • RSA-PSS(전)
이산대수 문제
  • DH(키) DSA(전) MQV(키)
  • DH(키) DSA(전)
  • ECIES-KEM(키)
  • Schnorr(전)
  • PV Signatures(전)
  • KDSA(전)
  • XMSS(전)
  • DH(키)
  • KCDSA(전)
타원곡선
  • ECDH(키)
  • ECDSA(전)
  • ECMQV(키)
  • ECDH(키)
  • ECDSA(전)
  • PSEC-KEM(키)
  • ECKDSA(전)
  • ECSchnorr(전)
  • ECDH(키)
  • ECDSA(전)
  • EC-KCDSA(전)
  • 암: 메시지 암복호화용
  • 전: 전자서명용
  • 키: 키 공유용

암호 알고리즘 및 키 길이 선택 기준[edit | edit source]

보안강도별 암호 알고리즘 비교[edit | edit source]

보안강도 대칭키 암호 알고리즘

(보안강도)

해시함수

(보안강도)

공개키 암호 알고리즘 암호 알고리즘 안정성 유지기간

(년도)

인수분해

(비트)

이산대수 타원곡선 암호

(비트)

공개키(비트) 개인키(비트)
112비트 112 112 2048 2048 224 224 2030년까지
128비트 128 128 3072 3072 256 256 2030년 이후
192비트 192 192 7680 7680 384 384
256비트 256 256 15360 15360 512 512

암호키 사용 유효기간[edit | edit source]

키 종류 사용 유효기간
송신자 사용기간 수신자 사용기간
대칭키 암호 알고리즘 비밀키 최대 2년 최대 5년
공개키 암호 알고리즘 암호화 공개키 최대 2년
복호화 개인키 최대 2년
검증용 공개키 최소 2년
서명용 개인키 최대 2년

참고 문헌[edit | edit source]

  • 암호 알고리즘 및 키 길이 이용 안내서(한국인터넷진흥원, 2018)

각주[edit | edit source]

  1. 단순해시/전자서명용으로 만족해야하는 안전성(충돌저항성)이 80비트 보안강도를 제공하지 못하므로(NIST SP 800-56 Rev.4) 사용 불가능하지만, 메시지/키유도/난수생성용으로는 사용 가능함
  2. 단순해시/전자서명용으로 만족해야하는 안전성(충돌저항성)이 112비트 보안강도를 제공하지 못하므로 사용 불가능하지만, 메시지/키유도/난수생성용으로는 사용 가능함