Попробуйте шифр «Четыре квадрата»
Используйте предоставленные ниже инструменты для шифрования или дешифрования сообщения:
Шифрование
Дешифрование
Сгенерированные матрицы
Прекрасные моменты в истории
Шифр «Четыре квадрата»: исторический фон и принципы шифрования
Шифр «Четыре квадрата» — это метод симметричного шифрования, изобретенный французом Феликсом Деластелем (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."
Перевод на русский:
"Очевидно, что перестановка не обеспечивает никакой безопасности с точки зрения секретности; сообщения, написанные по этой системе, не выдерживают даже немного серьезного анализа."