Квадрат Полібія

Крок 1: Формування таблиці шифрування

До кожної мови окремо складається таблиця шифрування з однаковою (не обов'язково) кількістю пронумерованих рядків та стовпців, параметри якої залежать від його потужності (кількості літер в алфавіті). Беруться два цілих числа, твір яких найближче до кількості літер у мові - отримуємо потрібну кількість рядків та стовпців. Потім вписуємо в таблицю всі літери алфавіту поспіль - по одній на кожну клітинку. При нестачі клітин можна вписати в одну дві літери (рідко вживаються або схожі на вживання).

Латинська абетка

У сучасному латинському алфавіті 26 букв, отже таблиця повинна складатися з 5 рядків і 5 стовпців, оскільки 25=5*5 найближче до 26 число. При цьому букви I, J не відрізняються (J ототожнюється з буквою I), тому що не вистачає 1 осередку:

1 2 3 4 5
1ABCDE
2FGHI/JK
3LMNOP
4QRSTU
5VWXYZ

український алфавіт

Ідею формування таблиці шифрування проілюструємо для української мови. Число літер в українському алфавіті відрізняється від числа літер в грецькому алфавіті, тому розмір таблиці обраний інший (квадрат 6*6=36, оскільки 36 найближче до 33):

1 2 3 4 5 6
1АБУГДЕ
2ЁЖЗІЙДо
3ЛМНПроПР
4ЗТУФХЦ
5ЧШЩЪЫЬ
6ЕЮЯ---

Можливий також інший варіант складання, що передбачає об'єднання літер Е та Ё, І та Й, Ъ та Ь. В даному випадку отримуємо наступний результат:

1 2 3 4 5 6
1АБУГДЕ/Е
2ЖЗІ/ЙДоЛМ
3НПроПРЗТ
4УФХЦЧШ
5ЩЫЬ/ЪЕЮЯ

Використовуючи такий алгоритм, таблицю шифрування можна задати будь-якої мови. Щоб розшифрувати закритий текст, необхідно знати, таблицею шифрування якого алфавіту він зашифрований.

Або є такий варіант: Шифр ​​"Квадрат Полібія".

«Квадрат Полібія» являє собою квадрат 5×5, стовпці та рядки якого нумеруються цифрами від 1 до 5. У кожну клітинку цього квадрата записується одна літера (у нашому алфавіті 31 літера, Ъ і Ё виключені, крім того, в одну клітинку помістіть літери е -е, і-й, ж-з, р-с, ф-х, ш-щ). Літери розташовані за абеткою. В результаті кожної букви відповідає пара чисел, і шифроване повідомлення перетворюється на послідовність пар чисел. Розшифровується шляхом знаходження літери, що стоїть на перетині рядка та стовпця.

Крок 2: Принцип шифрування

Є кілька методів шифрування з допомогою квадрата Полібія.Нижче наведено три з них.

Зашифруємо слово "SOMETEXT":

Для шифрування на квадраті знаходили букву тексту і вставляли в шифрування нижню від неї в тому ж стовпці. Якщо літера була в нижньому рядку, то брали верхню з того ж стовпця.

Таблиця координатЛітера тексту: S O M E T E X TЛітера шифротексту : X T R K Y K C Y

Таким чином після шифрування отримуємо:

РезультатДо шифрування: SOMETEXTПісля шифрування: XTRKYKCY

Повідомлення перетворюється на координати по квадрату Полібія, координати записуються вертикально:

Таблиця координатЛітера: S O M E T E X TКоордината горизонтальна: 3 4 2 5 4 5 3 4Координата вертикальна: 4 3 3 1 4 1 5 4

Потім координати зчитують по рядках:

Далі координати перетворюються на літери цього ж квадрату:

Таблиця координатКоордината горизонтальна: 3 2 4 3 4 3 4 5Координата вертикальна: 4 5 5 4 3 1 1 4Літера: S W Y S O C D U

Таким чином після шифрування отримуємо:

РезультатДо шифрування: SOMETEXTПісля шифрування: SWYSOCDU

Ускладнений варіант, який полягає в наступному: отриманий первинний код (*) шифрується вдруге. При цьому він виписується без розбиття на пари:

Отримана послідовність цифр зсувається циклічно вліво на один крок (непарна кількість кроків):

Ця послідовність знову розбивається у групи по два:

та по таблиці замінюється на остаточний шифротекст:

Таблиця координатКоордината горизонтальна: 4 5 5 4 3 1 1 4Координата вертикальна: 2 4 3 4 3 4 5 3Літера: I U P T N Q V O

Таким чином після шифрування отримуємо:

РезультатДо шифрування: SOMETEXTПісля шифрування: IUPTNQVO

Додавання ключа

На перший погляд, шифр здається дуже нестійким, але для його реальної оцінки слід враховувати два фактори:

  1. можливість заповнити квадрат Полібія буквами довільно, а не лише строго за абеткою;
  1. можливість періодично замінювати квадрати.

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

Літери можуть вписуватися в таблицю у довільному порядку - заповнення таблиці в цьому випадку і є ключем. Для латинського алфавіту в першу клітинку можна вписати одну з 25 літер, в другу - одну з 24, в третю - одну з 23 і т. д. Отримуємо максимальну кількість ключів для шифру на таблиці латинського алфавіту:

Відповідно для дешифрування повідомлення знадобиться як знання алфавіту, а й ключа, з допомогою якого складалася таблиця шифрування. Але довільний порядок букв важко запам'ятати, тому користувачеві шифру необхідно мати при собі ключ — квадрат. З'являється небезпека таємного ознайомлення із ключем сторонніх осіб. Як компромісне рішення було запропоновано ключ — пароль. Пароль виписується без повторів букв у квадрат; в клітини, що залишилися, в алфавітному порядку виписуються літери алфавіту, відсутні в паролі.

Зашифруємо слово "SOMETEXT", використовуючи ключ "DRAFT". Складемо попередньо таблицю шифрування з цим ключем, записуючи символи ключа по порядку в таблицю, після них решта алфавіту:

1 2 3 4 5
1DRAFT
2BCEGH
3IKLMN
4OPQSU
5VWXYZ

Перетворимо повідомлення на координати по квадрату Полібія:

Таблиця координатЛітера: S O M E T E X TКоордината горизонтальна: 4 1 4 3 5 3 3 5Координата вертикальна: 4 4 3 2 1 2 5 1

Вважаємо координати за рядками:

Перетворимо координати на літери за цим же квадратом: