Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Лабораторная работа 7 Применение генератора РСЛОС в шифровании Существует несколько типов регистров с

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 24.11.2024

Лабораторная работа № 7

Применение генератора РСЛОС в шифровании

Существует несколько типов регистров с обратной связью.

Принципиальная схема регистра сдвига с линейной обратной связью (РСЛОС) представлена на рис. 1. РСЛОС относится к простейшему типу регистров сдвига.

Обратная связь представляет собой операцию XOR над некоторыми битами регистра, которые называются последовательностью отводов (или точек съема). Такой принцип реализации обратной связи называют конфигурацией Фибоначчи. В криптографии РСЛОС используются чаще других регистров сдвига.

Принцип работы генератора РСЛОС заключается в следующем. n-битовый РСЛОС (длина регистра равна n битам) может находиться в одном из 2n – 1 внутренних состояний. Это значит, что теоретически такой регистр может генерировать псевдослучайную последовательность с периодом 2n – 1 битов.

Количество возможных состояний равно 2n – 1, а не 2n, так как заполнение РСЛОС одними нулями приведет к выводу бесконечной последовательности нулей. Только при определенных последовательностях отводов РСЛОС циклически пройдет через все 2n – 1 внутренних состояний. Такие регистры называются регистрами РСЛОС с максимальным периодом. Получившийся выход называют т-последовательностью.

Для обеспечения максимального периода конкретного РСЛОС, соответствующий многочлен, образованный из последовательности отводов регистра, должен быть примитивным по модулю 2. Степень многочлена является длиной регистра сдвига.

Так как не существует простого способа генерации примитивных многочленов данной степени по модулю 2, то после выбора какого-либо многочлена осуществляется его проверка. Брюс Шнайер в своем труде на стр. 423-425 приводит таблицу примитивных по модулю 2 многочленов, которую можно использовать для создания алгоритмов шифрования.

В данной работе будет рассмотрена программная реализация генератора, работа которого описывается уравнением (1).

     (1)

В данном случае длина регистра равна 32. Биты с номерами 0, 1, 2, 3, 5, 7 задают последовательность отводов. Началом последовательности является правый (младший) край регистра сдвига. Член х32 является входом, куда подается новый бит регистра.

Таким образом, новый бит последовательности, создается при помощи операции XOR над седьмым, пятым, третьим, вторым, первым и нулевым битами и помещается на место 31 бита (Рис. 2). Период данного РСЛОС будет максимальным. Число возможных внутренних состояний регистра равняется 232  1, после чего наступит повторение состояний.

Рис. 2. Схема 32-битового генератора РСЛОС

Задание 1. Выполнить программную реализацию описанного формулой  (1) генератора РСЛОС.

Выполнение.

  1.  Набрать программный код представленный на рис. 3.

После объявления переменных и открытия файлов начинается шифрование. Описываемый генератор РСЛОС работает в режиме побитового шифрования, то так как в программе используется переменная типа unsigned char byte_gamma, то используется дополнительный цикл for из 8 повторений. Цикл предназначен для заполнения переменной byte_gamma 8 битами гаммы. Рассмотрим команды цикла:

  1.  сначала выделяется бит гаммы при помощи операции:

bit_ch=key&0x01;

  1.  затем бит записывается в байт гаммы, а счетчик j регулирует позицию байта, в которую записывается бит:

byte_gamma|=(bit_ch<<(7-j));

  1.  вычисляется значение нового бита:

shift_reg=(((key>>7)^(key>>5)^(key>>3)^(key>>2)^(key>>1)^(key>>0))&0x01);

  1.  биты регистра сдвигаются влево на одну позицию, а полученный новый бит записывается на место старшего бита:

key=key>>1;

key=key^(shift_reg<<31);

После окончания цикла выполняется XOR над переменной ch – символом из открытого текста и byte_gamma, затем считывается новый байт открытого текста и цикл повторяется снова.

  1.  Закончив набор программного кода, отладить и протестировать программу на произвольном текстовом документе размером 3-5 байт.

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

  1.  В случае положительного результата тестирования опробовать шифрование файлов любого типа.

Рис. 3. Программная реализация на языке С++ РСЛОС

Задание 2. Выполнить программную реализацию генератора РСЛОС, описанного формулой (2).

Работа данного РСЛОС описывается формулой (2):

    (2)

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

  1.  вместо объявления переменной типа unsigned long в качестве ключа указать массив переменных типа unsigned long (в данном случае из двух элементов):

unsigned long key[2];

  1.  ввод ключевой последовательности изменится на:

cout<<"Enter the first Key: "<<endl;

cin>>key[0];

cout<<"Enter the second Key: "<<endl;

cin>>key[1];

key[1]=key[1]&0x3fffff;

  1.  генерация нового бита ключевой последовательности, а также обновления его внутреннего состояния усложнится, так как необходимо предусмотреть перенос битов с одного элемента ключевого массива на другой. Так как степень многочлена 54, а две переменные типа unsigned long хранят 64 бита, то необходима операция сложения с константой 0x3fffff для обнуления старших 10 битов ключевой последовательности одной из переменных, хранящих значение ключа. Схематически данный процесс продемонстрирован на рисунке 4:

Рис. 4. Перемещение битов ключевой последовательности

Программный код для реализации усложненного преобразования  приведен ниже:

shift_reg=(((key[0]>>6)^(key[0]>>5)^(key[0]>>4)^(key[0]>>3)^(key[0]>>2)^(key[0]>>0))&0x01);

key[0]=key[0]>>1;

key[0]=((key[1]&0x01)<<31)^key[0];

key[1]=key[1]>>1;

key[1]=key[1]^(shift_reg<<21);

Задание 3 Самостоятельно. Выполнить программную реализацию РСЛОС, описываемого формулой (3):

    (3)

Задание 4 Самостоятельно. Выполнить программную реализацию шифрования, основанную на двух РСЛОС, описываемых формулами (4):

   (4)

РСЛОС должны работать последовательно, вход второго РСЛОС равен выходы первого (рис. 5).

Внимание!!! Данный двойной РСЛОС будет обеспечивать максимальный выход, поскольку высшие степени РСЛОС1 и РСЛОС2 взаимно просты. При использовании нескольких РСЛОС следует проследить, чтобы значения их высших степеней были взаимно просты. Однако, данная схема, несмотря на то, что позволяет шифровать данные, не является криптографически устойчивой и представляет только учебное значение. Подробно ознакомиться с поточными генераторами, основанными на основе РСЛОС можно в работе Б. Шнайера (стр. 416-444)

Рис. 5. Схема работы двойного РСЛОС

Контрольные вопросы:

  1.  Какова принципиальная схема работы РСЛОС?
  2.  Как генерируется выходная гамма?
  3.  Как обновляется внутреннее состояние генератора?
  4.  Как обеспечить максимальный выход гаммы из генератора?
  5.  Как осуществить программную реализацию обновления внутреннего состояния для генераторов, чья длина ключа более 32 битов?
  6.  Как обеспечить максимальный выход шифруещей гаммы двух и более генераторов РСЛОС?




1. тематический отбор и обучение кадров 4
2. Лісове і садовопаркове господарство Фахове спрямування ~ Лісове господарство Садовопаркове госпо
3. Вариант 1 Назвать типы пиломатериалов приведённых на рисунке и указать возможное их применение.
4. тема показателей статистики цен 1
5. ЗАДАНИЕ НА ВЫПОЛНЕНИЕ ВЫПУСКНОЙ КВАЛИФИКАЦИОННОЙ РАБОТЫ Студенту
6. Гипотеза, логическое строение гипотезы
7. Антенны и устройства СВЧ
8. темами- репресії української інтелігенції голодомор 1933 p
9. определить и оценить знания умения и качества работника; 2 высветить оценить и развить сильные сто
10. варіанти їх можливого розвитку здійснюється на основі відстеження змін навколишнього природного та техноге
11. Лабораторна робота 4 Робота з програмою Free Dign Виконав Студент групи ФзА31 Гвардіо
12. Исследование симметричного и несимметричного мультивибратора
13. Интенсификация воздействия человека на природу в прошедшее столетие объясняется прежде всего высокой пот
14. Юриспруденция 080200 квалификации Бакалавр ФИЛОСОФИЯ К
15.  Red the text Russin System of Eduction Russins hve lwys shown gret concern for eduction
16. Несмотря на известную инерционность мышления связанную с негативным отношением к философии как науке не да
17. Смотреть и видеть
18. 47 это старый довоенный рецепт со слегка повышенным контрастом и великолепной резкостью
19. К. Корпоративные информационные системы По мере развития роста масштаба деятельности предприятий обр
20. Чужая речь и способы ее передачи