Трехраздельный шифр
Тройной шифр — классический шифр, изобретенный Феликсом Деластелем и описанный в 1902 году. [1] Расширяя принципы более раннего бифидного шифра Деластеля , он сочетает в себе методы фракционирования и транспонирования для достижения определенной степени путаницы и диффузии : каждая буква зашифрованного текста зависит от трех букв открытого текста и до трех букв ключа.
Шифр тройного деления использует таблицу для разделения каждой буквы открытого текста на триграмму . [2] смешивает составляющие триграмм, а затем применяет таблицу в обратном порядке, чтобы превратить эти смешанные триграммы в буквы зашифрованного текста. Деластель отмечает, что наиболее практичная система использует три символа для триграмм: [3]
Чтобы разделить буквы на три части, необходимо изобразить их группой из трех знаков или цифр. Зная, что n объектов, объединенных в триграммы всеми возможными способами, дают n × n × n = n 3 , мы понимаем, что три — единственное значение n ; двое дадут только 2 3 = 8 триграмм, а четыре дадут 4 3 = 64, но три дают 3 3 = 27.
Описание
[ редактировать ]Как обсуждалось выше, для шифра требуется смешанный алфавит из 27 букв: мы следуем Деластелле, используя знак плюса в качестве 27-й буквы. [4] Традиционный метод построения смешанного алфавита из ключевого слова или фразы заключается в выписывании уникальных букв ключа по порядку, а затем остальных букв алфавита в обычном порядке. [5] Например, ключ FELIX MARIE DELASTELLE дает смешанный алфавит FELIXMARDSTBCGHJKNOPQUVWYZ+.
Каждой букве смешанного алфавита мы присваиваем одну из 27 триграмм (111, 112, …, 333), заполняя куб 3 × 3 × 3 буквами смешанного алфавита и используя декартовы координаты каждой буквы в качестве соответствующая триграмма.
Слой 1 | Слой 2 | Слой 3 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 2 | 3 | 1 | 2 | 3 | 1 | 2 | 3 | |||||
1 | Ф | И | л | 1 | С | Т | Б | 1 | ТО | П | вопрос | ||
2 | я | Х | М | 2 | С | Г | ЧАС | 2 | В | V | В | ||
3 | А | Р | Д | 3 | Дж | К | Н | 3 | И | С | + |
Из этого кубика строим таблицы для шифрования букв как триграмм и расшифровки триграмм как букв:
Шифровальный алфавит | Расшифровка алфавита | |||||
---|---|---|---|---|---|---|
А = 131 | Дж = 231 | С = 211 | 111 = Ф | 211 = С | 311 = О | |
Б = 213 | К = 232 | Т = 212 | 112 = Е | 212 = Т | 312 = П | |
С = 221 | Л = 113 | У = 321 | 113 = Л | 213 = Б | 313 = Вопрос | |
Д = 133 | М = 123 | V = 322 | 121 = Я | 221 = С | 321 = У | |
Е = 112 | Н = 233 | Ш = 323 | 122 = Х | 222 = Г | 322 = V | |
Ж = 111 | О = 311 | Х = 122 | 123 = М | 223 = Ч | 323 = Вт | |
Г = 222 | Р = 312 | Д = 331 | 131 = А | 231 = Дж | 331 = И | |
Н = 223 | Вопрос = 313 | З = 332 | 132 = Р | 232 = К | 332 = Я | |
я = 121 | Р = 132 | + = 333 | 133 = Д | 233 = Н | 333 = + |
Протокол шифрования делит открытый текст на группы фиксированного размера (плюс, возможно, на одну короткую группу в конце): это ограничивает ошибки кодирования той группой, в которой они происходят. [6] важное соображение для шифров, которые должны быть реализованы вручную. Размер группы должен быть взаимно простым с 3, чтобы обеспечить максимальную степень диффузии внутри каждой группы: Делатель приводит примеры с группами из 5 и 7 букв. Он описывает этап шифрования следующим образом: [7]
Начинаем с того, что пишем вертикально под каждой буквой числовую триграмму, соответствующую ей в шифровальном алфавите: затем, двигаясь по горизонтали, как если бы числа были написаны в одну строку, мы берем группы из трех чисел, ищем их в расшифровочном алфавите, и запишите результат под каждым столбцом.
Например, если сообщение имеет вид aide-toi, le ciel t'aidera и размер группы равен 5, то шифрование происходит следующим образом:
a i d e-t o i l e c i e l t'a i d e r a 1 1 1.1 2 3 1 1.1 2 1 1 1.2 1 1 1 1.1 1 3.2 3 1.1 1.2 1 1.2 2.1 1 1.3 2.3 1 3.3 1 1.3 2 2 1 1.3 2 1 1 2.3 2 1 1 3.2 2 1 F M J F V O I S S U F T F P U F E Q Q C
В этой таблице периоды разграничивают триграммы, поскольку они читаются горизонтально в каждой группе, таким образом, в первой группе мы имеем 111 = F, 123 = M, 231 = J и так далее.
Примечания
[ редактировать ]- ^ Деластель, стр. 101–3.
- ^ Отсюда и название trifid , что означает «разделенный на три части» ( Оксфордский словарь английского языка ).
- ^ Деластель, с. 101: «Чтобы иметь возможность разбить буквы на три части…»
- ^ Деластель, с. 102: «Но во французском алфавите всего двадцать шесть букв…»
- ^ См . шифр замены .
- ^ Гейнс, с. 210.
- ^ Деластель, с. 102: «Начнем с вертикального написания под каждой буквой…»
Ссылки
[ редактировать ]- Деластель, Феликс (1902). Элементарный трактат по криптографии . Париж: Готье-Виллар.
- Гейнс, Хелен (1939). Криптоанализ: исследование шифров и их решение . Нью-Йорк: Дувр.