
- •1. Криптографические методы
- •1.1.1 Зачем нужны криптографические протоколы
- •1.1.2 Распределение ролей
- •1.1.3 Протоколы с арбитражем
- •1.1.4 Протокол с судейством
- •1.1.5 Самоутверждающийся протокол
- •1.1.6 Разновидности атак на протоколы
- •1.1.7 Доказательство с нулевым разглашением конфиденциальной информации
- •1.1.8 Протокол доказательства с нулевым разглашением конфиденциальной информации
- •1.1.9 Параллельные доказательства с нулевым разглашением конфиденциальной информации
- •1.1.10 Неинтерактивные протоколы доказательства с нулевым разглашением конфиденциальной информации
- •1.1.11 Удостоверение личности с нулевым разглашением конфиденциальной информации
- •1.1.12 Неосознанная передача информации
- •1.1.13 Анонимные совместные вычисления
- •1.2 Симметричная криптография (одноключевая, с секретным ключом)
- •1.2.1 Симметричная (секретная) методология
- •1.2.2 Симметричные алгоритмы
- •Подстановка Цезаря
- •Многоалфавитные системы. Системы одноразового использования.
- •Системы шифрования Вижинера
- •Гаммирование (Потоковое шифрование)
- •Датчики псч
- •Конгруэнтные датчики
- •Датчики м-последовательностей
- •1.3 Асимметричная криптография (с открытым ключом)
- •1.3.1 Асимметричная (открытая) методология
- •1.3.2 Асимметричные алгоритмы
- •1.4 Цифровой дайджест и хэш-функции
- •1.4.1 Криптографические хэш-функции
- •1.4 Цифровая подпись. Цифровая отметка времени
- •Назад | Оглавление | Вперед
Датчики псч
Чтобы получить линейные последовательности элементов гаммы, длина которых превышает размер шифруемых данных, используются датчики ПСЧ. На основе теории групп было разработано несколько типов таких датчиков.
Конгруэнтные датчики
В настоящее время наиболее доступными и эффективными являются конгруэнтные генераторы ПСП. Для этого класса генераторов можно сделать математически строгое заключение о том, какими свойствами обладают выходные сигналы этих генераторов с точки зрения периодичности и случайности.
Одним из хороших конгруэнтных генераторов является линейный конгруэнтный датчик ПСЧ. Он вырабатывает последовательности псевдослучайных чисел T(i), описываемые соотношением
T(i+1) = (A*T(i)+C) mod m,
где А и С - константы, Т(0) - исходная величина, выбранная в качестве порождающего числа. Очевидно, что эти три величины и образуют ключ.
Такой датчик ПСЧ генерирует псевдослучайные числа с определенным периодом повторения, зависящим от выбранных значений А и С. Значение m обычно устанавливается равным 2n , где n - длина машинного слова в битах. Датчик имеет максимальный период М до того, как генерируемая последовательность начнет повторяться. По причине, отмеченной ранее, необходимо выбирать числа А и С такие, чтобы период М был максимальным. Как показано Д. Кнутом, линейный конгруэнтный датчик ПСЧ имеет максимальную длину М тогда и только тогда, когда С - нечетное, и А mod 4 = 1.
Для шифрования данных с помощью датчика ПСЧ может быть выбран ключ любого размера. Например, пусть ключ состоит из набора чисел x(j) размерностью b, где j=1, 2, ..., n. Тогда создаваемую гамму шифра G можно представить как объединение непересекающихся множеств H(j).
Датчики м-последовательностей
М-последовательности также популярны, благодаря относительной легкости их реализации.
М-последовательности представляют собой линейные рекуррентные последовательности максимального периода, формируемые k-разрядными генераторами на основе регистров сдвига. На каждом такте поступивший бит сдвигает k предыдущих и к нему добавляется их сумма по модулю 2. Вытесняемый бит добавляется к гамме.
Строго это можно представить в виде следующих отношений:
r1:=r0 r2:=r1 ... rk-1:=rk-2
r0:=a0 r1 Å a1 r2 Å ... Å ak-2 rk-1
Гi:= rk-
Здесь r0 r1 ... rk-1 - k однобитных регистров, a0 a1 ... ak-1 - коэффициенты неприводимого двоичного полинома степени k-1. Гi - i-е значение выходной гаммы.
Период М-последовательности исходя из ее свойств равен 2k-1.
Другим важным свойством М-последовательности является объем ансамбля, т.е. количество различных М-последовательностей для заданного k. Эта характеристика приведена в таблице:
-
k
Объем ансамбля
5
6
6
8
7
18
8
16
9
48
10
60
16
2048
Очевидно, что такие объемы ансамблей последовательности неприемлемы.
Поэтому на практике часто используют последовательности Голда, образующиеся суммированием нескольких М-последовательностей. Объем ансамблей этих последовательностей на несколько порядков превосходят объемы ансамблей порождающих М-последовательностей. Так при k=10 ансамбль увеличивается от 1023 (М-последовательности) до 388000.
Также перспективными представляются нелинейные датчики ПСП (например сдвиговые регистры с элементом И в цепи обратной связи), однако их свойства еще недостаточно изучены.
Возможны и другие, более сложные варианты выбора порождающих чисел для гаммы шифра.
Шифрование с помощью датчика ПСЧ является довольно распространенным криптографическим методом. Во многом качество шифра, построенного на основе датчика ПСЧ, определяется не только и не столько характеристиками датчика, сколько алгоритмом получения гаммы. Один из фундаментальных принципов криптологической практики гласит, даже сложные шифры могут быть очень чувствительны к простым воздействиям.
Блочные шифры
Характерной особенностью блочных криптоалгоритмов является тот факт, что в ходе своей работы они производят преобразование блока входной информации фиксированной длины и получают результирующий блок того же объема, но недоступный для прочтения сторонним лицам, не владеющим ключом. Таким образом, схему работы блочного шифра можно описать функциями Z=EnCrypt(X,Key) и X=DeCrypt(Z,Key)
Ключ Key является параметром блочного криптоалгоритма и представляет собой некоторый блок двоичной информации фиксированного размера. Исходный (X) и зашифрованный (Z) блоки данных также имеют фиксированную разрядность, равную между собой, но необязательно равную длине ключа.
Блочные шифры являются основой, на которой реализованы практически все криптосистемы. Методика создания цепочек из зашифрованных блочными алгоритмами байт позволяет шифровать ими пакеты информации неограниченной длины. Такое свойство блочных шифров, как быстрота работы, используется асимметричными криптоалгоритмами, медлительными по своей природе. Отсутствие статистической корреляции между битами выходного потока блочного шифра используется для вычисления контрольных сумм пакетов данных и в хешировании паролей.
Следующие разработки всемирно признаны стойкими алгоритмами и публикаций о универсальных методах их взлома в средствах массовой информации на момент создания материала не встречалось.
Название алгоритма |
Автор |
Размер блока |
Длина ключа |
IDEA |
Xuejia Lia and James Massey |
64 бита |
128 бит |
CAST128 |
|
64 бита |
128 бит |
BlowFish |
Bruce Schneier |
64 бита |
128 – 448 бит |
ГОСТ |
КГБ СССР |
64 бита |
256 бит |
TwoFish |
Bruce Schneier |
128 бит |
128 – 256 бит |
MARS |
Корпорация IBM |
128 бит |
128 – 1048 бит |
Криптоалгоритм именуется идеально стойким, если прочесть зашифрованный блок данных можно только перебрав все возможные ключи, до тех пор, пока сообщение не окажется осмысленным. Так как по теории вероятности искомый ключ будет найден с вероятностью 1/2 после перебора половины всех ключей, то на взлом идеально стойкого криптоалгоритма с ключом длины N потребуется в среднем 2N-1 проверок. Таким образом, в общем случае стойкость блочного шифра зависит только от длины ключа и возрастает экспоненциально с ее ростом. Даже предположив, что перебор ключей производится на специально созданной многопроцессорной системе, в которой благодаря диагональному параллелизму на проверку 1 ключа уходит только 1 такт, то на взлом 128 битного ключа современной технике потребуется не менее 1021 лет. Естественно, все сказанное относится только к идеально стойким шифрам, которыми, например, с большой долей уверенности являются приведенные в таблице выше алгоритмы.
Кроме этого условия к идеально стойким криптоалгоритмам применяется еще одно очень важное требование, которому они должны обязательно соответствовать. При известных исходном и зашифрованном значениях блока ключ, которым произведено это преобразование, можно узнать также только полным перебором. Ситуации, в которых постороннему наблюдателю известна часть исходного текста встречаются повсеместно. Это могут быть стандартные надписи в электронных бланках, фиксированные заголовки форматов файлов, довольно часто встречающиеся в тексте длинные слова или последовательности байт. В свете этой проблемы описанное выше требование не является ничем чрезмерным и также строго выполняется стойкими криптоалгоритмами, как и первое.
Таким образом, на функцию стойкого блочного шифра Z=EnCrypt(X,Key) накладываются следующие условия:
Функция EnCrypt должна быть обратимой.
Не должно существовать иных методов прочтения сообщения X по известному блоку Z, кроме как полным перебором ключей Key.
Не должно существовать иных методов определения каким ключом Key было произведено преобразование известного сообщения X в сообщение Z, кроме как полным перебором ключей.
Далее рассмотрим методы, с помощью которых разработчики блочных криптоалгоритмов добиваются одновременного выполнения этих трех условий с очень большой долей достоверности.
Все действия, производимые над данными блочным криптоалгоритмом, основаны на том факте, что преобразуемый блок может быть представлен в виде целого неотрицательного числа из диапазона, соответствующего его разрядности. Так, например, 32-битный блок данных можно интерпретировать как число из диапазона 0..4'294'967'295. Кроме того, блок, разрядность которого обычно является "степенью двойки", можно трактовать как несколько независимых неотрицательных чисел из меньшего диапазона (рассмотренный выше 32-битный блок можно также представить в виде 2 независимых чисел из диапазона 0..65535 или в виде 4 независимых чисел из диапазона 0..255).
Над этими числами блочным криптоалгоритмом и производятся по определенной схеме следующие действия (слева даны условные обозначения этих операций на графических схемах алгоритмов):
Биективные (обратимые) математические функции | ||
|
Сложение |
X'=X+V |
|
Исключающее ИЛИ |
X'=X XOR V |
|
Умножение по модулю 2N+1 |
X'=(X*V) mod (2N+1) |
|
Умножение по модулю 2N |
X'=(X*V) mod (2N) |
Битовые сдвиги | ||
|
Арифметический сдвиг влево |
X'=X SHL V |
|
Арифметический сдвиг вправо |
X'=X SHR V |
|
Циклический сдвиг влево |
X'=X ROL V |
|
Циклический сдвиг вправо |
X'=X ROR V |
Табличные подстановки | ||
|
S-box (англ. substitute) |
X'=Table[X,V] |
В качестве параметра V для любого из этих преобразований может использоваться:
фиксированное число (например, X'=X+125)
число, получаемое из ключа (например, X'=X+F(Key))
число, получаемое из независимой части блока (например, X2'=X2+F(X1))
Последний вариант используется в схеме, названной по имени ее создателя сетью Файстеля (нем. Feistel).
Последовательность выполняемых над блоком операций, комбинации перечисленных выше вариантов V и сами функции F и составляют "ноу-хау" каждого конкретного блочного криптоалгоритма. Размер блоков и длина ключа современных алгоритмов были рассмотрены ранее. Один-два раза в год исследовательские центры мира публикуют очередной блочный шифр, который под яростной атакой криптоаналитиков либо приобретает за несколько лет статус стойкого криптоалгоритма, либо (что происходит неизмеримо чаще) бесславно уходит в историю криптографии.
Характерным признаком блочных алгоритмов является многократное и косвенное использование материала ключа. Это диктуется в первую очередь требованием невозможности обратного декодирования в отношении ключа при известных исходном и зашифрованном текстах. Для решения этой задачи в приведенных выше преобразованиях чаще всего используется не само значение ключа или его части, а некоторая, иногда необратимая (небиективная) функция от материала ключа. Более того, в подобных преобразованиях один и тот же блок или элемент ключа используется многократно. Это позволяет при выполнении условия обратимости функции относительно величины X сделать функцию необратимой относительно ключа Key.
Поскольку операция зашифровки или расшифровки отдельного блока в процессе кодирования пакета информации выполняется многократно (иногда до сотен тысяч раз), а значение ключа и, следовательно, функций Vi(Key) остается неизменным, то иногда становится целесообразно заранее однократно вычислить данные значения и хранить их в оперативной памяти совместно с ключом. Поскольку эти значения зависят только от ключа, то они в криптографии называются материалом ключа. Необходимо отметить, что данная операция никоим образом не изменяет ни длину ключа, ни криптостойкость алгоритма в целом. Здесь происходит лишь оптимизация скорости вычислений путем кеширования (англ. caching) промежуточных результатов. Описанные действия встречаются практически во многих блочных криптоалгоритмах и носят название расширение ключа (англ. key scheduling)
Сеть Файстеля
Сеть Файстеля является дальнейшей модификацией описанного выше метода смешивания текущей части шифруемого блока с результатом некоторой функции, вычисленной от другой независимой части того же блока. Эта методика получила широкое распространение, поскольку обеспечивает выполнение требования о многократном использовании ключа и материала исходного блока информации.
Классическая сеть Файстеля имеет следующую структуру:
Независимые потоки информации, порожденные из исходного блока, называются ветвями сети. В классической схеме их две. Величины Vi именуются параметрами сети, обычно это функции от материала ключа. Функция F называется образующей. Действие, состоящее из однократного вычисления образующей функции и последующего наложения ее результата на другую ветвь с обменом их местами, называется циклом или раундом (англ. round) сети Файстеля. Оптимальное число раундов K – от 8 до 32. Важно то, что увеличение количества раундов значительно увеличивает криптоскойстость любого блочного шифра к криптоанализу. Возможно, эта особенность и повлияла на столь активное распространение сети Файстеля – ведь при обнаружении, скажем, какого-либо слабого места в алгоритме, почти всегда достаточно увеличить количество раундов на 4-8, не переписывая сам алгоритм. Часто количество раундов не фиксируется разработчиками алгоритма, а лишь указываются разумные пределы (обязательно нижний, и не всегда – верхний) этого параметра.
Сразу же возникает вопрос, – является ли данная схема обратимой? Очевидно, да. Сеть Файстеля обладает тем свойством, что даже если в качестве образующей функции F будет использовано необратимое преобразование, то и в этом случае вся цепочка будет восстановима. Это происходит вследствие того, что для обратного преобразования сети Файстеля не нужно вычислять функцию F-1.
Более того, как нетрудно заметить, сеть Файстеля симметрична. Использование операции XOR, обратимой своим же повтором, и инверсия последнего обмена ветвей делают возможным раскодирование блока той же сетью Файстеля, но с инверсным порядком параметров Vi. Заметим, что для обратимости сети Файстеля не имеет значение является ли число раундов четным или нечетным числом. В большинстве реализаций схемы, в которых оба вышеперечисленные условия (операция XOR и уничтожение последнего обмена) сохранены, прямое и обратное преобразования производятся одной и той же процедурой, которой в качестве параметра передается вектор величин Vi либо в исходном, либо в инверсном порядке.
С незначительными доработками сеть Файстеля можно сделать и абсолютно симметричной, то есть выполняющей функции шифрования и дешифрования одним и тем же набором операций. Математическим языком это записывается как "Функция EnCrypt тождественно равна функции DeCrypt". Если мы рассмотрим граф состояний криптоалгоритма, на котором точками отмечены блоки входной и выходной информации, то при каком-то фиксированном ключе для классической сети Файстеля мы будем иметь картину, изображенную на рис.1.2.1 а, а во втором случае каждая пара точек получит уникальную связь, как изображено на рис. 1.2.2 б. Модификация сети Файстеля, обладающая подобными свойствами приведена на рисунке 1.2.3. Как видим, основная ее хитрость в повторном использовании данных ключа в обратном порядке во второй половине цикла. Необходимо заметить, однако, что именно из-за этой недостаточно исследованной специфики такой схемы (то есть потенциальной возможности ослабления зашифрованного текста обратными преобразованиями) ее используют в криптоалгоритмах с большой осторожностью.
Рис.1.2.1
Рис.1.2.3
А вот модификацию сети Файстеля для большего числа ветвей применяют гораздо чаще. Это в первую очередь связано с тем, что при больших размерах кодируемых блоков (128 и более бит) становится неудобно работать с математическими функциями по модулю 64 и выше. Как известно, основные единицы информации обрабатываемые процессорами на сегодняшний день – это байт и двойное машинное слово 32 бита. Поэтому все чаще и чаще в блочных криптоалгоритмах встречается сеть Файстеля с 4-мя ветвями. Самый простой принцип ее модификации изображен на рисунке 1.2.4а. Для более быстрого перемешивания информации между ветвями (а это основная проблема сети Файстеля с большим количеством ветвей) применяются две модифицированные схемы, называемые "type-2" и "type-3". Они изображены на рисунках 1.2.4б и 1.2.4в.
Рис.1.2.4
Сеть Файстеля надежно зарекомендовала себя как криптостойкая схема произведения преобразований, и ее можно найти практически в любом современном блочном шифре. Незначительные модификации касаются обычно дополнительных начальных и оконечных преобразований (англоязычный термин – whitening) над шифруемым блоком. Подобные преобразования, выполняемые обычно также либо "исключающим ИЛИ" или сложением имеют целью повысить начальную рандомизацию входного текста. Таким образом, криптостойкость блочного шифра, использующего сеть Файстеля, определяется на 95% функцией F и правилом вычисления Vi из ключа. Эти функции и являются объектом все новых и новых исследований специалистов в области криптографии.
Режимы работы блочных шифров
Чтобы использовать алгоритмы блочного шифрования для различных криптографических задач существует несколько режимов их работы. Наиболее часто встречающимися в практике являются следующие режимы:
электронная кодовая книга - ECB (Electronic Code Book);
сцепление блоков шифротекста - CBC (Cipher Block Chaining);
обратная связь по шифротектсту - CFB (Cipher Feed Back);
обратная связь по выходу - OFB (Output Feed Back);
Обозначим применение шифра к блоку открытого текста как Ek(M)=C, где k - ключ, M - блок открытого текста, а C - получающийся шифротекст.
Электронная Кодовая Книга (ECB)
Исходный текст разбивается на блоки, равные размеру блока шифра. Затем с каждый блок шифруют независимо от других с использованием одного ключа шифрования. Графически это выглядит так:
Непосредственно этот режим применяется для шифрования небольших объемов информации, размером не более одного блока или для шифрования ключей. Это связано с тем, что одинаковые блоки открытого текста преобразуются в одинаковые блоки шифротекста, что может дать взломщику (криптоаналитику) определенную информацию о содержании сообщения. К тому же, если он предполагает наличие определенных слов в сообщении (например, слово "Здравствуйте" в начале сообщения или "До свидания" в конце), то получается, что он обладает как фрагментом открытого текста, так и соответствующего шифротекста, что может сильно облегчить задачу нахождения ключа.
Основным достоинством этого режима является простота реализации.
Сцепление блоков шифротекста (CBC)
Один из наиболее часто применимых режимов шифрования для обработки больших количеств информации. Исходный текст разбивается на блоки, а затем обрабатывается по следующей схеме:
Первый блок складывается побитно по модулю 2 (XOR) с неким значением IV - начальным вектором (Init Vector), который выбирается независимо перед началом шифрования.
Полученное значение шифруется.
Полученный в результате блок шифротекста отправляется получателю и одновременно служит начальным вектором IV для следующего блока открытого текста.
Расшифрование осуществляется в обратном порядке. Графически схема выглядит следующим образом:
В виде формулы, преобразование в режиме CBC можно представить как Ci=Ek(MiЕCi-1), где i - номер соответствующего блока. Из-за использования такого сцепления блоков шифротекста с открытым текстом пропадают указанные выше недостатки режима ECB, поскольку каждый последующий блок зависит от всех предыдущих. Если во время передачи один из блоков шифротекста исказится (передастся с ошибкой), то получатель сможет корректно расшифровать последующие блоки сообщения. Проблемы возникнут только с этим "бракованным" и следующим блоками. Одним из важных свойств этого режима является "распространение ошибки" - изменение блока открытого текста меняет все последующие блоки шифротекста. Поскольку последний блок шифротекста зависит от всех блоков открытого текста, то его можно использовать для контроля целостности и аутентичности (проверки подлинности) сообщения. Его называют кодом аутентификации сообщения (MAC - Message Authentication Code). Он может защитить как от случайных, так и преднамеренных изменений в сообщениях.
Обратная связь по шифротексту (CFB)
Режим может использоваться для получения поточного шифра из блочного. Размер блока в данном режиме меньше либо равен размеру блока шифра. Схема данного режима:
IV представляет собой сдвиговый регистр. Вначале IV заполняется неким значением, которое называется синхропосылкой, не является секретным и передается перед сеансом связи получателю.
Значение IV шифруется.
Берутся первые k бит зашифрованного значения IV и складываются (XOR) с k битами открытого текста Ю получается блок шифротекста из k бит.
Значение IV сдвигается на k битов влево, а вместо него становится значение ш.т.
Затем опять 2 пункт и т.д до конца.
Расшифрование аналогично.
Особенностью данного режима является распространение ошибки на весь последующий текст. Рекомендованные значения k: 1 =< k =< 8.
Применяется как правило для шифрования потоков информации типа оцифрованной речи, видео.
Обратная связь по выходу (OFB)
Данный режим примечателен тем, что позволяет получать поточный шифр в его классическом виде, в отличии от режима CFB, в котором присутствует связь с шифротекстом. Принцип работы схож с принципом работы режима CFB, но сдвиговый регистр IV заполняется не битами шифротекста, а битами, выходящими из под усечения. Вот его схема:
Расшифрование осуществляется аналогично. Т.е. для любого блока длины k операция зашифрования выглядит следующим образом: Ci=MiЕGi, где Gi - результат зашифрования некоторого вектора, являющегося заполнением сдвигового регистра. Главное свойство шифра - единичные ошибки не распространяются, т.к заполнение сдвигового регистра осуществляется не зависимо от шифротекста.
Область применения: потоки видео, аудио или данных, для которых необходимо обеспечить оперативную доставку. Широко используется у военных наряду с поточными шифрами.
Итак, в симметричных криптосистемах для шифрования и расшифровки используются одни и те же алгоритмы. Один и тот же секретный ключ используется для шифрования и расшифровки. Этот тип алгоритмов используется как симметричными, так и асимметричными криптосистемами.
Тип |
Описание |
DES (Data Encryption Standard) |
Популярный алгоритм шифрования, используемый как стандарт шифрования данных правительством США. Шифруется блок из 64 бит, используется 64-битовый ключ (требуется только 56 бит), 16 проходов Может работать в 4 режимах:
|
3-DES или тройной DES |
64-битный блочный шифратор, использует DES 3 раза с тремя различными 56-битными ключами. Достаточно стоек ко всем атакам |
Каскадный 3-DES |
Стандартный тройной DES, к которому добавлен механизм обратной связи, такой как CBC, OFB или CFB Очень стоек ко всем атакам. |
NewDES |
Создан в 1985 как творческая переработка DES. Это самостоятельный алгоритм, а не вариант DES. NewDES несколько проще, чем DES, поскольку у него нет начальной и, понятно, конечной перестановки. Операции производятся над байтами, а не битами как в DES. Brute-force атака на NewDES требует 2119 операций, против 2111 для TripleDES. Автор: Robert Scott. Параметры: - размер блока 64 бита - размер ключа 120 бит - число раундов 17 |
DEAL |
Базируется на DES (DEA). Увеличение длины блока уменьшает вероятность удачной криптоатаки методом сравнения криптограмм, уровень стойкости шифрования сопоставим с уровнем triple-DES. Автор: Lars R. Knudsen. Параметры: - размер блока 128 бит - размер ключа 128/192/256 бит - число раундов: 6 (DEAL-128, DEAL-192); 8 (DEAL-256) |
FEAL (быстрый алгоритм шифрования) |
Блочный шифратор, используемый как альтернатива DES Вскрыт, хотя после этого были предложены новые версии Параметры: - размер блока 64 бит - размер ключа 64 бит - число раундов: 4 |
IDEA (международный алгоритм шифрования) |
(International Decryption-Encryption Algorithm) Время/место разработки 1990-1991 годы, Цюрих, Швейцария. Архитектура Общая сбалансированная шифрующая SP-сеть, инвариант раунда - побитовая сумма по модулю 2 старшей и младшей половин блока. Авторы: Xuejia Lai, James Massey. Параметры: - pазмер блока 64 бита - pазмер ключа 128 бит - число раундов 8 Предложен недавно; хотя до сих пор не прошел полной проверки, чтобы считаться надежным, считается более лучшим, чем DES |
Skipjack |
Разработано NSA в ходе проектов правительства США "Clipper" и "Capstone". До недавнего времени был секретным, но его стойкость не зависела только от того, что он был секретным. Режимы: ECB, CBC, CFB 8bit, OFB, OFB counter 8bit ECB, CBC, OFB: шифруют данные блоками по 64 бита (8 байт) CFB, OFBC: шифруют данные блоками по 8 бит (1 байту) Параметры: - размер блока 64 бита - размер ключа 80 бит - число раундов 32 |
RC2 |
Блочный алгоpитм шифpования. Длина ключа пpеменная - от 8 до 1024 бит. Разpабатывался под 16-ти битное слово. Реализyет 16 pаyндов "пеpемешивающих" (mixing) и 2 pаyнда "pазмазывающих" (mashing)пpеобpазований. Описан в RFC2268. Режимы: ECB, CBC, CFB 8bit, OFB, OFB counter 8bit ECB, CBC, OFB: шифруют данные блоками по 64 бита (8 байт) CFB, OFBC: шифруют данные блоками по 8 бит (1 байту) Автор: RSA Data Security (Ron Rivest) /RC - Ron's Code/ Параметры: - размер блока 64 бита - размер ключа до 1024 бит - число раундов 16 Приблизительно в 2 раза быстрее, чем DES Может использоваться в тех же режимах, что и DES, включая тройное шифрование. Конфиденциальный алгоритм, владельцем которого является RSA Data Security |
RC4 |
Потоковый шифр, байт-ориентированный, с ключом переменного размера. Алгоритм работает в режиме OFB: поток ключей не зависит от открытого текста. Используется S-блок размером 8*8: S0, S1, . . . , S255. Элементы представляют собой перестановку чисел от 0 до 255, а перестановка является функцией ключа переменной длины. Приблизительно в 10 раз быстрее DES. Конфиденциальный алгоритм, которым владеет RSA Data Security |
RC5 |
Имеет размер блока 32, 64 или 128 бит, ключ с длиной от 0 до 2048 бит, от 0 до 255 проходов. Режимы: ECB, CBC, CFB 8bit, OFB, OFB counter 8bit. Шифр RC5 "словоориентированный"; все простейшие вычислительные операции производятся над w-битными словами. RC5 блочный шифр с размерностью входного и выходного блоков 2 слова. Номинальный выбор для w - 32 бита, при котором входной и выходной блоки RC5 имеют размер 64 бита. В принципе, RC5 допускает любое значение w>0, однако для простоты принимают допустимые значения w - 16, 32 и 64 бита. Число раундов r является вторым параметром RC5. Выбор большего числа раундов увеличивает степень защиты. Возможные значения для r: 0,1,...,255. RC5 имеет расширенную ключевую таблицу S, получаемую из предоставляемого пользователем секретного ключа. Размер t таблицы S также зависит от числа раундов r и составляет t=2(r+1) слов. Выбор большего числа раундов, таким образом, увеличивает требования к памяти. Быстрый блочный шифр Алгоритм, которым владеет RSA Data Security |
CAST |
CAST-128 - размер блока 64 бита - размер ключа 128 бит - число раундов 16 CAST-256 - размер блока 128 бит - размер ключа 256 бит Неизвестно способов вскрытия его иначе как путем прямого перебора. |
Blowfish. |
64-битный блочный шифратор, ключ переменного размера до 448 бит, 16 проходов, на каждом проходе выполняются перестановки, зависящие от ключа, и подстановки, зависящие от ключа и данных. Быстрее, чем DES Разработан для 32-битных машин |
Устройство с одноразовыми ключами |
Шифратор, который нельзя вскрыть. Ключом (который имеет ту же длину, что и шифруемые данные) являются следующие 'n' бит из массива случайно созданных бит, хранящихся в этом устройстве. У отправителя и получателя имеются одинаковые устройства. После использования биты разрушаются, и в следующий раз используются другие биты. |
Поточные шифры |
Быстрые алгоритмы симметричного шифрования, обычно оперирующие битами (а не блоками бит). Разработаны как аналог устройства с одноразовыми ключами, и хотя не являются такими же безопасными, как оно, по крайней мере практичны. |
Lucifer |
Lucifer. первый (опубликованный в открытой печати) блочный алгоритм. Предтеча DES Автор: Horst Feistel, Walter Tuchman (IBM) тип - сеть Файстеля Параметры: - размер блока 128 бит - размер ключа 128 бит - число раундов 16 . В каждом используется подключ в 72 бита, порождаемый из главного ключа поскольку имеет больший размер ключа и блока по отношению к DES, поэтому более устойчив к дифф. криптоанализу |
Rijndael |
Является нетрадиционным блочным шифром, поскольку выполнен в архитектуре SQUARE. Алгоритм представляет каждый блок кодируемых данных в виде двумерного массива байт размером 4х4, 4х6 или 4х8 в зависимости от установленной длины блока. Далее на соответствующих этапах преобразования производятся либо над независимыми столбцами, либо над независимыми строками, либо вообще над отдельными байтами в таблице. Автор: Joan Daemen and Vincent Rijmen Параметры: - размер блока 128, 192, 256 бит, в качестве AES допускается использование шифра с размером блока 128 бит; - размер ключа 128, 192, 256 бит - число раундов 10, 12, 14. Зависит от размера блока (Nb) и ключа (Nk), заданных в битах, по следующей формуле: r=max(Nb,Nk)/32+6; |
ГОСТ 28147-89 |
Российский федеральный стандарт шифрования. Фактически, описывает несколько алгоритмов (режимы работы ГОСТ). Кроме ключа ему необходима еще одна таблица (таблица замен, 128 ячеек 4-битовых чисел) для формирования узлов замены. ГОСТ ее не определяет, посему она может рассматриваться как долговременный ключевой элемент. Определены следующие режимы работы: режим простой замены (ECB), режим гаммирования (SM) и режим гаммирования с обратной связью (OFB). Несколько особняком стоит режим выработки имитовставки. В принципе, у него такое же назначение как у хэш-функции, только ее значение еще зависит от секретного ключа. Из полученного в результате 64 битного значения выбирается l битов, где l<=32. Минимальный размер данных для имитозащиты - 2 64-битных блока. Автор: КГБ СССР Параметры: - размер блока 64 бита - размер ключа 256 бит - число раундов 32 (16 - для имитовставки) |