Может кто подскажет исходник?

Discussion in 'WASM.BEGINNERS' started by tarap, Jan 24, 2019.

  1. tarap

    tarap New Member

    Blog Posts:
    0
    Joined:
    Jan 24, 2019
    Messages:
    3
    в интернете

    Шифр Виженера.
    Для усовершенствования простого моноалфавитного шифра можно использовать несколько моноалфавитных подстановок, применяемых в ходе шифрования открытого текста в зависимости от определенных условий. Семейство шифров, основанных на применении таких методов шифрования, называется полиалфавитными шифрами. Подобные методы шифрования обладают следующими общими свойствами:
    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 левой таблицы.
    Если обе буквы биграммы сообщения лежат в одной строке, то и буквы шифртекста берут из этой же строки. Первую букву биграммы шифртекста берут из левой таблицы в столбце, соответствующем второй букве биграммы сообщения. Вторая буква биграммы шифртекста берется из правой таблицы в столбце, соответствующем первой букве биграммы сообщения. Поэтому биграмма сообщения ТО превращается в биграмму шифртекста БЖ.
    Для получения шифрующих таблиц можно использовать ключевые слова, аналогично шифру Трисемуса.
     
    Last edited by a moderator: Jan 26, 2019
  2. Minzdrav

    Minzdrav Well-Known Member

    Blog Posts:
    0
    Joined:
    Mar 21, 2017
    Messages:
    1,082
    Ну вот у тебя есть таблица. Зачем тебе какой-то квадрант Малевича?
    У ьебя таблица. Буква Я. Это 4\1100. Всё. Зачем тебе квадрат
    Цезаря? Прогонишь таблицу раз пять, - нникто не расшифрует.
    Кстате в Америке за такое судят.
     
  3. tarap

    tarap New Member

    Blog Posts:
    0
    Joined:
    Jan 24, 2019
    Messages:
    3
    у меня лаба сегодня на asm c\c++ типо написать чего простого вбиваешь текст
    и тот шифруется в окне.
    может подскажешь или тыкнешь на исходник какой?
     
  4. CheckOut

    CheckOut New Member

    Blog Posts:
    0
    Joined:
    Feb 14, 2018
    Messages:
    24
  5. Minzdrav

    Minzdrav Well-Known Member

    Blog Posts:
    0
    Joined:
    Mar 21, 2017
    Messages:
    1,082
    Лаба у него... Мы то думали.
     
  6. tarap

    tarap New Member

    Blog Posts:
    0
    Joined:
    Jan 24, 2019
    Messages:
    3
    спасибо
     
  7. Intro

    Intro Active Member

    Blog Posts:
    0
    Joined:
    Aug 29, 2009
    Messages:
    614
    Забавно. Помню программку опубликованную в журнале "Ваш компьютер" год 2004, номер не помню. Там ещё был мощный быдлокод. В общем, код такой.
    B2:=(B1+Kb) mod 256; //B1 - буква из открытого текста, Kb - буква ключа, B2 - буква закрытого текста.
    Это мой код, кстати, в журнале был ужасный громоздкий код.
    Короче, Вегенер(Vigenire) по сути это тот же примитивный XOR, только в место XOR, используется ADD.
    Устойчивость не шибко высокая, но если ключ генерируется специальным алгоритмом ПСЧ, то в принципе юзать можно.
     
  8. sl0n

    sl0n Мамонт дзена **

    Blog Posts:
    0
    Joined:
    Sep 26, 2003
    Messages:
    701
    Стойкость виженера зависит от длины ключа, если длина ключа равна длине текста то стойкость невзламываемая =)