LINUX.ORG.RU

Опубликованы исходные коды HElib

 helib, , гомоморфное шифрование,


9

3

HElib — библиотека, предоставляющая функции гомоморфного шифрования. На данный момент она включает реализацию криптосистемы Brakerski-Gentry-Vaikuntanathan (BGV), оптимизированной по быстродействию, в том числе за счёт эффективного использования техники упаковки зашифрованного текста Smart-Vercauteren и оптимизаций Gentry-Halevi-Smart.

Над библиотекой работают сотрудники IBM Watson Research Center Виктор Шоуп (Victor Shoup) и Шаи Халеви (Shai Halevi).

Гомоморфное шифрование позволяет производить операции с данными (такие, как, например, сложение и умножение чисел) без их расшифровки. Идея создания таких систем была впервые высказана во второй половине XX века одним из создателей RSA, Рональдом Ривестом, но была ошибочно оценена как нереализуемая. Первая гомоморфная система, позволяющая одновременно выполнять операции и сложения и умножения, была изобретена сотрудником IBM Крейгом Гентри (Craig Gentry) в 2009 году.

HElib написана на C++ с использованием математической библиотеки NTL. Исходный код распространяется согласно GPL.

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

★★

Проверено: tazhate ()
Ответ на: комментарий от kto_tama

Это ты - сферический и зелёный.

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

Ты сказал слишком длинное слово. НЕ деперсонифицировать - это фигня, ГК существует как раз для деперсонификации.

cdshines ★★★★★
()

гомоморфного шифрования

*шутка про маководов*

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

А то, что ты сказал наоборот от того, как есть, не считается?

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

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

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

НЕ деперсонифицировать - это фигня, ГК существует как раз для деперсонификации.

э... почему фигня?

И при чём тут ГК (Гражданский Кодекс)? Может быть ты имел ввиду Федеральный закон РФ от 27 июля 2006 года № 152-ФЗ «О персональных данных»?

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

думал маководы будут дальше по треду.

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

практические профиты от этого какие?

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

jcd ★★★★★
()

Круто. Кто напишет веб-сервер и интерпретатор PHP на такой штуковине?

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

http://stackoverflow.com/questions/1023981/practical-applications-of-homomorp...

но там не совсем «на практике».. первый ответ оставил осадочек

интереснее, скажем, можно ли усложнить закладки в важной микроэлектронике (меньше информации когда ломаться)

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

А, или ты имеешь в виду, что при использовании такого подхода можно не опасаться за то, что там могут содержаться персональные данные? Угу, я понял.

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

В чём смысл шифрования тогда? Какая разница на каком языку написан текст (rus/eng) если я понимаю оба?

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

практические профиты от этого какие?

Можно обсчитывать данные на амазоновском облаке, не доверяя сами данные амазону.

dn2010 ★★★★★
()

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

D2 - D1 =?= D2cript - D1cript

?

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

В чём смысл шифрования тогда? Какая разница на каком языку написан текст (rus/eng) если я понимаю оба?

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

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

Типа, берем первое слагаемое, шифруем его, берем второе, тоже шифруем.

А не получится ли сделать так:

Я получил от кого то два зашифрованных числа. Назовем их A и B. Взял свое число X. Провел операции сложения A + X и B + X. Получил на выходе R1 и R2. Зная свое число X и результаты R1 и R2 я разве не могу узнать входные A и B?

Или тут речь идет о том, что расшифровать R1 и R2 я просто не смогу?
Или я даже не смогу провести вычисления основанные на чужих и своих шифрованных числах?

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

не смогу провести вычисления основанные на чужих и своих шифрованных числах

В таком случае это годная математика. Одобряю.

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

Я получил от кого то два зашифрованных числа. Назовем их A и B. Взял свое число X. Провел операции сложения A + X и B + X. Получил на выходе R1 и R2. Зная свое число X и результаты R1 и R2 я разве не могу узнать входные A и B?

А что, были какие-то шансы узнать?

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

А что, были какие-то шансы узнать?

Уравнение с одной неизвестной, не?
X + Y = R,
где Y и R известны, вычислить X не так и сложно. Или в школах этому уже не учат?

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

Уравнение с одной неизвестной, не?

A - тебе выдали, известно
B - тебе выдали, известно
X - ты придумал, известно
R1=A+X - ты вычислил, известно
R2=B+X - ты вычислил, известно

Какие неизвестные ты собрался вычислять?

Или в школах этому уже не учат?

чему «этому»?

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

A - тебе выдали, известно
B - тебе выдали, известно

A и B зашифрованы. И известны только владельцу.

X - ты придумал, известно

Да.

R1=A+X - ты вычислил, известно
R2=B+X - ты вычислил, известно

Вот вопрос в том, могу ли я получить расшифрованные рез-ты R1 и R2?

чему «этому»?

Решению уравнения с одной неизвестной, очевидно.

andreyu ★★★★★
()
Последнее исправление: andreyu (всего исправлений: 1)
Ответ на: комментарий от andreyu
R1=A+X - ты вычислил, известно
R2=B+X - ты вычислил, известно

Вот вопрос в том, могу ли я получить расшифрованные рез-ты R1 и R2?

Ты? Каким образом?

Если X - число, то зашифровавший владелец может. В этом вся и суть.

Решению уравнения с одной неизвестной, очевидно.

Кстати, ни разу не очевидно, при чем тут уравнения с одной неизвестной.

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

Ты? Каким образом?
Если X - число, то зашифровавший владелец может. В этом вся и суть.

Опубликованы исходные коды HElib (комментарий)

Кстати, ни разу не очевидно, при чем тут уравнения с одной неизвестной.

Уже даже и не знаю, как вам пояснить, что такое уравнение с одной неизвестной. Ну может так: A + 10 = 15, где мое число X = 10 и R1 = 15, следовательно x = 5.

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

так: A + 10 = 15, где мое число X = 10 и R1 = 15,

следовательно x = 5.

имелось ввиду: A = 5 ?

И как это нам поможет выяснить, какое число A' было зашифровано числом «5»?

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

Взял своё число X. Теперь, чтобы смочь прибавить его к A и B, надо его зашифровать тем же шифром, каким зашифрованы A и B.

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

Тьфу. Не тем же шифром, а с тем же ключом.

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

По твоей девичьей логике можно просто числа A и B взять и узнать. Возьмём X=0...

P.S. в следующий раз, когда тебе покажется, что ты смог на**ть то, что создано *умными* (в отличие от тебя сейчас) людьми, то перепроверяй себя до тех пор, пока тебе не раскажется.

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

Зная свое число X и результаты R1 и R2 я разве не могу узнать входные A и B?

Только если операция «+» для шифрованных данных *изоморфна* операции «+» для нешифрованных. Если же она только *гомоморфна*, то вообще говоря, ты не можешь узнать, что было зашифровано однозначным образом.

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

практические профиты от этого какие?

Запускать расчёты на удалённых недоверенных нодах, владелец которых не сможет получить данных к исходным данным и результатам расчета.

no-dashi ★★★★★
()

ждем в облаках всего мира.

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

Уравнение с одной неизвестной, не? X + Y = R,

Если было бы всё так просто, автором библиотеки был бы Денис :)

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

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

практические профиты от этого какие?

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

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

Ты не сможешь узнать что именно ботнет считает на твоём компьютере.

rezedent12 ☆☆☆
()

изобретена в 2009 году.

этому старью уже 4 года!!! Набось пришли квантовые компьютеры и только из-за этого они выложили библиотеку в паблик

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

алгоритм

Вообще-то для этого придется зашифровать ваше X, в этом и заключается алгоритм. Если пользователю не давать этого делать, то хрен догадаешься.

Для целых чисел здесь http://crypto.stanford.edu/craig/craig-thesis.pdf на 4-ой странице и выглядит это совсем не гениально.

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

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