Криптосистема Бенало

Материал из testwiki
Перейти к навигации Перейти к поиску

Криптосистема Бенало — модификация криптосистемы Гольдвассер — Микали. Основное их отличие состоит в том, что криптосистема позволяет зашифровывать блок данных единовременно, в то время как в схеме Гольдвассера и Микали каждый бит данных шифруется отдельно[1].

Разработана Джошем Бенало в 1988 году. Получила применение в системах электронного голосования[2].

Система является частично гомоморфной. Как и во многих криптосистемах с открытым ключом, эта система работает в группе (Z/n)* , где n — произведение двух простых чисел.

Описание алгоритма

Генерация ключа

  1. Выбираются блок размера r и два больших различных простых числа p и q, удовлетворяющие следующим условиям:
    1. r и (p1)/r — взаимно простые ;
    2. r и q1 — взаимно простые.
  2. Вычисляется n=p×q, ϕ=(p1)(q1);
  3. Выбирается yn* так, что yϕ/r≢1modn.
    Замечание: если r составное, то вышеуказанные условия не являются достаточными для обеспечения правильной расшифровки[3], то есть для того, чтобы всегда выполнялось D(E(m))=m. Чтобы избежать подобного, предлагается выполнять следующую проверку: пусть r=p1p2pk. Тогда y выбирается таким образом, чтобы для каждого pi выполнялось yϕ/pi1modn .
  4. Пусть x=yϕ/rmodn;

Тогда открытым ключом является (y,r,n), а секретным ключом — (ϕ,x).

Шифрование

Шифрование сообщения mr:

  1. Выбирается произвольное un*;
  2. Тогда Er(m)=ymurmodn.

Расшифрование

Для начала заметим, что для любых mr и un* выполняется: a=(c)ϕ/r(ymur)ϕ/r(ym)ϕ/r(ur)ϕ/r(yϕ/r)m(u)ϕ(x)m(u)0xmmodn

Таким образом, чтобы вычислить m, зная a, проводится операция дискретного логарифмирования из a по основанию x. Если число r небольшое, возможно нахождение m через исчерпывающий перебор, то есть проверкой выполнения равенства xiamodn для всех 0(r1). При больших значениях r, нахождение m можно проводить с помощью алгоритма Гельфонда — Шенкса (алгоритм больших и малых шагов), получив временную сложность расшифрования O(r).

Расшифрование шифртекста cn*:

  1. Вычисляется a=cϕ/rmodn;
  2. Подбирается m=logx(a), то есть такое m , что xmamodn

Свойства криптосистемы

Гомоморфизм

Криптосистема Бенало гомоморфна относительно операции сложения:

(x1)(x2)=(gx1u1r)(gx2u2r)=gx1+x2(u1u2)r=(x1+x2modr), где (x) является функцией шифрования от сообщения x

Стойкость

Стойкость криптосистемы Бенало основана на труднорешаемой задаче о вычетах высокой степени. Зная размер блока r, модуль n и шифртекст E(M), где разложение на множители числа n неизвестно, — определить открытый текст вычислительно сложно.

Литература

  1. А. И. Трубей «Гомоморфное шифрование: безопасность облачных вычислений и другие приложения (обзор)»
  2. Benaloh, Josh (1994) "Dense Probabilistic Encryption"

Примечания

Шаблон:Примечания

Шаблон:Криптосистемы с открытым ключом

  1. Benaloh, Josh (1994) "Dense Probabilistic Encryption"
  2. Гомоморфное шифрование: безопасность облачных вычислений и другие приложения (обзор) (А.И.Трубей)
  3. Fousse, Laurent; Lafourcade, Pascal; Alnuaimi, Mohamed (2011). "Benaloh's Dense Probabilistic Encryption Revisited"