[정보보호기술] 암호 알고리즘 및 키 길이 안내


데이터베이스에 저장된 데이터를 암호화할 때, 암호 키의 길이를 생성할 때 깊은 고민에 빠집니다. 어떻게 해야하나.



개인정보보호법을 보면 고유식별정보가 분실ㆍ도난ㆍ유출ㆍ위조ㆍ변조 또는 훼손되지 아니하도록 대통령령으로 정하는 바에 따라 암호화 등 안전성 확보에 필요한 조치를 취하라는 데 어떻게 해야 할까요?


오늘은 암호 적용대상, 암호화 권고 알고리즘과 그 특성 그리고 암호키 관리에 대해 알아보겠습니다.


[암호 적용대상 필수 대상]


개인정보 보호법

정보통신망법

양방향

(복원 가능)

주민등록번호

여권번호

운전면허번호

외국인등록번호

바이오정보

주민등록번호

여권번호

운전면허번호

외국인등록번호

바이오정보

신용카드정보

계좌번호

단방향

(복원 불가)

비밀번호

비밀번호



암호화 종류는 대칭키(비밀키) 암호, 비대칭키(공개키) 암호 그리고 일방향(해쉬함수) 암호화로 크게 나눠집니다.


[암호화 종류]


대칭키

공개키

일방향(해쉬함수)

특징

1. 데이터 암호화가 목적

2. 암호/복호화 속도 빠름

3. 기밀성만 유지

4. 키의 배포문제와 확장성에 문제가 발생

5. 암, 복호화 키가 동일해 키가 노출될 위험 존재

1. 암호화키와 복호화키가 다름 (키가 2개)

2. 비밀키 방식에 비해 속도 느림

3. 키 분배 문제 해결가능

4. 전자서명에 이용가능

1. 주로 PW 암호화에 주로 사용

2. 암호화체크섬 = 해시값 = 메시지다이제스트으로 이용

대표 알고리즘

국내의 SEED, ARIA, LEA, HIGHT 국외의 AES, Blowfish, Camellia

국외의 RSA, ElGamal, ECC 등

국외의 SHA-2(SHA-224/256/384/512), SHA-3, RIPEMD-160, Whirlpool 등

암호기술

암호화하는 단위에 따라 스트림 암호와 블록 암호로 나뉨

1. 스트림 암호: 연속적인 비트/바이트를 계속해서 입력받아, 대응하는 암호화 비트/바이트를 생성

2. 블록 암호: 정해진 한 단위(블록)를 입력받아 그에 대응하는 암호화 블록을 생성

수학적인 정수 인수분해에 기반




  1. 대칭키 암호화 방식


  1. 비대칭키(공개키) 암호화 방식


공개키와 비대칭키 암호의 중요 차이점만 짧게 정리하면 다음과 같습니다. 


공개키 암호

대칭키(비밀키) 암호

키의 관계

암호화키 != 복호화키

암호화키 = 복호화키

암호화키

공개

비공개

복호화키

비공개

비공개

알고리즘

공개

공개

키의 개수

2n

n(n-1)/2

1인당 키

1개

n-1개

속도

비효율적

효율적

인증

누구나 인증

키 공유자

장점

- 키의 분배가 용이함

- 사용자의 증가에 따라 관리할 키의 개수가 상대적으로 적음

- 키 변화의 빈도가 적음

- 여러 가지 분야에서 응용이 가능함

- 암호화/복호화 속도가 빠름

- 키의 길이가 짧음

단점

- 암호화 / 복호화 속도가 느림

- 키의 길이가 김

- 사용자의 증가에 따라 관리해야 할 키의 수가 상대적으로 많음

- 키 변화의 빈도가 많음



암호 알고리즘과 키 길이는 시스템에 적용되는 보안강도(시스템 안전성 수준)에 따라 달라집니다. 


<국내외 권고 알고리즘, 암호 알고리즘 및 키 길이 이용 안내서 - 기술안내서 가이드(KISA, 2018)>

분류

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

RDSA-DS2

PV Signatures

Schnorr

ECSchnorr

KDSA

ECKDSA

XMSS

RSA-PSS

KDSA

ECDSA

EC-KCDSA


<암호화 적용 기준 요약표>


암호키 관리는 암호키 수명주기와 단계별 암호키 관리로 나뉩니다.


[암호키 수명주기]

암호키 관리시의 상태와 기능에 따라 키 수명주기는 4단계로 나눌 수 있습니다.


단계

설명

준비 단계

암호 키가 사용되기 이전의 단계(미생성 또는 준비 상태)

운영 단계

암호 키가 암호 알고리즘 및 연산에 사용되는 단계(운영 상태)

정지 단계

암호 키가 더 이상 사용되지 않지만, 암호 키에 대한 접근은 가능한 단계(정지 또는 위험 상태)

폐기 단계

암호 키가 더 이상 사용될 수 없는 단계(폐기 또는 사고 상태)



[단계별 암호키 관리]

단계

설명

준비

-

준비 단계에서는 암호키를 사용할 사용자나 암호키가 사용될 시스템을 설정. 사용자 등록 기능, 시스템 초기화 기능, 사용자 초기화 기능, 키 자료 설치 기능, 키 설정 기능, 키 등록 기능 등이 해당

암호키

생성

1. 난수발생기(RBG) 이용

 - 암호키 생성에 필요한 난수는 안전한 난수발생기(RBG)를 이용하여 생성

2. 비대칭키 알고리즘의 키 생성

 - 디지털 서명을 위한 키 쌍 생성

 - 키 설정을 위한 키 쌍 생성

3. 대칭키 알고리즘의 키 생성

 - 미리 공유된 키를 이용한 키 유도

 - 패스워드를 이용한 키 유도

 - 다수의 암호 키를 이용한 키 생성

암호키 분배

1. 대칭키 알고리즘의 키 분배

 - 수동적 키 분배

 - 자동화된 키 전송

2. 비대칭키 알고리즘의 키 분배

3. 기타 키 자료 생성 및 분배 - 영역 파라미터, IV(Initial Value), 공유된 비밀, RNG 시드, 다른 공개 및 비밀정보, 중간 값, 난수, 패스워드 등

운영

암호키 저장

암호키는 암호키에 대한 유효기간이 만료되기 전까지 운영 상태에 있다. 암호키의 유효기간동안 사용되는 키 자료들은 필요에 따라 장비 모듈에 보관되거나 저장 매체에 보관

암호키 가용

암호키의 유효기간 동안 하드웨어 손상 또는 소프트웨어 오류 등의 사유로 암호키는 항상 손상될 가능성이 있으므로 가용성 보장을 위해서는 키 백업 및 키 복구 기술이 필요

암호키 변경

1. 암호키의 변경은 운영중인 암호 키를 다른 암호키로 교체하는 것을 의미  

2. 암호키가 노출된 경우, 노출의 위협이 있는 경우, 암호키의 유효기간의 만료가 가까워지는 경우에는 키를 안전하게 변경해야 함

정지

보관과 키 복구

1. 키 자료의 보관은 무결성과 접근통제가 가능해야 한다. 보관된 정보는 수정이 불가한 상태이거나 새로운 보관 키를 이용하여 주기적으로 암호화 되어야 함

2. 키 자료의 복구는 보관되어있는 다른 정보를 복호화 하거나 인증할 때 필요

실체 말소

보안 도메인에 속해있는 실체의 권한을 삭제한다. 말소된 실체의 키 자료의 사용을 방지

키 말소

더 이상 키 자료가 필요하지 않거나 관련된 정보가 유효하지 않을 경우, 키 자료는 키 자료와 관련된 모든 기록들과 함께 키 자료가 더 이상 사용되지 않음을 나타내는 표시를 통해 말소

키 파기

암호키의 사본을 만들 때, 이에대한 관리는 최종 파기를 위해 필요. 모든 개인키나 대칭키의 복사본이 더 이상 필요하지 않다면 즉시 파기되어야 함.

키 취소

키 손상, 기관으로부터 실체의 삭제 등의 이유로 정상적인 유효기간의 중간에 키 자료를 제거하는 경우 필요. 키 취소는 키 자료를 더 이상 사용할 수 없음을 나타냄

폐기

폐기 단계에서는 키 자료를 더 이상 사용할 수 없음. 일반적으로 폐기 단계의 키 자료에 대한 모든 기록은 이미 삭제되야 함. 일부 단체에서는 감사를 목적으로 특정 키 속성 유지가 필요할 수도 있음


암호 적용대상, 암호화 권고 알고리즘과 그 특성 그리고 암호키 관리에 대해 알아보았습니다. 오늘 포스팅은 암기장 같네요. :)

누군가에게 의미있는 자료가 되길 바랍니다.


---

[1] 암호 알고리즘 및 키 길이 이용 안내서 - 기술안내서 가이드(한국인터넷진흥원, 2018)

https://www.kisa.or.kr/public/laws/laws3_View.jsp?mode=view&p_No=259&b_No=259&d_No=82&ST=total&SV= 

[2] 개인정보의 암호화 조치 안내서

https://www.kisa.or.kr/jsp/common/downloadAction.jsp?bno=259&dno=78&fseq=1