바로가기 메뉴
본문 바로가기
주메뉴 바로가기
민감 정보 암호화에 따른 형태 보존 암호화 기술의 재조명
  • 송지환SW기반정책·인재연구실 책임연구원
날짜2016.05.25
조회수19806
    • 민감 정보에 대한 암호화 시행으로 암호화 솔루션에 대한 수요가 증가할 것으로 예상
    • 특히, 기존 레거시(legacy) 시스템과의 호환을 위해 형태 보존 암호화 기술 도입이 활발할 것으로 전망
    • 형태 보존 암호화 기술이 미국 NIST의 컴퓨터 보안 표준으로 제정되어 산업계 도입이 순조로울 것으로 예측
  • 최근 개인정보 유출 사고 증가와 민감 정보에 대한 암호화 요구
    • 해킹 및 내·외부 직원 등에 의해 개인정보 대량 유출 사고 지속 발생
    • (주요 카드 3사의 고객정보 유출, 2014. 1.) 카드사 협력업체의 직원이 1억 4천만 건 이상의 고객정보를 대출 광고업자와 대출모집인에게 넘김
    • (통신사 고객정보 유출, 2014. 3.) 통신사 홈페이지 해킹으로 1,200만 명의 개인정보가 유출됨
    • 이외에도 대량의 개인정보를 수집/관리하는 업체 및 기관의 개인정보 유출 사고 증가로 <그림 1>에서와 같이 사이버 위협 수준이 급격히 높아지고 있음
    • 그림 1-연도별 사이버 위협 수준의 변화
    • 민감 정보의 안정성 확보조치 의무화에 관한 법률 제정으로 민감 정보 암호화 요구
    • 민감 정보가 분실·유출·훼손되지 않도록 안정성 확보 조치를 의무화함(개인정보보호법 제23조 제2항 신설 2016. 3. 29., 시행 2016. 9. 30.)
    • • 기존에는 개인정보 중 생체 정보만 암호화 대상이었으나, 법 개정을 통해 개인의 모든 민감 정보는 반드시 암호화 되도록 개인정보보호법에 ‘민감 정보 안정성 확보 조치 의무화’ 내용 추가
    • • 암호화 대상은 고유식별정보, 비밀번호, 생체 정보 등 개인의 모든 민감 정보에 해당
    • 기존 시스템 변경을 최소화하며 암호화 적용이 용이한 ‘형태 보존 암호화’ 기술이 재조명되고 있음
    • 주민등록번호(숫자 13자리), 신용카드번호(숫자 13자리~16자리) 등과 같이 형태가 일정한 값을 저장할 때, 효율적인 저장 공간 사용과 검색 성능 향상을 위해 대부분의 레거시(legacy) 데이터베이스시스템들(DBMS)은 고정 길이 필드(저장 길이 혹은 형태 제한)를 사용
    • 그림 2-블록 암호화와 형태 보존 암호화 비교
    • 기존 블록 암호화(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 참조)
    • 그림 3-prefix cipher 기반의 FPE 알고리즘 예시
    • • 알고리즘이 간단하고 도메인 크기가 작은 경우 사용에 용이함
    • • 도메인 크기가 커지면 매핑테이블의 크기 역시 커져 저장 및 사용이 어려워짐
    • (cycle-walking cipher) 블록 암호화 알고리즘을 사용하여 원본과 동일한 형태의 결과가 나올 때까지 알고리즘을 계속 수행하는 방법
    • 그림 4- cycle-walking cipher 알고리즘과 동작 예시
    • • prefix-cipher와 달리 전체 매핑테이블을 유지할 필요 없음
    • • 언젠가는 알고리즘이 종료되지만 언제 종료될지는 예측할 수 없음
    • • 원본 형태의 허용 범위(그림 4의 집합 M)가 작을수록 지나치게 많은 반복으로 실용성이 떨어지고 허용 범위 값의 범위가 블록 암호화 알고리즘의 고정된 블록크기에 영향을 받음
    • (generalized-Feistel cipher) 그림 5의 Feistel network(7)를 이용한 방법으로써 각 라운드(round)의 보조키로 블록 암호화 알고리즘의 출력을 사용하여 FPE 수행
    • 그림 5-Feistel network의 암호화(좌)./복호화(우) 방법
    • • 원본 형태와 다른 출력이 발생하는 경우 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라운드로 구성)가 적어 더 높은 처리량을 보임
  • 형태 보존 암호화 관련 오픈 소스 라이브러리
    표 1-FPE 관련 오픈 소스 라이브러리
    • 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 등이 있음
    • (10) http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-38G.pdf
    • (11) Wikipedia 참조, https://en.wikipedia.org/wiki/Bank_card_number
    • (12) 트윅(tweak) : 형태 보존 암호의 입력으로 사용되는 부가정보이며 보호될 필요는 없음. 트윅을 변경하면 암호문도 변경됨. 도메인이 작을 경우 공격에 취약할 수 있기 때문에 트윅을 사용하여 암호문으로부터 평문을 유추하기 힘들게 만듦
    • (13) FFX(FF1) : M. Bellare, P. Rogaway, T. Spies가 제안한 FPE 알고리즘. NIST 표준으로 승인됨
    • (14) FE1 : M. Bellare, T. Ristenpart, P. Rogaway, T. Stegers가 제안한 FPE 알고리즘
    • (15) BPS : E. Brier, T. Peyrin and J. Stern가 제안한 FPE 알고리즘. 저자의 성을 따라 BPS라 명명