각 레코드를 암호화 할 때 고유 한 초기화 벡터를 사용하는 것이 좋지만 해당 필드를 검색하는 방법은 무엇입니까?고유 초기화 벡터를 사용하여 필드를 검색하는 방법은 무엇입니까?
현재 저는 단일 IV를 사용합니다. 즉, 전자 메일 주소에 대해 암호화 된 검색 문자열을 재구성하고 데이터베이스에서 해당 필드를 쿼리 할 수 있음을 의미합니다. 고유 초기화 벡터를 사용하기 시작하면 암호화 된 검색 문자열을 재구성 할 수 없습니다.
내 환경은 ASP.NET, Entity Framework 및 SQL Server입니다. 아마도 이것은 데이터베이스에서 직접 더 쉽지만 쿼리는 LINQ-to-Entities를 통해 진행됩니다.
[내 첫 번째 질문 -! 드디어 내가 SO에 대한 답변을 찾을 수없는] 당신이 알고 있기 때문에
좋은 측면 사고. 따라서 해싱 솔루션은 전자 메일 주소에 적합합니다. 그러나 그 칼럼에 대한 공통된 IV가 같은 이유로 안전하지 않을까요? – GuyB
나는 그 주제에 대한 전문가가 아니며, 내가 지난 몇 년간 읽은 것에서 배웠다. 하지만 내 이해가 정적 IV에 대한 주된 이유는 공격자가 동일한 암호화 된 메시지를 두 번 보는 경우, 그들은 동일한 평문 (물론 해시도 마찬가지 임)을 알 수 있습니다. 그러나 정적 IV가 공격자에게 다른 메시지를 해독하는 수단을 제공한다는 내용은 보지 못했습니다. 그렇다면 정적 IV가 동적 IV + 해시와 다르지 않다는 것이 맞다고 말할 수 있습니다. –