1. Создание простого шифра
- Цезарев шифр: Реализуйте шифрование и дешифрование текста с использованием простого сдвига по алфавиту.
- Шифр Виженера: Реализуйте более сложный шифр, который использует ключевое слово для шифрования текста.
2. Шифрование с использованием симметричных алгоритмов
- AES (Advanced Encryption Standard): Напишите программу, которая шифрует и дешифрует текст с использованием алгоритма AES. Можно использовать библиотеки на Python, такие как PyCryptodome.
- DES (Data Encryption Standard): Исследуйте старый, но классический алгоритм DES и реализуйте его для шифрования и дешифрования текста.
3. Асимметричное шифрование
- RSA: Реализуйте простую версию алгоритма RSA для шифрования и дешифрования сообщений. Объясните принципы работы с публичным и приватным ключами.
- Эллиптические кривые: Исследуйте базовые принципы шифрования на основе эллиптических кривых и продемонстрируйте простую реализацию.
4. Хеширование данных
- MD5/SHA-256: Напишите программу, которая генерирует хеш-суммы для данных. Объясните, как эти хеш-суммы используются для проверки целостности данных.
- Сравнение хеш-функций: Проведите исследование и сравните различные хеш-функции по скорости и безопасности.
5. Практическое применение криптографии
- Шифрование сообщений: Создайте приложение для безопасного обмена сообщениями, используя симметричное или асимметричное шифрование.
- Электронная подпись: Реализуйте простую систему для создания и проверки цифровых подписей.
6. Анализ и взлом шифров
- Анализ частот: Напишите программу для анализа частоты символов в зашифрованном тексте и используйте её для попытки взлома простых шифров, таких как Цезарев шифр.
- Brute-force атака: Реализуйте простую brute-force атаку на шифры с небольшим пространством ключей, такие как шифр Виженера.