
Authors:Дмитрий Владимирович Савченко
Полное описание принципов работы, пошаговая инструкция по шифрованию и расшифрованию, анализ устойчивости к атакам.
Complete description of operational principles, step-by-step encryption and decryption procedures, and attack resistance analysis.
HYBRA — симметричный алгоритм шифрования, основанный на принципеабсолютной семантической неопределённости. В отличие от классических криптографических систем, задача которых — сделать расшифрование вычислительно сложным, HYBRA делает егосемантически бессмысленным: атакующий не располагает никаким критерием для проверки правильности найденного ответа.
HYBRA is a symmetric encryption algorithm built on the principle ofabsolute semantic indeterminacy. Unlike classical cryptographic systems that aim to make decryption computationally expensive, HYBRA renders itepistemically meaningless: an attacker has no criterion to verify whether any candidate answer is correct.
Алгоритм оперирует двумя независимыми ключами.Ключ 1устанавливает соответствие между символами исходного текста и случайными числовыми последовательностями.Ключ 2содержит адресную информацию — точные позиции и длины блоков в результирующем шумовом массиве.
The algorithm uses two independent keys.Key 1maps each occurrence of a character to a unique random numeric sequence.Key 2is an address book containing the exact positions and lengths of each character's block inside the noise array.
Выход алгоритма — числовой массив, каждый элемент которого принимает значения от 1 до 9. Любое произвольно выбранное подмножество этого массива даёт математически корректный цифровой корень. Атакующий не может отличить верную расшифровку от неверной без обоих ключей.
The output is a numeric array whose elements take values from 1 to 9. Any arbitrarily chosen subset of this array yields a mathematically valid digital root. Without both keys, an attacker cannot distinguish a correct decryption from an incorrect one.
HYBRA не обеспечивает вычислительную сложность взлома — он обеспечиваетотсутствие задачи взломакак таковой. Нет целевой функции — нет задачи оптимизации.
HYBRA does not make breaking computationally hard — it eliminatesthe attack problem itself. Without a target function, there is no optimization problem to solve.
Алгоритм строится на трёх фундаментальных свойствах цифрового корня (итеративной суммы цифр числа по модулю 9).
The algorithm rests on three fundamental properties of the digital root (the iterative digit sum of a number modulo 9).
Из этих свойств следует ключевое: числа, сумма которых кратна 9 (разбиения числа 9 на слагаемые), при добавлении к любому блоку не изменяют его цифровой корень. Это позволяет использовать«девятки» как шумовые маскировщики. Существует ровно30 разбиений числа 9 на натуральные слагаемые, что обеспечивает дополнительный слой случайности.
The key consequence: sets of numbers whose sum is a multiple of 9 (partitions of 9) can be added to any block without changing its digital root. This allows usingnines as noise masks. There are exactly30 partitions of 9 into natural summands, providing an additional randomness layer.
Числовые последовательности в Ключе 1 не являются «кодами» символов — они представляют собой случайные наборы чисел. Восстановление символа требует знания полной последовательности и Ключа 1.
The numeric sequences in Key 1 are not "codes" for characters — they are random sets of numbers. Recovering a character requires knowledge of the complete sequence and Key 1.
Шифрование состоит из пяти последовательных операций. Каждая вносит независимый слой случайности.
Encryption consists of five sequential operations, each contributing an independent layer of randomness.
Для каждоговхождениясимвола в исходный текст генерируется уникальная случайная числовая последовательность длиной 3–6 элементов, где каждый элемент — случайное число от 1 до 9. Два одинаковых символа в разных позициях получаютразныепоследовательности, что исключает частотный анализ.
For eachoccurrenceof a character in the plaintext, a unique random numeric sequence of length 3–6 is generated, with each element being a random number 1–9. Two identical characters at different positions receivedifferentsequences, eliminating frequency analysis.
| Символ | Char | Позиция | Position | Числовой ряд | Numeric sequence | Слой | Layer |
|---|---|---|---|---|---|---|---|
| 'к' | 0 | [7, 3, 5, 2] | Длина + значения | Length + values | |||
| 'о' | 1 | [4, 8, 1] | Длина + значения | Length + values | |||
| 'т' | 2 | [6, 2, 9, 4, 1] | Длина + значения | Length + values |
Каждое число из числового ряда преобразуется в блок: к нему добавляется случайное количество девяток, каждая из которых записывается одним из 30 разбиений. Затем блок перемешивается (shuffle).
Each number in the sequence is expanded into a block: a random count of nines is added, each nine written using one of 30 partitions. The block is then shuffled.
Генерируется массив случайных чисел от 1 до 9 размером не менееlen(msg) × 60элементов. Размер избыточен намеренно: чем больше шума, тем меньше доля информативных позиций.
A random array of numbers 1–9 is generated with size at leastlen(msg) × 60. The size is intentionally excessive: more noise means a smaller fraction of informative positions.
Для каждого символа выбирается случайная непересекающаяся позиция в массиве. Блок записывается по этой позиции, перезаписывая шумовые значения. Блоки размещаются независимо от порядка символов в исходном тексте.
For each character a random non-overlapping position in the array is chosen and the block is written there, overwriting noise values. Block placement order is independent of character order in the plaintext.
Для каждого символа фиксируется пара(start, length)— стартовая позиция блока в массиве и его длина. Ключ 2 хранится и передаётсяотдельноот Ключа 1 и шифртекста.
For each character the pair(start, length)is recorded — the block's start position in the array and its length. Key 2 is stored and transmittedseparatelyfrom Key 1 and the ciphertext.
| Символ | Char | start | length |
|---|---|---|---|
| 'к' | 142 | 18 | |
| 'о' | 73 | 11 | |
| 'т' | 201 | 22 |
Три независимых артефакта:шифртекст(числовой массив),Ключ 1(числовые ряды),Ключ 2(адреса блоков). Компрометация любого одного не позволяет восстановить исходное сообщение.
Three independent artifacts:ciphertext(numeric array),Key 1(numeric sequences),Key 2(block addresses). Compromising any single one reveals nothing about the plaintext.
Расшифрование требует всех трёх артефактов и выполняется в порядке, обратном шифрованию.
Decryption requires all three artifacts and is performed in reverse order.
Для каждой позиции сообщения берётся пара(start, length)из Ключа 2. Извлекаются элементыarray[start : start+length].
For each message position, the pair(start, length)is taken from Key 2. Extractarray[start : start+length].
Все элементы блока складываются, от суммы берётся цифровой корень. Девятки нейтрализуются автоматически.
All block elements are summed and the digital root is taken. Nines cancel out automatically.
Получив все числовые ряды (по одному DR на каждую позицию Ключа 2), находим в таблице Ключа 1 соответствующие символы и восстанавливаем исходный текст в исходном порядке.
Having collected all numeric sequences (one DR per Key 2 entry), look up Key 1 to find the matching character for each sequence and reassemble the plaintext in the original order.
Ключ 2 хранит позиции символов в исходном порядке текста. Порядок расположения блоков в массиве не обязан совпадать с порядком символов.
Key 2 preserves the original character order. The physical order of blocks inside the array need not match the character order.
Каждый запуск алгоритма с одним и тем же текстом производит уникальный шифртекст благодаря пяти независимым источникам энтропии.
Every run of the algorithm on the same plaintext produces a unique ciphertext due to five independent entropy sources.
Стандартные криптографические атаки неприменимы к HYBRA в силу отсутствия верифицируемой целевой функции.
Standard cryptographic attacks are inapplicable to HYBRA due to the absence of a verifiable target function.
Единственный способ расшифровать сообщение — получитьоба ключа одновременно. Это свойство не зависит от вычислительной мощности атакующего.
The only way to decrypt a message is to obtainboth keys simultaneously. This property is independent of the attacker's computational power.
| Термин | Term | Определение | Definition |
|---|---|---|---|
| DR (цифровой корень) | Итеративная сумма цифр числа, сводящая его к значению 1–9. DR(n) = ((n−1) mod 9) + 1.Iterative digit sum reducing any number to a value 1–9. DR(n) = ((n−1) mod 9) + 1. | ||
| Ключ 1 | Key 1 | Таблица соответствия: каждому вхождению символа — уникальный случайный числовой ряд.Correspondence table: each character occurrence mapped to a unique random numeric sequence. | |
| Ключ 2 | Key 2 | Адресная книга: для каждого символа хранит(start, length)его блока в шифртекстовом массиве.Address book: for each character stores(start, length)of its block in the ciphertext array. | |
| Блок символа | Character block | Результат разворачивания числового ряда с добавлением девяточных масок и перемешиванием.Result of expanding the numeric sequence by adding nine-masks and shuffling. | |
| Шумовой массив | Noise array | Массив случайных чисел (1–9), в который вписываются блоки символов. Является финальным шифртекстом.Array of random numbers (1–9) into which character blocks are embedded. Constitutes the final ciphertext. | |
| Семантическая неопределённость | Semantic indeterminacy | Состояние, при котором атакующий получает множество математически корректных, но семантически неразличимых ответов без инструмента выбора верного.A state in which an attacker obtains many mathematically valid but semantically indistinguishable answers with no tool to select the correct one. |
HYBRA Algorithm · v1.0 ·Технический документTechnical Document
AuthorDmitrii Savchenko