双棘轮算法 在密码学中双棘轮算法Double Ratchet Algorithm以前称为Axolotl Ratchet是由Trevor Perrin和Moxie Marlinspike在年开发的密钥管理算法它可以用作安全协议的一部分为即時通訊系统提供端到端加密在初始密钥交换之后它管理持续更新和维护短期会话密钥它结合了基于迪菲赫爾曼密鑰交換DH的密码棘轮和基于密钥派生函数KDF的棘轮例如散列函数因此被称为双棘轮 通信双方为每个双棘轮消息派生出新密钥使得旧的密钥不能从新的密钥计算得出通信双方还将在消息中附加迪菲赫尔曼公钥值将迪菲赫尔曼计算的结果将被混合到派生出的密钥中使得新的密钥不能从旧的密钥计算得出在一方密钥泄露的情况下这些属性为泄漏前或泄漏后加密的消息提供一些保护