Опубликован: 19.01.2010 | Уровень: специалист | Доступ: платный
Лекция 15:

Криптосистемы

< Лекция 14 || Лекция 15: 1234567
Аннотация: В этой лекции рассматриваются несколько асимметрично-ключевых криптографических систем: Рабина (Rabin), Эль-Гамаля (ElGamal), криптосистемa на основе метода эллиптических кривых (ECC — Elliptic Curve Cryptosystem).

15.1. Криптосистема Рабина

Криптосистема Рабина (М. Rabin) является вариантом криптосистемы RSА. RSА базируется на возведении в степень сравнений. Криптосистема Рабина базируется на квадратичных сравнениях, и ее можно представить как криптографическую систему RSA, в которой значениям e и d присвоены значения e = 2 и d = 1/2. Другими словами, шифрованиеC \equiv {p^2}{\text{ }}(\bmod {\text{ }}n) и дешифрование - P = C1/2 (mod n).

Открытый ключ доступа в криптосистеме Рабина — n, секретный ключ является кортежем (p, q). Каждый может зашифровать сообщение, используя n, но только Боб может расшифровать сообщение, используя p и q. Дешифрование сообщения неосуществимо для Евы, потому что она не знает значения p и q. Рисунок 15.1 показывает шифрование и дешифрование.

 Шифрование, дешифрование и генерация ключей в криптосистеме Рабина

Рис. 15.1. Шифрование, дешифрование и генерация ключей в криптосистеме Рабина

Мы должны подчеркнуть, что если Боб использует RSA, он может сохранить d и n и отказаться после генерации ключей от p, q и \varphi (n). Если Боб использует криптосистему Рабина, он должен сохранить p и q.

Процедура

Генерация ключей, шифрование и дешифрование показаны ниже.

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

Боб использует шаги, показанные в алгоритме 15.1, чтобы создать свой открытый ключ доступа и секретный ключ.

\tt\parindent0pt

Rabin\_Key\_Generation

\{ 

Выберите два больших простых числа $p$ и $q$  в форме $4k +3$ и $p \ne  q$.

\ $n \gets  p \times q$

Открытый\_ключ $\gets  n$\ \ \ \ \                       // Может быть объявлен публично

Секретный\_ключ $\gets  (q,n)$\ \ \ \ \                   // Должен сохраняться в секрете

return Открытый\_ключ и Секретный\_ключ 

\}
15.1. Генерации ключей для криптосистемы Рабина

Хотя два простых числа, p и q, могут быть в форме 4k + 1 или 4k + 3, процесс дешифрования становится более трудным, если используется первая форма. Рекомендуют применять вторую форму, 4k + 3, для того чтобы сделать дешифрование для Алисы намного проще.

Шифрование

Любой может передать сообщение Бобу, используя его открытый ключ доступа. Процесс шифрования показан алгоритмом 15.2.

Rabin_Encryption (n, P)        // n — открытый ключ доступа; 
P — зашифрованный текст  Z*n

{
C <- P2 mod n       // C — зашифрованный текст
return C
}
15.2. Шифрование в криптографической системе Рабина

Хотя исходный текст P может быть выбран из множества Zn, но чтобы сделать дешифрование более простым, мы определили множество, которое находится в Zn*.

Шифрование в криптосистеме Рабина очень простое. Операция нуждается только в одном умножении, что может быть сделано быстро. Это выгодно, когда ресурсы ограничены: например, при использовании карт с интегральной схемой, содержащей микропроцессор с ограниченной памятью, и при необходимости задействовать центральный процессор на короткое время.

Дешифрование

Боб может использовать алгоритм 15.3, чтобы расшифровать полученный зашифрованный текст.

Rabin_Decryption (p, q, C)      // C — зашифрованный текст; p и q — секретные ключи
a1 <- + (C(p+1)/4) mod p
a2 <- - (C(p+1)/4) mod p
b1 <- + (C(q+1)/4) mod q
b2 <- - (C(q+1)/4) mod q
// Алгоритм китайской теоремы об остатках вызывается четыре раза.
P1 <-  Китайский_остаток (a1, b1, p, q)
P2 <-  Китайский_остаток (a1, b2, p, q)
P3 <-  Китайский_остаток (a2, b1, p, q)
P4 <-  Китайский_остаток (a2, b2, p, q)
return P1, P2, P3 и P4
15.3. Дешифрование в криптосистеме Рабина

Мы должны подчеркнуть здесь несколько моментов. Дешифрация базируется на решении квадратичного сравнения, которое рассмотрено в лекциях 12-13. Поскольку полученный зашифрованный текст — квадрат исходного текста, это гарантирует, что C имеет корни (квадратичные вычеты) в Zn*. Алгоритм китайской теоремы об остатке используется, чтобы найти четыре квадратных корня.

Самый важный пункт в криптосистеме Рабина — это то, что она недетерминирована. Дешифрование имеет четыре ответа. Задача получателя сообщения - точно выбрать один из четырех ответов как конечный ответ. Однако во многих ситуациях получатель может легко выбрать правильный ответ.

Криптосистема Рабина не детерминирована — дешифрование создает четыре одинаково вероятных исходных текста.

Пример 15.1

Вот очень тривиальный пример, чтобы проиллюстрировать идею.

1. Боб выбирает p = 23 и q = 7. Обратите внимание, что оба являются сравнениями 3 mod 4.

2. Боб вычисляет n = p \times q = 161.

3. Боб объявляет n открытым и сохраняет p и q в секрете.

4. Алиса хочет передать исходный текст P = 24. Обратите внимание, что 161 и 24 являются взаимно простыми; 24 находится в Z161*. Она вычисляет C = от 242 = 93 mod 161 и передает зашифрованный текст 93 Бобу.

5. Боб получает 93 и вычисляет четыре значения:

а. a1 = + (93 (23+1)/4) mod 23 = 1 mod 23

b. a2 = – (93 (23+1)/4) mod 23 = 22 mod 23

с. b 1 = + (93 (7+1)/4) mod 7 = 4 mod 7

d. b2 = – (93 (7+l)/4) mod 7 = 3 mod 7

  1. Боб имеет четыре возможных ответа — (a1, b 1), (a1, b2),
  2. (a2, b 1), (a2, b2) и использует китайскую теорему об остатках, чтобы найти четыре возможных исходных текста: 116, 24, 137 и 45 (все из них взаимно простые к 161 ). Обратите внимание, что только второй ответ — исходный текст Алисы. Боб должен принять решение исходя из ситуации. Обратите внимание также, что все четыре ответа при возведении во вторую степень по модулю n дают зашифрованный текст 93, переданный Алисой.
1162 = 93 mod 161    242 = 93 mod 161    1372 = 93 mod 161   452 = 93 mod 161

Безопасность криптографической системы Рабина

Криптографическая система Рабина безопасна, пока p и q — большие числа. Сложность криптографической системы Рабина — такая же, как и у процедуры разложения на множители больших чисел n на два простых сомножителя p и q. Другими словами, криптографическая система Рабина так же безопасна, как и RSA.

< Лекция 14 || Лекция 15: 1234567
Евгений Виноградов
Евгений Виноградов

Прошел экстерном экзамен по курсу перепордготовки "Информационная безопасность". Хочу получить диплом, но не вижу где оплатить? Ну и соответственно , как с получением бумажного документа?

Илья Сидоркин
Илья Сидоркин

Добрый день! Подскажите пожалуйста как и когда получить диплом, после сдичи и оплаты?????

Сергей Христовский
Сергей Христовский
Россия, Омск
Александр Шумаев
Александр Шумаев
Россия