Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
диплом_без_exe / Второй основной вариант.docx
Скачиваний:
92
Добавлен:
21.05.2015
Размер:
1.73 Mб
Скачать
  1. Принципы построения и классификация гпсп

2.1. Два варианта построения гпсп

Можно выделить два подхода при использовании в составе генераторов ПСП нелинейных функций: это использование нели­нейной функции непосредственно в цепи обратной связи (рис. 2.1, а) и двухступенчатая структура (рис. 2.1, б), в которой задача первой ступени (по сути счетчика) заключается всего лишь в обеспечении максимально большого периода при данной разряд­ности N используемого регистра Q [8].

а б в

Рис. 2.1. Два варианта построения генератора ПСП:

а - с нелинейной внутренней логикой (режим OFB - Output FeedBack); б - с нелинейной внешней логикой (режим Counter); в - входной и преобразованный вектор ошибок

Q - элементы памяти генератора, FB - линейная или нелинейная функция обратной связи, Fk - нелинейная функция, k - ключ, γi - элемент выходной последовательности, е - входной вектор ошибок, содержащий 1 в разрядах, соответствующих измененным (искаженным) битам, е' - преобразованный (выходной) вектор ошибок.

2.2. Криптографические гпсп

На рис. 2.2 приведена классификация генераторов ПСП. Роль нелинейной функции Fk может выполнять функция зашифрования Еk одноключевой (классической) или двухключевой криптосистемы, при этом использование криптостойких функций Еk автоматически придает аналогичное свойство и генератору ПСП. Стойкость функций Еk современных криптосистем основывается на недоказуемом предположении о том, что у противника не хватит ресурсов (вычислительных, материальных, временных и т.п.), для того чтобы инвертировать эту функцию при неизвестном k.

Симметричные криптоалгоритмы (криптоалгоритмы с секретным ключом) делятся на три большие группы: поточные, блочные и комбинированные.

Особенности поточного шифрования:

  • каждый элемент исходной информационной последовательности шифруется на своем элементе ключевой последовательности;

  • результат преобразования отдельных элементов зависит от их позиции в исходной последовательности;

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

  • эффективная программная реализация.

Рис. 2.2. Классификация генераторов ПСП

Особенности блочного шифрования:

  • шифрованию подвергаются порции информации фиксирован­ной длины (блоки);

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

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

Недостатки блочного шифрования:

  • одинаковым блокам открытого текста соответствуют одинако­вые блоки шифротекста и наоборот;

  • нечувствительность криптосхемы к выпадению или вставке целого числа блоков;

  • существование проблемы последнего блока неполной длины.

В результате на практике чаще всего используется комбини­рованный подход, при котором шифрование осуществляется либо с использованием операции сцепления блоков (режим CBC), либо с использованием генераторов ПСП по схемам, показанным на рис. 1.1 (режимы OFB и Counter) и рис. 1.2 (режим CFB). При этом в качестве нелинейных функций генераторов ПСП (рис. 2.1) используются функции зашифрования соответствующих блочных криптоалгоритмов.

Особенности шифрования методом гаммирования (поточное или комбинированное шифрование в режимах OFB и Counter):

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

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

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

На рис. 2.3 показан генератор ПСП ГОСТ 28147-89, который функционирует в режиме Counter, где ki, i = (1, 32), ­- раундовые ключи. Разрядность блока данных ГОСТа равна 64 битам, число раундов преобразования равно 32. Функция Ek построена с использованием схемы, которая носит название сбалансированной сети Фейстеля. Схема раундовой функции F показана на рис. 2.4. Ключевая информация ГОСТа - собственно ключ, состоящий из восьми 32-разрядных элементов К0, К1, ..., К7, и таблица замен размерностью 4x16x8 бит, определяющая логику работы восьми 4-разрядных блоков замены (S-блоков). Последовательность использования ключевых элементов при построении функции Ek имеет вид

К0, К1, ..., К7, К0, К1, ..., К7, К0, К1, ..., К7, К7, K6, ..., К0.

Рис. 2.3. Генератор ПСП ГОСТ 28147-89

Таким образом, в состав раунда ГОСТа входят следующие преобразования 32-разрядных двоичных наборов:

  • сложение правой половины R-блока данных с раундовым ключом;

  • разбиение результата на восемь 4-битовых элементов и замена каждого из них по таблице замен;

  • циклический сдвиг результата на 11 разрядов влево;

  • поразрядное сложение по модулю 2 (XOR) результата с левой половиной L блока данных;

  • новое значение элемента L становится равным R, новое значе­ние элемента R становится равным результату предыдущей операции.

32-й раунд отличается от остальных - в нем отсутствует по­следняя операция.

Рис. 2.4. Раундовая функция ГОСТ 28147-89

На рис. 2.5 показана схема счетчика ГОСТа, который состоит из двух независимых счетчиков со взаимно простыми числами состояний соответственно 232 и 232 - 1. В результате период по­следовательности на выходе схемы оказывается равным произве­дению 232(232 - 1). Константы С1 = 01010101h и С2 = 01010104h подобраны таким образом, чтобы каждое следующее состояние счетчика отличалось от предыдущего в каждом байте.

На рис. 2.6 показан генератор ПСП, построенный в соответ­ствии с принятым в 2001 г. американским стандартом AES-128. Разрядность блока данных AES-128 равна 128 битам, число раундов преобразования равно 10. Функция Ek построена с ис­пользованием новой архитектуры "Квадрат". Промежуточные результаты преобразований, выполняемых в рамках криптоалго­ритма AES-128, называются состояниями. Состояние (рис. 2.7, а) и раундовые ключи шифрования (рис. 2.7, б) можно предста­вить в виде квадратного массива байтов, имеющего 4 строки и 4 столбца. Разрядность исходного секретного ключа, из которого формируются раундовые ключи, равна 128. Свойства шифра иллюстрирует рис. 2.8, из которого видно, что 2 раунда обеспечивают полное рассеивание и перемешивание информации.

Рис. 2.5. Схема счетчика ГОСТ 28147-89

Рис. 2.6. Генератор ПСП стандарта AES-128

Состояние

- а

Раундовый ключ

- б

Рис. 2.7. Форматы данных AES-128: а - состояние; б - раундовый ключ

Рис. 2.8. Рассеивание и перемешивание информации в AES-128

В состав раунда AES-128 входят следующие преобразования:

  • побайтовая замена байтов состояния с использованием фиксированной таблицы замен размером 8x256;

  • побайтовый циклический сдвиг строк результата - i-я строка сдвигается на i байтов влево, i = (0, 3);

  • перемешивание столбцов результата;

  • поразрядное сложение по модулю 2 (ХОR) результата с раундовым ключом.

10-й раунд отличается от остальных - в нем отсутствует предпоследняя операция.

Основные особенности AES-128:

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

  • байт-ориентированная структура, удобная для реализация на 8-разрядных МК;

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

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

  • работа по принципу stop-and-go;

  • перемешивание двух ПСП под управлением третьей;

  • многоступенчатая структура;

  • использование S-блоков с изменяющейся в процессе работы таблицей замен;

  • использование блоков пространственного сжатия информации;

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

Одним из лучших поточных шифров является RC4 — шифр с переменным размером ключа, разработанный Р. Ривестом. Криптоалгоритм работает в режиме OFB, т. е. поток ключевой информации не зависит от открытого текста. Используются два 8-разрядных счетчика Q1 и Q2 и 8-разрядный блок замены (S-блок) (рис. 2.9), таблица замен имеет размерность 8 х 256 и яв­ляется перестановкой (зависящей от ключа) двоичных чисел от 0 до 255.

Рис. 2.9. Схема генератора ПСП RC4

Рассмотрим алгоритм работы 8-разрядного генератора ПСП RC4, точнее, процедуру генерации очередного байта гаммы. Пусть S(i) и γ - содержимое ячейки с адресом i таблицы замен S-блока и очередной байт гаммы.

Один такт работы генератора ПСП RC4:

  1. Такт работы первого счетчика:

Q1 = (Q1 + 1) mod 28.

  1. Такт работы второго счетчика:

Q2 = (Q2 + S(Q1)) mod 28.

  1. Ячейки таблицы замен S-блока с адресами Q1 и Q2 обмениваются своим содержимым:

S(Q1)↔S(Q2).

  1. Вычисление суммы содержимого ячеек таблицы замен S-блока с адресами Q1 и Q2:

Т = (S(Q1) + S(Q2)) mod 28.

  1. Считывание содержимого ячейки таблицы замен S-блока с адресом T:

γ = S(T).

Таблица замен S-блока медленно изменяется при использова­нии, при этом счетчик Q1 обеспечивает изменение каждого эле­мента таблицы, a Q2 гарантирует, что элементы таблицы изме­няются случайным образом.

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

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

Односторонней функцией называется функция F: X → Y, об­ладающая двумя свойствами:

  • существует полиномиальный алгоритм вычисления значений F(x);

  • не существует полиномиального алгоритма инвертирования функции F.

До сих пор ни для одной функции, кандидата на звание одно­сторонней, не доказано свойство 2.

Примером кандидата на звание односторонней функции являет­ся модульное возведение в степень, т. е. функция F(x) = ωx mod р, где р - большое простое число, ω - примитивный элемент поля GF(p).

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

Односторонняя функция в качестве функции зашифрования неприменима, так как, хотя F(x) - надежно зашифрованное сооб­щение х, никто, в том числе и законный получатель, не сможет восстановить х. Обойти эту проблему можно с помощью одно­сторонней функции с секретом. Такова, например, функция Fk: X → Y; имеющая обратную Fk-1: YX, однако узнать обрат­ную функцию только по Fk без знания секрета k невозможно.

Таким образом, односторонней функцией с секретом к, назы­вается функция Fk: X Y, зависящая от параметра k и обладаю­щая тремя свойствами:

  • при любом k существует полиномиальный алгоритм вычисле­ния значений Fk(x);

  • при неизвестном k не существует полиномиального алгоритма инвертирования Fk;

  • при известном k существует полиномиального алгоритма ин­вертирования Fk.

Функцию Fk можно использовать для зашифрования инфор­мации, а обратную ей функцию Fk-1 - для расшифрования.

При этом подразумевается, что тот, кто знает, как зашифровы­вать информацию» вовсе не обязательно должен знать, как рас­шифровывать. Так же как и в случае с односторонней функцией, вопрос о существовании односторонних функций с секретом от­крыт. Для практической криптографии найдено несколько функ­ций, кандидатов на звание односторонней функции с секретом. Для них второе свойство не доказано, однако известно, что задача инвертирования эквивалентна некоторой хорошо изученной и давно известной трудной математической задаче. Это означает, что второе требование к односторонней функции с секретом заменяется более слабым условием: при неизвестном k, вероятно, не существует полиномиального алгоритма инвертирования Fk-1.

Соседние файлы в папке диплом_без_exe