Алгоритмы шифрования DES, RSA, RC5 и AES — HackZona.Ru

Алгоритмы шифрования DES, RSA, RC5 и AES

Алгоритмы шифрования DES, RSA, RC5 и AES

Тип статьи:
Со старой ХакЗоны.
Источник:
Алгоритмы шифрования DES, RSA, RC5 и AES.
[DES]
[Теория]
Один из самых распространненыха aлгоритмов шифрования — DES (Data Encryption Standart) — разработан в середине 70-x годов. Он используется во многих криптографических системах. Это блочный алгоритм шифрования с симметричным ключом. Ключ состоит из 64 битов, но лишь 56 из них применяются непосредственно при шифровании. Оставшиеся 8 предназначены для контроля четности: они устанавливаются так, чтобы каждый из 8 байтов ключа имел нечетное значение. Шифруемая информация обрабатывается блоками по 64 бита, причем каждый блок модифицируется с помощью ключа в интерационной процедуре, включающей 16 циклов. Да, кстати, DES создалa небезизвестная компания RSA.
[Вся правда о DES]
Хочу сказать, что DES уже морально устарел :(, он так же еще может применяться в различных девайсах, программных обеспечениях (но это наврятле, хотя не исключено :)), типа: AMT — банкомат, или проще говоря сейф :). Различные транзакции и манипуляции производимые с банкоматом (AMT, и т.д.), шифруется именно им. Наверно кардеры с ним хорошо знакомы. Все дело в том, что предприятия использовали этот алгоритм долгое время и соответственно под него подстраиволось все что можно, ну короче говоря, ни хватает средств для полново перехода на этот алгоритм. Например, большое предприятие, или завод создавался долгое время, а позже он обонкротися, потому что мобильные предприятия (в Америке таких доповалом) быстро перешли на другое оборудование и т.д. Ну ладно, хрен с этой экономикой! Позже придумали некое подобие DES, это 3DES. Он отличается лишь тем, что у него как бы переходная длина ключа, то есть было в начале ~56, а стало ~64. Соответственно это очень затрудняло взлом этого алгоритма :(. Но он не слишко м отличается дырявостью от простого DES.

В данный момент при длине ключа в 56 битов алгоритм считается не устойчивым к взлому.

Для большой надежности можно задействовать алгоритм Triple-DES (http://www.inroad.kiev.ua/prog/3des.htm).

Поскольку DES — федеральный стандарт США, его обычно не используют в прогаммных продуктах, предназначенных для экспорта а если и используют то длина ключа не может привышать 56 битов.

[Что такое RC5?]

RC5 это довольно-таки быстрый блочный шифр разработанный Ривестом для RSA Data Security. Этот алгаритм параметричен, т.е. с пременным размером блока, длинной ключа и переменным числом проходов. Размер блока может быть 32, 64, или 128 битов. Количество проходов в промежутке от 0 до 2048 бит. Параметричность такого рода дает гибкость и эффективность шифрования.

RC5 состоит из ввода ключа (key expansion), шифрования и дешифрования. При вводе ключа вводятся также количество проходов, размер блока и т.д. Шифрование состоит из 3 примитвных операций: сложения, побитового XOR и чередования (rotation). Исключительная простота RC5 делает его простым в использовании, RC5 текст, также как и RSA, может быть дописан в конец письма в зашифрованном виде.

Безопасность RC5 основывается на зависящем от данных чередованием и смешиванием результатов различных операций. RC5 с размером блока 64 бита и 12 или более проходов обеспечивает хорошую стойкость против дифференциального и линейного криптанализов

[Что такое RSA]

RSA — один из первых и весьма популярный алгоритм шифрования с открытым ключом — разработан основателями фирмы RSA (Rivest, Shmir, Adleman) в конце 70-x годов и назван по первымбуквам их фамилий.

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

Cейчас ключи длиной 512 битов рассматриваются как недостаточно устойчивые, поэтому в криптографическом программном обеспечении рекомендуются 768 или 1024 битные ключи.

Часто используют комбинированный подход: сначала сообщение кодируются с помощью некоторого ключа по алгоритму типа DES, а затем ключ зашифровывается с применением RSA и передается вместе с закодированным сообщением. Это позволяет достичь высокой скорости обработки информации и в то же время обеспечивает надежную ее защиту.

Краткие основы RSA:
1. Выбираются большие простые числа M и N;
2. Вычисляется их произведение: Q=MxN;
3. Выбирается число D, которое должно быть взаимно простым с результатом умножения (M-1)x(N-1), т.е. не должно иметь с ним общих делителей, отличных от единицы;
4. Вычисляется число A из выражения (AxD) mod [(M-1)x(N-1)]=1;

Таким образом, пара чисел (A,Q) будет твоим открытым ключом, а пара чисел (D,Q) — закрытым ключом. Понятно, что открытым ключом можно только закодировать исходный текст, для того, чтобы его раскодировать, нужен закрытый ключ.
Кодирование числа P: C=M^A mod Q;
Обратная операция: P=C^D mod Q;

Так вот, для того, чтобы поломать PGP (сиречь RSA), необходимо и достаточно уметь разложить число Q (которое мы возьмем, понятно, из открытого ключа, помещенного человеком в бурные воды, скажем, Fido и/или Internet) на простые множители. Вот тут-то и начинается самое интересное.

Простые множители числа — летопись в теории чисел, над ними бились многие математики. о увы, так ничего толком и не добились. В математике не существует_ теорем, могущих надежно предсказать, является ли число простым.

Есть теоремы, которые могут быстро установить, что число составное, но если условия теоремы не выполняются, то это не значит, что число простое: это значит, что оно ВРОДЕ БЫ простое, и надо применять более сильные теоремы, которые, увы, на машине проверяются только перебором. Далее, нет теорем, которые помогают хотя бы оценить количество простых сомножителей числа и порядок их величины.

Так что реально число из, скажем, трехсот десятичных знаков разложить на простые множители (если они, правда не лежат близко к корню из числа и т.д. — есть легкие случаи) за разумное время нереально.

Так, программа на 386SX40 раскладывает число из 17 десятичных знаков за время, близкое к трем минутам, но время ее работы есть P*exp(n), т.е. число из 300 знаков она будет раскладывать в exp(280) раз дольше (это около 5.1*10^279). Естественно, что если взять более быстрое точило, Cray, к примеру, то будет побыстрее… :) о все равно не слишком. Правда, есть более быстрые алгоритмы, решето Сива, например, но они хороши, когда сомножители лежат близко к корню, и требуют дикое количество памяти.

[AES]
Это альтернатива DES :). На сегодняйший день, не замечано взломов этого алгоритма. Ну если и замечано, то его взломов почти нет :). Он стал применятьтся в новых девайсах, в прогах. Все в скором времени должны на него перейти. AES применяется в WI-FI, длина ключа у него, если не ошибаюсь около 128 Бит. Судить тебе, что надежнее :).
Нравится
Не нравится

Комментарии

Нет комментариев. Ваш будет первым!