|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
28.10.2011, 05:42 | #1 |
Новичок
Джуниор
Регистрация: 28.10.2011
Сообщений: 1
|
Программа "шифр перестановки" на Pascal
Необходимо написать программу, которая позволяет зашифровывать и расшифровывать сообщение с помощью шифра перестановки. Если есть светлые умы, помогите люди добрые
|
28.10.2011, 08:25 | #2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Что такое шифр перестановки?
I'm learning to live...
|
28.10.2011, 11:04 | #3 | |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
Можно посмотреть хотя бы в Вики.
dual-core, Первое и важное соображение: в большинстве шифров (хотя есть отдельные извращенцы) перестановка происходит в пределах некоторого блока, причём сами блоки не переставляются местами. Соответственно, процедуры Decrypt/Encrypt проще всего описать как принимающие блок фиксированного размера. Базовая программа должна последовательно давать им эти блоки и получать обратно их изменёнными. Соответственно, последний кусок текста может быть меньше размера блока, классическое решение - "добить" его чем-нибудь (скажем, последовательностью "абвгдеёжз...") до нужного размера. Второе соображение: стоит сразу взять за правило, что у алгоритма шифрования есть ключ. Соответственно, Encrypt/Decrypt должны также принимать на вход объект ключа и производить перестановку, опираясь на него. Ключ, впрочем, может быть достаточно сложным объектом. Третье соображение: перестановка последовательности известной длины - это правило, по которому буквы переезжают с места на место. Одним из популярных вариантов задания перестановок является массив новых позиций (т.е. на первом месте стоит позиция, на которую переедет первый символ, на втором - позиция, на которую переедет второй и т.д.). Соответственно, если у нас есть входной массив длины n, массив перестановки длины n и (пустой) выходной массив длины n, выходной массив будет формироваться следующим образом: последовательно, для каждого элемента входного массива, взять соответствующий элемент массива перестановки (в котором записан новый индекс) и записать такое же значение в выходной массив по этому индексу. Четвёртое соображение: за ключ при этом можно взять сам массив перестановки. Для расшифровывания (не путать с дешифровкой) тогда есть два варианта - либо мы создаём два ключа, зашифровывания и расшифровывания, а сама процедура одна и та же, либо в процедуру расшифровывания передаётся тот же ключ, но вместо получения из массива перестановки элемента по тому же индексу, что и во входном массиве, каждый раз надо будет искать, по какому индексу в массиве перестановки находится число, равное нынешнему индексу. Проиллюстрирую. Первый вариант (размер блока n=11): Цитата:
Вопрос качества ключей, наверное, пока рассматривать не стоит. |
|
28.10.2011, 15:33 | #4 |
Форумчанин
Регистрация: 15.03.2011
Сообщений: 465
|
И что у вас не получается? Программа же не очень сложная!
Помог - жми на весы!
ByAlex89@mail.ru |
25.01.2013, 12:05 | #5 |
Новичок
Джуниор
Регистрация: 25.01.2013
Сообщений: 1
|
Здравствуйте Все. Помогите пожалуйста составить план курсовой работы на тему: "Реализация шифра простой перестановки с помощью языка программирования Pascal". Это для первого курса.
|
25.01.2013, 12:52 | #6 |
Старожил
Регистрация: 25.10.2011
Сообщений: 3,178
|
То есть?
1) Шифры (общие понятия). Шифры перестановки и замены. 2) Шифр простой замены (описание, теория). 3) Пример реализации. 4) Анализ устойчивости. 5) Заключение. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Паскаль.Программа "Верификация", "Кака бригадиру разделить заработанные деньги?".Сложные | Valik102 | Помощь студентам | 11 | 23.06.2009 15:30 |
Паскаль.Программа "Верификация", "Кака бригадиру разделить заработанные деньги?".Сложные | Valik102 | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 23.06.2009 09:11 |
Паскаль. 2 задачи (Программа "Верификация","КАК БРИГАДИРУ РАЗДЕЛИТЬ ЗАРОБОТАННЫЕ ДЕНЬГИ") | Valik102 | Помощь студентам | 3 | 20.05.2009 20:42 |
если пользователь наберет какой-то другой символ не "y" или "n" и нажмет enter, программа проигнорирует | skobets | Общие вопросы C/C++ | 2 | 03.06.2008 06:51 |