На главную страницу | Форум |
Определенно в обществе существуют идолы и идолопоклонники. Авторитет какого либо деятеля может быть непререкаемым. Именно в таком положении оказалась криптография, благодаря авторитету Клода Шеннона. В своем докладе "Математическая теория криптографии" от 1 сентября 1945 г. (в данное время рассекречен), он посвятил всего лишь несколько строк матричной системе. Цитирую:
"Матричная система .
Имеется один метод подстановки n-грамм, который заключается в применении к
последовательным n-граммам некоторой матрицы, имеющей обратную . Предполагается, что буквы занумерованы от 0 до 25 и рассматриваются как элементы некоторого алгебраического кольца . Если к n-грамме сообщения применить матрицу aij то получится n-грамма криптограммы:Матрица
aij является ключом, и расшифровка выполняется с помощью обратной матрицы . Обратная матрица будет существовать тогда и только тогда , когда определитель |aij| имеет обратный элемент в нашем кольце."К. Шеннон полагал, что избыточность играет центральную роль в изучении секретных систем (по докладу) и основную часть посвятил именно выявлению избыточности в шифрограммах. Данный подход этого авторитета прослеживается практически во всех видах деятельности с которыми он сталкивался, а посему и выводы о том, что если вероятности встречи символов в шифрограмме равны, то криптосистема, по его мнению должна быть "идеальной".
Наличие в "криптограмме" ("шифрограмме") положительной избыточности - это вовсе не криптография, а всего лишь шенноновский дебилизм.Хорст Фейстель в своей "Криптография и компьютерная безопасность" высказывает мнение, что шифр Вернама (или его еще называют "одноразовым блокнотом") является невскрываемым. Но по причине того, что для практического применения необходимо иметь значительный объем данных для ключа, полагает, что его использование предпочтительно лишь в целях весьма повышенной секретности.
Что же подразумевается под термином "невскрываемый"? То, что любой ключ является "подходящим". Не в смысле расшифровки до исходного сообщения, а в смысле, того, что любитель чужих секретов должен перебрать все возможные варианты ключей и просмотреть все "вскрытые" таким макаром сообщения, дабы среди них найти, то, что он хочет увидеть.
Остановимся на этих двух положениях:
Если всего эти два условия, то идеальная криптографическая система уже создана. Причем это матричная система. А алгебра матриц, в отличие от статистики, то самое слабое место, которое Клод Шеннон старался обойти краткими оговорками. С какой это стати матрица должна быть ключом, даже если Шеннону так учудилось?
На самом деле алгоритм гораздо проще, нежели кажется. Достаточно взять любое (не)линейное уравнение. Результирующий столбец будет исходным сообщением, а неизвестные - шифрограммой. В этом случае, если имеется единственное решение, то можно получить и шифрограмму и обратно результирующий столбец. А теперь разбавим результирующий столбец не только исходным сообщением, но и значениями ключа шифра. Решим систему уравнений. А теперь удалим все значения неизвестных с помощью которых можно вычислить ключ, так чтобы оставшиеся, будучи вставленными в систему уравнений оказались взаимно линейно неразрешимыми - каждая оставшаяся строка содержит как минимум три неизвестных, значения которых необходимы для восстановления линейной зависимости (причем, арифметические комбинации этих самых неизвестных ни разу не повторяются). Остаток шифрограммы можно спокойно передавать. На другом конце можно решить ту же самую задачу, вставив значения ключа и решив систему уравнений, получить результирующий столбец, таким, каким он был в самом начале.
В результате мы получаем систему с любым подходящим ключом, т.к. система линейных уравнений, состоящая из взаимно линейно неразрешимых строк, имеет множество решений. А значит система "невскрываема" и ее неопределенность равна потенциальному количеству информации суммы всех возможных ключей.
Осталось только выяснить, а существует ли возможность исследования с целью дальнейшего вскрытия данной системы статистическими методами? Можете не беспокоиться. Не существует. Все дело в том, что матрица линейного уравнения мною построена так же, как и универсальный аппроксиматор. Предположим, что любитель чужих секретов обнаружил в шифрограмме некоторую закономерность (вопросительными знаками помечены неизвестные линейного уравнения):
? B ? D E F G ? I J
Начитавшись Шеннона, он предположит, что полная последовательность должна быть:
А B С D E F G H I J
Пусть предполагает! Ведь дуракам, особенно тем, что абсолютно полагаются на авторитетов, закон не писан. Мы же сделаем ключ немного иным, чтобы полная последовательность скрываемая нашим шифром была, например такой:
x B Z D E F G а I J
И все.
Дело в том, что мне удалось открыть алгоритм точной аппроксимации любых последовательностей данных, которые могут противоречить аксиомам математической индукции и совершенно несоответствовать коэффициенту статистической корреляции. Пусть идиоты дальше полагаются на Шеннона и прочих "криптоаналитиков", а мы будем действовать вопреки всем правилам изложенным в докладах умников и их популярных книжонках.
Программа, которую я создал для идеальной криптографии называется "Панацея". В ее основе линейные уравнения с квадратной матрицей 256x256. Результирующий столбец содержит 247 байт исходного сообщения и 9 байт ключа, на выходе соответственно тоже блоки информации по 247 байт. Естественно, что ключ подойдет любой, а восстановит исходное сообщение только оригинальный. Поэтому никакие брутфорсы тут не помогут: система без ключа неразрешима и детерминированная машина А. Тьюринга не сможет остановиться. Но проблема многих шифров, в т.ч. и Вернама в том, что если потенциальный хакер поимеет возможность ознакомиться и с исходным текстом и с шифрограммой, то ключ будет им вскрыт. Чтобы избежать подобного инцидента, помимо решения линейных уравнений, также применяется и предварительное перемешивание данных по ключу. (Подстановки, которым Шеннон уделил столько времени, в отличие от перемешиваний - здесь мертвому припарки, поскольку система линейных уравнений остается неизменной, а меняются лишь коэффициенты). В результате чего, для выявления ключа хакеру хакеру все же придется перебирать варианты, но его задача из неразрешимой, станет решаемой за конечное время - есть с чем сравнить результат.
Система работает с файлами, т.е. шифрует только файловые потоки. Чтобы избежать накладок при возможном повреждении данных во время передачи информации, каждый файл содержит контрольную сумму по алгоритму Adler32 (хакеры могут отдыхать, контрольная сумма совпадет, даже если не совпадет ключ с оригиналом).
Принцип действия программы прост. Надо ввести 9 символьный пароль и повторить его ввод. После чего активизируются две кнопки: "Шифровать" и "Дешифровать". После нажатия на любую из них, система спросит имена исходного и шифрованного файлов (всплывающие файловые диалоговые окна) и деактивизирует соответствующую кнопку. После окончания (де)шифрования, кнопка становится опять активной.
Система написана на языке Java и распространяется в открытых исходниках по General Public License. Т.е. каждый желающий может не просто ознакомиться с алгоритмом, но и при желании, даже усовершенствовать его под свои нужды.
Загрузить программное обеспечение криптосистемы "Панацея" можно с сайта FREESOFT.RU . Исходники вложены внутрь архива (*.jar - это zip архивы) Panacea.jar в директории /panacea и имеют расширения *.java (текст лицензии там же).
Запуск программы выполняется из командной строки:
для запуска в графическом режиме:javaw -jar Panacea.jar
или для запуска в консольном режиме:java -jar Panacea.jar e sourcefile destfile password
java -jar Panacea.jar d sourcefile destfile password
где:Ну, а что же дальше? Как многие наверное заметили, система с закрытым ключом. Переделать ее в систему с ключом открытым невозможно - она станет разрешимой. Но это не проблема. На самом деле можно создать алгоритм секретной передачи ключа.
Пусть некто В хочет связаться с А (каналы связи между ними ненадежны). А выставляет (например, на своем сайте) сообщение зашифрованное половинкой ключа. В берет эту неоконченную шифрограмму и подставив по алгоритму вместо неизвестных свою версию второй половинки ключа, дошифровывает сообщение до конца и передает результат А. Поскольку А известна исходная информация содержащаяся в сообщении, то он легко восстанавливает переданную половинку.
Таким образом происходит обмен. Точнее будет происходить, т.к. готовая версия пока еще незакончена.
09 декабря 2004 г.