Задание к лабораторной работе.




Криптографические методы защиты информации

Семестр

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

«Генераторы псевдослучайных последовательностей»

Основные сведения.

Линейный конгруэнтный генератор псевдослучайных последовательностей определяется рекуррентным соотношением:

x(n+1)=ax(n)+c mod m

и начальным значением x(0).

Минимальный отрезок последовательности, после которого числа начинают повторяться, называется ее периодом. Так как линейный конгруэнтный генератор определяется только одним предыдущим значением, достаточно отследить, когда впервые появиться число равное x(0), этот отрезок последовательности и будет периодом.

Все числа выходной последовательности можно перевести в двоичную систему счисления и записать подряд, тогда мы получим двоичное представление выходной последовательности. Разбивая двоичную последовательность по восемь бит, получим однобайтовое представление, по 16 бит – двухбайтовое и т.д.

Задание к лабораторной работе.

Реализуйте программу, решающую следующие задачи:

1. Выработка псевдослучайной последовательности с помощью линейного конгруэнтного генератора. Параметры и зерно генератора заданы в Вашем варианте.

2. Определение длины периода генератора в битах.

3. Определение количества четных и нечетных чисел в одном периоде при однобайтовом представлении выходной последовательности.

4.Определение количества нулей и единиц в одном периоде при битовом представлении выходной последовательности.

Примечания.

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

Варианты.

a c m x(0)
1-1        
1-2        
1-3        
1-4        
1-5        
1-6        
1-7        
1-8        
1-9        
1-10        
1-11        
1-12        
1-13        
1-14        
1-15        
1-16        
1-17        
1-18        
1-19        
1-20        
1-21        
1-22        
1-23        
1-24        
1-25        

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

«Регистр сдвига с линейной обратной связью»

Основные сведения.

Регистр сдвига с линейной обратной связью представляет собой ячейку памяти из m бит [ am-1am-2…a0 ]. Работа регистра сдвига определяется характеристическим многочленом

F(x)=1+f1x+f2x2+…+fmxm.

Один такт работы регистра при переходе от момента времени t к моменту времени t+1 определяется соотношениями:

gt=a0, a0(t+1)=a1(t), a1(t+1)=a2(t), …, am-2(t+1)=am-1(t), am-1(t+1)=f1a0(t)Åf2a1(t)Å…Åfmam-1(t).

gt – очередной член выходной последовательности. Начальное заполнение регистра может быть любым. Через некоторое количество шагов последовательность начинает повторяться, то есть последовательность является периодической. Максимально возможный период 2m-1 присущ только регистрам с примитивным характеристическим многочленом. Если в характеристическом многочлене fm=0, то период начинает проявляться не сразу. В этом случае есть некоторый уникальный отрезок последовательности в начале, после которого начинается периодическая последовательность.

Задание к лабораторной работе.

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

2. Сгенерируйте псевдослучайную последовательность с помощью реализованного регистра и определение длину периода генератора в битах.

3. Определите количество четных и нечетных чисел в одном периоде при однобайтовом представлении выходной последовательности.

4.Определите количество нулей и единиц в одном периоде при битовом представлении выходной последовательности.

Примечания.

1. Линейный регистр сдвига должен быть реализован в виде однобайтовой целочисленной переменной без знака.

2. Младший бит представляет собой остаток от деления на 2 (%2).

3. Сдвиг вправо всех битов может быть осуществлен делением на 2 (/2).

4. Для получения n-го бита необходимо выполнить побитовое И с 2n (&).

5. Для сдвига бита на k разрядов влево число необходимо умножить на 2k.


Варианты.

F(x)
2-1 1+x+x3+x8
2-2 1+x+x4+x8
2-3 1+x+x5+x8
2-4 1+x+x6+x8
2-5 1+x+x7+x8
2-6 1+x+x8
2-7 1+x2+x3+x8
2-8 1+x2+x4+x8
2-9 1+x2+x5+x8
2-10 1+x2+x6+x8
2-11 1+x2+x7+x8
2-12 1+x2+x8
2-13 1+x+x2+x3+x8
2-14 1+x+x2+x4+x8
2-15 1+x+x2+x5+x8
2-16 1+x+x2+x6+x8
2-17 1+x+x2+x7+x8
2-18 1+x+x2+x8
2-19 1+x+x3+x4+x8
2-20 1+x+x3+x5+x8
2-21 1+x+x3+x6+x8
2-22 1+x+x3+x7+x8
2-23 1+x+x3+x8
2-24 1+x2+x3+x4+x8
2-25 1+x2+x3+x5+x8

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

«Шифр гаммирования»

Основные сведения.

Поточные шифры гаммирования выполняют шифрование путем наложения байта случайной гаммы на байт открытого текста и выполнения побитовой операции XOR. Если выходная гамма ГПСП:

g=g1g2…gn

А открытый текст:

M=p1p2…pn,

То байты шифртекста

C=c1c2…cn

Будут вычисляться по формуле

ci=piÅgi.

Задание к лабораторной работе.

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

2. Реализуйте программу, осуществляющую расшифрование текстового файла, зашифрованного в первом задании.


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

«Шифрование с открытым ключом. Алгоритм RSA»

Основные сведения.

Схема шифрования с открытым ключом по алгоритму RSA имеет следующий вид. Блок послания M представляется числом из интервала [0,n-1] и шифруется с помощью вычисления экспоненты

C = Me mod n.

Блок M восстанавливается с помощью той же операции, но с другой степенью

M = Cd mod n.

Здесь пара чисел (e,n) называется ключом зашифрования или открытым ключом, пара чисел (d,n) называется ключом расшифрования или секретным ключом.

В схеме RSA модуль n является произведением двух больших простых чисел p и q:

n = pq.

Числа e и d подбираются таким образом, чтобы

ed = 1 mod (p-1)(q-1).

При этом НОД(e,(p-1)(q-1))=1.

Тогда практически для любого M из множества [0,n-1]

Med mod n = M.

Для нахождения чисел e и d используется расширенный алгоритм Евклида.

Пусть a и b - целые числа, не равные одновременно нулю, и последовательность чисел

a>b>r1>r2>r3>…>rn

определена тем, что каждое rk - это остаток от деления предпредыдущего числа на предыдущее, а предпоследнее делится на последнее нацело, то есть

a=bq0+r1

b=r1q1+r2

r1=r2q2+r3

……

rk-2=rk-1qk-1+rk

……

rn-1=rnqn

Тогда НОД(a, b), наибольший общий делитель a и b, равен rn, последнему ненулевому члену этой последовательности.

Формулы для ri могут быть переписаны следующим образом:

r1=a+b(-q0)

r2=b-r1q1=a(-q1)+b(1+q1q0)

……

НОД(a,b)=rn=as+bt



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-11-19 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: