Pre-Encryption Algorithm

Обсуждение системы коммерческой шифросвязи от Extra Systems
Аватара пользователя
teleport
Сообщения: 15
Зарегистрирован: 02 мар 2025, 15:35
Откуда: Marseille, France

Pre-Encryption Algorithm

Сообщение 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 байт. И Вам его удалось достичь.

Ваш метод действительно уникален! Это фантастика! От всей души поздравляю Вас с этим выдающимся результатом!
Последний раз редактировалось teleport 25 мар 2025, 23:17, всего редактировалось 1 раз.
Аватара пользователя
george
Администратор
Сообщения: 27
Зарегистрирован: 04 апр 2024, 14:35
Откуда: Киев, Украина
Контактная информация:

Re: Pre-Encryption Algorithm

Сообщение george »

teleport писал(а): 25 мар 2025, 22:19 То есть, судя по всему, показатель 4 бита энтропии на байт - предел для фрагмента длиной 16 байт. И Вам его удалось достичь.
Спасибо, за добрые слова. У меня те же цифры. Я и сам шокирован этими результатами. Не ожидал такого. Естественно, рад как слон.
Аватара пользователя
vendor
Сообщения: 9
Зарегистрирован: 04 мар 2025, 22:37
Откуда: Bristol, UK

Re: Pre-Encryption Algorithm

Сообщение vendor »

teleport писал(а): 25 мар 2025, 22:19 То есть, судя по всему, показатель 4 бита энтропии на байт - предел для фрагмента длиной 16 байт.
Ну, я думаю, надо будет все это еще проверить на более длинных фрагментах. Хотя я, конечно, не исключаю, что в итоге ситуация может, в общем, оказаться аналогичной. Похоже, что этот алгоритм действительно неплохо сработан.
Аватара пользователя
george
Администратор
Сообщения: 27
Зарегистрирован: 04 апр 2024, 14:35
Откуда: Киев, Украина
Контактная информация:

Re: Pre-Encryption Algorithm

Сообщение george »

vendor писал(а): 26 мар 2025, 00:04 я думаю, надо будет все это еще проверить на более длинных фрагментах
На более длинных фрагментах результаты аналогичные. Хотя они и не всегда достигают (как в данном случае) теоретического предела, но каждый раз очень к нему близки. Что и впрямь доказывает высокое качество данного метода скремблирования.
Аватара пользователя
teleport
Сообщения: 15
Зарегистрирован: 02 мар 2025, 15:35
Откуда: Marseille, France

Re: Pre-Encryption Algorithm

Сообщение 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? Зачем Вы его добавили?
Аватара пользователя
george
Администратор
Сообщения: 27
Зарегистрирован: 04 апр 2024, 14:35
Откуда: Киев, Украина
Контактная информация:

Re: Pre-Encryption Algorithm

Сообщение george »

teleport писал(а): 27 мар 2025, 20:42 Что это за shuffle_swap? Зачем Вы его добавили?
Я озаботился диаграммой частотного анализа символов после процедуры предварительного шифрования. Были некоторые пики, которые мне не понравились (конечно, никакого осмысленного текста там и в помине не было, но я привык все доводить до конца в плане совершенства). Теперь все достаточно равномерно выглядит. И, кстати, энтропия на больших русских текстах теперь (с этим свопом) доходит до 7.9 бит на байт. Что, конечно, тоже весьма приятно.
Аватара пользователя
vendor
Сообщения: 9
Зарегистрирован: 04 мар 2025, 22:37
Откуда: Bristol, UK

Re: Pre-Encryption Algorithm

Сообщение vendor »

george писал(а): 27 мар 2025, 20:49 энтропия на больших русских текстах теперь (с этим свопом) доходит до 7.9 бит на байт
Этот Ваш shuffle_swap неплохо реализован. Насколько я понимаю, там можно подставлять любую битовую маску. Сильная процедура, и мне лично, чисто по-человечески, жаль тех хакеров, которые после этого будут пытаться ломать Вашу систему. Сизифов труд, не иначе.

А не могли бы Вы показать народу упомянутую Вами гистограмму?
Аватара пользователя
george
Администратор
Сообщения: 27
Зарегистрирован: 04 апр 2024, 14:35
Откуда: Киев, Украина
Контактная информация:

Re: Pre-Encryption Algorithm

Сообщение 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%
До внедрения процедуры свопа ситуация была намного хуже. Теперь, я считаю, все это выглядит уже вполне приемлемо.
Аватара пользователя
teleport
Сообщения: 15
Зарегистрирован: 02 мар 2025, 15:35
Откуда: Marseille, France

Re: Pre-Encryption Algorithm

Сообщение teleport »

vendor писал(а): 27 мар 2025, 21:01 Насколько я понимаю, там можно подставлять любую битовую маску.
Вы как в воду глядели: уже поставили. Еще вчера там стояли конкретные значения, а сегодня - какие-то непонятные SHUFFLE_SWAP_STEP_1 и SHUFFLE_SWAP_STEP_2. Засекретили, что ли? Не пойму. А как же принцип открытости кода?
Аватара пользователя
george
Администратор
Сообщения: 27
Зарегистрирован: 04 апр 2024, 14:35
Откуда: Киев, Украина
Контактная информация:

Re: Pre-Encryption Algorithm

Сообщение george »

teleport писал(а): 28 мар 2025, 16:22 А как же принцип открытости кода?
С открытостью кода у нас все в порядке. Он по-прежнему у Вас перед глазами. Мы свято чтим наследие Керкгоффса, и никому не дадим его в обиду. Но то, о чем идет речь (SHUFFLE_SWAP_STEP_1 и SHUFFLE_SWAP_STEP_2) - это не код. Это - ключи. И у нас нет никакой необходимости их разглашать (облегчая жизнь хакерам и конкурентам). С точки зрения криптостойкости всей системы, их конкретные значения несущественны. Могу лишь сказать, что каждый из этих ключей содержит некое (отличное от нуля) количество установленных бит и некоторое (тоже отличное от нуля) количество бит сброшенных. Мы изучаем вопрос оптимальности этих ключей исходя из критерия максимизации энтропии предварительно шифруемых данных и минимизации дисперсии гистограмм распределения кодов символов. Реально используемые в нашей системе коды (SHUFFLE_SWAP_STEP_1 и SHUFFLE_SWAP_STEP_2) тщательно подобраны нами исходя из этих соображений.
Ответить