Шифрование информации методом гаммирования

Автор: Пользователь скрыл имя, 21 Декабря 2012 в 21:47, реферат

Описание работы

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

Работа содержит 1 файл

Шифрование информации методом гаммирования.docx

— 209.43 Кб (Скачать)
  1. Шифрование информации методом гаммирования

 

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

 

    1. Процесс шифрования методом гаммирования

 

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

 

    1. Описание метода

Криптосхема, реализующая алгоритм зашифрования в режиме гаммирования имеет вид, указанный на рисунке 1.

Рис.1 - Криптосхема, реализующая алгоритм зашифрования в режиме гаммирования

 

Открытые данные, разбитые на 64-разрядные ,,, зашифровываются в режиме гаммирования путём поразрядного суммирования по модулю 2 в сумматоре с гаммой шифра , которая вырабатывается блоками по 64 бита, т.е.

 

,

 

где М - определяется объемом шифруемых данных.

- i-й 64-разрядный блок, i=1/M, число двоичных разрядов в блоке может бать менше 64, при этом неиспользованная для зашифрования часть гаммы шифра из блока отбрасывается.

В КЗУ вводятся 256 бит ключа. В накопители , вводится 64-разрядная двоичная последовательность (синхропосылка) , являющаяся исходным заполнением этих накопителей для последующей выработки М блоков гаммы шифра. Синхропосылка вводится в , так, что значение вводится в 1-й разряд , значение вводится во 2-й разряд и т.д., значение вводится в 32-й разряд; знаение вводится в 1-й разряд , значение вводится во 2-й разряд и т.д., значение вводится в 32-й разряд . Происходит исходное заполнение накопителей (синхропосылка S). Результат зашифровывания переписывается в 32-разрядные накопители и , так, что заполнение переписывается в , а заполнение переписывается в . Заполнение накопителя суммируется по модулю в сумматоре с 32-разрядной константой из накопителя , результат записывается в . Заполнение накопителя суммируется по модулю в сумматоре с 32-разрядной константой из накопителя , результат записывается в . Заполнение , переписывается в , а заполнение переписывается в , при этом заполнение , сохраняется. Заполнение и зашифровывается в режиме простой замены. Полученное в результате зашифровывания заполнение образует первый 64-разрядный блок гаммы шифра , который суммируется поразрядно по модулю 2 в сумматоре с первым 64-разрядным блоком открытых данных

 

.

 

В результате суммирования получается 64-разрядный  блок зашифрованных данных

 

.

 

Значение  блока является результатом суммирования по модулю 2 в значения из блока со значением 1-го разряда , значение блока является результатом суммирования по модулю 2 в значения из блока со значением 2-го разряда и т.д., значение блока является результатом суммирования по модулю 2 в значения из блока со значением 32-го разряда .

Для получения следуешего 64-разрядного блока гаммы шифра заполнение суммируется по модулю в сумматоре с константой из , заполнение суммируется по модулю в сумматоре с константой из . Новое заполнение переписыватся в , а новое заполнение переписывается в , при этом заполнение и сохраняется.

Заполнение  и зашифровывается в режиме простой замены. Полученное в результате зашифровывания заполнение , образует второй 64-разрядный блок гаммы шифра , который суммируется поразрядно по модулю 2 в сумматоре со вторым блоком открытых данных . Аналогично вырабатываются блоки гаммы шифра и зашифровываются блоки открытых данных ,. Если длина последнего М-го блока открытых данных меньше 64 бит, то из последнего М-го блока гаммы шифра для зашифровывания используется только соответствуещее число разрядов гаммы шифра, остальные разряды отбрасываются.

В канал связи  или память ЭВМ передаются синхропосылки S и блоки зашифрованных данных ,.

 

,

 

i=1…M, где ’ - означает суммирование 32-разрядных заполнений по модулю ;

- поразрядное суммирование по  модулю 2 двух заполнений;

- содержимое накопителя  после зашифровывания i-го блока открытых данных ;

- содержимое накопителя  после зашифрования i-го блока открытых данных ;

         .

 

Расшифровывание зашифрованных данных в режиме гаммирования

 

При расшифровывании  криптосхема имеет тот же вид, что и при зашифровывании. В КЗУ вводятся 256 бит ключа, с помошью которого осуществлялось зашифрование данных ,. Синхропосылка S вводится в накопители и и аналогично алгоритму зашифровывания, осуществляется процесс выработки Ь блоков гаммы шифра . Блоки зашифрованных данных суммируются поразрядно по модулю 2 в сумматоре с блоками гаммы шифра, в результате получаются блоки открытых данных ,, при этом может содержать менше 64 разрядов.

Уравнение расшифровывания имеет вид:

 

,

i=1/M

 

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

Рис.2. Криптосхема, реализующая алгоритм зашифрования в режиме гаммирования с обратной связью

 

Оперативный ключ, состоящий из 256 бит, вводится в ключевое запоминающее устройство (КЗУ), долговременный ключ длиной 512 бит, аналогично режиму простой замены и гаммирования, записывается в блок подстановок  .

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

Первый 64-разрядный блок открытого  сообщения   шифруется поразрядным сложением по модулю 2 в сумматоре   с первым блоком шифрующей гаммы  .

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

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

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

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

 

 

    1. Шифр Вернама

 

Шифр Вернама (другое название: англ. One-time pad — схема одноразовых блокнотов) — в криптографии система симметричного шифрования; является системой шифрования, для которой доказана абсолютная криптографическая стойкость.

Для произведения шифротекста открытый текст объединяется операцией «исключающее ИЛИ» с ключом (называемым одноразовым блокнотом или шифроблокнотом). При этом ключ должен обладать тремя критически важными свойствами:

  1. быть истинно случайным;
  2. совпадать по размеру с заданным открытым текстом;
  3. применяться только один раз.

 

Шифр Вернама является частным случаем шифрования гаммированием для двоичного алфавита (при значении модуля m=2).

Конкретная  версия этого шифра, предложенная в 1926 году сотрудником фирмы AT&T Вернамом, использует двоичное представление символов исходного текста. Каждая буква исходного текста в алфавите, расширенном некоторыми дополнительными знаками, сначала переводилась с использованием телеграфного кода Бодо в пятибитовый символ. То есть алфавит криптосистемы представляет собой множество Z32 всех пятибитовых последовательностей.

Ключ k=(k0 ,k1 ,...,kк-1), где "ki Î Z32  записывался на бумажной ленте. При шифровании ключ добавлялся к исходному тексту суммированием по модулю 2.

В общем случае система шифрования Вернама осуществляет побитовое сложение п -битового открытого текста и п-битового ключа:

yi = xi + ki,  i=1,…,n

Здесь х1 х2 ... xп - открытый текст, k1 k2 ... kп - ключ, y1 y2 ... yп - шифрованный текст.

Расшифрование состоит в сложении по модулю 2 символов у шифртекста с той же последовательностью ключей .

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

Таким образом можно выделить следующие недостатки применения данного шифра:

  • Для работы шифра Вернама необходима истинно случайная последовательность (ключ). По определению, последовательность, полученная с использованием любого алгоритма, является не истинно случайной, а псевдослучайной. То есть, нужно получить случайную последовательность неалгоритмически (например, используя радиоактивный распад, создаваемый электронным генератором белый шум, или другие достаточно случайные события). Чтобы сделать распределение предельно близким к равномерному, случайная последовательность обычно пропускается через хэш-функцию наподобие MD5.
  • Проблемой является защищённая передача последовательности и сохранение её в тайне. Если существует надёжно защищённый от перехвата канал передачи сообщений, шифры вообще не нужны: секретные сообщения можно передавать по этому каналу. Если же передавать ключ системы Вернама с помощью другого шифра (например, DES), то полученный шифр окажется защищённым ровно настолько, насколько защищён DES. При этом, поскольку длина ключа та же, что и длина сообщения, передать его не проще, чем сообщение. Шифроблокнот на физическом носителе можно украсть или скопировать.
  • Возможны проблемы с надёжным уничтожением использованной страницы. Этому подвержены как бумажные страницы блокнота, так и современные электронные реализации с использованиемкомпакт-дисков или флэш-памяти.
  • Если третья сторона каким-нибудь образом узнает сообщение, она легко восстановит ключ и сможет подменить послание на другое такой же длины.
  • Шифр Вернама чувствителен к любому нарушению процедуры шифрования.

 

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

Данный метод  не позволит расшифровать полученные данные без знания кода шифрования (т.е. стартовой гаммы и формулы  её смещения).

 

 

2

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

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

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

К криптографически стойкому ГПСП предъявляются 3 основных требования:

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

 

 

 

 

 

 

 


Информация о работе Шифрование информации методом гаммирования