Асимметричные криптоалгоритмы

Всего за 30 лет асимметричная криптография превратилась в одно из основных направлений криптологии и используется в ИТ так же часто, как и симметричные криптосистемы.

Алгоритм шифрования RSA

Криптоалгоритм RSA предложили в 1978 г. три автора: Р. Райвест (Rivest), А. Шамир (Shamir) и А. Адлеман (Adleman). Алгоритм получил свое название по первым буквам фамилий его авторов. Он стал первым алгоритмом с открытым ключом, который может работать как в режиме шифрования данных, так и в режиме электронной цифровой подписи.
Надежность алгоритма RSA основывается на трудности факторизации больших чисел и трудности вычисления дискретных логарифмов в конечном поле.
В алгоритме RSA открытый ключ Кв, секретный ключ кв, сообщение М и криптограмма С принадлежат множеству целых чисел
ZN={0, 1, 2, …, N-1},
где N — модуль:
N=PQ,
а Р и Q — случайные большие простые числа. Для обеспечения максимальной безопасности выбирают Р и Q равной длины и хранят в секрете.
Множество ZN с операциями сложения и умножения по модулю N образует арифметику по модулю N.

Открытый ключ Кв используют для шифрования данных, а секретный ключ кв — для расшифровывания.

Процедура шифрования определяет криптограмму С через пару в, М) в соответствии со следующей формулой:

С = ЕКв (М) = Мк« (mod N).

В качестве алгоритма быстрого вычисления значения С используют ряд последовательных возведений в квадрат целого М и умножений на М с приведением по модулю N.

Расшифровывание криптограммы С выполняют, используя пару в, С).


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

В асимметричной криптосистеме RSA количество используемых ключей связано с количеством абонентов линейной зависимостью (в системе из N пользователей используются 2N ключей), а не квадратичной, как в симметричных системах.

Следует отметить, что быстродействие RSA существенно ниже быстродействия DES, а программная и аппаратная реализация криптоалгоритма RSA гораздо сложнее, чем DES. Поэтому криптосистема RSA, как правило, используется при передаче небольшого объема сообщений.

Отечественный стандарт хэширования ГОСТ Р 34.11—94

Отечественным стандартом генерирования хэш-функции является алгоритм ГОСТ Р 34.11—94. Этот стандарт является обязательным для применения в качестве алгоритма хэширования в государственных организациях РФ и ряде коммерческих организаций. Коротко данный алгоритм хэширования можно описать следующим образом (рис. 6.10).

image048

Шаг 1. Инициализация регистра хэш-значения. Если длина сообщения не превышает 256 бит — переход к шагу 3, если превышает — переход к шагу 2.

Шаг 2. Итеративное вычисление хэш-значения блоков хэши-руемых данных по 256 бит с использованием хранящегося в регистре хэш-значения предыдущего блока. Вычисление включает в себя следующие действия:

• генерацию ключей шифрования на основе блока хэшируе-мых данных;

• зашифровывание хранящегося в регистре хэш-значения в виде четырех блоков по 64 бита по алгоритму ГОСТ 28147—89 в режиме простой замены;

• перемешивание результата.

Вычисление производится до тех пор, пока длина необработанных входных данных не станет меньше или равной 256 бит. В этом случае — переход к шагу 3.

Шаг 3. Дополнение битовыми нулями необработанной части сообщения до 256 бит. Вычисление хэш-значения аналогично шагу 2. В результате в регистре оказывается искомое хэш-значение.


Эта статья была опубликована Пятница, 4 сентября, 2009 at 14:24 в рубрике Криптографические алгоритмы. Вы можете следить за ответами через RSS 2.0 feed.

Написать ответ