Extra Systems Block Cipher (ESBC)

Автор: Юрій Павленко
Компанія: Extra Systems
Рік розробки: 2026
Контакти: esbc@extrasystems.biz


Вступ

ESBC є 512-бітовим блоковим шифром, розробленим спеціально для сучасних 64-бітових обчислювальних архітектур. На відміну від класичних шифрів (включаючи AES), що створювалися в епоху 32-бітних та 8-бітових систем, ESBC з самого початку проектувався з урахуванням можливостей та особливостей сьогоднішніх процесорів.

Ключова ідея розробки — повна прозорість алгоритму та відсутність будь-яких фіксованих констант, які могли б бути потенційними векторами для впровадження закладок (бекдорів). Всі елементи шифру, включаючи таблиці підстановки (S-блоки) і раундові ключі, генеруються динамічно з ключа користувача з використанням змінного генератора псевдовипадкових чисел (за замовчуванням - RC4, може бути замінений на будь-який інший PRNG).

Основні параметри

ПараметрЗначення
Розмір блоку:64 байти (512 біт)
Структура блоку:Матриця 8×8 байт (8 uint64_t)
Кількість раундів:32
Кількість півраундів:2 на кожен раунд (всього 64)
Тип S-боксів:Динамічні, ключ-залежні перестановки 256 елементів
Генерація ключів:PRNG, що можна замінити (за замовчуванням — RC4)

Відмінні риси

Битові зрушення до і після транспонування

Головна інновація ESBC — подвійне застосування циклічних зрушень у кожному раунді:

1. Перше зрушення («shift_encode/shift_decode») — застосовується до рядків матриці до транспонування.
2. Транспонування («transpose_the_matrix») — рядки стають стовпцями.
3. Друге зрушення - застосовується вже до стовпців вихідної матриці.

Такий підхід забезпечує:

- Горизонтальну дифузію - перемішування бітів усередині рядків
- Вертикальну дифузію - перемішування бітів між рядками
- Руйнування байтових меж - зрушення виконуються на бітовому рівні, а не на байтовому

У результаті один змінений біт відкритого тексту після кількох раундів впливає на хаотично розподілену безліч бітів шифротексту, що значно ускладнює диференціальний та лінійний криптоаналіз.

Динамічна генерація всіх ключових елементів

У ESBC відсутні фіксовані таблиці або константи незрозумілого походження. Вся ключова інформація створюється процедурою make_key_data з наданого користувачем ключа:

- «shuffle_key» - 8-бітові ключі для бітового перемішування (виключені значення 0x00 і 0xFF)
- «shift_key» - значення циклічних зрушень (1-63, виключено 0)
- «xlat_encode_table / xlat_decode_table» - пара оборотних S-боксів (випадкові перестановки 256 елементів)
- «step_key» - 64-бітові раундові ключі для додавання

Кожен елемент генерується незалежно, що унеможливлює наявність прихованих залежностей або закладок на етапі проектування.

Позиційно-залежні раундові константи

Функції «add_const» та «sub_const» вносять додаткову нелінійність, яка залежить від:

- Номера раунду (i) — кубічна залежність (i+1)³
- Номера півраунду (semi_step) - зсув бази
- Позиції рядка в матриці (j) - квадратична залежність

Результуюча добавка обчислюється за формулою:

d = ((j + s + 1)² × (i + s + 1)³)²  // 10-й ступінь!
d ^= (~d << 32)                     // нелінійне перемішування

Це гарантує, що кожен рядок матриці в кожному півраунді набуває унікального псевдовипадкового значення.

Відсутність бекдорів як архітектурний принцип

Головна перевага ESBC перед існуючими стандартами (включаючи AES) - принципова неможливість наявності бекдорів, заснованих на фіксованих константах або S-блоках. Оскільки всі таблиці та ключі генеруються динамічно з ключа користувача, немає "магічних чисел", які могли б бути спеціально підібрані для створення прихованих вразливостей.

За бажанням користувач може замінити PRNG (за замовчуванням RC4) на будь-яке інше джерело випадковості, наприклад:

- ChaCha20
- Апаратний генератор випадкових чисел (RDRAND)
- Хеш-функцію в режимі лічильника

Таким чином, безпека ESBC спирається виключно на стійкість ключа та обраного PRNG, а не на довіру до розробника чи стандартизуючих організацій.

Відповідність принципам Керкгоффса та Шеннона

У відповідності до принципу Керкгоффса (шифр повинен залишатися стійким, навіть якщо противнику відомі всі деталі алгоритму, крім ключа), ми публікуємо повний вихідний код ESBC. Прозорість реалізації дозволяє будь-кому:

- Провести незалежний криптоаналіз
- Переконатися у відсутності прихованих закладок
- Адаптувати код під свої потреби (в рамках обраної ліцензії)
- Замінити PRNG на те джерело випадковості, якому віддається перевага

Висновок

ESBC пропонує свіжий погляд на блокове шифрування, адаптований під реалії 64-бітових систем та сучасні вимоги до прозорості криптографічних алгоритмів. Ключові інновації — подвійні бітові зрушення до і після транспонування, повна динамічна генерація всіх таблиць та відсутність фіксованих констант — роблять цей шифр не лише конкурентоспроможним за продуктивністю, а й стійким до цілого класу потенційних атак, пов'язаних із закладками на етапі проектування.

Ми запрошуємо криптографічну спільноту до аналізу, тестування та обговорення нашого підходу.

Контент цієї сторінки доступний також англійською, німецькою та французькою мовами.


© Extra Systems, 2026 Extra Web Top