.
Обзор алгоритмов шифрования.
Автор megabax   
16.05.2014 г.
В этой статье будет пошагово описано создание на Delphi приложение

Обзор алгоритмов шифрования.

В этот статье речь пойдет о наиболее распространенных алгоритмах шифрования.

DES (Data Encryption Standart). Это стандарт шифрования данных, который был разработан еще в 1974 году компанией IBM. В США этот стандарт используется для шифрования данных без особых требований к степени секретности.  Иными словами, если данные - военная тайна, то этот алгоритм для шифрования таких данных НЕ подойдет.  Функции шифрования и дешифрования используют ключ, без которого пользователи не смогут дешифровать сообщение. Этот ключ, который генериться из введенного пароля и другой инфы, имеет размер 64 бита. 56 разряда ключа используют для шифрования, остальные 8 - для проверки ошибок. Общее количество возможных ключей весьма велико.  Это 256=72 057 594 037 927 936.

Единственный способ взломать такой алгоритм - это проверить все все возможные ключи, при известных входных и выходных данных.

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

MD4 или MD5. Алгоритмы резюмирования сообщений. Он более популярный, чем DES. По сравнению с MD4, алгоритм MD5 более безопасный, но работает несколько медленнее. Используется так же для проверки целостности файлов. Теоретически возможно, что у двух разных строк совпадут MD5-коды, но эта вероятность исчезающе мала.  Взлом данного алгоритма возможен путем перебора по словарю.

IDEA (International Data Encryption Algorithm). Международный алгоритм шифрования данных. Работает с блоками длиной 64 бита и использует 128-битный ключ. Так же известен тем, что применяется в пакете программ шифрования PGP. Так как IDEA использует 128-битный ключ и 64-битный размер блока, открытый текст разбивается на блоки по 64 бит. Если такое разбиение невозможно, последний блок дополняется различными способами определённой последовательностью бит. Для избежания утечки информации о каждом отдельном блоке используются различные режимы шифрования. Каждый исходный незашифрованный 64-битный блок делится на четыре подблока по 16 бит каждый, так как все алгебраические операции, использующиеся в процессе шифрования, совершаются над 16-битными числами. Для шифрования и расшифрования IDEA использует один и тот же алгоритм.

RSA (Rivest Shamir Adleman). Криптографический алгоритм и система шифрования с открытым ключом. Очень популярен, потому что легко интегрируется во множество приложений. Так же используется для цифровой подписи. Это достаточно надежный алгоритм шифрования, так как использует одностороннюю функцию. Суть односторонней функции состоит в том, что если известно x, то легок вычислить f(x). Но если известно y=f(x) то нет простого (эффективного) пути вычислить x.

BLOWFISH. Более надежный и быстрый алгоритм, чем DES. Может использовать различные ключи длиной 128,192,256 и 448 бит.Выполнен на простых и быстрых операциях: XOR, подстановка, сложение. Является незапатентованным и свободно распространяемым.

TWOFISH. Был разработан группой программистов для компании Counterpane systems. Использует ключи 128, 192 и 256 бит, а блоки памяти 128 бит. Отличительными особенностями алгоритма являются использование предварительно вычисляемых и зависящих от ключа узлов замены и сложная схема развёртки подключей шифрования. Половина n-битного ключа шифрования используется как собственно ключ шифрования, другая — для модификации алгоритма (от неё зависят узлы замены).

CRC32. Это 32-битовая CRC (Cyclical Redundancy Checking, или циклический контроль с помощью избыточных кодов).  Этот алгоритм используется для проверки целостности файлов при шифрованной передаче.

SHA (Secure Hash Algorithm). Безопасный  алгоритм хэширования, используется в компьютерных системах оборонных ведомств. Существует алгоритм SHA-1 и SHA-2. Суть SHA-1 состоит в том, что для входного сообщения произвольной длины (максимум 264-1 бит, что равно 2 эксабайта) алгоритм генерирует 160-битное хеш-значение, называемое также дайджестом сообщения. Используется во многих криптографических приложениях и протоколах. Также рекомендован в качестве основного для государственных учреждений в США. Принципы, положенные в основу SHA-1, аналогичны тем, которые использовались Рональдом Ривестом при проектировании MD4.  SHA-2 является улучшенной версией данного алгоритма.

Snefru. (защищенная хэш-функция фирмы Xerox). Этот алгоритм может генерировать резюме длиной 128/256 битов. Snefru — это криптографическая однонаправленная хеш-функция, предложенная Ральфом Мерклом. (Само название Snefru, продолжая традиции блочных шифров Khufu и Khafre, также разработанных Ральфом Мерклом, представляет собой имя египетского фараона). Функция Snefru преобразует сообщения произвольной длины в хеш длины m (обычно m=128 или m=256).

ГОСТ. Этот алгоритм был разработан еще в СССР. Использует ключ длиной 256 бит и работает с блоками длиной 64 бита. Он использовался в Центральном Банке РФ.

xTEA (Tiny Encryption Algorithm). Это достаточно простой алгоритм шифрования, используется в приложении с ограниченным размером кода. Длина ключа 128 бит, длина блока 64 бит. В криптографии, XTEA (eXtended TEA) — блочный шифроалгоритм, призванный устранить критические ошибки алгоритма TEA. Разработчиками шифра являются Дэвид Уилер и Роджер Нидхэм (факультет компьютерных наук Кэмбриджского университета). Алгоритм был представлен в неизданном техническом отчете в 1997 году [1]. Шифр не патентован, широко используется в ряде криптографических приложений и широком спектре аппаратного обеспечения благодаря крайне низким требованиям к памяти и простоте реализации.