더북(TheBook)

하지만 데이터베이스에 있던 데이터 A를 암호화하면 암호화된 데이터인 A′의 순서는 무작위로 섞입니다. 암호화된 데이터에서 기존 A의 인덱스는 쓸모없는 정보가 됩니다. A′에 새로 생성한 인덱스 순서는 알아볼 수 없는 암호문의 순서이므로 원하는 데이터를 검색할 때 전혀 도움이 되지 않습니다. 따라서 보통은 암호화를 수행한 후 인덱스를 생성할 때 암호문 A′를 활용하지 않고, 암호문 A′를 복호화한 값인 Dec(A′), 즉 원문 A를 활용합니다. 그러면 원문 A를 암호문 A′와 연결하는 셈이 되어 A′를 이용하여 A 값을 빠르게 찾을 수 있습니다. 즉, A′의 인덱스로 찾아낸 값을 복호화하면 원하던 A의 검색 결과를 얻을 수 있습니다.

 

| 암호화된 데이터의 인덱스 구성 |

 

그런데 DBMS 제조사에서는 인덱스를 구현할 때 더 빠르게 검색하려고 인덱스 생성에 사용한 데이터 값을 인덱스에 사용하기도 합니다. 그러면 암호화를 수행하는 입장에서는 난감한 상황이 발생합니다. 인덱스의 내용을 덤프7했을 때 인덱스 안의 원본 데이터가 그대로 드러나는 경우가 발생하기 때문입니다.

 

 


7 여기서 덤프란 주기억장치(메모리)의 내용을 순간적으로 추출하는 행위를 의미합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.