Searchable Encryption: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
оформление
→‎Описание принципа: дополнение, источники
Строка 8: Строка 8:
Идея поиска по шифротексту стала актуальна на фоне введения [[Облачное_хранилище_данных|облачных хранилищ данных]]. Данные пользователей хранятся на удалённых ресурсах, которые, в общем говоря, не являются доверенными. Для обеспечения приватности в этом случае, к данным применяется шифрование. Однако, при обычном шифровании для выполнения поиска по этим данным пользователь должен был либо выкачать весь набор данных и расшифровать его, либо же предоставить серверу средства для расшифровки, что противоречит изначальной цели шифрования<ref>{{Статья|автор=Md Iftekhar Salam, Wei-Chuen Yau, Ji-Jian Chin, Swee-Huay Heng, Huo-Chong Ling|заглавие=Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage|ссылка=https://doi.org/10.1186/s13673-015-0039-9|издание=Human-centric Computing and Information Sciences|год=2015-07-17|том=5|страницы=19|issn=2192-1962|doi=10.1186/s13673-015-0039-9}}</ref>.
Идея поиска по шифротексту стала актуальна на фоне введения [[Облачное_хранилище_данных|облачных хранилищ данных]]. Данные пользователей хранятся на удалённых ресурсах, которые, в общем говоря, не являются доверенными. Для обеспечения приватности в этом случае, к данным применяется шифрование. Однако, при обычном шифровании для выполнения поиска по этим данным пользователь должен был либо выкачать весь набор данных и расшифровать его, либо же предоставить серверу средства для расшифровки, что противоречит изначальной цели шифрования<ref>{{Статья|автор=Md Iftekhar Salam, Wei-Chuen Yau, Ji-Jian Chin, Swee-Huay Heng, Huo-Chong Ling|заглавие=Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage|ссылка=https://doi.org/10.1186/s13673-015-0039-9|издание=Human-centric Computing and Information Sciences|год=2015-07-17|том=5|страницы=19|issn=2192-1962|doi=10.1186/s13673-015-0039-9}}</ref>.


Первыми попытками обеспечить приватность пользователя при работе с сервером можно считать работы 1990-х годов по [[:en:Oblivious ram|oRAM]], когда от сервера скрывался паттерн доступа к памяти при обработке запроса пользователя<ref name=":0">{{Статья|автор=Dan Boneh, Giovanni Di Crescenzo, Rafail Ostrovsky, Giuseppe Persiano|заглавие=Public Key Encryption with Keyword Search|ссылка=https://link.springer.com/chapter/10.1007/978-3-540-24676-3_30|язык=en|издание=Advances in Cryptology - EUROCRYPT 2004|издательство=Springer, Berlin, Heidelberg|год=2004-05-02|страницы=506–522|isbn=9783540219354, 9783540246763|doi=10.1007/978-3-540-24676-3_30}}</ref>.
Первая работа в направлении поиска по шифрованным данным была изложена в 2000-м году Dawn Xiaodong Song, David Wagner и Adrian Perrig. Их алгоритм предполагал поиск по шифротексту с точным совпадением<ref>{{Статья|автор=Dawn Xiaoding Song, D. Wagner, A. Perrig|заглавие=Practical techniques for searches on encrypted data|ссылка=http://ieeexplore.ieee.org/document/848445/|язык=|издание=Proceeding 2000 IEEE Symposium on Security and Privacy. S P 2000|тип=|год=2000|месяц=|число=|том=|номер=|страницы=44–55|issn=|doi=10.1109/secpri.2000.848445|ref=Song-Wagner-Perring}}</ref>.

Первая работа в направлении поиска по шифрованным данным была изложена в 2000-м году Dawn Xiaodong Song, David Wagner и Adrian Perrig. Их алгоритм предполагал поиск по шифротексту с точным совпадением<ref name=":1">{{Статья|автор=Dawn Xiaoding Song, D. Wagner, A. Perrig|заглавие=Practical techniques for searches on encrypted data|ссылка=http://ieeexplore.ieee.org/document/848445/|язык=|издание=Proceeding 2000 IEEE Symposium on Security and Privacy. S P 2000|тип=|год=2000|месяц=|число=|том=|номер=|страницы=44–55|issn=|doi=10.1109/secpri.2000.848445|ref=Song et al}}</ref>.


Возможность поиска предполагает возможное наличие утечек информации с каждым поисковым запросом. Они могут быть связанны с детерминированностью этапов шифрования, ограничениями входных данных и т.д. К качестве возможного решения рассматривалось использование [[:en:Oblivious ram|en:Oblivious_RAM]] для скрытия работы сервера и уменьшения утечек<ref>{{Статья|автор=Raphael Bost|заглавие=∑OφOς: Forward Secure Searchable Encryption|ссылка=http://doi.acm.org/10.1145/2976749.2978303|язык=|издание=Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security|тип=|место=New York, NY, USA|издательство=ACM|год=2016|месяц=|число=|том=|номер=|страницы=1143–1154|isbn=9781450341394|issn=|doi=10.1145/2976749.2978303}}</ref>, но этот метод также и критиковался<ref>{{Статья|автор=Muhammad Naveed|заглавие=The Fallacy of Composition of Oblivious RAM and Searchable Encryption|ссылка=https://eprint.iacr.org/2015/668|год=2015|номер=668}}</ref>.
Возможность поиска предполагает возможное наличие утечек информации с каждым поисковым запросом. Они могут быть связанны с детерминированностью этапов шифрования, ограничениями входных данных и т.д. К качестве возможного решения рассматривалось использование [[:en:Oblivious ram|en:Oblivious_RAM]] для скрытия работы сервера и уменьшения утечек<ref>{{Статья|автор=Raphael Bost|заглавие=∑OφOς: Forward Secure Searchable Encryption|ссылка=http://doi.acm.org/10.1145/2976749.2978303|язык=|издание=Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security|тип=|место=New York, NY, USA|издательство=ACM|год=2016|месяц=|число=|том=|номер=|страницы=1143–1154|isbn=9781450341394|issn=|doi=10.1145/2976749.2978303}}</ref>, но этот метод также и критиковался<ref>{{Статья|автор=Muhammad Naveed|заглавие=The Fallacy of Composition of Oblivious RAM and Searchable Encryption|ссылка=https://eprint.iacr.org/2015/668|год=2015|номер=668}}</ref>.


В последствии было представлено множество алгоритмов, использующих для подтверждения криптостойкости определения, данные в статье Reza Curtmola, Juan Garay, Seny Kamara и Rafail Ostrovsky<ref>{{Статья|автор=Reza Curtmola, Juan Garay, Seny Kamara, Rafail Ostrovsky|заглавие=Searchable symmetric encryption: Improved definitions and efficient constructions|ссылка=http://www.medra.org/servlet/aliasResolver?alias=iospress&doi=10.3233/JCS-2011-0426|язык=en|издание=Journal of Computer Security|год=2011-01-01|том=19|выпуск=5|страницы=895–934|issn=0926-227X|doi=10.3233/jcs-2011-0426}}</ref>.
В последствии было представлено множество алгоритмов, использующих для подтверждения [[Криптографическая стойкость|криптостойкости]] определения, данные в статье Reza Curtmola, Juan Garay, Seny Kamara и Rafail Ostrovsky<ref name=":2">{{Статья|автор=Reza Curtmola, Juan Garay, Seny Kamara, Rafail Ostrovsky|заглавие=Searchable symmetric encryption: Improved definitions and efficient constructions|ссылка=http://www.medra.org/servlet/aliasResolver?alias=iospress&doi=10.3233/JCS-2011-0426|язык=en|издание=Journal of Computer Security|тип=|год=2011-01-01|месяц=|число=|том=19|выпуск=5|номер=|страницы=895–934|issn=0926-227X|doi=10.3233/jcs-2011-0426|ref=Curtmola et al}}</ref>.


== Описание принципа ==
== Описание принципа ==


Для удовлетворения потребности в поиске, первым был предложен алгоритм Сонг-Вагнера-Перрига, при котором пользователь делает поисковые запросы на файловый сервер с зашифрованными данными, но при этом не раскрывает ему ни содержимого файлов, ни самого поискового запроса.
Для удовлетворения потребности в поиске, первым был предложен алгоритм Сонг-Вагнера-Перрига, при котором пользователь делает поисковые запросы на [[файловый сервер]] с зашифрованными данными, но при этом не раскрывает ему ни содержимого файлов, ни самого поискового запроса. Шифрование заключается в выполнении обратимой операции (например, [[Сложение по модулю 2|XOR]]) с псевдослучайной последовательностью, а ключом, соответственно, является зерно ГПСП. Такая схема выполняет поиск за линейное от размера шифротекста время, а её надёжность зависит от качества псевдослучайной последовательности и прешифрования<ref name=":1" />.

Вместо использования самого документа для поиска, предлагались схемы с составлением индекса, поиск по которому занимает [[Временная сложность алгоритма|меньше времени]]<ref name=":2" />, позволяет обновлять данные на сервере (dynamic SSE)<ref>{{Статья|автор=Seny Kamara, Charalampos Papamanthou, Tom Roeder|заглавие=Dynamic Searchable Symmetric Encryption|ссылка=http://doi.acm.org/10.1145/2382196.2382298|издание=Proceedings of the 2012 ACM Conference on Computer and Communications Security|место=New York, NY, USA|издательство=ACM|год=2012|страницы=965–976|isbn=9781450316514|doi=10.1145/2382196.2382298}}</ref>, или использовать [[:en:Web search query#Structured queries|расширенный поиск]]<ref>{{Статья|автор=David Cash, Stanislaw Jarecki, Charanjit Jutla, Hugo Krawczyk, Marcel-Cătălin Roşu|заглавие=Highly-Scalable Searchable Symmetric Encryption with Support for Boolean Queries|ссылка=https://link.springer.com/chapter/10.1007/978-3-642-40041-4_20|язык=en|издание=Advances in Cryptology – CRYPTO 2013|издательство=Springer, Berlin, Heidelberg|год=2013|страницы=353–373|isbn=9783642400407, 9783642400414|doi=10.1007/978-3-642-40041-4_20}}</ref>. Платой за это является увеличение размера шифрованных данных и повышение риска утечек.


Кроме методов с основой из симметричного шифрования, своё место имеют алгоритмы с использованием открытого ключа. Например, [[Электронная почта|электронные письма]] могут шифроваться для адресата его открытым ключом. Адресат может пожелать хранить их на удалённом почтовом сервере, но сохранить возможность поиска. Либо, схема может быть рассчитана на то, что из зашифрованного сообщения почтовый сервер сможет понять, что в нём, например, содержится ключевое слово ("важно") и направит письмо соответственно, но не узнает ничего кроме этого<ref name=":0" /><ref>{{Статья|автор=Mihir Bellare, Alexandra Boldyreva, Adam O'Neill|заглавие=Deterministic and Efficiently Searchable Encryption|ссылка=http://eprint.iacr.org/2006/186|год=2006|номер=186}}</ref>.
=== Пример ===


=== Пример (алгоритм SWP00) ===
Рассмотрим сначала пример, демонстрирующий основную идею. Пусть пользователь Алиса хочет зашифровать документ из слов <math display="inline">W_1, W_2, ..., W_l</math>. Её цель - произвести обратимую операцию XOR над каждым из слов с каким-то секретным значением.
Рассмотрим сначала пример, демонстрирующий основную идею. Пусть пользователь Алиса хочет зашифровать документ из слов <math display="inline">W_1, W_2, ..., W_l</math>. Её цель - произвести обратимую операцию XOR над каждым из слов с каким-то секретным значением.


Строка 83: Строка 88:
# <math display="inline">L_i</math> считается сложением по модулю 2 старших n-m бит <math display="inline">C_i</math> c <math display="inline">S_i</math>.
# <math display="inline">L_i</math> считается сложением по модулю 2 старших n-m бит <math display="inline">C_i</math> c <math display="inline">S_i</math>.
# Восстанавливается <math display="inline">T_i=<S_i,F_{k_i}(S_i)></math>.
# Восстанавливается <math display="inline">T_i=<S_i,F_{k_i}(S_i)></math>.
# Исходный текст находится как <math display="inline">W_i=E^{-1}_{k^s}(C_i+T_i)</math>
# Исходный текст находится как <math display="inline">W_i=E^{-1}_{k^s}(C_i+T_i)</math>.

== Применение ==
До закрытия [[Google Desktop]] предполагалось, что он будет ярким примером использования SSE<ref name=":2" />.

Однако на текущий момент реализации алгоритмов (например, открытая реализация [https://opensse.github.io/ OpenSSE]) имеют скорее исследовательский, а не практический характер [https://opensse.github.io/FAQ.html#4].


== Примечания ==
== Примечания ==

Версия от 16:11, 22 декабря 2017

Шифрование с возможностью поиска (англ. Searchable Encryption) — класс криптографических алгоритмов шифрования, в которых существует возможность осуществлять поиск по зашифрованным данным (файлам, записям базы данных и т.д.). Областью применения является предоставление приватности данных, хранимых на недоверенном удалённом ресурсе.

В общем случае, в основе такого шифрования могут лежать как симметричные, так и ассимметриичные шифры. Однако, так как практические задачи предполагают шифрование большого количества данных, чаще встречается использование симметричного шифрования с поиском (соответственно, англ. Searchable Symmetric Encryption или сокращённо SSE).

История

Идея поиска по шифротексту стала актуальна на фоне введения облачных хранилищ данных. Данные пользователей хранятся на удалённых ресурсах, которые, в общем говоря, не являются доверенными. Для обеспечения приватности в этом случае, к данным применяется шифрование. Однако, при обычном шифровании для выполнения поиска по этим данным пользователь должен был либо выкачать весь набор данных и расшифровать его, либо же предоставить серверу средства для расшифровки, что противоречит изначальной цели шифрования[1].

Первыми попытками обеспечить приватность пользователя при работе с сервером можно считать работы 1990-х годов по oRAM, когда от сервера скрывался паттерн доступа к памяти при обработке запроса пользователя[2].

Первая работа в направлении поиска по шифрованным данным была изложена в 2000-м году Dawn Xiaodong Song, David Wagner и Adrian Perrig. Их алгоритм предполагал поиск по шифротексту с точным совпадением[3].

Возможность поиска предполагает возможное наличие утечек информации с каждым поисковым запросом. Они могут быть связанны с детерминированностью этапов шифрования, ограничениями входных данных и т.д. К качестве возможного решения рассматривалось использование en:Oblivious_RAM для скрытия работы сервера и уменьшения утечек[4], но этот метод также и критиковался[5].

В последствии было представлено множество алгоритмов, использующих для подтверждения криптостойкости определения, данные в статье Reza Curtmola, Juan Garay, Seny Kamara и Rafail Ostrovsky[6].

Описание принципа

Для удовлетворения потребности в поиске, первым был предложен алгоритм Сонг-Вагнера-Перрига, при котором пользователь делает поисковые запросы на файловый сервер с зашифрованными данными, но при этом не раскрывает ему ни содержимого файлов, ни самого поискового запроса. Шифрование заключается в выполнении обратимой операции (например, XOR) с псевдослучайной последовательностью, а ключом, соответственно, является зерно ГПСП. Такая схема выполняет поиск за линейное от размера шифротекста время, а её надёжность зависит от качества псевдослучайной последовательности и прешифрования[3].

Вместо использования самого документа для поиска, предлагались схемы с составлением индекса, поиск по которому занимает меньше времени[6], позволяет обновлять данные на сервере (dynamic SSE)[7], или использовать расширенный поиск[8]. Платой за это является увеличение размера шифрованных данных и повышение риска утечек.

Кроме методов с основой из симметричного шифрования, своё место имеют алгоритмы с использованием открытого ключа. Например, электронные письма могут шифроваться для адресата его открытым ключом. Адресат может пожелать хранить их на удалённом почтовом сервере, но сохранить возможность поиска. Либо, схема может быть рассчитана на то, что из зашифрованного сообщения почтовый сервер сможет понять, что в нём, например, содержится ключевое слово ("важно") и направит письмо соответственно, но не узнает ничего кроме этого[2][9].

Пример (алгоритм SWP00)

Рассмотрим сначала пример, демонстрирующий основную идею. Пусть пользователь Алиса хочет зашифровать документ из слов . Её цель - произвести обратимую операцию XOR над каждым из слов с каким-то секретным значением.

Для этого ей понадобятся:

  • псевдослучайная функция F с ключами , необходимая для расширения элементов последовательности S до длинны слов (возвращает m-битные значения)
  • псевдослучайная функция f с ключом , для генерации ключей

Алгоритм шифрования:

  1. Сначала Алиса генерирует последовательность .
  2. Чтобы зашифровать очередное слово длинны n бит, расположенное на позиции i, генерируется длинны n-m бит.
  3. Вычисляется как конкатенация и
    .
  4. Результатом шифрования будет .

При этом последовательность ключей может быть выбрана разными способами (например, использовать один и тот же ключ или какой-то набор ключей).

Так построенная схема позволяет проводить поиск по шифротексту следующим образом:

Пусть зашифрованный документ Алисы хранится у Боба. Алиса хочет отыскать слово W, поэтому отправляет его вместе с набором ключей к таким позициям i, где может находиться W. Тогда Боб проверяет, представима ли сумма по модулю очередного шифрослова с образцом в виде:

Если такое условие выполняется, то Алисе возвращается подтверждение совпадения и позиция i. Если же для какой-то из позиций ключ не передавался, то Боб ничего не узнаёт об этом слове.

Такой алгоритм поиска имеет линейную сложность.

Недостатками базовой схемы является то, что Боб знает содержимое запроса, и при удачном поиске узнаёт содержимое как самого документа, так и ключей, использованных при шифровании.

Скрытие ключей

Чтобы повысить гибкость поиска и приватность шифрованных данных можно использовать дополнительный генератор для ключей с отдельным ключом для него. Тогда для каждого слова, и вместо раскрытия группы ключей, Алиса будет прикладывать к поисковому запросу только необходимый.

Скрытие открытого текста

Чтобы Боб не получал доступ к открытым данным, их следует предварительно шифровать. То есть предварительно следует получить прешифрованный документ из , где . Стоит отметить, что шифрование E не должно зависеть от позиции слова (одинаковые слова в разных частях документа породят одинаковый шифротекст).

Для поиска, Алиса отправляет Бобу зашифрованное слово и ключ к нему . Боб сможет осуществить поиск, не имея доступа к открытому тексту.

Однако в этой схеме проявляется новый недостаток. Из одного только шифротекста Алиса не сможет получить исходный текст, если она не знает, что там было. То есть ей необходимо знать (или, хотя бы, последние m бит) чтобы из восстановить .

Финальный вариант

Конечная форма алгоритма Сонг-Вагнера-Перрига выглядит следующим образом:

  1. Над словом выполняется пре-шифрация: .
  2. делится на две части - длинны n-m бит и длинны m бит.
  3. Из генерируется ключ .
  4. Генератором G с ключом k генерируется (n-m)-битный член последовательности .
  5. расширяется до n-битного .
  6. Наконец шифротекст вычисляется как .

Поиск на стороне Боба происходит как описано ранее, используя .

В этой схеме Алиса (или кто-либо ещё) может расшифровать данные, имея ключи и и зная положение слова i. Для этого:

  1. Алиса получает при помощи зерна k элемент .
  2. считается сложением по модулю 2 старших n-m бит c .
  3. Восстанавливается .
  4. Исходный текст находится как .

Применение

До закрытия Google Desktop предполагалось, что он будет ярким примером использования SSE[6].

Однако на текущий момент реализации алгоритмов (например, открытая реализация OpenSSE) имеют скорее исследовательский, а не практический характер [1].

Примечания

  1. Md Iftekhar Salam, Wei-Chuen Yau, Ji-Jian Chin, Swee-Huay Heng, Huo-Chong Ling. Implementation of searchable symmetric encryption for privacy-preserving keyword search on cloud storage // Human-centric Computing and Information Sciences. — 2015-07-17. — Т. 5. — С. 19. — ISSN 2192-1962. — doi:10.1186/s13673-015-0039-9.
  2. 1 2 Dan Boneh, Giovanni Di Crescenzo, Rafail Ostrovsky, Giuseppe Persiano. Public Key Encryption with Keyword Search (англ.) // Advances in Cryptology - EUROCRYPT 2004. — Springer, Berlin, Heidelberg, 2004-05-02. — P. 506–522. — ISBN 9783540219354, 9783540246763. — doi:10.1007/978-3-540-24676-3_30.
  3. 1 2 Dawn Xiaoding Song, D. Wagner, A. Perrig. Practical techniques for searches on encrypted data // Proceeding 2000 IEEE Symposium on Security and Privacy. S P 2000. — 2000. — С. 44–55. — doi:10.1109/secpri.2000.848445.
  4. Raphael Bost. ∑OφOς: Forward Secure Searchable Encryption // Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security. — New York, NY, USA: ACM, 2016. — С. 1143–1154. — ISBN 9781450341394. — doi:10.1145/2976749.2978303.
  5. Muhammad Naveed. The Fallacy of Composition of Oblivious RAM and Searchable Encryption. — 2015. — № 668.
  6. 1 2 3 Reza Curtmola, Juan Garay, Seny Kamara, Rafail Ostrovsky. Searchable symmetric encryption: Improved definitions and efficient constructions (англ.) // Journal of Computer Security. — 2011-01-01. — Vol. 19, iss. 5. — P. 895–934. — ISSN 0926-227X. — doi:10.3233/jcs-2011-0426.
  7. Seny Kamara, Charalampos Papamanthou, Tom Roeder. Dynamic Searchable Symmetric Encryption // Proceedings of the 2012 ACM Conference on Computer and Communications Security. — New York, NY, USA: ACM, 2012. — С. 965–976. — ISBN 9781450316514. — doi:10.1145/2382196.2382298.
  8. David Cash, Stanislaw Jarecki, Charanjit Jutla, Hugo Krawczyk, Marcel-Cătălin Roşu. Highly-Scalable Searchable Symmetric Encryption with Support for Boolean Queries (англ.) // Advances in Cryptology – CRYPTO 2013. — Springer, Berlin, Heidelberg, 2013. — P. 353–373. — ISBN 9783642400407, 9783642400414. — doi:10.1007/978-3-642-40041-4_20.
  9. Mihir Bellare, Alexandra Boldyreva, Adam O'Neill. Deterministic and Efficiently Searchable Encryption. — 2006. — № 186.