LINUX.ORG.RU

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

 ,


2

5

Компания IBM анонсировала тулкит для реализации технологии полностью гомоморфного шифрования (FHE) для операционных систем на базе Linux (для архитектур IBM Z и x86).

Ранее доступный для macOS и iOS, FHE тулкит от IBM теперь выпущен и для Linux. Поставка осуществляется в виде Docker-контейнеров для трех дистрибутивов: CentOS, Fedora и Ubuntu Linux.

Что особенного в технологии полностью гомоморфного шифрования? Данная технология позволяет зашифровывать как статические данные, так и изменяемые (шифрование «на лету») с помощью «повсеместного» шифрования (pervasive encryption). Таким образом, FHE позволяет работать с данными даже не расшифровывая их.

Кроме того, система Data Privacy Passports (консолидированная система защиты информации) позволяет клиентам IBM Z устанавливать разрешения на работу с данными для конкретных лиц посредством использования механизма контроля за правами доступа и отзывать доступ к данным даже в процессе их передачи.

Как сообщает IBM в своем пресс-релизе: «Изначально предложенная математиками в 1970-х годах, а затем впервые продемонстрированная в 2009 году, технология полностью гомоморфного шифрования стала уникальным способом защиты конфиденциальности информации. Идея проста: теперь вы можете обрабатывать конфиденциальные данные без их предварительной расшифровки. Короче говоря, вы не можете украсть информацию, если не можете ее понять».

Для клиентов IBM Z (s390x) первый выпуск FHE тулкита для Linux поддерживает только Ubuntu и Fedora, тогда как для платформ x86 этот инструментарий работает также и на CentOS.

Между тем IBM выразила уверенность, что опытные разработчики, хорошо знакомые с Docker, смогут легко портировать FHE инструментарий от IBM в другие дистрибутивы GNU/Linux. Каждая версия тулкита предоставляет пользователям доступ к встроенной среде IDE (Integrated Development Environment) через веб-браузер, установленный в их операционной системе.

Перед началом работы с FHE тулкитом для Linux рекомендуется ознакомиться с документацией на странице проекта на GitHub. Кроме версии на GitHub доступен контейнер на Docker Hub.

Для лучшего понимания работы системы полностью гомоморфного шифрования от IBM предлагается ознакомиться с официальным видео-анонсом.

>>> Подробности

★★★★

Проверено: alpha ()
Последнее исправление: gill_beits (всего исправлений: 2)

Ответ на: комментарий от xaizek

Можешь объяснить в каком месте в коде нужна верхняя граница для n

У тебя нет инструкции goto. Любой цикл тебе надо полностью развернуть. Т.е. цикл вида

for (int i = 0; i < n; i++) {
}

будет преобразован в конструкцию вида

i = 0;
if (0 < n) {
  тело цикла
}
i = 1;
if (1 < n) {
  тело цикла
}
...
i = max_n;
if (max_n < n) {
   тело цикла
}

На самом деле у тебя инструкции if тоже нет. У тебя есть только сложение и вычитание. Т.е. код вида

if (cond) {
    a = c1;
}

где cond это 0 или 1, преобразуется в

if (cond) {
    a = c1;
} else {
    a = a;
}

и в итоге в

a = c1 * cond + a * (1 - cond)

В общем нельзя из сложения и умножения сделать машину Тьюринга. Этого мало. Но для некоторых практических алгоритмов этого и вправду хватает.

Legioner ★★★★★
()
Ответ на: комментарий от anonymous

то я им шифрую «иванов» и делают поиск

Не, там типа: есть школа номер 69, и нужно узнать сколько учеников болело ветрянкой. Делаешь запрос – узнаёшь. Если все или никто – то это палево. Если нет – то ты ничего не узнаешь – только количество и всё.

При этом, делая хитрые выборки всё равно можно скомпрометировать кого-то. Например на основе каких-то известных данных. Но это уже сильно усложняется. Т.к. запросив чистые данные ты просто их получишь. А шифрованные – нет.

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

Иными словами система требует всё равно подхода и ограничений.

Вообще это всё дело неплохо бы ввести себе банкам и сотовым операторам. А то у них там утечки персональных данных на каждом шагу.

kostyarin_ ★★
()
Последнее исправление: kostyarin_ (всего исправлений: 1)
Ответ на: комментарий от kostyarin_

Тут возникает пикантный нюанс распределения ключей. Который при массовой вами описанной схеме, коллега, я не понимаю, как решать. Если я загрузил мои данные и мой открытый ключ, система что-то сделала, зашифровала результат на моем открытом ключе и передала мне, понятно. Но если есть какие-то облачные данные и я и ещё овер 9000 народу хочет с них аналитику, то как?

PS криптография никогда не сможет закрыть дыру организационного уровня.

beck ★★★★
()
Последнее исправление: beck (всего исправлений: 1)

Таким образом, FHE позволяет работать с данными даже не расшифровывая их

таким образом большой брать будет следить за нами, даже не расшифровывая трафик

anonymous
()
Ответ на: комментарий от Legioner

нельзя из сложения и умножения сделать машину Тьюринга

Хорошо бы доказать.

«сложение» и «умножение» - это просто два названия для операций. Для задания (почти)булевой алгебры достаточно двух операций. А (почти)булевой алгебры вроде бы достаточно, чтобы сделать Тьюринг полные вычисления - типа есть неподвижная точка.

Но я не копенгаген в этом вопросе.

anonymous
()

Поставка осуществляется в виде Docker-контейнеров для трех дистрибутивов: CentOS, Fedora и Ubuntu Linux.

А что, шареные либы - это уже не модно? Теперь каждый тулкит свой дистр тянет?

А что до гомоморфного шифрования - у него всегда была, есть и будет одна существенная проблема: уязвимость к атакам на гомоморфизм. Просто by design.

segfault ★★★★★
()
Ответ на: комментарий от beck

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

Вообще, это защита от сервера. И что там наделали IBM я не знаю. Но в теории, тут пишут, что вариант всё таки есть.

kostyarin_ ★★
()
Последнее исправление: kostyarin_ (всего исправлений: 1)
Ответ на: комментарий от Legioner

В общем нельзя из сложения и умножения сделать машину Тьюринга.

Похоже на то, спасибо.

Ох уж эта русскоязычная википедия, то птицы в ней не динозавры, то Тьюринг-полнота там, где её нет. В работе автора метода про полноту тоже ничего, только про произвольное количество операций преобразований.

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

Коллега, всё-таки определения надо использовать общепринятые.

beck ★★★★
()

Упоминали уже об ужасной тормознутости этого шифрования? Искать ключевое слово в реальной БД выйдет очень долго и дорого. Чтобы защитить БД от хостера покупайте процессоры EPYC с шифрованием RAM.

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

anonymous
()
Ответ на: комментарий от anonymous

Запрос на поиск тоже от тебя и слово для поиска тоже зашифровано тобой. Удалённая система видит два зашифрованные блока только.

hatred ★★★
()

Зачем ломать шифр, если можно ломать докер? Он де не безопасен by design

anonymoos ★★★★★
()
Ответ на: комментарий от Legioner

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

vlad9486
()
Ответ на: комментарий от xaizek

В общем нельзя из сложения и умножения сделать машину Тьюринга.

Похоже на то, спасибо.

В ламбда-исчислении всего две операции - аппликация и абстракция, можешь назвать их «сложением» и «вычитанием». И она Тьюринг-полная, потому что можно написать комбинатор неподвижной точки.

anonymous
()
Ответ на: комментарий от anonymous

Ну вот я понимаю, что любую функцию от любых входов реализовать можно, но пример @Legioner меня смутил. «полный по Тьюрингу базис» == «полнота по Тьюрингу»? Если нет, то это объяснит всю путаницу.

xaizek ★★★★★
()
Ответ на: комментарий от SM5T001

Может, ты уже не ждёшь ответа через два дня) Но всё же. Суть асимметричного шифрования в том, что есть взаимосвязанная пара открытый-закрытый ключ. В случае, который ты описываешь, открытый ключ будет уже совсем другим. И сообщение, зашифрованное этим открытым ключом, уже нельзя будет расшифровать твоим закрытым ключом.

ZzaizZ
()

Безумный мир становится еще безумнее

kto_tama ★★★★★
()
Ответ на: комментарий от Andrew-R

https://en.wikipedia.org/wiki/One_instruction_set_computer

Cryptoleq[edit] Cryptoleq processor made at NYU Abu Dhabi Cryptoleq[15] is a language consisting of one instruction, the eponymous, is capable of performing general-purpose computation on encrypted programs and is a close relative to Subleq. Cryptoleq works on continuous cells of memory using direct and indirect addressing, and performs two operations O1 and O2 on three values A, B, and C:

[..]

A program written in Subleq can run on a Cryptoleq machine, meaning backwards compatibility. Cryptoleq though, implements fully homomorphic calculations and since the model is be able to do multiplications. Multiplication on an encrypted domain is assisted by a unique function G that is assumed to be difficult to reverse engineer and allows re-encryption of a value based on the O2 operation: [..]

The multiplication algorithm is based on addition and subtraction, uses the function G and does not have conditional jumps nor branches.

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

Andrew-R ★★★★
()
Ответ на: комментарий от Andrew-R

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

Потом вылезет проблема, компилировать твой запрос в эту систему «эквивлентных» команд. И эти команды скорее всего будут непростыми для системы команд x86 или другой популярной архитектуры. То есть, не факт, что это практичное решение.

anonymous
()
Ответ на: комментарий от ZzaizZ

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

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

SM5T001
()

Гомофобное шифрование? Ну наконец-то!

anonymous
()
Ответ на: комментарий от kostyarin_

Вообще это всё дело неплохо бы ввести себе банкам и сотовым операторам. А то у них там утечки персональных данных на каждом шагу.

Не получится. Либо всё будет работать только по предоплатной/контрактной схеме. Кредит надо знать с кого требовать. А то, что знают двое - знает и свинья.

anonymous
()

Тем кто не понимает как это «в целом» работает:

Работает как любой процессор. Процессору глубоко всё равно, какой текст в какой кодировке искать, какой канал усиливать и до каких значений. Алгоритм оперирует набором битов. Также и здесь, отправляется набор битов, процессор их обрабатывает, выдаёт на выход другой набор битов (найдено/не найдено, усиленный на 25% красный канал и т.д.)

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

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.