이외에도 대량의 개인정보를 수집/관리하는 업체 및 기관의 개인정보 유출 사고 증가로 <그림 1>에서와 같이 사이버 위협 수준이 급격히 높아지고 있음
민감 정보의 안정성 확보조치 의무화에 관한 법률 제정으로 민감 정보 암호화 요구
민감 정보가 분실·유출·훼손되지 않도록 안정성 확보 조치를 의무화함(개인정보보호법 제23조 제2항 신설 2016. 3. 29., 시행 2016. 9. 30.)
• 기존에는 개인정보 중 생체 정보만 암호화 대상이었으나, 법 개정을 통해 개인의 모든 민감 정보는 반드시 암호화 되도록 개인정보보호법에 ‘민감 정보 안정성 확보 조치 의무화’ 내용 추가
• 암호화 대상은 고유식별정보, 비밀번호, 생체 정보 등 개인의 모든 민감 정보에 해당
기존 시스템 변경을 최소화하며 암호화 적용이 용이한 ‘형태 보존 암호화’ 기술이 재조명되고 있음
주민등록번호(숫자 13자리), 신용카드번호(숫자 13자리~16자리) 등과 같이 형태가 일정한 값을 저장할 때, 효율적인 저장 공간 사용과 검색 성능 향상을 위해 대부분의 레거시(legacy) 데이터베이스시스템들(DBMS)은 고정 길이 필드(저장 길이 혹은 형태 제한)를 사용
기존 블록 암호화(1) 기술(예, AES(2), DES(3) 등)을 사용하여 주민등록번호나 신용카드번호를 암호화할 경우 일반적으로 형태가 달라지기 때문에 형태가 일정한 민감 정보 암호화 시 기존 시스템과의 호환성을 고려한 형태 보존암호화 기술 도입이 활발할 것으로 전망
• 형태 보존 암호화 기술은 평문의 형태를 그대로 유지하며 암호화할 수 있음
• 즉, 그림 2과 같이 신용카드번호 1234567898765432가 형태 보존 암호화 기술로 암호화되면 7412987458581745와 같이 원본과 동일한 형태의 암호문이 출력됨
최 근 미국 NIST의 형태 보존 암호화 기술 표준 제정으로 한층 더 산업계 관심 예상
2016년 3월 29일 미국 NIST(National Institute of Standards and Technology)(4)는 형태 보존 암호화 관련 2가지 기술(FF1, FF3)을 컴퓨터 보안 표준(NIST Special Publication 800-38G)으로 제정
형태 보존 암호화(FPE: Format-Preserving Encryption)
암호화 후 평문의 형태와 암호문의 형태가 동일함을 보장하는 암호화 기술을 말함
숫자(0~9)로 구성(도메인)되고 길이가 16인 평문을 FPE 기술로 암호화를 하면 <그림 2>과 같이 원본 도메인과 동일하게 숫자로 구성되고 길이가 16인 암호문이 출력됨
Black과 Rogaway가 도메인 크기별/알고리즘 복잡도별로 제안한 3가지 방법(prefix cipher, cycle-walking cipher, generalized-Feistel cipher)(5)이 여러 FPE 알고리즘의 근간이 됨
(prefix cipher) FPE를 적용하려는 도메인이 {0, ..., N-1}과 같이 정수로 주어졌을 때, 해당 도메인에 속하는 각각의 정수에 AES, DES와 같은 블록 암호화 알고리즘을 사용하여 의사난수((6) 가중치(pseudo-random weight)를 계산하여 정렬하는 방법 (그림 3 참조)
• 알고리즘이 간단하고 도메인 크기가 작은 경우 사용에 용이함
• 도메인 크기가 커지면 매핑테이블의 크기 역시 커져 저장 및 사용이 어려워짐
(cycle-walking cipher) 블록 암호화 알고리즘을 사용하여 원본과 동일한 형태의 결과가 나올 때까지 알고리즘을 계속 수행하는 방법
• prefix-cipher와 달리 전체 매핑테이블을 유지할 필요 없음
• 언젠가는 알고리즘이 종료되지만 언제 종료될지는 예측할 수 없음
• 원본 형태의 허용 범위(그림 4의 집합 M)가 작을수록 지나치게 많은 반복으로 실용성이 떨어지고 허용 범위 값의 범위가 블록 암호화 알고리즘의 고정된 블록크기에 영향을 받음
(generalized-Feistel cipher) 그림 5의 Feistel network(7)를 이용한 방법으로써 각 라운드(round)의 보조키로 블록 암호화 알고리즘의 출력을 사용하여 FPE 수행
• 원본 형태와 다른 출력이 발생하는 경우 cycle-walking과 유사하게 원하는 형태가 얻어질 때까지 Feistel network을 반복 수행
• prefix cipher와 cycle-walking cipher와 달리, 도메인 크기가 큰 경우에도 비교적 큰 성능 저하 없이 사용 가능하기 때문에 실무에서 많이 사용되며, 이를 기반으로 다양한 알고리즘이 제안됨
대부분의 FPE 알고리즘은 위 세 가지 개념을 변형하여 만들어지고 있으며, 블록 암호화 알고리즘을 기반으로 만들어지기 때문에 동일한 안전 정도를 보장함
블록 암호화(block cipher) 기술과의 차이는?
AES, DES 등 기존 블록 암호화 기술은 이진 데이터가 암호화 대상이기 때문에 이를 이용하여 주민등록번호나 신용카드번호를 암호화할 경우 형태가 달라짐
• 예를 들어, 신용카드번호 1234567898765432를 AES로 암호화 하면 원본과 다른 형태의 암호문이 출력됨
• 1234567898765432를 숫자로 가정하고 AES로 암호화 할 경우 16자리보다 큰 수가 출력될 가능성 높음
• 1234567898765432를 ASCII코드로 가정하고 AES로 암호화 할 경우 그 결과 값의 길이가 원본과 달라질 가능성이 높고 아스키 코드(ASCII code)(8) 의 숫자 범위(0x30 ~ 0x39) 사이 값이 출력될 가능성도 희박
토큰화(tokenization) 기술과의 차이는?
토큰화는 임의로 생성된 값(토큰)을 신용카드번호, 주민등록번호와 같이 민감한 정보 대신 사용하는 기술
• 실제 민감한 정보는 안전한 곳에 따로 보관되며 토큰과 실제 데이터를 연결하는 매핑 테이블 필요
토큰과 실제 데이터와의 연관성이 없기 때문에 공격자가 토큰으로부터 실제 데이터를 유추하는 것 자체가 불가능
토큰화 시스템 구축, 데이터 분리 보관, 실시간 토큰 동기화 등 추가 보안 관련 부담과 시스템 개발/유지 비용 필요
NIST에서 FPE 알고리즘 FF1과 FF3을 컴퓨터 보안 표준으로 제정
Feistel network 방법을 기반으로 한 FPE 알고리즘인 FFX[Radix](FF1)와 BPS-BC(FF3)가 블록 암호화 알고리즘의 모드(mode)(9) 형태로 제안되고 NIST에서 컴퓨터 보안 표준(NIST Special Publication 800-38G(10) )으로 제정(2016. 3. 29.)
• 기존에 승인된 모드들은 모두 이진 데이터에 대한 표준들이며 이번에 승인된 모드는 FPE와 관련된 첫 표준
• (FF1) M. Bellare, P. Rogaway, T. Spies가 제출한 “The FFX Mode of Operation for Format-Preserving Encryption”(FFX[Radix])을 표준으로 승인(특허로 보호 받고 있음)
• (FF3) E. Brier, T. Peyrin, J. Stern이 제출한 “BSP: a Format-Preserving Encryption Proposal”(BSP) 중 BSP-BC가 표준으로 승인(특허 공개로 누구나 사용 가능)
FF1와 FF3 모두 파라미터로 주어지는 radix, minlen, maxlen 값에 따라 보안 정도가 달라짐
• radix는 한 글자를 구성하는 심볼의 개수(예, 10진수의 경우 숫자 0부터 숫자 9까지 심볼 10개를 사용하기 때문에 radix는 10이 됨), minlen은 주어진 평문의 최소 길이, maxlen은 주어진 평문의 최대 길이
• 즉, 신용카드번호는 radix는 10(신용카드번호 한자리는 숫자 0에서 숫자 9까지 사용하기 때문), minlen은 13, maxlen은 19(카드사에 따라 신용카드번호는 13자리부터 19자리까지 다양함(11))
• 보통 radix, minlen, maxlen 등이 클수록 보안 정도가 높아짐
FF1은 가변 길이 트윅(tweak(12))을 제공하여 좀 더 유연한 범위 내에서 데이터 사용이 가능하고, FF3는 FF1에 비해 라운드 회수(FF1은 10라운드, FF3는 8라운드로 구성)가 적어 더 높은 처리량을 보임
형태 보존 암호화 관련 오픈 소스 라이브러리
p ython, C/C++, Java, .net 등 다양한 플랫폼 기반의 FPE 오픈 소스 라이브러리 존재 (<표 1>참조)
시사점
민감 정보에 대한 암호화 요구로 인해 민감 정보를 보유하고 있는 업체나 기관의 암호화 솔루션에 대한 수요가 증가할 것으로 예상
기존 레거시(legacy) 시스템과의 호환을 위해 형태 보존 암호화 기술 적용이 활발할 것으로 예측
특히, 형태 보존 암호화 기술이 미국 NIST의 컴퓨터 보안 표준으로 제정되어 산업계에서 기술 도입이 순조롭게 진행될 것으로 전망
실무에서 형태 보존 암호화 기술을 안전하게 적용할 수 있도록 FPE 안전 사용 가이드라인 필요
(FPE는 도메인 크기와 평문의 최소/최대 길이, 적정 트윅(tweak) 사용 여부에 따라 안전도가 달라지기 때문에 상황에 맞는 값을 선택할 수 있도록 권고안 제공 필요)
(1) 블록 암호화 : 평문을 정해진 블록 단위로 암호화 하는 대칭키 암호화 기술. (출처 : Wikipedia)
(2) AES : Advanced Encryption Standard. 2001년 NIST에 의해 제정된 블록 암호화 알고리즘 (출처 : Wikipedia)
(3) DES : Data Encryption Standard. 블록 암호화 알고리즘의 일종으로 미국 NBS(National Bureau of Standards, 현재 NIST)에서 국가 표준으로 정한 암호. 보안성이 떨어지는 DES 대신 현재는 AES가 새 표준으로 정해져 사용 (출처 : Wikipedia)
(4) NIST : 미국의 국립표준기술연구소. 미국의 국가 기술이전 및 진흥법(NTTAA, Public Law 104-113)에 따라 미국 정부의 기술표준 활동 및 민간부문의 적합성 평가활동을 조정하는 임무 수행 (출처 : Wikipedia)
(5) J. Black, P. Rogaway, Ciphers with Arbitrary Domains, Proceedings RSA-CT, 2002, pp. 114–130.
(6) 의사난수(pseudo-random) : 진정한 의미에서의 난수는 아니지만 그 결과 값이 충분히 추측하기 어려워 어느 정도 난수로서의 의미를 가짐
(7) Feistel network : 블록 암호화 알고리즘의 일종으로 암호화 방식이 특정 계산 함수의 반복(라운드: round)으로 이루어짐. 각 반복 과정에 사용되는 함수는 라운드 함수(round function)이라고 부름 (출처 : Wikipedia)
(8) 아스키 코드(ASCII code) : 영문 알파벳을 사용하는 대표적인 문자 인코딩, 0x30부터 0x39은 각각 숫자 0부터 숫자 9를 나타냄
(9) 모드(mode) : 블록 암호화 알고리즘에서 평문의 크기가 블록 크기보다 큰 경우 알고리즘을 반복적으로 안전하게 이용하는 절차를 말함. ECB, CBC, OFB, CFB, CTR 등이 있음