Реферат: Разработка программы, реализующей алгоритм шифрования ГОСТ 28147-89

Федеральное агентство по образованию

Дальневосточная государственнаясоциально-гуманитарная академия

Факультет математики и информатики

Кафедра информационных систем иприкладной информатики

Пояснительнаязаписка
к курсовой работе
по информационной безопасности

на тему «Разработка программы,

реализующей алгоритм шифрования ГОСТ 28147-89».

Студент группы 1541

Р.В. Ткачук

Руководитель

В.А. Глаголев

Биробиджан, 2008
Содержание

 TOC o«1-3» Введение… 3

1 Криптология. Основные понятия… 5

2 Требования к криптосистемам… 7

3 ГОСТ 28147-89… 8

3.1 История создания.Правомерность использования… 8

3.2 Описание метода… 9

3.2.1 Базовые понятия исоставляющие алгоритма… 9

3.2.2 Основной шагкриптопреобразования… 10

3.2.3 Базовые циклы криптографическихпреобразований… 12

3.2.4 Основные режимышифрования… 15

4 Руководство к программе… 23

Заключение… 24

Список использованной литературы… 25

Приложение… 26

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

Введение

То, что информация имеетценность, люди осознали очень. Ведь еще с древних времен переписка правителей былаобъектом пристального внимания их недругов и друзей. Именно тогда и возниклазадача защиты этой переписки от чрезмерно любопытных глаз. Древние пыталисьиспользовать для решения этой задачи самые разнообразные методы, и одним из нихбыла тайнопись – умение составлять сообщения таким образом, чтобы его смысл былнедоступен никому кроме посвященных в тайну. На протяжении всей своеймноговековой истории, вплоть до совсем недавнего времени, это искусство служилонемногим, в основном верхушке общества, не выходя за пределы резиденций главгосударств, посольств и т.д. И лишь несколько десятилетий назад все изменилоськоренным образом – информация приобрела самостоятельную коммерческую ценность истала широко распространенным, почти обычным товаром. Ее производят, хранят,транспортируют, продают и покупают, а значит, воруют и подделывают и,следовательно, ее необходимо защищать. Современное общество все в большейстепени становится информационно–обусловленным, успех любого вида деятельностивсе сильней зависит от обладания определенными сведениями и от отсутствия их уконкурентов. И чем сильней проявляется этот эффект, тем больше потребность взащите информации. Одним словом, возникновение индустрии обработки информациипривело к возникновению индустрии средств защиты информации.

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

Почему же проблемаиспользования криптографических методов в информационных системах (ИС) стала внастоящий момент особо актуальна? С одной стоpоны, расширилось использование компьютерныхсетей, в частности глобальной сети Интеpнет, по которым передаются большиеобъемы информации государственного, военного, коммерческого и частного хаpактеpа, не допускающего возможностьдоступа к ней посторонних лиц. С другой стороны, появление новых мощных компьютеров,технологий сетевых и нейронных вычислений сделало возможным дискредитациюкриптографических систем еще недавно считавшихся практически не раскрываемыми.

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

В курсовом проекте былипоставлены следующие задачи:

·<span Times New Roman"">                  

Анализлитературы при разработке программы шифрования на основе ГОСТ 28147-89;

·<span Times New Roman"">                  

Анализалгоритмов шифрования ГОСТ 28147-89;

·<span Times New Roman"">                  

Разработкапрограммы реализующей алгоритм шифрования ГОСТ 28147-89;

·<span Times New Roman"">                  

Разработкаруководства пользователя;

·<span Times New Roman"">                  

Разработкаруководства программы.

Объектом в курсовомпроекте является — методы шифрования ГОСТ28147-89.

Предметом является – разработкапрограммы для шифрования и дешифрования файлов алгоритмом ГОСТ 28147-89 методомгаммирования с обратной связью в среде программирования Delphi.

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

1 КРИПТОЛОГИЯ. ОСНОВНЫЕ ПОНЯТИЯ

Пpоблемой защиты инфоpмации путем ее пpеобpазования занимается кpиптология(kryptos — тайный, logos — наука).

Кpиптология pазделяется на два напpавления:

·<span Times New Roman"">    

кpиптогpафию;

·<span Times New Roman"">    

кpиптоанализ.

Цели этих напpавлений пpямо пpотивоположны. Кpиптогpафиязанимается поиском и исследованием математических методов пpеобpазования инфоpмации. Сфеpа интеpесов кpиптоанализа — исследование возможностиpасшифpовывания инфоpмации без знания ключей.

Совpеменная кpиптогpафия включает в себя четыpе кpупных pаздела:

1.<span Times New Roman""> 

Системные криптосистемы;

2.<span Times New Roman""> 

Криптосистемы с открытым ключом;

3.<span Times New Roman""> 

Системы электронной подписи;

4.<span Times New Roman""> 

Системы управления ключами.

Основные напpавления использования кpиптогpафических методов — пеpедача конфиденциальной инфоpмации по каналам связи (напpимеp, электpонная почта), установлениеподлинности пеpедаваемых сообщений, хранение информации (документов, баз данных и т.п.)на носителях в зашифрованном виде.

Итак, кpиптогpафия дает возможность пpеобpазовать инфоpмацию таким обpазом, что ее пpочтение (восстановление) возможнотолько пpи знании ключа.

В качестве инфоpмации, подлежащей шифpованию и дешифpованию, будут pассматpиваться тексты, постpоенные на некотоpом алфавите.

Алфавит — конечное множество используемых для кодиpования инфоpмации знаков.

Текст — упоpядоченный набоpиз элементов алфавита.

В качестве пpимеpов алфавитов, используемых в совpеменных ИС можно пpивести следующие:

·<span Times New Roman"">    

алфавит Z33 — 32 буквы pусского алфавита и пpобел;

·<span Times New Roman"">    

алфавит Z256 — символы, входящие в стандаpтные коды ASCIIи КОИ-8;

·<span Times New Roman"">    

бинаpный алфавит — Z2 = {0,1};

·<span Times New Roman"">    

восьмеpичный алфавит или шестнадцатеpичный алфавит.

Шифpование — пpеобpазовательный пpоцесс, в ходе которого исходный текстзаменяется шифpованным текстом.

Дешифpование — обpатный шифpованию пpоцесс. На основе ключа шифpованный текст пpеобpазуется в исходный.

Ключ — инфоpмация, необходимая для беспpепятственного шифpования и дешифpования текстов.

Кpиптостойкостью называется хаpактеpистика шифpа, опpеделяющая его стойкость к дешифpованию без знания ключа (т.е. кpиптоанализу). Имеется несколькопоказателей кpиптостойкости, сpеди котоpых:

·<span Times New Roman"">    

количество всех возможных ключей;

·<span Times New Roman"">    

сpеднее вpемя, необходимое для кpиптоанализа.<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

<span Times New Roman",«serif»;text-transform:uppercase">2Требования к криптосистемам

Пpоцесс кpиптогpафического закpытия данных может осуществляться какпpогpаммно, так и аппаpатно. Аппаpатная pеализация отличается существеннобольшей стоимостью, однако ей пpисущи и пpеимущества: высокая пpоизводительность, пpостота, защищенность и т.д. Пpогpаммная pеализация более пpактична, т.к. имеет более низкуюстоимость.

Для совpеменных кpиптогpафических систем защиты инфоpмации сфоpмулиpованы следующие общепpинятые тpебования:

·<span Times New Roman"">    

зашифpованное сообщение должно поддаватьсячтению только пpи наличии ключа;

·<span Times New Roman"">    

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

·<span Times New Roman"">    

число опеpаций, необходимых для pасшифpовывания инфоpмации путем пеpебоpа всевозможных ключей должно выходитьза пpеделы возможностей совpеменных компьютеpов (с учетом возможностииспользования сетевых вычислений);

·<span Times New Roman"">    

знание алгоpитма шифpования не должно влиять на надежностьзащиты;

·<span Times New Roman"">    

стpуктуpные элементы алгоpитма шифpования должны быть неизменными;

·<span Times New Roman"">    

длина шифpованного текста должна быть pавной длине исходного текста;

·<span Times New Roman"">    

не должно быть пpостых и легко устанавливаемыхзависимостью между ключами, последовательно используемыми в пpоцессе шифpования и д.р.<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

3 ГОСТ 28147-89

3.1 История создания. Правомерность использования

Как всякое уважающее себягосударство, СССР имел свой стандарт шифрования.  Этот стандарт закреплен ГОСТом №28147-89,принятом еще в 1989 году.  Однако, безсомнения, история этого шифра гораздо более давняя.  Стандарт родился предположительно в недрахвосьмого главного управления КГБ СССР, преобразованного ныне в ФАПСИ. В тевремена он имел гриф «Совершенно секретно», позже гриф был изменен на «Секретно»,затем снят совсем. К сожалению, в отличие от самого стандарта, история егосоздания и критерии проектирования шифра до сих пор остаются тайной за семьюпечатями.

Возможное использованиеГОСТа в собственных разработках ставит ряд вопросов.  Вопрос первый – нет ли юридическихпрепятствий для этого.  Таких препятствийнет, и все могут свободно использовать ГОСТ, он не запатентован, следовательно,не у кого спрашивать разрешения.  На указПрезидента России №334 от 03.04.95 и соответствующие постановленияправительства РФ, можем вообще смело закрыть глаза. Хотя данный документформально и запрещают разработку систем, содержащих средства криптозащитыюридическими и физическими лицами, не имеющими лицензии на этот виддеятельности, реально указ распространяется лишь на случай государственныхсекретов, данных, составляющих банковскую тайну и т.п.

Вторым вопросом являетсявопрос целесообразности – прежде всего, можем ли мы доверять этому порождениюмрачной Лубянки, не встроили ли товарищи чекисты множества лазеек в алгоритмышифрования?  Это весьма маловероятно, таккак ГОСТ создавался в те времена, когда было немыслимо его использование запределами государственных режимных объектов. С другой стороны, стойкость криптографического алгоритма нельзяподтвердить, ее можно только опровергнуть взломом.  Поэтому, чем старше алгоритм, тем большешансов на то, что, если уж он не взломан до сих пор, он не будет взломан и вближайшем обозримом будущем.

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

3.2 Описание метода

3.2.1 Базовые понятия и составляющие алгоритма

На различных шагахалгоритмов ГОСТа данные, которыми они оперируют, интерпретируются ииспользуются различным образом. В некоторых случаях элементы данныхобрабатываются как массивы независимых битов, в других случаях – как целоечисло без знака, в третьих – как имеющий структуру сложный элемент, состоящийиз нескольких более простых элементов. Поэтому во избежание путаницы следуетдоговориться об используемых обозначениях.

Элементы данных обозначимзаглавными латинскими буквами с наклонным начертанием (например, X). Через |X| обозначается размер элемента данныхXв битах. Таким образом, еслиинтерпретировать элемент данных Xкак целое неотрицательное число,можно записать следующее неравенство: 0<X<2|X|.

Если элемент данныхсостоит из нескольких элементов меньшего размера, то этот факт обозначаетсяследующим образом:

X= (X0, X1, ..., Xn-1) = X0||X1||...||Xn-1.

Процедура объединениянескольких элементов данных в один называется конкатенацией данных и обозначается символом ||. Естественно, дляразмеров элементов данных должно выполняться следующее соотношение: |X|=|X0|+|X1|+...+|Xn-1|.

Все алгоритмы шифрованияГОСТа опираются на три алгоритма низшего уровня, называемые базовые циклами. Они имеют следующиеназвания и обозначения:

·<span Times New Roman"">    

цикл шифрования (32-З);

·<span Times New Roman"">    

цикл дешифрования (32-Р);

·<span Times New Roman"">    

цикл выработки имитовставки (16-З).

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

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

·<span Times New Roman"">    

что такое основной шагкриптопреобразования;

·<span Times New Roman"">    

как из основных шагов складываютсябазовые циклы;

·<span Times New Roman"">    

как из трех базовых цикловскладываются все практические алгоритмы ГОСТа.

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

Ключявляется массивом из восьми 32-битных элементов кода. Далее онобозначается символом К: <img src="/cache/referats/27449/image002.gif" v:shapes="_x0000_i1025"><img src="/cache/referats/27449/image004.gif" v:shapes="_x0000_i1026">

Таблица заменявляется матрицей 8<span Times New Roman";mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol; mso-symbol-font-family:Symbol">´

16,содержащей 4-битовые элементы, которые можно представить в виде целых чисел от0 до 15. Строки таблицы заменназываются узлами замен, они должнысодержать различные значения, то есть каждый узел замен должен содержать 16 различных чисел от 0 до 15 впроизвольном порядке. Далее таблица замен обозначается символом H: <img src="/cache/referats/27449/image006.gif" v:shapes="_x0000_i1027"><span Times New Roman";mso-hansi-font-family:«Times New Roman»;mso-char-type:symbol; mso-symbol-font-family:Symbol">´16 элементов <span Times New Roman";mso-hansi-font-family:«Times New Roman»; mso-char-type:symbol;mso-symbol-font-family:Symbol">´4 бита = 512 бит или 64 байта.

3.2.2 Основной шаг криптопреобразования

Основной шагкриптопреобразования (рис. 1) по своей сути является оператором, определяющимпреобразование 64-битового блока данных. Дополнительным параметром этогооператора является 32-битовый блок, в качестве которого используется какой-либоэлемент ключа.

<img src="/cache/referats/27449/image008.jpg" v:shapes="_x0000_s1066">


Рис. 1. Схема основного шага криптопреобразования алгоритмаГОСТ 28147-89.

Шаг 0. Определение исходных данных для основного шагакриптопреобразования, где N –преобразуемый64-битовый блок данных, в ходе выполнения шага его младшая (N1) и старшая (N2) части обрабатываются какотдельные 32-битовые целые числа без знака. Таким образом, можно записать N=(N1,N2), а X– 32-битовый элемент ключа.

Шаг 1. Сложение с ключом. Младшая половина преобразуемого блокаскладывается по модулю 232 с используемым на шаге элементом ключа,результат передается на следующий шаг.

Шаг 2. Поблочная замена. 32-битовое значение, полученное на предыдущемшаге, интерпретируется как массив из восьми 4-битовых блоков кода: S= (S0,S1,S2,S3,S4,S5,S6,S7). Далее значение каждого из восьмиблоков заменяется на новое, которое выбирается по таблице замен следующимобразом: значение блока Smзаменяется на Sm-ный по порядку элемент (нумерация снуля) m-ного узла замен (т.е. m-ной строки таблицы замен, нумерация также с нуля). Другимисловами, в качестве замены для значения блока выбирается элемент из таблицызамен с номером строки, равным номеру заменяемого блока, и номером столбца,равным значению заменяемого блока как 4-битового целого неотрицательного числа.

Шаг 3. Циклический сдвиг на 11 бит влево. Результат предыдущего шагасдвигается циклически на 11 бит в сторону старших разрядов и передается наследующий шаг. На схеме алгоритма символом Θ11 обозначенафункция циклического сдвига своего аргумента на 11 бит в сторону старшихразрядов.

Шаг 4. Побитовое сложение: значение, полученное на шаге 3, побитноскладывается по модулю 2 со старшей половиной преобразуемого блока.

Шаг 5. Сдвиг по цепочке: младшая часть преобразуемого блока сдвигается наместо старшей, а на ее место помещается результат выполнения предыдущего шага.

Шаг 6. Полученное значение преобразуемого блокавозвращается как результат выполнения алгоритма основного шагакриптопреобразования.

3.2.3 Базовые циклы криптографических преобразований

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

Базовые циклы заключаютсяв многократном выполнении основного шагас использованием разных элементов ключа и отличаются друг от друга толькочислом повторения шага и порядком использования ключевых элементов. Нижеприведен этот порядок для различных циклов.

1.<span Times New Roman"">    

Цикл шифрования 32-З:

K0,K1,K2,K3,K4,K5,K6,K7,K0,K1,K2,K3,K4,K5,K6,K7,K0,K1,K2,K3,K4,K5,K6,K7, K7,K6,K5,K4,K3,K2,K1,K0.

2.<span Times New Roman"">    

Цикл дешифрования 32-Р:

K0,K1,K2,K3,K4,K5,K6,K7,K7,K6,K5,K4,K3,K2,K1,K0,K7,K6,K5,K4,K3,K2,K1,K0, K7,K6,K5,K4,K3,K2,K1,K0.

3.<span Times New Roman"">    

Цикл выработки имитовставки 16-З:

K0,K1,K2,K3,K4,K5,K6,K7,K0,K1,K2,K3,K4,K5,K6,K7.

Каждый из циклов имеетсобственное буквенно-цифровое обозначение, соответствующее шаблону «n-X», где первый элемент обозначения (n), задает число повторений основного шага в цикле, авторой элемент обозначения (X), буква, задает порядок шифрования(«З») или дешифрования («Р») в использовании ключевых элементов. Цикл дешифрованиядолжен быть обратным циклу шифрования, то есть последовательное применение этихдвух циклов к произвольному блоку должно дать в итоге исходный блок. Длявыполнения этого условия для алгоритмов, подобных ГОСТу, необходимо идостаточно, чтобы порядок использования ключевых элементов соответствующимициклами был взаимообратным (рис. 2а,рис. 2б).

Схемы базовых цикловприведены на рисунках 2а, 2б, 2в. Каждый из них принимает в качестве аргументаи возвращает в качестве результата 64-битный блок данных, обозначенный насхемах N. Символ Шаг (N,Kj) обозначает выполнение основногошага криптопреобразования для блока Nс использованием ключевого элемента K.

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

Рис. 2а. Схема цикла шифрования 32-З.

Рис. 2б. Схема цикла дешифрования 32-Р.

<img src="/cache/referats/27449/image010.gif" v:shapes="_x0000_s1068 _x0000_s1069 _x0000_s1072">


Рис. 2в. Схема цикла выработки имитовставки 16-З.

<img src="/cache/referats/27449/image012.gif" v:shapes="_x0000_s1073 _x0000_s1074">
3.2.4 Основные режимы шифрования


ГОСТ 28147-89предусматривает три следующих режима шифрования данных:

·<span Times New Roman"">    

простая замена,

·<span Times New Roman"">    

гаммирование,

·<span Times New Roman"">    

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

Кроме того, предусмотрен одиндополнительный режим выработки имитовставки.

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

Прежде чем перейти крассмотрению конкретных алгоритмов криптографических преобразований, необходимопояснить обозначения, используемые на схемах в следующих разделах:

Tо, Tш– массивы соответственно открытых и зашифрованныхданных;

<img src="/cache/referats/27449/image014.gif" v:shapes="_x0000_i1028"><img src="/cache/referats/27449/image016.gif" v:shapes="_x0000_i1029"> – i-тые по порядку 64-битные блоки соответственнооткрытых и зашифрованных данных;

n– число 64-битных блоков в массиведанных;

ЦX– функция преобразования 64-битного блока данных по алгоритмубазового цикла «X».

Далее описаны режимышифрования по алгоритму ГОСТ 28147-89.

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

Простая замена.

Шифрование в данномрежиме заключается в применении цикла 32-З к блокам открытых данных, дешифрование– цикла 32-Р к блокам зашифрованных данных. Это наиболее простой из режимов,64-битовые блоки данных обрабатываются в нем независимо друг от друга. Схемыалгоритмов шифрования и дешифрования в режиме простой замены приведены нарисунках 3а и 3б соответственно.

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

<img src="/cache/referats/27449/image018.gif" v:shapes="_x0000_i1030">

Рис. 3а. Алгоритм шифрования данных врежиме простой замены.

<img src="/cache/referats/27449/image020.gif" v:shapes="_x0000_i1031">

Рис. 3б. Алгоритм дешифрования данныхв режиме простой замены.

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

Размер массива открытыхили зашифрованных данных, подвергающийся соответственно зашифрованию илирасшифрованию, должен быть кратен 64 битам: |Tо|=|Tш|=64· n, после выполнения операции размер полученного массива данных неизменяется.

Режим шифрования простойзаменой имеет следующие особенности:

1)<span Times New Roman""> 

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

2)<span Times New Roman""> 

Если длина шифруемого массива данныхне кратна 8 байтам или 64 битам, возникает проблема, чем и как дополнятьпоследний неполный блок данных массива до полных 64 бит. Эта задача не такпроста, как кажется на первый взгляд. Очевидные решения типа «дополнитьнеполный блок нулевыми битами» или «дополнить неполный блок фиксированнойкомбинацией нулевых и единичных битов» могут при определенных условиях дать вруки криптоаналитика возможность методами перебора определить содержимое этогосамого неполного блока, и этот факт означает снижение стойкости шифра. Крометого, длина шифртекста при этом изменится, увеличившись до ближайшего целого,кратного 64 битам, что часто бывает нежелательным.

На первый взгляд,перечисленные выше особенности делают практически невозможным использованиережима простой замены, ведь он может применяться только для шифрования массивовданных с размером кратным 64 битам, не содержащим повторяющихся 64-битовыхблоков. Кажется, что для любых реальных данных гарантировать выполнениеуказанных условий невозможно. Это почти так, но есть одно очень важноеисключение: вспомните, что размер ключа составляет 32 байта, а размер таблицызамен – 64 байта. Кроме того, наличие повторяющихся 8-байтовых блоков в ключеили таблице замен будет говорить об их весьма плохом качестве, поэтому вреальных ключевых элементах такого повторения быть не может. Именно поэтомуГОСТ предписывает использовать режим простой замены исключительно дляшифрования ключевых данных.

<span Times New Roman",«serif»; mso-fareast-font-family:«Times New Roman»;mso-ansi-language:RU;mso-fareast-language: RU;mso-bidi-language:AR-SA">

Гаммирование.

Гаммирование – этоналожение (снятие) на открытые (зашифрованные) данные криптографической гаммы,т.е. последовательности элементов данных, вырабатываемых с помощью некоторогокриптографического алгоритма, для получения зашифрованных (открытых) данных.Для наложения гаммы при зашифровании и ее снятия при расшифровании должныиспользоваться взаимно обратные бинарные операции, например, сложение ивычитание по модулю 264 для 64-битовых блоков данных. В ГОСТе дляэтой цели используется операция побитового сложения по модулю 2, поскольку онаявляется обратной самой. Гаммирование решает обе вышеупомянутые проблемыпростой замены: во-первых, все элементы гаммы различны для реальных шифруемыхмассивов и, следовательно, результат шифрования даже двух одинаковых блоков водном массиве данных будет различным. Во-вторых, хотя элементы гаммы ивырабатываются одинаковыми порциями в 64 бита, использоваться может и частьтакого блока с размером, равным размеру шифруемого блока.

Гамма получаетсяследующим образом: с помощью некоторого алгоритмического рекуррентногогенератора последовательности чисел (РГПЧ) вырабатываются 64-битовые блокиданных, которые далее подвергаются преобразованию по циклу 32-З, то естьзашифрованию в режиме простой замены, в результате получаются блоки гаммы.Благодаря тому, что наложение и снятие гаммы осуществляется при помощи одной итой же операции побитового исключающегоили, алгоритмы шифрования и дешифрования в режиме гаммирования идентичны,их общая схема приведена на рисунке 4.

РГПЧ, используемый длявыработки гаммы, является рекуррентной функцией: <img src="/cache/referats/27449/image022.gif" v:shapes="_x0000_i1032"> где <img src="/cache/referats/27449/image024.gif" v:shapes="_x0000_i1033"> – элементырекуррентной последовательности, а f – функция преобразования. Неизбежновозникает вопрос о том, что же представляет из себя элемент <img src="/cache/referats/27449/image026.gif" v:shapes="_x0000_i1034">синхропосылкой, а вГОСТе – начальным заполнением одного из регистров шифрователя. По определеннымсоображениям разработчики ГОСТа решили использовать для инициализации РГПЧ ненепосредственно синхропосылку, а результат ее преобразования по циклу 32-З: <img src="/cache/referats/27449/image028.gif" v:shapes="_x0000_i1035"><img src="/cache/referats/27449/image030.gif" v:shapes="_x0000_i1036">i (X) = f (fi–1(X)), f0 (X)= X. С учетом преобразования по алгоритму простой замены добавляется еще изависимость от ключа. Таким образом, последовательность элементов гаммы дляиспользования в режиме гаммирования однозначно определяется ключевыми данными исинхропосылкой.

<img src="/cache/referats/27449/image032.jpg" v:shapes="_x0000_i1037">

Рис. 4. Алгоритм шифрования(дешифрования) в реж

еще рефераты
Еще работы по программированию, базе данных