Шифр четырёх квадратов — метод ручного симметрического шифрования, который представляет собой модифицированный вариант шифра Плейфера. Этот метод обеспечивает более высокий уровень безопасности защищённых данных. Шифр был изобретён известным французским криптографом Феликсом Деластелем[en] в 1902 году[1].
Данный метод шифрует пары букв и, тем самым, попадает в категорию шифров, известных как полиграфические подстановочные шифры[en]. Это добавляет значительную прочность шифрованию по сравнению с шифрами простой замены, которые действуют на отдельные символы[2]. Использование биграмм делает шифр четырёх квадратов менее восприимчивым к частотному криптоанализу, так как он должен быть применен к 676 возможным парам букв (в английском алфавите), а не только к 26 символам для монографического замещения[3]. Частотный анализ для биграмм возможен, но он гораздо сложнее, и для того, чтобы этот анализ был полезен, требуется, как правило, намного больше шифротекста.
Шифр четырёх квадратов использует 4 квадратных матрицы, размером зависящих от количества букв в алфавите, например, 5х5 в английском языке, 6х6 в русском.
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 |
А | Б | В | Г | Д | Е |
Ё | Ж | З | И | Й | К |
Л | М | Н | О | П | Р |
С | Т | У | Ф | Х | Ц |
Ч | Ш | Щ | Ъ | Ы | Ь |
Э | Ю | Я | - | - | - |
Две из них заполняются алфавитом в стандартном порядке (обычно буква «Q» опускаются, чтобы уменьшить алфавит, либо «I» и «J» объединяются в одной клетке). В две оставшиеся таблицы помещаются ключевые слова в верхней строке слева направо. Потом в оставшиеся ячейки матрицы записываются по порядку символы алфавита, не встречающиеся в ключевом слове. Ключевые слова, дополненные алфавитом, составляют матрицы 5х5 и являются ключом шифра.[источник не указан 328 дней]
A | B | C | D | E | C | R | I/J | P | T | |
F | G | H | I/J | K | O | G | A | F | B | |
L | M | N | O | P | D | E | H | K | L | |
Q | R | S | T | U | M | N | Q | S | U | |
V | W | X | Y | Z | V | W | X | Y | Z | |
S | E | G | U | R | A | B | C | D | E | |
T | A | B | C | D | F | G | H | I/J | K | |
F | H | I/J | K | L | L | M | N | O | P | |
M | N | O | P | Q | Q | R | S | T | U | |
V | W | X | Y | Z | V | W | X | Y | Z |
Для шифрования необходимо выполнить следующие пункты:
ATTACK AT DAWN = AT TA CK AT DA WN
A | B | C | D | E | C | R | I/J | P | T | |
F | G | H | I/J | K | O | G | A | F | B | |
L | M | N | O | P | D | E | H | K | L | |
Q | R | S | T | U | M | N | Q | S | U | |
V | W | X | Y | Z | V | W | X | Y | Z | |
S | E | G | U | R | A | B | C | D | E | |
T | A | B | C | D | F | G | H | I/J | K | |
F | H | I/J | K | L | L | M | N | O | P | |
M | N | O | P | Q | Q | R | S | T | U | |
V | W | X | Y | Z | V | W | X | Y | Z |
A | B | C | D | E | C | R | I/J | P | T | |
F | G | H | I/J | K | O | G | A | F | B | |
L | M | N | O | P | D | E | H | K | L | |
Q | R | S | T | U | M | N | Q | S | U | |
V | W | X | Y | Z | V | W | X | Y | Z | |
S | E | G | U | R | A | B | C | D | E | |
T | A | B | C | D | F | G | H | I/J | K | |
F | H | I/J | K | L | L | M | N | O | P | |
M | N | O | P | Q | Q | R | S | T | U | |
V | W | X | Y | Z | V | W | X | Y | Z |
PM MU TB PM CU XH = PMMUTBPMCUXH
Для расшифровки сообщения нужно проделать те же действия, выбирая буквы на квадратах с кодовыми словами.
Ниже показан пример функции на JavaScript, которая выполняет шифрование сообщения и возвращает результат[4].
1 function encrypt(messageInput, keyword, alphabet) {
2 var messageOutput = "";
3
4 var pos = 0;
5 while (pos < messageInput.length) {
6 var m1 = messageInput[pos];
7 var m2 = '';
8
9 if (pos + 1 < messageInput.length) {
10 m2 = messageInput[pos + 1];
11 pos += 2;
12 } else {
13 m2 = 'Q'
14 pos += 1;
15 }
16
17 var idx1 = alphabet.indexOf(m1);
18 var idx2 = alphabet.indexOf(m2);
19 var c1 = keyword[0][(5 * Math.floor(idx1 / 5)) + idx2 % 5];
20 var c2 = keyword[1][(5 * Math.floor(idx2 / 5)) + idx1 % 5];
21
22 messageOutput = messageOutput.concat(c1);
23 messageOutput = messageOutput.concat(c2);
24 }
25
26 return messageOutput;
27 }
Во время Второй мировой войны шифр четырёх квадратов использовался немецкими вооруженными силами. Тогда текст немного изменялся, прежде чем быть зашифрованным: например, сообщение MORE TROOPS NEEDED HERE разбивалось таким образом:
MORET NEEDE ROOPS DHERE
и биграммы, которые подвергались шифровке, были:
MR OO RO EP TS ND EH EE DR EE
Согласно книге Codebreakers[5], сборнику воспоминаний тех, кто работал в Блетчли-парке во время войны, немецкая армия использовала шифр, в котором биграммы шифровались с помощью шифра четырёх квадратов.
Джим Джиллогли[en] отметил, что рассекреченные документы NSA относятся также к шифру этого типа, в котором биграммы были зашифрованы дважды посредством шифра с четырьмя квадратами. Так как каждая буква была зашифрована в первый раз, а затем помещалась в квадрат с другой стороны для второй шифровки, отношение между открытым текстом и шифром было намного сложнее, чем в шифре Плейфера[6].
Шифр четырёх квадратов может быть легко взломан. Довольно просто определить ключ, если известны и открытый текст, и шифротекст, и по этой причине угадывание части открытого текста является очень эффективным способом взлома этого шифра. Если часть открытого текста известна или легко угадываема, это должно быть использовано в первую очередь, чтобы определить как можно большую часть ключа, а затем могут быть применены и другие методы[7].
По сравнению с шифром Плейфера, шифр четырёх квадратов является более надёжным в случае симметричных биграмм (например, AB BA будет зашифровано как XY YX в шифре Плейфера, но не в шифре четырёх квадратов). Это верно только в том случае, если два ключевых слова разные[7].
Шифр четырёх квадратов является более сильным, чем шифр Плейфера, но более громоздким из-за использования двух ключей, и процессы шифрования и дешифрования сообщения могут занять много времени. Принимая во внимание, что увеличение прочности шифрования, обеспечиваемое шифром четырёх квадратов, является незначительным, и что оба метода легко взломать, если достаточное количество шифротекста известно, шифр Плейфера был гораздо более распространён[8].
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .