Криптосистемы и принцип шифрования
По количеству ключей шифрования различают:
Симметричные криптосистемы (с 1-м ключем);
Асиметричные криптосистемы (с 2-мя ключами).
Рассмотрим общий алгоритм шифрования данных. Имеется открытый текст, который необходимо зашифровать и пароль. При шифровании по определенному правилу из пароля формируется т. н. гамма шифра (она же хеш-сумма или ключ шифра), которая впоследствии хранится вместе с зашифрованными данными. С ее помощью шифруются данные, а также в последствии — аутентификация при дешифровании. Обычно используется 128, 256, 512 и 1024 битная гамма (в зависимости от семейства криптоалгоритма). Военные особо секретные данные шифруют с гаммой порядка 1344 битов . Текст шифруется блоками, зачастую используются 128 и 256-битные блоки. При шифровании каждого блока данные в нем по определенному правилу трансформируются, при этом на них накладывается гамма шифра, и только после этого блок данных перемешивается несколько раз — это называется проходами, тем самым обеспечивается алгоритм шифрования. Количество проходов также влияет на степень криптостойкости алгоритма.
Симметричные криптосистемы
Часто называются криптосистемами с секретным ключом. Используется один ключ, с помощью которого производится как шифрование, так и дешифрование с использованием одного и того же алгоритма симметричного шифрования. Этот ключ передается двум участникам взаимодействия безопасным образом до передачи зашифрованных данных. Алгоритмы симметричного шифрования используют ключи не очень большой длины и могут быстро шифровать большие объемы данных.
Обобщенная схема симметричной криптосистемы выглядит так:
Симметричные алгоритмы
Этот тип алгоритмов используется как симметричными, так и асимметричными криптосистемами.
DES (англ.: Date Encryption Standard)
Популярный алгоритм шифрования, используемый как стандарт шифрования данных правительством США, предназначен для защиты важной, но не секретной информации. Шифруется блок из 64 бит, используется 64-битовый ключ (но требуется только 56 бит), 16 проходов.
Может работать в 4 режимах:
Электронная кодовая книга (ECB-Electronic Code Book) — обычный DES, использует два различных алгоритма.
Цепочечный режим (CBC–Cipher Block Chaining), в котором шифрование шифрование блока данных зависит от результатов шифрования предыдущих блоков данных.
Обратная связь по выходу (OFB-Output Feedback), используется как генератор случайных чисел.
Обратная связь по шифратору (CFB-Cipher Feedback), используется для получения кодов аутентификации сообщений.
DES или тройной DES (англ.: Triple DES)
64-битный блочный шифратор, использует DES три раза с тремя различными 56-битными ключами. Достаточно стоек ко всем атакам. Однако если стоит выбор — лучше выбрать Blowfish, Twofish или Rijndael.
Каскадный 3-DES
Стандартный тройной DES, к которому добавлен механизм обратной связи, такой как CBC, OFB или CFB. Очень стоек ко всем атакам.
FEAL (быстрый алгоритм)
Блочный шифратор, используемый как альтернатива DES. Вскрыт, хотя после этого были предложены новые версии.
IDEA (Международный Алгоритм Шифрования, англ.: International Date Encryption Algorithm)
64-битный блочный шифратор, 128-битовый ключ, 8 проходов.
Предложен недавно. До сих пор не прошел полной проверки, чтобы считаться надежным. Работает в 2 раза быстрее DES и считается значительно более криптостойким, чем DES как из-за длины ключа, так и из-за внутренней структуры.
Skipjack
Разработано АНБ в ходе проектов правительства США «Clipper» и «Capstone». До недавнего времени был секретным, но его стойкость не зависела только от того, что он был секретным.
64-битный блочный шифратор, 80-битовые ключи используются в режимах ECB, CFB, OFB или CBC, 32 прохода.
RC2
64-битный блочный шифратор, ключ переменного размера. Приблизительно в 2 раза быстрее, чем DES. Может использоваться в тех же режимах, что и DES, включая тройное шифрование. Конфиденциальный алгоритм, владельцем которого является RSA Data Security.
RC4
Потоковый шифр, байт-ориентированный, с ключом переменного размера. Приблизительно в 10 раз быстрее DES. Конфиденциальный алгоритм, которым владеет RSA Data Security.
RC5
Имеет размер блока 32, 64 или 128 бит, ключ с длиной от 0 до 2048 бит, от 0 до 255 проходов. Быстрый блочный шифр. Алгоритм, которым владеет RSA Data Security.
CAST
64-битный блочный шифратор, ключи длиной от 40 до 256 бит, 8 проходов. Неизвестно способов вскрыть его иначе как путем прямого перебора.
Blowfish
64-битный блочный шифратор, ключ переменного размера 32, 48, 56, 128 и 448 бит, 16 проходов, на каждом проходе выполняются перестановки, зависящие от ключа, и подстановки, зависящие от ключа и данных. Быстрее, чем DES примерно в 20 раз. Разработан для 32-битных машин.
Twofish
Был разработан автором Blowfish для соревнования NIST,где и выиграл, получив титул нового национального стандарта шифрования данных и вообще считается превосходящим Blowfish по стойкости и скорости. Есть два варианта: 128 и 256-битный ключ.
Rijndael
Этот алгоритм был отобран конкурсом NIST в октябре 2000 г, и стал новым официальным стандартом AES,используемый правительством США. Ключ в 128 и 256 бит. В отличие от Blowfish и Twofish требует большего времени для шифрования с большими ключами. 256-битная версия примерно на 40 % медленнее 128-битной версии.
ГОСТ 28147-89
256-битный ключ (плюс 384 бита значений подстановок), размер блока — 64 бит, режимы: ECB, гаммирования, CFB; правильный выбор значений подстановок является коммерческой тайной (не все они хороши); является одним из самых стойких и не имеет ограничений по степени секретности информации.