Криптография с открытым ключом

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование

? А и В). Злоумышленнику для определения, например, секретного ключа пользователя В необходимо вычислить XВ = Inda, Q (YB), иначе YВ = a mod Q.

2.Асимметричная криптографическая система (система с двумя ключами, схема шифрования с открытым ключом). Отправитель и получатель используют разные ключи. Здесь ключи зашифрования и расшифрования различны и секретность сообщения основана на сложности вычисления ключа по некоторой производной от него информации, которая в открытом виде передается по каналу связи.

3.Закрытый ключ. Это закрытая (секретная) половина криптографической пары, используемая при шифровании с применением открытых ключей. Закрытые ключи обычно используются при расшифровке симметричных ключей сеансов, создании цифровых подписей и расшифровке данных, зашифрованных соответствующим открытым ключом.

4.Индекс b по основанию a, рассматриваемому по модулю p (иначе дискретный логарифм). Ind a,p (b) или показатель степени i, при котором b = aimod p, где 0 i (p-1).

 

3. Лабораторная работа 3. КриптографиЯ с открытым ключом.
Метод зашифрования с открытым ключом RSA

 

В этой лабораторной работе определяются параметры преобразования, необходимые для выполнения алгоритма RSA (выбирается соответствующим образом открытый ключ e, вычисляется соответствующий закрытый ключ d как мультипликативное обратное к e). Далее с использованием этих параметров производятся зашифрование открытого текста (конкретного двухразрядного десятичного числа) и расшифрование этого зашифрованного текста.

Работа состоит из трех заданий.

Задание 1. RSA-0 - подготовка к выполнению алгоритма зашифрования открытого сообщения открытым ключом RSA-1.

Задание 2. RSA-1 - выполнение алгоритма зашифрования открытого сообщения открытым ключом RSA-1.

Задание 3. RSA-2 - выполнение алгоритма расшифрования зашифрованного сообщения секретным ключом RSA-1.

 

3.1 Теория, криптография с открытым ключом. Метод зашифрования с открытым ключом RSA

 

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

Криптографические системы с открытым ключом зависят от некоторой обратимой математической функции со специальными свойствами. Сложность вычисления такого рода функций может зависеть не линейно от числа битов в ключе, а расти более быстро. Поэтому длина ключа должна быть достаточно большой. Однако чем длиннее ключи, тем больше времени требуется для выполнения процессов зашифрования/расшифрования. Поэтому алгоритмы криптографии с открытым ключом в настоящее время, в основном, применяются в управлении ключами и приложениями цифровой подписи. Однако схема Райвеста-Шамира-Адлемана (RSA) стала единственной получившей широкое признание и практически применяемой схемой шифрования с открытым ключом [1]. Эта схема представляет собой блочный шифр, в котором и открытый текст, и шифрованный текст представляются целыми числами из диапазона от 0 до (n-1) для некоторого n.

В данной лабораторной работе мы изучим этот метод шифрования и алгоритмы вычислений, применяемых при реализации этого метода.

Операции зашифрования открытого текста и расшифрования закрытого текста в RSA состоят из операций возведения большого целого числа в большую целую степень по модулю n.

Обобщенная блок-схема генерации ключей, необходимых для алгоритма RSA приводится на рис. 3.1 (слайд 3.3).

 

Рис. 3.1. Генерация ключей для RSA

На рис. 3.2 (слайд 3.4) приводится блок-схема алгоритмов зашифрования и расшифрования для RSA.

 

Рис. 3.2. Блок-схема алгоритмов зашифровки и расшифровки для RSA

 

3.2 Алгоритм RSA

 

Далее приводятся два примера, поясняющие работу алгоритма RSA.

Пример RSA-0. Выбор целого e, взаимно простого с f(n) и меньшего, чем f(n). А также определение такого d, что de = 1 mod f(n) и d < f(n).

Это подготовительный этап для выполнения алгоритма RSA.

Из таблицы 1 приложения выбираем два простых числа p = 7 и q = 17.

Вычисляем n = p q = 7 17 = 119.

Вычисляем f(n) = (p-1) (q-1) = 6 16 = 96.

Выбираем e по условию, что gcd (e, f(n)) = 1 и 1<e<f(n) Для этого будем пользоваться расширенным алгоритмом Евклида для нахождения наибольшего общего делителя двух чисел, который при определении и уточнении, что таким делителем является 1, выдает и мультипликативное обратное для e по модулю f(n).

gcd (d, f) = gcd (e =5, f(n) = 96) = 1.

Выполняем алгоритм:

X1 = 1, X2 = 0, X3 = 96.

Y1 = 0, Y2 = 1, Y3 = 5.

Y3 0,

Y3 1.

Q = X3/Y3 = 96/5 = 19.

T1 = X1 - Q Y1 = 1 - 19 0 = 1,

T2 = X2 - Q Y2 = 0 - 19 1 = -19,

T3 = X3 - Q Y3 = 96 - 19 5 = 1.

X1 = Y1 = 0,

X2 = Y2 = 1,

X3 = Y3 = 5.

Y1 = T1 = 1,

Y2 = T2 = -19,

Y3 = T3 = 1.

Соотношения:

f