Это действительно фантастика! Из трех созданных мною случайных последовательностей (каждая длиной по 16 байт) лишь одна достигла такого результата (4 бита энтропии на байт). Остальные две (чисто случайные!) были хуже (показатель энтропии был ниже четырех бит на байт). Более того, мои попытки случайным образом переставить биты в Вашей результирующей последовательности лишь ухудшали результат - энтропия падала ниже 4 бит на байт. То есть, судя по всему, показатель 4 бита энтропии на байт - предел для фрагмента длиной 16 байт. И Вам его удалось достичь.
Ваш метод действительно уникален! Это фантастика! От всей души поздравляю Вас с этим выдающимся результатом!
Последний раз редактировалось teleport 25 мар 2025, 23:17, всего редактировалось 1 раз.
teleport писал(а): ↑25 мар 2025, 22:19
То есть, судя по всему, показатель 4 бита энтропии на байт - предел для фрагмента длиной 16 байт. И Вам его удалось достичь.
Спасибо, за добрые слова. У меня те же цифры. Я и сам шокирован этими результатами. Не ожидал такого. Естественно, рад как слон.
teleport писал(а): ↑25 мар 2025, 22:19
То есть, судя по всему, показатель 4 бита энтропии на байт - предел для фрагмента длиной 16 байт.
Ну, я думаю, надо будет все это еще проверить на более длинных фрагментах. Хотя я, конечно, не исключаю, что в итоге ситуация может, в общем, оказаться аналогичной. Похоже, что этот алгоритм действительно неплохо сработан.
vendor писал(а): ↑26 мар 2025, 00:04
я думаю, надо будет все это еще проверить на более длинных фрагментах
На более длинных фрагментах результаты аналогичные. Хотя они и не всегда достигают (как в данном случае) теоретического предела, но каждый раз очень к нему близки. Что и впрямь доказывает высокое качество данного метода скремблирования.
teleport писал(а): ↑27 мар 2025, 20:42
Что это за shuffle_swap? Зачем Вы его добавили?
Я озаботился диаграммой частотного анализа символов после процедуры предварительного шифрования. Были некоторые пики, которые мне не понравились (конечно, никакого осмысленного текста там и в помине не было, но я привык все доводить до конца в плане совершенства). Теперь все достаточно равномерно выглядит. И, кстати, энтропия на больших русских текстах теперь (с этим свопом) доходит до 7.9 бит на байт. Что, конечно, тоже весьма приятно.
george писал(а): ↑27 мар 2025, 20:49
энтропия на больших русских текстах теперь (с этим свопом) доходит до 7.9 бит на байт
Этот Ваш shuffle_swap неплохо реализован. Насколько я понимаю, там можно подставлять любую битовую маску. Сильная процедура, и мне лично, чисто по-человечески, жаль тех хакеров, которые после этого будут пытаться ломать Вашу систему. Сизифов труд, не иначе.
А не могли бы Вы показать народу упомянутую Вами гистограмму?
vendor писал(а): ↑27 мар 2025, 21:01
Насколько я понимаю, там можно подставлять любую битовую маску.
Вы как в воду глядели: уже поставили. Еще вчера там стояли конкретные значения, а сегодня - какие-то непонятные SHUFFLE_SWAP_STEP_1 и SHUFFLE_SWAP_STEP_2. Засекретили, что ли? Не пойму. А как же принцип открытости кода?
teleport писал(а): ↑28 мар 2025, 16:22
А как же принцип открытости кода?
С открытостью кода у нас все в порядке. Он по-прежнему у Вас перед глазами. Мы свято чтим наследие Керкгоффса, и никому не дадим его в обиду. Но то, о чем идет речь (SHUFFLE_SWAP_STEP_1 и SHUFFLE_SWAP_STEP_2) - это не код. Это - ключи. И у нас нет никакой необходимости их разглашать (облегчая жизнь хакерам и конкурентам). С точки зрения криптостойкости всей системы, их конкретные значения несущественны. Могу лишь сказать, что каждый из этих ключей содержит некое (отличное от нуля) количество установленных бит и некоторое (тоже отличное от нуля) количество бит сброшенных. Мы изучаем вопрос оптимальности этих ключей исходя из критерия максимизации энтропии предварительно шифруемых данных и минимизации дисперсии гистограмм распределения кодов символов. Реально используемые в нашей системе коды (SHUFFLE_SWAP_STEP_1 и SHUFFLE_SWAP_STEP_2) тщательно подобраны нами исходя из этих соображений.