Реалізація алгоритмів кодування тексту: шифри Атбаш та Плейфера, страница 2

Використання шифру Плейфера в даний час є недоцільним, тому що сучасні переносні комп'ютери можуть легко зламати шифр протягом декількох секунд. Першим виданий алгоритм злому шифру Плейфера був описаний в 1914 році в брошурі обсягом 19 сторінок лейтенантом Джозефом О. Моуборном.

Шифр Плейфера використовує матрицю 5х5 (для латинського алфавіту, для кириличного алфавіту необхідно збільшити розмір матриці до 4х8), що містить ключове слово або фразу. Для створення матриці і використання шифру досить запам'ятати ключове слово і чотири простих правила. Щоб скласти ключову матрицю, в першу чергу потрібно заповнити порожні клітинки матриці буквами ключового слова (без запису повторюваних символів), потім заповнити решту осередки матриці символами алфавіту, що не зустрічаються в ключовому слові, по порядку (в англійських текстах зазвичай опускається символ «Q», щоб зменшити алфавіт, в інших версіях «I» і «J» об'єднуються в одну клітинку). Ключове слово може бути записано у верхньому рядку матриці зліва направо, або по спіралі з лівого верхнього кута до центру. Ключове слово, доповнене алфавітом, становить матрицю 5х5 і є ключем шифру.

Для того щоб зашифрувати повідомлення, необхідно розбити його на Біграмми (групи з двох символів), наприклад «Hello World» стає «HE LL OW OR LD», і відшукати ці Біграмми  в таблиці. Два символи  Біграмма  відповідають кутам прямокутника в ключовий матриці.Далі, визначаємо положення кутів цього прямокутника відносно один одного. Потім,  керуючись такими 4 правилами, зашифровуємо пари символів вихідного тексту:

1. Якщо два символи Біграмма збігаються (або якщо залишився один символ), додаємо після першого символу «Х», зашифровувати нову пару символів і продовжуємо. У деяких варіантах шифру Плейфера замість «Х» використовується «Q».

2. Якщо символи Біграмма и вихідного тексту зустрічаються в одному рядку, то ці символи заміщаються на символи, розташовані в найближчих стовпцях праворуч від відповідних символів. Якщо символ є останнім у рядку, то він замінюється на перший символ цього ж рядка.

3. Якщо символи Біграмма и вихідного тексту зустрічаються в одному стовпці, то вони перетворюються на символи того ж стовпця, що знаходяться безпосередньо під ними. Якщо символ є нижнім в стовпці, то він замінюється на перший символ цього ж стовпця.

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

Для розшифровки необхідно використовувати інверсію цих чотирьох правил, відкидаючи символи «Х» (або «Q»), якщо вони не несуть сенсу у вихідному повідомленні.

Використовуємо ключ «playfair example», тоді матриця прийме вигляд:  P L A Y F  I R E X M  B C D G H  J K N O S  T U V W Z

Зашифруємо повідомлення «Hide the gold in the tree stump» HI DE TH EG OL DI NT HE TR EX ES TU MP 1. Біграмма  HI формує прямокутник, замінюємо її на BM. 2. Біграмма  DE розташований в одному стовпці, замінюємо її на ND. 3. Біграмма  TH формує прямокутник, замінюємо її на ZB. 4. Біграмма  EG формує прямокутник, замінюємо її на XD. 5. Біграмма  OL формує прямокутник, замінюємо її на KY. 6. Біграмма DI формує прямокутник, замінюємо її на BE. 7. Біграмма NT формує прямокутник, замінюємо її на JV. 8. Біграмма HE формує прямокутник, замінюємо її на DM. 9. Біграмма TR формує прямокутник, замінюємо її на UI. 10. Біграмма EX знаходиться в одному рядку, замінюємо її на XM. 11. Біграмма ES формує прямокутник, замінюємо її на MN. 12. Біграмма TU знаходиться в одному рядку, замінюємо її на UV. 13. Біграмма MP формує прямокутник, замінюємо її на IF.