피드로 돌아가기
Dev.toDatabase
원문 읽기
Symmetric Encryption 데이터의 근사 정렬을 위한 Leaked-Order Index 설계
Sorting Encrypted Strings with a Leaked-Order Index
AI 요약
Context
데이터베이스 내 거의 모든 필드를 Symmetric Encryption으로 저장해야 하는 제약 조건 하에서 데이터 검색과 정렬 기능 구현 필요. 기존 OPE, ORE, FHE 등의 암호화 방식은 PostgreSQL 환경에서 구현 복잡도가 너무 높거나 과도한 계산 오버헤드를 발생시키는 한계 존재.
Technical Solution
- 원문 데이터와 별개로 정렬 전용의 Numeric Index를 생성하여 저장하는 보조 인덱스 구조 설계
- Unicode Code Point에 지수적 가중치를 부여하는 WEIGHT = CODEPOINT × (WEIGHT_FACTOR ^ (N - 1 - POSITION)) 수식을 통한 문자열의 숫자화
- 정렬 정밀도와 보안성 사이의 Trade-off를 위해 Quantization(양자화)을 적용하여 Prefix 정보의 일부를 의도적으로 누락
- 가중치 기반 합산 방식을 통해 상위 포지션 문자가 인덱스 값에 지배적인 영향을 주도록 설계하여 근사적 알파벳 순서 유지
- 64-bit BIGINT 범위 내에 인덱스 값이 수용되도록 가중치 팩터와 문자열 길이(N=6)를 최적화
- 시각적/어휘적 동일성을 보장하기 위한 String Canonicalization 전처리 과정 도입
실천 포인트
- 암호화된 데이터의 정렬이 필요할 때 완벽한 보안보다 '근사치 정렬'이 수용 가능한지 비즈니스 요구사항 검토 - 정밀도 조절이 필요한 경우 Quantization 및 Shift 연산을 통해 인덱스 버킷 크기를 조정하여 데이터 유출 최소화 - 인덱스 생성 시 Collision 방지를 위해 Base-10 이상의 충분한 WEIGHT_FACTOR 설정 여부 확인 - 보조 인덱스를 활용한 정렬 방식 채택 시 해당 인덱스를 암호화 데이터가 아닌 보조 메타데이터로 취급하여 보안 모델 설계