Основы шифрования: шифр Цезаря
Шифрование превращает информацию в вид, который посторонние не смогут прочитать. На примере древнего шифра Цезаря знакомимся с понятиями ключа, шифрования и расшифровки.
Список тем (7 из 11)
Глава 1. Компьютерные сети
Глава 2. Информационная безопасность
Глава 3. Создание веб-страниц
Криптография — наука о шифровании для защиты информации. Шифрование — преобразование открытого текста по особому правилу в непонятный вид (шифртекст), а расшифровка — возвращение его к исходному. Чтобы правило шифрования не было постоянным, используется секретный ключ: прочитать текст может только тот, кто знает ключ.
Одним из древнейших шифров является шифр Цезаря, который римский полководец Юлий Цезарь применял в военных письмах. В нём каждая буква текста заменяется буквой, сдвинутой по алфавиту на заданное число позиций. Величина сдвига — ключ. Например, при ключе 3 буква A превращается в D, B — в E, а Z — в C, поэтому слово CAT превращается в FDW.
Для расшифровки буквы сдвигают в обратную сторону на то же число: если в слове FDW каждую букву вернуть на 3 позиции назад, получится CAT. В Python это можно записать с помощью функций ord() (код символа) и chr() (символ по коду): выражение chr((ord(ch) - 65 + key) % 26 + 65) сдвигает заглавную латинскую букву на key позиций. Операция % обеспечивает возврат из конца алфавита в начало.
Шифр Цезаря очень прост и легко взламывается: в латинском алфавите всего 25 ключей, и их можно перебрать. Кроме того, в языке одни буквы встречаются чаще других (в английском чаще всего E), поэтому с помощью частотного анализа шифр быстро вскрывается. Современные методы (AES, RSA) математически намного сложнее и применяются в банках и мессенджерах.
Главное
- Шифрование превращает открытый текст в шифртекст, расшифровка выполняет обратное.
- Ключ — секретное значение, необходимое для расшифровки.
- В шифре Цезаря каждая буква сдвигается по алфавиту на величину ключа.
- Шифр Цезаря прост и взламывается перебором или частотным анализом.
Практические задания
- Зашифруйте слово «INFORMATIKA» шифром Цезаря (ключ 3), затем расшифруйте результат и восстановите исходное слово.
- Дан шифртекст «KHOOR», известно, что ключ равен 3. Найдите исходное слово.
- Напишите на Python функцию
caesar(text, key), принимающую текст и ключ и сдвигающую только заглавные латинские буквы (остальные символы не меняются).
Вопросы для закрепления
Проверьте себя: сначала подумайте, потом откройте ответ.
1Что такое шифрование и расшифровка?Показать ответСкрыть ответ
Шифрование — превращение открытого текста в непонятный шифртекст, расшифровка — возврат шифртекста к исходному виду с помощью ключа.2Почему шифр Цезаря не считается надёжной защитой?Показать ответСкрыть ответ
Ключей очень мало (25), поэтому их можно перебрать, а также быстро вскрыть шифр частотным анализом.
Войдите на сайт
Слайды и PDF доступны только зарегистрированным пользователям: и просмотр, и скачивание. Вход бесплатный.
Войдите на сайт
Слайды и PDF доступны только зарегистрированным пользователям: и просмотр, и скачивание. Вход бесплатный.
Пройдено тем: 0 из 11
Войти и отметить