Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Защита Информации - шпоры.docx
Скачиваний:
21
Добавлен:
22.09.2019
Размер:
1.73 Mб
Скачать
  1. Система распределения ключей Диффи-Хелмана

Первой системой распределения открытых ключей, позволяющая своим пользователям обмениваться секретными ключами по незащищенным каналам связи стала система Диффи-Хелмана, разработанная в 1976 году и построенная на задаче о дискретном логарифмировании.

Пример:

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

Пусть N – некое большое целое число, G – другое целое число такое, что 1 < G < N-1

Процедура обмена ключами:

  1. В начале А и Ю договариваются о значениях N и G; как правило эти значения стандартны для всех пользователей системы.

  2. Затем А выбирает некое большое целое число X и вычисляет XX = G^X mod N. Аналогичным образом Ю выбирает число Y и вычисляет YY = G^Y mod N. После этого они обмениваются XX и YY. Будем считать, что Мюллер их перехватил. Числа X и Y А и Ю хранят в секрете.

  3. Получив от Ю число YY Алекс вычисляет k(1) = YY^X mod N, а Ю k(2)=XX^Y mod N.

YY^X mod N = G(X*Y) mod N = XX^Y mod N

k(1) = k(2) = k

Злоумышленник перехватил G, N, XX,YY и хочет определить k и его задача сводится к определению некого X’ такого, что G^X’ mod N = XX, поскольку в этом случае YY^X’ mod N = k

Однако X’ задача дискретного логарифмирования, которая является неразрешимой.

Система Диффи-Хелмана позволяет прийти к соглашению k. Однако система не влияет на то, как будет шифроваться информация. В качестве которой может быть использована любая система.

Если Юстас или даже Мюллер хочет послать информацию Алексу, то он ищет в каталоге ключе алгоритм Е и использует его для шифрования передаваемой информации. А расшифровать сообщение сможет только Алекс, так как только у него есть алгоритм расшифрования D

D(E(M)) = M

Очевидно, что E и D должны удовлетворять условиям для любого сообщения M:

Здесь как для традиционных криптосистем требуется получить эффективны алгоритмы E и D. При этом необходимо, чтобы алгоритм E представлял функцию с черным входом, то есть знание алгоритма E не позволяло реализовать D.

Системы с открытым ключом могут быть реализованы, если подобрана однонаправленная функция с черным входом. Учитывая, что доказательств однонаправленности не существует.

При выборе кандидатов на однонаправленную функцию необходимо соблюдать осторожность, подкрепленную результатами тестирования.

  1. Система криптографической защиты rsa

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

Под простым числом понимают число, делящееся только на 1 и на само себя.

Взаимопростые числа – не имеют общего делителя, кроме 1.

Для того, чтобы использовать алгоритм RSA необходимо сгенерировать открытый и закрытый ключи, выполнив следующие шаги:

  1. Выберем 2 простых очень больших числа p и g.

  2. Определим n как результат n = p*g

  3. Выберем большое случайное число D, которое должно быть взаимопростым с результатом умножения (p-1)*(q-1)

  4. Определяем число e, такое, чтоб для него было истинным соотношение

(e*d) mod (p-1)(q-1) = 1

  1. Числа e и n назовем открытым ключом, d и n - секретным.

Чтобы зашифровать данные по известному ключу e,n необходимо сделать следующее:

- Разбить шифруемый текст на блоки, каждый из которых может быть представлен в виде числа M(i).

- Зашифровать текст, рассматриваемый как последовательность чисел M(i) по формуле: C(i) = (M(i)^e) mod n

Чтобы расшифровать эти данные используется секретный ключ d, n и выполняются вычисления M(i) – (C(i)^d) mod n

В результате получено число M(i), представляющее исходный текст.

Пример: САВ

  1. p=3, q=11

  2. n=3*11 = 33

  3. (p-1)(q-1) = 20 d = 3

  4. (e*3) mod 20 = 1 e = 7

  5. A-1, B-2, C-3 312

C(1) = (3^7) mod 33 = 2187 mod 33 = 9

C(2) = (1^7) mod 33 = 1 mod 33 = 1

C(3) = (2^7) mod 33 = 128 mod 33 = 29

9129 – шифровалось по ключу (7, 33)

Для расшифрования ключ (3, 33)

M1 = (9^3) mod 33 = 729 mod 33 = 3

M2 = (1^3) mod 33 = 1

M3 = (29^3) mod 33 = 24389 mod 33 = 2

312 – CAB

Криптостойкость алгоритма RSA основана на предположении, что сложно определить ключ по известному, так как надо решить задачу о существовании делителей числа.

Известные алгоритмы для решения задачи имеют экспоненциальную оценку вычислительной сложности.

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

В связи с этим для чисел, состоящих из 200 цифр (рекомендуется).

Традиционные методы требуют выполнения огромного числа операций