Как быстро все движется от теории, экспериментов к реализации. Только недавно была изобретена полупрактическая схема гомоморфного шифрования, а у нас уже есть реализация с открытым исходным кодом на C++.
Гомоморфное шифрование — очень желательная цель. Предположим, вы хотите сложить два числа, которые хранятся в зашифрованном файле. Традиционно единственным способом сделать это было расшифровать файл, сложить два числа, а затем снова зашифровать файл. Конечно, чтобы выполнить сложение, необходимо было иметь доступ ко всему содержимому файла. Это также означало, что другие люди могли получить доступ к файлу, пока он хранился в виде обычного текста.
Существует множество ситуаций, когда было бы хорошо, если бы данные можно было хранить в зашифрованном виде, скажем, в облаке, и при этом работать с ними без необходимости их расшифровки. Это и есть цель полностью гомоморфного шифрования.
Чтобы быть полностью гомоморфным, код должен быть таким, чтобы третья сторона могла складывать и умножать числа, которые он содержит, без необходимости его расшифровки. Это может показаться волшебством, но полностью гомоморфная схема была изобретена в 2009 году Крейгом Джентри (диссертация: A Fully homomorphic Encryption Scheme).
Это был шаг в правильном направлении, но проблема заключалась в том, что она очень неэффективна и требует больших вычислительных затрат. С тех пор был внесен ряд усовершенствований, которые сделали схему практичной в нужных ситуациях. В конце 2009 года Мартен ван Дийк, Крейг Джентри, Шай Халеви и Винод Вайкунтанатан представили упрощенную полностью гомоморфную систему: Fully Homomorphic Encryption over the Integers — система BGV.
Теперь Виктор Шоуп и Шай Халеви из Исследовательского центра IBM T J Watson Research Center выпустили библиотеку C++ с открытым исходным кодом (GPL) HElib в качестве проекта на Github. Как утверждается, в код включено множество оптимизаций, позволяющих ускорить процесс шифрования:
HElib — это программная библиотека, реализующая гомоморфное шифрование (HE). В настоящее время доступна реализация схемы Brakerski-Gentry-Vaikuntanathan (BGV), а также множество оптимизаций для более быстрого выполнения гомоморфной оценки, в основном сфокусированных на эффективном использовании методов упаковки шифротекста Smart-Vercauteren и оптимизаций Gentry-Halevi-Smart.
Посетите Github, чтобы загрузить код и внести свой вклад в проект. Там есть много документации, которая поможет вам начать работу.
Гомоморфное шифрование способно произвести революцию в области безопасности, позволяя выполнять операции с данными без необходимости их расшифровки.