12.2. Шифр простой подстановки
12.2. Шифр простой подстановки
В шифре простой подстановки производится замена каждой буквы сообщения некоторым заранее определенным символом (обычно это также буква). В результате сообщение, имеющее видМ = т1т2 тЗт4…, где т1, тп2…. – последовательность букв, переходит в сообщение вида Е = е1е2еЗе4… = f(m1)f(m2)f(m3)f(m4)…, причем функция f(m) имеет обратную функцию g, для которой верно g(f(m)) = m, при всех возможных значениях т. В данном шифре ключом является просто перестановка алфавита (это верно в том случае, если буквы заменяются буквами). Например, подобная перестановка: ЛРЭИБПВЪДЁЗЩЙГХМЦАУОСЖТЯФКЕШНЫЬЧЮ. Она используется следующим образом:
• буква А открытого текста заменяется буквой Л;
• Б заменяется Р;
• В заменяется Э и т. д.
Как можно понять из определения, данный шифр является довольно простым. Перейдем к примеру, показывающему одну из возможных его реализаций. Для этого нам понадобится создать новое приложение, а на форму поместить следующие компоненты: по два компонента классов ТМето и TLabel с соответствующими именами mmDecryptMessage, mmEncryptMessage, IbDecryptMessage, IbEncryptMessage, три компонента класса TButton – btnEncryptMessage, btnDecpyptMessage, btnGenRearrangement, а также один компонент класса TValueListEditor – vleSubst. По умолчанию все перечисленные компоненты находятся на вкладке Standard, кроме компонента класса TValueListEditor, который расположен на вкладке Additional Когда вы закончите создание интерфейса программы, то у вас получится нечто подобное тому, что изображено на рис. 12.1.
Рис. 12.1. Интерфейс программы «Шифр простой подстановки»
Текстовый редактор mmDecryptMessage будет служить для ввода и отображения открытого текста нашего сообщения, mmEncryptMessage – для текста, преобразованного при помощи шифра. Редактор значений vleSubst мы будем использовать для задания перестановки алфавита, при помощи которой будет шифроваться и дешифроваться текст сообщения. Кнопка btnEncryptMessage будет отвечать за шифрование сообщения из текстового peflaKTopammDecryptMessage и помещение результата в mmEncryptMessage. Кнопка btnDecpyptMessage предназначена для противоположных действий. Последняя кнопка btnGenRearrangement будет служить для генерации случайной перестановки алфавита, чтобы не утруждать себя ее вводом вручную. Необходимо добавить обработчики событий Onclick для каждой из кнопок и обработчик события OnCreate для формы (он нужен для инициализации редактора значений vleSubst).
Теперь стоит оговориться, что программа будет шифровать и дешифровать только русский текст, отставляя неизменным все остальное. Далее рассмотрим исходный код нашей программы.
Первым делом нужно ввести необходимые типы для лучшего понимания написанного кода, а также следует соответствующим образом объявить класс формы. Как это сделать, показано в листинге 12.1.Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
5.7.5 Арифметичеcкие подстановки (Arithmetic Expansion)
5.7.5 Арифметичеcкие подстановки (Arithmetic Expansion) Арифметические подстановки позволяют вычислить значение арифметического выражения и подставить вместо него результат. Существует две формы задания арифметических подстановок:$[expression]$((expression)), где expression трактуется так, как
8.2. Подстановки
8.2. Подстановки Кроме подстановки обычных переменных (п.3.4.4) и раскрытия шаблонов имен файлов (п.3.4.5), оболочка bash умеет выполнять еще и такие подстановки:? Подстановка тильды:~ заменяется на имя домашнего каталога пользователя, запустившего сценарий;~+ заменяется на путь к
R.16.3.3 Повторный просмотр и дальнейшие подстановки
R.16.3.3 Повторный просмотр и дальнейшие подстановки После того, как в строке замены произошла подстановка всех параметров макровызова, получившаяся строка просматривается повторно для обнаружения дополнительных макроопределений. Если в процессе повторных просмотров
12.5.3. Алгоритмы удаления и подстановки
12.5.3. Алгоритмы удаления и подстановки Рассмотрим последовательность из трех символов: {a,b,c}. Для нее существует шесть различных перестановок: abc, acb, bac, bca, cab и cba, лексикографически упорядоченных на основе оператора “меньше”. Таким образом, abc – это первая перестановка,
Пример 10-6. Создание списка аргументов в цикле for с помощью операции подстановки команд
Пример 10-6. Создание списка аргументов в цикле for с помощью операции подстановки команд #!/bin/bash# уЩЫЬ for гЯ [гаЩгЫЯЭ], гЯкФСЮЮйЭ г аЯЭЯниР аЯФгдСЮЯзЫЩ ЫЯЭСЮФ.NUMBERS="9 7 3 8 37.53"for number in `echo $NUMBERS` # for number in 9 7 3 8 37.53do echo -n "$number "doneecho exit 0Более сложный пример использования подстановки
12.4. Шифр Виженера и его варианты
12.4. Шифр Виженера и его варианты Ключ в шифре Виженера задается набором из п букв. Такие наборы подписываются с повторением под текстом сообщения, и полученные две последовательности складываются по модулю т, где т – количество букв в рассматриваемом алфавите (например,
12.5. Шифр с автоключом
12.5. Шифр с автоключом Шифр, основывающийся на шифре Виженера, в котором или само сообщение, или результирующая криптограмма используются в качестве ключа, называется шифром с автоключом. Шифрование начинается с помощью «первичного ключа» (который является настоящим
Создание и использование полей подстановки
Создание и использование полей подстановки В ряде случаев поле может включать лишь определенные значения, которые иногда содержатся в заранее заданном списке, а иногда – в самом поле, вместе с произвольно вводимыми данными. Бывают ситуации, когда ввод данных можно
Шифр Цезаря
Шифр Цезаря Крайне простой пример симметричного шифрования — это подстановочный шифр. Подстановочный шифр заменяет каждую часть информации другой информацией. Чаще всего это достигается смещением букв алфавита. Пара примеров — это Секретное кольцо-декодер капитана
Создание подстановки из фиксированного набора значений
Создание подстановки из фиксированного набора значений После ввода нескольких записей в таблицу Заказы становится ясно, что в поле СостояниеЗаказаприходится вводить одни и те же значения. Для упрощения ввода данных в это поле можно создать еще одну связанную таблицу,
Глава 3. Логарифмические подстановки
Глава 3. Логарифмические подстановки В этой главе давайте отложим в сторону лирические и понятные всем отступления про обстановку в стране в то время. Мои рассуждения об этом субъективны, кто-то может соглашаться с ними, кто-то, наоборот, считать те времена образцом для