Главная страница

Конструирование программ работа 1. Конструирование_программ_Лабораторная_1. Булевы преобразования двоичных последовательностей


Скачать 92.49 Kb.
НазваниеБулевы преобразования двоичных последовательностей
АнкорКонструирование программ работа 1
Дата26.10.2022
Размер92.49 Kb.
Формат файлаdocx
Имя файлаКонструирование_программ_Лабораторная_1.docx
ТипОтчет
#756543

МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра ИС


отчет

по лабораторной работе №1

по дисциплине «Конструирование программ»

Тема: Булевы преобразования двоичных последовательностей


Студент гр.




Преподаватель





Санкт-Петербург

2022


Цель работы:

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

Порядок выполнения работы:

  • Прочитайте теоретический материал и выполните все упражнения.

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

  • Возьмите две пятиразрядные двоичные последовательности А1 и А2 и некоторую также пятиразрядную последовательность В. Найдите функцию F, которая из любой последовательности А1 и А2 строит одну последовательность В. Проверьте результат с использованием компьютера.

  • Возьмите любую ненулевую четырехразрядную последовательность А и задайтесь некоторой функцией F. На компьютере найдите последовательность В = F(A). Используя методику, изложенную в теоретическом разделе, вручную найдите функцию F’, которая из В восстанавливает А, т.е. A = F(B). Проверьте результат на компьютере.

  • Подсчитайте количество, а затем выпишите все ненулевые не связанные сдвигом последовательности длины 4. Выберите произвольно три из них, например, A1,A2,A3. Найдите функцию F, которая из последовательности A1 строит последовательность A2, из A2 строит A3, а из A3 опять A1, т.е. A2 = F(A1), A3 = F(A2), A1 = F(A3). Проверьте результат на компьютере.

  • Предложите 3 варианта использования Теоремы и ее следствий (приведенных в теоретической части) для защиты информации в компьютерных сетях.

  • Оформите отчет.


Выполнение заданий:


  1. Возьмём последовательность 101 и функцию 0+!1*(2#3)+4.



0

1

2

3

4

⌐1

2#2

!1*(2#3)

0+!1*(2#3)+4

0

0

1

0

1

1

1

1

1

0

1

0

1

0

0

1

0

0

1

0

1

0

0

1

1

1

1





  • По ручным расчётам вышла последовательность 101, программа посчитала 101. Результаты совпадают.




Функция - 1*2+(3#4)*!5*6+7#8+!9, последовательности A1 и A2 – 10110 и 10001, последовательность В – 11111

0

1

2

3

4

5

6

7

8

0*1+(2#3)*!4*5+6#7+!8

0

0

0

0

1

0

1

1

0

1

0

0

0

1

0

1

1

0

0

1

0

0

1

0

1

1

0

0

0

1

0

1

0

1

1

0

0

0

0

1

1

0

1

1

0

0

0

0

0

1


0

1

2

3

4

5

6

7

8

0*1+(2#3)*!4*5+6#7+!8

0

0

0

0

1

0

0

0

1

1

0

0

0

1

0

0

0

1

0

1

0

0

1

0

0

0

1

0

0

1

0

1

0

0

0

1

0

0

0

1

1

0

0

0

1

0

0

0

0

1





  • Результаты совпали.


  1. Последовательность А – 1100, функция(F) – 0#1+!2+3*4*5*6, последовательность F(A)=В – 1111, обратная функция A=F(B)-0*1+2*3+4*5*6


4. Всего 8 таких функций
Функция – 0*1+2+3, А1 – 1110, А2 – 1100, А3 – 1111

F(A1) =A2, F(A2) =A3, F(A3) =A1






5.

1) А и В знают булеву функцию F. А передает в некоторую последовательность А1 и оба вырабатывают общий ключ F(A1) = A2 = K1, после однократного применения которого ключ уничтожается. Затем с помощью этой же функции А и В вырабатывают новый ключ K2 = F(A2) и т.д. Последовательность А1 может быть стандартной, например, 101010101010101… и вообще не передаваться по открытому каналу.

2) Булевы преобразования могут использоваться для проверки пароля. Так, если А отправляет В запрос А1, а В отвечает на него В1 = F(A1), то активный перехватчик даже зная А1 и В1 не может однозначно восстановить функцию F, поэтому маскируясь под «своего» на запрос А2 ответит результатом преобразования другой функцией F’ (A2)  F(A2). Каждый клиент банка снабжен несколькими паролями. Подписывая свое сообщение любым из них, клиент может быть уверен, что банк определит - от кого пришло сообщение.

3) Все клиенты банка разбиваются на группы, клиенты каждой группы получают свои различные пароли. Банк может определить принадлежность клиента к группе.

Представляется важным найти класс нетривиальных функций F, при которых уравнение F(X) = B разрешимо относительно вектора X(x1,x2,…,xn) при любых значениях эле-ментов вектора В (b1,b2,…,bn). Снабдив такой функцией F официального получателя сообщений, можно по исходному тексту B1, B2, B3… вычислять криптотекст x1, x2, x3…, который и передавать по открытому каналу. Официальный получатель, используя функцию F, восстановит исходное сообщение, так как B1= F(X1), B2= F(X2), B3 = F(X3) …

Нелегальный перехватчик сообщения, даже зная пары Bi и Xi, не сможет восстановить функцию F.
Вывод:

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


написать администратору сайта