28530

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

Доклад

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

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

Русский

2013-08-20

77.46 KB

48 чел.

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

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

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


 

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

66216. Деловая оценка персонала в организации 60.5 KB
  Структура процесса требования к проведению аттестации Понятие виды функции оценки персонала Деловая оценка – процесс определения эффективности деятельности сотрудников в ходе реализации задач организации. Объектом аттестации может быть отдельный сотрудник рабочее место соответствие его требованиям...
66218. ОСВІТА І ПЕДАГОГІЧНА ДУМКА В УКРАЇНІ ВІД КИЇВСЬКОЇ РУСІ ДО ПОЧАТКУ 20 СТОЛІТТЯ 235.5 KB
  Давні слов'янські племена, за даними археології і за свідченнями візантійських джерел, відзначались такими рисами: загострене почуття спільності і справедливості, стійка віра у верховного бога, віра в магію, добропорядність, військова навченість, мужність, фізичний розвиток, загартованість, витривалість.
66219. Движение и развитие персонала организации 73.5 KB
  Структура и методы обучения Основные направления профессионального развития персонала Развитие персонала совокупность мероприятий в области обучения повышения профессионального мастерства и квалификации персонала.
66220. Методы программирования. Объектно-ориентированное программирование 29.25 KB
  Структурное программирование Основные положения концепции структурного программирования были сформулированы в 60х годах XX века голландским ученым Э. Технология структурного программирования зиждется на идее о выделении множества базисных элементов...
66221. Освіта в Україні з 1917 р. до початку 21 століття 85 KB
  Навчання у школах і вищих навчальних закладах переводилось на українську мову. Значна частина шкіл перейшла на навчання українською мовою. Кошти на освітні реформи в основному давала громадськість: пожертви з боку багатих інтелігенції земств сільські сходи часто постановляли зібрати кошти на організацію навчання.
66222. Управление деловой карьерой персонала организации 97 KB
  Технология формирования резерва руководителей Кадровый резерв это группа руководителей и специалистов обладающих способностью к управленческой деятельности отвечающих требованиям предъявляемым должностью того или иного ранга подвергшихся отбору...
66223. СУЧАСНІ ТЕНДЕНЦІЇ РОЗВИТКУ ОСВІТИ В СВІТІ 146 KB
  Провідним державам успіх у світі забезпечили такі фактори: при відборі спеціалістів розум і талант переважає над походженням створена система відбору здібних і умілих для продовження навчання діє гнучка система економіки управління...
66224. Стимулирование и мотивация труда персонала 69 KB
  Мотивация в современных условиях выступает одной из важнейших функций управления персоналом и представляет собой процесс побуждения работников к активной трудовой деятельности для удовлетворения их собственных потребностей и интересов в сочетании с достижением целей организации.