Полностью гомоморфное шифрование

Материал из testwiki
Версия от 16:04, 18 марта 2025; imported>B.Nuradil ("Но схема непрактична из-за резкого роста размера шифротекста и затрат на вычисление в зависимости от уровня защиты." → "Однако схема остаётся непрактичной из-за значительного увеличения размера шифротекста и затрат на вычисление в зависимости от уровня защиты.")
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)
Перейти к навигации Перейти к поиску

Шаблон:Плохое оформление Шаблон:Короткая преамбула Полностью гомоморфное шифрование — шифрование, позволяющее для данного шифротекста Шаблон:MathШаблон:Sub,…,Шаблон:MathШаблон:Sub каждому человеку (не только держателю ключа) получить шифротекст любой желаемой функции f(Шаблон:MathШаблон:Sub,…,Шаблон:MathШаблон:Sub) до тех пор, пока данная функция может быть эффективно вычислена.

История

Впервые идея полностью гомоморфного шифрования была предложена в 1978 году изобретателями криптографического алгоритма с открытым ключом RSA Рональдом Ривестом и Ади Шамиром совместно с Майклом Дертузосом.[1] Однако на начальных этапах попытки создания криптосистемы с таким шифрованием были неудачны. Многие годы было непонятно, возможно ли вообще полностью гомоморфное шифрование, хотя попытки создания такой системы предпринимались неоднократно. Так, например, криптосистема, предложенная в 1982 году Шафи Гольдвассер и Сильвио Микали, имела достаточно высокий уровень криптостойкости, но была лишь частично гомоморфной (гомоморфной только по сложению) и могла зашифровать только один бит.[2] Еще одна аддитивно гомоморфная система шифрования была предложена в 1999 году Паскалем Пэйе.[3] Прорыв в развитии полностью гомоморфного шифрования приходится на 2009 год, когда Крейг Гентри впервые предложил вариант полностью гомоморфной криптосистемы, основанной на криптографии на решетках.[4] С тех пор появилось большое количество работ, в которых предлагается модификация криптосистемы Гентри с целью улучшения ее производительности.

Определение

Полностью гомоморфное шифрование — криптографический примитив, представляющий собой функцию шифрования, удовлетворяющую дополнительному требованию гомоморфности относительно каких-либо операций над открытыми текстами. Функция шифрования E(k,m), где m — открытый текст, k — ключ шифрования, гомоморфна относительно операции * над открытыми текстами, если существует эффективный алгоритм M, который, получив на вход любую пару криптограмм вида E(k,m1),E(k,m2), выдает криптограмму c такую, что при дешифровании c будет получен открытый текст m1*m2[5]. Аналогично определяется гомоморфизм относительно операции +.

В то время, как частично гомоморфные криптосистемы гомоморфны лишь относительно одной операции над открытым текстом (либо сложения, либо умножения), полностью гомоморфные системы поддерживают гомоморфизм относительно обеих операций (как сложения, так и умножения)[6]. То есть для них выполнены следующие условия: {Dec(Enc(m1)Enc(m2))=m1*m2Dec(Enc(m1)Enc(m2))=m1+m2

Более того, гомоморфности по операциям сложения и умножения достаточно, чтобы система была полностью гомоморфной.[6]

Ранние полностью гомоморфные системы

Криптосистема Гентри

Шаблон:Main

Криптосистема, созданная Шаблон:Нп5, основанная на криптографии на решетках, описывала первую возможную конструкцию для полностью гомоморфной системы. Схема Гентри поддерживала операции сложения и умножения над шифротекстом, что позволяет построить кольца для реализации любых произвольных вычислений.

Конструкция начинается с почти гомоморфной схемы шифрования, которая подходит только для вычисления полиномов малых степеней над зашифрованными данными. (Это ограничено тем, что шифротекст содержит некоторый шум, который растет при операциях сложения и умножения над шифротекстом до тех пор, пока шум не делает результат неразборчивым.) Гентри показал, как модифицировать схему и сделать её гибкой. То есть с помощью перешифрования он смог убрать накопившийся шум и провести над шифротекстом, по крайней мере, ещё одну операцию.

То есть схема позволяет оценивать её алгоритм дешифрирования для, по крайней мере, ещё одной операции. В конце концов, он показал: любая гибкая схема может быть конвертирована в полностью гомоморфную с помощью рекурсивного встраивания в себя саму.

Для «шумной» схемы Гентри процедура модификации схемы в «гибкую» эффективно «обновляет» шифротекст, применяя к нему гомоморфную процедуру дешифрирования, таким образом получая новый текст, который шифрует те же данные, что и раньше, но с меньшим уровнем шума. Периодически при достижении высокого уровня шума «обновляя» шифротекст, возможно производить над ним произвольное число операций без помех. Защищенность своей схемы Гентри обосновал двумя проблемами: проблемой сложности худшего случая Шаблон:Нп5 и задачей о сумме подмножеств.

В докторской работе Гентри[7] имеется более детально описание.

Несмотря на свою производительность, шифротексты в схеме Гентри остаются компактными, так как их длины не зависят от сложности функции, которая рассчитывается для зашифрованных данных. Однако схема остаётся непрактичной из-за значительного увеличения размера шифротекста и затрат на вычисление в зависимости от уровня защиты. Дамьен Шехли и Рон Штейнфелд представили ряд оптимизаций и улучшений,[8] и впоследствии Шаблон:Нп5 с Фредериком Веркаутереном,[9][10] и Шаблон:Нп5 c Шаблон:Нп5,[11][12] представили первые рабочие реализации полностью гомоморфной схемы шифрования Гентри.

Криптосистема на целых числах

В 2010 году Мартин ван Дейк, Шаблон:Нп5, Шаблон:Нп5 и Видон Вайкунтанахан представили вторую полностью гомоморфную систему[13]. Она использовала много принципов криптосистемы Гентри, но не требовала Шаблон:Нп5. Вместо этого они показали: можно заменить гомоморфный компонент на идеальных решётках на простую гомоморфную схему, которая использовала бы целые числа. Эта схема является концептуально проще схемы Гентри, но обладает схожими параметрами в плане гомоморфности и эффективности.

Гомоморфный компонент в работе Дейка схож со схемой шифрования, представленной Левьелом и Наккахой в 2008[14], а также похож на тот, что был представлен Брамом Кохеном в 1998[15]. Но метод Кохена не является гомоморфным относительно операции сложения. Схема Левьелы-Наккахи поддерживает только операцию сложения и может быть модифицирована для поддержки малого числа операций перемножения. Многие улучшения и оптимизации схем были представлены в ряде работ Джен-Себастиан Корона, Танкрида Лепойнта, Аврадипа Мандалы, Шаблон:Нп5 и Мехди Тибухи[16][17][18][19].

Второе поколение гомоморфных криптосистем

Несколько новых техник были разработаны начиная с 2011—2012 года Цвиком Бракерски, Шаблон:Нп5, Видоном Вайкунтанаханом и другими. Эти разработки привели к ряду более эффективных полностью гомоморфных криптосистем. В их числе:

  • Криптосистема Бракерски-Гентри-Вайкунтанахана (BGV),[20] построенная на технике Бракерски-Вайкунтанахана.[21]
  • Криптосистема Бракерски.[22]
  • Криптосистема на NTRU созданная Лопез-Альтом,Тромером и Вайкунтанаханом (LTV).[23]
  • Криптосистема Гентри-Сахай-Вотерс (GSW).[24]

Защищенность большинства схем основана на сложности решения проблемы обучения с ошибками. Только у LVT схемы защита реализована на варианте вычислительной NTRU задачи. У всех этих систем в отличие от ранних схем более медленное нарастание шума в процессе гомоморфных вычислений. В результате дополнительной оптимизации, сделанной Шаблон:Нп5, Шаблон:Нп5 и Шаблон:Нп5 , была получена криптосистема с практически оптимальной асимптотической сложностью: сложность вычисления T операций над зашифрованными данными с параметром защиты k имеет сложность вычисления лишь Tpolylog(k).[25][26][27] Эти оптимизации построены на технике Смарта-Веркаутерена, которая позволяет сжимать набор текстовых переменных в один шифротекст и работать над данными переменными одним потоком.[10] Многие достижения из второго поколения полностью гомоморфных систем также были использованы в криптосистеме на целых числах.[18][19]

Цвика Бракерски и Видон Вайкунтанахан заметили, что для ряда схем криптосистема GSW показывает слабый рост уровня шума, и, следовательно, большую эффективность, и большую защищенность.[28] Якоб Алперин-Шерифф и Крис Пейкерт позднее описали эффективную технику преобразования шифротекста в гибкий, которая как раз и использует такой тип схем.[29] Но этот тип преобразования не совместим с методами сжатия шифротекста, и, таким образом, оптимизации Гентри-Сахай-Вотерс не могут быть применены к ней[25].

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

Реализации

Первой реализацией полностью гомоморфного шифрования была схема Гентри-Халеви, реализованная на основе вышеуказанной схемы Гентри.[12] На простую битовую операцию ей требовалось 30 минут. После появления второго поколения криптосистем, эта реализация устарела.

В литературе имеется много реализаций почти гомоморфных систем второго поколения. Реализованная Гентри, Хавели и Смартом (GHS)[27] вариация BGV криптосистемы[20] показала результат в 36 часов при расчете сложной схемы, реализующей AES шифрование. Используя техники сжатия шифротекста, эта реализация могла пересчитать эту же схему на 54 разных входах за те же 36 часов, таким образом получив результат в 40 минут на один вход. Расчет AES схемы был выбран как ориентир для нескольких последующих работ,[18][30][31] где удалось заметно снизить время расчета до 4 часов при затрате 7-ми секунд на один вход.

Две реализации второго поколения криптосистем доступны для общественного пользования:

Обе библиотеки являются реализациями полностью гомоморфного шифрования. HElib показывает результат в 5-10 минут для преобразования сжатого шифротекста с порядка 1000 знаков в гибкий.[34] FHEW преобразует несжатый шифротекст в гибкий за порядка 1/2 секунды на один бит.[35] В конце 2014 обновленная реализация HElib показала результат в 4 минуты для расчета AES схемы для 120 входных потоков, достигнув тем самым удельной скорости в 2 секунды на один поток.[32]

Полностью гомоморфное шифрование в кольце двоичных чисел

Шаблон:Стиль раздела Схема полностью гомоморфного шифрования, которую предложил Гентри, может быть рассмотрена на примере вычислений в 2.[36]

Шифрование

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

1. Выбирается произвольное нечетное число p=2k+1, являющееся секретным параметром. Пусть m{0,1}.

2. Составляется число z2 такое, что z=2r+m, где r — произвольное число. Это значит, что z=m mod 2.

3. В процессе шифрования всякому m ставится в соответствие число c=z+pq, где q выбирается произвольно. Таким образом, c=2r+m+(2k+1)*q. Легко видеть, что c mod 2=(m+q) mod 2, значит, злоумышленник сможет определить только четность выхода шифрования.

Расшифрование

Пусть известны зашифрованное число c и секрет p, тогда процесс расшифрования данных должен содержать следующие действия:

1.Расшифрование с использованием секретного параметра p: r=c mod p=(z+pq) mod p=z mod p+(pq) mod p, где r=c mod p называется шумом и z(p2,p2).

2.Получение исходного зашифрованного бита: m=r mod 2

Обоснование

Пусть есть два бита m1,m22, и им в соответствие поставлена пара чисел z1=2r1+m1 и z2=2r2+m2. Пусть взят секретный параметр p=2k+1 и произведено шифрование данных: c1=z1+pq1 и c2=z2+pq2.

Вычисляется сумма этих чисел:

c1+c2=z1+pq1+z2+pq2=z1+z2+p(q1+q2)=2r1+m1+2r2+m2+(2k+1)(q1+q2)

Для суммы этих чисел расшифрованным сообщением будет сумма исходных бит m1,m2:((c1+c2) mod p) mod 2=(2(r1+r2)+m1+m2) mod 2=m1+m2.

Но, не зная p, расшифровать данные не представляется возможным: ((c1+c2) mod p) mod 2=m1+m2+q1+q2.

Аналогично проверяется операция умножения:

c1c2=(z1+pq1)(z2+pq2)=z1z2+p(z1q2+z2q1)+p2q1q2=(2r1+m1)(2r2+m2)+

+(2k+1)((2r1+m1)q2+(2r2+m2)q1)=4r1r2+2(r1m2+r2m1)+m1m2+

2k(2r1q2+m1q2+2r2q1+m2q1)+2r1q2+m1q2+2r2q1+m2q1

К полученным результатам необходимо применить процедуру расшифрования, в результате чего получится следующее:

((c1c2) mod p) mod 2=(4r1r2+2(r1m2+r2m1)+m1m2) mod 2=m1m2.

Недостатки

Использование данной полностью гомоморфной схемы шифрования в практических целях на данный момент не представляется возможным, так как в результате производимых вычислений накапливаемая ошибка r быстро достигает достаточно больших значений[36]. Возможна даже ситуация, при которой правильно расшифровать данные не удастся вовсе. Это произойдет в случае, если значение ошибки r превысит значение p. В попытках избежать столкновения с такой проблемой Гентри был разработан механизм самокоррекции шифротекстов (англ. bootstrapping), который в силу своей непрактичности из-за слишком быстрого роста объема шифротекста не нашел широкого применения. Решить данную проблему возможно, но для достижения поставленной задачи необходимо разработать более сложные алгоритмы вычислений либо ограничить количество операций над данными.[36]

Применение полностью гомоморфного шифрования

Облачные вычисления

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

Например, пользователь зашифровал некоторые свои данные и хранит их на удалённом облачном хранилище. Если пользователь намерен каким-либо образом изменить эти данные, он может либо доверить серверу свой секретный ключ, а следовательно, и доступ ко всей своей секретной информации, либо загрузить зашифрованные данные на свой компьютер, расшифровать их, выполнить необходимые вычисления и вернуть на сервер, но ни тот, ни другой способ не являются оптимальными. В первом случае невозможно исключить возможность утечки данных и доступа к ним третьих лиц, во втором случае время, необходимое для выполнения всех необходимых операций, может быть слишком большим. К тому же клиент может попросту не располагать необходимыми вычислительными ресурсами для произведения нужных ему вычислений.[6]

Также по данным международной исследовательской компании IDC, занимающейся изучением мирового рынка информационных технологий и телекоммуникаций, многие компании с недоверием относятся к облачным технологиям, связывая с ними, в первую очередь, большие проблемы по части безопасности хранимых данных. А независимая исследовательская компания Portio Research опубликовала данные, согласно которым 68 % руководителей различных европейских IT не доверяют подобным сервисам. Так, например, руководитель компании G Data Security Labs Ральф Бенцмюллер высказался об облачных сервисах следующим образом: «Если вы не хотите, чтобы ваши данные стали достоянием общественности, не храните их в облачных хранилищах». Поэтому вопрос создания защищенного облачного хранилища с использованием полностью гомоморфной схемы шифрования данных в настоящее время стоит довольно остро[37].

Прочее

Полностью гомоморфное шифрование используется в поисковых системах, в которых требуется осуществление «приватного поиска», то есть такого поиска, при котором сервер ничего не знает о содержании поискового запроса и возвращает пользователю результат в зашифрованном виде. Помимо уже рассмотренных областей схемы полностью гомоморфного шифрования могут применяться в системах электронного голосования, например, при использовании подписи вслепую.[6]

Ссылки

Шаблон:Примечания

  1. R. Rivest, L. Adleman, M. Dertouzos On data banks and privacy homomorphisms. // Foundations of secure computation. 1978. vol.32. no. 4. pp. 169—178. URL: http://luca-giuzzi.unibs.it/corsi/Support/papers-cryptography/RAD78.pdf Шаблон:Wayback
  2. S. Goldwasser, S. Micali Probabilistic encryption // Journal of Computer and System Sciences. 1984. vol. 28. no. 2. pp. 270—299. URL: http://groups.csail.mit.edu/cis/pubs/shafi/1984-jcss.pdf Шаблон:Wayback
  3. P. Paillier Public-key cryptosystems based on composite degree residuosity classes // Advances in Cryptology — EUROCRYPT’99. 1999. ser. Lecture Notes in Computer Science. vol. 1592. pp. 223—238. URL: https://link.springer.com/chapter/10.1007%2F3-540-48910-X_16 Шаблон:Wayback
  4. C. Gentry A Fully Homomorphic Encryption Scheme. PhD thesis, Stanford University, 2009. 199 p. URL: https://crypto.stanford.edu/craig/craig-thesis.pdf Шаблон:Wayback
  5. Варновский Н. П., Шокуров А. В. Гомоморфное шифрование. // Труды ИСП РАН . 2007. № 12. URL: http://cyberleninka.ru/article/n/gomomorfnoe-shifrovanie Шаблон:Wayback
  6. 6,0 6,1 6,2 6,3 Бабенко Л. К., Буртыка Ф. Б., Макаревич О. Б., Трепачева А. В. Защищенные вычисления и гомоморфное шифрование. // III Национальный суперкомпьютерный форум (25-27 ноября 2014, г. Переславль-Залесский). ИПС имени А. К. Айламазяна РАН, 2014. URL: http://2014.nscf.ru/TesisAll/4_Systemnoe_i_promezhytochnoe_PO/01_141_ByrtikaFB.pdf Шаблон:Wayback
  7. Шаблон:Cite web
  8. Шаблон:Source
  9. Шаблон:Source
  10. 10,0 10,1 Шаблон:Source
  11. Шаблон:Source
  12. 12,0 12,1 Шаблон:Source
  13. Шаблон:Source
  14. Шаблон:Source
  15. Шаблон:Cite web
  16. Шаблон:Source
  17. Шаблон:Source
  18. 18,0 18,1 18,2 Шаблон:Source
  19. 19,0 19,1 Шаблон:Source
  20. 20,0 20,1 Z. Brakerski, C. Gentry, and V. Vaikuntanathan. Fully Homomorphic Encryption without Bootstrapping Шаблон:Wayback. In ITCS 2012
  21. Z. Brakerski and V. Vaikuntanathan. Efficient Fully Homomorphic Encryption from (Standard) LWE Шаблон:Wayback. In FOCS 2011 (IEEE)
  22. Z. Brakerski. Fully Homomorphic Encryption without Modulus Switching from Classical GapSVP Шаблон:Wayback. In CRYPTO 2012 (Springer)
  23. A. Lopez-Alt, E. Tromer, and V. Vaikuntanathan. On-the-Fly Multiparty Computation on the Cloud via Multikey Fully Homomorphic Encryption Шаблон:Wayback. In STOC 2012 (ACM)
  24. C. Gentry, A. Sahai, and B. Waters. Homomorphic Encryption from Learning with Errors: Conceptually-Simpler, Asymptotically-Faster, Attribute-Based Шаблон:Wayback. In CRYPTO 2013 (Springer)
  25. 25,0 25,1 C. Gentry, S. Halevi, and N. P. Smart. Fully Homomorphic Encryption with Polylog Overhead Шаблон:Wayback. In EUROCRYPT 2012 (Springer)
  26. C. Gentry, S. Halevi, and N. P. Smart. Better Bootstrapping in Fully Homomorphic Encryption Шаблон:Wayback. In PKC 2012 (SpringeR)
  27. 27,0 27,1 C. Gentry, S. Halevi, and N. P. Smart. Homomorphic Evaluation of the AES Circuit Шаблон:Wayback. In CRYPTO 2012 (Springer)
  28. Z. Brakerski and V. Vaikuntanathan. Lattice-Based FHE as Secure as PKE Шаблон:Wayback. In ITCS 2014
  29. 29,0 29,1 J. Alperin-Sheriff and C. Peikert. Faster Bootstrapping with Polynomial Error Шаблон:Wayback. In CRYPTO 2014 (Springer)
  30. Y. Doroz, Y. Hu, and B. Sunar. Homomorphic AES Evaluation using NTRU Шаблон:Wayback. In Financial Cryptography 2014
  31. Шаблон:Cite web
  32. 32,0 32,1 Шаблон:Cite web
  33. Шаблон:Cite web
  34. Шаблон:Cite web
  35. Шаблон:Cite web
  36. 36,0 36,1 36,2 А. О. Жиров, О. В. Жирова, С. Ф. Кренделев «Безопасные облачные вычисления с помощью гомоморфной криптографии», http://bit.mephi.ru/wp-content/uploads/2013/2013_1/part_1.pdf Шаблон:Wayback
  37. Масштабные утечки данных: конец «облачным» сервисам? // Chip : журнал. — 2011. — № 8 (149). — С. 20—21. — ISSN 1609-4212