데이터베이스에 저장된 데이터를 암호화할 때, 암호 키의 길이를 생성할 때 깊은 고민에 빠집니다. 어떻게 해야하나.
개인정보보호법을 보면 고유식별정보가 분실ㆍ도난ㆍ유출ㆍ위조ㆍ변조 또는 훼손되지 아니하도록 대통령령으로 정하는 바에 따라 암호화 등 안전성 확보에 필요한 조치를 취하라는 데 어떻게 해야 할까요?
오늘은 암호 적용대상, 암호화 권고 알고리즘과 그 특성 그리고 암호키 관리에 대해 알아보겠습니다.
[암호 적용대상 필수 대상]
| 개인정보 보호법 | 정보통신망법 |
양방향 (복원 가능) | 주민등록번호 여권번호 운전면허번호 외국인등록번호 바이오정보 | 주민등록번호 여권번호 운전면허번호 외국인등록번호 바이오정보 신용카드정보 계좌번호 |
단방향 (복원 불가) | 비밀번호 | 비밀번호 |
암호화 종류는 대칭키(비밀키) 암호, 비대칭키(공개키) 암호 그리고 일방향(해쉬함수) 암호화로 크게 나눠집니다.
[암호화 종류]
| 대칭키 | 공개키 | 일방향(해쉬함수) |
특징 | 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. 블록 암호: 정해진 한 단위(블록)를 입력받아 그에 대응하는 암호화 블록을 생성 | 수학적인 정수 인수분해에 기반 |
|
대칭키 암호화 방식
비대칭키(공개키) 암호화 방식
공개키와 비대칭키 암호의 중요 차이점만 짧게 정리하면 다음과 같습니다.
| 공개키 암호 | 대칭키(비밀키) 암호 |
키의 관계 | 암호화키 != 복호화키 | 암호화키 = 복호화키 |
암호화키 | 공개 | 비공개 |
복호화키 | 비공개 | 비공개 |
알고리즘 | 공개 | 공개 |
키의 개수 | 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