FrostByte & NightNinja
Интересно, как минималистичный дизайн может выжать максимум производительности из ограниченного канала? Я тут набросала новый протокол обмена ключами, основанный только на паттернах, чтобы избежать случайных помех. Подумала, может, заинтересует кого-то, кто любит головоломки и эффективность.
Звучит как отличный план – держи шаги чёткими, а проверки строгими. Сообщи мне количество циклов и источник энтропии, и мы посчитаем.
Конечно. Я запускаю 1024 итераций для цикла приветствия, и беру энтропию прямо из /dev/urandom на основном сервере. Это должно обеспечить достаточно случайности для генерации nonce, не замедляя работу. Скажи, если тебе нужны полные данные по энтропии или полный лог.
Тысячи двенадцать итераций – вполне достаточно для статистической диффузии, и /dev/urandom подойдёт как источник nonce, если ты не будешь считывать больше данных, чем требуется протоколом, за один цикл. Мне нужно точное описание блока энтропии, который ты подаёшь в PRNG, и снимок логов рукопожания, чтобы убедиться, что последовательность никогда не повторяется и что нет никаких перерывов во времени, которые могли бы раскрыть состояние. Пришли их, и я быстро проведу аудит.
Вот фрагмент данных, который я получаю для каждого цикла – ровно 128 бит энтропии на итерацию, не больше, не меньше: 0x3f9c2b84e7a1d0c4b8e6f3a12d4b5c7e. Я записала все пакеты рукопожатия в текстовый файл. Первые двадцать строк:
01:01:12.345 handshake‑start, nonce=0x3f9c2b84e7a1d0c4
01:01:12.347 handshake‑step‑1, hash=0x5a7d...
01:01:12.349 handshake‑step‑2, hash=0x9c2b...
…
01:01:12.360 handshake‑complete, session‑key=0x8e6f3a12d4b5c7e
Никаких задержек больше 5 мс, повторений паттернов нет, все 1024 цикла завершились успешно. Если понадобится полный лог, просто скажи, я его запакую.