Русский
Русский
English
Статистика
Реклама

Гомоморфное шифрование

Как кибербезопасность трансформирует рынок ИТ (часть 1)

29.06.2020 22:07:32 | Автор: admin
Как может измениться структура всей сферы ИТ, если некоторые системы защиты авторских прав, контроля, подтверждения подлинности, мониторинга и криптографии дадут нам не только более совершенные инструменты, но и принципиально новые технологии работы с данными? Это может отразиться не только на ИТ-рынке, но и на рынке труда. Такая технологическая трансформация, как и любая другая, создаст потребность в новых кадрах, а иных оставит без работы.
image

Данной публикацией я планирую начать цикл статей, посвящённых тому, как новые технологии в области кибербезопасности могут трансформировать всю отрасль ИТ. Обычно борьбе с угрозами отведена вспомогательная функция и мало кто задумывается о том, что в ближайшем будущем технологии защиты могут существенно изменить нашу жизнь, сделав её не то чтобы более безопасной, а принципиально иной. В своих прогнозах я буду стараться ориентироваться на период 530 лет. Если брать больше 30 лет, то можно совсем уйти в абстракции, а если менее 5-ти, то прогноз будет слишком очевиден. В первой части мы поговорим о новом рынке интеллектуального труда, практически отсутствующем в настоящий момент, это рынок алгоритмов.

Каждому программисту, кто занимался сложными задачами оптимизации, разрабатывал новые криптографические функции или получил по ML- / AI-разработке какой-то новый значимый результат, возникала мысль: можно ли продать алгоритмы, на которые затрачен столь большой объём интеллектуального труда, и что-то на них заработать? Как правило, ответ на этот вопрос нет. Иногда продать можно, но только один раз и только каким-нибудь спецслужбам с обязательством больше нигде не использовать. Когда я учился в аспирантуре на кафедре системного анализа, местные аспиранты писали много интересных и значимых работ по многокритериальной оптимизации, в которых удавалось усовершенствовать отдельные алгоритмы и получить результат, на несколько процентов более точный, чем существующий. Однако дальнейшей коммерциализации за этими разработками никогда не следовало, за исключением продажи самого R&D как услуги.

Можно ли продавать алгоритмы?


Разберём сложность такой операции на отдельном примере. Допустим, некий разработчик создал новую хеш-функцию, являющуюся доказуемо устойчивой к коллизиям (collision resistant). Столь полезный результат навёл его на мысль, что неплохо было бы продать доступ к хеш-функции. Есть два пути, позволяющих реализовать это:

1. In-cloud: разместить где-то в облаке и предоставлять сервис HASHaaS. На сегодняшний день это решение является насколько простым, настолько же и бессмысленным. Даже если представить, что скорости и качества канала связи хватает для обеспечения необходимого SLA вызовов функции, мы столкнёмся со сложностью отправки самих данных в облако. Информация, которую мы хотим хешировать, скорее всего представляет некую ценность для нас. Например, мы можем находить хеш-функцию документа для дальнейшего заверения электронной цифровой подписью или применять хеширование пользовательских паролей, чтобы не хранить их в базе. Отправлять пароли в открытом виде на какой-то чужой сервер, чтобы потом получить хеш выглядит абсурдно. Если зашифровать их для передачи, удалённый сервер всё равно должен будет провести расшифровку для вычисления хешей. Таким образом, он получит все пароли, все документы и любые другие данные, которые мы хотим хешировать. Использование облачной модели оказывается нежизнеспособным, за исключением некоторых редких случаев, когда отправляемая на удалённый сервер информация не несёт для нас абсолютно никакой ценности. Но такие ситуации будут скорее исключением из правил.

2. On-premise. Второй путь подразумевает передачу алгоритма непосредственно на сторону клиента, где он запустит его сам. Здесь есть несколько сложностей. Если мы передаём программу на интерпретируемом (открытом) языке, типа Python, то клиент может делать с ним всё что хочет. Контролировать дальнейшее копирование и модификацию кода будет невозможно. Если мы передаём её в скомпилированном виде, то, во-первых, это не всегда удобно для клиента, а во-вторых, отследить логику работы алгоритма и размножить его не составит большого труда. Даже если мы заблаговременно запутаем код и удалим всю отладочную информацию, можно дизассемблировать и отследить логику работы алгоритма, так как, вероятнее всего, объём кода для анализа будет не слишком велик. Таким образом, обе траектории ведут программиста к неудаче. Мысль о том, чтобы генерировать интеллектуальную собственность в виде каких-то специализированных алгоритмов и жить на пассивный доход от неё всю жизнь остаётся мечтой Или нет?

Революция последних лет


Некоторые теоретические области криптографии за последний десяток лет прошли колоссальный путь от нереализуемых теоретических конструкций до прикладных решений. Одним из таких направлений является гомоморфная криптография (homomorphic encryption). Гомоморфизм шифра заключается в том, что изменения шифрованного текста аналогичны изменениям, производимым над исходным текстом. Допустим, Enc() функция шифрования, а Dec() дешифрования; тогда гомоморфизм по сложению можно выразить как x + y = Dec(Enc(x) + Enc(y)). Аналогично по умножению: x y = Dec(Enc(x) Enc(y)). Если шифр обладает гомоморфизмом одновременно по сложению и по умножению, то он называется полностью гомоморфным шифрованием (Fully Homomorphic Encryption FHE). Почему этого достаточно? Потому, что на этих операциях можно построить любую логическую схему. В частности, NAND (A, B) = 1 + A B, а NAND в свою очередь является универсальным логическим вентилем (universal gate), то есть через него можно выразить любые другие логические операторы и написать любую программу. Первые идеи о гомоморфных шифрах появились весьма давно ещё в 1976 году. Однако первая реализация такого шифра была описана только в 2009-м (Craig Gentry. Fully Homomorphic Encryption Using Ideal Lattices. In the 41st ACM Symposium on Theory of Computing (STOC), 2009). Конструкция эта была столь ограниченна в практическом применении, что требовала около 30 минут вычислений на одну элементарную операцию при достаточной криптостойкости длины ключа. За последующую пару лет появилось множество различных схем FHE, более пригодных для таких практических реализаций. Одними из самых известных являются BGV и CKKS (Z. Brakerski, C. Gentry, and V. Vaikuntanathan. Fully Homomorphic Encryption without Bootstrapping, ITCS 2012 и Cheon, Jung Hee; Kim, Andrey; Kim, Miran; Song, Yongsoo. Homomorphic encryption for arithmetic of approximate numbers. Advances in Cryptology ASIACRYPT 2017. Springer, Cham. pp. 409437). Далее последовало появление множества open-source реализаций и библиотек, реализующих гомоморфные шифры. Одним из первых был IBM с его библиотекой HElib (2013), далее появился HEAAN от Сеульского национального университета (2016), PALISADE от DARPA (2017), расширенный SEAL от Microsoft (2018) и множество других имплементаций, в том числе с ускорением на GPU, FPGA и пр.
На примере FHE видно, как за 10 лет был пройден путь от абстрактных теоретических идей до конкретных прикладных решений. Гомоморфная криптография открывает ряд новых перспектив: например, она делает возможной работу с данными без расшифровки. Раньше для того, чтобы извлечь и обработать информацию из большой шифрованной базы данных, необходимо было сначала скачать всю базу, расшифровать её, изменить в нужных местах и далее снова зашифровать и отправить. Сейчас это можно сделать через одну операцию. В шифрованной базе данных мы сразу находим нужную ячейку и изменяем её, не прибегая к дешифровке всей таблицы.
Теперь, возвращаясь к схеме in-cloud, мы можем реализовать удалённую торговую площадку (маркетплейс) алгоритмов, куда можно будет отправлять не открытые, а шифрованные данные. Это делает схему бизнеса гораздо более реалистичной. Теперь любой доступ к сервису не обязывает клиента разглашать что-либо. Мы можем отправлять персональные сведения, накопленные большие данные и любую другую зашифрованную конфиденциальную информацию и получать результат обработки также в шифрованном виде, ключ от которого есть только у нас.

Другая траектория заключается в продаже доступа к алгоритму по принципу on-premise. Здесь стоит обратить внимание на ещё одно открытие криптографии последних лет. Это так называемая неразличимая обфускация (indistinguishability obfuscation). Впервые идея неразличимой обфускации была озвучена в 2001 году (B. Barak, O. Goldreich, R. Impagliazzo, S. Rudich, A. Sahai, S. P. Vadhan, and K. Yang. On the (im)possibility of obfuscating programs. CRYPTO, 2001, pp. 118) в связи с необходимостью переосмысления формализованной задачи обфускации, так как предыдущие подходы к ней с математической точки зрения были не совсем корректными и не давали измеримых показателей того, насколько хорошо или плохо обфусцирована программа. Практически тем же коллективом исследователей в 2013 году было предложено решение задачи, которую они сами себе поставили в 2001-м. Им удалось найти конструкцию, которая может быть кандидатом на роль такого обфускатора (Sanjam Garg; Craig Gentry; Shai Halevi; Mariana Raykova; Amit Sahai; Brent Waters. Candidate Indistinguishability Obfuscation and Functional Encryption for all Circuits. Focs 2013, 4049). Суть неразличимой обфускации можно объяснить следующим образом. Допустим, у нас есть такая программа obf(), которая на вход получает некий программный код, а на выходе выдаёт его в обфусцированном (запутанном) виде. При этом, если у нас есть две программы равной функциональности A и B, то получив их обфусцированные варианты obf(A) и obf(B), мы с точностью до пренебрежимо малых величин не сможем понять, какая из двух была подана на вход обфускатора (аналогичный подход используется для формулировки неразличимости алгоритмов шифрования). Из этого следует несколько неочевидных выводов, одним из которых является способность программы на выходе обфускатора хранить секрет внутри себя. Это может быть, например, ключ шифрования тогда он передаётся вместе с исполняемым кодом и при этом не может быть извлечён.
Возможные бонусы от применения неразличимой обфускации этим не ограничиваются. Другим важным следствием использования неразличимого кода можно считать отсутствие необходимости доверять аппаратной составляющей. Любую обработку данных можно выполнять на недоверенном железе. В результате миллиарды, потраченные на разработку отечественных компьютеров, или противостояние между Huawei и США становятся бессмысленными, если аргументировать это требованиями доверия к железу. Но это уже предмет другой статьи.
В случае продажи алгоритмов становится возможным передать их обфусцированный код клиенту. При этом, даже если мы заложим в код некую индивидуализацию под определённого пользователя, клиенту не удастся извлечь из кода эту кастомизированную часть. В результате мы не только делаем невозможным анализ принципов работы алгоритма, но и получаем способ снабжать программы некой неотделимой от них меткой, которая всегда будет оставлять цифровой след при распространении в интернете. Однако стоит заметить, что текущая реализация неразличимой обфускации столь громоздка, что говорить о её практическом использовании пока рано. Скорее всего (в отличие от in-cloud), схему реализации on-premise мы увидим не ранее чем через 10 лет.

Прогнозы и предостережения


Таким образом, мы видим, что в ближайшие 5 и более лет рынок алгоритмов может появиться в виде облачных схем, а впоследствии возможно и исполнение on-premise. Конечно, это не произойдёт в один день. Для формирования таких отношений должны ещё появиться:

  1. Платформа (или платформы) обмена данными между поставщиками и потребителями алгоритмов. Они должны автоматизированно выполнять все функции FHE на уровне некоего транспортного слоя. Тогда сервис действительно станет удобным и, главное, понятным для всех участников рынка, ведь сейчас мало кто из ИТ-специалистов знает, что такое FHE и как его применять.
  2. Обмен большими данными всё ещё тормозится ограниченностью скорости каналов коммуникации. Поэтому здесь необходимо дождаться момента, когда пропускная способность каналов органическим путём вырастет до нужных значений, либо запускать дополнительные сервисы предварительной обработки данных на стороне клиента, которые могут быть частью платформ и фреймворков в п. 1.


Развитие рынка алгоритмов может оказать существенное влияние на множество отраслей экономики. Можно выделить несколько направлений, которые однозначно окажутся под влиянием этой трансформации.

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

Три уровня разработки. Классическая дихотомия разработки сейчас это backend и frontend. Последний пишет пользовательский интерфейс, первый всю серверную логику работы приложения. Здесь может быть сформирован новый слой, который можно обозначить как algoend. На нём будут заложены ключевые, самые важные и сложные алгоритмы (NLP, ML / AI, Data Mining, Blockchain и пр.). Иными словами, algoend это сущностное наполнение любой разработки, а frontend и backend его индивидуализация под конкретный проект. Algoend потребует максимальной квалификации и будет уходить в область дополнительных сервисов, формирующих новый рынок услуг. В свою очередь, frontend и backend это рынок труда, стоимость которого будет снижаться.

Рынок C2B. Уже из первых двух пунктов можно сделать вывод о трансформации, происходящей на рынке труда. Развитие новых технологий в области кибербезопасности позволит оживить практически отсутствующий сейчас сектор C2B. Иначе говоря, мы переходим от правовых схем контроля интеллектуальной собственности (за который сейчас могут бороться только крупные корпорации) к технологическим схемам, которыми может воспользоваться любой. Если произведённая интеллектуальная собственность неотделима от того сервиса, который её использует, то и нет потребности в правовых и организационных затратах на поддержание режима её использования.

Рынок юридических услуг. Общепризнанным является утверждение, что переход к информационной экономике порождает большую востребованность юристов, которые занимаются патентованием и правовыми спорами. До какого-то момента это действительно было так. Однако на 10 и более лет вперёд я бы спрогнозировал полную смерть этого рынка услуг (по крайней мере в области ИТ). Уже сейчас патентование и регистрация алгоритмов выглядят как не очень практичная и реально что-то защищающая процедура, все разработчики более склонны оставлять важные наработки как некое ноу-хау, нежели раскрывать и патентовать результаты. Здесь добавляется ещё один важный факт код на выходе неразличимого обфускатора не может быть объектом авторских прав. Это следует из самого определения неразличимой обфускации, так как невозможно определить и доказать, какая именно программная конструкция была подана ему на вход. Я бы спрогнозировал, что правовых споров в индустрии ИТ 10 лет спустя больше не будет, по крайней мере в том виде, как мы это представляем сейчас.

Прогнозы, озвученные в этой статье, конечно, как и любые другие предсказания, могут не сбыться. Открытия и разработки в R&D это самая неблагодарная область для прогнозов. Мы не можем сказать, например, что нынешние сложные конструкции неразличимой обфускации будут усовершенствованы и станут практико-пригодными через 5 лет. Этого может не произойти. Правильнее будет предположить, что сами прогнозы и выводы этой статьи с высокой вероятностью сбудутся, а вот временные отрезки, на которые они положены, несут значительно большую неопределённость.

Оригинал статьи опубликован на сайте: www.anti-malware.ru/analytics/Market_Analysis/how-cybersecurity-transforms-the-IT-market-part-1
Подробнее..

IBM открыла инструмент полностью гомоморфного шифрования для Linux

01.08.2020 12:08:37 | Автор: admin

Компания IBM опубликовала на GitHub исходный код набора инструментов FHE для Linux. Утилиты работают на платформах IBM Z и x86, поддерживаются Ubuntu, Fedora и CentOS.

Полностью гомоморфное шифрование (FHE) долгое время считалось чем-то вроде чаши святого Грааля в криптографии. Задача действительно казалась нереальной. Тип шифрования FHE предполагает манипуляции зашифрованными данными третьей стороной без возможности расшифровки самих данных или результата манипуляций.

Как такое возможно?

В качестве простого примера представьте, что у вас есть набор электронных писем, и вы хотите использовать сторонний спам-фильтр, чтобы проверить, являются ли они спамом. Спам-фильтр работает на сервере, потому что разработчик старается сохранить конфиденциальность своего алгоритма: либо скрывает исходный код, либо спам-фильтр зависит от очень большой базы данных, которую они не хотят раскрывать публично, так как это облегчает атаку, либо и то, и другое. Неважно, главное, что спам-фильтр в любом случае работает на сервере и вы никак не можете запустить его у себя. Что делать в такой ситуации? Вы тоже заботитесь о конфиденциальности своих данных и не хотите передавать третьим лицам содержание электронных писем в открытом, незашифрованном виде. Здесь на выручку приходит полностью гомоморфное шифрование:


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

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

Другие варианты применения гомоморфного шифрования:

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

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

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

Отчасти гомоморфное шифрование (somewhat homomorphic) полноценно работает только на ограниченном наборе данных.

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

Реализовать частичное гомоморфное шифрование довольно легко: например, умножение реализовано в RSA:

$enc(x) = x^e$, $enc(y) = y^e$, так что $enc(x) * enc(y) = (xy)^e = enc(xy)$

Эллиптические кривые предлагают аналогичный вариант со сложением. А вот реализовать одновременно и сложение, и умножение гораздо сложнее. Поиски такой схемы продолжались с 1978 года, когда Ривест, Адлеман и Дертузос сформулировали задачу и ввели термин гомоморфное шифрование. В течение 30 лет существование полностью гомоморфных систем не было доказано, а сам Ривест решил, что идея не подлежит реализации.

Серьёзный прорыв произошёл только в 2009 году после публикации кандидатской диссертации стэнфордского аспиранта Крейга Джентри. Он описал возможную конструкцию полностью гомоморфной криптосистемы на идеальных решётках. В диссертации он также предложил инновационную идею бутстраппинга. Этот трюк превращает схему частичного FHE в схему полностью гомоморфного шифрования. Метод бутстраппинга изображён на диаграмме ниже. Если вкратце, то здесь биты секретного ключа шифруются публичным ключом в гомоморфной схеме и публикуются как бустрапперский ключ, что позволяет исполнить гомоморфное шифрование на перешифрованном шифротексте, в котором шум уменьшается до размеров исходного. То есть мы освежаем шифротекст, как бы стирая ошибку старого ключа.



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

Криптографическая схема Джентри стала серьёзным прорывом, но вводила новую ошибку, которая не зависит от количества ошибки в исходном шифровании. Сам автор описал сложное решение проблемы, но более удачной стала доработанная схема Бракерски и Вайкунтанатана, предложенная в 2011 году (схема получила название BGV (Бракерски-Гентри-Вайкунтанатан). В 2013 году IBM выпустила свободную криптографическую библиотеку HELib с поддержкой гомоморфного шифрования и схемы BGV. В январе 2020 года вышла версия HELib 1.0.0.

В 2013 году Джентри снова заявил о себе. С соавторами Сахаи и Уотерсом и представил схему полного гомоморфного шифрования третьего поколения схему GSW (Gentry, Sahai, Waters), которая опять использует криптографию на решётках и бустраппинг.

За годы разработки на базе HELib создан полноценный набор инструментов с интегрированными образцами для IDE, которые работают сразу из коробки.


Ранее IBM уже выпустила инструменты полностью гомоморфного шифрования для MacOS и iOS. В перспективе обещает опубликовать исходный код версии для Android.

Версия для Linux выпущена скорее в демонстрационных целях и работает на базе данных с европейскими странами и их столицами (второй пример для финансовой отрасли представляет собой распознавание фрода нейросетью на зашифрованной базе анонимных транзакций). До практического применения гомоморфного шифрования пока дело не дошло. По оценке самого Джентри в 2009 году, например, обработка поискового запроса в Google в случае, если текст зашифрован, потребует примерно в триллион раз больше вычислений. Тем не менее, сделанные IBM оптимизации позволили существенно повысить производительность библиотеки, так что через несколько лет или десятилетий, она вполне может найти широкое применение в веб-приложениях. IBM заявляет, что уже сейчас библиотеку можно запускать на мейнфреймах IBM Z.
Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru