Длина шифротекста в схеме Эль-Гамаля вдвое длиннее ис- ходного сообщения
M.
Расшифрование
Зная закрытый ключ
x, исходное сообщение можно вычис- лить из шифртекста (
a,
b) по формуле:
M =
b(
ax)
–1 mod
p. При этом нетрудно проверить, что (
ax)
–1
g–kx (mod
p), и поэтому
b(
ax)
–1 (
yxN)
g–xk (
gxkM)
g–xk
M (mod
p).
Для практических вычислений больше подходит следующая формула:
M =
b(
ax)
–1 mod
p = ba(p–1–x) mod
p (рис. 6.1).
Рис. 6.1
Содержание заданий
Разработайте программу, имитирующую реализацию элемен- тов метода криптографической защиты информации Эль-Гама- ля. Программа должна выполнять генерацию ключей, шифрова- ние и расшифрование сообщения. В
качестве сообщения исполь- зуйте свою фамилию.
П р и м е ч а н и е.
P – двузначное число,
G,
X – однозначные.
Контрольные вопросы
Что такое криптосистемы с открытым ключом?
Отличие схемы Эль-Гамаля от RSA?
Перечислите преимущества и недостатки алгоритма Эль-Га- маля?
Отчетность по практической работе
Распечатать код программы с подробными его комментари- ями и результатами выполнения программы.
ПРАКТИЧЕСКАЯ РАБОТА 7
РЕАЛИЗАЦИЯ ЭЛЕМЕНТОВ СХЕМЫ ШИФРОВАНИЯ
ГОСТ 28147–89
Цель работы: формирование умений шифрования с
исполь- зованием алгоритма шифрования ГОСТ 28147–89.
Теоретические сведения
Термины и обозначения
Описание стандарта шифрования Российской Федерации со- держится в документе, озаглавленном «Алгоритм криптографичес- кого преобразования ГОСТ 28147–89». То, что в его названии вме- сто термина «шифрование» фигурирует более общее понятие
«
криптографическое преобразование» вовсе не случайно. Помимо нескольких тесно связанных между собой процедур шифрования, в
документе описан один построенный на общих принципах с ни- ми алгоритм выработки
имитовставки. Последняя является не чем иным, как криптографической контрольной комбинацией, то есть кодом, вырабатываемым из исходных данных с использова- нием секретного ключа с целью
имитозащиты, или защиты дан- ных от внесения в
них несанкционированных изменений.
На различных шагах алгоритмов ГОСТа данные, которыми они оперируют, интерпретируются и используются различным об- разом. В некоторых случаях элементы данных обрабатываются как массивы независимых битов, в других случаях – как целое число без знака, в третьих – как имеющий структуру сложный элемент, состоящий из
нескольких более простых элементов. Поэтому во избежание путаницы следует договориться об используемых обо- значениях.
Элементы данных в настоящем пособии обозначаются заглав- ными латинскими буквами с наклонным начертанием (например,
X). Через
|X| обозначается размер элемента данных
X в битах. Таким образом, если интерпретировать элемент данных
X как целое неотрицательное число, можно записать следующее нера-
венство: 0
X 2
X .
Если элемент данных состоит из
нескольких элементов мень- шего размера, то этот факт обозначается следующим образом:
X = (
X0,
X1, …,
Xn – 1)
= X0 ||
X1 || … ||
Xn – 1. Процедура объедине- ния нескольких элементов данных в один называется
конкатена- цией данных и обозначается символом «||». Естественно, для раз- меров элементов данных должно выполняться следующее соот- ношение:
|X| = |X0| + |X1| + … + |Xn – 1|. При задании сложных элементов данных и операции конкатенации составляющие эле- менты данных перечисляются в порядке возрастания старшин- ства. Иными словами, если интерпретировать составной элемент и все входящие в
него элементы данных как целые числа без знака, то можно записать следующее равенство:
X ,
X , ...,
X
X ||
X || ... ||
X
X 2
|X 0|
исключающего ИЛИ, она же – операция суммирования по моду- лю 2:
a
b (
a
b) mod 2.
Логика построения шифра и структура ключевой ин- формации ГОСТа
В ГОСТе 28147–89 содержится описание алгоритмов не- скольких уровней. На самом верхнем находятся практические алгоритмы, предназначенные для шифрования массивов данных и выработки для них имитовставки. Все они опираются на три алгоритма низшего уровня, называемые в тексте ГОСТа
цикла- ми. Эти фундаментальные алгоритмы упоминаются в данной статье как базовые циклы, чтобы отличать их от всех прочих циклов. Они имеют следующие названия и обозначения, послед-
ние приведены в скобках, и смысл их будет объяснен позже: