Шифровать числовые данные, сохраняя неравенства между шифротекстами - PullRequest
2 голосов
/ 15 марта 2012

Как зашифровать числовые данные так, чтобы зашифрованный текст, создаваемый функцией шифрования, был также числовым, Enc[m1] < Enc[m2] where m1 < m2.

Я прошел через все ссылки, указывающие на Формат сохраняющего шифрования ,Однако для него нет реализации с открытым исходным кодом.

Есть ли способ (шифрование или кодирование), который может скрыть данные с помощью вышеупомянутых свойств с помощью Java или C #?

Я хочу зашифровать числовые данные в диапазоне [1 - 50], чтобы зашифровать текст в диапазоне [1000 - 5000].Я пытаюсь реализовать Secure Inverted Index, упомянутый в Включение поиска по зашифрованным мультимедийным базам данных .

1 Ответ

2 голосов
/ 15 марта 2012

Я думаю, у вас есть основное противоречие.Если вы шифруете несколько значений и каким-то образом поддерживаете порядок сортировки между ними, то кто-то, зная, что «abc» шифрует до 567, а «abe» шифрует до 569, будет знать, что 568 => «abd».(Не то чтобы ваш алгоритм шифрования был бы таким наивным, но вы серьезно ослабляете все, что вам удастся придумать.)

Шифрование в число не составляет труда, если вы позволите числу быть длиннее, чем ваш открытый текст,(В конце концов, сами символы являются просто числами с особым значением.) Простой подход состоит в том, чтобы просто декодировать шифротекст в восьмеричное, но другие методы приведут к несколько более компактным представлениям десятичных цифр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...