알아 두면 좋은 짤막한 지식
FPE 운영 모드의 성능과 안전성
암호화와 성능 이야기가 나왔으니 10장에서 다룰 FPE(형태 보존 암호화) 운영 모드에서는 데이터베이스 암호화 관점에서 성능과 안전성은 어떤지 잠깐 살펴보겠습니다. FPE는 데이터의 형태를 유지하여 암호화를 수행하는 운영 모드입니다. 예를 들어 16자리로 형태가 고정된 신용카드 정보를 암호화할 때 사용합니다(<Chapter10 형태를 유지하는 새로운 암호화 방식, FPE> 참고).
데이터베이스에서 데이터의 형태를 유지하는 것은 중요한 문제입니다. 데이터베이스에는 ‘스키마’가 있습니다. 스키마란 한마디로 데이터베이스에 저장되는 데이터 속성을 담는 정보입니다. 스키마에서는 데이터가 숫자인지, 문자인지, 몇 글자인지 같은 데이터 속성을 정의합니다. 그리고 데이터 속성에 따라 저장 공간을 미리 지정하지요. 일반적으로 데이터를 암호화할 때 원본 데이터는 암호화 과정에서 속성과 크기가 달라집니다. 이때 데이터베이스의 저장 공간이 부족하면 데이터를 분산하여 저장하는데 이 과정에서 데이터베이스의 성능이 떨어질 수 있습니다. 하지만 FPE를 이용하면 데이터가 암호화되더라도 형태를 유지하므로 이런 종류의 원인으로 DBMS 성능이 지연되는 문제가 발생하는 것을 막을 수 있습니다.
그러나 FPE 운영 모드도 OPE와 마찬가지로 전통적인 안전성 개념(혼돈과 확산)에서는 ‘안전한 암호화’라고 말하기 어렵습니다(안전성 개념의 전환은 6장에서 설명했습니다). 운영 모드 설명 과정에서 확인한 것과 같이, 암호 알고리즘이 안전하더라도 단위 암호 시스템이나 전체 암호 시스템은 혼돈과 확산이 취약한 경우가 많습니다. FPE의 경우도 정확한 이해를 기반으로 전체 암호 시스템을 안전하게 구성하는 것이 가장 중요한 일입니다.