28530

Режим гаммирования ГОСТ 28147–89 РГПЧ

Доклад

Информатика, кибернетика и программирование

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

Русский

2013-08-20

77.46 KB

51 чел.

25 Режим гаммирования  ГОСТ 28147–89 РГПЧ

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

Рис. 3. Режим гаммирования

  1.  В регистры N1 и N2 записывается их начальное заполнение – 64-битная величина, называемая «синхропосылкой».
  2.  Выполняется зашифровывание содержимого регистров N1 и N2 (в данном случае – синхропосылки) в режиме простой замены.
  3.  Содержимое N1 складывается по модулю (232 – 1) с константой ; результат сложения записывается в регистр N1.
  4.  Содержимое N2 складывается по модулю 232 с константой ; результат сложения записывается в регистр N2.
  5.  Содержимое регистров N1 и N2 подается на выход в качестве 64-битного блока гаммы шифра (т. е. в данном случае N1 и N2 образуют первый блок гаммы).
  6.  Если необходим следующий блок гаммы (т. е. необходимо продолжить зашифрование или расшифрование), выполняется возврат к шагу 2.

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

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

Режим гаммирования с обратной связью отличается от режима гаммирования только тем, что перед возвратом к шагу 2 (для выработки следующего блока гаммы) в регистры N1 и N2 записывается содержимое блока зашифрованной информации, для зашифрования которого использовался предыдущий блок гаммы.

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

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

Гаммирование решает обе упомянутые проблемы:

  1.  во-первых, все элементы гаммы различны для реальных шифруемых массивов и, следовательно, результат зашифрования даже двух одинаковых блоков в одном массиве данных будет различным;
  2.  во-вторых, хотя элементы гаммы и вырабатываются одинаковыми порциями в 64 бита, использоваться может и часть такого блока с размером, равным размеру шифруемого блока.

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

РГПЧ, используемый для выработки гаммы, является рекуррентной функцией:

Fi + 1 = f(Fi), где Fi – элементы рекуррентной последовательности; f – функция преобразования. Следовательно, неизбежно возникает вопрос об его инициализации, т. е. об элементе F0. В действительности этот элемент данных является параметром алгоритма для режимов гаммирования; на схемах он обозначен как S и называется в криптографии синхропосылкой, а в ГОСТе – начальным заполнением одного из регистров шифрователя.

По определенным соображениям разработчики ГОСТа решили использовать для инициализации РГПЧ не непосредственно синхропосылку, а результат ее преобразования по циклу 32-З: F0 = Ц32-З(S). Последовательность элементов, вырабатываемых РГПЧ, целиком зависит от его начального заполнения, т. е. элементы этой последовательности являются функцией своего номера и начального заполнения РГПЧ. С учетом преобразования по алгоритму простой замены добавляется еще и зависимость от ключа шифрования.

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

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

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

  1.  период повторения последовательности чисел, вырабатываемой РГПЧ, не должен (в процентном отношении) значительно отличаться от максимально возможного при заданном размере блока значения 2**64;
  2.  соседние значения, вырабатываемые РГПЧ, должны отличаться друг от друга в каждом байте, иначе задача криптоаналитика будет упрощена;
  3.  РГПЧ должен быть достаточно просто реализуем как аппаратно, так и программно на наиболее распространенных типах процессоров, большинство из которых, как известно, имеют разрядность 32 бита.

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

  1.  в 64-битовом блоке старшая и младшая части обрабатываются независимо друг от друга. Фактически, существуют два независимых РГПЧ для старшей и младшей частей блока;
  2.  период повторения последовательности для младшей части составляет 2**32, для старшей 2**32–1, а для всей последовательности период составляет (2**32)*(2**32–1). Доказательство этого факта – весьма несложно. Первая формула из приведенных двух реализуется за одну команду, вторая, несмотря на ее кажущуюся громоздкость, за две команды на всех современных 32-разрядных процессорах.

Пояснения к схеме алгоритма шифрования в режиме гаммирования изложены ниже.

Шаг 0. Определяет исходные данные для основного шага криптопреобразования:

  1.  Tо(ш) – массив открытых (зашифрованных) данных произвольного размера, подвергаемый процедуре зашифрования (расшифрования); по ходу процедуры массив подвергается преобразованию порциями по 64 бита.
  2.  S синхропосылка, 64-битовый элемент данных, необходимый для инициализации генератора гаммы.

Шаг 1. Начальное преобразование синхропосылки, выполняемое для ее «рандомизации», т. е. для устранения статистических закономерностей, присутствующих в ней; результат используется как начальное заполнение РГПЧ.

Шаг 2. Один шаг работы РГПЧ, реализующий его рекуррентный алгоритм. В ходе данного шага старшая (S1) и младшая (S0) части последовательности данных вырабатываются независимо друг от друга.

Шаг 3. Гаммирование. Очередной 64-битовый элемент, выработанный РГПЧ, подвергается процедуре зашифрования по циклу 32–З; результат используется как элемент гаммы для зашифрования (расшифрования) очередного блока открытых (зашифрованных) данных того же размера.

Шаг 4. Результат работы алгоритма – зашифрованный (расшифрованный) массив данных.

Особенности гаммирования как режима шифрования:

  1.  Одинаковые блоки в открытом массиве данных дадут при зашифровании различные блоки шифртекста, что позволит скрыть факт их идентичности.
  2.  Поскольку наложение гаммы выполняется побитно, шифрование неполного блока данных легко выполнимо как шифрование битов этого неполного блока, для чего используются соответствующие биты блока гаммы. Так, для зашифрования неполного блока в 1 бит можно использовать любой бит из блока гаммы.
  3.  Синхропосылка, использованная при зашифровании, каким-то образом должна быть передана для использования при расшифровании. Это может быть достигнуто следующими путями:
  4.  хранить или передавать синхропосылку вместе с зашифрованным массивом данных, что приведет к увеличению размера массива данных при зашифровании на размер синхропосылки, т. е. на 8 байт;
  5.  использовать предопределенное значение синхропосылки или вырабатывать ее синхронно источником и приемником по определенному закону; в этом случае изменение размера передаваемого или хранимого массива данных отсутствует.

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

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

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

Режим гаммирования имеет еще одну интересную особенность. В этом режиме биты массива данных шифруются независимо друг от друга. Таким образом, каждый бит шифртекста зависит от соответствующего бита открытого текста и, естественно, порядкового номера бита в массиве: .

Из этого вытекает, что изменение бита шифртекста на противоположное значение приведет к аналогичному изменению бита открытого текста на противоположный:

,

где – обозначает инвертированное по отношению к t значение бита .

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

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


 

А также другие работы, которые могут Вас заинтересовать

82362. Проектирование вычислительной локальной сети 419 KB
  Цель: Спроектировать локальную вычислительную сеть малого предприятия либо группы компьютерных классов учебного заведения. Объект исследования: Объектом курсовой работы является процесс проектирования локальной вычислительной сети...
82364. Социальные конфликты в процессе интеграции инвалидов в общество 150.5 KB
  В статье Интеграция инвалидов в современное российское общество: основные этапы затрагивает вопрос инклюзивного образования где говорит что по сути своей дети инвалиды не равны по отношению друг к другу – дети с нарушением опорно-двигательного аппарата чувствуют и воспринимаются другими лучше а значит...
82365. Проектирование и расчеты верхнего строения пути 534 KB
  Железнодорожный транспорт России имеет исключительно важное значение в жизнеобеспечении многоотраслевой экономики и реализации социально значимых услуг по перевозке пассажиров. На его долю приходится более 75% грузооборота и 40% пассажирооборота, выполняемых транспортом общего пользования.
82366. Факторы повышения социальной значимости системы среднего профессионального и среднего специального образования 207 KB
  Главной проблемой нашей работы стало то что в наше время система среднего профессиональное и среднего специального образования считается не разумной потерей времени. Неопределенность статуса диплома об окончании обучения в связи с вступлением России в Болонский процесс и интеграцией российского...
82368. Расчёт и проектирование двуступенчатого редуктора 53.88 KB
  Кинематическая схема привода. Определение мощности на ведущем валу и выбор электродвигателя. Определение общего передаточного числа. Основные параметры передачи. Выбор материалов. Допускаемые напряжения. Определение межосевого расстояния и расчёт тихоходной ступени. Геометрические параметры передачи.
82369. ПРОЕКТУВАННЯ КАРКАСНОЇ ДЕРЕВ’ЯНОЇ БУДІВЛІ 921.5 KB
  Мета курсового проекту – практично застосувати знання, які отримані при вивченні теоретичного курсу, оволодіти вмінням конструювати складові каркаса будівлі з використанням деревини, деревинних плитних матеріалів і пластмас.