Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.10.2007, 14:00   #1
Light69
 
Регистрация: 18.10.2007
Сообщений: 6
По умолчанию Метод Вижинера

Необходимо разработать Delphi проект шифрования данных методом Вижинера. Алфавит - все русские буквы. Предусматреть автоматическую передачу фокуса и очистку ресурсных полей после выполнения программы.
Выполнить шифрование вручную ждля тестового примера: исходный текст - "Конфигурация", ключ - "Ключ"
Вот такое непростое задание. Мыслей, как деласть вообще ноль, даже не могу себе предстваить,как форма выглядит! ПОМОГИТЕ ПОЖАЛУЙСТА!!!
Light69 вне форума Ответить с цитированием
Старый 18.10.2007, 14:40   #2
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Light69 Посмотреть сообщение
Необходимо разработать Delphi проект шифрования данных методом Вижинера. Алфавит - все русские буквы. Предусматреть автоматическую передачу фокуса и очистку ресурсных полей после выполнения программы.
Выполнить шифрование вручную ждля тестового примера: исходный текст - "Конфигурация", ключ - "Ключ"
Вот такое непростое задание. Мыслей, как деласть вообще ноль, даже не могу себе предстваить,как форма выглядит! ПОМОГИТЕ ПОЖАЛУЙСТА!!!
Вы хотя бы расскажите, в чем суть этого метода Вижинера. Я в последний раз учился очень давно - не перерывать же весь интернет, чтобы вам помочь...
mihali4 вне форума Ответить с цитированием
Старый 18.10.2007, 14:49   #3
AlDelta
Реанимируюсь...
Участник клуба
 
Аватар для AlDelta
 
Регистрация: 19.07.2007
Сообщений: 1,445
По умолчанию Схема шифрования Вижинера.

Таблица Вижинера представляет собой квадратную матрицу с n^2 элементами, где n число символов используемого алфавита. На Схеме 1 показана верхняя часть таблицы Вижинера для кириллицы. Каждая строка получена циклическим сдвигом алфавита на символ. Для шифрования выбирается буквенный ключ, в соответствии с которым формируется рабочая матрица шифрования.


а >> б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я
б >> в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я а
в >> г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я а б
г >> д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я а б в
д >> е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я а б в г
И т.д. до 33-ей строки...
Схема 1


Шифрование осуществляется следующим образом. Из полной таблицы выбирается первая строка и те строки, первые буквы которых соответствуют буквам ключа. Первой размещается первая строка, а под нею -- строки, соответствующие буквам ключа в порядке следования этих букв в ключе шифрования. Пример такой рабочей матрицы для ключа «книга»:

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я
к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я а б в г д е ё ж з и й
н о п р с т у ф х ц ч ш щ ъ ы ь э ю я а б в г д е ё ж з и й к л м
и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я а б в г д е ё ж з
г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я а б в
а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я
Рабочая матрица шифрования для ключа «книга».

1. под каждой буквой шифруемого текста записываются буквы ключа. Ключ при этом повторяется необходимое число раз.
2. каждая буква шифруемого текста заменяется по подматрице буквами находящимися на пересечении линий, соединяющих буквы шифруемого текста в первой строке подматрицы и находящимися под ними букв ключа.
3. полученный текст может разбиваться на группы по несколько знаков.

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


Дальше осуществляется непосредственное шифрование в соответствии со вторым правилом, а именно: берем первую букву шифруемого текста (М) и соответствующую ей букву ключа (К); по букве шифруемого текста (М) входим в рабочую матрицу шифрования и выбираем под ней букву, расположенную в строке, соответствующей букве ключа (К),-- в нашем примере такой буквой является Ч; выбранную таким образом букву помещаем в зашифрованный текст. Эта процедура циклически повторяется до зашифрования всего текста.

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

Расшифровка текста производится в следующей последовательности:

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

Нетрудно видеть, что процедуры как прямого, так и обратного преобразования являются строго формальными, что позволяет реализовать их алгоритмически. Более того, обе процедуры легко реализуются по одному и тому же алгоритму.

Одним из недостатков шифрования по таблице Вижинера является то, что при небольшой длине ключа надежность шифрования остается невысокой, а формирование длинных ключей сопряжено с трудностями.
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте.
Правила форума => Правила раздела => Для общего развития => Помощь студентам => Перед тем, как создавать тему, скачайте себе...
P.S.: форум не песочница (с)
название статьи на сайте MS: "Отмена принудительного отключения автоматического запуска в реестре Windows"
AlDelta вне форума Ответить с цитированием
Старый 18.10.2007, 14:55   #4
Light69
 
Регистрация: 18.10.2007
Сообщений: 6
По умолчанию

Да я понимаю (чуть-чуть) в чем суть этого метода, но реализовать его в delphi даже не представляю как!
Light69 вне форума Ответить с цитированием
Старый 18.10.2007, 15:31   #5
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Ну для начала нужно начать что-то делать. Хотя бы интерфейс с вызовом функций кодирования и декодирования. Сами функции никуда не убегут.

Заголовок функции будет такой
function Encode(source: string): string;
function Decode(code: string): string;

тело функции для начала и такое сойдет
function Encode(source: string): string;
begin
ShowMessage('Задано слово '+source);
end;

пока вы это сделаете, вам кто-нибудь с функциями поможет
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 18.10.2007, 19:07   #6
Light69
 
Регистрация: 18.10.2007
Сообщений: 6
По умолчанию

А кто-нибудь - это кто?
Light69 вне форума Ответить с цитированием
Старый 18.10.2007, 20:39   #7
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

когда видишь что человек что-то пытается делать, и у него не получается, гораздо больше желания ему помочь, чем тому к-рый ждет что ему все готовое дадут
Цитата:
А кто-нибудь - это кто?
посетители форума, я в том числе
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Старый 18.10.2007, 21:01   #8
Light69
 
Регистрация: 18.10.2007
Сообщений: 6
По умолчанию

а как мое начало выложить тут???
Light69 вне форума Ответить с цитированием
Старый 18.10.2007, 21:16   #9
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Light69 Посмотреть сообщение
а как мое начало выложить тут???
Перейти в режим ответа.
Скопировать код (CTRL-C), нажать значок "Цитата", вставить (CTRL-V).
Еще лучше перейти в расширенный режим ответа и использовать не значок "Цитата", а "Код" - #.
Обо всем этом написано в правилах форума... Я всегда говорю: "Учи матчасть..."

Последний раз редактировалось mihali4; 18.10.2007 в 21:18.
mihali4 вне форума Ответить с цитированием
Старый 18.10.2007, 23:00   #10
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

Цитата:
Да я понимаю (чуть-чуть) в чем суть этого метода, но реализовать его в delphi даже не представляю как!
работа с матрицами (двухмерными массивами) причем ничего сложного, простая выборка
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Метод вижинера Ghost_Dante Помощь студентам 12 01.12.2011 21:58
Метод Гаусса IgorKr Помощь студентам 10 03.02.2008 11:28