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

Шифруем передаваемые на сайт данные с алгоритмом на основе хаотической системы Лоренца

Время на прочтение10 мин
Количество просмотров3.1K
Всего голосов 14: ↑13 и ↓1+12
Комментарии7

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

Ну по сути вы меняете только K1, что в первую очередь меняет определение этой системы, поэтому ваша система это не уравнения Лоренца и сперва нужно доказать что она обладает всеми теми свойствами что вы подразумеваете.

Подобной технической ошибки можно было бы избежать если бы функция

function fX(t, x, y, z, U) {
 return 10 * (U - x);
}

не была такой убогой - она зависит всего от 2х переменных, при этом U является y но назван иначе, всё это запутывает понимание того что на самом деле происходит и на первый взгляд всё может выглядеть корректно

Ну это пока MVP, я в процессе :)

Прикольно начать с "скоро квантовые компьютеры всё взломают", а потом представить кусок кода, который "надо бы проверить на криптостойкость".
В ФСТЭК и ФСБ такой подход наверняка оценят, так что продолжайте :)

Да, исследование только началось, впереди еще много работы.

Есть такая штука, осциллятор Неймарка. Это тоже система диффуров, но на две искомые функции. Мне кажется, он попроще.

со школьной скамьи интересуюсь криптографией…
проверить программную реализацию алгоритма на производительность и криптостойкость

Если бы вы действительно интересовались криптографией, то знали бы, что криптостойкость хорошего алгоритма шифрования определяется длинной ключа.
В вашем же алгоритме ключа похоже вообще не предусмотрено, что эквивалентно ключу длинной 0 бит, соответственно и криптостойкость его равна нулю.
По сути, ваше изобретение вообще не является алгоритмом шифрования. Даже если вытащить какой-то параметр наружу и обозвать это ключем то получиться фиговый симметричный алгоритм, который непонятно зачем вообще нужен, так как хороших криптостойких симметричных алгоритмов шифрования изобретено уже достаточно.
Фиговый — хотя бы потому что первый символ вообще не шифруется, алгоритм весь на float-ах, что плохо само по себе, ключ будет тоже float, а зашифрованное сообщение — массив float-ов, т.е. раздувает сообщение минимум в 2 раза на пустом месте.
с распространением квантовых вычислений может стать реальной проблемой

Квантовые компьютеры являются угрозой для асимметричных алгоритмов, для (хороших) симметричных алгоритмов они угрозы не представляют. Соответственно, требуется найти квантово устойчивый именно асимметричный алгоритм. Ваше же поделие допилить до асимметричного алгоритма вообще не преставляется возможным. Зачем вообще нужны асимметричные алгоритмы вы видимо тоже не в курсе.

Пардон за тупой вопрос, но как для ваших функций enc, dec математически доказывается, что dec(enc(x))==x forall x?
Судя по предъявленному коду, используются float/double переменные, которые (сюрприз-сюрприз) имеют ограниченную точность (то есть теряют информацию, то есть не могут быть обратимы). Обычно криптографические алгоритмы используют обратимые операции над конечными полями, что позволяет предъявить обратный алгоритм дешифровки.
Ну, и напоследок: а где ключ шифрования k? Чтобы вместо dec(enc(x))==x было dec(enc(x,k),k)==x

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