Гомоморфное шифрование 1
Н.П. Варновский, A.B. Шокуров
Аннотация. Гомоморфное шифрование как криптографический примитив представляет интерес как с прикладной, так и с чисто математической точек зрения. Несмотря на многолетние исследования в этой области, основные проблемы остаются нерешенными. Настоящая статья является учебно-методической. Не претендуя на полноту обзора результатов, относящихся к гомоморфному шифрованию, она знакомит читателя с данным криптографическим примитивом и некоторыми смежными вопросами.
1. Введение
В литературе по теоретической криптографии под гомоморфным шифрованием понимается криптографический примитив, представляющий собой функцию шифрования, удовлетворяющую дополнительному требованию гомоморф-ности относительно каких-либо алгебраических операций над открытыми текстами.
Пусть Е(к, т) — функция шифрования, где т — открытый текст, к — ключ шифрования. Заметим, что для данных фиксированных к и т криптограмма Е(к,т) может быть, вообще говоря, случайной величиной. В таких случаях говорят о вероятностном шифровании. Функция Е гомоморфна относительно операции ор над открытыми текстами, если существует эффективный алгоритм М, который получив на входлюбую пару криптограмм вида Е(к, mi), Е(к, m2), выдает криптограмму с такую, что при дешифровании с будет получен открытый текст niiopmq.
Как правило, рассматривается следующий важнейший частный случай гомоморфного шифрования. Для данной функции шифрования Е и операции opi над открытыми текстами существует операция ор2 над криптограммами такая, что нз криптограммы Е(к, mi)op2E(k, m2) при дешифровании извлекается открытый текст т\орхт2.
'Работа выполнена при поддержке РФФИ, проект06-01-00106.
Алгоритм М, вообще говоря, вероятностный. Существует специальная модификация рассматриваемого примитива, называемая гомоморфным шифрованием с рерандомизацией. В таком случае при фиксированных E(k,mi) н Е(к,т2) криптограмма с — случайная величина, причем требуется, чтобы по заданным с, Е(к, mi), Е(к, mg), но при неизвестном ключе дешифрования, было невозможно эффективно проверить, что криптограмма с получена из E(k,nii) н Е(к,гп2),т. е. содержит открытый текст mi op m2.
Гомоморфное шифрование как криптографический примитив может найти широкое применение в криптографии и, в более широком смысле, в разработке математических методов защиты информации. Здесь прежде всего следует выделить такую, интересную с прикладной точки зрения, задачу как вычисления над зашифрованными данными. Конфиденциальные данные хранятся в зашифрованном виде. Для выполнения вычислений над ними данные можно расшифровать, произвести необходимые операции, н затем результаты вновь зашифровать. Но для этого требуются защищенная аппаратура н, уж по крайней мере, организационные меры по хранению секретных ключей. Вычисления над зашифрованными данными, если они возможны, помогают избежать всех этих проблем.
Задачу вычисления над зашифрованными данными можно рассматривать в различных постановках. Например, данными может быть массив натуральных чисел ai,..., ап из диапазона от 1 до N. Предположим, что система вычисления над зашифрованными данными позволяет противнику выполнить следующий запрос. Выбираются произвольное число а из того же диапазона от 1 до N н индекс г € {1,..., п}. На запрос (а, г) противник получает ответ 0, если а > а,, и ответ 1, если а < а.,. Очевидно, что какой бы высокой стойкостью не обладала криптосистема, противник всегда может, используя метод деления пополам, определить значение числа а.,. Таким образом, в данной постановке вычисления над зашифрованными данными невозможны.
Наиболее популярный нз рассматриваемых в литературе вариантов системы вычислений над зашифрованными данными не включает в себя операции сравнения. Реализуется лишь некоторый „полный“ набор операций. В случае, когда операндами являются биты, это может быть, например, базис И, ИЛИ, НЕ, а для произвольных числовых операндов — операции сложения н умножения. Ясно, что такую систему вычислений над зашифрованными данными можно было бы легко реализовать, если бы существовала функция шифрования, гомоморфная сразу относительно двух операций: И н ИЛИ в случае булевых
операндов, сложение и умножение в случае числовых. Однако, вопрос о существовании таких функций гомоморфного шифрования, равно как и систем вычислений над зашифрованными данными, остается открытым.
Легко видеть, что как гомоморфное шифрование, так и вычисления над зашифрованными данными можно реализовать, исходя из предположения о существовании стойкой обфускацин. В самом деле, пусть Р' — программа, выполняющая вычисления над данными х. Преобразуем ее в новую программу Р, которая содержит в себе ключ дешифрования и получает на вход зашифрованные данные Е(к,х). Программа Р выполняет дешифрование и вызывает Р' как подпрограмму, передавая ей на вход данные х. После завершения работы подпрограммы Р' программа Р шифрует результат и останавливается. Пусть O(V) — стойкая обфускацня программы Р. Ясно, что O(V) обеспечит вычисления, эквивалентные вычислениям программы Р', но при этом данные останутся недоступными противнику, т. е., будет достигнут тот же эффект, что при вычислении над зашифрованными данными. Подчеркнем, что для того, чтобы данная методика работала, необходима обфускацня О, стойкая в смысле Барака н др. [ ].
Можно предположить, что верна н обратная импликация: если существует подходящая функция гомоморфного шифрования, то существует н стойкая обфускацня. Интуитивные соображения в поддержку этого предположения таковы. Пусть U — универсальная программа, которая, получив на вход текст произвольной программы Р и входные данные х, выполняет вычисления программы Р на этом входе. Далее, пусть Е — функция шифрования, гомоморфная относительно всех операций, используемых программой U. Тогда пару (Е(к, P),U) можно рассматривать как обфускацию программы Р. Здесь для простоты мы обозначили универсальную программу, выполняющую вычисления над зашифрованными данными, той же буквой U.
Вопрос о соотношении между предположениями о существовании функций гомоморфного шифрования различных типов и предположениями о существовании стойких обфускаторов остается по существу открытым.
2. Гомоморфные системы шифрования
2.1. Криптосистема RSA
Криптосистема RSA является самой популярной криптографической схемой, описание которой можно найтн практически в любом тексте, посвящен-
ном криптографии с открытым ключом. Поэтому здесь мы эту криптосистему не описываем, ограничимся обозначениями. Пусть N — составной модуль (модуль RSA) не — открытая экспонента. Таким образом, пара {N,e) является открытым ключом криптосистемы. Далее, пусть т е Zm — открытый текст. Функция шифрования E((N,e),m) = те mod N криптосистемы RSA гомоморфна относительно умножения открытых текстов. В самом деле, для любых двух открытых текстов nii, та н любого открытого ключа к криптограмма произведения равна произведению криптограмм сомножителей: E(k,nii ■ m2) = Е(к, mi ) • Е(к, m2).
2.2. Криптосистема Эль Гамаля
Пусть G — циклическая группа порядка р н g — ее порождающий. В качестве секретного ключа криптосистемы выбирается случайный элемент х группы Zp_ 1. Соответствующий открытый ключ вычисляется по формуле у = дх. Криптограмма открытого текста т е G вычисляется с помощью функции шифрования Е(у,т) = (угт,дг), где г — случайный элемент группы Zp-1, т. е. число г выбирается всякий раз заново, независимо н равновероятно.
Дешифрование криптограммы (ci,c2) выполняется следующим образом. Сначала вычисляется с| = дгх, откуда т = c\jcf.
Криптосистема Эль Гамаля является криптосистемой вероятностного шифрования. Ее функция шифрования гомоморфна относительно операции умножения открытых текстов: криптограмма произведения может быть вычислена как произведение (попарное) криптограмм сомножителей. Если Е(у, n?i) = (yrimi, gri ) н E(y,ni2) = {yr'2ni2, gr'2), to E(y,mim2) можно получить в виде (уГ1уГ2т1т2,дГ1дГ2).
Функция шифрования криптосистемы Эль Гамаля обладает свойством ре-рандомнзацнн. Криптограмму произведения, полученную в указанном выше виде, можно рандомизировать, выбрав случайное число г нз Zv-\ н домножнв первый элемент криптограммы на уг, а второй — на дг.
Таким образом будет получена криптограмма (yriyr2yrmim2,grigr2gr), связь которой с исходными криптограммами „затемнена“ случайными множителями.
2.3. Гомоморфное шифрование в билинейных группах
В работе [ ] описана схема шифрования в группе с билинейным спариванием, гомоморфная относительно произвольного числа групповых операций и одного билинейного спаривания.
Опншем основные идеи данной конструкции. Вначале определим понятие билинейной группы.
Определение. Пусть G и <Gi — две (мультипликативные) циклические группы конечного порядка п, и д — образующий группы G. Отображение
6 : G х G I—> Ctrl
называется билинейным, если выполняются равенства е(иа, vb) = е(и, v)ab для всех и, v € G и a, b € Z и элемент е(д, д) — образующий группы Gi. Группа G называется билинейной, если существует группа Gi и билинейное отображение 6 ; G х G I—> Ctrl.
Опншем конструкцию билинейных групп порядка п. Пусть п > 3 — целое число, не содержащее кратных простых делителей н не делящееся на 3. Построим билинейную группу G порядка п следующим образом:
1. Найдем наименьшее натуральное I € Z такое, что р = In — 1 — простое и р = 2 mod 3.
2. Рассмотрим группу точек эллиптической кривой 7, заданной уравнением у2 = ж3+1 надполем Fp. Поскольку]? = 2 mod 3, эллиптическая кривая содержит р -\-1 = In точек. Поэтому она содержит подгруппу порядка п. Обозначим эту подгруппу через G.
3. Пусть Gi — подгруппа группы F*2 порядка п. Тогда модифицированное спаривание Вейля на эллиптической кривой 7 задает билинейное отображение eiCxG^Gi.
Пусть задано случайное число те Z. Находим два простых числа р\ и р2, имеющих т разрядов в двоичном представлении. Положим п = Р1Р2 и построим билинейную группу G с помощью описанной выше конструкции. Выберем две случайных образующих д,и е G. Положим /? = иР2. Тогда h — случайная образующая подгруппы группы G порядка р\.
Открытым ключом тогда объявляем набор (n,G,Gi,e,g,h). Секретным ключом является pi.
Шифрование. Шифруются целочисленные данные в диапазоне [О, Г], где Т < р2- Криптограмма для то. определяется формулой С = gmhr е G, где г € {0,1,..., п — 1} — случайное число.
Дешифрование выполняется по формуле loggP1 CPl = loggP1{gmhr)Pl = loggP1 (gPl )m = m. Дискретный логарифм по основанию gPl находится Л-методом Полларда за время 0{\/Т), поскольку 0 < то. < Т.
Введенное гомоморфное шифрование позволяет вычислять квадратичные формы в Z/nZ. В частности можно вычислять булевы формы вида
к
tp{x 1, . . . ,хп) = V (/¿д Л
i=l
где k,k — булева формула, содержащая только операции V и
2.4. Смешанное шифрование
Смешанное шифрование обобщает линейное шифрование и шифрование системой остатков. А именно, пусть pi,... ,pm — взаимно простые числа. Целое О < х < pi ■...-pm как элемент кольца ZPl.....Pm представляется при смешанном шифровании системой целых чисел с помощью формул
x'i = од • xi + &i mod pi
(1)
x'm = am ■ xm + bm mod pm
где GCD{a.k,Pk) = 1 Для всех к = 1,..., то. Ключами шифрования в этом случае являются наборы (cii,bi,..., am, bm).
В работе [ ] определено понятие однородной схемы вычисления н показано, что эта система шифрования является гомоморфной для таких схем.
2.5. Криптосистема Пэйе (Paillier)
Пусть pnq — два больших простых числа и пусть п = pq иА =НОК(р— 1 ,q— 1). Выберем случайное число д нз Z*2 и вычислим ¡j, = (L(gx mod n2))-1 mod n, где L(u) = (и — l)/и. Поскольку при выбранном Л выполняется сравнение и = 1 mod п, определение корректно.
Открытым ключом криптосистемы служит пара к = (п,д), а секретным ключом — пара (Л, //).
Для шифрования открытого текста то е Zn выбирается случайное число г из Z*2 н вычисляется шнфртекст по формуле с = gmrn mod n2.
Дешифрование криптограммы с выполняется по формуле т = L(cx mod n2)/j, mod п.
Тот факт, что последняя формула и в самом деле дает открытый текст, требует доказательства [ ].
Криптосистема Пэйе также является системой вероятностного шифрования. Из всех известных криптосистем с открытым ключом данная обладает, по-виднмому, наиболее интересными гомоморфными свойствами:
• произведение двух криптограмм является криптограммой суммы соответствующих открытых текстов, т. е. при дешифровании криптограммы Е(к, nil) ■ Е(к, m2) mod п2 будет получен открытый текст nil + n?2 mod
• ту же самую сумму можно получить, умножив криптограмму Е(к, т\) на дт'2, т. е. при дешифровании криптограммы Е(к, т\) • дт'2 mod п2 будет получен открытый текст nil + та mod n;
• открытый текст, содержащийся в криптограмме, можно умножить на константу d, возведя эту криптограмму в степень d, т. е. при дешифровании криптограммы Е(к, m)d mod п2 будет получен открытый текст dm mod п. В частности, в качестве константы d можно задать другой открытый текст т! и тем самым получить криптограмму произведения mm1 mod п.
Подчеркнем, что последнее свойство не является свойством гомоморфности функции шифрования относительно операции умножения открытых текстов.
3. Пример: решение системы линейных уравнений, с зашифрованной правой частью
Рассмотрим систему линейных уравнений
ацХ1 + ... + а 1пхп = Ьх
ат1^1 I ... I (1 т п -г п — Ьт
Пусть матрица системы задана в открытом виде, а правая часть в виде зашифрованного текста с использованием криптограммы Пэйе (см.п.2.5).
Будем решать эту систему уравнений методом Гаусса. Переставим строки так, чтобы первые к строк стали линейно независимыми, а остальные выражались бы через ннх. Зашифрованные данные в правой части также подвергнутся этой перестановке.
Рассмотрим первый столбец матрицы системы. Найдем наибольший общий делитель ¿1 его элементов. Без ограничения общности будем считать, что все элементы матрицы системы взаимно просты с р и д. Поскольку р и д большие числа, вероятность противоположного события пренебрежимо мала.
Тогда используя элементарные преобразования умножения строк матрицы на число н сложения строк, приведем матрицу системы к виду
( 1 О
О
12
322
Пп
г2п
\
\ 0 «га2 ••• атп /
При таком преобразовании матрицы системы над элементами в правой части будут выполняться также операции сложения н умноження на незашифрованные константы. Поскольку шифрование Пэйе гомоморфно относительно этих операций, то все вычисления могут быть выполнены в зашифрованном виде н после такого преобразования матрицы правая часть также будет представлена в зашифрованном виде.
Повторим последнюю процедуру еще к — 1 раз. Получим матрицу вида
\
1 а12 а1к ■ а1п
0 1 • • а2 к ' а2 п
0 0 • • 0 1 • а'кп
0 0 • • 0 0 • 0
0 0 • • 0 0 • 0
Теперь матрица легко приводится к „диагональному“ виду
V
1 о • 0 • Cl п
о і • 0 • ^2 п
о ° : ° : 1 • Скп
0 0 • 0 0 • 0
^ О ° : ° : 0 • 0
\
/
Заметим, что правая часть системы преобразуется с помощью формул
Ь] 1^1 (Ъ\,..., Ьт),
где Ь., — линейные формы, коэффициенты которых заданы в незашифрованном виде. Поскольку шифрование Пэйе гомоморфно относительно умножения на незашифрованные константы и относительно сложения, то все вычисления можно выполнять в зашифрованном виде, а результат вычисления этой линейной формы будет представлен в зашифрованном виде.
Если Ьк+1, ■ ■ ■ ,Ъп не все равны нулю, то система не имеет решений. В противном случае она имеет бесконечное множество решений. Переменным Хк+1,--.,хп можно присвоить произвольные значения, а переменные XI,, Хк выражаются через ннх.
4. Заключение
С точки зрения криптографических приложений свойство гомоморфности функции шифрования не всегда должно однозначно оцениваться как достоинство криптосистемы. Известны примеры, когда это свойство следует отнести к слабостям. Так, преобразование, обратное функции шифрования криптосистемы RSA, используется в схеме электронной подписи RSA для генерации подписей. Подпись сообщения т вычисляется по формуле s = md mod N, где d — секретная экспонента. Очевидно, что и это обратное преобразование гомоморфно относительно операции произведения сообщений. В результате, всегда имеется следующий способ подделки подписей. Если известны ПОДПИСИ Si II S<2 сообщений nil И П12 соответственно, ТО ПОДПИСЬ сообщения nil • П12 можно получить в виде si • S2- На практике это не представляет никакой угрозы стойкости
схемы электронной подписи RSA, поскольку подписываются не сами сообщения, а значения хэш-функцнн от сообщений. Однако, гомоморфность функции генерации подписей накладывает на хэш-функцню дополнительное требование, которое, вообще говоря, не следует нз стандартных определений криптографической хэш-функцнн.
Криптосистемы с гомоморфными функциями шифрования не могут обладать свойством неподатливости (non-malleability). Неформально свойство неподатливости означает, что по данной криптограмме Е{т\) противник не может сгенерировать другую криптограмму Е(т2) такую, что открытые тексты nii и связаны некоторым соотношением. Это понятие очевидным образом обобщается на случай, когда исходными данными для противника служат две или более криптограмм. Несколько более подробную информацию о неподатливой криптографии можно найти в работе [ ].
Литература
[1] D. Bonech, Eu-Jin Goh, К. Nissim, Evaluating 2-DNF Formulas on Cipertexts, Proceedings of Theory of Cryptography Conference 2005. 31
[2] A.V. Shokurov, On measures of resistance of data encodings. Intitute for Sistem Programming Russian Acad, of Sci, Technical Report, February 2001. 32
[3] Варновский H. П. Математическая криптография. Несколько этюдов. Материалы конференции "Московский университет и развитие криптографии в России". МГУ, 17—18 октября 2002 г., МЦНМО, 2003, 98—121 36
[4] Paillier P. Public-key cryptosystem based on composite degree residuosity classes, EUROCRYPT’99, Lecture Notes in Computer Science, 1592, 223-238 33
[5] Barak B., Goldreich O., Impagliazzo R., Rudich S., Sahai A.,.Vedhan S., Yang K. // On the (Im(possibility of obfuscating.programs. CRYPTO’Ol -Advances in Cryptology, Lecture Notes in.Computer Science, v. 2139, 2001, p. 1-18. 29