
- •1. Сущность проблемы информационной безопасности и надёжности систем
- •2. Характеристика методов и средств защиты информации от несанкционированного доступа
- •3. Характеристика и параметры ис
- •4. Энтропия источника сообщения. Энтропия Шеннона & 5. Энтропия Хартли
- •6. Двоичный канал передачи информации
- •7. Энтропия двоичного алфавита
- •8. Условная энтропия источника сообщения
- •10. Абстрактная машина Тьюринга
- •11. Методы и средства информационной и временной избыточности в ивс
- •12. Помехоустойчивое кодирование информации. Основные понятия
- •13. Помехоустойчивое кодирование информации. Классификация кодов
- •14. Теоретические основы избыточного кодирования информации
- •15. Алгоритм использования корректирующего кода
- •15. Декодирования кодовых слов. Поиск и исправление ошибок. Особенности программной реализации
- •18. Код простой чётности. Особенности программной реализации
- •20. Составной код. Итеративные коды
- •Кодовые слова строк, столбцов и диагоналей для ликдд
- •28. Сущность криптографических методов преобразования информации
- •Базовые понятия и определения из области криптографии:
- •29. Классификация методов криптопреобразования
- •30. Основы теории больших чисел и модульной арифметики
- •31. Функция Эйлера
- •32. Проблема дискретного логарифма в криптографии
- •33. Подстановочные и перестановочные шифры
- •34. Базовые методы шифрования данных
- •35. Системы симметричного криптопреобразования
- •36. Алгоритм криптопреобразования des
- •38. Криптографические системы с открытым (публичным) ключом. Алгоритм rsa
- •39. Алгоритм передачи ключа по Диффи-Хеллману
- •40. Потоковые шифры
- •44. Эцп. Назначение и свойства
- •46. Эцп на основе симметричной криптографии
- •47. Эцп на основе алгоритма rsa
- •48. Эцп на основе симметричной криптосистемы и посредника
- •49. Эцп на основе dsa
- •50. Эцп на основе алгоритма Эль-Гамаля
- •51. Эцп на основе алгоритма Шнорра
- •Алгоритм создания хэш-функции md4:
- •56. Эцп на основе алгоритма rsa и хеш-функции
- •57. Методы текстовой стеганографии
- •58. Методы графической стеганографии
Второй классификационный признак касается формирования шифрограммы на основе сообщения М:
Блочное шифрование, когда все сообщение произвольной длины делится на блоки и отдельно зашифровывается каждый из блоков тем же самым ключом. Тот же самый метод, что и в помехоустойчивом блочном кодировании.
Поточное шифрование. По существу, создаются псевдобесконечная шифрограмма. То есть преобразованию подвергается целый поток данных. Шифрование зависит от всех проанализированных до этого символов.
Третий классификационный признак касается позиции преобразованных символов в шифрограмме относительно исходных данных. Здесь все шифры делятся на:
Подстановочные.
Перестановочные.
Обобщенная схема:
Интруз — физическое лицо или процесс, которое реализует неразрешенный или несанкционированный доступ к информации закрытой ее владельцем.
Если владелец информации закрыл доступ к М, то действие интруза направлено на получение K1 и K2 ключей или зашифрованного текста Е.
Одним из способов осуществления расшифровки зашифрованного текста интрузом может быть атака “в лоб”, то есть перебор всех возможных ключей. У интруза существует несколько целей:
получить ключ;
получить сообщение и прочитать;
подменить зашифрованное сообщение, зная ключ.
Выводы:
Второй целью (помимо закрытия сообщения от несанкционированного доступа) является возможность идентификации отправителя сообщения и возможной аутентификации сообщения или установления подлинности отправителя сообщения. Установление подлинности может основываться на использовании информации о ключе, либо на использовании более современного метода, который называется электронная цифровая подпись.
30. Основы теории больших чисел и модульной арифметики
Основой асимметричных систем является модулярная арифметика, т. е. вычисления по модулю. Общая задача состоит в определении такого значения х, при котором
. (5.2)
Последнее равенство можно также записать в виде:
(5.3)
В (5.3) параметр a–1 называют обратным значением. Задача вычисления обратных значений намного сложнее обычной. Рассмотрим это на примере.
Пример 5.5. Перепишем (5.2) в следующем виде:
Решение этого уравнения эквивалентно поиску таких значений х и k, при которых справедливо:
где х и k – целые числа.
Иногда задача обратных вычислений имеет решение, иногда – нет. Например, обратное значение 5 по модулю 14 равно 3. С другой стороны, число 2 не имеет обратного значения по модулю 14.
В общем случае уравнение (5.3) имеет единственное решение, если а и n взаимно просты. Если же а и n не являются взаимно простыми, то (5.3) решений не имеет.
Следует также иметь в виду, что если число является простым, то любое число от 1 до n – 1, взаимно простое с n, имеет только одно обратное значение по модулю n.
Обратное значение по модулю n можно вычислит на основе двух методов: алгоритма Евклида (или расширенного алгоритма Евклида) и функции Эйлера.
31. Функция Эйлера
Функция
Эйлера, которую иногда
называют функцией «фи» Эйлера и записывают
как
(n),
указывает количество положительных
целых чисел, меньших n
и взаимно простых с n
для любого n,
большего 1.
Если
n – простое
число, то
.
При
,
где p
и
q –
простые числа, то
.
Эти числа используются в некоторых
системах с открытым ключом, в том числе
и в наиболее известной и широко
используемой системе RSA.
32. Проблема дискретного логарифма в криптографии
Криптографическое преобразование в большинстве современных информационных систем основано на решении задачи дискретного логарифмирования в конечном поле. Сущность задачи состоит в следующем. Если есть целые положительные числа a, x, n, легко можно вычислить:
.
Однако, если известны b, a и n, то x можно найти на основе вычисления логарифма. Оказывается, что при определенных значениях b, a и n определить х является большой проблемой.
Например,
если
,
то
.
Однако нетрудно заметить, что у следующего
уравнения нет решений:
.
Еще труднее решить задачу для 1024-битовых
чисел.
Особый интерес представляют дискретные логарифмы мультипликативных групп полей простых чисел: GF(p). Если р –простое число, используемое в качестве модуля, то сложность поиска дискретных логарифмов в GF(p) соответствует разложению на множители числа n того же размера, где n – произведение двух простых чисел примерно равной длины, т. е. вычисление дискретных логарифмов тесно сопряжено с разложением на множители. Если стоит вопрос дискретного логарифмирования, то решается задача разложения на множители (истинность обратного пока никем не доказана).
С. Полиг (S. Pohlig) и М. Хеллман (M. Hellman) нашли способ быстрого вычисления дискретных логарифмов в поле GF(p) при условии, что р – 1 раскладывается только на малые простые множители. По этой причине в криптографии используются только такие поля, в которых у числа р – 1 есть хотя бы один большой простой множитель.
33. Подстановочные и перестановочные шифры
Подстановочные шифры. Сущность подстановочного шифрования состоит в том, что, как правило, исходный (М) или зашифрованный текст (С) используют один и тот же алфавит, а ключом является алгоритм подстановки. Такой шифр называется простым, или моноалфавитным.
Примером такого шифра является знаменитый шифр Цезаря, в котором каждый символ открытого текста заменяется символом, находящимся тремя символами правее (по модулю 26 или по принципу кольца): «A» меняется на «D», «B» – на «E», «W» – на «Z», «X» – на «A» и т. д. (в некоторых случаях во внимание принимается 27-й символ – пробел). Для расшифрования необходимо выполнить обратную замену.
Пример 5.1. Имеем открытый текст М = «cba». На основе шифра Цезаря С = «gfd».
Простой подстановочный шифр применяется, например, в системе UNIX: простая программа шифрования (ROT13) использует смещение на 13 позиций, т. е. символ «А» заменяется на «N» и т. д.
Анализируемые шифры взламываются без труда, поскольку не скрывают частоту (вероятность) применения различных символов в открытом тексте.
5.2.2 Престановочные шифры. Перестановочные шифры используют перестановку символов исходного сообщения в соответствии с установленным правилом, открытый текст остается неизменным, но символы в нем «перетасовываются» (подвергаются пермутации). Так, в простом вертикальном перестановочном шифре открытый текст пишется по горизонтали на разграфленном листе бумаги фиксированной длины, а шифртекст считывается по вертикали. Рассмотрим это на примере.
Пример 5.2. М = «ВАСЯ ЛЮБИТ МАШУ». Запишем этот текст как показано на рис. 5.2.
Рис. 5.2. Использование простого вертикального перестановочного шифра
Считывание по столбцам снизу вверх приводит к такому шифртексту: С = «_ЛВМЮААБСШИЯУТ_».
Принцип записи исходного сообщения и порядок считывания символов может быть различным. Обратимся к следующему примеру.
Пример 5-3. Открытый текст возьмем из предыдущего примера, а запишем его так, как показано на рис. 5.3.
Рис. 5.3. Использование перестановочного шифра
Осуществляя считывания по уровням, начиная с верхнего, получим следующий шифртекст: С = «СЮ_УАЯЛБТМШВ_ИА».
Существуют еще более сложные перестановочные шифры, но компьютеры достаточно быстро справляются с ними. При этом использование данных шифров требует большого объема памяти.
34. Базовые методы шифрования данных
Криптографический алгоритм, называемый также шифром, в наиболее общем виде представляет собой математическую функцию, которая используется для зашифрования и расшифрования.
В предыдущем подразделе упоминалось о двух классах криптосистем, реализующих подобные алгоритмы: симметричные и асимметричные системы. Симметричность означает, что ключи, задающие пару взаимно обратных преобразований, идентичны либо могут быть получены один из другого путем простых преобразований. Асимметричность подразумевает, что ключи различны и знание одного (K1) не должно позволять определению другого (по крайней мере, нахождение другого должно быть чрезвычайно трудным).
Зашифрование и расшифрование с помощью симметричного алгоритма записывается следующим образом:
(или
M′). (5.1)
Предполагается, что возможно Еk = Dk = K.
Симметричные алгоритмы подразделяются, в свою очередь, на два подкласса: потоковые и блочные. Потоковые алгоритмы обрабатывают открытый текст побитово, блочные – группы битов (блоки) открытого текста.
В асимметричных алгоритмах невозможно выполнение равенств Еk = Dk = K.
В некоторых случаях сообщения шифруются закрытым (Dk) ключом, а расшифровываются – открытым. Такой подход используется в цифровых подписях.
До появления компьютеров криптография основывалась на текстовых алгоритмах. Основой их были операции замены одних символов другими либо перестановка символов местами. Первые алгоритмы относятся к классу подстановочных, другие – перестановочных. Современные криптосистемы используют как подстановки, так и перестановки символов.
35. Системы симметричного криптопреобразования
В симметричных системах Отправитель и Получатель используют один и тот же ключ, который должен быть известен только им.
Рассмотрим пример:
Сообщение М(0,1)= 10101100
К1= К2= 1010. Используется самая простая операция шифрования:
;
,
где i
— i-тый
блок шифрования, Mi
— i-тая
часть сообщения.
— сумма по модулю 2.
Современные системы используют множественные арифметическо-логические преобразования исходного текста.
Первый из стандартов, реализующий данный метод был DES (Data Encryption Standard).
36. Алгоритм криптопреобразования des
Стандарт шифрования DES (Data Encryption Standard) был разработан в 1970-х годах, он базируется на алгоритме DEA.
Исходные идеи алгоритма шифрования данных DEA (data encryption algorithm) были предложены компанией IBM еще в 1960-х годах и базировались на идеях, описанных Клодом Шенноном в 1940-х годах. Первоначально, эта методика шифрования называлась Lucifer, разработчик Хорст Фейштель, название dea она получила лишь в 1976 году. Lucifer был первым блочным алгоритмом шифрования, он использовал блоки размером 128 бит и 128-битовый ключ. По существу этот алгоритм являлся прототипом DEA. В 1986 в Японии (NIT) разработан алгоритм FEAL(Fast data Encipherment ALgorithm), предназначенный для использования в факсах, модемах и телефонах (длина ключа до 128 бит). Существует и ряд других разработок.
DEA оперирует с блоками данных размером 64 бита и использует ключ длиной 56 бит. Такая длина ключа соответствует 1017 комбинаций, что обеспечивало до недавнего времени достаточный уровень безопасности. В дальнейшем можно ожидать расширения ключа до 64 бит (например, LOKI) или вообще замены DES другим стандартом.
Входной блок данных, состоящий из 64 бит, преобразуется в выходной блок идентичной длины. Ключ шифрования должен быть известен, как отправляющей так и принимающей сторонам. В алгоритме широко используются перестановки битов текста.
Вводится функция f, которая работает с 32-разрядными словами исходного текста (А) и использует в качестве параметра 48-разрядный ключ (J). Схема работы функции f показана на рис. 6.4.1.1. Сначала 32 входные разряда расширяются до 48, при этом некоторые разряды повторяются. Схема этого расширения показана ниже (номера соответствуют номерам бит исходного 32-разрядного кода).
32 |
1 |
2 |
3 |
4 |
5 |
4 |
5 |
6 |
7 |
8 |
9 |
8 |
9 |
10 |
11 |
12 |
13 |
12 |
13 |
14 |
15 |
16 |
17 |
16 |
17 |
18 |
19 |
20 |
21 |
20 |
21 |
22 |
23 |
24 |
25 |
24 |
25 |
26 |
27 |
28 |
29 |
28 |
29 |
30 |
31 |
32 |
1 |
Для полученного 48-разрядного кода и ключа выполняется операция исключающее ИЛИ (XOR). Результирующий 48-разрядный код преобразуется в 32-разрядный с помощью S-матриц. На выходе S-матриц осуществляется перестановка согласно схеме показанной ниже (числа представляют собой порядковые номера бит).
16 |
7 |
20 |
21 |
29 |
12 |
28 |
17 |
1 |
15 |
23 |
26 |
5 |
18 |
31 |
10 |
2 |
8 |
24 |
14 |
32 |
27 |
3 |
9 |
19 |
13 |
30 |
6 |
22 |
11 |
4 |
25 |
Алгоритм работы функции f
Преобразование начинается с перестановки бит (IP – Initial Permutation) в 64-разрядном блоке исходных данных. 58-ой бит становится первым, 50-ый – вторым и т.д. Схема перестановки битов показана ниже.
58 |
50 |
42 |
34 |
26 |
18 |
10 |
2 |
60 |
52 |
44 |
36 |
28 |
20 |
12 |
4 |
62 |
54 |
46 |
38 |
30 |
22 |
14 |
6 |
64 |
56 |
48 |
40 |
32 |
24 |
16 |
8 |
57 |
49 |
41 |
33 |
25 |
17 |
9 |
1 |
59 |
51 |
43 |
35 |
27 |
19 |
11 |
3 |
61 |
53 |
45 |
37 |
29 |
21 |
13 |
5 |
63 |
55 |
47 |
39 |
31 |
23 |
15 |
7 |
Полученный блок делится на две 32-разрядные части L0 и R0. Далее 16 раз повторяются следующие 4 процедуры:
Преобразование ключа с учетом номера итерации i (перестановки разрядов с удалением 8 бит, в результате получается 48-разрядный ключ)
Пусть A=Li, а J – преобразованный ключ. С помощью функции f(A,J) генерируется 32-разрядный выходной код. Выполняется операция XOR для Ri f(A,J), результат обозначается Ri+1. Выполняется операция присвоения Li+1=Ri.
Структурная схема реализации алгоритма dea показана на следующем рисунке.
Структурная схема реализации алгоритма DEA
Инверсная перестановка разрядов предполагает следующее размещение 64 бит зашифрованных данных (первым битом становится 40-ой, вторым 8-ой и т.д.).
40 |
8 |
48 |
16 |
56 |
24 |
64 |
32 |
39 |
7 |
47 |
15 |
55 |
23 |
63 |
31 |
38 |
6 |
46 |
14 |
54 |
22 |
62 |
30 |
37 |
5 |
45 |
13 |
53 |
21 |
61 |
29 |
36 |
4 |
44 |
12 |
52 |
20 |
60 |
28 |
35 |
3 |
43 |
11 |
51 |
19 |
59 |
27 |
34 |
2 |
42 |
10 |
50 |
18 |
58 |
26 |
33 |
1 |
41 |
9 |
49 |
17 |
57 |
25 |
S-матрицы представляют собой таблицы содержащие 4-ряда и 16 столбцов. Матрица S(1) представлена ниже (эта матрица, также как и те, что приведены выше, являются рекомендуемыми).
№ |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
0 |
14 |
4 |
13 |
1 |
2 |
15 |
11 |
8 |
3 |
10 |
6 |
12 |
5 |
9 |
0 |
7 |
1 |
0 |
15 |
7 |
4 |
14 |
2 |
13 |
1 |
10 |
6 |
12 |
11 |
9 |
5 |
3 |
8 |
2 |
4 |
1 |
14 |
8 |
13 |
6 |
2 |
11 |
15 |
12 |
9 |
7 |
3 |
10 |
5 |
0 |
3 |
15 |
12 |
8 |
2 |
4 |
9 |
1 |
7 |
5 |
11 |
3 |
14 |
10 |
0 |
6 |
13 |
Исходный 48-разрядный код делится на 8 групп по 6 разрядов. Первый и последний разряд в группе используется в качестве адреса строки, а средние 4 разряда – в качестве адреса столбца. В результате каждые 6 бит кода преобразуются в 4 бита, а весь 48-разрядный код в 32-разрядный (для этого нужно 8 S-матриц). Существуют разработки, позволяющие выполнять шифрование в рамках стандарта DES аппаратным образом, что обеспечивает довольно высокое быстродействие.
Преобразования ключей Kn (n=1,…,16; Kn = KS(n,key), где n – номер итерации) осуществляются согласно следующему алгоритму.
Алгоритм вычисления последовательности ключей Kn
Для описания алгоритма вычисления ключей Kn (функция KS) достаточно определить структуру “Выбора 1” и “Выбора 2”, а также задать схему сдвигов влево (табл. 6.4.1.2). “Выбора 1” и “Выбора 2” представляют собой перестановки битов ключа (PC-1 и PC-2; табл. 6.4.1.1). При необходимости биты 8, 16,…, 64 могут использоваться для контроля четности. Для вычисления очередного значения ключа таблица делится на две части С0 и D0. В С0 войдут биты 57, 49, 41,…, 44 и 36, а в D0 – 63, 55, 47,…, 12 и 4. Так как схема сдвигов задана (табл. 6.4.1.2) C1,D1; Cn, Dn и так далее могут быть легко получены из C0 и D0. Так, например, C3 и D3 получаются из C2 и D2 циклическим сдвигом влево на 2 разряда
Таблица 1
PC-1 (Выбор 1) |
PC-2 (Выбор 2) |
57 49 41 33 25 17 9 |
14 17 11 24 1 5 |
1 58 50 42 34 26 18 |
3 28 15 6 21 10 |
10 2 59 51 43 35 27 |
23 19 12 4 26 8 |
19 11 3 60 52 44 36 |
16 7 27 20 13 2 |
63 55 47 39 31 23 15 |
41 52 31 37 47 55 |
7 62 54 46 38 30 22 |
30 40 51 45 33 48 |
14 6 61 53 45 37 29 |
44 49 39 56 34 53 |
21 13 5 28 20 12 4 |
46 42 50 36 29 32 |
Таблица 2
Номер итерации |
Число сдвигов влево |
1 |
1 |
2 |
1 |
3 |
2 |
4 |
2 |
5 |
2 |
6 |
2 |
7 |
2 |
8 |
2 |
9 |
1 |
10 |
2 |
11 |
2 |
12 |
2 |
13 |
2 |
14 |
2 |
15 |
2 |
16 |
1 |
38. Криптографические системы с открытым (публичным) ключом. Алгоритм rsa
Математическое решение проблемы перехода на аcимметричное шифрование нашли в 1976 г. Диффи (Diffie) и Хеллман (Hellman). Основное отличие асимметричных систем от симметричных заключается в том, что ключ для зашифрования отличается от ключа для расшифрования сообщений (K1≠K2). Более того, ключ для расшифрования не может быть вычислен из ключа зашифрования.
После
1976 г.
было создано множество криптоалгоритмов,
использующих концепцию открытых ключей.
И лишь небольшая их часть пригодна для
практического применения. Как правило,
такие алгоритмы основываются на решении
одной из трудных математических задач,
которая относится к так называемой
проблеме дискретного
логарифмирования
(см. с. 75):
если, к примеру, известны целые числа
а,
х и
n,
то можно легко вычислить значение
функции
однако при известных
у,
а и
n
нахождение х
может вызвать затруднение; при этом
очевидно, что вычисление х
основывается на операции логарифмирования.
5.3.3. Криптографический алгоритм RSA. Из всех предложенных алгоритмов для асимметричных систем алгоритм RSA проще всего понять и реализовать. Названный в честь трех изобретателей Рона Ривеста (Ron Rivest), Ади Шамира (Adi Shamir) и Леонарда Адлемана (Leonard Adleman), этот алгоритм многие годы противостоит многочисленным попыткам криптоаналитического вскрытия.
Безопасность алгоритма основана на трудоемкости разложения на множители больших чисел. Открытый и закрытый ключи являются функциями двух больших простых чисел разрядностью 100 – 200 десятичных цифр. Предполагается, что восстановление открытого текста по шифртексту и открытому ключу равносильно разложению числа на два больших простых множителя.
Ключ состоит из тройки больших целых чисел e, d, n. Пара чисел (e и n) является не секретной и образует публичный ключ. Число d является секретным, и пара (d и n) образует тайный ключ, известный только данному пользователю. Проблема верификации пользователей на основе их открытых ключей является одной из важных.
Основные операции алгоритма:
1. Для генерации двух ключей применяются два больших случайных простых числа (p и q). Для большей криптостойкости алгоритма эти числа должны иметь равную длину.
2. Рассчитывается
произведение
и вычисляется функция
3. Случайным образом выбирается число е такое, что е и (n) являются взаимно простыми числами.
4. С
помощью расширенного алгоритма Евклида
вычисляется число d
такое, что
,
другими словами,
Подразумевается, что эти шаги выполняет лицо, которое генерирует для себя (или по просьбе другого лица для этого другого лица) соответствующие ключи.
Ниже приведен фрагмент программы (листинг 5.2), позволяющей найти все простые числа из диапазона (3, 100).
Отметим, что числа d и n также являются взаимно простыми. Открытый и закрытый ключи составляют вышеуказанные пары чисел: e и n, d и n соответственно.
Зашифрование сообщения М = m1m2 …mk (сообщение делится на k блоков) в соответствии с (5.1) выглядит просто:
(5.4)
при расшифровании каждого блока mi сообщения С производится следующая операция:
.
Точно также сообщение может быть зашифровано с помощью пары d и n и расшифровано – с помощью чисел e и n. Именно такой подход используется в системах электронной цифровой подписи.
Пример 5.6. Пусть сообщение М представляется числом: 688232. Предполагаем, что длина ключа составляет три десятичных цифры. Проиллюстрируем использование алгоритма RSA для передачи зашифрованного сообщения.
Выбираем
числа p
= 47
и
q
= 71. Имеем
Вычисляем
Число е не должно иметь общих сомножителей с числом 3220; выбираем (случайным образом) е, равным 79.
Вычисляем d: d = 79-1 mod 3220 = 1019.
Имеем открытый ключ – числа 79 и 3337 (его можно разместить в общедоступных источниках) и закрытый ключ – числа 1019 и 3337 (как видим, секретным является только число d; в нашем случае – это число 1019).
Для зашифрования сообщения М разбиваем его на блоки длиной, равной длине ключа, т. е. по 3 символа: m1 = 688, m2 = 232. Первый блок шифруется как 68879 mod 3337 = 1570 = с1; второй блок – 23279 mod 3337 = 2756 = с2.
Шифртекст С сообщения М выглядит следующим образом: С = 1570 2756. Для обратного преобразования нужно выполнить похожие операции, однако с использованием числа 1019 в качестве степени:
m1 = 15701019 mod 3337 = 688,
m2 = 27561019 mod 3337 = 232.
39. Алгоритм передачи ключа по Диффи-Хеллману
Математическое решение проблемы перехода на асcиметричное шифрование нашли Диффи (Diffy) и Хеллман (Hellmann). Ключ состоит из тройки больших целых чисел e, d, n. Числа e и d — являются взаимно простыми (нет общего делителя кроме 1). Эти числа выбираются на основе определенной последовательности друг с другом и на основе зависимости от n. Числа e, d и n являются общедоступными и составляют одну часть ключа, которая называется открытой. Эти ключи хранятся в специальных сертификационных центрах. Задачей этих центров является подтверждение аутентичности этого ключа.
Число d является тайным и является известным только обладателям общего ключа.
Взаимозависимость между тремя этими параметрами основывается на однонаправленной функции.
М — сообщение, которое отправляет Отправитель, зашифровывается с помощью e и n. С — шифрование. Однако обратная операция получения M, не возможна:
А вот дешифрование может провести только Получатель:
40. Потоковые шифры
Пото́чный шифр — это симметричный шифр, в котором каждый символ открытого текста преобразуется в символ шифрованного текста в зависимости не только от используемого ключа, но и от его расположения в потоке открытого текста. Поточный шифр реализует другой подход к симметричному шифрованию, нежели блочные шифры.
История
Потоковые шифры на базе сдвиговых регистров активно использовались в годы войны, ещё задолго до появления электроники. Они были просты в проектировании и реализации.
В 1965 году Эрнст Селмер, главный криптограф норвежского правительства, разработал теорию последовательности сдвиговых регистров. Позже Соломон Голомб, математик Агентства Национальной Безопасности США, написал книгу под названием «Shift Register Sequences»(« Последовательности сдвиговых регистров»), в которой изложил свои основные достижения в этой области, а также достижения Селмера.
Большую популярность потоковым шифрам принесла работа Клода Шеннона, опубликованная в 1949 году, в которой Шеннон доказал абсолютную стойкость шифра Вернама (также известного, как одноразовый блокнот). В шифре Вернама ключ имеет длину, равную длине самого передаваемого сообщения. Ключ используется в качестве гаммы, и если каждый бит ключа выбирается случайно, то вскрыть шифр невозможно (т.к. все возможные открытые тексты будут равновероятны). До настоящего времени было придумано немало алгоритмов потокового шифрования. Такие как: A3, A5, A8, RC4,PIKE, SEAL, eSTREAM.
Классификация поточных шифров
Допустим, например, что в режиме гаммирования для поточных шифров при передаче по каналу связи произошло искажение одного знака шифротекста. Очевидно, что в этом случае все знаки, принятые без искажения, будут расшифрованы правильно. Произойдёт потеря лишь одного знака текста. А теперь представим, что один из знаков шифротекста при передаче по каналу связи был потерян. Это приведёт к неправильному расшифрованию всего текста, следующего за потерянным знаком.
Практически во всех каналах передачи данных для поточных систем шифрования присутствуют помехи. Поэтому для предотвращения потери информации решают проблему синхронизации шифрования и расшифрования текста. По способу решения этой проблемы шифрсистемы подразделяются на синхронные и системы с самосинхронизацией.
Синхронные поточные шифры
Синхронные поточные шифры (СПШ) — шифры, в которых поток ключей генерируется независимо от открытого текста и шифротекста.
При шифровании генератор потока ключей выдаёт биты потока ключей, которые идентичны битам потока ключей при дешифровании. Потеря знака шифротекста приведёт к нарушению синхронизации между этими двумя генераторами и невозможности расшифрования оставшейся части сообщения. Очевидно, что в этой ситуации отправитель и получатель должны повторно синхронизоваться для продолжения работы.
Обычно синхронизация производится вставкой в передаваемое сообщение специальных маркеров. В результате этого пропущенный при передаче знак приводит к неверному расшифрованию лишь до тех пор, пока не будет принят один из маркеров.
Заметим, что выполняться синхронизация должна так, чтобы ни одна часть потока ключей не была повторена. Поэтому переводить генератор в более раннее состояние не имеет смысла.
Плюсы СПШ:
отсутствие эффекта распространения ошибок (только искажённый бит будет расшифрован неверно);
предохраняют от любых вставок и удалений шифротекста, так как они приведут к потере синхронизации и будут обнаружены.
Минусы СПШ:
уязвимы к изменению отдельных бит шифрованного текста. Если злоумышленнику известен открытый текст, он может изменить эти биты так, чтобы они расшифровывались, как ему надо.
Самосинхронизирующиеся поточные шифры
Основная идея построения была запатентована в 1946 г. в США.
Определение:
Самосинхронизирующиеся поточные шифры (асинхронные поточные шифры (АПШ)) – шифры, в которых поток ключей создаётся функцией ключа и фиксированного числа знаков шифротекста.
Итак, внутреннее состояние генератора потока ключей является функцией предыдущих N битов шифротекста. Поэтому расшифрующий генератор потока ключей, приняв N битов, автоматически синхронизируется с шифрующим генератором.
Реализация этого режима происходит следующим образом: каждое сообщение начинается случайным заголовком длиной N битов; заголовок шифруется, передаётся и расшифровывается; расшифровка является неправильной, зато после этих N бит оба генератора будут синхронизированы.
Плюсы АПШ:
Размешивание статистики открытого текста. Так как каждый знак открытого текста влияет на следующий шифротекст, статистические свойства открытого текста распространяются на весь шифротекст. Следовательно, АПШ может быть более устойчивым к атакам на основе избыточности открытого текста, чем СПШ.
Минусы АПШ:
распространение ошибки (каждому неправильному биту шифротекста соответствуют N ошибок в открытом тексте);
чувствительны к вскрытию повторной передачей.
Основные отличия поточных шифров от блочных
Большинство существующих шифров с секретным ключом однозначно могут быть отнесены либо к поточным, либо к блочным шифрам. Но теоретическая граница между ними является довольно размытой. Например, используются алгоритмы блочного шифрования в режиме поточного шифрования (пример: для алгоритма DES режимы CFB и OFB).
Рассмотрим основные различия между поточными и блочными шифрами не только в аспектах их безопасности и удобства, но и с точки зрения их изучения в мире:
важнейшим достоинством поточных шифров перед блочными является высокая скорость шифрования, соизмеримая со скоростью поступления входной информации; поэтому, обеспечивается шифрование практически в реальном масштабе времени вне зависимости от объема и разрядности потока преобразуемых данных.
в синхронных поточных шифрах (в отличие от блочных) отсутствует эффект размножения ошибок, то есть число искаженных элементов в расшифрованной последовательности равно числу искаженных элементов зашифрованной последовательности, пришедшей из канала связи.
структура поточного ключа может иметь уязвимые места, которые дают возможность криптоаналитику получить дополнительную информацию о ключе (например, при малом периоде ключа криптоаналитик может использовать найденные части поточного ключа для дешифрования последующего закрытого текста).
ПШ в отличие от БШ часто могут быть атакованы при помощи линейной алгебры (так как выходы отдельных регистров сдвига с обратной линейной связью могут иметь корреляцию с гаммой). Также для взлома поточных шифров весьма успешно применяется линейный и дифференциальный анализ.
Теперь о положении в мире:
в большинстве работ по анализу и взлому блочных шифров рассматриваются алгоритмы шифрования, основанные на стандарте DES; для поточных же шифров нет выделенного направления изучения; методы взлома ПШ весьма разнообразны.
для поточных шифров установлен набор требований, являющихся критериями надёжности (большие периоды выходных последовательностей, постулаты Голомба, нелинейность); для БШ таких чётких критериев нет.
исследованием и разработкой поточных шифров в основном занимаются европейские криптографические центры, блочных – американские.
исследование поточных шифров происходит более динамично, чем блочных; в последнее время не было сделано никаких заметных открытий в сфере DES-алгоритмов, в то время как в области поточных шифров случилось множество успехов и неудач (некоторые схемы, казавшиеся стойкими, при дальнейшем исследовании не оправдали надежд изобретателей).
44. Эцп. Назначение и свойства
Выполняет следующие функции:
удостоверяет
подтверждает
идентифицирует
Рассмотрим эти пункты поподробнее:
Подпись должна быть достоверна, это означает, что подписавший документ человек сделал это осознано, без принуждения.
Подпись неподдельна. Подписавший — автор подписи.
Подпись невозможно использовать повторно, мошенник не должен иметь возможность переносить подпись без ведома подписавшегося.
Подписанный документ не может быть изменен, особенно, если сделано несколько копий.
От подписи нельзя отречься.
Роль подписи такая же, как и в бумажных документах, но есть отличия. Нет проблем изменить любой файл. Подпись можно отсканировать и разместить на документе.
46. Эцп на основе симметричной криптографии
Пусть имеется абонент А, который пересылает сообщение абоненту В. Основная проблема — в механизме передачи и механизме хранения. Схематично рассмотрим схему с посредником:
П — посредник, абсолютно доверенное лицо. Доверенное лицо посылает абоненту А ключ Kа и он же посылает абоненту В ключ Kb.
1-ый шаг: абонент А шифрует с помощью ключа Kа сообщение М и на основе сообщения М и ключа Kа получается шифрограмма С:
2-ый шаг: абонент А отсылает зашифрованное сообщение посреднику. Посредник расшифровывает сообщение с помощью ключа Kа получает сообщение М, что является подтверждением того, что документ прислан именно абонентом А:
3-ий шаг: посредник передает сообщение абоненту В с добавлением: “Да, это сообщение действительно от абонента А”. И шифрует это сообщение:
4-ый шаг: пользователь В получает шифрограмму С и с помощью ключа Kb расшифровывает сообщение с подтверждением от посредника об подлинности авторства А:
Выводы:
Подпись действительно достоверна, поскольку посредник является абсолютно достоверным лицом.
Подпись неподдельна. Если кто-то попытается выдать себя за А, то это должен выдать посредник, при условии, что абонент А соблюдает конфиденциальность своего ключа.
Подпись невозможно использовать повторно. Если, к примеру, D захочет это сделать, то лицо А и лицо В это могут опровергнуть.
Невозможно изменить подпись, с учетом того, что это можно легко обнаружить.
Подпись невозможно отрицать. Вступает принцип мажоритарности.
Основная проблема:
Чем больше пользователей, тем труднее реализовывать посреднику свои функции. Если посредником является компьютер, то эта проблема отсутствует, зато появляется другая: что если он перестанет работать?
47. Эцп на основе алгоритма rsa
Р. Риверст разработал алгоритм и метод, используемый ЭЦП на основе данного алгоритма. В данном методе А и В имеют сгенерированные личные ключи {Ea, Da, Ma; Eb, Db, Mb}. Между классическим шифрованием по методу асимметричных систем и ЭЦП существует разница.
Между формированием ЭЦП на основе криптосистем с открытым ключом и простым шифрованием на основе того же метода имеется одна существенная особенность. Если используется обычное шифрование между А и В, где А пересылает сообщение В, то А использует для шифрования открытый ключ В, для расшифрование В использует свой тайный ключ, то есть использует ключи получателя. В системах с ЭЦП на основе криптосистем с открытым ключом, если А отправляет подписанное сообщение В, то для подписи документа А использует свой собственный тайный ключ для расшифрования. Таким образом, для получения подтверждения авторства документа, получатель использует открытый ключ отправителя, то есть использует в данном случае ключи, принадлежащие отправителю.
Протокол генерации использования ЭЦП на основе RSA
Абоненты А и В независимо, либо с помощью специализированного центра генерирует пары простых: pa, qa и pb, qb. С помощью них вычисляются na и nb;
na = pa·qa и nb = pb·qb;
Вычисляются ключи: {ea, da ; eb, db}.
Числа {na, ea; nb, eb} помещаются в общедоступный центр и получают статус открытых, публичных ключей.
Для обмена сообщениями, а именно для формирования цифровой подписи, каждая из сторон использует ключ абонента, подписавшего сообщение, а именно: отправитель использует собственный тайный ключ, а получатель — ключ отправителя.
Как и в системах с симметричным ключом, может быть реализован следующий алгоритм:
Отправитель для шифрования использует публичный ключ получателя, для расшифрования получатель использует свой тайный ключ. Однако, в этом случае трудно доказать или оспорить, кто является подписантом (подписавшим документ) документа.
Разработан третий и основной метод: ЭЦП на основе асимметричных криптосистем и однонаправленных хэш-функций.
На основе алгоритма RSA:
А шифрует документ своим закрытым ключом:
С= F(M;da,na)
B расш-т С открытым ключом А:
М= F(С;еa,na)
б) на основе алгоритма Эль-Гамаля
Генерация ключа: р – простое число; выбираем два случайных числа: g и х (g, х <p); вычисляем:
y = gx mod p; открытый ключ – р и g, закрытый ключ – х.
2. А шифрует документ M своим закрытым ключом:
выбирается случайное число k – взаимно простое с (p-1) генерируется подпись, состоящая из двух чисел: а и b:
a=gk mod p; b такое, что M = (x*a+k*b) mod (p-1)
3. А отправляет В подписанное сообщение: М,а,b
4. В получает М,а,b и сверяет подпись: подпись принадлежит А, если (ba*ab ) mod p = gM mod p
Пример. p=11, g=2, x=8, вычисляем y=gx mod p = = 28 mod 11 =3; откр кл - p=11, g=2, y=3; закр кл x=8
Подпись сообщения М=5: выбираем k=9 взаимно простое с р-1=10; вычисляем a=gk mod p= 29mod11= =6; на основе M = (x*a+k*b) mod (p-1) вычисляем b:
5=(8*6+9*b)mod 10, решение b =3.
Проверка подписи: (36 * 63) mod 11 = 25 mod 11= 10
48. Эцп на основе симметричной криптосистемы и посредника
Пусть имеется абонент А, который пересылает сообщение абоненту В. Основная проблема заключается в механизме передачи и механизме хранения ключа. Хранителем ключей является третья сторона – посредник П, которому абсолютно доверяют абоненты А и В.
Для организации пересылки сообщения от А к В абонент А пользуется услугой П. Схематично эта процедура выглядит следующим образом:
1. Абонент А шифрует с помощью собственного ключа KА (ключи обоих абонентов известны П, однако каждый из абонентов не знает «чужих» ключей) сообщение М: С = KА(М).
2. Абонент А отсылает зашифрованное сообщение П. Посредник расшифровывает сообщение с помощью ключа KА, что является подтверждением того, что документ прислан именно абонентом А.
3. Посредник П дополняет расшифрованное сообщение подтверждением того, что оно получено от А, и это дополнение (D) выполняет функцию ЭЦП. П шифрует это дополненное сообщение ключом В, т. е. KВ: С= KВ(М, D), и пересылает его В;
4. Абонент В расшифровывает известным ему ключом полученное от посредника П сообщение А.
Участие П позволяет выполнить основные из предъявляемых к подписи требования:
подпись действительно достоверна, поскольку посредник является абсолютно достоверным лицом;
подпись неподдельна; если кто-то попытается выдать себя за абонента А, то это должен установить посредник (при условии, что абонент А соблюдает конфиденциальность своего ключа);
подпись невозможно использовать повторно; если, к примеру, четвертая сторона захочет это сделать, то А и В легко это могут опровергнуть;
невозможно изменить подпись с учетом того, что это можно легко обнаружить.
подпись невозможно отрицать: вступает в силу принцип мажоритарности.
Основная проблема реализации рассмотренного метода – хранение ключей множества пользователей.
49. Эцп на основе dsa
1991г. – алгоритм ЭЦП DSA (Digital Signature Algorithm)
Используемые обозначения: р – простое число длиной L бит: L mod 64=0; 512<= L <=1024;
q – 160-битовый простой множитель (р-1);
Выбирается любое число z (z<p-1) ;
Вычисляется g= z(p-1)/q mod p > 1; p, g и q являются откр-ми и могут прим-ся группой пользоват-й;
Закрытый ключ – х (x<q), открытый - y (у=gx mod p); х – 160-битовое число, у – р-битовое число
Генерация ЭЦП cообщ-я М (А для В). А выбир-т случ число k (k<q); подпись – числа r и s: r=(gk mod p) mod q;
s=(k-1 *(h(M) +x*r)) mod q; h(M) – хэш-функция (SHA) сообщ-я М; А персыл-т В: М, r, s
Проверка подписи: В вычис-т: w=s-1 mod q, a=(h(M)*w) mod q,
b = (r*w) mod q, c = ((ga * yb) mod p) mod q;
Подпись достоверна, если c = r
50. Эцп на основе алгоритма Эль-Гамаля
- На основе RSA:
1. A шифрует документ своим закрытым(!) ключом
2. В расшифровывает С открытым ключом A
- На основе алгоритма Эль-Гамаля:
1.1. Для генерации пары ключей выбираем простое число p и два случайных числа g и x (g < p, x < p): p = 11, g = 2, x = 8
1.2. Вычислаем y = g**x mod p: y = 2**8 mod 11 = 3
1.3. Объявляем открытым ключём тройку (y, g, p), закрытым ключом - (x): (y: 3, g: 2, p: 11) и (x: 8)
2.1. Чтобы подписать сообщение M, сначала выбираем случайное число k, взаимно простое с p-1: k = 9, пусть сообщение M = 5
2.2. Вычисляем a = g**k mod p: a = 2**9 mod 11 = 6
2.3. Находим (при помощи расширенного алгоритма Евклида) b в следующем уравнении:
M = (xa + kb) mod (p-1): 5 = (8*6 + 9*b) mod (11-1) => b = 3 (решено подбором)
2.4. Подписью является пара чисел (a, b), случайное число k должно хранится в секрете.
3.1. Для проверки подписи нужно убедится, что (y**a * a**b) mod p = g**M mod p: (3**6 * 6**3) mod 11 = 25 mod 11 = 10
51. Эцп на основе алгоритма Шнорра
52. Хеш-функция в криптографии
В математике и информатике есть такие функции, которые принимают на входе строку данных произвольной длины и преобразовывают ее в строку меньшей длины. Они называются значением хэш-функции или дайджестом (Digest). Функция, которая используется для преобразования, должна быть односторонняя.
Длина сообщения H, k — длина входной последовательности, k` — выходной последовательности. Значение k` никак не зависит от k, однако, поскольку k` << k, то одной и той же функции могут соответствовать различные входные комбинации, которые на выходные комбинации не оказывают влияния. Если в сообщении М изменится хотя бы один бит, то в хороших значениях хеш-функции изменится около половины всех символов.
Характеристика хэш-функции:
Общий метод вычислений хэш-функций. Как правило, хэш-функция является конкатенацией различных составных частей или блоков, то есть хэш-функция есть подсоединение блоков:
H=h1 + h2 + … +hi.
В современных системах i меняется от 3 до 6(7), причем вычисление каждого последующего блока хэш-функции зависит не только от данных, но и от значений предыдущих блоков.
hj= F(M, hj-1), где j меняется от 2 до i.
На практике однонаправленность функции контролируется на основе принципа сжатия (сжимающей функции). Принцип сжимаемости функции означает, что рассматривается данное не целиком, а по частям.
При создании значений хеш, все сообщение делится на блоки. Принцип разделения на блоки различен при различных алгоритмах.
Существует MD (Message Digest)-серия: MD2, MD4, MD5.
53. Хеш-функция на основе MD4
Функция MD4 разработана Роном Райвестом (Ron Rivest). Функция возвращает значение = 128 разрядам, то есть k` (MD4) = 128 бит, вне зависимости от длины сообщения. Хэш-функция всегда представляется в двоичной форме. Как формируются эти 128 бит? Сообщение М должно претерпеть предварительную обработку, для того, чтобы длина входной строки по модулю 512 равнялась 0. То есть к числу k должны быть добавлены двоичное число длины r и 64 бита таким образом, чтобы эта сумма по модулю 512 равнялась 0:
(k + r +64) mod512=0;
512 = 29, R — двоичное представление числа К.
Например:
k=1024 бита, R=10, 64 — двоичное число из 1 0000…0 (63 нуля)
Общая длина сообщения M + прибавление (М`) разбивается на блоки по 512 бит и получается 512М или М блоков по 512 бит. В свою очередь каждый из блоков разбивается еще на 16 блоков по 32 бита, следовательно, длина в MD4:
М + М` = 512m, где 512 = 16*326.
Длина, соответствующая каждой части хэш-функции, также составляет 32 бита и чтобы получить функцию длиной 128 бит, нужно подсоединить 4 такие части. Эти части формируются на основе общего алгоритма, повторяющегося 3 раунда.
М: (k + 64 + r) mod 512 = 0, где (k + 64 + r) = 512m.
512 бит делятся на подблоки по 32 бита — основа для создания в дальнейшем функции хэширования.
Алгоритм создания хэш-функции md4:
При создании хэш-функции используют следующие операции:
операция логического суммирования (\/ — “OR”, дизъюнкция);
операция логического умножения (/\ — “AND”, конъюнкция);
операция отрицания (“NOT”);
операция логического сдвига на S разрядов;
операция суммирования по модулю 2 ().
Весь алгоритм состоит из 3-ех раундов. В каждом из раундов выполняется 16 шагов. Каждый шаг считает нелинейную функцию над 3-мя переменными из 4-ех. Итак, имеются 4 переменные: a, b, с, d. На каждом шаге выполняется операция над определенными 3-мя этими переменными. Кроме того, в каждом раунде используется своя функция. В 1-ом раунде используется функция F:
F
(x,
y,
z)
= x·y
+
·z,
где “+” → “\/”, а “·” → “/\”.
Во втором раунде используется 2-ая функция — G, также из трех переменных:
G (x, y, z) = ((x·y) + (x·z) + (y·z)) — дизъюнкция 3-ех конъюнкций.
В третьем раунде:
H (x, y, z) = x y z.
х — входное сообщение, которое на каждом из 16 шагов в каждом раунде принимает одно из значений входного сообщения.
На первом шаге в первом раунде используются первые 32 бита последовательности — M0. На втором — следующие 32 бита — M1. На третьем — M2. И так далее до 16-го раунда — M15. таким образом:
X = M0, M1, M2, M3... M15 = 512.
Значение Y не меняется в каждом из раундов. В первом раунде Y = 0 (32 раза повторяющийся ноль), во втором раунде значение Y представляется в 16-ой форме: 5А827999, где 5 → 0101 (4 разряда), А → 1010 и так далее. В третьем раунде значение Y = 6ED9EBEF.
Переменная z определяет очередность каждого из 16-ти подблоков в каждом раунде. В 1-ом раунде — очередность от 0 до 15: z = 0, 1, 2…15 — соответствует нумерации блоков в каждом из 512 символов.
Во 2-ом раунде: z = 0, 4, 8, 12, 1, 5, 9, 13,…
В 3-м раунде: z = 0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15.
Для реализации алгоритма инициируются также 4 переменные:
a = 0123456716 — 16-ая форма записи 2-го числа;
b = 89ABCDEF16
c = FEDCBA9816
d = 7654321016
Переменные a, b, c, d в ходе выполнения алгоритма изменяют свои значения. Хеш-функцией будут значения этих переменных, соединенные по методу конкатенации (“связывания”) в последовательности a, b, c, d.
Основной цикл состоит из 3-ех похожих раундов, в каждом раунде выполняется 16-ть различных операций, каждая операция подсчитывает функции F (на первом раунде), G (на втором раунде) и Н над тремя переменными из массива a, b, c, d.
На каждом шаге выбираются 3 определенные переменные. Общий вид операции, например, в 1-ом раунде записывается так:
FF (a, b, c, d, Mj, S), j [0,15], где Mj — блок данных, S — сдвиг.
a = b + (a + F (b, c, d) + Mj <<< S), запись “<<< S” означает сдвиг на S символов вправо.
Алгоритм прибавляет результат вычисления к 4-ой переменной а. Полученный результат циклически сдвигается на S разрядов вправо и добавляется к одной из 4-ех переменных (в нашем случае b). Результат помещается в одну из переменных (в нашем случае а), которая будет использоваться на следующем шаге.
Количество шагов, на которое сдвигается результат: 7 на 1-м шаге, 12 на 2-м шаге, 17 на 3-м.
На втором шаге функция имеет вид:
GG (d, b, c, a, Mj, S)
d = a + (d + F (a, b, c) + Mj <<< S)
54. Хеш-функция на основе MD5
Основные отличия:
добавляем 4-ый раунд — в нем используется нелинейная функция:
I
(x, y, z) = y + (x \/
);
на каждом раунде и шаге используется уникальная константа, которая обозначается, как Т. Эта константа добавляется к результату:
FF (a, b, c, d, Mj, ti, S)
a = b + (a + F (b, c, d) + Mj + ti <<< Sj)
функция G на втором раунде заменена на менее симметричную функцию:
a (x, y, z) = ((x·z) + (y· ))
результат каждого раунда добавляется к предыдущему;
порядок следования от блоков изменяется во 2-м и в 3-м раундах.
H (M) = h1 || h2 || h3 || h4;
55. Хеш-функция на основе SHA
Национальный институт стандартизации и технологий (NIST) и агентство национальной безопасности разработали алгоритм хеширования для использования в цифровой подписи DSS на основе DSA (Digital Signature Algorithm).
Особенности:
длина хеш-функции 160 бит в отличие от предыдущих 128-ми;
все предыдущие операции такие же как и в MD. То есть все сообщение делится на блоки длиной 512 бит;
используются 4 раунда. Введена своя 5-ая переменная. Имеем, соответственно, a, b, c, d, e. Длина каждой из них 32 разряда. Итого, 32 · 5 = 160 бит. В каждом раунде реализуется 20 шагов.
Из всех хеш-функций, SHA1, является наиболее криптостойкой.
Сравнительная таблица:
Алгоритм вычисления |
Длина (бит) |
Скорость хеширования (Кбит/с) |
MD4 |
128 |
236 |
MD5 |
128 |
174 |
SHA1 |
160 |
75 |
ГОСТ |
256 |
11 |
56. Эцп на основе алгоритма rsa и хеш-функции
57. Методы текстовой стеганографии
Стеганография — осаждение (размещение) одной информации в другой, называемой “контейнером”.
Методы стеганографии предусматривают следующие контейнеры:
Текст;
Звук;
Изображение.
Методы осаждения информации в текстовых документах:
Через использование разного числа пустых знаков между символами;
Знакоосаждение на нужных позициях. Знаки по контексту не меняют логики текста;
Изменение высоты отдельных букв.
Методы осаждения информации в звуках, на основе звуковой информации. В высококачественных системах, где используется больше 10 символов квантования по уровню, осаждение происходит в младших значимых битах.
Тот же принцип используется в размещении информации в изображениях. Осаждение нужной информации в младших значимых битах.
Методы стеганографии широко используются для защиты программного обеспечения от несанкционированной модификации и главным образом для доказательства авторства.
С точки зрения современной информационной технологии — контейнером для может быть текстовые, звуковые и графические.
58. Методы графической стеганографии
Методы стеганографии в изображении основаны на особенности восприятия визуальной информации человеческим глазом: мы не можем различить близкие цвета. Также некоторые методы используют специфике конкретного графического формата.
Большинство исследований посвящено использованию в качестве стегоконтейнеров изображений. Это обусловлено следующими причинами:
существованием практически значимой задачей защиты фотографий, картин, видео от незаконного тиражирования и распространения;
относительно большим объемом цифрового представления изображений, что позволяет внедрять ЦВЗ большого объема либо повышать робастность внедрения;
заранее известным размером контейнера, отсутствием ограничений, накладываемых требованиями реального времени (как в стеганографии аудио- или видеопотока);
наличием в большинстве реальных изображений текстурных областей, имеющих шумовую структуру и хорошо подходящих для встраивания информации;
слабой чувствительностью человеческого глаза к незначительным изменениям цветов изображения, его яркости, контрастности, содержанию в нем шума, искажениям вблизи контуров;
хорошо разработанными в последнее время методами цифровой обработки изображений.
Надо отметить, что последняя причина вызывает и значительные трудности в обеспечении робастности ЦВЗ: чем более совершенными становятся методы сжатия, тем меньше остается возможностей для встраивания посторонней информации. Развитие теории и практики алгоритмов сжатия изображений привело к изменению представлений о технике внедрения ЦВЗ. Если первоначально предлагалось вкладывать информацию в незначащие биты для уменьшения визуальной заметности, то современный подход заключается во встраивании ЦВЗ в наиболее существенные области изображений, разрушение которых приведет к полной деградации самого изображения. Не случайно поэтому стегоалгоритмы учитывают свойства системы человеческого зрения (СЧЗ), аналогично алгоритмам сжатия изображений. В стегоалгоритмах зачастую используются те же преобразования, что и в современных алгоритмах сжатия (дискретное косинусное преобразование в JPEG, вейвлет-преобразование в JPEG2000). При этом существуют, очевидно, три возможности. Вложение информации может производиться в исходное изображение, либо одновременно с осуществлением сжатия изображения-контейнера, либо в уже сжатое алгоритмом JPEG изображение.
Система цветовосприятия человека
Понятие цвета возникает
при описании восприятия глазами человека
электромагнитных волн в определенном
диапазоне частот (длина волны λ от 400 нм
(фиолетовый) до 700 нм (красный)). Таким
образом, самым общим описанием светового
потока может служить его спектральная
функция
.
Понятно, что описание цвета путем
описания функции в большинстве случаев
слишком громоздко, хотя иногда и
применяется. К тому же, оно является
избыточным, если подробнее рассмотреть,
как глаз человека воспринимает свет.
На сетчатке глаза находятся два типа
рецепторов: палочки и колбочки. Палочки
реагируют на степень яркости (или
интенсивность) падающего света (см. рис.
2), а колбочки отвечают за
различение цветов; при этом колбочки
резко теряют свою чувствительность в
темноте (в отличие от палочек), поэтому
все объекты начинают казаться серыми.
Колбочки бывают трех видов (их часто
обозначают S, M и L), и их кривые относительной
чувствительности представлены на рис.
3.
Рис. 2. Относительное восприятие интенсивности света палочками
Рис. 3. Относительная чувствительность колбочек.
Пики на кривых
чувствительности отвечают красному,
зеленому и синему цветам. При этом
следует заметить, что восприимчивость
к синему цвету значительно ниже, чем к
двум другим. Также важным свойством
восприятия света человеком является
его линейность: при освещении двумя
источниками света (со спектральными
функциями
,
)
человек воспринимает их как один со
спектральной функцией, равной сумме
.
Этот факт называется законом Грассмана.
Метод наименее значащих битов (метод LSB)
Данный метод производит встраивание сообщений в незначащие элементы контейнера-изображения. Младший наименее значащий бит (LSB, Least Significant Bit) изображения несет в себе меньше всего информации. Как уже упоминалось ранее, человек обычно не способен заметить изменение в этом бите. Фактически, он является шумом. Поэтому его можно использовать для встраивания информации. Таким образом, для полутонового изображения объем встраиваемых данных может составлять 1/8 объема контейнера. Например, в изображение размером 512х512 можно встроить 32 килобайта информации. Если модифицировать два или даже три младших бита (что также почти незаметно), то можно скрытно передать вдвое-втрое больший объем данных.
Достоинства рассматриваемого метода заключаются в его простоте и сравнительно большом объеме встраиваемых данных. Однако, он имеет серьезные недостатки. Во-первых, скрытое сообщение легко разрушить (достаточно произвести замену этих самых младших битов). Во-вторых, не обеспечена секретность встраивания информации. Нарушителю точно известно местоположение всего ЦВЗ. Для преодоления последнего недостатка было предложено встраивать ЦВЗ не во все пиксели изображения, а лишь в некоторые из них, определяемые по псевдослучайному закону в соответствии с ключом, известному только законному пользователю. Пропускная способность при этом уменьшается.
На практике обычно ограничиваются поиском пикселей, модификация которых не вносит заметных искажений в изображение. Затем из этих пикселей в соответствии с ключом выбираются те, которые будут модифицироваться. Скрываемое сообщение может также шифроваться с применением другого ключа. Этот этап может быть дополнен предварительной компрессией для уменьшения объема сообщения.
Для простоты описания покажем принцип работы метода LSB на примере 24-битного растрового RGB-изображения. Одна точка изображения в этом формате кодируется тремя байтами, каждый из которых отвечает за интенсивность одного из трех составляющих цветов.
В результате смешения цветов из красного (R), зеленого (G) и синего (B) каналов пиксель получает нужный оттенок. Чтобы нагляднее увидеть принцип действия метода LSB, распишем каждый из трех байтов в битовом виде (рис. 4,a). Младшие разряды (на рисунке они расположены справа) в меньшей степени влияют на итоговое изображение, чем старшие. Из этого можно сделать вывод, что замена одного или двух младших, наименее значащих битов, на другие произвольные биты настолько незначительно исказит оттенок пикселя, что зритель просто не заметит изменения.
Допустим, нам нужно скрыть в данной точке изображения шесть бит: 101100. Для этого разобьем их на три пары (рис. 4,б) и заместим ими по два младших бита в каждом канале.
Рис. 4,А
Рис. 4,Б
В результате мы получим новый оттенок, очень похожий на исходный. Эти цвета трудно различить даже на большой по площади заливке, хотя разница будет заметна по одной отдельной точке.
Модификацией метода LSB являются алгоритм, разработанные для компрессированных мультимедиаданных. В частности, довольно популярен у разработчиков стеганографического программного обеспечения алгоритм сокрытия данных в изображениях формата JPEG. Поскольку преобразование картинки в JPEG происходит с потерей информации, закладывать стеганограмму в исходное изображение не имеет смысла, так как потом ее невозможно будет восстановить. Выход нашелся в самом алгоритме сжатия — не вдаваясь в подробности спецификации JPEG, скажем, что сжатие проходит здесь в три этапа: дискретно-косинусоидальное преобразование (ДКП), квантование и вторичное сжатие (кодирование Хаффмана), а третья стадия проходит без потери данных, поэтому в качестве контейнера используются коэффициенты ДКП после квантования, то есть пользовательской информацией замещаются младшие разряды этих коэффициентов. Такие возможности предоставляются практически всеми схемами сжатия с потерей информации, включая аудио- и видеоформаты.
Чем же объясняется лидерство метода LSB среди стеганографических алгоритмов? Во-первых, мультимедиаконтейнеры не вызывают подозрений: можно без проблем отправить другу свою фотографию или симпатичный пейзаж. Во-вторых, младшие биты оцифрованных изображений, звука или видео могут иметь различное распределение в зависимости от применявшихся параметров аналого-цифрового преобразования, от дополнительной компьютерной обработки и от прочих факторов. Эта особенность делает метод наименее значащих битов наиболее защищенным от обнаружения вложения. Наконец, в-третьих, реализации LSB для большинства стандартов файлов-контейнеров не требуют значительных затрат времени и сил – идея указанного метода проста, как все гениальное.
Укажем теперь основные идеи метода LSB для файла-изображения с цветовой моделью RGB:
В качестве хранителей информации используются наименее значащие биты;
Для затруднения обнаружения вложения запись информации производится в пиксели, заданные некоторой псевдослучайной последовательностью;
Иногда перед вложением (или во время вложения) запись дополнительно шифруют и архивируют;
Иногда лучше в качестве носителей информации использовать биты из B-канала (синего канала) RGB-изображения, т. к. человек к нему наименее чувствителен (см. рис. 5).
Реализованный алгоритм (written by Corinna John) работает по следующей несколько упрощенной схеме:
На вход операции XOR подается скрываемое сообщение (в виде текстовой информации или файлового потока). Каждому биту данных операция XOR ставит в соответствие к.-л. бит пикселя изображения.
Реализация данного метода является весьма объемной, но достаточно проста для понимания. Она приведена в прилагаемых исходниках (можно получить доступ с помощью ссылок основного окна УМК).
Следует обратить внимание, что данный метод является устаревшим. Во-первых, сообщение, скрытое методом LSB, легко удалить из изображения: нужно только изменить все его младшие биты по какому-либо случайному закону. Во-вторых, алгоритм не удовлетворяет некоторым требованиям, предъявляемым к современным системам стеганографии (стегосистемам, см. далее).