Delphi - сбориник статей

       

Популярные алгоритмы


До этого мы говорили о каких-то абстрактных алгоритмах, а теперь настало время назвать их по именам. Среди симметричных алгоритмов можно выделить алгоритм DES (разработанный фирмой IBM и утвержденный в 1977 году правительством США как официальный стандарт. Блочный алгоритм. Несмотря на популярность, алгоритм уязвим, истории известны случаи взлома), 3-DES, который на самом деле представляет собой ни что иное, как тройное шифрование DES тремя ключами, RC2 (блочный), RC4 (потоковый), IDEA (блочный). У каждого из них свои достоинства и недостатки.

Среди асимметричных алгоритмов следует выделить RSA, названный в честь Рона Ривеста, Ади Шамира и Лена Адельмана, разработавших алгоритм в 1977 году. Идея алгоритма заключается в следующем: перемножить два числа намного проще, чем разложить произведение на множители. Об этом алгоритме я расскажу поподробнее.

  1. Для начала нужно сгенерировать два больших простых числа p и q.
  2. Найти n=pq.
  3. Выбрать число e (обычно порядка 10000) взаимно простое с phi=(p-1)(q-1), т.е. числа e и phi не имеют никаких общих делителей, кроме 1.
  4. Генерируется число d такое, что ed=1(mod phi) - запись означает, что (ed-1) делится на phi.
  5. Числа n и е публикуются как открытый ключ, а число d держится в строжайшей тайне - это закрытый ключ. Числа p и q желательно либо уничтожить, либо также хранить в тайне.

Сообщение зашифровывается по формуле y=xe(mod n), где x - исходное сообщение, а y - зашифрованное. Расшифровывается с помощью закрытого ключа d следующим образом: x=yd(mod n). Надежность алгоритма заключается в том, что для восстановления закрытого ключа d необходимо знать числа p и q. Их можно получить, разложив на множители число n, но если числа p и q достаточно большие, то эта задача становится практически неразрешимой. В настоящий момент рекомендуют выбирать p и q такие, чтобы произведение n было не короче 1024 бит.

Ну, и среди алгоритмов хеширования можно назвать следующие: MD4 (128-разрядный отпечаток), MD5 (Разработан в 1991 году, 128-разрядный отпечаток, пришел на смену MD4, в 2004 году в алгоритме обнаружена уязвимость, позволяющая довольно быстро находить коллизии), SHA-1 (Разработан в 1995 году, 160-разрядный отпечаток, долгое время был наиболее популярным, однако в начале 2005 года с ним произошло то же самое, что и с MD5. Брюс Шнайер заявил: " SHA-1 has been broken"), SHA-224, SHA-256, SHA-384, SHA-512.



Содержание раздела