в интернете Шифр Виженера. Для усовершенствования простого моноалфавитного шифра можно использовать несколько моноалфавитных подстановок, применяемых в ходе шифрования открытого текста в зависимости от определенных условий. Семейство шифров, основанных на применении таких методов шифрования, называется полиалфавитными шифрами. Подобные методы шифрования обладают следующими общими свойствами: 7 1. Используется набор связанных моноалфавитных подстановок. 2. Имеется некоторый ключ, по которому определяется, какое конкретное преобразование должно применяться для шифрования на данном этапе. Самым широко известным и одновременно простым алгоритмом такого рода является шифр Виженера (Vigenire). Этот шифр базируется на наборе правил моноалфавитной подстановки, представленных 26 шифрами Цезаря со сдвигом от 0 до 25. Каждый из таких шифров можно обозначить ключевой буквой текста. Например, шифр Цезаря, для которого смещение равно 3, обозначается ключевой буквой d. Для облегчения понимания и применения этой схемы была предложена матрица, названная "табло Виженера". Все 26 шифров располагаются по горизонтали, и каждому из шифров соответствует своя ключевая буква, представленная в крайнем столбце слева. Алфавит, соответствующий буквам открытого текста, находится в первой сверху строке таблицы. Процесс шифрования прост - необходимо по ключевой букве х и букве открытого текста у найти букву шифрованного текста, которая находится на пересечении строки х и столбца у. В данном случае такой буквой является буква v. Таблица 1. Современное табло Виженера A B C D E F G H I J K L M N O P Q R S T U V W X Y Z A A B C D E F G H I J K L M N O P Q R S T U V W X Y Z B B C D E F G H I J K L M N O P Q R S T U V W X Y Z A C C D E F G H I J K L M N O P Q R S T U V W X Y Z A B D D E F G H I J K L M N O P Q R S T U V W X Y Z A B C E E F G H I J K L M N O P Q R S T U V W X Y Z A B C D F F G H I J K L M N O P Q R S T U V W X Y Z A B C D E G G H I J K L M N O P Q R S T U V W X Y Z A B C D E F H H I J K L M N O P Q R S T U V W X Y Z A B C D E F G I I J K L M N O P Q R S T U V W X Y Z A B C D E F G H J J K L M N O P Q R S T U V W X Y Z A B C D E F G H I K K L M N O P Q R S T U V W X Y Z A B C D E F G H I J L L M N O P Q R S T U V W X Y Z A B C D E F G H I J K M M N O P Q R S T U V W X Y Z A B C D E F G H I J K L N N O P Q R S T U V W X Y Z A B C D E F G H I J K L M O O P Q R S T U V W X Y Z A B C D E F G H I J K L M N P P Q R S T U V W X Y Z A B C D E F G H I J K L M N O Q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P R R S T U V W X Y Z A B C D E F G H I J K L M N O P Q S S T U V W X Y Z A B C D E F G H I J K L M N O P Q R T T U V W X Y Z A B C D E F G H I J K L M N O P Q R S U U V W X Y Z A B C D E F G H I J K L M N O P Q R S T V V W X Y Z A B C D E F G H I J K L M N O P Q R S T U W W X Y Z A B C D E F G H I J K L M N O P Q R S T U V X X Y Z A B C D E F G H I J K L M N O P Q R S T U V W Y Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Z Z A B C D E F G H I J K L M N O P Q R S T U V W X Y Чтобы зашифровать сообщение, нужен ключ, имеющий ту же длину, что и само сообщение. Обычно ключ представляет собой повторяющееся нужное число раз ключевое слово, чтобы получить строку подходящей длины. Например, если ключевым словом является deceptive, сообщение "we are discovered save yourself" шифруется следующим образом. Ключ: deceptivedeceptivedeceptive 8 Открытый текст: wearediscoveredsaveyourself Шифрованный текст: zicvtwqngrzgvtsavzhcqyglmgj Расшифровать текст также просто - буква ключа определяет строку, буква шифрованного текста, находящаяся в этой строке, определяет столбец, и в этом столбце в первой строке таблицы будет находиться соответствующая буква открытого текста. Преимущество этого шифра заключается в том, что для представления одной и той же буквы открытого текста в шифрованном тексте имеется много различных вариантов - по одному на каждую из неповторяющихся букв ключевого слова. Таким образом, скрывается информация, характеризующая частотность употребления букв. Но и с помощью данного метода все же не удается полностью скрыть влияние структуры открытого текста на структуру шифрованного. или Шифр «двойной квадрат» Уитстона. В 1854г. англичанин Чарльз Уитстон разработал новый метод шифрования биграммами. При этом используются сразу две таблицы, размещенные по одной горизонтали. Шифр оказался очень надежным и применялся Германией даже в годы Второй мировой войны. Рассмотрим пример. Пусть имеются две таблицы со случайно расположенными в них русскими алфавитами. Перед шифрованием исходное сообщение разбивают на биграммы. Каждая биграмма шифруется отдельно. Первую букву биграммы находят в левой таблице, а вторую – в правой. Затем строят прямоугольник так, чтобы буквы биграммы лежали в его противоположных вершинах. Другие две вершины этого прямоугольника дают буквы биграммы шифртекста. ЖЩ Н Ю Р И Ч Г Я Т И Т Ь Ц Б , Ж Ь М О Я М Е . СЗ ЮР ВЩ В Ы П Ч Ц : П Е Л : ДУОК Ъ А Н . Х З Э Ф Г Ш Э К Ц ШД Х А , Л Ъ Б Ф УЫ Предположим, что шифруется биграмма ИЛ. Буква И находится в столбце 1 и строке 2 левой таблицы. Буква Л в столбце 5 и строке 4 правой таблицы. Это означает, что прямоугольник образован строками 2 и 4, а также столбцами 1 и 5. Следовательно, в биграмму шифртекста входят буква О, расположенная в столбце 5 и строке 2 правой таблицы, и буква В, расположенная в столбце 1 и строке 4 левой таблицы. Если обе буквы биграммы сообщения лежат в одной строке, то и буквы шифртекста берут из этой же строки. Первую букву биграммы шифртекста берут из левой таблицы в столбце, соответствующем второй букве биграммы сообщения. Вторая буква биграммы шифртекста берется из правой таблицы в столбце, соответствующем первой букве биграммы сообщения. Поэтому биграмма сообщения ТО превращается в биграмму шифртекста БЖ. Для получения шифрующих таблиц можно использовать ключевые слова, аналогично шифру Трисемуса.
Ну вот у тебя есть таблица. Зачем тебе какой-то квадрант Малевича? У ьебя таблица. Буква Я. Это 4\1100. Всё. Зачем тебе квадрат Цезаря? Прогонишь таблицу раз пять, - нникто не расшифрует. Кстате в Америке за такое судят.
у меня лаба сегодня на asm c\c++ типо написать чего простого вбиваешь текст и тот шифруется в окне. может подскажешь или тыкнешь на исходник какой?
tarap, ну держи https://github.com/zedtran/VigenereCipherASM/blob/master/dzt0021-HW5.asm Но боюсь это тебе не сильно поможет
Забавно. Помню программку опубликованную в журнале "Ваш компьютер" год 2004, номер не помню. Там ещё был мощный быдлокод. В общем, код такой. B2:=(B1+Kb) mod 256; //B1 - буква из открытого текста, Kb - буква ключа, B2 - буква закрытого текста. Это мой код, кстати, в журнале был ужасный громоздкий код. Короче, Вегенер(Vigenire) по сути это тот же примитивный XOR, только в место XOR, используется ADD. Устойчивость не шибко высокая, но если ключ генерируется специальным алгоритмом ПСЧ, то в принципе юзать можно.
Стойкость виженера зависит от длины ключа, если длина ключа равна длине текста то стойкость невзламываемая =)