Стандарт криптографического преобразования данных гост 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 (компилятор — MicrosoftVisualC6.0).
Листинг 18.5.Пример реализации алгоритма ГОСТ на языкеC++ в виде библиотечного класса (библиотекаCrypto++ 5.1)
#include "pch.h" #include "gost.h" #include "misc.h"
Продолжение листинга 18.5
NAMESPACE_BEGIN(CryptoPP) // S-блоки const byte GOST::Base::sBox[8][16]={ {4, 10, 9, 2, 13, 8, 0, 14, 6, 11, 1, 12, 7, 15, 5, 3}, {14, 11, 4, 12, 6, 13, 15, 10, 2, 3, 8, 1, 0, 7, 5, 9}, {5, 8, 1, 13, 10, 3, 4, 2, 14, 15, 12, 7, 6, 0, 9, 11}, {7, 13, 10, 1, 0, 8, 9, 15, 14, 4, 6, 12, 11, 2, 5, 3}, {6, 12, 7, 1, 5, 15, 13, 8, 4, 10, 9, 14, 0, 3, 11, 2}, {4, 11, 10, 0, 7, 2, 1, 13, 3, 6, 8, 5, 9, 12, 15, 14}, {13, 11, 4, 1, 3, 15, 5, 9, 0, 10, 14, 7, 6, 8, 2, 12}, {1, 15, 13, 0, 5, 7, 10, 4, 9, 2, 3, 14, 6, 11, 8, 12}}; bool GOST::Base::sTableCalculated = false; word32 GOST::Base::sTable[4][256]; void GOST::Base::UncheckedSetKey(CipherDir direction, const byte *userKey, unsigned int length) { AssertValidKeyLength(length); PrecalculateSTable(); GetUserKey(LITTLE_ENDIAN_ORDER, key.begin(), 8, userKey, KEYLENGTH); } void GOST::Base::PrecalculateSTable() { if (!sTableCalculated) { for (unsigned i = 0; i < 4; i++) for (unsigned j = 0; j < 256; j++) { word32 temp = sBox[2*i][j%16] | (sBox[2*i+1][j/16] << 4); sTable[i][j] = rotlMod(temp, 11+8*i); } sTableCalculated=true; } } #define f(x) ( t=x, \ sTable[3][GETBYTE(t, 3)] ^ sTable[2][GETBYTE(t, 2)] \
Продолжение листинга 18.5
^ sTable[1][GETBYTE(t, 1)] ^ sTable[0][GETBYTE(t, 0)] ) typedef BlockGetAndPut<word32, LittleEndian> Block; void GOST::Enc::ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const { word32 n1, n2, t; Block::Get(inBlock)(n1)(n2); for (unsigned int i=0; i<3; i++) { n2 ^= f(n1+key[0]); n1 ^= f(n2+key[1]); n2 ^= f(n1+key[2]); n1 ^= f(n2+key[3]); n2 ^= f(n1+key[4]); n1 ^= f(n2+key[5]); n2 ^= f(n1+key[6]); n1 ^= f(n2+key[7]); } n2 ^= f(n1+key[7]); n1 ^= f(n2+key[6]); n2 ^= f(n1+key[5]); n1 ^= f(n2+key[4]); n2 ^= f(n1+key[3]); n1 ^= f(n2+key[2]); n2 ^= f(n1+key[1]); n1 ^= f(n2+key[0]); Block::Put(xorBlock, outBlock)(n2)(n1); } void GOST::Dec::ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const { word32 n1, n2, t; Block::Get(inBlock)(n1)(n2);
Окончание листинга 18.5
n2 ^= f(n1+key[0]); n1 ^= f(n2+key[1]); n2 ^= f(n1+key[2]); n1 ^= f(n2+key[3]); n2 ^= f(n1+key[4]); n1 ^= f(n2+key[5]); n2 ^= f(n1+key[6]); n1 ^= f(n2+key[7]); for (unsigned int i=0; i<3; i++) { n2 ^= f(n1+key[7]); n1 ^= f(n2+key[6]); n2 ^= f(n1+key[5]); n1 ^= f(n2+key[4]); n2 ^= f(n1+key[3]); n1 ^= f(n2+key[2]); n2 ^= f(n1+key[1]); n1 ^= f(n2+key[0]); } Block::Put(xorBlock, outBlock)(n2)(n1); } NAMESPACE_END
Листинг 18.6.Заголовочный файлgost.h, используемый при реализации алгоритма ГОСТ на языкеC++ в виде библиотечного класса (библиотекаCrypto++ 5.1)
#ifndef CRYPTOPP_GOST_H #define CRYPTOPP_GOST_H #include "seckey.h" #include "secblock.h" NAMESPACE_BEGIN(CryptoPP) struct GOST_Info : public FixedBlockSize<8>, public FixedKeyLength<32> { static const char *StaticAlgorithmName() {return "GOST";}};
Окончание листинга 18.6
{ class Base : public BlockCipherBaseTemplate<GOST_Info> { public: void UncheckedSetKey(CipherDir direction, const byte *userKey, unsigned int length); protected: static void PrecalculateSTable(); static const byte sBox[8][16]; static bool sTableCalculated; static word32 sTable[4][256]; FixedSizeSecBlock<word32, 8> key; }; class Enc : public Base { public: void ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const; }; class Dec : public Base { public: void ProcessAndXorBlock(const byte *inBlock, const byte *xorBlock, byte *outBlock) const; }; public: typedef BlockCipherTemplate<ENCRYPTION, Enc> Encryption; typedef BlockCipherTemplate<DECRYPTION, Dec> Decryption; }; typedef GOST::Encryption GOSTEncryption; typedef GOST::Decryption GOSTDecryption; NAMESPACE_END #endif
- Часть 16
- Часть 121
- Глава 4 122
- Глава 5 147
- Глава 6 164
- Глава 7 188
- Глава 12 235
- Глава 13 255
- Глава 14 273
- Часть 303
- Глава 15 304
- Глава 16 315
- Глава 17 371
- Глава 18 395
- Глава 19 497
- Глава 20 515
- Методы и средства защиты информации
- Смысл разведки
- Глава 1
- Глава 2
- История разведки и контрразведки
- Российская разведка
- Украинская разведка
- Радиоразведка
- Радиоразведка во время Второй мировой войны
- Разведка конца хх века
- Глава 3
- Советские спецслужбы
- Кгб ссср
- Гру гш вс ссср
- Спецслужбы сша
- Цру (cia)
- Румо (dia)
- Анб (nsa)
- Нувкр (nro)
- Нагк (nima)
- Бри (inr)
- Фбр (fbi)
- Спецслужбы Израиля
- Шин Бет
- Спецслужбы Великобритании
- Швр (dis)
- Mi5 (SecurityService)
- Mi6 (sis)
- Цпс (gchq)
- Спецслужбы фрг
- Бнд (bnd)
- Бфф (BfF)
- Мад (mad)
- Спецслужбы Франции
- Дгсе (dgse)
- Дрм (drm)
- Роль средств технической разведки вXxIвеке
- Глава 4
- Технические каналы утечки информации. Классификация, причины и источники… образования
- Сигнал и его описание
- Сигналы с помехами
- Излучатели электромагнитных колебаний
- Низкочастотные излучатели
- Высокочастотные излучатели
- Оптические излучатели
- Глава 5
- Образование радиоканалов утечки информации
- Оценка электромагнитных полей
- Аналитическое представление электромагнитной обстановки
- Обнаружение сигналов в условиях воздействия непреднамеренных помех
- Оценка параметров сигналов в условиях воздействия непреднамеренных помех
- Глава 6
- Основные определения акустики
- Распространение звука в пространстве
- Акустическая классификация помещений
- Физическая природа, среда распространения и способ перехвата
- Заходовые методы Перехват акустической информации с помощью радиопередающих средств
- Перехват акустической информации с помощью ик передатчиков
- Закладки, использующие в качестве канала передачи акустической информации сеть 220 в и телефонные линии
- Диктофоны
- Проводные микрофоны
- “Телефонное ухо”
- Беззаходовые методы Аппаратура, использующая микрофонный эффект телефонных аппаратов
- Аппаратура вч навязывания
- Стетоскопы
- Лазерные стетоскопы
- Направленные акустические микрофоны (нам)
- Физические преобразователи
- Характеристики физических преобразователей
- Виды акустоэлектрических преобразователей
- Индуктивные преобразователи
- Микрофонный эффект электромеханического звонка телефонного аппарата
- Микрофонный эффект громкоговорителей
- Микрофонный эффект вторичных электрочасов
- Глава 7
- Паразитные связи и наводки
- Паразитные емкостные связи
- Паразитные индуктивные связи
- Паразитные электромагнитные связи
- Паразитные электромеханические связи
- Паразитные обратные связи через источники питания
- Утечка информации по цепям заземления
- Глава 8
- Визуально-оптическое наблюдение
- Глава 9
- Радиационные и химические методы получения информации
- Глава 10
- Классификация каналов и линий связи
- Взаимные влияния в линиях связи
- Часть III
- Глава 11
- Виды и природа каналов утечки информации при эксплуатации эвм
- Анализ возможности утечки информации через пэми
- Способы обеспечения зи от утечки через пэми
- Механизм возникновения пэми средств цифровой электронной техники
- Техническая реализация устройств маскировки
- Устройство обнаружения радиомикрофонов
- Обнаружение записывающих устройств (диктофонов)
- Физические принципы
- Спектральный анализ
- Распознавание событий
- Многоканальная фильтрация
- Оценка уровня пэми
- Метод оценочных расчетов
- Метод принудительной активизации
- Метод эквивалентного приемника
- Методы измерения уровня пэми
- Ближняя зона
- Дальняя зона
- Промежуточная зона
- Глава 12
- Средства несанкционированного получения информации
- Средства проникновения
- Устройства прослушивания помещений
- Радиозакладки
- Устройства для прослушивания телефонных линий
- Методы и средства подключения
- Методы и средства удаленного получения информации Дистанционный направленный микрофон
- Системы скрытого видеонаблюдения
- Акустический контроль помещений через средства телефонной связи
- Перехват электромагнитных излучений
- Глава 13
- Несанкционированное получение информации из ас
- Классификация
- Локальный доступ
- Удаленный доступ
- Сбор информации
- Сканирование
- Идентификация доступных ресурсов
- Получение доступа
- Расширение полномочий
- Исследование системы и внедрение
- Сокрытие следов
- Создание тайных каналов
- Блокирование
- Глава 14
- Намеренное силовое воздействие по сетям питания
- Технические средства для нсв по сети питания
- Вирусные методы разрушения информации
- Разрушающие программные средства
- Негативное воздействие закладки на программу
- Сохранение фрагментов информации
- Перехват вывода на экран
- Перехват ввода с клавиатуры
- Перехват и обработка файловых операций
- Разрушение программы защиты и схем контроля
- Глава 15
- Показатели оценки информации как ресурса
- Классификация методов и средств зи
- Семантические схемы
- Некоторые подходы к решению проблемы зи
- Общая схема проведения работ по зи
- Глава 16
- Классификация технических средств защиты
- Технические средства защиты территории и объектов
- Акустические средства защиты
- Особенности защиты от радиозакладок
- Защита от встроенных и узконаправленных микрофонов
- Защита линий связи
- Методы и средства защиты телефонных линий
- Пассивная защита
- Приборы для постановки активной заградительной помехи
- Методы контроля проводных линий
- Защита факсимильных и телефонных аппаратов, концентраторов
- Экранирование помещений
- Защита от намеренного силового воздействия
- Защита от нсв по цепям питания
- Защита от нсв по коммуникационным каналам
- Глава 17
- Основные принципы построения систем защиты информации в ас
- Программные средства защиты информации
- Программы внешней защиты
- Программы внутренней защиты
- Простое опознавание пользователя
- Усложненная процедура опознавания
- Методы особого надежного опознавания
- Методы опознавания ас и ее элементов пользователем
- Проблемы регулирования использования ресурсов
- Программы защиты программ
- Защита от копирования
- Программы ядра системы безопасности
- Программы контроля
- Глава 18
- Основные понятия
- Немного истории
- Классификация криптографических методов
- Требования к криптографическим методам защиты информации
- Математика разделения секрета
- Разделение секрета для произвольных структур доступа
- Определение 18.1
- Определение 18.2
- Линейное разделение секрета
- Идеальное разделение секрета и матроиды
- Определение 18.3
- Секретность и имитостойкость
- Проблема секретности
- Проблема имитостойкости
- Безусловная и теоретическая стойкость
- Анализ основных криптографических методов зи
- Шифрование методом подстановки (замены)
- Шифрование методом перестановки
- Шифрование простой перестановкой
- Усложненный метод перестановки по таблицам
- Усложненный метод перестановок по маршрутам
- Шифрование с помощью аналитических преобразований
- Шифрование методом гаммирования
- Комбинированные методы шифрования
- Кодирование
- Шифрование с открытым ключом
- Цифровая подпись
- Криптографическая система rsa
- Необходимые сведения из элементарной теории чисел
- АлгоритмRsa
- Цифровая (электронная) подпись на основе криптосистемы rsa
- Стандарт шифрования данных des
- Принцип работы блочного шифра
- Процедура формирования подключей
- Механизм действияS-блоков
- Другие режимы использования алгоритма шифрования des
- Стандарт криптографического преобразования данных гост 28147-89
- Глава 19
- Аналоговые скремблеры
- Аналоговое скремблирование
- Цифровое скремблирование
- Критерии оценки систем закрытия речи
- Глава 20
- Стеганографические технологии
- Классификация стеганографических методов
- Классификация стегосистем
- Безключевые стегосистемы
- Определение 20.1
- Стегосистемы с секретным ключом
- Определение 20.2
- Стегосистемы с открытым ключом
- Определение 20.3
- Смешанные стегосистемы
- Классификация методов сокрытия информации
- Текстовые стеганографы
- Методы искажения формата текстового документа
- Синтаксические методы
- Семантические методы
- Методы генерации стеганограмм
- Определение 20.4
- Сокрытие данных в изображении и видео
- Методы замены
- Методы сокрытия в частотной области изображения
- Широкополосные методы
- Статистические методы
- Методы искажения
- Структурные методы
- Сокрытие информации в звуковой среде
- Стеганографические методы защиты данных в звуковой среде
- Музыкальные стегосистемы
- Методы и средства защиты информации