Меню
Бесплатно
Главная  /  Образование  /  Назначение и структура алгоритмов шифрования. Алгоритмы шифрования данных Все алгоритмы шифрования

Назначение и структура алгоритмов шифрования. Алгоритмы шифрования данных Все алгоритмы шифрования

Алгоритм шифрования данных DES (Data Encryption Standard) был опубликован в 1977 г. и остается пока распространенным блочным симметричным алгоритмом, используемым в системах защиты коммерческой информации.

Алгоритм DES построен в соответствии с методологией сети Фейстеля и состоит из чередующейся последовательности перестановок и подстановок. Алгоритм DES осуществляет шифрование 64-битовых блоков данных с помощью 64-битового ключа, в котором значащими являются 56 бит (остальные 8 - проверочные биты для контроля на четность).

Процесс шифрования заключается в начальной перестановке битов 64-битового блока, 16 циклах (раундах) шифрования и, наконец, в конечной перестановке битов (рис. 6.2).

Рис. 6.2.

Расшифровывание в DES является операцией, обратной шифрованию, и выполняется путем повторения операций шифрования в обратной последовательности.

Основные достоинства алгоритма DES:

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

Современная микропроцессорная техника позволяет за достаточно приемлемое время взламывать симметричные блочные шифры с длиной ключа 40 бит. Для такого взламывания используется метод полного перебора - тотального опробования всех возможных значений ключа (метод «грубой силы»). До недавнего времени DES считался относительно безопасным алгоритмом шифрования.

Существует много способов комбинирования блочных алгоритмов для получения новых более стойких алгоритмов. Одним из таких способов является многократное шифрование - использование блочного алгоритма несколько раз с разными ключами для шифрования одного и того же блока открытого текста. При трехкратном шифровании можно применить три различных ключа.

Алгоритм 3-DES (Triple DES - тройной DES) используется в ситуациях, когда надежность алгоритма DES считается недостаточной.

Сегодня все шире используются два современных криптостойких алгоритма шифрования: отечественный стандарт шифрования ГОСТ 28147-89 и новый криптостандарт США - AES (Advanced Encryption Standard).

Стандарт шифрования ГОСТ 28147-89 предназначен для аппаратной и программной реализации, удовлетворяет криптографическим требованиям и не накладывает ограничений на степень секретности защищаемой информации. Алгоритм шифрования данных, определяемый ГОСТ 28147-89, представляет собой 64-битовый блочный алгоритм с 256-битовым ключом.

Данные, подлежащие зашифрованию, разбивают на 64-раз-рядные блоки. Эти блоки разбиваются на два субблока N x и N 2 по 32 бит (рис. 6.3). Субблок /V, обрабатывается определенным образом, после чего его значение складывается со значением субблока N 2 (сложение выполняется по модулю 2, т. е. применяется логическая операция XOR - «исключающее или»), а затем


Рис. 6.3.

субблоки меняются местами. Данное преобразование выполняется определенное число раз («раундов») - 16 или 32, в зависимости от режима работы алгоритма.

В каждом раунде выполняются две операции.

Первая операция - наложение ключа. Содержимое субблока /V, складывается по модулю 2 32 с 32-битовой частью ключа К х. Полный ключ шифрования представляется в виде конкатенации 32-битовых подключей: К 0 , К { , К 2 , К 3 , К 4 , К 5 , К 6 , К 7 . В процессе шифрования используется один из этих подключей - в зависимости от номера раунда и режима работы алгоритма.

Вторая операция - табличная замена. После наложения ключа субблок N { разбивается на 8 частей по 4 бит, значение каждой из которых заменяется в соответствии с таблицей замены для данной части субблока. Затем выполняется побитовый циклический сдвиг субблока влево на 11 бит.

Табличные замены. Блок подстановки 5-box (Substitution box) часто используются в современных алгоритмах шифрования, поэтому стоит пояснить, как организуется подобная операция.

Блок подстановки 5-Ьох состоит из восьми узлов замены (5-блоков замены) 5, S 2 , ..., 5 8 с памятью 64 бит каждый. Поступающий на блок подстановки S 32-битовый вектор разбивают на 8 последовательно идущих 4-битовых векторов, каждый из которых преобразуется в 4-битовый вектор соответствующим узлом замены. Каждый узел замены можно представить в виде таблицы-перестановки 16 4-битовых двоичных чисел в диапазоне 0000... 1111. Входной вектор указывает адрес строки в таблице, а число в этой строке является выходным вектором. Затем 4-битовые выходные векторы последовательно объединяют в 32-би-товый вектор. Узлы замены (таблицы-перестановки) представляют собой ключевые элементы, которые являются общими для сети ЭВМ и редко изменяются. Эти узлы замены должны сохраняться в секрете.

Алгоритм, определяемый ГОСТ 28147-89, предусматривает четыре режима работы: простой замены, гаммирования, гаммиро-вания с обратной связью и генерации имитоприставок. В них используется одно и то же описанное выше шифрующее преобразование, но, поскольку назначение режимов различно, осуществляется это преобразование в каждом из них по-разному.

В режиме простой замены для зашифровывания каждого 64-битового блока информации выполняются 32 описанных выше раунда. При этом 32-битовые подключи используются в следующей последовательности:

К 0 , К { , К 2 , К 3 , К 4 , К 5 , К 6 , К 7 , К 0 , /Г, и т. д. - в раундах с 1-го по 24-й;

К 7 , К ь, К 5 , К 4 , К 3 , К 2 , К х, К 0 - в раундах с 25-го по 32-й.

Расшифровывание в данном режиме проводится точно так же, но с несколько другой последовательностью применения подключей:

К 0 , АГ, К 2 , К 3 , К 4 , К 5 , К ь, К 7 - в раундах с 1-го по 8-й;

К 7 , К 6 , К 5 , К 4 , К 3 , К 2 , К { , К 0 , К 7 , К ь и т. д. - в раундах с 9-го по 32-й.

Все блоки шифруются независимо друг от друга, т. е. результат зашифровывания каждого блока зависит только от его содержимого (соответствующего блока исходного текста). При наличии нескольких одинаковых блоков исходного (открытого) текста соответствующие им блоки шифртекста тоже будут одинаковы, что дает дополнительную полезную информацию для пытающегося вскрыть шифр криптоаналитика. Поэтому данный режим применяется в основном для шифрования самих ключей шифрования (очень часто реализуются многоключевые схемы, в которых по ряду соображений ключи шифруются друг на друге). Для шифрования собственно информации предназначены два других режима работы - гаммирования и гаммирования с обратной связью.

В режиме гаммирования каждый блок открытого текста побитно складывается по модулю 2 с блоком гаммы шифра размером 64 бит. Гамма шифра - это специальная последовательность, которая получается в результате определенных операций с регистрами N 1 и Ы 2 (рис. 6.9):

  • 1. В регистры N^ и 1У 2 записывается их начальное заполнение - 64-битовая величина, называемая синхропосылкой.
  • 2. Выполняется зашифровывание содержимого регистров N 1 и М 2 (в данном случае - синхропосылки) в режиме простой замены.
  • 3. Содержимое регистра N^ складывается по модулю (2 32 - 1) с константой С, = 2 24 + 2 16 + 2 8 + 2 4 , а результат сложения записывается в регистр N 1 .
  • 4. Содержимое регистра УУ 2 складывается по модулю 232 с константой С 2 = 2 24 + 2 16 + 2 8 + 1, а результат сложения записывается в регистр УУ 2 .
  • 5. Содержимое регистров N , и Ы 2 подается на выход в качестве 64-битового блока гаммы шифра (в данном случае N^ и УУ 2 образуют первый блок гаммы).

Если необходим следующий блок гаммы (т. е. необходимо продолжить зашифровывание или расшифровывание), выполняется возврат к операции 2.

Для расшифровывания гамма вырабатывается аналогичным образом, а затем к битам зашифрованного текста и гаммы снова применяется операция Х(Ж. Поскольку эта операция обратима, в случае правильно выработанной гаммы получается исходный текст (табл. 6.1).

Таблица 6.1. Зашифровывание и расшифровывание в режиме гаммирования

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

В большинстве реализаций алгоритма ГОСТ 28147-89 синхропосылка не секретна, однако есть системы, где синхропосылка такой же секретный элемент, как и ключ шифрования. Для таких систем эффективная длина ключа алгоритма (256 бит) увеличивается еще на 64 бит секретной синхропосылки, которую также можно рассматривать как ключевой элемент.

В режиме гаммирования с обратной связью для заполнения регистров Л", и ІУ 2 , начиная со 2-го блока, используется не предыдущий блок гаммы, а результат зашифрования предыдущего блока открытого текста (рис. 6.4). Первый же блок в данном режиме генерируется полностью аналогично предыдущему.

Рассматривая режим генерации имитоприставок, следует определить понятие предмета генерации. Имитоприставка - это криптографическая контрольная сумма, вычисляемая с исполь-

Рис. 6.4.

зованием ключа шифрования и предназначенная для проверки целостности сообщений. При генерации имитоприставки выполняются следующие операции: первый 64-битовый блок массива информации, для которого вычисляется имитоприставка, записывается в регистры ^ и А^ 2 и зашифровывается в сокращенном режиме простой замены (выполняются первые 16 раундов из 32). Полученный результат суммируется по модулю 2 со следующим блоком информации с сохранением результата в Л", и Ы 2 .

Цикл повторяется до последнего блока информации. Получившееся в результате этих преобразований 64-битовое содержимое регистров Л^, и А^ 2 или его часть и называется имитопри-ставкой. Размер имитоприставки выбирается, исходя из требуемой достоверности сообщений: при длине имитоприставки г бит вероятность, что изменение сообщения останется незамеченным, равна 2~ г.

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

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

Алгоритм ГОСТ 28147-89 является очень стойким алгоритмом - в настоящее время для его раскрытия не предложено более эффективных методов, чем упомянутый выше метод «грубой силы». Его высокая стойкость достигается в первую очередь за счет большой длины ключа - 256 бит. При использовании секретной синхропосылки эффективная длина ключа увеличивается до 320 бит, а засекречивание таблицы замен прибавляет дополнительные биты. Кроме того, криптостойкость зависит от количества раундов преобразований, которых по ГОСТ 28147-89 должно быть 32 (полный эффект рассеивания входных данных достигается уже после 8 раундов).

Стандарт шифрования AES. В 1997 г. Американский институт стандартизации NIST (National Institute of Standards & Technology) объявил конкурс на новый стандарт симметричного криптоалгоритма, названного AES (Advanced Encryption Standard). К его разработке были подключены самые крупные центры криптологии всего мира. Победитель этого соревнования фактически становился мировым криптостандартом на ближайшие 10-20 лет.

К криптоалгоритмам - кандидатам на новый стандарт AES - были предъявлены следующие требования:

  • алгоритм должен быть симметричным;
  • алгоритм должен быть блочным шифром;
  • алгоритм должен иметь длину блока 128 бит и поддерживать три длины ключа: 128, 192 и 256 бит.

Дополнительно разработчикам криптоалгоритмов рекомендовалось:

  • использовать операции, легко реализуемые как аппаратно (в микрочипах), так и программно (на персональных компьютерах и серверах);
  • ориентироваться на 32-разрядные процессоры;
  • не усложнять без необходимости структуру шифра, для того чтобы все заинтересованные стороны были в состоянии самостоятельно провести независимый криптоанализ алгоритма и убедиться, что в нем не заложено каких-либо недокументированных возможностей.

Итоги конкурса были подведены в октябре 2000 г. - победителем был объявлен алгоритм Rijndael, разработанный двумя криптографами из Бельгии, Винсентом Риджменом (Vincent Rijmen) и Джоан Даймен (Joan Daemen). Алгоритм Rijndael стал новым стандартом шифрования данных AES .

Алгоритм AES не похож на большинство известных алгоритмов симметричного шифрования, структура которых носит название «сеть Фейстеля» и аналогична российскому ГОСТ 28147-89. В отличие от отечественного стандарта шифрования, алгоритм AES представляет каждый блок обрабатываемых данных в виде двухмерного байтового массива размером 4x4, 4x6 или 4 х 8 в зависимости от установленной длины блока (допускается использование нескольких фиксированных размеров шифруемого блока информации). Далее на соответствующих этапах производятся преобразования либо над независимыми столбцами, либо над независимыми строками, либо вообще над отдельными байтами.

Алгоритм AES состоит из определенного количества раундов (от 10 до 14 - это зависит от размера блока и длины ключа) и выполняет четыре преобразования:

BS (ByteSub) - табличная замена каждого байта массива (рис. 6.5);

SR (ShiftRow) - сдвиг строк массива (рис. 6.6). При этой операции первая строка остается без изменений, а остальные циклически побайтно сдвигаются влево на фиксированное число байт, зависящее от размера массива. Например, для массива размером 4x4 строки 2, 3 и 4 сдвигаются соответственно на 1, 2 и 3 байта;

МС (MixColumn) - операция над независимыми столбцами массива (рис. 6.7), когда каждый столбец по определенному правилу умножается на фиксированную матрицу с(х);

АК (AddRoundKey) - добавление ключа. Каждый бит массива складывается по модулю 2 с соответствующим битом ключа раунда, который в свою очередь определенным образом вычисляется из ключа шифрования (рис. 6.8).


Рис. 6.5.

для обработки каждого байта массива State

Рис. 6.6. Преобразование SR (ShiftRow) циклически сдвигает три последних

строки в массиве State

d 2 j

к оз

к зз

Рис. 6.8. Преобразование АК (AddRoundKey) производит сложение XOR каждого

столбца массива State со словом из ключевого набора

Эти преобразования воздействуют на массив State, который адресуется с помощью указателя "state". Преобразование AddRoundKey использует дополнительный указатель для адресации ключа раунда Round Key.

Преобразование BS (ByteSub) является нелинейной байтовой подстановкой, которая воздействует независимо на каждый байт массива State, используя таблицу замен (подстановок) iS-box.

В каждом раунде (с некоторыми исключениями) над шифруемыми данными поочередно выполняются перечисленные

преобразования (рис. 6.9). Исключения касаются первого и последнего раундов: перед первым раундом дополнительно выполняется операция А К, а в последнем раунде отсутствует МС.

Рис. 6.9.

В результате последовательность операций при зашифровы-вании выглядит так:

AK, {BS, SR, MC, АК} (повторяется R - 1 раз), BS, SR, АК.

Количество раундов шифрования R в алгоритме AES переменное (10, 12 или 14 раундов) и зависит от размеров блока и ключа шифрования (для ключа также предусмотрено несколько фиксированных размеров).

Расшифровывание выполняется с помощью следующих обратных операций. Выполняется обращение таблицы и табличная замена на инверсной таблице (относительно применяемой при зашифровывании). Обратная операция к SR - это циклический сдвиг строк вправо, а не влево. Обратная операция для МС - умножение по тем же правилам на другую матрицу d(x), удовлетворяющую условию с(х) d{x ) = 1. Добавление ключа АК является обратным самому себе, поскольку в нем используется только операция XOR. Эти обратные операции применяются при расшифровании в последовательности, обратной той, что использовалась при зашифровании.

Все преобразования в шифре AES имеют строгое математическое обоснование. Сама структура и последовательность операций позволяют выполнять данный алгоритм эффективно как на 8-битных так и на 32-битных процессорах. В структуре алгоритма заложена возможность параллельного исполнения некоторых операций, что может поднять скорость шифрования на многопроцессорных рабочих станциях в 4 раза.

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

Недостатком алгоритма AES можно считать лишь его нетрадиционную схему. Дело в том, что свойства алгоритмов, основанных на «сети Фейстеля», хорошо исследованы, a AES, в отличие от них, может содержать скрытые уязвимости, которые могут обнаружиться только по прошествии какого-то времени с момента начала его широкого распространения.

Для шифрования данных применяются и другие симметричные блочные криптоалгоритмы.

Основные режимы работы блочного симметричного

алгоритма

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

Чтобы воспользоваться блочным симметричным алгоритмом для решения разнообразных криптографических задач, разработаны четыре рабочих режима:

  • электронная кодовая книга ЕС В (Electronic Code Book);
  • сцепление блоков шифра СВС (Cipher Block Chaining);
  • обратная связь по шифртексту CFB (Cipher Feed Back);
  • обратная связь по выходу OFB (Output Feed Back).

Эти рабочие режимы первоначально были разработаны для блочного алгоритма DES, но в любом из этих режимов могут работать и другие блочные криптоалгоритмы.


Шифрование является наиболее широко используемым криптографическим методом сохранения конфиденциальности информации, он защищает данные от несанкционированного ознакомления с ними. Для начала рассмотрим основные методы криптографической защиты информации. Словом, криптография - наука о защите информации с использованием математических методов. Существует и наука, противоположная криптографии и посвященная методам вскрытия защищенной информации - криптоанализ . Совокупность криптографии и криптоанализа принято называть криптологией . Криптографические методы могут быть классифицированы различным образом, но наиболее часто они подразделяются в зависимости от количества ключей, используемых в соответствующих криптоалгоритмах (см. рис. 1):

  1. Бесключевые, в которых не используются какие-либо ключи.
  2. Одноключевые - в них используется некий дополнительный ключевой параметр - обычно это секретный ключ.
  3. Двухключевые, использующие в своих вычислениях два ключа: секретный и открытый.

Рис. 1. Криптоалгоритмы

Обзор криптографических методов

Шифрование является основным методом защиты; рассмотрим его подробно далее.

Стоит сказать несколько слов и об остальных криптографических методах:

  1. Электронная подпись используется для подтверждения целостности и авторства данных. Целостность данных означает, что данные не были случайно или преднамеренно изменены при их хранении или передаче.
    Алгоритмы электронной подписи используют два вида ключей:
    • секретный ключ используется для вычисления электронной подписи;
    • открытый ключ используется для ее проверки.
    При использовании криптографически сильного алгоритма электронной подписи и при грамотном хранении и использовании секретного ключа (то есть при невозможности использования ключа никем, кроме его владельца) никто другой не в состоянии вычислить верную электронную подпись какого-либо электронного документа.
  2. Аутентификация позволяет проверить, что пользователь (или удаленный компьютер) действительно является тем, за кого он себя выдает. Простейшей схемой аутентификации является парольная - в качестве секретного элемента в ней используется пароль, который предъявляется пользователем при его проверке. Такая схема доказано является слабой, если для ее усиления не применяются специальные административно-технические меры. А на основе шифрования или хэширования (см. ниже) можно построить действительно сильные схемы аутентификации пользователей.
  3. Существуют различные методы криптографического контрольного суммирования:
    • ключевое и бесключевое хэширование;
    • вычисление имитоприставок;
    • использование кодов аутентификации сообщений.
    Фактически, все эти методы различным образом из данных произвольного размера с использованием секретного ключа или без него вычисляют некую контрольную сумму фиксированного размера, однозначно соответствующую исходным данным.
    Такое криптографическое контрольное суммирование широко используется в различных методах защиты информации, например:
    • для подтверждения целостности любых данных в тех случаях, когда использование электронной подписи невозможно (например, из-за большой ресурсоемкости) или является избыточным;
    • в самих схемах электронной подписи - "подписывается" обычно хэш данных, а не все данные целиком;
    • в различных схемах аутентификации пользователей.
  4. Генераторы случайных и псевдослучайных чисел позволяют создавать последовательности случайных чисел, которые широко используются в криптографии, в частности:
    • случайные числа необходимы для генерации секретных ключей, которые, в идеале, должны быть абсолютно случайными;
    • случайные числа применяются во многих алгоритмах электронной подписи;
    • случайные числа используются во многих схемах аутентификации.
    Не всегда возможно получение абсолютно случайных чисел - для этого необходимо наличие качественных аппаратных генераторов. Однако, на основе алгоритмов симметричного шифрования можно построить качественные генераторы псевдослучайных чисел.
Шифрование

Шифрование информации - это преобразование открытой информации в зашифрованную (которая чаще всего называется шифртекстом или криптограммой ), и наоборот. Первая часть этого процесса называется зашифрованием , вторая - расшифрованием .

Можно представить зашифрование в виде следующей формулы:

С = E k1 (M),

где:
M (message) - открытая информация,
С (cipher text) - полученный в результате зашифрования шифртекст,
E (encryption) - функция зашифрования, выполняющая криптографические преобразования над M ,
k1 (key) - параметр функции E , называемый ключом зашифрования.

В стандарте ГОСТ 28147-89 (стандарт определяет отечественный алгоритм симметричного шифрования) понятие ключ определено следующим образом: "Конкретное секретное состояние некоторых параметров алгоритма криптографического преобразования, обеспечивающее выбор одного преобразования из совокупности всевозможных для данного алгоритма преобразований".

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

Аналогичным образом можно представить и расшифрование:

M" = D k2 (C),

где:
M" - сообщение, полученное в результате расшифрования,
D (decryption) - функция расшифрования; так же, как и функция зашифрования, выполняет криптографические преобразования над шифртекстом,
k2 - ключ расшифрования.

Для получения в результате расшифрования корректного открытого текста (то есть того самого, который был ранее зашифрован: M" = M), необходимо одновременное выполнение следующих условий:

  1. Функция расшифрования должна соответствовать функции зашифрования.
  2. Ключ расшифрования должен соответствовать ключу зашифрования.

При отсутствии верного ключа k2 получить исходное сообщение M" = M с помощью правильной функции D невозможно. Под словом "невозможно" в данном случае обычно понимается невозможность вычисления за реальное время при существующих вычислительных ресурсах.

Алгоритмы шифрования можно разделить на две категории (см. рис. 1):

  1. Алгоритмы симметричного шифрования.
  2. Алгоритмы асимметричного шифрования.

В алгоритмах симметричного шифрования для расшифрования обычно используется тот же самый ключ, что и для зашифрования, или ключ, связанный с ним каким-либо простым соотношением. Последнее встречается существенно реже, особенно в современных алгоритмах шифрования. Такой ключ (общий для зашифрования и расшифрования) обычно называется просто ключом шифрования .

В асимметричном шифровании ключ зашифрования k1 легко вычисляется из ключа k2 таким образом, что обратное вычисление невозможно. Например, соотношение ключей может быть таким:

k1 = a k2 mod p,

где a и p - параметры алгоритма шифрования, имеющие достаточно большую размерность.

Такое соотношение ключей используется и в алгоритмах электронной подписи.

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

Симметричное шифрование менее удобно из-за того, что при передаче зашифрованной информации кому-либо необходимо, чтобы адресат заранее получил ключ для расшифрования информации. У асимметричного шифрования такой проблемы нет (поскольку открытый ключ можно свободно передавать по сети), однако, есть свои проблемы, в частности, проблема подмены открытого ключа и медленная скорость шифрования. Наиболее часто асимметричное шифрование используется в паре с симметричным - для передачи ключа симметричного шифрования, на котором шифруется основной объем данных. Впрочем, схемы хранения и передачи ключей - это тема отдельной статьи. Здесь же позволю себе утверждать, что симметричное шифрование используется гораздо чаще асимметричного, поэтому остальная часть статьи будет посвящена только симметричному шифрованию.

Симметричное шифрование бывает двух видов:

  • Блочное шифрование - информация разбивается на блоки фиксированной длины (например, 64 или 128 бит), после чего эти блоки поочередно шифруются. Причем, в различных алгоритмах шифрования или даже в разных режимах работы одного и того же алгоритма блоки могут шифроваться независимо друг от друга или "со сцеплением" - когда результат зашифрования текущего блока данных зависит от значения предыдущего блока или от результата зашифрования предыдущего блока.
  • Поточное шифрование - необходимо, прежде всего, в тех случаях, когда информацию невозможно разбить на блоки - скажем, некий поток данных, каждый символ которых должен быть зашифрован и отправлен куда-либо, не дожидаясь остальных данных, достаточных для формирования блока. Поэтому алгоритмы поточного шифрования шифруют данные побитно или посимвольно. Хотя стоит сказать, что некоторые классификации не разделяют блочное и поточное шифрование, считая, что поточное шифрование - это шифрование блоков единичной длины.

Рассмотрим, как выглядят изнутри алгоритмы блочного симметричного шифрования.Структура алгоритмов шифрования

Подавляющее большинство современных алгоритмов шифрования работают весьма схожим образом: над шифруемым текстом выполняется некое преобразование с участием ключа шифрования, которое повторяется определенное число раз (раундов). При этом, по виду повторяющегося преобразования алгоритмы шифрования принято делить на несколько категорий. Здесь также существуют различные классификации, приведу одну из них. Итак, по своей структуре алгоритмы шифрования классифицируются следующим образом:

  1. Алгоритмы на основе сети Фейстеля.

    Сеть Фейстеля подразумевает разбиение обрабатываемого блока данных на несколько субблоков (чаще всего - на два), один из которых обрабатывается некоей функцией f() и накладывается на один или несколько остальных субблоков. На рис. 2 приведена наиболее часто встречающаяся структура алгоритмов на основе сети Фейстеля.

    Рис. 2. Структура алгоритмов на основе сети Фейстеля.

    Дополнительный аргумент функции f() , обозначенный на рис. 2 как Ki , называется ключом раунда . Ключ раунда является результатом обработки ключа шифрования процедурой расширения ключа, задача которой - получение необходимого количества ключей Ki из исходного ключа шифрования относительно небольшого размера (в настоящее время достаточным для ключа симметричного шифрования считается размер 128 бит). В простейших случаях процедура расширения ключа просто разбивает ключ на несколько фрагментов, которые поочередно используются в раундах шифрования; существенно чаще процедура расширения ключа является достаточно сложной, а ключи Ki зависят от значений большинства бит исходного ключа шифрования.

    Наложение обработанного субблока на необработанный чаще всего выполняется с помощью логической операции "исключающее или" - XOR (как показано на рис. 2). Достаточно часто вместо XOR здесь используется сложение по модулю 2 n , где n - размер субблока в битах. После наложения субблоки меняются местами, то есть в следующем раунде алгоритма обрабатывается уже другой субблок данных.

    Такая структура алгоритмов шифрования получила свое название по имени Хорста Фейстеля (Horst Feistel) - одного из разработчиков алгоритма шифрования Lucifer и разработанного на его основе алгоритма DES (Data Encryption Standard) - бывшего (но до сих пор широко используемого) стандарта шифрования США. Оба этих алгоритма имеют структуру, аналогичную показанной на рис. 2. Среди других алгоритмов, основанных на сети Фейстеля, можно привести в пример отечественный стандарт шифрования ГОСТ 28147-89, а также другие весьма известные алгоритмы: RC5, Blowfish, TEA, CAST-128 и т.д.

    На сети Фейстеля основано большинство современных алгоритмов шифрования - благодаря множеству преимуществ подобной структуры, среди которых стоит отметить следующие:

    • Алгоритмы на основе сети Фейстеля могут быть сконструированы таким образом, что для зашифрования и расшифрования могут использоваться один и тот же код алгоритма - разница между этими операциями может состоять лишь в порядке применения ключей Ki; такое свойство алгоритма наиболее полезно при его аппаратной реализации или на платформах с ограниченными ресурсами; в качестве примера такого алгоритма можно привести ГОСТ 28147-89.
  2. Алгоритмы на основе сети Фейстеля являются наиболее изученными - таким алгоритмам посвящено огромное количество криптоаналитических исследований, что является несомненным преимуществом как при разработке алгоритма, так и при его анализе.

    Существует и более сложная структура сети Фейстеля, пример которой приведен на рис. 3.

    Рис. 3. Структура сети Фейстеля.

    Такая структура называется обобщенной или расширенной сетью Фейстеля и используется существенно реже традиционной сети Фейстеля. Примером такой сети Фейстеля может служить алгоритм RC6.

  3. Алгоритмы на основе подстановочно-перестановочных сетей (SP-сеть - Substitution-permutation network).

    В отличие от сети Фейстеля, SP-сети обрабатывают за один раунд целиком шифруемый блок. Обработка данных сводится, в основном, к заменам (когда, например, фрагмент входного значения заменяется другим фрагментом в соответствии с таблицей замен, которая может зависеть от значения ключа Ki ) и перестановкам, зависящим от ключа Ki (упрощенная схема показана на рис. 4).

    Рис. 4. Подстановочно-перестановочная сеть.

    Впрочем, такие операции характерны и для других видов алгоритмов шифрования, поэтому, на мой взгляд, название "подстановочно-перестановочная сеть" является достаточно условным.

    SP-сети распространены существенно реже, чем сети Фейстеля; в качестве примера SP-сетей можно привести алгоритмы Serpent или SAFER+.

  4. Алгоритмы со структурой "квадрат" (Square).

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

    Структура алгоритма получила свое название от алгоритма Square, который был разработан в 1996 году Винсентом Риджменом (Vincent Rijmen) и Джоан Деймен (Joan Daemen) - будущими авторами алгоритма Rijndael, ставшего новым стандартом шифрования США AES после победы на открытом конкурсе. Алгоритм Rijndael также имеет Square-подобную структуру; также в качестве примера можно привести алгоритмы Shark (более ранняя разработка Риджмена и Деймен) и Crypton. Недостатком алгоритмов со структурой "квадрат" является их недостаточная изученность, что не помешало алгоритму Rijndael стать новым стандартом США.

    Рис. 5. Алгоритм Rijndael.

    На рис. 5 приведен пример операции над блоком данных, выполняемой алгоритмом Rijndael.

  5. Алгоритмы с нестандартной структурой, то есть те алгоритмы, которые невозможно причислить ни к одному из перечисленных типов. Ясно, что изобретательность может быть безгранична, поэтому классифицировать все возможные варианты алгоритмов шифрования представляется сложным. В качестве примера алгоритма с нестандартной структурой можно привести уникальный по своей структуре алгоритм FROG, в каждом раунде которого по достаточно сложным правилам выполняется модификация двух байт шифруемых данных (см. рис. 6).

    Рис. 6. Модификация двух байт шифруемых данных.

    Строгие границы между описанными выше структурами не определены, поэтому достаточно часто встречаются алгоритмы, причисляемые различными экспертами к разным типам структур. Например, алгоритм CAST-256 относится его автором к SP-сети, а многими экспертами называется расширенной сетью Фейстеля. Другой пример - алгоритм HPC, называемый его автором сетью Фейстеля, но относимый экспертами к алгоритмам с нестандартной структурой.

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

Первые шифры использовались еще во времена Древнего Рима, Древнего Египта и Древней Греции. Одним из известных шифров является шифр Цезаря . Данный алгоритм работал следующим образом: каждая буква имеет свой порядковый номер в алфавите, который сдвигался на $3$ значения влево. Сегодня подобный алгоритм не обеспечивает ту защиту, которую давал во времена его использования.

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

Разделяют алгоритмы шифрования на симметричные (к ним относятся AES, CAST, ГОСТ, DES, Blowfish) и асимметричные (RSA, El-Gamal).

Симметричные алгоритмы

Замечание 1

Симметричными алгоритмами шифрования используется один и тот же ключ для шифрования и дешифрования информации.

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

Асимметричные алгоритмы

Замечание 2

Асимметричными алгоритмами используется два ключа – один для шифрования, другой – для дешифрования.

Каждый пользователь должен обладать парой ключей – открытым и секретным ключом.

Ключ шифрования

Определение 1

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

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

Программы для шифрования (WinRAR, Rohos и т.д.) создают ключ из пароля, задаваемого пользователем.

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

Стойкость алгоритма шифрования

Замечание 3

Алгоритм шифрования считается стойким до тех пор, пока не доказано обратное.

Алгоритмы шифрования

Алгоритм AES (Rijndael) на данный момент является федеральным стандартом шифрования США. В качестве стандарта утвержден Министерством торговли в $2001$ г. Стандартом считается вариант шифра с размером блока $128$ бит. Разработан в $1997$ г. в Бельгии. Возможными размерами ключа являются ключи $128, 192$ и $256$ бит.

Алгоритм ГОСТ 28147-8 является стандартом Российской Федерации на шифрование и имитозащиту данных. Официальным стандартом стал в $1989$ г. Разработан в $1970$-х гг. в Главном Управлении КГБ СССР. Использует ключ размером $256$ бит.

Алгоритм Blowfish использует сложную схему создания ключей, что существенно затрудняет атаку на алгоритм методом перебора. Непригоден для использования в системах частого изменения ключа и при шифровании небольших по объему данных. Алгоритм лучше всего использовать для систем, в которых существует необходимость шифрования больших массивов данных. Разработан в $1993$ г. Используется размер ключа от $32$ до $448$ бит.

Алгоритм DES являлся Федеральным стандартом шифрования США в $1977-2001$ годах. Федеральным стандартом принят в $1977$ г. после введения в действие нового стандарта в $2001$ г. утратил статус стандарта. Разработан в $1972–1975$ гг. исследовательской лабораторией корпорации IBM. Использует ключ размером $56$ бит.

Алгоритм CAST является некоторым образом аналогом алгоритма DES. Использует ключи размером $128$ и $256$ бит.

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

1. Что такое криптография?

Криптография — это теоретическая научная дисциплина, раздел математики, изучающая вопросы преобразования информации с целью ее защиты от разумных действий противника.

2. Что такое алгоритм шифрования?

Алгоритм шифрования — это набор логических правил, определяющих процесс преобразования информации из открытого состояния в зашифрованное (зашифровывание) и, наоборот, из зашифрованного состояния в открытое (расшифровывание).

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

3. Как с помощью шифрования защищаются данные?

Основной принцип защиты данных с помощью шифрования — это зашифровывание данных. Зашифрованные данные для постороннего выглядят как «информационный мусор» — бессмысленный набор символов. Таким образом, если информация в зашифрованном виде попадет к злоумышленнику, он просто не сможет ей воспользоваться.

4. Какой алгоритм шифрования самый стойкий?

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

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

5. Что такое ключ шифрования?

Ключ шифрования — это случайная, псевдослучайная или специальным образом сформированная последовательность бит, являющаяся переменным параметром алгоритма шифрования.

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

Ключ шифрования имеет одну существенную характеристику — длину, которая, как правило, измеряется в битах.

6. Какие бывают алгоритмы шифрования?

Алгоритмы шифрования делятся на два больших класса — симметричные и асимметричные (или несимметричные).

Симметричные алгоритмы шифрования используют один и тот же ключ для зашифровывания информации и для ее расшифровывания. При этом ключ шифрования должен быть секретным.

Симметричные алгоритмы шифрования, как правило, просты в реализации и не требуют для своей работы много вычислительных ресурсов. Однако неудобство таких алгоритмов проявляется в случаях, когда, например, двум пользователям надо обменяться ключами. В этом случае пользователям надо или непосредственно встретиться друг с другом, или иметь какой-то надежный, защищенный от перехвата канал для пересылки ключа, что не всегда возможно.

Примеры симметричных алгоритмов шифрования — DES, RC4, RC5, AES, CAST.

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

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

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

Примеры асимметричных алгоритмов шифрования — RSA, El-Gamal.

7. Как взламывают алгоритмы шифрования?

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

Существует много различных способов и методов криптоанализа, большинство из которых слишком сложно и объемно для воспроизведения здесь.

Единственный метод, который уместно упомянуть — метод прямого перебора всех возможных значений ключа шифрования (также называемый методом «грубой силы», или brute force). Суть данного метода состоит в переборе всех возможных значений ключа шифрования до тех пор, пока не будет подобран нужный ключ.

8. Какова должна быть длина ключа шифрования?

На сегодняшний день для симметричных алгоритмов шифрования достаточной длиной ключа шифрования считается 128 бит (16 байт). Для полного перебора всех возможных ключей длиной 128 бит (атака brute force) за один год необходимо наличие 4,2х1022 процессоров производительностью 256 миллионов операций шифрования в секунду. Стоимость такого количества процессоров составляет 3,5х1024 долларов США (по данным Bruce Schneier, Applied Cryptography).

Существует международный проект distributed.net , целью которого является объединение пользователей Интернет для создания виртуального распределенного суперкомпьютера, занимающегося перебором ключей шифрования. Последний проект по взлому ключа 64 бит был завершен в течение 1757 дней, в нем приняло участие более трехсот тысяч пользователей, а вычислительная мощность всех компьютеров проекта была эквивалентна почти 50.000 процессорам AMD Athlon XP с тактовой частотой 2 ГГц.

При этом следует учитывать, что увеличение длины ключа шифрования на один бит увеличивает количество значений ключа, а, следовательно, и время перебора, в два раза. То есть, исходя из вышеприведенных цифр, за время 1757 * 2 дней можно взломать не 128-битный ключ, как может показаться на первый взгляд, а всего лишь 65-битный.

9. Я слышал о ключах шифрования 1024 и даже 2048 бит, а вы говорите, что 128 бит вполне достаточно. Что это значит?

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

Ответ на этот вопрос — самая охраняемая тайна спецслужб любого государства. С теоретической точки зрения прочитать данные, зашифрованные с помощью известного алгоритма ключом достаточной длины невозможно (см. предыдущие вопросы), однако, кто знает, что скрывается за завесой государственной тайны? Вполне может оказаться, что существуют какие-то технологии инопланетян, известные правительству, с помощью которых можно взломать любой шифр 🙂

Единственное, что можно утверждать с уверенностью — ни одно государство, ни одна спецслужба не раскроет этого секрета, и даже в случае наличия возможности как-то расшифровывать данные, никогда и никак этого не проявит.

Для иллюстрации этого утверждения можно привести исторический пример. Во время второй мировой войны британскому премьер-министру Уинстону Черчиллю в результате перехвата и дешифровки немецких сообщений стало известно о предстоящей бомбардировке города Ковентри. Несмотря на это, он не принял никаких мер, чтобы противник не узнал о том, что британская разведка может дешифровать их сообщения. В результате, в ночь с 14 на 15 ноября 1940 года Ковентри был разрушен немецкой авиацией, погибло большое количество мирных жителей. Таким образом, для Черчилля цена разглашения информации о том, что он может дешифровать немецкие сообщения, оказалась выше цены нескольких тысяч человеческих жизней.

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

Источник: SecurIT

^ вернуться в начало ^

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

Симметричные алгоритмы
Алгоритмы шифрования делятся на два больших класса: симметричные (AES, ГОСТ, Blowfish, CAST, DES) и асимметричные (RSA, El-Gamal). Симметричные алгоритмы шифрования используют один и тот же ключ для зашифровывания информации и для ее расшифровывания, а асимметричные алгоритмы используют два ключа — один для зашифровывания, другой для расшифровывания.

Если зашифрованную информацию необходимо передавать в другое место, то в этом надо передавать и ключ для расшифрования. Слабое место здесь — это канал передачи данных — если он не защищенный или его прослушивают, то ключ для расшифрования может попасть к злоумышленику. Системы на ассиметричных алгоритмах лишены этого недостатка. Поскольку каждый участник такой системы обладает парой ключей: Открытым и Секретным Ключом.

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

Обычно в Программах для шифрования (WinRAR, Rohos и т.д.) ключ создается из пароля, который задает пользователь.

Ключ шифрования бывает разной длины, которая, как правило, измеряется в битах. С увеличением длины ключа повышается теоритическая стойкость шифра. На практике это не всегда верно.

В криптографии считается, что механизм шифрования — это несекретная величина, и злоумышленник может иметь полный исходный код алгоритма шифрования, а также зашифрованный текст (правило Керкхоффа). Еще одно допущение, которое может иметь место — злоумышленник может знать часть незашифрованного (открытого) текста.

Стойкость алгоритма шифрования.
Алгоритм шифрования считается стойким до тех пор, пока не будет доказано обратное. Таким образом, если алгоритм шифрования опубликован, существует более 5 лет, и для него не найдено серьезных уязвимостей, можно считать, что его стойкость подходит для задач защиты секретной информации.

Теоретическая и практическая стойкость.
В 1949 г. К.Э. Шеннон опубликовал статью «Теория связи в секретных системах». Шеннон рассматривал стойкость криптографических систем как Практическую и Теоритическую. Вывод по теоритической стойкости до сих пор остается пессимистическим: длина ключа должна быть равна длине открытого текста.
Поэтому Шеннон также рассмотрел вопрос и по практической стойкости криптографических систем. Надежна ли система, если злоумышленник обладает ограниченным временем и вычислительными ресурсами для анализа перехваченных сообщений?

Обычно уязвимости находят в программах, которые шифруют данные по какому-либо алгоритму. В этом случае, программисты допускают ошибку в логике программы или в криптографическом протоколе, благодaря чему, изучив, как работает программа (на низком уровне), можно в итоге получить доступ к секретной информации.

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

В криптологии есть подраздел — криптоанализ, который изучает вопросы взлома или подделывания зашифрованных сообщений. Существует много способов и методов криптоанализа. Самый популярный — это метод прямого перебора всех возможных значений ключа шифрования (так называемым методом «грубой силы» или brute force). Суть данного метода состоит в переборе всех возможных значений ключа шифрования до тех пор, пока не будет подобран нужный ключ.

На практике это означает, что злоумышленник должен:

  • Иметь в распоряжении криптосистему (т.е. программу) и примеры зашифрованных сообщений.
  • Разобраться в криптографическом протоколе. Иначе говоря, как программа шифрует данные.
  • Разработать и реализовать алгоритм перебора Ключей для этой криптосистемы.

Как определить, что ключ верный или нет?
Все зависит от конкретной программы и реализации протокола шифрования. Обычно, если после расшифрования получился ‘мусор’, то это неверный Ключ. А если более менее осмысленный текст (это можно проверить), то значит, Ключ верный.

Алгоритмы шифрования
AES (Rijndael) . В настоящее время является федеральным стандартом шифрования США.

Какой алгоритм шифровки выбрать для защиты информации?

Утвержден министерством торговли в качестве стандарта 4 декабря 2001 года. Решение вступило в силу с момента опубликования в федеральном реестре (06.12.01). В качестве стандарта принят вариант шифра только с размером блока 128 бит.

ГОСТ 28147-8. Стандарт Российской Федерации на шифрование и имитозащиту данных. Первоначально имел гриф (ОВ или СС — точно не известно), затем гриф последовательно снижался, и к моменту официального проведения алгоритма через Госстандарт СССР в 1989 году был снят. Алгоритм остался ДСП (как известно, ДСП не считается грифом). В 1989 году стал официальным стандартом СССР, а позже, после распада СССР, федеральным стандартом Российской Федерации.

Blowfish Сложная схема выработки ключевых элементов существенно затрудняет атаку на алгоритм методом перебора, однако делает его непригодным для использования в системах, где ключ часто меняется, и на каждом ключе шифруется небольшие по объему данные.

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

DES Федеральный стандарт шифрования США в 1977-2001 годах. В качестве федерального стандарта США принят в 1977 году. В декабре 2001 года утратил свой статус в связи с введением в действие нового стандарта.

CAST В некотором смысле аналог DES.

www.codenet.ru/progr/alg/enc
Алгоритмы шифрования, Обзор, информация, сравнение.

http://www.enlight.ru/crypto
Материалы по асимметричному шифрованию, цифровой подписи и другим «современным» криптографическим системам.

Александр Великанов,
Ольга Чебан,
Tesline-Service SRL.

Бывший банкир из Абу-Даби Мохаммад Гейт бин Махах Аль Мазруи разработал шифр, который, как он заявляет, невозможно взломать. Шифр под названием «Код Абу-Даби» создан на основе группы символов, придуманных самим Аль Мазруи. В его коде каждая буква заменена специально изобретенным символом, и эти символы не принадлежат ни одному из известных в мире языков.

Какие алгоритмы шифрования данных более безопасны

Для работы над шифром, который Аль Мазруи называет «абсолютно новым», разработчику понадобилось полтора года.

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

Однако Аль Мазруи уверяет, что его творение не поддается взлому и является на сегодня самым надежным шифром. «Расшифровать документ, закодированный «Кодом Абу-Даби», практически невозможно», — уверен Аль Мазруи.

Чтобы доказать свою правоту, банкир бросил вызов всем незаурядным шифровальщикам, хакерам и криптографам, призывая их попробовать взломать его шифр.

3. Криптос — скульптура, которую американский ваятель Джеймс Сэнборн установил на территории штаб-квартиры ЦРУ в Лэнгли, штат Вирджиния, в 1990 году. Зашифрованное послание, нанесенное на нее, до сих пор не могут разгадать.

4. Шифр, нанесенный на китайский золотой слиток . Семь золотых слитков были в 1933 году предположительно выданы генералу Ваню в Шанхае. На них нанесены картинки, китайские письмена и какие-то зашифрованные сообщения, в том числе латинскими буквами. Они, возможно, содержат свидетельства подлинности металла, выданные одним из банков США.

Какой алгоритм шифрования выбрать в TrueCrypt

5. Криптограммы Бейла — три зашифрованных сообщения, которые, как предполагается, содержат сведения о местонахождении клада из двух фургонов золота, серебра и драгоценных камней, зарытого в 1820-х годах под Линчбергом, что в округе Бедфорд, штат Виргиния, партией золотоискателей под предводительством Томаса Джефферсона Бейла. Цена не найденного доныне клада в пересчете на современные деньги должна составлять около 30 млн долларов. Загадка криптограмм не раскрыта до сих пор, в частности, спорным остается вопрос о реальном существовании клада. Одно из сообщений расшифровано — в нем описан сам клад и даны общие указания на его местоположение. В оставшихся нераскрытыми письменах, возможно, содержатся точное место закладки и список владельцев клада. (подробная информация)

6. Рукопись Войнича , которую часто называют самой таинственной в мире книгой. В рукописи использован уникальный алфавит, в ней около 250 страниц и рисунки, изображающие неведомые цветы, обнаженных нимф и астрологические символы. Впервые она появилась в конце XVI века, когда император Священной Римской империи Рудольф II купил ее в Праге у неизвестного торговца за 600 дукатов (около 3,5 кг золота, сегодня более 50 тысяч долларов). От Рудольфа II книга перешла к дворянам и ученым, а в конце XVII века исчезла. Манускрипт вновь появился примерно в 1912 году, когда его купил американский книготорговец Вилфрид Войнич. После его смерти рукопись была передана в дар Йельскому университету. Британский ученый Гордон Рагг считает, что книга — искусная мистификация. В тексте есть особенности, не свойственные ни одному из языков. С другой стороны, некоторые черты, например, длина слов, способы соединения букв и слогов, похожи на существующие в настоящих языках. «Многие считают, что все это слишком сложно для мистификации, чтобы выстроить такую систему, какому-нибудь безумному алхимику потребовались бы годы», — говорит Рагг. Однако Рагг показывает, что добиться такой сложности можно было легко, используя шифровальное устройство, придуманное примерно в 1550 году и названное сеткой Кардана. В этой таблице символов слова создаются передвижением карточки с прорезанными в ней отверстиями. Благодаря пробелам, оставленным в таблице, слова получаются разной длины. Накладывая такие решетки на таблицу слогов манускрипта, Рагг создал язык, которому присущи многие, если не все, особенности языка рукописи. По его словам, на создание всей книги хватило бы трех месяцев. (подробная информация, википедия)

7. Шифр Дорабелла , составленный в 1897 году британским композитором сэром Эдвардом Уильямом Эльгаром. В зашифрованном виде он отправил письмо в город Вульвергемптон своей подруге Доре Пенни, 22-летней дочери Альфреда Пенни, настоятеля собора святого Петра. Этот шифр остается неразгаданным.

8. До недавнего времени в списке присутствовал и чаошифр , который не смогли раскрыть при жизни его создателя. Шифр изобрел Джон Ф. Байрн в 1918 году, и в течение почти 40 лет безуспешно пытался заинтересовать им власти США. Изобретатель предложил денежную награду тому, кто сможет раскрыть его шифр, но в результате никто за ней не обратился.

Но в мае 2010 года члены семьи Байрна передали все оставшиеся от него документы в Национальный музей криптографии в Мэрилэнде, что привело к раскрытию алгоритма.

9. Шифр Д’Агапейеффа . В 1939 году британский картограф русского происхождения Александер Д’Агапейефф опубликовал книгу по основам криптографии Codes and Ciphers, в первом издании которой привел шифр собственного изобретения. В последующие издания этот шифр включен не был. Впоследствии Д`Агапейефф признался, что забыл алгоритм раскрытия этого шифра. Подозревают, что неудачи, постигшие всех, кто пытался расшифровать его работу, вызваны тем, что при зашифровке текста автор допускал ошибки.

Но в наше время появилась надежда, что шифр удастся раскрыть с использованием современных методов — например, генетического алгоритма.

10. Таман Шуд . 1 декабря 1948 года на побережье Австралии в Сомертоне, что под Аделаидой, было найдено мертвое тело мужчины, одетого в свитер и пальто, несмотря на характерно жаркий для австралийского климата день. Документов при нем не обнаружили. Попытки сравнить отпечатки его зубов и пальцев с имеющимися данными на живых людей также ни к чему не привели. Патологоанатомическое освидетельствование выявило противоестественный прилив крови, которой была наполнена, в частности, его брюшная полость, а также увеличение внутренних органов, но никаких инородных веществ в его организме при этом найдено не было. На железнодорожной станции одновременно нашли чемодан, который мог принадлежать погибшему. В чемодане лежали брюки с секретным карманом, в котором нашли вырванный из книги кусок бумаги с напечатанными на нем словами Taman Shud . Следствие установило, что клочок бумаги был вырван из очень редкого экземпляра сборника «Рубаи» великого персидского поэта Омара Хайяма. Сама книга была обнаружена на заднем сидении автомобиля, брошенного незапертым. На задней обложке книги были небрежно набросаны пять строк заглавными буквами — смысл этого послания разгадать так и не удалось. По сей день эта история остается одной из самых таинственных загадок Австралии.

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

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

Так как возможности Интернета продолжают расти, все больше и больше наших предприятий проводятся на работу онлайн. Среди этого наиболее важными являются, интернет банк, онлайн оплата, электронные письма, обмен частными и служебными сообщениями и др., которые предусматривают обмен конфиденциальными данными и информацией. Если эти данные попадут в чужие руки, это может нанести вред не только отдельному пользователю, но и всей онлайн системе бизнеса.

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

Типы шифрования

Симметричное шифрование

При симметричном шифровании, нормальные читабельные данные, известные как обычный текст, кодируется (шифруется), так, что он становится нечитаемым. Это скремблирование данных производится с помощью ключа. Как только данные будут зашифрованы, их можно безопасно передавать на ресивер. У получателя, зашифрованные данные декодируются с помощью того же ключа, который использовался для кодирования.

Таким образом ясно что ключ является наиболее важной частью симметричного шифрования. Он должен быть скрыт от посторонних, так как каждый у кого есть к нему доступ сможет расшифровать приватные данные. Вот почему этот тип шифрования также известен как "секретный ключ".

В современных системах, ключ обычно представляет собой строку данных, которые получены из надежного пароля, или из совершенно случайного источника. Он подается в симметричное шифрование программного обеспечения, которое использует его, чтобы засекретить входные данные. Скремблирование данных достигается с помощью симметричного алгоритма шифрования, такие как Стандарт шифрования данных (DES), расширенный стандарт шифрования (AES), или международный алгоритм шифрования данных (IDEA).

Ограничения

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

Еще один недостаток объясняется тем, что программное обеспечение, которое обрабатывает данные не может работать с зашифрованными данными. Следовательно, для возможности использовать этого программного обеспечение, данные сначала должны быть декодированы. Если само программное обеспечение скомпрометировано, то злоумышленник сможет легко получить данные.

Асимметричное шифрование

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

Ключ, используемый для кодирования доступен любому и всем пользователям сети. Как таковой он известен как «общественный» ключ. С другой стороны, ключ, используемый для расшифровки, хранится в тайне, и предназначен для использования в частном порядке самим пользователем. Следовательно, он известен как «частный» ключ. Асимметричное шифрование также известно, как шифрование с открытым ключом.

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

Diffie-Hellman и RSA являются примерами алгоритмов, использующих шифрование с открытым ключом.

Ограничения

Многие хакеры используют «человека в середине» как форму атаки, чтобы обойти этот тип шифрования. В асимметричном шифровании, вам выдается открытый ключ, который используется для безопасного обмена данными с другим человеком или услугой. Однако, хакеры используют сети обман, чтобы заставить вас общаться с ними, в то время как вас заставили поверить, что вы находитесь на безопасной линии.

Чтобы лучше понять этот тип взлома, рассмотрим две взаимодействующие стороны Сашу и Наташу, и хакера Сергея с умыслом на перехват их разговора. Во-первых, Саша отправляет сообщение по сети, предназначенное для Наташи, прося ее открытый ключ. Сергей перехватывает это сообщение и получает открытый ключ, связанный с ней, и использует его для шифрования и передачи ложного сообщения, Наташе, содержащего его открытый ключ вместо Сашиного.

Наташа, думая, что это сообщение пришло от Саши, теперь шифрует ее с помощью открытого ключа Сергея, и отправляет его обратно. Это сообщение снова перехватил Сергей, расшифровал, изменил (при желании), зашифровал еще раз с помощью открытого ключа, который Саша первоначально отправил, и отправил обратно к Саше.

Таким образом, когда Саша получает это сообщение, его заставили поверить, что оно пришло от Наташи, и продолжает не подозревать о нечестной игре.

Хеширование

Методика хеширования использует алгоритм, известный как хэш-функция для генерации специальной строки из приведенных данных, известных как хэш. Этот хэш имеет следующие свойства:

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

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

Message Digest 5 (MD5) и Secure Hashing Algorithm (SHA) являются двумя широко используемыми алгоритмами хеширования.

Ограничения

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

Сочетание методов шифрования

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

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

Хеширования находит применение как средство проверки надежности пароля. Если система хранит хэш пароля, вместо самого пароля, он будет более безопасным, так как даже если хакеру попадет в руки этот хеш, он не сможет понять (прочитать) его. В ходе проверки, система проверит хэш входящего пароля, и увидит, если результат совпадает с тем, что хранится. Таким образом, фактический пароль будет виден только в краткие моменты, когда он должен быть изменен или проверен, что позволит существенно снизить вероятность его попадания в чужие руки.

Хеширование также используется для проверки подлинности данных с помощью секретного ключа. Хэш генерируется с использованием данных и этого ключа. Следовательно, видны только данные и хэш, а сам ключ не передается. Таким образом, если изменения будут сделаны либо с данными, либо с хэшем, они будут легко обнаружены.

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