현재 컬럼이 RC4_128인데
AES_256로 변경을 하고자 합니다.
확인해보니 AES_256은 암호화 할때마다 값이 변경 되더라고요
그래서 인덱스에 대한 의미가 없어서
DBA와 논의 결과 별도의 SHA 컬럼을 추가하고 거기에 인덱스를 잡기로 했는데요
그렇게 하면 INSERT, UPDATE, SELECT, WHERE, JOIN 시 프로시저를 수정해줘야 하는데
코드가 10만줄이 넘습니다...
도저히 답이 없는데요
AES_256에 인덱스를 잡거하 공수를 줄이는 법이 없을까요?
All column level encryption inside of the databases is non-deterministic and random. You could use SQL Server 2016 Always Encrypted and configure it for deterministic encryption, but with low cardinality you would be running the risk of someone using the driver to create a hash table of your account numbers and defeat the encryption. It would be best to remove it from the primary key and remove the column on all tables it references as a foreign key, that way it would only be on one table and encrypted. As far as searching, you could create a hash on the last four digits to narrow the results before decrypting. That would reduce the workload.
위 같이 답변이 있는데 영어가 너무 짧아서...
Comment 1
-
catchv
2021.06.23 09:54
AES 알고리즘은 블럭 알고리즘이고 key, IV 값이 동일하다면 항상 동일한 값이 나옵니다.
암호화하는 프로그램의 소스를 한 번 확인해 보시기 바랍니다.