Практикум охватывает следующие темы:
1. Разработка клиент-серверных приложений, обеспечивающих защищенный обмен данными
2. Разработка защищенного чата с GUI для общения множества клиентов

Задание 1
Разработать клиент-серверные консольные приложения с использованием языка программирования C#, обеспечивающие защищенную передачу данных от клиента к серверу. При этом
– для выполнения задания рекомендую ознакомиться с теорией и веткой форума;
– в качестве алгоритма шифрования следует выбрать DES;
– открытые данные должны вводиться пользователем в консоли клиентского приложения и передаваться серверу в зашифрованном виде;
– принятые закрытые данные и результат их расшифрования сервером должны отображаться в консоли серверного приложения;
– для задания секретного ключа и вектора инициализации следует применить методы Key и IV класса SymmetricAlgorithm соответственно. Ниже показан пример такой реализации:

SymmetricAlgorithm des = new DESCryptoServiceProvider();
des.Key = Encoding.ASCII.GetBytes("12345678");
des.IV = Encoding.ASCII.GetBytes("12345678");


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

Задание 3
Разработать защищенный чат с GUI для общения множества клиентов централизованно через сервер. При этом для шифрования канала передачи данных следует использовать криптографический алгоритм AES.
Для реализации задания можно воспользоваться следующими материалами:
MultiClient/Server GUI Application (презентация и пояснения на русском языке);
C# Chat: Part 1 Building the Chat Client;
C# Chat: Part 2 Building the Chat Server.