ГОСТ 28147-89 - отечественный стандарт шифрования данных
Внашей стране установлен единый алгоритм криптографического преобразования данных для систем обработки информации в сетях ЭВМ, отделительных комплексах и ЭВМ, который определяется ГОСТ 28147-89.
Алгоритм криптографического преобразования данных предназначен для аппаратной или программной реализации, удовлетворяет криптографическим требованиям и не накладывает ограничений на степень секретности защищаемой информации.
Чтобы получить подробные спецификации алгоритма криптографического преобразования, следует обратиться к ГОСТ 28147-89. Безусловно, приведенный ниже материал не должен ни при каких условиях использоваться для программной или аппаратной реализации алгоритма криптографического преобразования. При описании алгоритма используются следующие обозначения.
Если L и R - это последовательности бит, то LR будет обозначать конкатенацию последовательностей L и R. Под конкатенацией последовательностей L и R понимается последовательность бит, размерность которой равна сумме размерностей L и R. В этой последовательности биты последовательности R следуют за битами последовательности L. Конкатенация битовых строк является ассоциативной, т.е. запись ABCDE обозначает, что за битами последовательности А следуют биты последовательности В, затем С и т.д. Символом (+) будет обозначаться операция побитового сложения по модулю 2, символом [+] - операция сложения по модулю (2 в 32 степени) двух 32-разрядных чисел. Числа суммируются по следующему правилу:
А[+] В = А + В ,если А + В <>(2 в 32 степени),
А[+] В = А + В -( 2 в 32 степени),если А + В =2 в 32
Символом {+} обозначается операция сложения по модулю ((2 в 532 0) -1) двух 32 разрядных чисел. Правила суммирования чисел следующие:
А {+} В = А + В,если А+В<>((2 в 32)-1)
А {+} В = А + В-((2 в 32)-1),если А + В = (2 в 32)-1
Алгоритм криптографического преобразования предусматривает несколько режимов работы. Но в любом случае для шифрования данных используется ключ, который имеет размерность 256 бит и представляется в виде восьми 32-разрядных чисел X(i). Если обозначить ключ через W, то W=X(7)X(6)X(5)X(4)X(3)X(2)X(1)X(0)
Расшифрование выполняется по тому же ключу, что и зашифрование, но этот процесс является инверсией процесса зашифрования данных.
Первый и самый простой режим - замена. Открытые данные, подлежащие зашифрованию, разбивают на блоки по 64 бит в каждом, которые можно обозначить T(j).
Очередная последовательность бит T(j) разделяется на две последовательности В(О) (левые или старшие биты) и А(О) (правые или младшие биты), каждая из которых содержит 32 бита. Затем выполняется итеративный процесс шифрования, который описывается следующими формулами:
1. A(i)=f(A(i-l)[+]X(j)(+)B(i-l)), и B(i)=A(i-l),
если i=l,2,...,24,j=(i-l) mod 8;
2. A(i)=f(A(i-l)[+]XG)(+)B(i-l)), и B(i)=A(i-l),
если i=25,26,...,31,j=32-i;
3. А(32)=А(31),
и B(32)=f(A(31) [+] Х(0)) (+) В(31), если i=32.
Здесь i обозначается номер итерации (i=l,2,...,32). Функция f называется функцией шифрования. Ее аргументом является сумма по модулю 2 в 532 О числа A(i), полученного на предыдущем шаге итерации, и числа X(j) ключа (размерность каждого из этих чисел равна 32 знакам).
Функция шифрования включает две операции над полученной 32-разрядной суммой:
· Первая операция называется подстановкой К. Блок подстановки К состоит из восьми узлов замены К(1) ... К(8) с памятью 64 бит каждый. Поступающий на блок подстановки 32-разрядный вектор разбивается на восемь последовательно идущих 4-разрядный вектор соответствующим узлом замены, представляющим собой таблицу из шестнадцати целых чисел в диапазоне 0....15.
Входной вектор определяет адрес строки в таблице, число из которой является выходным вектором. Затем 4-разрядные выходные векторы последовательно объединяются в 32-разрядный вектор. Таблицы блока подстановки К содержит ключевые элементы, общие для сети ЭВМ и редко изменяемые.
· Вторая операция - циклический сдвиг влево 32-разрядного вектора, полученного в результате подстановки К. 64-разрядный блок зашифрованных данных Тш представляется в виде Тш = А(32)В(32)
Остальные блоки открытых данных в режиме простой замены зашифровываются аналогично. Следует иметь в виду, что режим простой замены допустимо использовать для шифрования данных только в ограниченных случаях. Кэтим случаям относится выработка ключа и зашифрование его с обеспечением имитозащиты для передачи по каналам связи или хранения в памяти ЭВМ. Следующий режим шифрования называется режимом гаммирования.
Открытые данные, разбитые на 64-разрядные блоки T(i) (i=l,2,...,m, где m определяется объемом шифруемых данных), за шифровываются в режиме гаммирования путем поразрядного сложения по модулю 2 с гаммой шифра Гш, которая вырабатывается блоками по 64 бит, т.е.
Гш = (Г(1),Г(2),...,Г(1),...,Г(т)).
Число двоичных разрядов в блоке Т(т) может быть меньше 64, при этом неиспользованная для шифрования часть гаммы шифра из блока Г(т) отбрасывается. Уравнение зашифрования данных в режиме гаммирования может быть представлено в следующем виде:
III(i)=A(Y(i-l) [+] С2),
Z(i-l){+}Cl(+)T(i)=r(i)(+)T(i).
В этом уравнении III(i) обозначает 64-разрядный блок зашифрованного текста, А - функцию шифрования в режиме простой замены (аргументами этой функции являются два 32-разрядного числа), С1 и С2 - константы, заданные в ГОСТ 28147-89. Величины Y(i) и Z(i) определяются итерационно по мере формирования гаммы, следующим образом: (Y(0),Z(0))=A(S),
где S - 64-разрядная двоичная последовательность (синхропосылка); (Y(i),Z(i)HY(i-l) [+] C2,Z(i-l) {+} CI), для1=1,2,..,т
Расшифрование данных возможно только при наличии синхропосылки, которая не является секретным элементом шифра и может храниться в памяти ЭВМ или передаваться по каналам связи вместе с зашифрованными данными.
Режим гаммирования с обратной связью очень похож на режим гаммирования. Как и в режиме гаммирования, открытые данные, разбитые на 64-разрядные блоки T(i) (i=l,2,....,m, где m определяется объемом шифруемых данных), зашифровывается путем поразрядного сложения по модулю 2 с гаммой шифра Гш, Которая вырабатывается блоками по 64 бит: Гш=(Г(1),Г(2),...,Г(1),...,Г(т)).
Число двоичных разрядов в блоке Т(т) может быть меньше 64, при этом неиспользованная для шифрования часть гаммы шифра из блока Г(ш) отбрасывается.
Уравнение зашифрования данных в режиме гаммирования с обратной связью может быть представлено в следующем виде:
Ш(i) = A(S)(+)T(i) = r(i)(+)T(i),
Ш(i) = A(UI(i-l)) (+) T(i) = Г(1) (+) T(i), для i=2,3,...,m
Здесь LLI(i) обозначает 64-разрядный блок зашифрованного текста, А -функцию шифрования в режиме простой замены. Аргументом функции на первом шаге итеративного алгоритма является 64-разрядный синхропосылка, а на всех последующих - предыдущий блок зашифрованых данных IH(i-l).
В ГОСТ 28147-89 определяется процесс выработки имитовставки, который единообразен для любого из режимов шифрования данных. Имитовставка -это блок из р бит ( имитовставка Ир), который вырабатывается любо перед шифрованием всего сообщения, либо параллельно с шифрованием по блокам. Первые блоки открытых данных, которые участвуют в выработке имитовставки, могут содержать служебную информацию (например, адресную часть, время, синхропосылку) и не зашифровываться. Значение параметра р (число двоичных разрядов в имитовставке) определяется криптографическими требованиями с учетом того, что вероятность навязывания ложных помех равна 1/2 5р
Для получения имитовставки открытые данные представляются в виде 64 разрядных блоков T(i) (i=l,2,..., m где m определяется объемом шифруемых данных). Первый блок открытых данных Т(1) подвергается преобразованию, соответствующему первым 16 циклам алгоритма зашифрования в режиме простой замены. Причем в качестве ключа для выработки имитовставки используется ключ, по которому шифруются данные. Полученное после 16 циклов работы 64-пазрядное число суммируется по модулю 2 со вторым блоком открытых данных Т(2). Результат суммирования снова подвергается преобразованию, соответствующему первым 16 циклам алгоритма зашифрования в режиме простой замены.
Полученное 64-разрядное число суммируется по модулю 2 с третьим блоком открытых данных Т(3) и т.д. Последний блок Т(т), при необходимости дополненный до полного 64-разрядного блока нулями, суммируется по модулю 2 с результатом работы на шаге ш-1, после чего зашифровывается в режиме простой замены по первым 16 циклам работы алгоритма. Из полученного 64-разрядного числа выбирается отрезок Ир длиной р бит.
Имитовставка Ир передается по каналу связи или в память ЭВМ после зашифрованных данных. Поступившие зашифрованные данные расшифровываются и из полученных блоков открытых данных T(i) вырабатывается имитовставка Ир, которая затем сравнивается с имитовставкой Ир, полученной из канала связи или из памяти ЭВМ. В случае несовпадения имитовставок все расшифрованные данные считаются ложными.
III. Правила выполнения заданий:
Ø Для выполнения задания 1 ответить на вопросыпо материалам теоретической части.
Ø При затруднении выполнения заданий теоретическую часть можно повторить по карте (теоретическая часть,терминологический словарь) либо по электронному пособию «Информационная безопасность».
Ø После выполнения заданий сохранить файл: Меню – Файл – Сохранить как – имя файла (написать свое имя).
Ø Ответы показать преподавателю.
IV. Задания:
Задание 1.
Ответить на вопросы:
1. Как называется криптографическое преобразование информации?
2. Какой текст является Открытым текстом?
3. Назовите криптографические методы защиты информации.
4. Что такое Гаммирование?
5. Каковы назначение и функции устройства SEC-17 и SEC-15?
6. Что такое Квантовая криптография?
7. Расшифруйте термин DES.
8. Расшифруйте термины ВОЛС и КОКС.
9. Что такое криптографическая защита информации?
10. Что понимается под ключом?
11. Приведите свойства методов шифрования.
12. Какие вам известны криптосистемы?
13. Какие системы называются одноключевыми, с секретным ключом и с открытым ключом?
14. Каково предназначение Стандартов DES? В чем отличие данного стандарта от RSA?
15. Какие цели преследует защита информации?
16 . Какие функции шифрования включаются для получения 32-разрядной суммы?
17. Перечислить недостатки блочных шифров.
18. Какие системы криптографической защиты информации являются симметричными (одноключевые, с секретным ключом)?
19. Какие системы криптографической защиты информации являются несиметричными (с открытым ключом)?
20. В каком стандарте определяется процесс выработки имитовставки? Раскройте суть данного процесса.
Задание 2.
Оцените число символов алфавита, кодируемого с помощью двоичных последовательностей длиной:
1. 4 знака; 2. 16 знаков; 3. 12 знаков; 4. 8 знаков.
Задание 3.
С помощью кодовой таблицы ASCII:
· декодируйте сообщение:
01010100 01001111 00100000 01000010 01000101 00100000 01001111 01010010 00100000
01001110 01001111 01010100 00100000 01010100 01001111 00100000 01000010 01000101;
· закодируйте в последовательность шестнадцатеричных чисел слово CLOBUS.
Задание 4.
Закодируйте и декодируйте любое текстовое сообщение с помощью кода Цезаря – пронумеровав алфавит десятичными цифрами и заменив буквы соответствующими им числами.
Задание 5.
Закодируйте и декодируйте любое текстовое сообщение, усложнив код Цезаря добавлением к каждому последующему числу, заменяющему букву, некоторое постоянное число.
Дополнительная литература:
1. Аветисян Р.Д., Аветисян Д.В. Теоретические основы информатики. – М.:РГГУ, 2003.
2.Агеев В.М. Теория информации и кодирования: Дискретизация и кодирование измерительной информации. – М.: МАИ, 2003.
3. Бауэр Ф.Л. , Гооз Г. Информатика. Вводный курс: Пер. с нем. – М.: Мир, 1996.
4. Брой М. Информатика: В 3 т. Т.2.Вычислительные структуры и машинно – ориентированное программирование: пер. с нем. – М.: Диалог – МИФИ, 1996.
5. Дмитриев В.И. Прикладная теория информации. – М., 1999.
6. Кузьмин И.В., Кедрус В.А. Основы теории информации и кодирования. – Киев: Выща шк.,2005.
7. Цымбал В.П. Задачник по теории информации и кодирования. - Киев: Выща шк.,2002..
ЛАБОРАТОРНАЯ РАБОТА №2
Тема: Кодирование и шифрование. Виды шифрования, шифр Вижинёра, шифрование с помощью датчика случайных чисел (ПСЧ) и др. (6/22ч)
Цель работы:Закрепить знания по кодированию и шифрованию, ознакомить с мерами по шифрованию с помощью датчика случайных чисел и их разновидностями, также выработать практические умения и навыки зашифрования и расшифровки информации различными методами: замены, перестановки, системой Вижинера, маршрутами Гамильтона и др.
Средства для выполнения работы:
Ø аппаратные: компьютер с установленной ОС Windows XP;
Ø электронное пособие «Информационная безопасность».
I. Подготовка к выполнению лабораторной работы:
I. Изучение теоретического материала работы по теме: «Кодирование и шифрование. Виды шифрования, шифр Вижинёра, шифрование с помощью датчика случайных чисел (ПСЧ) и др».
II.Открыть папку «Электронное пособие», открыть электронное пособие «Информационная безопасность»,открытьЛабораторную работу №2.
III. Открыть файл «Задания» и на первой строке написать Фамилию, имя, группу. Размер шрифта 14, Тimes New Roman.
II. Теоретическая часть
Шифрование
Шифрование - это преобразование данных в нечитабельную форму, используя ключи шифрования-расшифровки. Криптография - наука о способах преобразования (шифрования) информации с целью ее защити от незаконных пользователей (разработка шифров). Криптоанализ - наука (и практика ее применения) о методах и способах вскрытия шифров (атака на шифры).
Криптология - наука, состоящая из двух ветвей: криптографии и криптоанализа. Ключ - сменный элемент шифра, который применяется для шифрования конкретного сообщения. Методология - процедура, состоящей из: одного или более алгоритмов шифрования (математических формул); ключей, используемых этими алгоритмами шифрования; системы управления ключами; незашифрованного текста; и зашифрованного текста (шифртекста). КК квантовая криптография. ВОЛС волоконно-оптическая линия связи.
Кодирование и шифрование
В настоящее время разработано большое количество различных методов шифрования, созданы теоретические и практические основы их применения.
Шифрование– это процессы зашифрования и расшифрования.
Шифры:
1. Абонентское шифрование – способ шифрования в системе абонента получателя.
2. Шифр – это совокупность обратимых преобразований с применением ключа.
3. Ключ шифрования – это конкретное секретное состояние некоторых параметров алгоритма криптографических преобразований информации.
4. Алгоритм шифрования – это набор математических правил, определяющих содержание и последовательность операции зависящий от ключа шифрования.
5. Блочный алгоритм шифрования – это алгоритм шифрования путем выполнения криптографической операции над n – битными блоками открытого текста.
Алгоритмы шифрования
Алгоритмы шифрования с использованием ключей предполагают, что данные не сможет прочитать никто, кто не обладает ключом для их расшифровки. Они могут быть разделены на два класса, в зависимости от того, какая методология криптосистем напрямую поддерживается ими.
Шифр простой подстановки
При шифровании заменой (подстановкой) символы шифруемого текста заменяются символами того же или другого алфавита с заранее установленным правилом замены. В шифре простой замены каждый символ исходного текста заменяется символами того же алфавита одинаково на всем протяжении текста. Часто шифры простой замены называют шифрами одноалфавитной подстановки. Частным случаем шифра простой замены является шифр Цезаря. Свое название этот шифр получил по имени русского императора Гая Юлия Цезаря, который использовал этот шифр при переписке.
При шифровании исходного текста каждая буква заменялась на другую букву того же алфавита по следующему правилу. Заменяющая буква определялась путем смещения по алфавиту от исходной буквы на К букв. При достижении конца алфавита выполнялся циклический переход к его началу. Цезарь использовал шифр замены при смещении К=3. Такой шифр замены можно задать таблицей подстановок, содержащий соответствующие пары букв открытого текста и шифртекста.
Для реализации алгоритма шифрования данных в режиме простой замены используется только часть блоков общей криптосистемы. Криптосистема, реализующая алгоритм расшифрования в режиме простой замены имеет тот же вид, что и при зашифровании.
Шифры перестановки
При шифровании перестановкой символы шифруемого текста переставляются по определенному правилу в пределах блока этого текста. Шифры перестановки являются самыми простыми и, вероятно, самыми древними шифрами.
Шифрующие таблицы
С начала эпохи Возрождения начала возрождаться и криптография. Наряду с традиционным применением криптографии в политике, дипломатии и военном деле появляются и другие задачи – защита интеллектуальной собственности от преследований инквизиции или заимствований злоумышленников. В разработанных шифрах перестановки того времени применяются шифрующие таблицы, которые в сущности задают правила перестановки букв в сообщении.
В качестве ключа в шифрующих таблицах используются:
· Размер таблицы;
· Слово или фраза, задающие перестановки;
· Особенности структуры таблицы.
Одним из самых примитивных табличных шифров перестановки является простая перестановка, для которой ключом служит размер таблицы.
Несколько большей стойкостью к раскрытию обладает метод шифрования, называемый одиночной перестановкой по ключу. Этот метод отличается от предыдущего тем, что столбцы таблицы переставляются по ключевому слову, фразе или набору чисел длиной в строку таблицы.
Применим в качестве ключа, например, слово Пеликан, а текст сообщения Терминатор прибывает седьмого в полночь (тнпве глеар адонр тиеьв омобт мпчир ысооь). На рисунке показаны две таблицы, заполненные текстом сообщения и ключевым словом, при этом левая таблица соответствует заполнению до перестановки, а правая таблица - заполнению после перестановки.
Ключ →
П | Е | Л | И | К | А | Н |
Т | Н | П | В | Е | Г | Л |
Е | А | Р | А | Д | О | Н |
Р | Т | И | Е | Ь | В | О |
М | О | Б | Т | М | П | Ч |
И | Р | Ы | С | О | О | Ь |
А | Е | И | К | Л | Н | П |
Г | Н | В | Е | П | Л | Т |
О | А | А | Д | Р | Н | Е |
В | Т | Е | Ь | И | О | Р |
П | О | Т | М | Б | Ч | М |
О | Р | С | О | Ы | Ь | И |
До перестановки. После перестановки.
Рис. 1. Таблицы, заполненные ключевым словом и текстом сообщения.
В верхней строке левой таблицы записан ключ, а номер под буквами ключа определены в соответствии с естественным порядком соответствующих букв ключа в алфавите. Если бы в ключе встретились одинаковые буквы, они бы были пронумерованы слева направо. В правой таблице столбцы переставлены в соответствии с упорядоченными номерами букв ключа. При считывании содержимого правой таблицы по строкам записи шифртекста группам по пять букв получим шифрованное сообщение: