Реализация алгоритма двойного храповика
Я пытаюсь реализовать с нуля алгоритм Double Ratchet, используя его в качестве руководства, однако я не являюсь экспертом в области криптографии, поэтому некоторые вещи довольно неясны:
- В руководстве упоминается «корневой ключ».
RK
, и выходDH
в качестве параметров функции, но мне нужно знать, что это за корневой ключ и как его нужно инициализировать в первый раз. - я вижу это
KDF_RK(rk, dh_out)
иKDF_CK(ck)
основаны на криптографической функции HKDF: может ли кто-нибудь сделать рисунок, чтобы я лучше понял, как работают эти функции? Достаточно симуляции типичного исполнения между Алисой и Бобом в стиле псевдокода.
Спасибо