Кодирование с открытым ключом

Содержание

Слайд 2

Ключ, с помощью которого сообщение шифруется, называется открытым (public key).
Ключ для

Ключ, с помощью которого сообщение шифруется, называется открытым (public key). Ключ для
дешифровки называется секретным или приватным (private key).
Основатели RSA (1977): Роналд Ривест, Ади Шамир, Леонард Адлеман.

Слайд 3

Первая идея схемы RSA – это рассмотрение блоков текста, состоящих из нескольких

Первая идея схемы RSA – это рассмотрение блоков текста, состоящих из нескольких
последовательных байтов, как элементов кольца вычетов по модулю n. Объединяя двоичные записи всех байтов блока, получают длинное двоичное слово, которое трактуется как двоичная запись целого числа. Это число, в свою очередь, рассматривается как элемент кольца вычетов по модулю n. Таким образом, блоки текста отождествляются с элементами кольца Zn. Шифрование состоит в преобразовании элементов Zn. Число n в схеме RSA достаточно большое, не менее 200 десятичных знаков. (Это очень важно, что блок как число < n.)

Слайд 4

При использовании таких систем каждый участник переговоров имеет открытый ключ и секретный

При использовании таких систем каждый участник переговоров имеет открытый ключ и секретный
ключ. В системе RSA ключ состоит из двух целых чисел. Участников переговоров может быть несколько, но для примера мы будем говорить о переговорах Алисы (А) и Боба (В). Их открытые ключи мы будем обозначать и , а секретные - и .
Каждый участник создает два своих ключа. Секретный ключ он хранит в тайне, а открытый сообщает остальным участникам (и вообще всем желающим, например, через газету или Internet; открытые ключи можно публиковать в специальных справочниках и т. п.).

Слайд 5

Обозначим через D множество всех возможных сообщений (например, это может быть множество

Обозначим через D множество всех возможных сообщений (например, это может быть множество
всех битовых строк). Потребуем, чтобы каждый ключ задавал перестановку множества D, и через () и () будем обозначать перестановки, соответствующие ключам Алисы. Мы считаем, что каждая из перестановок () и () может быть быстро вычислена, если только известен соответствующий ключ.
Мы хотим, чтобы ключи одного участника задавали взаимно обратные перестановки, т. е. чтобы
(33.37)
и
(33.38)
было выполнено для любого сообщения .

Слайд 6

Самое главное – чтобы никто, кроме Алисы, не мог вычислять функцию за

Самое главное – чтобы никто, кроме Алисы, не мог вычислять функцию за
разумное время; именно на этом основаны все полезные свойства криптосистемы, перечисленные выше. Поэтому – то Алиса и держит значение () в секрете: если кто-либо узнает ее секретный ключ, он сможет расшифровать адресованные ей сообщения, подделывать ее подпись или подменять сообщения, которые она отправляет от своего имени. Главная трудность при разработке криптосистемы состоит в том, чтобы придумывать функцию () , для которой трудно было бы найти быстрый способ вычисления, даже зная такой способ для обратной функции ().

Слайд 7

Опишем процесс пересылки шифрованного сообщения. Допустим, Боб желает послать Алисе секретное

Опишем процесс пересылки шифрованного сообщения. Допустим, Боб желает послать Алисе секретное сообщение.
сообщение. Это происходит так:
Боб узнаёт () - открытый ключ Алисы (по справочнику или прямо от Алисы);
Боб зашифровывает свое сообщение М и посылает Алисе результат шифрования ;
Алиса получает C и восстанавливает исходное сообщение .

Слайд 8

Рис. Шифрование с открытым ключом. Боб шифрует сообщение М с помощью функции

Рис. Шифрование с открытым ключом. Боб шифрует сообщение М с помощью функции
и получает результат шифрования . Функции () и () взаимно обратны, поэтому Алиса может восстановить исходное сообщение: . Никто, кроме Алисы, не знает способа вычисления () , поэтому сообщение М останется секретным, даже если враг перехватит С и знает ().

Слайд 9

Теперь объясним, как снабдить сообщение цифровой подписью. Пусть Алиса хочет послать

Теперь объясним, как снабдить сообщение цифровой подписью. Пусть Алиса хочет послать Бобу
Бобу ответ , подписанный цифровой подписью Тогда:
Алиса вычисляет цифровую подпись (digital signature) ;
Алиса посылает Бобу пару ( , ), состоящую из сообщения и подписи;
Боб получает пару ( , ) и убеждается в подлинности подписи, проверив равенство .

Слайд 10

Рис. Цифровая подпись в системе с открытым ключом. Алиса подписывает свое сообщение

Рис. Цифровая подпись в системе с открытым ключом. Алиса подписывает свое сообщение
М`, прикладывая к нему цифровую подпись . Боб , получая от Алисы пару (М`, ), проверяет соотношение . Если оно выполняется, подпись и само сообщение подлинны.

Слайд 11

16) Криптосистема RSA

16) Криптосистема RSA

Слайд 12

Чтобы построить пару ключей для криптосистемы RSA надо сделать следующее.
Взять два больших

Чтобы построить пару ключей для криптосистемы RSA надо сделать следующее. Взять два
простых числа p и q (скажем, около 100 десятичных цифр в каждом).
Вычислить n=pq.
Взять небольшое нечетное число e, взаимно простое с . (Из определения функции Эйлера следует, что ).)
Вычислить . (Если НОД ( ) )=1, то ed .)
Составить пару P=(e, n) –открытый ключ (RSA public key).
Составить пару S=(d, n) – секретный ключ (RSA secret key).

Слайд 13

Открытому ключу P=(e, n) соответствует преобразование
а секретному ключу S=(d, n) –

Открытому ключу P=(e, n) соответствует преобразование а секретному ключу S=(d, n) –
преобразование
Как уже говорилось, эти преобразования можно использовать и для шифрования, и для электронных подписей.
Для возведения в степень в предыдущих формулах разумно пользоваться процедурой быстрого возведения в степень. Если считать, что числа d и n имеют порядка битов, а число е имеет О(1) битов, то преобразование Р потребует О(1) умножений по модулю битовых операций), а преобразования S потребует умножений ( битовых операций (разумеется при известном ключе).

Слайд 14

Теорема 14 (корректность системы RSA).
Формулы
и
задают взаимно обратные перестановки множества.
Доказательство.

по усиленной теореме

Теорема 14 (корректность системы RSA). Формулы и задают взаимно обратные перестановки множества.
Эйлера

ч.т.д.

Слайд 15

17) Криптостойкость схемы RSA.

17) Криптостойкость схемы RSA.

Слайд 16

Открытый ключ представляет собой пару чисел (e, n), секретный – пару (d,

Открытый ключ представляет собой пару чисел (e, n), секретный – пару (d,
n), где d – обратный элемент в кольце вычетов по модулю . Следовательно для вычисления нужно знать функцию Эйлера . Задача вычисления функции Эйлера эквивалентна задаче о разложении числа n на множители. Задача разложения числа на множители очень сложна. Она привлекла внимание многих математиков, начиная с Эйлера, который разложил на множители пятое число Ферма
до этого ошибочно считавшееся простым. Эйлер использовал изящную идею – найти два квадрата, совпадающих по модулю n, которая и по сей день лежит в основе многих современных алгоритмов разложения.

Слайд 17

18) Электронные подписи.

18) Электронные подписи.

Слайд 18

Наиболее популярными функциями хэширования являются MD5 (Message Digest 5 – профиль сообщения

Наиболее популярными функциями хэширования являются MD5 (Message Digest 5 – профиль сообщения
5), создающий 16-байтовый результат, и алгоритм SHA (Secure Hash Algorithm – надежный алгоритм хэширования), формирующий 20-байтовый результат.

Слайд 19

Рис. Вычисление сигнатурного блока (а); что получает получатель (б)

Рис. Вычисление сигнатурного блока (а); что получает получатель (б)

Слайд 20

Когда документ и хэш-код прибывают, получатель сначала с помощью алгоритма MD5 или

Когда документ и хэш-код прибывают, получатель сначала с помощью алгоритма MD5 или
SHA (о выборе алгоритма отправитель и получатель договариваются заранее) вычисляет хэш-код документа h(M). Затем получатель применяет с сигнатурному блоку алгоритм шифрования с открытым ключом, получая . В результате он снова зашифровывает “расшифрованный” хэш-код, снова получая оригинальное значение хэш-кода. Если вычисленный заново хэш-код не совпадает с расшифрованным сигнатурным блоком, это значит, что либо сообщение, либо сигнатурный блок были повреждены – или случайно, или преднамеренно. Смысл этой схемы в том, что медленное шифрование с открытым ключом применяется только для небольшого по размерам хэш-кода.

Слайд 21

19) Атаки на RSA

19) Атаки на RSA

Слайд 22

Известно: открытый ключ (e, n) ; зашифрованный текст Найти: M – исходное

Известно: открытый ключ (e, n) ; зашифрованный текст Найти: M – исходное
(незашифрованное) сообщение. Решение:
Возводим в степень (…( ) ) = j раз, пока не получим P, запоминая предыдущий результат возведения в степень. целостность данных;
Используя усиленную теорему Эйлера, получим:

Таким образом, (j-1) раз возведенное в степень зашифрованное сообщение P и есть исходное незашифрованное сообщение M. Но оно было запомнено на предыдущем шаге.
Атака не эффективна, так как число операций может оказаться сравнимым или даже большим, чем при разложении чисел на простые сомножители.

Слайд 23

20) СТЕГАНОГРАФИЯ

20) СТЕГАНОГРАФИЯ