Как стать автором
Обновить

Комментарии 34

Если последовать принципу Керкгоффса, то для определения ключа необходимо n пар открытый-закрытый текст.
Зачем эта статья? Или объяили неделю приложений линейной алгебры?
Да не занудствуйте, было же интересно.
Да только вот можно и промахнуться, пары открытый-закрытый текст может быть полной бессмыслицей, например если помимо всего прочего вы используете еще какой-то алгоритм для шифровки, взять хотя бы простейший шифр Цезаря, да понятно что перебрать все его варианты это O (n), где n — длина алфавита, но это уже время, а если при этом сдвиг меняется после каждого сеанса по заранее обговоренным условиям, например по корням определителя матрицы многочленов, над кольцом многочленов по модулю скажем 45 — го знака числа π, то это уже проблема.
Ознакомтесь с принципом Кергоффса.
Содержание пар не имеет значения, главное чтобы они образовывали базис.
В остальном — если внутрь запихнуть aes то вообще можно не парится.

Ну, не обязательно aes запихивать. Композицию любых двух алгоритмов шифрования взломать сложнее чем оба алгоритма по-отдельности. Если у них ключи независимы, конечно же. И UB в реализации нет.

Композиция двух простых замен на разных ключах эквивалентна простой замене на третьем ключе.
Не устаю приводить ссылку на замечательный пост.

Простых замен — да, эквивалентна. А вот простая замена с шифром Хила уже не упрощаются до более простого алгоритма.


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

Вы знаете доказательство того, что простая замена с Хиллом не упрощается?

Я знаю доказательство того, что простая замена с Хиллом не упрощается до одной из составных частей.

Предъявите пожалуйста.

Вот немного нестрогое доказательство, потому что строгое писать в комментарии неудобно из-за отсутствия нормальной разметки.


Если заметить, что композиция двух простых шифров — простой шифр, композиция двух Хиллов — Хилл, а обратные преобразования к простому шифту и Хиллу являются тоже простым шифром и Хиллом, то в уравнениях T * Х1 = Х2 и T1 * Х = T2 (где T — простой шифр, Х — алгоритм Хилла) можно перенести все простые шифры в левую часть, а всех Хиллов — в правую, получив уравнение вида T3 = Х3.


Таким образом, композиция указанных двух алгоритмов может быть эквивалентна одному из алгоритмов-компонент тогда и только тогда когда найдутся эквивалентные друг другу простой шифр и алгоритм Хилла. Но для нетривиальных алгоритмов это невозможно, потому что у них разные размеры блоков.

В последнем предложении — ошибка.

Поясните.

Рассмотрим простую замену при которой каждый символ меняется путем умножения наобратимый элемент кольца.
Тогда с таким ключем данная простая замена будет эквивалентна шифру Хилла. И композиция даст шифр Хилла.

Ок, согласен. Надо поправить формулировку теоремы, но мне лень.


Тем не менее, замечу, что предложенный вами алгоритм, хоть и относится к семейству простых замен — но с точки зрения принципа Керкгоффса простой заменой не является. Потому что у шифра простой замены ключ — это целая таблица подстановки, а у умножения в поле вычетов — один символ.

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

Секретный алгоритм способ получения ключа? :-)

В смысле?
Один символ будет в этом фактически этим ключом.

Мы всего сможем получить столько различных вариантов ключа, сколько у нас есть различных символов, без возведения в степень — длину таблицы. Короче, существует вполне себе эффективный исследователь, «брутфорс», который различит ваш сфабрикованный ключ и настоящую случайную таблицу, значит, не эквивалентны.
В простой замене не сказано какая должна быть таблица замены. В том числе она может быть такой, как я написал.
В простой замене предполагается, что мощность пространства ключей — N^M, где M — длина таблицы. А вы делаете замену с пространством всего лишь N, а потом распространяете выводы, полученные для неё, на все простые замены. Это некорректно.
Я не писал про все. Я писал про то что существуют такие ключи для которых…
Ну, N слабых ключей из N^M — это для практических N и M пренебрежимо малая вероятность.
Без коментариев.
Этот алгоритм поиска обратного элемента я подобрал экспериментальным путем, т.к. не мог найти ровным счетом ничего полезного по этой теме.

Не, ну вы серьёзно? Это ж база. Ищется тем же расширенным алгоритмом Евклида для пары (число, модуль). Подробнее здесь.

Так он его и использовал. Только он не догадался перед применением алгоритма загнать определитель в кольцо вычетов, отсюда и появился случай с отрицательным определителем, который пришлось докостыливать.

Получаем такую матрицу, тут важно не терять знаки у элементов (некоторые выполняют деление по модулю с потерей минусов, в данном алгоритме это недопустимо):

Скажите, а почему убрать отрицательные элементы на данном этапе — недопустимо?


Я бы напротив, советовал избавляться от отрицательных элементов на каждом этапе, добавляя к ним 37. Это избавило бы от "сложных и важных вещей" на шагах 4 и 5.

Тут скорее автор имел ввиду что многие просто про них забывают и модулируют без них. ИМХО

… и что же такого страшного при этом случается? Независимо от того, какая из двух операций нахождения остатка используется — ее можно применить и так и забыть. Оба варианта эквивалентны в используемом поле вычетов.

Тут скорее автор комментария имел в виду, что автор имел а виду, что многие просто при слове модуль считают числа -13 и 13 эквивалентными (на самом деле не знаю кто так может считать)
Только длина ключа равная квадрату числа — не единственное требование к нему.
Вы считаете определитель матрицы, а он может оказаться нулем. Нужно ещё и чтобы столбцы были линейно-независимыми, и тут уже оперировать словами языка в качестве ключа становится невозможно. Вам повезло с альпинизмом.

Автор это учел:


Также важным фактором для данного шифра является определитель матрицы ключа: он должен быть отличным от нуля, иначе расшифровку зашифрованного текста будет невозможно осуществить.

Кстати, вероятность того, что случайный ключ будет "плохим" — чуть больше чем 1/37 (более точно: 1/37 + 1/372 — 1/373). Так что не так уж и сильно автору повезло с альпинизмом.

Я это и написал?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации