Страница 1 из 2
Pre-Encryption Algorithm
Добавлено: 25 мар 2025, 22:19
teleport
Я прочитал Вашу работу о методе
предварительного шифрования и хочу выразить Вам свое восхищение.
Из энтропии 2.78 бита на байт в изначальном сообщении
Код: Выделить всё
D0 BF D1 80 D0 BE D0 B2 D0 B5 D1 80 D0 BA D0 B0
Вы смогли сделать 4 бита на байт в обработанном по Вашему методу
Код: Выделить всё
D7 28 E1 F8 E3 66 94 3E BF 64 B8 AE 4C BC DD B1
Это действительно фантастика! Из трех созданных мною случайных последовательностей (каждая длиной по 16 байт) лишь одна достигла такого результата (4 бита энтропии на байт). Остальные две (чисто случайные!) были хуже (показатель энтропии был ниже четырех бит на байт). Более того, мои попытки случайным образом переставить биты в Вашей результирующей последовательности лишь ухудшали результат - энтропия падала ниже 4 бит на байт. То есть, судя по всему, показатель 4 бита энтропии на байт - предел для фрагмента длиной 16 байт. И Вам его удалось достичь.
Ваш метод действительно уникален! Это фантастика! От всей души поздравляю Вас с этим выдающимся результатом!
Re: Pre-Encryption Algorithm
Добавлено: 25 мар 2025, 22:39
george
teleport писал(а): ↑25 мар 2025, 22:19
То есть, судя по всему, показатель 4 бита энтропии на байт - предел для фрагмента длиной 16 байт. И Вам его удалось достичь.
Спасибо, за добрые слова. У меня те же цифры. Я и сам шокирован этими результатами. Не ожидал такого. Естественно, рад как слон.
Re: Pre-Encryption Algorithm
Добавлено: 26 мар 2025, 00:04
vendor
teleport писал(а): ↑25 мар 2025, 22:19
То есть, судя по всему, показатель 4 бита энтропии на байт - предел для фрагмента длиной 16 байт.
Ну, я думаю, надо будет все это еще проверить на более длинных фрагментах. Хотя я, конечно, не исключаю, что в итоге ситуация может, в общем, оказаться аналогичной. Похоже, что этот алгоритм действительно неплохо сработан.
Re: Pre-Encryption Algorithm
Добавлено: 26 мар 2025, 20:24
george
vendor писал(а): ↑26 мар 2025, 00:04
я думаю, надо будет все это еще проверить на более длинных фрагментах
На более длинных фрагментах результаты аналогичные. Хотя они и не всегда достигают (как в данном случае) теоретического предела, но каждый раз очень к нему близки. Что и впрямь доказывает высокое качество данного метода скремблирования.
Re: Pre-Encryption Algorithm
Добавлено: 27 мар 2025, 20:42
teleport
george писал(а): ↑26 мар 2025, 20:24
доказывает высокое качество данного метода скремблирования.
Я, конечно, дико извиняюсь, но что это там за новые процедуры в Вашем
коде появились
Код: Выделить всё
void shuffle_encrypt_buffer(unsigned char *buffer_ptr, int buffer_len)
{
shuffle_buffer(buffer_ptr, buffer_len, shuffle_encrypt_data);
shuffle_swap_l(buffer_ptr, buffer_len, 0xC3);
shuffle_buffer(buffer_ptr, buffer_len, shuffle_encrypt_data);
shuffle_rotate_l(buffer_ptr, buffer_len);
shuffle_buffer(buffer_ptr, buffer_len, shuffle_encrypt_data);
shuffle_twist(buffer_ptr, buffer_len);
shuffle_buffer(buffer_ptr, buffer_len, shuffle_encrypt_data);
shuffle_swap_l(buffer_ptr, buffer_len, 0x87);
shuffle_buffer(buffer_ptr, buffer_len, shuffle_encrypt_data);
}
Что это за shuffle_swap? Зачем Вы его добавили?
Re: Pre-Encryption Algorithm
Добавлено: 27 мар 2025, 20:49
george
teleport писал(а): ↑27 мар 2025, 20:42
Что это за shuffle_swap? Зачем Вы его добавили?
Я озаботился диаграммой частотного анализа символов после процедуры предварительного шифрования. Были некоторые пики, которые мне не понравились (конечно, никакого осмысленного текста там и в помине не было, но я привык все доводить до конца в плане совершенства). Теперь все достаточно равномерно выглядит. И, кстати, энтропия на больших русских текстах теперь (с этим свопом) доходит до 7.9 бит на байт. Что, конечно, тоже весьма приятно.
Re: Pre-Encryption Algorithm
Добавлено: 27 мар 2025, 21:01
vendor
george писал(а): ↑27 мар 2025, 20:49
энтропия на больших русских текстах теперь (с этим свопом) доходит до 7.9 бит на байт
Этот Ваш shuffle_swap неплохо реализован. Насколько я понимаю, там можно подставлять любую битовую маску. Сильная процедура, и мне лично, чисто по-человечески, жаль тех хакеров, которые после этого будут пытаться ломать Вашу систему. Сизифов труд, не иначе.
А не могли бы Вы показать народу упомянутую Вами гистограмму?
Re: Pre-Encryption Algorithm
Добавлено: 27 мар 2025, 21:09
george
vendor писал(а): ↑27 мар 2025, 21:01
А не могли бы Вы показать народу упомянутую Вами гистограмму?
Вот, пожалуйста (в русском тексте 8192 байта, то есть - около 4096 печатных символа):
Код: Выделить всё
Byte | Count | Percentage
--------------------------
0x00 | 22 | 0.27%
0x01 | 13 | 0.16%
0x02 | 42 | 0.51%
0x03 | 17 | 0.21%
0x04 | 14 | 0.17%
0x05 | 35 | 0.43%
0x06 | 43 | 0.52%
0x07 | 57 | 0.70%
0x08 | 24 | 0.29%
0x09 | 36 | 0.44%
0x0A | 48 | 0.59%
0x0B | 46 | 0.56%
0x0C | 47 | 0.57%
0x0D | 16 | 0.20%
0x0E | 35 | 0.43%
0x0F | 27 | 0.33%
0x10 | 9 | 0.11%
0x11 | 27 | 0.33%
0x12 | 13 | 0.16%
0x13 | 11 | 0.13%
0x14 | 35 | 0.43%
0x15 | 22 | 0.27%
0x16 | 31 | 0.38%
0x17 | 40 | 0.49%
0x18 | 36 | 0.44%
0x19 | 10 | 0.12%
0x1A | 34 | 0.42%
0x1B | 25 | 0.31%
0x1C | 27 | 0.33%
0x1D | 21 | 0.26%
0x1E | 28 | 0.34%
0x1F | 32 | 0.39%
0x20 | 36 | 0.44%
0x21 | 33 | 0.40%
0x22 | 30 | 0.37%
0x23 | 42 | 0.51%
0x24 | 14 | 0.17%
0x25 | 42 | 0.51%
0x26 | 33 | 0.40%
0x27 | 48 | 0.59%
0x28 | 5 | 0.06%
0x29 | 23 | 0.28%
0x2A | 20 | 0.24%
0x2B | 35 | 0.43%
0x2C | 40 | 0.49%
0x2D | 25 | 0.31%
0x2E | 17 | 0.21%
0x2F | 22 | 0.27%
0x30 | 24 | 0.29%
0x31 | 32 | 0.39%
0x32 | 22 | 0.27%
0x33 | 39 | 0.48%
0x34 | 30 | 0.37%
0x35 | 34 | 0.42%
0x36 | 39 | 0.48%
0x37 | 30 | 0.37%
0x38 | 33 | 0.40%
0x39 | 48 | 0.59%
0x3A | 39 | 0.48%
0x3B | 50 | 0.61%
0x3C | 33 | 0.40%
0x3D | 28 | 0.34%
0x3E | 45 | 0.55%
0x3F | 43 | 0.52%
0x40 | 20 | 0.24%
0x41 | 28 | 0.34%
0x42 | 41 | 0.50%
0x43 | 25 | 0.31%
0x44 | 63 | 0.77%
0x45 | 11 | 0.13%
0x46 | 44 | 0.54%
0x47 | 23 | 0.28%
0x48 | 24 | 0.29%
0x49 | 42 | 0.51%
0x4A | 52 | 0.63%
0x4B | 37 | 0.45%
0x4C | 47 | 0.57%
0x4D | 37 | 0.45%
0x4E | 12 | 0.15%
0x4F | 22 | 0.27%
0x50 | 8 | 0.10%
0x51 | 14 | 0.17%
0x52 | 39 | 0.48%
0x53 | 25 | 0.31%
0x54 | 18 | 0.22%
0x55 | 12 | 0.15%
0x56 | 22 | 0.27%
0x57 | 50 | 0.61%
0x58 | 21 | 0.26%
0x59 | 19 | 0.23%
0x5A | 44 | 0.54%
0x5B | 51 | 0.62%
0x5C | 14 | 0.17%
0x5D | 18 | 0.22%
0x5E | 71 | 0.87%
0x5F | 15 | 0.18%
0x60 | 56 | 0.68%
0x61 | 23 | 0.28%
0x62 | 38 | 0.46%
0x63 | 37 | 0.45%
0x64 | 20 | 0.24%
0x65 | 25 | 0.31%
0x66 | 51 | 0.62%
0x67 | 30 | 0.37%
0x68 | 34 | 0.42%
0x69 | 54 | 0.66%
0x6A | 44 | 0.54%
0x6B | 75 | 0.92%
0x6C | 54 | 0.66%
0x6D | 16 | 0.20%
0x6E | 40 | 0.49%
0x6F | 33 | 0.40%
0x70 | 24 | 0.29%
0x71 | 29 | 0.35%
0x72 | 32 | 0.39%
0x73 | 25 | 0.31%
0x74 | 27 | 0.33%
0x75 | 25 | 0.31%
0x76 | 41 | 0.50%
0x77 | 14 | 0.17%
0x78 | 27 | 0.33%
0x79 | 32 | 0.39%
0x7A | 33 | 0.40%
0x7B | 45 | 0.55%
0x7C | 32 | 0.39%
0x7D | 30 | 0.37%
0x7E | 48 | 0.59%
0x7F | 34 | 0.42%
0x80 | 27 | 0.33%
0x81 | 64 | 0.78%
0x82 | 30 | 0.37%
0x83 | 41 | 0.50%
0x84 | 33 | 0.40%
0x85 | 36 | 0.44%
0x86 | 45 | 0.55%
0x87 | 25 | 0.31%
0x88 | 49 | 0.60%
0x89 | 38 | 0.46%
0x8A | 23 | 0.28%
0x8B | 34 | 0.42%
0x8C | 54 | 0.66%
0x8D | 41 | 0.50%
0x8E | 26 | 0.32%
0x8F | 39 | 0.48%
0x90 | 28 | 0.34%
0x91 | 23 | 0.28%
0x92 | 33 | 0.40%
0x93 | 26 | 0.32%
0x94 | 37 | 0.45%
0x95 | 35 | 0.43%
0x96 | 25 | 0.31%
0x97 | 29 | 0.35%
0x98 | 22 | 0.27%
0x99 | 19 | 0.23%
0x9A | 36 | 0.44%
0x9B | 33 | 0.40%
0x9C | 55 | 0.67%
0x9D | 42 | 0.51%
0x9E | 32 | 0.39%
0x9F | 10 | 0.12%
0xA0 | 15 | 0.18%
0xA1 | 31 | 0.38%
0xA2 | 43 | 0.52%
0xA3 | 23 | 0.28%
0xA4 | 26 | 0.32%
0xA5 | 28 | 0.34%
0xA6 | 31 | 0.38%
0xA7 | 14 | 0.17%
0xA8 | 20 | 0.24%
0xA9 | 55 | 0.67%
0xAA | 33 | 0.40%
0xAB | 21 | 0.26%
0xAC | 20 | 0.24%
0xAD | 9 | 0.11%
0xAE | 39 | 0.48%
0xAF | 33 | 0.40%
0xB0 | 26 | 0.32%
0xB1 | 32 | 0.39%
0xB2 | 78 | 0.95%
0xB3 | 14 | 0.17%
0xB4 | 20 | 0.24%
0xB5 | 24 | 0.29%
0xB6 | 42 | 0.51%
0xB7 | 39 | 0.48%
0xB8 | 24 | 0.29%
0xB9 | 29 | 0.35%
0xBA | 25 | 0.31%
0xBB | 68 | 0.83%
0xBC | 29 | 0.35%
0xBD | 16 | 0.20%
0xBE | 31 | 0.38%
0xBF | 27 | 0.33%
0xC0 | 27 | 0.33%
0xC1 | 28 | 0.34%
0xC2 | 33 | 0.40%
0xC3 | 15 | 0.18%
0xC4 | 35 | 0.43%
0xC5 | 32 | 0.39%
0xC6 | 23 | 0.28%
0xC7 | 22 | 0.27%
0xC8 | 27 | 0.33%
0xC9 | 24 | 0.29%
0xCA | 46 | 0.56%
0xCB | 50 | 0.61%
0xCC | 33 | 0.40%
0xCD | 23 | 0.28%
0xCE | 47 | 0.57%
0xCF | 32 | 0.39%
0xD0 | 24 | 0.29%
0xD1 | 22 | 0.27%
0xD2 | 33 | 0.40%
0xD3 | 46 | 0.56%
0xD4 | 25 | 0.31%
0xD5 | 20 | 0.24%
0xD6 | 45 | 0.55%
0xD7 | 32 | 0.39%
0xD8 | 25 | 0.31%
0xD9 | 70 | 0.85%
0xDA | 30 | 0.37%
0xDB | 13 | 0.16%
0xDC | 38 | 0.46%
0xDD | 23 | 0.28%
0xDE | 33 | 0.40%
0xDF | 46 | 0.56%
0xE0 | 35 | 0.43%
0xE1 | 35 | 0.43%
0xE2 | 27 | 0.33%
0xE3 | 29 | 0.35%
0xE4 | 36 | 0.44%
0xE5 | 35 | 0.43%
0xE6 | 36 | 0.44%
0xE7 | 53 | 0.65%
0xE8 | 36 | 0.44%
0xE9 | 30 | 0.37%
0xEA | 17 | 0.21%
0xEB | 33 | 0.40%
0xEC | 35 | 0.43%
0xED | 31 | 0.38%
0xEE | 20 | 0.24%
0xEF | 30 | 0.37%
0xF0 | 23 | 0.28%
0xF1 | 29 | 0.35%
0xF2 | 29 | 0.35%
0xF3 | 42 | 0.51%
0xF4 | 40 | 0.49%
0xF5 | 31 | 0.38%
0xF6 | 34 | 0.42%
0xF7 | 37 | 0.45%
0xF8 | 26 | 0.32%
0xF9 | 24 | 0.29%
0xFA | 42 | 0.51%
0xFB | 40 | 0.49%
0xFC | 32 | 0.39%
0xFD | 64 | 0.78%
0xFE | 28 | 0.34%
0xFF | 22 | 0.27%
До внедрения процедуры свопа ситуация была намного хуже. Теперь, я считаю, все это выглядит уже вполне приемлемо.
Re: Pre-Encryption Algorithm
Добавлено: 28 мар 2025, 16:22
teleport
vendor писал(а): ↑27 мар 2025, 21:01
Насколько я понимаю, там можно подставлять любую битовую маску.
Вы как в воду глядели: уже поставили. Еще вчера
там стояли конкретные значения, а сегодня - какие-то непонятные SHUFFLE_SWAP_STEP_1 и SHUFFLE_SWAP_STEP_2. Засекретили, что ли? Не пойму. А как же принцип открытости кода?
Re: Pre-Encryption Algorithm
Добавлено: 28 мар 2025, 16:33
george
teleport писал(а): ↑28 мар 2025, 16:22
А как же принцип открытости кода?
С открытостью кода у нас все в порядке. Он по-прежнему у Вас перед глазами. Мы свято чтим наследие Керкгоффса, и никому не дадим его в обиду. Но то, о чем идет речь (SHUFFLE_SWAP_STEP_1 и SHUFFLE_SWAP_STEP_2) - это не код. Это - ключи. И у нас нет никакой необходимости их разглашать (облегчая жизнь хакерам и конкурентам). С точки зрения криптостойкости всей системы, их конкретные значения несущественны. Могу лишь сказать, что каждый из этих ключей содержит некое (отличное от нуля) количество установленных бит и некоторое (тоже отличное от нуля) количество бит сброшенных. Мы изучаем вопрос оптимальности этих ключей исходя из критерия максимизации энтропии предварительно шифруемых данных и минимизации дисперсии гистограмм распределения кодов символов. Реально используемые в нашей системе коды (SHUFFLE_SWAP_STEP_1 и SHUFFLE_SWAP_STEP_2) тщательно подобраны нами исходя из этих соображений.