КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Криптосистема Эль-Гамаля
Данная система является альтернативой алгоритму RSA и при равном значении ключа обеспечивает ту же криптостойкость. Эль-Гамаль (Taher Elgamal) усовершенствовал алгоритм Диффи-Хеллмана и получил алгоритмы для шифрования и для обеспечения аутентификации. Алгоритм основан на проблеме поиска дискретного логарифма. Если возводить целое число в степень достаточно легко, то восстановить целочисленный аргумент по значению (то есть найти логарифм) довольно трудно. Для генерации пары ключей сначала выбирается простое число p и два случайных числа, g и x, оба меньше p. Затем вычисляется y = gx mod p. Открытым ключом являются y, g и p. Величины g, и p можно сделать общими для группы пользователей. Закрытым ключом является x. Для шифрования сообщения M сначала выбирается случайное число k, взаимно простое с (p – 1). Затем вычисляются a = gk mod p, b = yk M mod p. Пара (a, b) является шифротекстом. Получаемый шифротекст в два раза длиннее открытого текста. Для дешифрирования (a, b) вычисляется M = b / ax mod p. Так как ax ≡ gkx (mod p) и b/ax ≡ yk M/ax ≡ gxk M/ gkx = M (mod p), то все действительно так и получается. Или иначе: ax mod p = yk mod p (gk mod p)x mod p = (gx mod p) k mod p. Каждая подпись или шифрование алгоритмом ELGamal требует нового значения k, и это значение должно быть выбрано случайным образом. Если когда-нибудь злоумышленник раскроет k, он сможет раскрыть закрытый ключ x. Если злоумышленник когда-нибудь сможет получить два сообщения, подписанные или зашифрованные с помощью одного и того же k, то он сможет раскрыть x, даже не зная значение k. Рассмотрим алгоритм криптосистемы Эль-Гамаля. Выбираем открытый ключ p и g: p простое число (может быть общим для группы пользователей), g < p (может быть общим для группы пользователей). Выбираем закрытый ключ x < p. Вычисляем y =gx mod p. Шифрование: выбираем случайное k, которое взаимно простое с p –1; a (шифротекст) =gk mod p, b (шифротекст)= M (yk mod p). Дешифрирование: M (открытый текст) = b / ax mod p. Приведем пример использования метода Эль-Гамаля для шифрования сообщения 2, 5, 7. Для простоты вычислений будем использовать маленькие числа (на практике используются числа существенно большие). 1. Выберем простое число p =19; g= 5 (g < p); k =13 (взаимно простое с p –1); x =11. 2. Вычисляем y =gx mod p =511mod 19=6. 3. Шифруем сообщение a=gk mod p= 513 mod 19=17, b1 = M1 (yk mod p)=2 (613 mod 19)=8, b2 = M2 (yk mod p)=5 (613 mod 19)=20, b3 = M1 (yk mod p)=7 (613 mod 19)=28. 4. Дешифрование сообщения M1 = b1 /(ax mod p)=8/(1711mod 19)=8/4=2, M2 = b2 /(ax mod p)=20/(1711mod 19)=20/4=5, M3 = b3 /(ax mod p)=28/(1711mod 19)=28/4=7. Необходимо отметить, что операции возведения в степень больших чисел достаточно трудоемки для современных процессоров, даже если они производятся по оптимизированным по времени алгоритмам. Так быстродействие RSA в тысячу раз ниже, чем у DES или ГОСТ 28147-89. Поэтому обычно весь текст сообщения кодируется обычным блочным шифром (симметричным алгоритмом), намного более быстрым, но с использованием ключа сеанса, а вот сам ключ сеанса шифруется как раз асимметричным алгоритмом с помощью открытого ключа получателя и помещается в начало файла. Такой механизм называют цифровым конвертом. При использовании симметричной и асимметричной криптографии длины ключей должны выбираться так, чтобы вскрыть любой из компонентов системы было одинаково трудно. Необходимо отметить, что длина открытых ключей существенно больше ключей для симметричных алгоритмов (табл. 6). Таблица. 6. Длины симметричных и открытых ключей
Дата добавления: 2014-01-15; Просмотров: 6250; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |