Анимация
JavaScript


Главная  Библионтека 

0 1 2 3 4 5 6 [ 7 ] 8 9 10 11 12 13

ШТ2 = (f) (mod 33) = 1 (mod 33) = 1, ШТЗ = (2) (mod 33) = 128 (mod 33) = 29.

6. Расшифруем полученное зашифрованное сообщение (9,1,29) на основе закрытого ключа {3,33}:

ИТ1 = (9) (mod 33) = 729 (mod 33) = 3,

ИТ2= (1) (mod 33) = 1 (mod 33) = 1,

ИТЗ = (29) (mod 33) = 24389 (mod 33) = 2.

Итак, в реальных системах алгоритм RSA реализуется следующим образом: каждый пользователь выбирает два больших простых числа, и в соответствии с описанным выше алгоритмом выбирает два простых числа е и <i. Как результат умножения первых двух чисел (р и ) устанавливается п.

(е,п} образует открытый ключ, а (d,n} - закрытый (хотя можно взять и наоборот).

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

Практическая реализация RSA

В настоящее время алгоритм RSA активно реализуется как в виде самостоятельных криптографических продуктов, так и в качестве встроенных

Средств в популярных приложениях .

Важная проблема практической реализации - генерация больших простых чисел. Решение задачи «в лоб» - генерация случайного большого числа п (нечетного) и проверка его делимости на множители от 3 вплоть до п. В случае неуспеха следует взять п+2 и так далее.

В принципе в качестве р и q можно использовать «почти» простые числа, то есть числа для которых вероятность того, что они простые, стремится к 1. Но в случае, если использовано составное число, а не простое, криптостойкость RSA падает. Имеются неплохие алгоритмы, которые позволяют генерировать

О-100

«почти» простые числа с уровнем доверия 2

Другая проблема - ключи какой длины следует использовать!

Для практической реализации алгоритмов RSA полезно знать оценки трудоемкости разложения простых чисел различной длины, сделанные Шроппе-лем.

Например, в наплумевшей программе PGP В браузерах Интернет от Microsoft и Netscape

° В теории чисел показано, что вероятность того, что число порядка п будет простым составляет 1/1п п



loglOn

Число операций

примечания

1.4*10°

Раскрываем на суперкомпьютерах

2.3*10

На пределе современных технологий

1.2*10

За пределами современных технологий

2.7*10

Требует существенных изменений в технологии

1.3*10

Не раскрываем

в конце 1995 года удалось практически реализовать раскрытие шифра RSA для 500-значного ключа. Для этого с помош,ью сети Интернет было задействовано 1600 компьютеров.

Сами авторы RSA рекомендуют использовать следующие размеры модуля

• 768 бит - для частных лиц;

• 1024 бит - для коммерческой информации;

• 2048 бит - для особо секретной информации.

Третий немаловажный аспект реализации RSA - вычислительный. Ведь приходится использовать аппарат длинной арифметики. Если используется ключ длиной к бит, то для операций по открытому ключу требуется О(к) операций, по закрытому ключу - О(к) операций, а для генерации новых ключей требуется 0(к) операций.

Криптографический пакет BSAFE 3.0 (RSA D.S.) на компьютере Pentium-90 осуществляет шифрование со скоростью 21.6 Кбит/с для 512-битного ключа и со скоростью 7.4 Кбит/с для 1024 битного. Самая «быстрая» аппаратная реализация обеспечивает скорости в 60 раз больше.

По сравнению с тем же алгоритмом DES, RSA требует в тысячи и десятки тысяч раз большее время.

Криптосистема Эль-Гамаля

Данная система является альтернативой RSA и при равном значении клю-

ча обеспечивает ту же криптостойкость .

В отличие от RSA метод Эль-Гамаля основан на проблеме дискретного логарифма. Этим он похож на алгоритм Диффи-Хелмана. Если возводить число в степень в конечном поле достаточно легко, то восстановить аргумент по значению (то есть найти логарифм) довольно трудно.

Основу системы составляют параметры /? и g - числа, первое из которых -простое, а второе - целое.

Александр генерирует секретный ключ а и вычисляет открытый ключ у = mod p. Если Борис хочет послать Александру сообщение т, то он выбирает случайное число к, меньшее р и вычисляет

yi = gmodp и У2 = т® /,

" Данные оценки сделаны с учетом развития вычислительной техники вплоть до 2004 года. Однако общего мнения по поводу предпочтительности того или иного метода нет.



где © означает побитовое сложение по модулю 2. Затем Борис посылает (У1,У2) Александру.

Александр, получив зашифрованное сообш,ение, восстанавливает его:

т = (у/" mod р)@у2.

Алгоритм цифровой подписи DSA, разработанный NIST (National Imtitute of Standard and Technology) и являюш,ийся частью стандарта DSS частично опирается на рассмотренный метод.

Криптосистемы на основе эллиптических уравнений

Эллиптические кривые - математический объект, который может определен над любым полем (конечным, действительным, рациональным или комплексным). В криптографии обычно используются конечные поля. Эллиптическая кривая есть множество точек (х,у), удовлетворяющее следующему уравнению:

У = X + ах + Ь,

а также бесконечно удаленная точка. Для точек на кривой довольно легко вводится операция сложения, которая играет ту же роль, что и операция умножения в криптосистемах RSA и Эль-Гамаля.

В реальных криптосистемах на базе эллиптических уравнений используется уравнение

у = X + ах + b mod р,

где р - простое.

Проблема дискретного логарифма на эллиптической кривой состоит в следующем: дана точка G на эллиптической кривой порядка г (количество точек на кривой) и другая точка Y на этой же кривой. Нужно найти единственную точку X такую, что Y = xG, то есть Y есть х-я степень G.



0 1 2 3 4 5 6 [ 7 ] 8 9 10 11 12 13