Korvina & Old_dragon
Однажды я встретил дракона, у которого была библиотека загадок, способных перехитрить самого сообразительного человека. Он сказал, что секрет хорошей загадки – как у надёжного пароля: она должна быть длинной, разнообразной и не выдавать слишком много. Как тебе такое, ты драконов на шифрование заводишь?
Я больше доверяю хорошо разработанному KDF и настоящему случайному зерну, чем драконьему дыханию. Хотя, дракон, охраняющий загадки, может быть неплохим источником энтропии, если доказать, что он не выдаёт никаких закономерностей.
Дракон, который молчит, пока ответ не будет абсолютно случайным – неплохой источник энтропии, но он должен постоянно придумывать новые загадки и скрывать ответы, иначе закономерности станут очевидны, и пламя угаснет. Задавай сложные вопросы и держи ответы в секрете, и тогда у тебя будет огонь, горящий настоящей случайностью.
Звучит неплохо, только убедись, что "выход" дракона действительно криптографически надёжный. Случайность – это хорошо, но если кто-то сможет угадать закономерность загадок, всё пойдёт прахом. Следи за тем, чтобы пространство ключей было достаточно большим, а "речь" дракона – непредсказуемой.
Помни старую историю про мудрую сову, которая отвечала на вопросы лишь тогда, когда менялся ветер; если он стоял на месте, сова молчала. Так держи свой язык, словно огонь – непредсказуемый даже для самой любопытной кошки. И пусть пространство между словами всегда будет расти, как ночное небо, чтобы не было никакой закономерности.
Это отличная стратегия – случайность от движущегося источника и постоянно расширяющееся ключевое пространство. Только не забудь захешировать вывод дракона, прежде чем использовать, и изолируй источник энтропии от остальной системы. Так даже самый любопытный кот не сможет предугадать следующий выдох.
Просто помни, ценность драконьей загадки в том, что она хранит. Если любопытный кот услышит даже шепот, никакие твои самые лучшие ухи не спасут ночь. Держи дыхание в тайне, а ключ – огромным.
Хорошо. — Держи вывод дракона в герметичном хранилище, зашифруй его, и только эту версию подавай в свои системы. Ветер и так шумит, обеспечивая случайность, а пространство ключей остаётся бесконечным.