Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера

Шифр Виженера

Калькулятор шифрует входной текст на русском языке шифром Виженера. Неалфавитные символы (пробелы, знаки препинания, цифры) — не преобразуются.

Так как Шифр Цезаря у нас уже есть, было бы логично дополнить его калькулятором, который шифрует/расшифровывает текст используя шифр Виженера.

Суть алгоритма шифрования проста. Шифр Виженера — это последовательность шифров Цезаря с различными значениями сдвига (ROTX — см. Шифр Цезаря). То есть к первой букве текста применяется преобразование, например, ROT5, ко второй, например, ROT17, и так далее. Последовательность применяемых преобразований определяется ключевой фразой, в которой каждая буква слова обозначает требуемый сдвиг, например, фраза ГДЕ ОН задает такую последовательность шифров Цезаря: ROT3-ROT4-ROT5-ROT15-ROT14, которая повторяется, пока не будет зашифрован весь текст сообщения.

Как повествует Википедия, шифр Виженера является шифром подстановки, то есть шифром, в котором каждая буква исходного текста заменяется буквой шифр-текста. Для вскрытия подобных шифров используется частотный криптоанализ.

Еще там можно прочитать про вариант шифра с бегущим ключом (running key), который был когда-то был невзламываемым. Этот вариант заключается в использовании в качестве ключа блока текста, равного по длине исходному тексту. Впрочем, и этот вариант, как оказалось, успешно поддается взлому. Проблема с бегущим ключом шифра Виженера состоит в том, что криптоаналитик имеет статистическую информацию о ключе (учитывая, что блок текста написан на известном языке) и эта информация будет отражаться в шифрованном тексте. Если ключ действительно случайный, его длина равна длине сообщения и он использовался единожды, то шифр Виженера теоретически будет невзламываемым, но такие системы уже относятся к классу систем одноразового кода, или одноразового шифр-блокнота (one-time pad). Они действительно не поддаются взлому, однако их практическое применение довольно затруднительно.

Источник

Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера

Ответ:

Если еще актуально:

1. Укажите, что такое информация с точки зрения компьютера:

последовательность 0 и 1

2. Укажите, как называют информацию, с которой работает компьютер:

данные

3. В какой науке информация рассматривается как содержание сообщения, передаваемого в форме знаков или сигналов?

теории информации

4. В кибернетике информация – это

содержание сигналов, передаваемых по каналам связи в системах управления

5. Кто из перечисленных учёных является основателем кибернетики?

Норберт Винер

6. Укажите, какая наука занимается изучением передачи наследственной информации от поколения к поколению через молекулы ДНК:

генетика

7. Укажите, в рамках какой науки информация рассматривается как содержание управляющих сигналов от мозга к мышечным тканям:

нейрофизиология

8. Укажите, какой философской теории информации не существует:

кибернетической

9.Согласно атрибутивной концепции, …

информация возникла вместе со Вселенной

10. Укажите, согласно какой философской концепции информация является свойством всего сущего, всех материальных объектов:

атрибутивной

11. Укажите, что из перечисленного не относится к пониманию информации в рамках функциональной концепции:

информационная деятельность присуща только человеку

12. Укажите, согласно какой философской теории информация существует лишь в человеческом сознании и человеческом восприятии:

антропоцентрической

13. Укажите, что из перечисленного не относится к свойствам информации:

подробность

14. Укажите, с каким видом информации не работает компьютер:

тактильным

15. Укажите, что в информатике подразумевают под понятием «язык»:

знаковую систему для представления и передачи информации

16. Укажите, какой из перечисленных языков не является естественным:

алгоритмический

17. Укажите, что понимают под кодированием информации:

процесс представления информации, удобный для её хранения и/или передачи

18. Укажите, для достижения какой цели не используется кодирование информации:

для поиска информации

19. Укажите, как называют действия по преобразованию информации в её первоначальную форму представления:

декодирование

20. Укажите, как называют быстрый способ записи устной речи:

стенография

21. Укажите, что из перечисленного не относится к характеристикам кода Морзе:

равномерный код

22. Укажите, как называют кодирование с целью засекречивания информации:

шифрование

23. Шифр Цезаря – это способ шифрования, при котором:

каждый символ исходного текста заменяется символом, находящимся на некотором постоянном числе позиций левее или правее него в алфавите

24. Укажите, что необходимо знать, для того чтобы восстановить сообщение, закодированное шифром Виженера:

Источник

Взлом шифра Виженера с помощью частотного криптоанализа

Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть картинку Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Картинка про Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера

На Хабре уже пару раз мелькали статьи о книге Чарльза Уэзерелла «Этюды для программистов». Перед вами фрагмент одного из самых интересных, на мой взгляд, этюдов — «Секреты фирмы», основной задачей в котором является взлом шифра Виженера. Не так давно я реализовал этот этюд, и в моей статье я расскажу о том, как я это сделал и что в итоге получилось.

Задача

Автор предлагает нам написать программу, которая позволит взломать шифр Виженера, а точнее, одну из его модификаций. Текст шифруется следующим образом. Составляется таблица, т. н. квадрат Виженера: сверху и по левому краю записывается алфавит, затем в первую строку помещается некоторая перестановка исходного алфавита, во вторую — эта же перестановка, циклически сдвинутая на одну позицию, и так далее. В результате мы получаем таблицу, которая сопоставляет каждой паре символов какой-то символ.

Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть картинку Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Картинка про Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера

Затем выбирается ключевое слово и многократно записывается под исходным текстом. Наконец, каждая пара (символ исходного текста; символ ключевого слова под ним) шифруется с помощью таблицы соответствующим этой паре символом. Например, фраза «звезда забега» будет зашифрована с помощью ключа «багаж» и приведенной выше таблицы так:

Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть картинку Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Картинка про Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера

Идея решения

Рассмотрим обратный квадрат Виженера, то есть таблицу, которая сопоставляет паре (символ зашифрованного текста; символ ключевого слова) символ исходного текста.

Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть картинку Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Картинка про Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера

Остается найти ключевое слово. Пусть нам известно, что длина ключевого слова — L символов. Тогда текст можно разбить на L групп, каждая из которых будет зашифрована с помощью одного символа ключевого слова, т. е. это будет шифр простой замены. При этом используемые перестановки алфавита будут отличаться лишь сдвигом, равным с точностью до знака дистанции между соответствующими символами ключевого слова. Используя методы частотного криптоанализа, мы сможем определить эти сдвиги.

Таким образом, программа будет состоять из трех частей:
1) Определение длины ключевого слова
2) Поиск ключевого слова
3) Поиск перестановки алфавита и расшифровка текста

Длина ключевого слова

Длину ключевого слова проще всего найти, используя метод индекса совпадений. Этот метод был предложен Уильямом Фридманом в 1922 году для взлома оригинального шифра Виженера, но он сработает и в нашем случае. Метод основан на том факте, что вероятность совпадения двух случайных букв в некотором достаточно длинном тексте (индекс совпадений) — это постоянная величина. Таким образом, если разбить текст на L групп символов, каждая из которых зашифрована шифром простой замены (напомню, это и означает, что L — длина ключевого слова), то индексы совпадений для каждой из групп будут довольно близки к теоретическому значению этой величины; для всех других разбиений индексы совпадений будут гораздо ниже. Индекс совпадений можно посчитать по формуле

Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть картинку Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Картинка про Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера
(fi — количество i-х букв алфавита в тексте, а n — его длина)

Ниже, например, приведены индексы совпадений для текста, зашифрованного с помощью ключа «проект» (6 символов).

Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть картинку Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Картинка про Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера

Таким образом, для определения длины ключевого слова нужно посчитать индексы совпадений для разбиения текста на L = 1, 2,… групп, а затем выбрать из полученных величин первую, значительно превосходящую большинство остальных. Но… тут есть небольшая хитрость. Что если текст зашифрован с использованием ключа, который можно разделить на несколько похожих частей? Снизу приведена таблица индексов совпадений для того же текста, что и в первом примере, но зашифрованного с помощью ключа «космос» (те же 6 символов). Как же определить длину ключа в таком случае?

Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть картинку Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Картинка про Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера

Я поиграл с различными способами и выяснил, что проще всего выбрать необходимый индекс так: нужно взять первый индекс, для которого справедливо: 1.06*ИС > ИСi, i = 1, 2,… Умножения на 1.06 в большинстве случаев хватает, чтобы настоящий ИС стал превосходить «кратные» ИС (в нашем примере это индексы при L = 12 и 18), но недостаточно для того, чтобы ложные индексы (при L = 3, 9 и 15) превзошли настоящие.

Конечно, мой способ не дает 100% результат. Более того, если текст зашифрован с помощью слова, состоящего из одинаковых частей (например, «тартар»), то длина ключевого слова в любом случае будет определена неверно (если, конечно, мы хотим найти осмысленное ключевое слово): нет никакой разницы между шифрованием ключом «тартар» и «тар». Поэтому важно дать пользователю возможность изменять длину ключа в ходе работы программы: к примеру, не подошла 6, значит, стоит попробовать 3 или 12.
К счастью, для зашифрованной записки из книги все определяется довольно просто. Взглянув на таблицу индексов совпадений, можно с уверенностью сказать, что длина ключевого слова — 7 символов.

Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть картинку Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Картинка про Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера

Ключевое слово

Найти само ключевое слово можно двумя способами. Первый способ — это найти наилучшую конфигурацию сдвигов, используя (только) полученную таблицу. Полный перебор занял бы очень много времени, поэтому я пошел другим путем. Я искал ключ следующим образом. Возьмем любое слово подходящей длины и вычислим его характеристику — сумму вероятностей сдвигов между каждыми двумя символами в нем (сдвиги между символами ключевого слова и между буквами перестановок в различных группах шифра совпадают с точностью до знака). Теперь внесем небольшое изменение в исследуемое слово. Если после изменения характеристика слова стала лучше, то мы запоминаем новое слово, в противном же случае забываем новое слово и возвращаемся к старому. Внося таким образом случайные изменения, мы довольно быстро найдем лучшее слово.

Проблема заключается лишь в том, что наилучшее слово далеко не всегда является ключевым. Тесты показали, что уже для текстов из 1024 символов ключ и лучшее слово зачастую различаются на один символ. Например, лучшее слово для записки из книги — «федиска». Не знаю я такого слова! Для более коротких текстов ключ определяется совершенно неверно. Поэтому от поиска ключа на основании только таблицы пришлось отказаться.

Второй способ поиска ключа простой и неинтересный, зато эффективный. Мы берем словарь и вычисляем характеристику каждого подходящего слова (для повышения скорости работы программы я разделил слова по их длинам). Лучшее слово мы берем в качестве ключевого. Такой метод работает корректно даже для коротких (400-500 символов) текстов, но у него есть очевидный недостаток: если ключевого слова нет в словаре, то программа ни при каких условиях не сработает верно.

Впрочем, если ключ в словаре есть, второй метод гораздо эффективнее первого. Поэтому в своей программе я использовал его. Этот метод сразу же дал правильное (как выяснилось позднее) ключевое слово — «редиска».

Перестановка алфавита

Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть картинку Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Картинка про Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера
(b_ij — количество биграмм в «расшифрованном» тексте, а p_ij — вероятность встречи определенной биграммы в русском языке)

Затем будем вносить случайные изменения в таблицу соответствий и на каждом шаге вычислять новую характеристику. Если новая характеристика оказывается лучше (больше) старой, запоминаем изменения, иначе откатываем их. В результате у нас получается правильная таблица соответствий букв, и мы можем восстановить исходный текст!

Насколько быстро работает этот алгоритм поиска перестановок? Ниже приведен график зависимости характеристики перестановок от числа итераций для зашифрованной записки из книги (для других текстов графики получаются аналогичными). На горизонтальной оси откладывается число итераций, на вертикальной — характеристика полученного текста. Изменения характеристики происходят рывками при каждом нахождении лучшей таблицы, поэтому для наглядности график представляет из себя интерполированные точки, в которых происходили изменения. Когда линия графика становится прямой и горизонтальной, правильная таблица перестановок найдена.

Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть картинку Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Картинка про Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера

Также интересно взглянуть на графики зависимости номера итерации от номера успешного изменения таблицы перестановок (слева) и характеристики текста от номера изменения таблицы (справа).

Мы видим, что характеристика текста изменяется с каждым изменением таблицы перестановок более-менее линейно, а число попыток, необходимых для нахождения нового успешного изменения таблицы растет довольно быстро. Зависимость характеристики текста от числа итераций похожа на логарифмическую. Действительно, по нижним графикам видно, что если x — число итераций, y — характеристика и t — номер успешного изменения таблицы, то x∼e^t, y∼t, следовательно, y∼ln(x). Логарифм растет довольно медленно, но его рост не ограничен асимптотами, поэтому на нахождение правильной таблицы соответствий уходит довольно большое, но не бесконечное количество работы. Впрочем, тесты показывают, что 10 — 12 тысяч итераций всегда достаточно.

Заключение

После реализации описанных алгоритмов и добавления графического интерфейса получилась вот такая программа:

Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть картинку Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Картинка про Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера

Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть картинку Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Картинка про Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера

Программа успешно расшифровывает тексты длиной 400-500 символов и больше, время работы не превышает 10 секунд. Я думаю, это неплохой результат.

Источник

Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера

Шифр Виженера ( фр. Chiffre de Vigenère ) — метод полиалфавитного шифрования буквенного текста с использованием ключевого слова.

Этот метод является простой формой многоалфавитной замены. Шифр Виженера изобретался многократно. Впервые этот метод описал Джован Баттиста Беллазо (итал. Giovan Battista Bellaso ) в книге La cifra del. Sig. Giovan Battista Bellasо в 1553 году, однако в XIX веке получил имя Блеза Виженера, французского дипломата. Метод прост для понимания и реализации, он является недоступным для простых методов криптоанализа.

Описание

Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть картинку Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Картинка про Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера

В шифре Цезаря каждая буква алфавита сдвигается на несколько строк; например в шифре Цезаря при сдвиге +3, A стало бы D, B стало бы E и так далее. Шифр Виженера состоит из последовательности нескольких шифров Цезаря с различными значениями сдвига. Для зашифровывания может использоваться таблица алфавитов, называемая tabula recta или квадрат (таблица) Виженера. Применительно к латинскому алфавиту таблица Виженера составляется из строк по 26 символов, причём каждая следующая строка сдвигается на несколько позиций. Таким образом, в таблице получается 26 различных шифров Цезаря. На каждом этапе шифрования используются различные алфавиты, выбираемые в зависимости от символа ключевого слова. Например, предположим, что исходный текст имеет вид:

Человек, посылающий сообщение, записывает ключевое слово (« LEMON») циклически до тех пор, пока его длина не будет соответствовать длине исходного текста:

Первый символ исходного текста A зашифрован последовательностью L, которая является первым символом ключа. Первый символ L шифрованного текста находится на пересечении строки L и столбца A в таблице Виженера. Точно так же для второго символа исходного текста используется второй символ ключа; то есть второй символ шифрованного текста X получается на пересечении строки E и столбца T. Остальная часть исходного текста шифруется подобным способом.

Расшифровывание производится следующим образом: находим в таблице Виженера строку, соответствующую первому символу ключевого слова; в данной строке находим первый символ зашифрованного текста. Столбец, в котором находится данный символ, соответствует первому символу исходного текста. Следующие символы зашифрованного текста расшифровываются подобным образом.

Если буквы A-Z соответствуют числам 0-25, то шифрование Виженера можно записать в виде формулы:

Источник

Шифр Виженера. Разбор алгоритма на Python

Недавно захотелось вспомнить свое «шпионское» детство и хотя бы базово изучить разные методы шифрования. И первым выбор пал на шифр Виженера. Сам по себе он не является чрезвычайно сложным, но достаточно долго считался криптоустойчивым. Века эдак с XV и к самому XIX, пока некто Казиски полностью не взломал шифр.
Однако ограничим цитирование Википедии только описанием самого алгоритма.

Метод является усовершенствованным шифром Цезаря, где буквы смещались на определенную позицию.
Шифр Виженера состоит из последовательности нескольких шифров Цезаря с различными значениями сдвига.

Допустим у нас есть некий алфавит, где каждой букве соответствуют цифры:

Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть картинку Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Картинка про Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера

Тогда если буквы a-z соответствуют числам 0-25, то шифрование Виженера можно записать в виде формулы:

Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть картинку Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Картинка про Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера

Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Смотреть картинку Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Картинка про Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера. Фото Укажите что необходимо знать для того чтобы восстановить сообщение закодированное шифром виженера

По сути нам больше ничего и не нужно кроме двух этих формул и мы можем приступить к реализации.

Тут хочу сказать, что я постарался реализовать алгоритм не проще и изящнее, а наиболее понятно и развернуто.
Собственно приступим-с.

Закодируем слова ‘Hello world’ с хитрым ключом ‘key’.

Сначала необходимо создать словарь символов, которые будут участвовать в шифровании:

Дальше необходимо сопоставить буквы в нашем слове с буквами в словаре и присвоить им соответствующие числовые индексы

И так мы закодировали наше слово и ключ и получили 2 списка индексов:
Value= [72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]
Key = [107, 101, 121]

Дальше мы сопоставляем индексы ключа с индексами нашего слова функцией full_encode():

Получаем наш индексы шифра и переводим их в строку функцией decode_val():

Индексы: [52, 75, 102, 88, 85, 26, 99, 85, 108, 88, 74]

Получаем закодированное суперсекретное послание: 4KfXUcUlXJ

Раскодировать же все это можно с помощью функции full_decode(), первым аргументом которой есть список числовых индексов шифра, а вторым — список индексов ключа:

Все так же получаем индексы шифра и переводим их в строку уже знакомой функцией decode_val():
[72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]
И вуаля! Наше зашифрованное слово: Hello world

Ну и главный вызов

В статье постарался все описать так чтобы было максимально понятно даже для самого начинающего в Python. Хотя данный алгоритм шифрования больше не является на 100% надежным, однако он хорошо подойдет для тех кто стал на путь изучения более серьезных вещей, например того же RSA.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *