28530

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

Доклад

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

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

Русский

2013-08-20

77.46 KB

52 чел.

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 значение бита .

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

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


 

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

67145. МЕХАНИЗМ ПЕРЕДАЧИ ИНФОРМАЦИИ В СИНАПСАХ 100.5 KB
  Возникшие там возбуждающие постсинаптические потенциалы ВПСП пассивно распространяются к аксонному холмику при этом амплитуда этих локальных потенциалов уменьшается пропорционально расстоянию. И если даже максимальная величина ВПСП в контактной зоне не превышает 1 мВ то в триггерной зоне обнаруживается...
67146. Фонетическое членение речевого потока 60.8 KB
  Вокалические и консонантные системы – это проявление парадигматических отношений между звуковыми единицами. Посмотрим на звуковые единицы с точки зрения синтагматической фонетики (фонотактики). С фонетической точки зрения речь представляет собой поток звуков, который может быть расчленен на линейные, или сегментные единицы.
67147. Язык и речь. Речевая деятельность 110.5 KB
  Различение языка и речи было намечено выдающимся немецким теоретиком языкознания Вильгельмом фон Гумбольдтом (1767–1835). Позже, в отечественном языкознании эту мысль развивал Иван Александрович Бодуэн де Куртенэ (1845–1929). Более детально и последовательно идею о противопоставлении языка и речи разработал...
67148. ДИАГРАММЫ СОСТОЯНИЯ СПЛАВОВ. ПРАВИЛО ФАЗ 35.5 KB
  В сплавах: фазами могут быть чистые металлы жидкие или твердые растворы химические соединения. Число степеней свободы Степень свободы определяется числом независимых переменных например температура концентрация сплава давление которые можно изменять в определенных пределах не нарушая равновесия.
67149. Споживчий ринок товарів. Товарні ресурси 27.87 KB
  Поняття товарних ресурсів класифікація джерела їх створення Баланс ресурсів товарів народного споживання їх роль у прогнозуванні та плануванні внутрішнього ринку товарів народного споживання. За рахунок товарної продукції промисловості сільського господарства а також імпорту товарів формуються товарні ресурси держави.
67150. Геоинформатика и геоинформационные системы 88.5 KB
  Геоинформационная система (ГИС) это система направленная на хранение исходных данных и (или) решение задач связанных с получением конечных данных необходимых для пользователя данной системы.
67151. Последовательностные ИМС 324 KB
  Если выходные сигналы логических элементов и комбинационных микросхем однозначно определяются их текущими входными сигналами то выходные сигналы микросхем с внутренней памятью зависят также еще и от того какие входные сигналы и в какой последовательности поступали...
67152. Технико-экономическое обоснование проектов программных средств 230 KB
  Номенклатура работ их трудоемкость длительность и другие экономические характеристики на этих этапах ЖЦ существенно зависят от характеристик объекта технологии и инструментальной среды разработки. Сокращение этой потребности в ресурсах часто возможно только за счет принципиального изменения...