# Занятие 2. Современные концепции шифрования. ###### tags: `Cryptography and Steganography` ![](https://i.imgur.com/6ghNzSI.png) ## Основные методы шифрования Если разобрать операции шифрования данных, то мы можем обнаружить, что мы либо заменяем какие-то куски информации на другие по известному нам правилу, либо перемешиваем их так же по известному правилу. ![](https://i.imgur.com/6xBQdNn.png) ## Рождение современной криптографии После второй мировой войны в мире начала сильно развиваться математическая криптография, и одной из острых проблем была - обмена секретным ключём. Решение: Протокол Диффи-Хеллмана(правда протокол уязвим на MITM атаки, более подробно это было расмотренно на лекции, видеозапись которой вы можете просмотреть) ![](https://i.imgur.com/8cecBPE.png) ## Протокол Диффи - Хеллмана Демонстрация работы данного протокола ![](https://i.imgur.com/F0zXhMU.png) ## Из чего состоит современное шифрование Пояснения: Шифры - некие алгоритмы, манипуляции над данными, которые позволяют имея сведения о ключе как зашифровать данные, так и расшифровать их. Симметричные шифры - для которых процесс шифрования и дешифрования производится с помощью одного ключа. Ассиметричные шифры - это шифры, в которых для шифрования и расшифрования используются два разных ключа, причём эти ключи связанны между собой математически. Функции хэширования - функция, осуществляющая преобразование массива входных данных произвольной длины в выходную битовую строку установленной длины, выполняемое определённым алгоритмом. ЭЦП - Электронно Цифровая Подпись, некий алгоритм, позволяющий доказать авторство при отправки данных МАС - имитовставка, средство обеспечения имитозащиты в протоколах аутентификации сообщений с доверяющими друг другу участниками — специальный набор символов, который добавляется к сообщению и предназначен для обеспечения его целостности и аутентификации источника данных. CRC - Контроль целостности, класс алгоритмов, позволяющих контролировать целостность данных при манипуляции над ними. ![](https://i.imgur.com/5E9237H.png) ## Домашнее задание Написать на удобном вам языке программирования клиент сервер, который будет реализовывать рассмотренный в лекции протокол формирования ключа. `Удачи!!!`