Упомянутый тест на неприводимость можно заменить более быстрым альтернативным тестом: многочлен
над полем F= является неприводимым тогда и только тогда, когда , и для всех простых делителей k степени n.Пример. Показать неразложимость многочлена
над полем F2={0,1}.В данном случае, n=3, q=2. Для вычисления
поделим столбиком на и найдем остаток: . Остаток равен x. Простым делителям числа n=3 являются только k=1, поэтому остается только проверить, что . Для этого делим первый многочлен на второй и находим остаток . Теперь по алгоритму Евклида .Упражнение 1. Являются ли неприводимыми над полем F2={0,1} трехчлены
, , , , ?Упражнение 2. Найдите все неприводимые многочлены третьей степени над полем F2.
Упражнение 3. Определите периоды линейных сдвиговых регистров с обратной связью, построенных на основе неприводимых трехчленов, найденных в предыдущих упражнениях.
Упражнение 4. Какой степени должен быть многочлен, чтобы длины порождаемой им им последовательности бит хватило для кодирования сообщения длины 1 гб?
Упражнение 5. Написать программу на каком-нибудь языке программирования, проверяющую является ли заданный многочлен неприводимым над конечным полем F.
Лабораторная работа №3.
Название работы. Разработка клиент-серверного приложения в Delphi.
Цель работы: Изучить современные средства создания клиент-серверных приложений в системе Delphi. Научиться практической работе по организации и решению задач информационной безопасности в сети.
Задание на лабораторную работу. 1. Разработать, используя среду программирования Delphi клиент-серверное приложение для двустороннего обмена информацией между компьютерами в сети. Выполнить пробную передачу и прием данных.
2. Выработать секретный ключ по протоколу Диффи-Хелмана.
3. Провести аутентификацию пользователей по «слово-вызов».
Требования к выполнению задания. Клиентское приложение должно содержать форму, на которой содержатся поля для ввода IP-адреса компьютера – сервера, поле для ввода информации, передаваемое на сервер и поле для получения информации, возвращаемой с сервера.
Приложение должен содержать кнопки Старт/Стоп для запуска и остановки сервера, поле для вывода информации, передаваемой с сервера, и поля для вывода информации, передаваемой клиентами.
Приложение также должно содержать генератор ключей для протокола Диффи-Хелмана и вычисления секретного ключа.
При сдаче необходимо установить клиентскую часть на один компьютер, а серверную часть приложения на другой компьютер, и продемонстрировать диалог обмена данными.
Программно-аппаратные средства. Компьютерная лаборатория, состоящая из компьютеров, соединенных в локальную сеть, пакет Delphi 7 (Delphi 2005).
Задание на лабораторную работу
1. Изучить теоретический материал по данной лабораторной работе.
2. Ознакомиться с указаниями по программированию в на языке Pascal в среде Delphi.
3. Разработать программный комплекс, представляющий собой клиент-серверное приложение в среде Delphi, осуществляющее передачу данных между двумя хостами в сети.
4. Выполнить пробное шифрование/расшифровку данных, передаваемых по сети в рамках компьютерного класса. Вставить в отчет полученные данные, описать методику выполнения задания.
5. Ответить на контрольные вопросы в конце задания.
Рассмотрим процедуры создания приложений для обмена сообщениями в сети по протоколам TCP/IP.
Разработка ТСР-сервера в Delphi.
1. Нанесем на форму Delphi компоненту TidServer с вкладки IndyServer.
2. В его свойстве Bindings укажем IP-адрес данного компьютера и номер порта, на котором сервер будет ожидать вызова от клиента (номер порта – произвольное число от 1 до 65767, но желательно использовать номера выше 1024, т.к. порты с меньшими номерами зарезервированы для стандартных служб),
3. В свойстве MaxConnections укажите 5 (максимальное число соединений к серверу), в свойство Default Port запишите значение порта по умолчанию, а в свойство Active запишите true.
4. Добавьте на форму элемент типа TMemo для вывода в него сообщений, полученных от клиента,
5. При вызове клиента вырабатывается событие OnExecute элемента IdServer1. Для его обработка откройте вкладку Events Инспектора объектов и щелкните дважды в поле процедуры OnExecute.
6. В открывшей процедуре введите следующий код:
Procedure TForm1.IdTCTServer1Execute(Athread:TidPeerConnection);
Begin
with Athread.Connection do
begin
Memo1.Lines.Add(CurrentReadBuffer);
Writeln(‘Сообщение получено’);
Disconnect;
end;
End;
Приложение TCT-клиент в Delphi.
1. Нанесите на форму элемент TidTCPClient с панели IndyClient, два элемента типа Tedit для ввода сообщений серверу и получения ответа, и кнопку TButton.
2. В свойстве Host элемента TidTCPClient укажите IP-адрес сервера, а в свойстве Port задайте номер порта (тот же, что у сервера).
3. Щелкните дважды по элементу Button1 и в появившемся окне введите следующий код:
Procedure TForm1.Button1click(Sender: TObject);
Begin
IdTCPClient1.Connect;
IdTCPClient1.Writeln(Edit1.Text);
Edit2.Text:= IdTCPClient1.ReadLn;
IdTCPClient1.Disconnect;
End;
4. Добавьте код функции MD5, взятый из описания лабораторной работы №3.
5. Запустите оба приложения и протестируйте полученную программу.
1. На какой вкладке Delphi находятся компоненты для создания клиент-серверного приложения?
2. Какие основные свойства надо установить в компоненте Indy Server?
3. Какие основные свойства надо установить в компоненте Indy Client?
4. Какой протокол используют компоненты Indy Server и Indy Client для установления связи по локальной сети? Можно ли использовать приложение в сети Интернет?
Название работы. Решение в локальной сети задачи аутентификация пользователей.
Цель. Ознакомиться с основными алгоритмами аутентификации пользователей в сети, электронно- цифровой подписи, сертификации. Разработать комплекс программ в Delphi для пересылки и проверки идентификаторов пользователей, решения задачи распределения секретного ключа, идентификации посланий на основе электронно- цифровой подписи и сертификатов.
Программно-аппаратные средства. Компьютерная лаборатория, состоящая из компьютеров, соединенных в локальную сеть, пакет Delphi 7 (Delphi 2005).
Задание на лабораторную работу
1. Изучить теоретический материал по данной лабораторной работе.
2. Разработать программный комплекс в среде Delphi генерации параметров метода RSA и пересылки (публикации) открытого ключа в сети.
3. Реализовать алгоритм генерации электронно- цифровой подписи с использование закрытого ключа метода RSA и функции хеширования MD5.
4. Реализовать алгоритм проверки электронно- цифровой подписи с использование открытого ключа метода RSA и функции хеширования MD5.
5. Выполнить пробную пересылку данных в рамках локальной сети компьютерного класса, снабженных ЭЦП. Вставить в отчет полученные данные, описать методику выполнения задания.
6. Ответить на контрольные вопросы в конце задания.
Одной из наиболее важных служб безопасности является аутентификация. Аутентификация – это подтверждение пользователем информационных услуг своего идентификатора. Аутентификация выполняется с помощью разных методов, из которых простейшим является предъявления пользователем серверу секретного слова – пароля, известного только пользователю и серверу.
Хеш-функции
Хеш-функции играют в информационной защите важную роль, создавая для электронного документа его «моментальный снимок» и тем самым защищая документ от дальнейшей модификации или подмены.
В широком смысле функцией хеширования называется функция H, удовлетворяющая следующим основным свойствам:
1. Хеш-функция Н может применяться к блоку данных любой длины.
2. Хеш-функция Н создает выход фиксированной длины (равно, например, 128 бит для классической функции хеширования MD5, и 160 бит для функции SHA1).
3. Н (М) вычисляется относительно быстро (за полиномиальное время от длины сообщения М).