Библиотека Comparisons функций для решения сравнений из области криптологии содержит классы и методы, решающие все основные виды сравнений. Написана на языке программирования C# и компилируется в динамически загружаемую сборку DLL. Библиотека функций для решения сравнений может быть использована в задачах криптоанализа математических шифров.
Сравнение в общем виде это уравнение вида AB=C, где между A и B находится некоторое математическое действие, одно из сложения, вычитания, умножения, деления, взятия остатка. При этом действие выполняется по модулю два в тридцать второй степени и целочисленно. Например, решение сравнения x*x=C аналогично извлечению целочисленного квадратного корня из остатка от умножения. Да, это возможно и реализовано в библиотеке решения сравнений Comparisons. При этом библиотека решает как знаковые, так и беззнаковые сравнения над тридцати двух битными числами и при необходимости может быть исправлена для шестидесяти четырёх битовых целых чисел.
Сравнения решаются рекурсивным поиском в глубину с ранним опровержением гипотез - проверяемых решений. Раннее опровержение возможного решения, приведением его к противоречию, на небольшой глубине поиска, позволяет КОЛОССАЛЬНО сократить перебор и решить сравнение за доли секунды. Решение же одного тридцати двух битного сравнения полным перебором занимает больше 12 часов машинного времени. Если в шифре множество сравнений, то этот математический шифр полным перебором не взламывается.
Так как библиотека Comparisons элементарно решает сравнения за доли секунды, то и шифры, основанные на сложности решения сравнений - не стойкие, элементарно взламываются. Стойкие шифры не должны основываться на сложности решения сравнений, так как такой сложности в действительности нет вообще. Решение сравнения сложно не временно, а идейно, то есть не просто получить в голову идею решения сравнений. После того, как идея получена, запрограммирована и проверена, сложности уже нет, ни временной, ни пространственной - код решения сравнения занимает один экран. Для специалистов по искусственному интеллекту, к которым условно отношусь и я, с быстрыми алгоритмами эвристического поиска проблем не возникает.
Ниже перечисляются все виды знаковых и беззнаковых сравнений, решаемых библиотекой за секунды.
Решаемые сравнения
A+x = C
x+B = C
x + x = C
A - x = C
x - B = C
x - x = C
A * x = C
x * B = C
x * x = C
A / x = C
x / B = C
x / x = C
A % x = C
x % B = C
x % x = C
Обращайтесь ко мне по електронной почте и по телефону для покупки библиотеки решения сравнений Comparisons. Цена: $30 за копию. Телефон: 380-63-97-27-067
Возможно портирование библиотеки на другие языки и операционные системы, например, на нужный Вам язык программирования.