Автор работы: Пользователь скрыл имя, 29 Ноября 2011 в 17:58, контрольная работа
Зашифровать сообщение одним из следующих методов:
Согласно варианту № 18 дано:
Сообщение № 3: Правила разграничения доступа служат для регламентации права доступа субъекта доступа к объекту доступа.
0560
6227
1967
2134
5600
5751
Получим криптограмму: С = ( , )
С= | 1003 | 0560 | 6227 | 1967 | 2134 | 5600 | 5751 |
С1 | С2 | С3 | С4 | С5 | С6 | С7 | |
5.
Для дешифрования нужно
В результате имеем:
5764996751347925346
Задание №4
Сформировать и проверить ЭЦП Эль Гамаля при следующих начальных условиях:
Решение:
Вычисляем значение открытого ключа:
Предположим, что исходному сообщению M соответствует хэш-значение m = 5.
Для того, чтобы вычислить цифровую подпись под сообщением M, имеющем хэш-значение m = 5, сначала выберем случайное целое число K = 7. Убедимся, что числа K и (P – 1) являются взаимно простыми. Действительно,
НОД (7, 30) = 1.
Далее вычисляем элементы a и b подписи:
элемент b определяем, используя расширенный алгоритм Евклида:
При m = 5, a = 4, X = 7, K = 7, P = 31 получаем
Решая сравнение, получаем b =1. Цифровая подпись представляет собой пару: а = 4, b = 1.
Далее отправитель передает подписанное сообщение. Приняв подписанное сообщение и открытый ключ Y = 4, получатель вычисляет хэш-значение для сообщения M : m = 5, а затем вычисляет два числа:
1)
2)
Так как эти два целых числа равны, принятое получателем сообщение признается подлинным.
Следует
отметить, что схема Эль Гамаля является
характерным примером подхода, который
допускает пересылку сообщения M в
открытой форме вместе с присоединенным
аутентификатором (a,b). В таких случаях
процедура установления подлинности принятого
сообщения состоит в проверке соответствия
аутентификатора сообщению.
Задание №5
Реализовать алгоритм открытого распределения ключей Диффи-Хеллмана при следующих начальных условиях:
модуль N=59
примитивный элемент g=37
секретные ключи пользователей Ка
=13 и Кв=41
Решение.
Для того, чтобы иметь общий секретный
ключ К, пользователи А и В сначала
вычисляют значения частных открытых
ключей:
yA
=
yВ
=
После
того, как пользователи А и
В обменяются своими значениями
yA и yВ
, они вычисляют общий секретный ключ
К = (mod N)= (mod N)= 5713(mod 59) = 741 (mod 59) =
= 2613*41 (mod 59)=9
Кроме того, они находят секретный ключ расшифрования, решая следующее сравнение:
К × К* º 1 (mod N –1),
9 × К*º 1 (mod 58)
откуда К* = 13
Если сообщение М =16, то криптограмма:
С = МК (mod N) =169 (mod 59) = 49
Получатель восстанавливает сообщение :
М = СК* (mod N) = 4913 (mod 59) = 16
Злоумышленник, перехватив значения N, g, yА и yВ, тоже хотел бы определить значение ключа К. Очевидный путь для решения этой задачи состоит в вычислении такого значения kА по N, g, yА, что mod N = yА (поскольку в этом случае, вычислив kА, можно найти К= mod N). Однако нахождение kА по N, g и yА – задача нахождения дискретного логарифма в конечном поле, которая считается неразрешимой.
Выбор значений N и g может иметь существенное влияние на безопасность этой системы. Модуль N должен быть большим и простым числом. Число (N –1)/2 также должно быть простым числом. Число g желательно выбирать таким, чтобы оно было примитивным элементом множества ZN.
Алгоритм
открытого распределения ключей
ДиффиХеллмана позволяет обойтись без
защищенного канала для передачи ключей.
Однако, работая с этим алгоритмом, необходимо
иметь гарантию того, что пользователь
А получил открытый ключ именно от
пользователя В, и наоборот. Эта проблема
решается с помощью электронной подписи,
которой подписываются сообщения об открытом
ключе.
Литература
4.Грибунин
В.Г., Оков И.Н., Туринцев И.В. Цифровая стеганография.
М.: СОЛОН-Пресс, 2002 г.