HKDF.
Шаг между «случайными байтами в ссылке» и «ключом, который открывает записку».
HKDF (функция вывода ключей на основе HMAC) выводит криптографические ключи из входного материала. BurnPony подаёт ей 32-байтовый ключ-фрагмент — по желанию в сочетании с растянутой PBKDF2 парольной фразой — плюс случайную 16-байтовую соль и фиксированную строку контекста и получает ключ AES-256-GCM.
Что это
Вывод добавляет дисциплины. Байты из вашей ссылки никогда не используются напрямую как ключ шифрования; это входной материал, связанный солью и версионно-специфичным контекстом, чтобы ключи одного назначения или версии формата нельзя было спутать с другими.
Почему это важно
Это к тому же чистая точка стыковки для функции парольной фразы: без фразы HKDF обрабатывает один лишь ключ-фрагмент; с фразой в него подмешивается растянутая парольная фраза — один путь вывода, два уровня стойкости, никаких особых случаев в формате.
Связанные термины
Частые вопросы.
Почему не использовать ключ-фрагмент напрямую?
Прямое использование навсегда привязало бы формат ссылки к шифру и не оставило бы места, куда привязать соль, парольную фразу или версию. HKDF даёт каждой записке правильно выведенный ключ, а формату — простор для развития.
Для чего нужна соль?
Это 16 свежих случайных байтов, открыто хранящихся в конверте, которые гарантируют уникальность выведенного ключа для каждой записки даже в неудачных сценариях — стандартная подстраховка, которая ничего не стоит.
Установите BurnPony
Бесплатные самоуничтожающиеся зашифрованные записки для iPhone и Android. Получателям нужен только браузер. Без аккаунтов, без слежки.