Криптография - наука о защите информации от прочтения ее посторонними. Защита достигается шифрованием, т. е. преобразованием, которое делает защищенные входные данные труднораскрываемыми по выходным данным без знания специальной ключевой информации - ключа. Под ключом понимается легко изменяемая часть криптосистемы, хранящаяся в тайне и определяющая, какое шифрующие преобразование из возможных выполняется в данном случае. Криптосистема - семейство выбираемых с помощью ключа обратимых преобразований, которые преобразуют защищаемый открытый текст в шифрограмму и обратно.
Желательно, чтобы методы шифрования обладали минимум двумя свойствами: законный получатель сможет выполнить обратное преобразование и расшифровать сообщение; криптоаналитик противника, перехвативший сообщение, не сможет восстановить по нему исходное сообщение без таких затрат времени и средств, которые сделают эту работу работу нецелесообразной.
Наиболее известные криптосистемы.
По характеру использования ключа известные криптосистемы можно разделить на два типа: симметричные (одноключевые, с секретным ключом) и несимметричные (с открытым ключом).
В шифраторе отправителя и дешифраторе получателя используется один и тот же ключ. Шифратор образует шифртекст, который является функцией открытого текста, конкретный вид функции шифрования определяется секретным ключом. Дешифратор получателя сообщения выполняет обратное преобразование аналогичным образом. Секретный ключ хранится в тайне и передается отправителем сообщения получателя по каналу, исключающему перехват ключа криптоаналитиком противника. Обычно предполагается правило Кирхгофа: стойкость шифра определяется только секретностью ключа, т. е. криптоаналитику известны все детали процесса шифрования и дешифрования, кроме секретного ключа.
Открытый текст обычно имеет произвольную длину: если его размер велик и он не может быть обработан вычислительным устройством шифратора целиком, то он разбивается на блоки фиксированной длины, и каждый блок шифруется в отдельности, независимо от его положения во входной последовательности. Такие криптосистемы называются системами блочного шифрования.
На практике обычно используют два общих принципа шифрования: рассеивание и перемешивание. Рассеивание заключается в распространении влияния одного символа открытого текста на много символов шифртекста: это позволяет скрыть статистические свойства открытого текста. Развитием этого принципа является распространение влияния одного символа ключа на много символов шифрограммы, что позволяет исключить восстановление ключа по частям. Перемешивание состоит в использовании таких шифрующих преобразований, которые исключают восстановление взаимосвязи статистических свойств открытого и шифрованного текста. Распространенный способ достижения хорошего рассеивания состоит в использовании составного шифра, который может быть реализован в виде некоторой последовательности простых шифров, каждый из которых вносит небольшой вклад в значительное суммарное рассеивание и перемешивание. В качестве простых шифров чаще всего используют простые подстановки и перестановки. Известны также методы аналитического преобразования, гаммирования, а также метод комбинированного шифрования.
Защита информации методом комбинированного шифрования.
Важнейшим требованием к системе шифрования является стойкость данной системы. К сожалению, повышение стойкости при помощи любого метода приводит, как правило, к трудностям и при шифровании открытого текста и при его расшифровке. Одним из наиболее эффективных методов повышения стойкости шифр-текста является метод комбинированного шифрования. Этот метод заключается в использовании и комбинировании нескольких простых способов шифрования. Так, например, можно использовать метод шифрования простой перестановкой в сочетании с методом аналитических преобразований или текст, зашифрованный методом гаммирования, дополнительно защитить при помощи подстановки.
Рассмотрим пример :
1. Возьмем в качестве открытого текста сообщение :Я пишу курсовую.
Защитим этот текст методом простой перестановки, используя в качестве ключа слово "зачет" и обозначая пробел буквой "ь" :
ЗАЧЕТ АЕЗТЧ
яьпишьияшп
уькурьуурк
совуюоусюв
Выписываем буквы открытого текста под буквами ключа. Затем буквы ключа расставляем в алфавитном порядке. Выписываем буквы по столбцам и получаем шифртекст: ььоиууяусшрюпкв.
Полученное сообщение зашифруем с помощью метода подстановки :
Пусть каждому символу русского алфавита соответствует число от 0 до 32, то есть букве А будет соответствовать 0, букве Б - 1 и т. д. Возьмем также некое число, например 2, которое будет ключем шифра. Прибавляя к числу, соответствующему определенному символу, 2, мы получим новый символ, например если А соответствует 0, то при прибавлении 2 получаем В и так далее. Пользуясь этим, получаем новый шифртекст : ююркххбхуьтасмд
Итак имея открытый текст : Я пишу курсовую , после преобразований получаем шифртекст: ююркххбхуьтасмд, используя методы перестановки и замены. Раскрыть текст расшифровщик сможет, зная, что ключами являются число 2 и слово "зачет" и соответственно последовательность их применения.
Дополнения
DES-стандарт США на шифрование данных.
Одним из наилучших примеров криптоалгоритма, разработанного в соответствии с принципами рассеивания и перемешивания, может служить принятый в 1977 году Национальным бюро стандартов США стандарт шифрования данных DES (Data Enscription Standard). Несмотря на интенсивные и тщательные исследования алгоритма специалистами, пока не найдено уязвимых мест алгоритма, на основе которых можно было бы предложить метод криптоанализа, существенно лучший, чем полный перебор ключей. Общее мнение таково: DES - исключительно хороший шифр.
Криптография известна с древнейших времен (достаточно вспомнить коды Цезаря) и до недавнего времени оставалась привилегией исключительно государственных и военных учреждений. Ситуация резко изменилась после публикации в 1949 году книги К. Шеннона "Работы по теории информации и кибернетике". Криптография стала объектом пристального внимания многих ученых.
Принятие стандарта шифрования DES явилось мощным толчком к широкому применению шифрования в коммерческих системах. Введение этого стандарта - отличный пример унификации и стандартизации средств защиты. Примером системного подхода к созданию единой крупномасштабной системы защиты информации является директива Министерства финансов США 1984 года, согласно которой все общественные и частные организации, ведущие дела с правительством США, обязаны внедрить процедуру шифрования DES; крупнейшие банки - Citibank, Chase Manhattan Bank, Manufaktures Hannover Trust, Bank of America, Security Pacific Bank - также внедрили эту систему. Министерство энергетики США располагает более чем 30 действующими сетями, в которых используется алгоритм DES. Министерство юстиции устанавливает 20000 радиоустройств, располагающих средствами защиты на базе DES.
Стандартизация в последнее время приобретает международный характер, подтверждение тому - международный стандарт 1987 года ISO 8372, разработанный на основе криптоалгоритма DES.
В качестве стандартной аппаратуры шифрования можно назвать устройство Cidex-НХ, базирующееся на алгоритме DES; скорость шифрования - от 56 Кбит/с до 7 Мбит/с. Серийно выпускается автономный шифровальный блок DES 2000, в нем также используется процедура шифрования DES; скорость шифрования - от 38, 4 Кбит/с до 110Кбит/с. В различных секторах коммерческой деятельности используется процессор шифрования/дешифрования данных FACOM 2151А на основе алгоритма DES; скорость - от 2, 4 Кбит/с до 19, 2 Кбит/с. С распространением персональных компьютеров наиболее эффективными для них стали программные средства защиты. Так, разработан пакет программ для шифрования/дешифрования информации СТА (Computer Intelligence Access), реализующий алгоритм DES. Этот же алгоритм использован в пакете SecretDisk (C F Systems) для исключения несанкционированного доступа к дискам.
Таким образом, алгоритм DES представляет собой основной механизм, применявшийся частными и государственными учреждениями США для защиты информации. В то же время Агенство национальной безопасности, выступающее как эксперт по криптографическим алгоритмам, разрабатывает новые алгоритмы шифрования данных для массового использования. В 1987 году Национальное бюро стандартов после обсуждения подтвердило действие DES; его пересмотр намечалось провести не позднее января 1992 года, и на сегодняшний день действие DES ограничивается исключительно коммерческими системами. DES может быть реализован аппаратно и программно, но базовый алгоритм всё же рассчитан на реализацию в электронных устройствах специального назначения. Самым существенным недостатком DES считается малый размер ключа. Стандарт в настоящее время не считается неуязвимым, хотя и очень труден для раскрытия (до сих пор не были зарегистрированы случаи несанкционированной дешифрации. Ещё один недостаток DES заключается в том, что одинаковые данные будут одинаково выглядеть в зашифрованном тексте.
ГОСТ 28147-89 - отечественный стандарт шифрования данных.
В России установлен единый алгоритм криптографического преобразования данных для систем обработки информации в сетях ЭВМ, отделительных комплексах и ЭВМ, который определяется ГОСТ 28147-89.
Алгоритм криптографического преобразования данных предназначен для аппаратной или программной реализации, удовлетворяет криптографическим требованиям и не накладывает ограничений на степень секретности защищаемой информации. Чтобы получить подробные спецификации алгоритма криптографического преобразования, следует обратиться к ГОСТ 28147-89. Безусловно, приведенный ниже материал не должен ни при каких условиях использоваться для программной или аппаратной реализации алгоритма криптографического преобразования.
При описании алгоритма используются следующие обозначения:
Если L и R - это последовательности бит, то LR будет обозначать конкатенацию последовательностей L и R. Под конкатенацией последовательностей L и R понимается последовательность бит, размерность которой равна сумме размерностей L и R. В этой последовательности биты последовательности R следуют за битами последовательности L. Конкатенация битовых строк является ассоциативной, т. е. запись ABCDE обозначает, что за битами последовательности А следуют биты последовательности В, затем С и т. д.
Символом (+) будет обозначаться операция побитового сложения по модулю 2, символом [+] - операция сложения по модулю ( 2 в 32 степени) двух 32-разрядных чисел. Числа суммируются по следующему правилу:
A [+] B = A + B , если A + B (2 в 32 степени),
A [+] B = A + B - ( 2 в 32 степени), если A + B = 2 в 32 Символом {+} обозначается операция сложения по модулю ((2 в а532а0) -1) двух 32 разрядных чисел. Правила суммирования чисел следующие:
A {+} B = A + B, если A + B ((2 в 32) - 1) A {+} B = A + B - ((2 в 32) - 1), если A + B = (2 в 32) - 1 Алгоритм криптографического преобразования предусматривает несколько режимов работы. Но в любом случае для шифрования данных используется ключ, который имеет размерность 256 бит и представляется в виде восьми 32-разрядных чисел Х(i). Если обозначить ключ через W, то
W =X(7)X(6)X(5)X(4)X(3)X(2)X(1)X(0)
Расшифрование выполняется по тому же ключу, что и зашифрование, но этот процесс является инверсией процесса зашифрования данных.
Первый и самый простой режим - замена. Открытые данные, подлежащие зашифрованию, разбивают на блоки по 64 бит в каждом, которые можно обозначить Т(j).
Очередная последовательность бит Т(j) разделяется на две последовательности В(О) (левые или старшие биты) и А(О) (правые или младшие биты), каждая из которых содержит 32 бита. Затем выполняется итеративный процесс шифрования, который описывается следующими формулами:
1. A(i)=f(A(i-1) [+] X(j) (+) B(i-1)),
и B(i)=A(i-1),
если i=1, 2, . . . , 24, j=(i-1) mod 8;
2. A(i)=f(A(i-1) [+] X(j) (+) B(i-1)),
и B(i)=A(i-1),
если i=25, 26, . . . , 31, j=32-i;
3. A(32)=A(31),
и B(32)=f(A(31) [+] X(0)) (+) B(31),
если i=32.
Здесь i обозначается номер итерации (i=1, 2, . . . , 32). Функция f называется функцией шифрования. Ее аргументом является сумма по модулю 2 в а532а0 числа А(i), полученного на предыдущем шаге итерации, и числа Х(j) ключа (размерность каждого из этих чисел равна 32 знакам).
Функция шифрования включает две операции над полученной 32-разрядной суммой. Первая операция называется подстановкой К. Блок подстановки К состоит из восьми узлов замены К(1) . . . К(8) с памятью 64 бит каждый. Поступающий на блок подстановки 32-разрядный вектор разбивается на восемь последовательно идущих 4-разрядный вектор соответствующим узлом замены, представляющим собой таблицу из шестнадцати целых чисел в диапазоне 0. . . . 15.
Входной вектор определяет адрес строки в таблице, число из которой является выходным вектором. Затем 4-разрядные выходные векторы последовательно объединяются в 32-разрядный вектор. Таблицы блока подстановки К содержит ключевые элементы, общие для сети ЭВМ и редко изменяемые.
Вторая операция - циклический сдвиг влево 32-разрядного вектора, полученного в результате подстановки К. 64-разрядный блок зашифрованных данных Тш представляется в виде
Тш = А(32) В(32)
Остальные блоки открытых данных в режиме простой замены зашифровываются аналогично.
Следует иметь в виду, что режим простой замены допустимо использовать для шифрования данных только в ограниченных случаях. К этим случаям относится выработка ключа и шифрование его с обеспечением имитозащиты для передачи по каналам связи или хранения в памяти ЭВМ.
Следующий режим шифрования называется режимом гаммирования. Открытые данные, разбитые на 64-разрядные блоки Т(i) (i=1, 2, . . . , m}, (где m определяется объемом шифруемых данных), зашифровываются в режиме гаммирования путем поразрядного сложения по модулю 2 с гаммой шифра Гш, которая вырабатывается блоками по 64 бит, т. е. Гш = ( Г(1), Г(2), . . . , Г(i), . . . , Г(m) ).
Число двоичных разрядов в блоке Т(m) может быть меньше 64, при этом неиспользованная для шифрования часть гаммы шифра из блока Г(m) отбрасывается.
Уравнение зашифрования данных в режиме гаммирования может быть представлено в следующем виде:
Ш(i)=A(Y(i-1) [+] C2),
Z(i-1) {+ }C1 (+) T(i)=Г(i) (+) T(i).
В этом уравнении Ш(i) обозначает 64-разрядный блок зашифрованного текста, А - функцию шифрования в режиме простой замены (аргументами этой функции являются два 32-разрядного числа), С1 и С2 - константы, заданные в ГОСТ 28147-89. Величины Y(i) и Z(i) определяются итерационно по мере формирования гаммы, следующим образом: (Y(0), Z(0))=A(S), где S - 64-разрядная двоичная последовательность (синхропосылка);
(Y(i), Z(i))=(Y(i-1) [+] C2, Z(i-1) {+} C1),
для i=1, 2, . . , m
Расшифрование данных возможно только при наличии синхропосылки, которая не является секретным элементом шифра и может храниться в памяти ЭВМ или передаваться по каналам связи вместе с зашифрованными данными.
Режим гаммирования с обратной связью очень похож на режим гаммирования. Как и в режиме гаммирования, открытые данные, разбитые на 64-разрядные блоки Т(i) (i=1, 2, . . . . , m), где m определяется объемом шифруемых данных), зашифровывается путем поразрядного сложения по модулю 2 с гаммой шифра Гш, которая вырабатывается блоками по 64 бит: Гш=(Г(1), Г(2), . . . , Г(i), . . . , Г(m)).
Число двоичных разрядов в блоке Т(m) может быть меньше 64, при этом неиспользованная для шифрования часть гаммы шифра из блока Г(m) отбрасывается.
Уравнение зашифрования данных в режиме гаммирования с обратной связью может быть представлено в следующем виде:
Ш(1) = A(S) (+) T(1) = Г(1) (+) T(1),
Ш(i) = A(Ш(i-1)) (+) T(i) = Г(i) (+) T(i),
для i=2, 3, . . . , m
Здесь Ш(i) обозначает 64-разрядный блок зашифрованного текста, А - функцию шифрования в режиме простой замены. Аргументом функции на первом шаге итеративного алгоритма является 64-разрядный синхропосылка, а на всех последующих - предыдущий блок зашифрованых данных Ш(i-1).
В ГОСТ 28147-89 определяется процесс выработки имитовставки, который единообразен для любого из режимов шифрования данных. Имитовставка - это блок из p бит ( имитовставка Иp), который вырабатывается любо перед шифрованием всего сообщения, либо параллельно с шифрованием по блокам. Первые блоки открытых данных, которые участвуют в выработке имитовставки, могут содержать служебную информацию (например, адресную часть, время, синхропосылку) и не зашифровываться. Значение параметра p (число двоичных разрядов в имитовставке) определяется криптографическими требованиями с учетом того, что вероятность навязывания ложных помех равна 1/2а5р Для получения имитовставки открытые данные представляются в виде 64-разрядных блоков Т(i) (i=1, 2, . . . , m где m определяется объемом шифруемых данных). Первый блок открытых данных Т(1) подвергается преобразованию, соответствующему первым 16 циклам алгоритма зашифрования в режиме простой замены. Причем в качестве ключа для выработки имитовставки используется ключ, по которому шифруются данные.
Полученное после 16 циклов работы 64-пазрядное число суммируется по модулю 2 со вторым блоком открытых данных Т(2). Результат суммирования снова подвергается преобразованию, соответствующему первым 16 циклам алгоритма зашифрования в режиме простой замены. Полученное 64-разрядное число суммируется по модулю 2 с третьим блоком открытых данных Т(3) и т. д. Последний блок Т(m), при необходимости дополненный до полного 64-разрядного блока нулями, суммируется по модулю 2 с результатом работы на шаге m-1, после чего зашифровывается в режиме простой замены по первым 16 циклам работы алгоритма. Из полученного 64-разрядного числа выбирается отрезок Ир длиной р бит. Имитовставка Ир передается по каналу связи или в память ЭВМ после зашифрованных данных. Поступившие зашифрованные данные расшифровываются и из полученных блоков открытых данных Т(i) вырабатывается имитовставка Ир, которая затем сравнивается с имитовставкой Ир, полученной из канала связи или из памяти ЭВМ. В случае несовпадения имитовставок все расшифрованные данные считаются ложными. Алгоритм криптографического преобразования, являющийся отечественным стандартом и определяемый ГОСТ 28147-89, свободен от недостатков стандарта DES и в то же время облаадает всеми его преимуществами. Кроме того в него заложен метод, с помощью которого можно зафиксировать необнаруженную случайную или умышленную модификацию зашифрованной информации. Однако у алгоритма есть очень существенный недостаток, который заключается в том, что его программная реализация очень сложна и практически лишена всякого смысла.