2012-05-24 3 views
1

암호화 된 데이터에 대한 검색을 수행하려고합니다. 즉, 동일한 일반 텍스트를 암호화 할 때마다 동일한 암호문을 가질 필요가 있음을 의미합니다. 나는. 암호화 된 이름의 목록을 생각해보고 나는 그 안에 모든 "케빈"을 찾고 싶습니다. 이제 "Kevin"을 암호화하고 데이터베이스에서 암호화 된 텍스트를 검색합니다. 모든 히트 곡은 "케빈 (Kevin)"이지만 - 여전히 비밀 번호를 알고있는 사람 만 알고 있습니다.AES/Rijndael : 암호화 된 데이터 검색 - 정적 소금 및 IV

이제 내 질문 : 동일한 소금과 IV (위에서 설명한 효과를 얻기 위해)를 사용하면 보안은 어떻습니까? 암호화가 여전히 안전합니까? 아니면 암호화 된 데이터를 검색하는 다른 방법이 있습니까?

+0

는 당신이 어딘가에 "케빈"를 포함하는 문자열을 검색 할 또는 당신은 단지 전체를 비교 싶은가 메시지? – CodesInChaos

+0

전체 메시지를 비교하고 싶습니다! 내 마음에 "Kevin"이 일 경우 텍스트는 매우 동일합니다. 하나는 텍스트의 암호화 된 단어 목록을 작성해야합니다. 결국 암호화 된 단어 ("케빈")에 대한 1 : 1 검색이 수행되어야합니다. 아니면 더 똑똑한 접근법을 알고 있습니까? – heinob

답변

2

결정 성있는 암호화를 수행하려면 결정적 암호화를 위해 설계된 암호화 모드 을 사용해야하며 다른 용도로 설계된 암호화 모드는 수정하지 않아야합니다.

RFC 5297에 설명 된 SIV 암호화 모드가 있습니다.

(물론, 결정 암호화는 단점이 있지만,이 토론하는 것은이 문제의 일부가 아닙니다.)

+0

JavaScript에 대한 구현이 있는지 알고 있습니까? – heinob

+0

JavaScript 구현에 대해 잘 모르겠습니다. JavaScript의 암호화는 종종 잘못된 레이어에서이를 의미하므로 JavaScript의 암호화 라이브러리는 거의 없습니다. – Jack

+0

클라이언트 측의 Crypto는 "호스트 증명 호스팅"을 얻을 수있는 유일한 기회입니다. 그렇다면 왜 "잘못된 레이어"입니까? – heinob

관련 문제