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

Основные современные методы шифрования

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

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

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

Алгоритмы, основанные на сложных математических преобразованиях

Алгоритм RSA

Алгоритм RSA (по первым буквам фамилий его создателей Rivest - Shamir - Adleman) основан на свойствах простых чисел (причем очень больших). Простыми называются такие числа, которые не имеют делителей, кроме самих себя и единицы. А взаимно простыми называются числа, не имеющие общих делителей, кроме 1.

Для начала необходимо выбрать два очень больших простых числа (большие исходные числа нужны для построения больших криптостойких ключей. Например, Unix-программа ssh-keygen по умолчанию генерирует ключи длиной 1024 бита). Как результат перемножения р и q определяется параметр n. Затем выбирается случайное число е, причем оно должно быть взаимно простым с числом (n) = (р - 1)*(q - 1). Отыскивается такое число d, для которого верно соотношение

(e*d) mod (n) = 1.

Mod - остаток от деления, т. е. если e, умноженное на d, поделить (n), то в остатке должно получиться 1. Другими словами, числа (e*d - 1) и (n) должны делиться нацело.

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

C(i) = (M(i) e) mod n. (1)

В результате получается последовательность C(i), которая и составит криптотекст. Декодирование информации происходит по формуле

M(i) = (C(i) d) mod n. (2)

Как видно, расшифровка предполагает знание секретного ключа.

Рассмотрим пример на маленьких числах. Пусть р = 3, q = 7. Тогда n = = р*q = 21. Выберем е = 5. Из формулы (d*5) mod 12 = 1 вычисляем d = 17. Следовательно, открытый ключ 17, 21, секретный - 5, 21.

Зашифруем последовательность «2345»:

C 1 = 2 17 mod 21 = 11;

C 2 = 3 17 mod 21 = 12;

C 3 = 4 17 mod 21 = 16;

C 4 = 5 17 mod 21 = 17.

Криптотекст - 11 12 16 17. Проверим расшифровкой:

M 1 = 11 5 mod 21 = 2;

M 2 = 12 5 mod 21 = 3;

M 3 = 16 5 mod 21 = 4;

M 4 = 17 5 mod 21 = 5;

Как видно, результат совпал с изначальным открытым текстом.

Криптосистема RSA широко применяется в Интернете. Когда пользователи подсоединяются к защищенному серверу по протоколу SSL SSL (Secure Socket Layer), протокол защищенных сокетов - протокол, гарантирующий безопасную передачу данных по сети; комбинирует криптографическую систему с открытым ключом и блочное шифрование данных., устанавливает на свой ПК сертификат WebMoney либо подключается к удаленному серверу с помощью Oрen SSH или SecureShell, большинство даже не подозревает, что все эти программы применяют шифрование открытым ключом с использованием идей алгоритма RSA.

Действительно ли эта система так надежна?

С момента своего создания RSA постоянно подвергалась атакам типа brute-force attack (атака методом грубой силы Brute force («грубая сила») - атака, осуществляемая простым перебором всех возможных либо наиболее часто встречающихся ключей (паролей). Во втором случае brute force достаточно часто называют "атакой по словарю".). В 1978 г. авторы алгоритма опубликовали статью, где привели строку, зашифрованную только что изобретенным ими методом. Первому, кто расшифрует сообщение, было назначено вознаграждение в размере 100 долларов, но для этого требовалось разложить на два сомножителя 129-значное число. Это был первый конкурс на взлом RSA. Задачу решили только через 17 лет после публикации статьи.

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

Компания RSA (httр://www.rsa.ru) регулярно проводит конкурсы на взлом собственных (и не только собственных) шифров. Предыдущие конкурсы выиграла организация Distributed.net (httр://www.distributed.net), являющаяся Интернет-сообществом добровольцев.

Участники Distributed.net загружают к себе на ПК небольшую программу-клиент, которая подсоединяется к центральному серверу и получает кусочек данных для вычислений. Затем все данные загружаются на центральный сервер, и клиент получает следующий блок исходной информации. И так происходит до тех пор, пока все комбинации не будут перебраны. Пользователи, участники системы, объединяются в команды, а на сайте ведется рейтинг как команд, так и стран. Например, участвующей в конкурсе по взлому RC5-64 (блочный шифр компании RSA, использующий ключ длиной 64 бита) организации Distributed.net удалось осуществить взлом через пять лет (1757 дней) работы. За это время в проекте участвовали 327 856 пользователей и было перебрано более 15,268*10 18 вариантов ключа. Выяснилось, что была (не без юмора) зашифрована фраза «some things are better left unread» («некоторые вещи лучше оставлять непрочтенными»). Общие рекомендации по шифру RC5-64 таковы: алгоритм достаточно стоек для повседневных нужд, но шифровать им данные, остающиеся секретными на протяжении более пяти лет, не рекомендуется».

Вероятностное шифрование

Одной из разновидностей криптосистем с открытым ключом является вероятностное шифрование, разработанное Шафи Гольвассером и Сильвио Минелли. Его суть состоит в том, чтобы алгоритм шифрования Е подчинить вероятностным моделям. В чем же преимущества такого подхода? Для примера, в системе RSA не «маскируются» 0 и 1. Эту проблему успешно решают вероятностные алгоритмы, поскольку они ставят в соответствие открытому тексту М не просто криптотекст С, а некоторый элемент из множества криптотекстов СМ. При этом каждый элемент этого множества выбирается с некоторой вероятностью. Другими словами, для любого открытого текста М результат работы алгоритма Е будет случайной величиной. Может показаться, что в этом случае дешифровать информацию будет невозможно, но это совсем не так. Для того чтобы сделать возможной дешифровку, нужно, чтобы для разных открытых текстов М 1 и М 2 множества СМ 1 и СМ 2 не пересекались. Также хочется сказать, что вероятностные алгоритмы шифрования являются более надежными, нежели детерминированные. В этой области наиболее распространены вероятностное шифрование на основе RSA-функций и криптосистема Эль-Гамала.

Комбинированные методы шифрования

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

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

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

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

подстановка + гаммирование;

перестановка + гаммирование;

гаммирование + гаммирование;

подстановка + перестановка;

Типичным примером комбинированного шифра является национальный стандарт США криптографического закрытия данных (DES).

Криптографический стандарт DES

В 1973 г. Национальное бюро стандартов США начало разработку программы по созданию стандарта шифрования данных на ЭВМ. Был объявлен конкурс среди фирм-разработчиков, который выиграла фирма IBM, представившая в 1974 году алгоритм шифрования, известный под названием DES (Data Encryption Standart).

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

Алгоритм реализуется в течение 16 аналогичных циклов шифрования, где на i-ом цикле используется цикловой ключ K i , представляющий собой алгоритмически вырабатываемую выборку 48 из 56 битов ключа K i , i = 1,2,…,16.

Алгоритм обеспечивает высокую стойкость, однако недавние результаты показали, что современная технология позволяет создать вычислительное устройство стоимостью около 1 млн. долларов США, способное вскрыть секретный ключ с помощью полного перебора в среднем за 3,5 часа.

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

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

Достигнута высокая скорость шифрования. Она составляет в лучших изделиях 45 Мбит/с. Цена некоторых аппаратных изделий не превышает 100 долларов США.

Основные области применения DES-алгоритма:

хранение данных на компьютерах (шифрование файлов, паролей);

аутентификация сообщений (имея сообщение и контрольную группу, несложно убедиться в подлинности сообщения;

электронная система платежей (при операциях с широкой клиентурой и между банками);

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

Позднее появилась модификация DES - Triple DЕS («тройной DES» - так как трижды шифрует информацию «обычным» алгоритмом DES), свободная от основного недостатка прежнего варианта - короткого ключа; он здесь в два раза длиннее. Но, как оказалось, Triple DES унаследовал другие слабые стороны своего предшественника: отсутствие возможности для параллельных вычислений при шифровании и низкую скорость.

ГОСТ 28147-89

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

В общих чертах ГОСТ 28147-89 аналогичен DES. Блок-схема алгоритма ГОСТ отличается от блок-схемыDES-алгоритма лишь отсутствием начальной перестановки и числом циклов шифрования (32 в ГОСТ против 16 в DES-алгоритме).

Ключ алгоритма ГОСТ - это массив, состоящий из 32-мерных векторов X 1 , X 2 ,…X 8 . Цикловой ключ i-го цикла K i равен Xs,где ряду значенийi от 1 до 32 соответствует следующий ряд значений s:

1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,8,7,6,5,4,3,2,1.

В шифре ГОСТ используется 256-битовый ключ и объем ключевого пространства составляет 2 256 . Ни на одной из существующих в настоящее время или предполагаемых к реализации в недалеком будущемкомпьютерных систем общего применения нельзя подобрать ключ за время, меньшее многих сотен лет. Российский стандарт проектировался с большим запасом, по стойкости он на много порядков превосходит американский стандарт DES с его реальным размером ключа в 56 бит и объемом ключевого пространства всего 2 56 , чего явно недостаточно. Ключ криптоалгоритма ГОСТ длиной 32 байта (256 бит) вчетверо больше ключа DES. Необходимое же на перебор всех ключей время при этом возрастает не в четыре раза, а в 256 32-8 = 256 24 , что выливается уже в астрономические цифры). В этой связи DES может представлять скорее исследовательский или научный, чем практический интерес.

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

В настоящее время наиболее часто применяются три основных стандарта шифрования:

  • - DES;
  • - ГОСТ 28147-89 - отечественный метод, отличающийся высокой криптостойкостью;
  • - RSA - система, в которой шифрование и расшифровка осуществляется с помощью разных ключей.

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

Таблица 1 Характеристики наиболее распространенных методов шифрования

Решение задачи определения ключа путем простого перебора всех возможных вариантов, как правило, является непрактичным, за исключением использования очень короткого ключа. Следовательно, если криптоаналитик хочет иметь реальные шансы на вскрытие шифра, он должен отказаться от «лобовых» методов перебора и применить другую стратегию. При раскрытии многих схем шифрования может применяться статистический анализ, использующий частоту появления отдельных символов или их комбинаций. Для усложнения решения задачи вскрытия шифра с использованием статистического анализа К. Шеннон предложил две концепции шифрования, получившие название смешения (confusion ) и диффузии (diffusion ). Смешение – это применение такой подстановки, при которой взаимосвязь между ключом и шифрованным текстом становится как можно более сложной. Применение данной концепции усложняет применение статистического анализа, сужающего область поиска ключа, и дешифрование даже очень короткой последовательности криптограммы требует перебора большого количества ключей. В свою очередь диффузия – это применение таких преобразований, которые сглаживают статистические различия между символами и их комбинациями. В результате использование криптоаналитиком статистического анализа может привести к положительному результату только при перехвате достаточно большого отрезка шифрованного текста.

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

10.4.1. Метод подстановки.

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

Рис. 10.3 , а )

Исходный текст

Криптограмма

Рис. 10.3 , б )

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

Другим примером классической схемы, основанной на методе подстановки, может служить система шифрования, называемая квадратом Полибиуса . Применительно к русскому алфавиту данная схема может быть описана следующим образом. Первоначально объединяются в одну буквы Е, Ё; И, Й и Ъ, Ь, истинное значение которых в дешифрованном тексте легко восстанавливается из контекста. Затем 30 символов алфавита размещаются в таблицу размером 65, пример заполнения которой представлен на рис. 10.4.

Рис. 10.4.

Шифрование любой буквы открытого текста осуществляется заданием ее адреса (т.е. номера строки и столбца или наоборот) в приведенной таблице. Так, например, слово ЦЕЗАРЬ шифруется с помощью квадрата Полибиуса как 52 21 23 11 41 61. Совершенно ясно, что изменение кода может быть осуществлено в результате перестановок букв в таблице. Следует также заметить, что те, кто посещал экскурсию по казематам Петропавловской крепости, должно быть памятны слова экскурсовода о том, как заключенные перестукивались между собой. Очевидно, что их способ общения полностью подпадает под данный метод шифрования.

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

Рис. 10.5.

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

Открытый текст

Шифрованный текст

Рис. 10.6.

Известны несколько интересных вариантов шифров, основанных на прогрессивном ключе Тритемиуса. В одном из них, называемом методом ключа Вижинера , применяется ключевое слово, которое указывает строки для шифрования и расшифрования каждого последующего символа открытого текста: первая буква ключа указывает строку таблицы на рис. 10.5, с помощью которой шифруется первый символ сообщения, вторая буква ключа определяет строку таблицы, шифрующей второй символ открытого текста и т.д. Пусть в качестве ключа выбрано слово «ТРОМБ», тогда сообщение, зашифрованное с помощью ключа Вижинера, может быть представлено следующим образом (рис. 10.7). Очевидно, что вскрытие ключа возможно осуществить на основе статистического анализа шифрограммы.

Открытый текст

Шифрованный текст

Рис. 10.7.

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

Открытый текст

Шифрованный текст

Рис. 10.8.

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

Еще одной разновидностью метода Вижинера служит метод автоматического (шифрованного ) ключа Вижинера . В нем, подобно шифрованию с открытым ключом, также используется образующий ключ и обратная связь. Отличие состоит в том, что после шифрования с помощью образующего ключа, каждый последующий символ ключа в последовательности берется не из открытого текста, а из получаемой криптограммы. Ниже представлен пример, поясняющий принцип применения данного метода шифрования, в котором, как и ранее, в качестве образующего ключа использована буква «И» (рис. 10.9):

Открытый текст

Шифрованный текст

Рис. 10.9.

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

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

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

Рис. 10.10.

Не составляет труда показать, что существует
различных подстановок или связанных с ними возможных моделей. В связи, с чем при больших значенияхm задача криптоаналитика становится в вычислительном плане практически невозможной. Например, при
число возможных подстановок определяется как
, т.е. представляет собой астрономическое число. Очевидно, что при подобном значенииm данное преобразование с помощью блока подстановки (substitution block , S –блок) можно считать обладающим практической секретностью. Однако его практическая реализация вряд ли возможна, поскольку предполагает существование
соединений.

Убедимся теперь, что S –блок, представленный на рис. 10.10, действительно осуществляет нелинейное преобразование, для чего воспользуемся принципом суперпозиций: преобразование
является линейным, если. Предположим, что
, а
. Тогда, а, откуда следует, чтоS –блок является нелинейным.

10.4.2. Метод перестановки.

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

Простейшим вариантом реализации данного метода шифрования может служить рассмотренный ранее алгоритм перемежения, суть которого заключается в разбиении потока информационных символов на блоки длиной
, построчной записи его в матрицу памяти размеромстрок истолбцов и считывании по столбцам. Иллюстрацией данному алгоритму служит пример с
на рис. 10.11, в ходе которого производится запись фразыX =«скоро начнется экзаменационная пора». Тогда на выходе устройства перестановки будет получена криптограмма вида

Рис. 10.11.

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

Рис. 10.12.

На рис. 10.13 приведен пример бинарной перестановки данных (линейная операция), из которого видно, что данные просто перемешиваются или переставляются. Преобразование осуществляется с помощью блока перестановки (permutation block , P –блок). Технология перестановки, реализуемая этим блоком, имеет один основной недостаток: она уязвима по отношению к обманным сообщениям. Обманное сообщение изображено на рис. 10.13 и заключается в подаче на вход одной единственной единицы при остальных нулях, что позволяет обнаружить одну из внутренних связей. Если криптоаналитику необходимо осуществить анализ подобной схемы с помощью атаки открытого текста, то он отправит последовательность подобных обманных сообщений, смещая при каждой передаче единственную единицу на одну позицию. В результате подобной атаки будут установлены все связи входа и выхода. Данный пример демонстрирует, почему защищенность схемы не должна зависеть от ее архитектуры.

10.4.3. Метод гаммирования .

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

На практике в качестве скремблирующих широкое применение нашли псевдослучайные последовательности (ПСП), которые могут быть воспроизведены на приемной стороне. В технологии поточного шифрования для формирования ПСП обычно используют генератор на основелинейного регистра сдвига с обратной связью (linear feedback shift register (LFSR)). Типичная структура генератора ПСП, представленная на рис. 10.15, включает регистр сдвига, который состоит из – ичных элементов задержки или разрядов, имеющихвозможных состояний и хранящих некоторый элемент поля
в течение тактового интервала, схема обратной связи, включающей умножители элементов (состояний), хранящихся в разрядах, на константы, и сумматоров. Формирование ПСП описывается рекуррентным соотношением вида

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

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

Пример 10.4.1. На рис. 10.16, a , представлена реализация генератора на основе регистра сдвига с линейной обратной связью, формирующего двоичную псевдослучайную последовательность периода
. Отметим, что в случае двоичной ПСП умножение на единицу эквивалентно простому соединению выхода разряда с сумматором. Рис. 10.16,b , иллюстрирует следующие друг за другом содержания регистра (состояния разрядов), а также состояния выхода обратной связи (точка ОС на схеме) при подаче тактовых импульсов. Последовательность считывается в виде последовательных состояний крайнего правого разряда. Считывание состояний других разрядов приводит к копиям той же самой последовательности, сдвинутой на один или два такта.

На первый взгляд можно предположить, что использование ПСП большого периода может обеспечить достаточно высокую защищенность. Так, например, в сотовой системе мобильной связи стандарта IS-95 в качестве скремблирующей используется ПСП периода
в числе элементарных чипов. При чиповой скорости 1.228810 6 симв/сек ее период составляет:

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

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

Пример 10.4.2. Пусть в качестве скремблирующей используется ПСП периода
, генерируемая с помощью рекурсии вида

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

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

где символ ПСП, который вырабатывается схемой обратной связи и подается на вход первого разряда регистра, а
определяет отсутствие или наличиеi –го соединения между выходом разряда регистра сдвига и сумматором, т.е. схему обратной связи.

Анализируя состояния регистра сдвига в четыре последовательные момента времени можно составить следующую систему четырех уравнений с четырьмя неизвестными:

Решение данной системы уравнений дает следующие значения коэффициентов:

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

Обобщив рассмотренный пример на случай произвольного регистра сдвига памяти n , исходное уравнение может быть представлено в виде

,

а система уравнений записана в следующей матричной форме

,

где
, а
.

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

.

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

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

Рис. 10.17. Поточное шифрование с обратной связью.

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

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

Первые шифры использовались еще во времена Древнего Рима, Древнего Египта и Древней Греции. Одним из известных шифров является шифр Цезаря . Данный алгоритм работал следующим образом: каждая буква имеет свой порядковый номер в алфавите, который сдвигался на $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$ бит.

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

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

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

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

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

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

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

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

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

Ограничения

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

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

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

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

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

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

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

Ограничения

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

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

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

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

Хеширование

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

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

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

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

Ограничения

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

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

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

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

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

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

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

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

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

Выделяются следующие четыре характерных признака криптографических методов.

    Операции с отдельными битами или блоками.

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

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

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

Основные характеристики криптосистем

криптосистем

Операции с

битами или блоками

Зависимость/ независимость от знаков

сообщения

Позиционная зависимость/ независимость

Симметрия/

асимметрия

Поточного

шифрования

не зависит

симметричная

Блочного

шифрования

не зависит

не зависит

симметричная или несимметричная

С обратной

связью от

шифртекста

биты или блоки

не зависит

симметричная

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

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

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

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

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

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

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

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

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

Эти режимы получили следующие названия:

    режим прямого шифрования, или шифрования с использованием электронной книги кодов ЕСВ (Electronic code book),

    шифрование со сцеплением блоков шифртекста СВС (Cipher block chaining),

    шифрование с обратной связью от шифртекста CFB (Cipher feedback),

    шифрование с обратной связью от выхода OFB (Output feedback).

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

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

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

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

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

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

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

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

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

Известно, что алгоритм RSA не может быть применен для шифрования с большой скоростью. Наиболее оптимизированная программная реализация этого алгоритма оказывается низкоскоростной, а несколько аппаратных реализации обеспечивают скорость шифрования от 10 до 100 Кбит/с (при использовании простых чисел порядка 2 7 ,что представляется минимальной длиной для обеспечения требуемой криптостойкости). Это значит, что применение системы RSA для блочного шифрования ограничено, хотя применение ее для распределения ключей, аутентификации и формирования цифровой подписи представляет интересные возможности. Некоторые известные в настоящее время криптоалгоритмы с открытым ключом допускают более высокую скорость шифрования, чем алгоритм RSA. Однако они пока не являются настолько популярными.

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

Применение криптосистем блочного шифрования с обратной связью дает ряд важных преимуществ . Первое и самое значительное - возможность использования их для обнаружения манипуляций с сообщениями, производимых активными перехватчиками. При этом используется факт размножения ошибок, а также способность таких систем легко генерировать код аутентификации сообщений MAC (message aithentication code). Второе преимущество состоит в том, что шифры СТАК, применяемые вместо блочных шифров, не требуют начальной синхронизации. Это значит, что если начало сообщения пропущено при приеме, то оставшаяся часть его может быть успешно расшифрована (после успешного приема следующих один за другим t бит шифртекста. Отметим также, что системы шифрования с обратной связью используются не только для шифрования сообщений, но также и для их аутентификации.

Криптосистемам блочного шифрования с обратной связью свойственны определенные недостатки . Основной из них - размножение ошибок, т.е. один ошибочный бит при передаче может вызвать от 1 до sm + i ошибок в расшифрованном тексте. Таким образом, требование увеличения t для повышения криптостойкости противоречит системным требованиям, связанным с размножением ошибок. Другой недостаток состоит в том, что разработка и реализация систем шифрования с обратной связью часто оказываются более трудными, чем для систем поточного шифрования. Хотя системы шифрования с обратной связью различных типов находят широкое применение уже в течение многих лет, специальных алгоритмов для таких систем очень мало. В большинстве случаев опубликованные алгоритмы получены из алгоритмов блочного шифрования, преобразованных для специальных применений.

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

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

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

Потенциальным пользователям криптографии представляется возможность выбирать между системами поточного шифрования и системами шифрования с обратной связью (возможно, основанными на применении алгоритмов блочного шифрования). Однако имеются определенные области применения, например, финансовые операции, где возможно использование методов прямого блочного шифрования ("electronic codebook"). Выбор криптоалгоритма в значительной мере зависит от его назначения. Некоторые данные, которыми можно руководствоваться при выборе типа шифрования, приведены в таблице.

Понравилось? Лайкни нас на Facebook