Криптосистема Benaloh

редактировать

Криптосистема Benaloh является расширением криптосистемы Goldwasser-Micali (GM) создан в 1985 году Джошем (Коэном) Бенало. Основное улучшение криптосистемы Benaloh по сравнению с GM заключается в том, что более длинные блоки данных могут быть зашифрованы одновременно, тогда как в GM каждый бит шифруется индивидуально.

Содержание
  • 1 Определение схемы
    • 1.1 Генерация ключа
    • 1.2 Шифрование сообщений
    • 1.3 Расшифровка сообщений
    • 1.4 Безопасность
  • 2 Ссылки
Определение схемы

Как и многие криптосистемы с открытым ключом, эта схема работает в группе (Z / n Z) ∗ {\ displaystyle (\ mathbb {Z} / n \ mathbb {Z}) ^ {*}}( {\ mathbb {Z}} / n {\ mathbb {Z}}) ^ {*} , где n - произведение двух больших простых чисел. Эта схема гомоморфна и, следовательно, податлива.

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

Учитывая размер блока r, пара открытого / закрытого ключей генерируется следующим образом:

  1. Выберите большие простые числа p и q такие, что r | (п - 1), НОД ⁡ (г, (п - 1) / г) знак равно 1, {\ Displaystyle г \ верт (р-1), \ OperatorName {НОД} (г, (р-1) / г) = 1,}r \ vert (p-1), \ operatorname {gcd} (r, (p-1) / r) = 1, и gcd ⁡ (r, (q - 1)) = 1 {\ displaystyle \ operatorname {gcd} (r, (q-1)) = 1}\ operatorname {gcd} (r, (q -1)) = 1
  2. Установить n = pq, ϕ = (p - 1) (q - 1) {\ displaystyle n = pq, \ phi = (p-1) (q-1)}n = pq, \ phi = (p-1) (q -1)
  3. Выбрать y ∈ Z n ∗ {\ displaystyle y \ in \ mathbb {Z} _ {n} ^ {*}}y \ in {\ mathbb {Z}} _ {n} ^ {*} так, что y ϕ / r ≢ 1 mod n {\ displaystyle y ^ {\ phi / r} \ not \ Equiv 1 \ mod n}y ^ {{\ phi / r}} \ not \ Equiv 1 \ mod n .
Примечание: Если r составное, на это указали Fousse et al. в 2011 году, что вышеуказанные условия (т. е. те, которые указаны в исходной статье) недостаточны для гарантии правильного дешифрования, т. е. чтобы гарантировать, что D (E (m)) = m {\ displaystyle D (E (m)) = m}D (E (m)) = m во всех случаях (как и должно быть). Чтобы решить эту проблему, авторы предлагают следующую проверку: пусть r = p 1 p 2… pk {\ displaystyle r = p_ {1} p_ {2} \ dots p_ {k}}r = p_ {1} p_ {2} \ dots p_ {k} будет факторизация числа r на простые множители. Выберите y ∈ Z n ∗ {\ displaystyle y \ in \ mathbb {Z} _ {n} ^ {*}}y \ in {\ mathbb {Z}} _ {n} ^ {*} так, чтобы для каждого множителя pi {\ displaystyle p_ {i }}p_ {i } , это случай, когда y ϕ / pi ≠ 1 mod n {\ displaystyle y ^ {\ phi / p_ {i}} \ neq 1 \ mod n}у ^ {{\ phi / p_ { i}}} \ neq 1 \ mod n .
  1. Set x = y ϕ / r mod n {\ displaystyle x = y ^ {\ phi / r} \ mod n}x = y ^ {{\ phi / r}} \ mod n

Тогда открытый ключ y, n {\ displaystyle y, n}y, n , а закрытый ключ - ϕ, x {\ displaystyle \ phi, x}\ phi, x .

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

Для шифрования сообщения m ∈ Z r {\ displaystyle m \ in \ mathbb {Z} _ {r}}m \ in {\ mathbb {Z}} _ {r} :

  1. Выберите случайный u ∈ Z n ∗ {\ displaystyle u \ in \ mathbb {Z} _ {n} ^ {*}}u \ in {\ mathbb {Z}} _ {n} ^ {*}
  2. Установить E r (m) = ymur mod n {\ displaystyle E_ {r} (m) = y ^ {m} u ^ {r} \ mod n}E_ {r} (m) = y ^ {m} u ^ {r} \ mod n

Расшифровка сообщения

Для расшифровки зашифрованный текст c ∈ Z n ∗ {\ displaystyle c \ in \ mathbb {Z} _ {n} ^ {*}}c \ in {\ mathbb {Z}} _ {n} ^ {*} :

  1. Compute a = c ϕ / r mod n {\ displaystyle a = c ^ {\ phi / r} \ mod n}a = c ^ {{\ phi / r}} \ mod n
  2. Вывод m = log x ⁡ (a) {\ displaystyle m = \ log _ {x} (a)}m = \ log _ {x} (a) , т.е., найдите m такое, что xm ≡ a mod n {\ displaystyle x ^ {m} \ equi va \ mod n}x ^ {m} \ Equiv a \ mod n

Чтобы понять расшифровку, сначала обратите внимание, что для любого m ∈ Z r {\ displaystyle m \ in \ mathbb {Z} _ {r}}m \ in {\ mathbb {Z}} _ {r} и u ∈ Z n ∗ {\ displaystyle u \ in \ mathbb {Z} _ {n} ^ {*}}u \ in {\ mathbb {Z}} _ {n} ^ {*} имеем:

a = (c) ϕ / r ≡ (ymur) ϕ / р ≡ (ym) ϕ / r (ur) ϕ / r ≡ (y ϕ / r) m (u) ϕ ≡ (x) m (u) 0 ≡ xm mod n {\ displaystyle a = (c) ^ { \ phi / r} \ эквив (у ^ {м} и ^ {г}) ^ {\ фи / г} \ экв (у ^ {м}) ^ {\ фи / г} (и ^ {г}) ^ {\ phi / r} \ Equiv (y ^ {\ phi / r}) ^ {m} (u) ^ {\ phi} \ Equiv (x) ^ {m} (u) ^ {0} \ Equiv x ^ {m} \ mod n}a = (c) ^ {{\ phi / r}} \ Equiv (y ^ {m} u ^ { r}) ^ {{\ phi / r}} \ Equiv (y ^ {{m}}) ^ {{\ phi / r}} (u ^ {r}) ^ {{\ phi / r}} \ эквив (y ^ {{\ phi / r}}) ^ {m} (u) ^ {{\ phi}} \ Equiv (x) ^ {m} (u) ^ {0} \ Equiv x ^ {m} \ mod n

Чтобы восстановить m из a, мы берем дискретный журнал по основанию x. Если r мало, мы можем восстановить m с помощью исчерпывающего поиска, т. Е. Проверки того, xi ≡ a mod n {\ displaystyle x ^ {i} \ Equiv a \ mod n}x ^ {i} \ Equiv a \ mod n для всех 0… (r - 1) {\ displaystyle 0 \ dots (r-1)}0 \ dots (r-1) . Для больших значений r алгоритм гигантского шага младенца может использоваться для восстановления m в O (r) {\ displaystyle O ({\ sqrt {r}})}O ({\ sqrt {r}}) время и пространство.

Безопасность

Безопасность этой схемы основана на проблеме более высокой остаточности, в частности, при заданных z, r и n, где факторизация n неизвестна, это вычисляется невозможно определить, является ли z r-м остатком по модулю n, т. е. существует ли x такой, что z ≡ xr mod n {\ displaystyle z \ Equiv x ^ {r} \ mod n}z \ Equiv x ^ {r} \ mod n .

Ссылки
Последняя правка сделана 2021-05-12 11:38:07
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте