Реализация алгоритма криптозащиты Эль-Гамаля
МИНИСТЕРСТВО
РОССИЙСКОЙ ФЕДЕРАЦИИ
ПО СВЯЗИ И
ИНФОРМАТИЗАЦИИ
Московский
технический университет связи и информатики
Курсовая
работа
Реализация алгоритма криптозащиты
Эль-Гамаля
Москва 2012
Оглавление
1. Об алгоритме Эль-Гамаля
. Реализация
Список используемой литературы
1. Об алгоритме Эль-Гамаля
История
Схема была предложена Тахером Эль-Гамалем в 1984 году. Эль-Гамаль
разработал один из вариантов алгоритма Диффи-Хеллмана. Он усовершенствовал
систему Диффи-Хеллмана и получил два алгоритма, которые использовались для
шифрования и для обеспечения аутентификации. В отличии от RSA алгоритм
Эль-Гамаля не был запатентован и, поэтому, стал более дешевой альтернативой,
так как не требовалась оплата взносов за лицензию. Считается, что алгоритм попадает
под действие патента Диффи-Хеллмана.
Алгоритм
Алгоритм Эль-Гамаля- двухключевой алгоритм, предназначен как для
шифрования/ дешифрования сообщений, так и для генерации электронной подписи. В
основе секретности алгоритма лежит высокая сложность операций вычисления
целочисленных логарифмов по сравнению с операцией возведения в степень в
конечных полях.
При использовании алгоритма Эль-Гамаля для шифрования информации
зашифрованное сообщение будет иметь вдвое больший размер по сравнению с
исходным.
Генерация ключей
Для генерации пары ключей, - открытого и индивидуального, - необходимо
выбрать большое простое число p и
два произвольных числа g и d:
Далее следует вычислить:
Открытый ключ составляют числа Z, g, и p, причем g и p могут быть общими для группы
пользователей.
Индивидуальным (закрытым) ключом является число d.
Шифрование
Для шифрования сообщения X
выбирается произвольное число V,
взаимно простое с (p-1), и
вычисляется:
Y1 и Y2 составляют зашифрованное сообщение,
его размер вдвое превышает размер шифруемого исходного сообщения X.
Дешифрование
Дешифрование производится в соответствии с выражением:
Поскольку:
т.е. восстановленное сообщение X’ адекватно исходному сообщению X.
2. Реализация
Реализуем алгоритм шифрования / дешифрования Эль-Гамаля средствами
процессора ADSP-2181 в расширенных полях Галуа.
В качестве учебной модели будем работать с трех регистровыми числами.
Для этого возьмём примитивный полином
Выберем числа g, d и V:
Когда открытый и закрытый ключи известны можно приступать к
непосредственному написанию программы на ассемблере процессора ADSP-2181.
Таблица необходимых функций:
umn_AxB подпрограмма
умножения двух 64 разрядных чисел по модулю . Входные
параметры:[4](множитель 1), B[4](множитель 2). Выходные
параметры:
result_umn[4](результат подпрограммы).
Портит
содержание регистров:sr1,sr0, si, ay1, ay0, ar,
nakopl_bank подпрограмма
накопления банка степеней числа N до ()
степени. Входные
параметры:
N[4](число возводимое в степени).
Выходные
параметры: rezult_bank[260](банк).
Портит
содержание регистров:sr1, sr0, si, ay1, ay0,
ar, ax1
|
|
vozvedenie_v_stepen
|
подпрограмма возведения в
степень. Входные данные: F[4](степень), N[4](число), FL[1](флаг
перезаполнения банка). Выходные данные: rezult_vozvedenia[4]. Портит
содержание регистров: sr1, sr0, si, ay1, ay0, ar, ax1
|
Таблица массивов:
Массив
|
Обозначение начального
адреса
|
Размер буфера
|
Описание
|
rezult_bank
|
I0
|
260
|
Банк степеней
|
A
|
I1
|
4
|
Множитель A, операции умножения
|
result_umn
|
I2
|
4
|
B
|
I3
|
4
|
Множитель В, операции умножения
|
N
|
I4
|
4
|
Число возводимое в степень
|
X
|
I5
|
4
|
Входной блок информации
|
rezult_vozvedenia
|
I6
|
4
|
Результат возведения в
степень
|
F
|
I5
|
4
|
Степень
|
Z
|
-
|
4
|
Открытый ключ Z
|
Y1
|
-
|
4
|
Первая часть зашифрованного
сообщения
|
Y2
|
-
|
4
|
Вторая часть зашифрованного
сообщения
|
P
|
-
|
4
|
Число P
|
g
|
-
|
4
|
Число g
|
d
|
-
|
4
|
Число d
|
V
|
-
|
4
|
Число V
|
tmp
|
-
|
1
|
Временная переменная
|
Блок-схемы
криптозащита эль гамаля шифрование
Список используемой литературы
1.Шаврин С.С.
Защита информации в многоканальных телекоммуникационных системах. часть 1.
.Шаврин С.С.
Защита информации в многоканальных телекоммуникационных системах. часть 2.