Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Стандарт криптографического преобразования данных ГОСТ 28147-89





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

Алгоритм криптографического преобразования, установленный ГОСТ 28147-89 (далее — ГОСТ) используется для шифрования данных в двух режимах, а также для выработки имитовставки, которая является средством контроля целостности данных и зависит от ключей. При шифровании алгоритм ГОСТ сводится к шифру гаммирования.Блок гаммы представляет собой 64-битовую комбинацию, состоящую из двух последовательных 32-битовых блоков. Исходя из удобства изложения, далее будем называть любой 64-битовый блок комбинацией, а также считать, что блок состоит их двух сцепленных подблоков из 32-х битов каждый.

Гамма накладывается поразрядно по модулю 2. Каждая комбинация гаммы представляет собой результат шифрпреобразования с помощью шифра простой замены на множестве 64-битовых комбинаций. Входные комбинации для указанного шифра, в общем случае, формируются в зависимости от ключей, псевдослучайного открытого параметра S (синхропосылка), известных констант с1, c2 и предыдущего блока шифртекста. Фактически задача каждого из режимов шифрования — это формирование 64-битовых комбинаций для входа в основной режим работы ГОСТ, называемый режимом простой замены. По сути, ключи необходимы для работы ГОСТ именно в этом режиме. Комбинация гаммы является результатом работы алгоритма в режиме простой замены.

Алгоритм ГОСТ в качестве исходных данных использует три параметра: K,X и Z 64-битовый блок данных. Первый параметр является долговременным, а второй — сеансовым ключом.

Параметры независимы и имеют размер 512, 256 и 64 бита соответственно. K представляет собой отображение множества блоков в себя. Это отображение реализует потетрадную замену 32-разрядных блоков в 32-х разрядные и состоит из 8 подключей. Подключ Ki (i = 1, …, 8), входящий в K, является таблицей замены для i-той (слева) тетрады, т.е. состоит из 16 тетрад. В стандарте ключ K называется блоком подстановки, а подключи K — узлами замены.

Сеансовый ключ X состоит из восьми 32-разрядных подключей Xi,каждый из которых в соответствующий момент используется для суммирования с некоторым блоком по модулю 2. Режим простой замены алгоритма ГОСТ реализован в виде шифра Файстеля.

Шифрование блока открытого текста Z алгоритмом ГОСТ производится за 32 цикла. На каждом цикле происходит преобразование входной комбинации в выходную. Шифртекстом является результат работы (выход) тридцать второго цикла, подвергнутый очень простому дополнительному преобразованию.

Процесс шифрования в режиме простой замены (рис., который обозначим через T = ГОСТ(S) можно представить в виде последовательности 34 блоков u = (U–2, U–1, U0, U1, U2, …, U30, U31), где U-1||U0 = S и U31||U30 = T.

Здесь U-1||U0 — результат работы цикла 0, U0||U1 — результат работы цикла 1 и т.д. до U31||U30 — результата работы цикла 31. Дополнительное преобразование меняет порядок следованияблоков: U31||U30 = T.

На цикле i используется подключ Xt(i). При шифровании используется следующая последовательность выбора подключей от начального и до последнего цикла:

t(i) = {0,1,2,3,4,5,6,7; 0,1,2,3,4,5,6,7; 0,1,2,3,4,5,6,7; 7,6,5,4,3,2,1,0}

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

В режиме гаммирования последовательность 64-битовых комбинаций гаммы имеет вид: γK = ГОСТ(φ(σK–1)), k = 1, 2,..., где σ0 = ГОСТ(S). При этом для s1||s2 φ(σ) состоит из двух блоков: s1 º c1, s2 + c2.Здесь сложение с c2производится по mod 232, а s1 º c1 = s1 + c1 mod(232 – 1) за исключением случая s1 º c1, s2 + c2, когда результат принимается равным 232 – 1. Шестнадцатеричное представление c1 и c2, соответственно, следующее: х01010101 и х01010104,

В режиме гаммирования с обратной связью

γ1 = ГОСТ(S), γk+1 = ГОСТ(γk Å tk), k = 1, 2, …, t — комбинация открытого текста.

Рис. 18.9. Цикл шифрования в режиме простой замены

Пример реализации алгоритма ГОСТ представлен в листингах 18.5 и 18.6 (компилятор — Microsoft Visual C 6.0).

Листинг 18.5. Пример реализации алгоритма ГОСТ на
языке C++ в виде библиотечного класса (библиотека Crypto++ 5.1)

#include "pch.h"
#include "gost.h"
#include "misc.h"

 

Date: 2016-11-17; view: 278; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию