Шифрование и дешифрование на квадрате Виженера

(графические и программные алгоритмы)

Шифровка.jpg  Шифровка.jpg

На рис. показано  шифрование букв L и F
через буквы оригинала и ключа

 

Расшифровка  на квадрате Виженера

 

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

Формально задача состоит из нахождения расшифрованной буквы от 4-х переменных буквы и ее порядкового номера в алфавите 

Дано:

Ключ:               LEMONLEMONLE  (ключевая строка равна исходного текста)

Зашифрованный текст:  LXFOPVEFRNHR

Найти:

Исходный текст:       ATTACKATDAWN

Алгоритм решения:

1)    Найти первый символ ключевого слова (ключевой строки)

L >  (строка первого символа ключа)

2)    В строке ищем первый символ L зашифрованного текста

3)    Столбец,  в котором находится данный символ исходного текста

Смоделируем в CorelDraw графически:

 

алгоритм расшифровки.jpg     Дешифровка.jpg

Дешифровка по квадрату Виженера в системе Вектор

      

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

 

Dano_fraza =  "ATTACKATDAWN"   ' 12 исходная фраза

' ключевая строка равна дл

Dano_kluh =  "LEMONLEMONLE"   ' = 12

'Функция Mid() - занятная штука.

'Употребление Mid — Mid(Строка, Начало, Символов)

'Строка — источник, откуда брать кусок строки

'Начало — номер символа, с которого начинать брать строку (символ в алфавите букву)

'Символов — количество символов, которые необходимо взять из строки.

'Пример

Dano2= "abcdefghijklmnopqrstuvwxyz" ' – шрифт

Dan = "ATTACKATDAWN"        ' - исходный текст для шифровки  ' 112

Danori = "LEMONLEMONLE"     ' ключ (ключевая строка)

     md2=Mid(Danori,1,1)

     'VBSMsg " 1-яя буква на ключе = " & md2

     ' 1 буква в алфавите-проводнике по цифре и сдвигу (+7)

     md2=Mid(Dano2,1,1)

    

Квадрат Вижнера  английскими буквами:

Dano_buk_EN = Array(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32)

 

    Dano_bukv_EN(0) =  "0 abcdefghijklmnopqrstuvwxyz"

    Dano_bukv_EN(1) =  "1 bcdefghijklmnopqrstuvwxyza"

    Dano_bukv_EN(2) =  "2 cdefghijklmnopqrstuvwxyzab"

    Dano_bukv_EN(3) =  "3 defghijklmnopqrstuvwxyzabc"

    Dano_bukv_EN(4) =  "4 efghijklmnopqrstuvwxyzabcd"

    Dano_bukv_EN(5) =  "5 fghijklmnopqrstuvwxyzabcde"

    Dano_bukv_EN(6) =  "6 ghijklmnopqrstuvwxyzabcdef"

    Dano_bukv_EN(7) =  "7 hijklmnopqrstuvwxyzabcdefg"

    Dano_bukv_EN(8) =  "8 ijklmnopqrstuvwxyzabcdefgh"

    Dano_bukv_EN(9) =  "9 jklmnopqrstuvwxyzabcdefghi"

    Dano_bukv_EN(10)= "10 klmnopqrstuvwxyzabcdefghij"

    Dano_bukv_EN(11)= "11 lmnopqrstuvwxyzabcdefghijk"

    Dano_bukv_EN(12)= "12 mnopqrstuvwxyzabcdefghijkl"

    Dano_bukv_EN(13)=  "13 nopqrstuvwxyzabcdefghijklm"

    Dano_bukv_EN(14)=  "14 opqrstuvwxyzabcdefghijklmn"

    Dano_bukv_EN(15)=  "15 pqrstuvwxyzabcdefghijklmno"

    Dano_bukv_EN(16)=  "16 qrstuvwxyzabcdefghijklmnop"

    Dano_bukv_EN(17)=  "17 rstuvwxyzabcdefghijklmnopq"

    Dano_bukv_EN(18)=  "18 stuvwxyzabcdefghijklmnopqr"

    Dano_bukv_EN(19)=  "19 tuvwxyzabcdefghijklmnopqrs"

    Dano_bukv_EN(20) = "20 uvwxyzabcdefghijklmnopqrst"

    Dano_bukv_EN(21) =  "21 vwxyzabcdefghijklmnopqrstu"

    Dano_bukv_EN(22) =  "22 wxyzabcdefghijklmnopqrstuv"

    Dano_bukv_EN(23) =  "23 xyzabcdefghijklmnopqrstuvw"

    Dano_bukv_EN(24) =  "24 yzabcdefghijklmnopqrstuvwx"

    Dano_bukv_EN(25) =  "25 zabcdefghijklmnopqrstuvwxy"

    Dano_bukv_EN(26) =  "26 zabcdefghijklmnopqrstuvwxy"

 

Примеры:

Задание:

bukv =  "abcdefghijklmnopqrstuvwxyz"

Fraza = "ugtmokrtnswn"  '    

kluh =  "lemonlemonlemonlemon"  

kod = "lхfopvefrnhr"    '

   

'Употребление Mid — Mid(Строка, Начало, Символов)

'Строка — источник, откуда брать кусок строки

'Начало — номер символа, с которого начинать строку

'Символов — количество символов, которые необходимо взять из строки.

И Эврика звадачу решили программно и даже в Векторе изобразили:

Шифровка.jpg

На рис. смоделирован вариант шифровки

 

 

 

Построений букв на экране системы вектор без циклов:

      Text.sss p(0, 1.5, 0), Mid(Fraza,1,12), "Arial", 605

      Text.sss p(0, 1.0, 0), Mid(Kluh,1,12), "Arial", 605

      Text.sss p(0, 0.0, 0), Mid(Kod,1,12), "Arial", 605

Упражнение. В системе Вектор задать квадрат Вижнера, с русскими буквами. 

Квадрат Вижнера символами рукописи Войнича см. на прозару

https://proza.ru/2020/03/10/142

 

 

      В системе Вектор можно кодировать и декодировать не взламываемым кодированием. Для этого нужна система Вектор для кодируемой и принимаемой сторонам, причем может быть в свободном доступе. А вот кодируемый файл и ключ (тоже файл) является тот или другой секретными. Почему мы обратились к классическим приемам шифрования? Дело в том что, в истории при различных ситуациях применялось множество шифровок. Если применялись шифрокоды Варнама-Вижнера (как и шифрования с помощью блокнотов), то эти шифропослания фактически остались для исследователей недоступными. Так 60 лет назад суд в США приговорил Джулиуса и Этель Розенберг к казни на электрическом стуле за шпионаж в пользу Советского Союза, мол, на основе нескольких сотен шифровок переданных Советскому Союзу.  Вот здесь и вызывает сомнения – расшифровать сумели пару, другую шифрограмм (по ошибке супруги использовали дважды одни те же коды, остальные шифрограммы были не прочитаны). Осудили по косвенным уликам. Умение читать шифрованные послания – до сих пор хранят тайны.  Некоторые уже никогда не прочитают, а что прочтут будут героями.  Например, прочитать на Криптосе 4-й топик, на котором по диагонали слово написано слово “Криптос», а по бокам английский шрифт в ту и другую сторону. С помощью магического квадрата 9-99-999- арканных сверток можно получить в слова из 1-2-3 символов, располагая в том или ином порядке, можно получить расшифровку. У нас что-то получилось, однако это секрет (не мы придумали и не нам разглашать).            

 

NGHIJLMNQUVWXZKRYPTOSABCDEFGHIJL

OHIJLMNQUVWXZKRYPTOSABCDEFGHIJL

PIJLMNQUVWXZKRYPTOSABCDEFGHIJLM

QJLMNQUVWXZKRYPTOSABCDEFGHIJLMN

RLMNQUVWXZKRYPTOSABCDEFGHIJLMNQ

SMNQUVWXZKRYPTOSABCDEFGHIJLMNQU

TNQUVWXZKRYPTOSABCDEFGHIJLMNQUV

UQUVWXZKRYPTOSABCDEFGHIJLMNQUVW

VUVWXZKRYPTOSABCDEFGHIJLMNQUVWX

WVWXZKRYPTOSABCDEFGHIJLMNQUVWXZ

XWXZKRYPTOSABCDEFGHIJLMNQUVWXZK

YXZKRYPTOSABCDEFGHIJLMNQUVWXZKR

ZZKRYPTOSABCDEFGHIJLMNQUVWXZKRY

ABCDEFGHIJKLMNOPQRSTUVWXYZABCD

 

 

999 свертка.jpg

 

162.1 154.1 155.1 156.1 157.1 159.1 161.1 162.1 165.1 169.1 171.1 172.1 173.1 175.1 158.1 166.1 174.1 164.1 168.1 163.1 167.1 147.1 148.1 149.1 151.1 152.1 153.1 154.1 155.1 156.1 157.1 159.1 163.1 155.1 156.1 157.1 159.1 161.1 162.1 165.1 169.1 171.1 172.1 173.1 175.1 158.1 166.1 174.1 164.1 168.1 163.1 167.1 147.1 148.1 149.1 151.1 152.1 153.1 154.1 155.1 156.1 157.1 159.1 164.1 156.1 157.1 159.1 161.1 162.1 165.1 169.1 171.1 172.1 173.1 175.1 158.1 166.1 174.1 164.1 168.1 163.1 167.1 147.1 148.1 149.1 151.1 152.1 153.1 154.1 155.1 156.1 157.1 159.1 161.1 165.1 157.1 159.1 161.1 162.1 165.1 169.1 171.1 172.1 173.1 175.1 158.1 166.1 174.1 164.1 168.1 163.1 167.1 147.1 148.1 149.1 151.1 152.1 153.1 154.1 155.1 156.1 157.1 159.1 161.1 162.1 166.1 159.1 161.1 162.1 165.1 169.1 171.1 172.1 173.1 175.1 158.1 166.1 174.1 164.1 168.1 163.1 167.1 147.1 148.1 149.1 151.1 152.1 153.1 154.1 155.1 156.1 157.1 159.1 161.1 162.1 165.1 167.1 161.1 162.1 165.1 169.1 171.1 172.1 173.1 175.1 158.1 166.1 174.1 164.1 168.1 163.

 

162.1 154.1 155.1 156.1 157.1 159.1 161.1 162.1 165.1 169.1 171.1 172

N G H I J L M N Q U V W - слева фрагмент побуквенной расшифровки.

 

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

 

кашмир2.jpg

Послание «Приезжаю сегодня» закодировано 99-арканным кодом, прочитать  которое  можно, задав  кодовый вариант  справа  «г н а у б р а т и у е ф о е ю я » в верхней строке, указав в столбце МК(0-10) секретное число

28 29 21 16 19 18 11 45 31 16 14 27 15 26 46 = qrjfihafsfdpeog = 77 – зашифрованные буквы числами и английскими буквами

Расшифровка Вектор -> Дайдж -> Azbuka_EN.dict –> диалоговое окно -> В первую строку ввести шифр – числовой кода 28 29 21 16 19 18 11 45 31 16 14 27 15 26 46. Во вторую строку получите расшифровку.

Приходи сегодня.jpg

Расшифровка  через просто числа (без чисел с подчислами)

 

Можно пойти еще дальше получить расшифроку под магическим квадратом командой инграмма

 В варианте Vector_unicode64  это число известно МК=2 (может быть и другое – задается внутри программы системы Вектор)

 

Приезжаю сегодня-гот.jpg

Задавая Код (0-10) = 2 получаем раскодирование фразы

 

 

             Шифропрограммирование возможно как симметричное, так и ассиметричное.
Магические квадраты строятся послойно, и зашифрованный текст Криптоса блока 4 читается  поэтапно. Мы не раскрываем секретное число, с помощью которого можно прочитать  содержания топика (одним кликом). Второй вариант можно прочитать текст в системе Вектор через числа с подчислами (нумерологического кода) -  файла расшифровки кодов через Вектор -> Дайдж –> Слова -> файл *.dict  - Диалог.

999 свертка4.jpg   999 свертка9.jpg 999 свертка7.jpg

          Расшифровка топика не является особенной в свете тех проблем, которые встали перед человечеством в связи с коронавирусом, поэтому предлагается  зашифровать  фразу на прекращение эпидемии. Так что думаем, пока не поздно

 

·         Перестановка «Магический квадрат» (МК) называются квадратные таблицы с вписанными в их клетки последовательными натуральными числами от 1, которые дают в сумме по каждому столбцу, каждой строке и каждой диагонали одно и то же число. Подобные квадраты применялись для вписывания шифруемого текста по приведенной в них нумерации. Если потом выписать содержимое таблицы по строкам, то получалась шифровка перестановкой букв. На первый взгляд кажется, будто магических квадратов очень мало. Тем не менее, их число очень быстро возрастает с увеличением размера квадрата. Так, существует лишь один магический квадрат размером 3 х 3, если не принимать во внимание его повороты. Магических квадратов 4 х 4 насчитывается уже 880, а число магических квадратов размером 5 х 5 около 250000. Поэтому магические квадраты больших размеров могли быть хорошей основой для надежной системы шифрования того времени, потому что ручной перебор всех вариантов ключа для этого шифра был немыслим..  Модуль Дайдж в авторской (Болотов) системе Вектор использует множество МК, нумерологические  числа, астрономические гороскопы, векторно-графический анализ, фракталы и многое еще чего, что не снилось нашим мудрецам. 
 -   построен на магических квадратов

** С помощью магических квадратов в ранешнее время пожарные пожары тушили и еще много чудеса творили – правда-правда.

 

 

 

Сейчас (15.02.2020) на уроке по компьютерной графике студенты 221 задали азиатский рецепт, как уберечься от коронавируса,

читайте точнее,  расшифровывайте. Задать же намерение, чтобы прекратился мировой помор, мы решили обратиться к манускрипту Войнича, там об этом заклинание дается – правда-правда. . 

 

14 33 16 33 15 18 15 14 11 22 99 18 21 19 88 15 23 33 11 14 99 66 99 14 44 15 21 22 22 88 11 22 11 16 55 18 19 15 14 88 11 19 22 55 33 15 13 55 99 14 66 55 33 22 55 11 66 22 55 18 22 88 55 22 99 13 55 88 11 19 16 11 19 19 55 44 22 88 55 22 55 13 16 55 18 11 22 21 18 55 18 99 19 55 19 11 14 44 15 18 11 33 15 21 77 88 11 16 16 55 11 19 99 66 25 15 21 77 15 22 15 22 88 55 88 15 19 16 99 22 11 12 11 22 22 88 99 19 13 15 13 55 14 22 22 88 55 14 21 19 21 11 12 12 25 11 22 15 21 22 55 15 66 22 88 55 12 21 14 77 19 11 18 55 11 12 18 55 11 44 25 11 66 66 55 33 22 55 44 22 25 66 99 22 18 15 19 99 19 11 14 44 22 88 99 19 13 55 11 14 19 22 88 11 22 99 22 99 19 22 15 15 12 11 22 55 22 11 99 23 11 14 55 19 55 55 24 16 55 18 22 19 15 66 66 55 18 21 19 11 19 99 13 16 12 55 33 15 18 15 14 11 22 99 18 21 19 19 55 18 22 55 19 22 22 88 11 22 23 55 33 11 14 44 15 55 22 55 18 25 13 15 18 14 99 14 77 22 11 11 55 11 44 55 55 16 22 18 55 11 22 88 11 14 44 88 15 12 44 25 15 21 18 22 18 55 11 22 88 66 15 18 11 22 12 55 11 19 22 11 19 55 33 15 14 44 19 = ウナオナエギエウアザレギゴグヘエジナアウレギレウマエゴザザヘアザアオヲギグエウヘアグザヲナエうヲレウギヲナザヲアギザヲギザヘヲザレうヲヘアグオアググヲマザヘヲザヲうオヲギアザゴギヲギレグヲグアウマエギアナエゴツヘアオオヲアグレギゼエゴツエザエザヘヲヘエグオレザアイアザザヘレグうエうヲウザザヘヲウゴグゴアイイゼアザエゴザヲエギザヘヲイゴウツグアギヲアイギヲアマゼアギギヲナザヲマザゼギレザギエグレグアウマザヘレグうヲアウグザヘアザレザレグザエエイアザヲザアレジアウヲグヲヲズオヲギザグエギギヲギゴグアグレうオイヲナエギエウアザレギゴググヲギザヲグザザヘアザジヲナアウマエヲザヲギゼうエギウレウツザアアヲアマヲヲオザギヲアザヘアウマヘエイマゼエゴギザギヲアザヘギエギアザイヲアグザアグヲナエウマグ = 95

 

Создать магический Топик, составленных не по-буквенно, а словами.

Для этого создаем файл исходного текста <Коронавирус.txt>

Командой Вектор -> Дайдж -> Сортировка создаем амбарный файл нумерлогического кода слов

< Коронавирус.dict >

DICT: аркан=99 код=0

11

coronavirus a hospital 1 moisturize

14

environment

99

I morning

 

Шифровка можно всего текста числами с подчислами:

Весь текст выстраиваем в одно  строку и вводим (предварительно обратившись к файлу Коронавирус.dict) во вторую строку диалогового окна Дайдж -> Свертка 2

 

Получаем графическое изображение - магический квадрат

 

Кристос словами2.jpg

И числа с подчислами, - непосредственное шифрованный файл

 

33.1 11.1 46.1 18.1 99.1 33.2 56.1 49.1 11.2 87.1 28.1 43.1 66.1 55.1 33.3 47.1 28.1 64.1 33.3 77.1 77.2 19.1 33.4 11.2 54.1 76.1 15.1 61.1 22.1 35.1 33.3 11.3 21.1 56.2 88.1 47.2 33.5 59.1 55.2 21.2 33.3 73.1 24.1 66.2 55.3 27.1 97.1 19.1 56.2 52.1 49.1 29.1 28.2 55.4 38.1 97.2 88.2 55.5 44.1 11.2 74.1 11.1 88.3 49.1 28.3 18.1 19.2 75.1 99.2 37.1 11.2 33.6 54.2 19.1 39.1 79.1 54.2 39.2 21.1 57.1 11.4 36.0 15.2 61.1 18.1 19.2 56.2 88.4 84.1 88.4 58.1 55.6 28.4 44.2 33.4 96.1 28.5 56.2 84.2 49.1 56.3 28.2 29.2 97.1 23.1 33.3 73.1 19.1 23.1 77.3 52.1 49.1 56.3 28.2 29.2 89.0 21.3 56.2 75.2 47.1 58.2 33.7 44.3 75.1 99.2 23.1 15.3 14.1 59.2 35.2 28.4 79.3 88.5 11.5 79.1 77.4 19.1 82.1 44.4 46.2 52.2 77.5 73.0 37.1 11.2 34.1 57.2 63.1 21.2 67.1 21.1 57.1 75.1 66.3 16.0 56.4 46.3 15.1 33.3 89.1 51.1 58.3 79.1 77.4 86.1 67.1 33.4 66.4 71.1 56.5 51.2 29.1 97.3 33.3 33.8 58.3 33.3 13.0 19.3 66.2 23.1 33.3 79.4 79.1 79.4 17.1 56.5 44.5 33.3 89.1 = uaghcupjarqdyouhqwuiiiuanhetkwuajpshusojuemyopaipljrqozasoeafasjqhigcyauniaknajqaxethipsosroqeuzqpojpqralueililjpqrtjpghruegcledswqksakiimeglieyavqvjzjqgyfpgeutkrkiqzuycpkrauuruciylukkkgpeut = 83

 

Расшифровка в Векторе -> Слова -> файл Коронавирус.dict -> Диалоговое окно, куда в верхнюю строку вносим числа с подчисла, а во второй получен результат  в данном случае расшифровки – рецепт от китайцев, как уберечься от коронавируса, и когда он закончится, точнее получить гороскоп (расположение планет на небе), предсказывающий конец этому.

 

расшифровка-часть.jpg

Показана часть расшифрованного рецепта почти из 100 слов (не букв как на Криптосе!).

 

Эврика! Шифрование «Слова» -> Шифрование -> «Числа» -> расшифровка «Слова» через 999-арканный код. (27х27 - 3-значных чисел)  в системе  Вектор

 

Создали текстовый файл:

 

1)      <Криптос Вайно-999.txt>

     Аналитика игры использует герменевтику Герменевтику высказываний фактов событий, сюжетов

Геменевтика это дешифровка расшифровка Любая расшифровка восстанавливает события состоящие из буквальности

и из ее смысла. Восстанавливать смысл по буквальности это в математике называется решением обратных задач

которое направлено на ответ на вопрос Что делать чтобы Обратные задачи характеризуется некорректностью

они могут и не иметь решений или решений может быть много а незначительные изменения исходных

условий или поступление новой информации могут привести к существенному изменению результата решения

Уже давным-давно  в эпоху эллинизма и в Средние века, чтение Библии или Гомера стало герменевтическим

2)  Выполнили Команду: Вектор -> Дайдж –>Сортировка

3)  Получили файл отсортированных слов по 99-арканной свертке.

Полученные в арканной свертке в нескольких случаях два три слова, перенесли их свободные  свертки

 

<Криптос Вайно-999.dict>

DICT: аркан=999 код=0

111

а

112

эллинизма

113

в

114

Обратных

995

Обратные

 

Шифровка например всего текста (помещаем в одну строку) Дайдж –> Свертка 2 -> Задаем файл -> <Криптос Вайно-999.dict>

 входим в диалоговое окно и выполняем команду аркан (2-я строка 3 столбец - 999). Результат закодированных слов в во 2-строке в нижней части диалогового окна.

Вайно-999.jpg

 

 

Полученный код упростим – убираем числа с подчислами ни все одинаковые “.1”

Кодирование 3-х знаяными числами:

189 562 122 141 136 142 742 887 882 134 437 129 135 638 135

183 911 117 246 146 121 246 232 184 653 255 146 437 113 123

118 987 114 593 881 119 237 628 237 755 396 741 652 995 714

185 197 374 631 121 242 637 868 366 868 618 529 619 111 171

115 596 366 131 615 126 631 991.1 124 163 116 125 413 148 113

667 112 121 113 854 463 748 711 366 722 625 198

 

Декодирование  Дайдж –>Слова -> Файл -> <Криптос Вайно-999.dict>

 диалоговое окно, вводим выше числовой код  и выполняем команду ОК/

в нижней строке получаем расшифровку (текст в одну строку):

 

Аналитика игры использует герменевтику Герменевтику

высказываний фактов событий сюжетов Геменевтика это

дешифровка расшифровка Любая расшифровка восстанавливает

события состоящие из буквальности и из ее Восстанавливать

смысл по буквальности это в математике называется решением обратных

задач которое направлено на ответ на вопрос Что делать чтобы

Обратные задачи характеризуется некорректностью они могут и не иметь решений

или решений может быть много а незначительные изменения или поступление

новой информации могут привести к существенному изменению результата

давным-давно в эпоху эллинизма и в Средние века чтение Библии

или Гомера стало герменевтическим.

 

Резюме. Текст получили словами, который не сравним с побуквенной шифровкойапас слов 999-арканной свертке предостаточный 27х27 слов.