Попробуйте шифр «Четыре квадрата»

Используйте предоставленные ниже инструменты для шифрования или дешифрования сообщения:

Шифрование

Результат:

Дешифрование

Результат:

Сгенерированные матрицы

Прекрасные моменты в истории

Шифр «Четыре квадрата»: исторический фон и принципы шифрования

Шифр «Четыре квадрата» — это метод симметричного шифрования, изобретенный французом Феликсом Деластелем (1840–1902) и являющийся частью современной криптографии. Этот метод шифрования шифрует буквы парами, используя четыре матрицы размером 5×5, каждая из которых содержит 25 букв. Обычно буква Q опускается, или I и J считаются одной буквой. Альтернативно метод может быть адаптирован для использования матриц 6×6, чтобы включить 10 цифр.

Во время процесса шифрования выбираются два английских слова в качестве ключей, например, "example" и "keyword". После удаления повторяющихся букв оставшиеся буквы помещаются в матрицы в порядке. Эти две матрицы размещаются в верхнем правом и нижнем левом углах, в то время как верхний левый и нижний правый углы используют последовательность от A до Z для формирования матриц, создавая матрицу шифра «Четыре квадрата».

Чтобы зашифровать сообщение, буквы разделяются на пары, например, "hello world" становится "he ll ow or ld". Основываясь на позициях в матрицах, находятся соответствующие зашифрованные буквы. Например, процесс шифрования для "he" включает нахождение позиции "h" в верхнем левом квадрате и "e" в нижнем правом квадрате. Затем в верхнем правом квадрате находится буква, которая находится в той же строке, что и "h", и в том же столбце, что и "e", а в нижнем левом квадрате находится буква, которая находится в том же столбце, что и "h", и в той же строке, что и "e". Эти две буквы образуют зашифрованный текст.

Слабость шифра «Четыре квадрата» заключается в том, что если две буквы находятся в одном столбце, используются исходные буквы, что может раскрыть около 20% содержания. Кроме того, так как это симметричный метод шифрования, его легко взломать с помощью записанных сравнений, что приводит к низкому уровню безопасности. Еще одной проблемой является то, что он может шифровать только четное количество символов. Если количество символов нечетное, последняя оставшаяся буква не может быть зашифрована, и использование исходного символа или заполнение шифрования делает текст более уязвимым к раскрытию.

Как часть классической криптографии, хотя шифр «Четыре квадрата» не соответствует безопасности современных алгоритмов шифрования, его простота и историческое значение вдохновили современные методы шифрования.

Пошаговое руководство по шифрованию с использованием шифра «Четыре квадрата»

Ниже представлено подробное пошаговое руководство по шифрованию с использованием шифра «Четыре квадрата» с ключевыми словами "Four" и "Cipher" и исходным текстом "Hello World".

Шаг 1: Подготовка

  • Выбор ключевых слов
    • ключ1 = "Four"
    • ключ2 = "Cipher"
  • Подготовка исходного текста
    • Исходный текст: "Hello World".
  • Преобразование исходного текста в подходящий формат для шифрования
    • Преобразование в заглавные буквы и замена буквы J на I: Hello World -> HELLOWORLD
    • Удаление неалфавитных символов: HELLOWORLD
    • Если длина исходного текста нечетная, добавьте символ X в конец.

Шаг 2: Генерация буквенных квадратов

Используйте ключевые слова для создания четырех буквенных квадратов размером 5x5. В алфавите обычно пропускается буква J, вместо нее используется I.

Функция для генерации буквенных квадратов

                
                function createSquare(keyword) {
                    let alphabet = "ABCDEFGHIKLMNOPQRSTUVWXYZ";
                    let used = {};
                    let square = "";
                    keyword = keyword.toUpperCase().replace(/J/g, 'I');
                    for (let i = 0; i < keyword.length; i++) {
                        if (!used[keyword[i]]) {
                            (used[keyword[i]]) = true;
                            square += keyword[i];
                        }
                    }
                    for (let i = 0; i < alphabet.length; i++) {
                        if (!used[alphabet[i]]) {
                            square += alphabet[i];
                        }
                    }
                    return square;
                }
                
            

Генерация 4 буквенных квадратов

Квадрат 1 (square1) и квадрат 4 (square4) с использованием ключа key1 = "FOUR":

                
                F O U R A
                B C D E G
                H I K L M
                N P Q S T
                V W X Y Z
                
            

Квадрат 2 (square2) и квадрат 3 (square3) с использованием ключа key2 = "CIPHER":

                
                C I P H E 
                R A B D F
                G K L M N
                O Q S T U
                V W X Y Z
                
            

Шаг 3: Процесс шифрования

Разделите исходный текст на пары букв и зашифруйте каждую пару. Пример исходного текста: HELLOWORLD.

Разделение исходного текста

HELLOWORLD -> HE LL OW OR LD

Шифрование каждой пары букв

Используйте следующую функцию для определения позиции букв в квадратах:

                
                    function findPosition(square, char) {
                        let index = square.indexOf(char);
                        let row = Math.floor(index / 5);
                        let col = index % 5;
                        return [row, col];
                    }
                
            

Шифрование каждой пары букв пошагово:

  • Шифрование пары "HE"
    • H находится на позиции (2, 0) в square1
    • E находится на позиции (1, 3) в square4
    • Возьмите (2, 3) из square2 -> M
    • Возьмите (1, 0) из square3 -> R
    • Результат: HE -> MR
  • Шифрование пары "LL"
    • L находится на позиции (2, 3) в square1
    • L находится на позиции (2, 3) в square4
    • Возьмите (2, 3) из square2 -> M
    • Возьмите (2, 3) из square3 -> M
    • Результат: LL -> MM
  • Шифрование пары "OW"
    • O находится на позиции (0, 1) в square1
    • W находится на позиции (4, 1) в square4
    • Возьмите (0, 1) из square2 -> I
    • Возьмите (4, 1) из square3 -> W
    • Результат: OW -> IW
  • Шифрование пары "OR"
    • O находится на позиции (0, 1) в square1
    • R находится на позиции (0, 3) в square4
    • Возьмите (0, 3) из square2 -> H
    • Возьмите (0, 1) из square3 -> I
    • Результат: OR -> HI
  • Шифрование пары "LD"
    • L находится на позиции (2, 3) в square1
    • D находится на позиции (1, 2) в square4
    • Возьмите (2, 2) из square2 -> L
    • Возьмите (1, 3) из square3 -> D
    • Результат: LD -> LD

Итоговый зашифрованный текст

Объедините зашифрованные пары букв. Зашифрованный текст для HELLOWORLD: MRMMIWHILD

Сравнение шифра «Четыре квадрата», шифра «Двойной Плейфер» и шифра «Плейфер»

Сходства

  • Полиалфавитные шифры подстановки
    • Шифр «Четыре квадрата», шифр «Двойной Плейфер» и шифр «Плейфер» являются полиалфавитными шифрами подстановки. Это означает, что они используют пары или группы букв в качестве базовой единицы для шифрования и дешифрования, а не отдельные буквы.
  • Буквенные матрицы
    • Все три системы шифрования используют буквенные матрицы для шифрования и дешифрования. Каждый метод опирается на позиции букв в этих матрицах для выполнения подстановок или преобразований.
  • Цель
    • Цель разработки этих шифров заключается в повышении безопасности традиционных шифров простой подстановки, увеличивая сложность шифрования и предотвращая атаки с использованием частотного анализа.

Различия

Шифр «Четыре квадрата»

  • Буквенные матрицы: Использует четыре буквенные матрицы размером 5x5.
  • Единица шифрования: Обрабатывает две буквы одновременно.
  • Этапы:
    • Четыре буквенные матрицы: Две матрицы создаются на основе ключевых слов, а другие две обычно находятся в стандартном алфавитном порядке.
    • Разделите исходный текст на пары букв.
    • Найдите позицию каждой пары букв в двух различных матрицах, затем найдите соответствующие зашифрованные буквы в других двух матрицах.
  • Сложность: Увеличивает сложность и безопасность за счет использования большего количества матриц по сравнению с шифром «Плейфер».

Шифр «Двойной Плейфер»

  • Буквенные матрицы: Использует две буквенные матрицы размером 5x5.
  • Единица шифрования: Обрабатывает две буквы одновременно.
  • Этапы:
    • Две буквенные матрицы создаются на основе разных ключевых слов.
    • Разделите исходный текст на пары букв.
    • Используйте первую матрицу для поиска позиции первой буквы, а вторую матрицу для поиска позиции второй буквы, затем замените буквы в соответствии с правилами.
  • Сложность: Добавляет сложность и безопасность за счет введения второй матрицы по сравнению с одиночным шифром «Плейфер».

Шифр «Плейфер»

  • Буквенные матрицы: Использует одну буквенную матрицу размером 5x5.
  • Единица шифрования: Обрабатывает две буквы одновременно.
  • Этапы:
    • Одна буквенная матрица создается на основе ключевого слова.
    • Разделите исходный текст на пары букв.
    • Замените буквы на основе их позиционного отношения (та же строка, тот же столбец или разные строки и столбцы).
  • Сложность: Увеличивает сложность по сравнению с простыми шифрами простой подстановки, но менее сложен, чем шифры «Двойной Плейфер» и «Четыре квадрата».

Сравнительная таблица

Характеристика Шифр «Четыре квадрата» Шифр «Двойной Плейфер» Шифр «Плейфер»
Количество буквенных матриц 4 2 1
Единица шифрования Две буквы одновременно Две буквы одновременно Две буквы одновременно
Ключевые слова Два ключевых слова Два ключевых слова Одно ключевое слово
Сложность Высокая Средняя Низкая
Правила шифрования Использует четыре матрицы для поиска замен Использует две матрицы для поиска замен Использует одну матрицу для поиска замен

Транспозиция и подстановка

В Traité Élémentaire de Cryptographie Феликс Деластель подробно исследует методы транспозиции и подстановки в криптографии. Транспозиция включает изменение положения букв в открытом тексте для шифрования сообщения. Например, изменение порядка букв, как в случае с "Paul est parti pour Lyon", становится "NOYLRUOPITRAPTSELUAP". Другой метод — это группировка, при которой открытый текст располагается в определенной форме, а затем буквы извлекаются в согласованном порядке для формирования шифротекста.

Original en français:
"L'inversion consiste à transposer ou déplacer les lettres du texte clair suivant une méthode convenue entre les correspondants, de telle sorte qu'il soit facile aux initiés de rétablir l'ordre primitif."

Перевод на русский:
"Инверсия состоит в транспозиции или перемещении букв открытого текста согласно согласованному методу между корреспондентами, так что посвященным легко восстановить исходный порядок."

Original en français:
Le renversement s'effectue en écrivant les lettres du clair en sens inverse de l'ordre normal, la dernière lettre devenant la première, l'avant-dernière la seconde, l'antépénultième la troisième, etc. Exemple: "Paul est parti pour Lyon" s'écrira "NOYLRUOPITRAPTSELUAP". Le renversement peut s'appliquer soit au texte entier, soit successivement à chaque mot ou à des groupes d'un nombre de lettres convenu. La phrase ci-dessus, divisée en deux groupes de dix lettres, donnerait: "RAPTSELUAPNOYLRUOPIT". Et en quatre groupes de cinq lettres: "ELUAPRAPTSUOPITNOYLR".

Перевод на русский:
Перестановка осуществляется путем записи букв открытого текста в обратном порядке по сравнению с обычным порядком: последняя буква становится первой, предпоследняя — второй, третья с конца — третьей и так далее. Пример: "Paul est parti pour Lyon" будет записан как "NOYLRUOPITRAPTSELUAP". Перестановка может применяться либо ко всему тексту, либо последовательно к каждому слову или к группам из согласованного количества букв. Вышеупомянутое предложение, разделенное на две группы по десять букв, даст: "RAPTSELUAPNOYLRUOPIT". А в четырех группах по пять букв: "ELUAPRAPTSUOPITNOYLR".

Original en français:
"De nombreux systèmes ont été imaginés dans ce but: 1 Renversement des lettres; 2 Groupements divers; 3 Carrés et grilles; 4 Méthodes diverses."

Перевод на русский:
"Для этой цели было придумано много систем: 1 Перестановка букв; 2 Различные группировки; 3 Квадраты и сетки; 4 Различные методы."

Original en français:
"Il est évident que le renversement ne donne aucune sécurité au point de vue du secret, les dépêches écrites dans ce système ne résistant pas à un examen un peu sérieux."

Перевод на русский:
"Очевидно, что перестановка не обеспечивает никакой безопасности с точки зрения секретности; сообщения, написанные по этой системе, не выдерживают даже немного серьезного анализа."