<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://en.zaoniao.it/index.php?action=history&amp;feed=atom&amp;title=Double_Ratchet_Algorithm</id>
	<title>Double Ratchet Algorithm - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://en.zaoniao.it/index.php?action=history&amp;feed=atom&amp;title=Double_Ratchet_Algorithm"/>
	<link rel="alternate" type="text/html" href="http://en.zaoniao.it/index.php?title=Double_Ratchet_Algorithm&amp;action=history"/>
	<updated>2026-05-15T13:10:24Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>http://en.zaoniao.it/index.php?title=Double_Ratchet_Algorithm&amp;diff=2388&amp;oldid=prev</id>
		<title>Admin: Created page with &quot;{{#seo: |title= Double Ratchet Algorithm – zaoniao Wiki |keywords=double ratchet algorithm,double ratchet algorithm dra,double ratchet algorithm explained,ratcheted encrypti...&quot;</title>
		<link rel="alternate" type="text/html" href="http://en.zaoniao.it/index.php?title=Double_Ratchet_Algorithm&amp;diff=2388&amp;oldid=prev"/>
		<updated>2019-03-21T03:28:48Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{#seo: |title= Double Ratchet Algorithm – zaoniao Wiki |keywords=double ratchet algorithm,double ratchet algorithm dra,double ratchet algorithm explained,ratcheted encrypti...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{#seo:&lt;br /&gt;
|title= Double Ratchet Algorithm – zaoniao Wiki&lt;br /&gt;
|keywords=double ratchet algorithm,double ratchet algorithm dra,double ratchet algorithm explained,ratcheted encryption,key exchange&lt;br /&gt;
|description=Double Ratchet Algorithm is a key management algorithm that was developed by Trevor Perrin and Moxie Marlinspike in 2013&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;amp/&amp;gt;&lt;br /&gt;
[[File:Double Ratchet Algorithm.png|350px|right|Double Ratchet Algorithm]]&lt;br /&gt;
&amp;lt;amp/&amp;gt;&lt;br /&gt;
In [[cryptography]], the '''Double Ratchet Algorithm''' (previously referred to as the '''Axolotl Ratchet''') is a key management algorithm that was developed by Trevor Perrin and Moxie Marlinspike in 2013. It can be used as part of a cryptographic [[protocol]] to provide end-to-end encryption for instant messaging. After an initial key exchange it manages the ongoing renewal and maintenance of short-lived session keys. It combines a cryptographic ratchet based on the Diffie–Hellman key exchange (DH) and a ratchet based on a key derivation function (KDF) like e.g. a hash function and is therefore called a double ratchet.&lt;br /&gt;
&lt;br /&gt;
The developers refer to the algorithm as self-healing because it automatically disables an attacker from accessing the cleartext of later messages after having compromised a session key. The protocol provides confidentiality, integrity, authentication, participant consistency, destination validation, forward secrecy, backward secrecy (aka future secrecy), causality preservation, message unlinkability, message repudiation, participation repudiation, and asynchronicity.&lt;br /&gt;
&lt;br /&gt;
== Functioning ==&lt;br /&gt;
{{#ev:youtube|-ofZMnKkp_Y|450|right|Encrypting Matrix Building a universal end-to-end encrypted communication ecosystem with Matrix and Olm&lt;br /&gt;
by Matthew Hodgson}}&lt;br /&gt;
A client renews session key material in interaction with the remote peer using Diffie–Hellman ratchet whenever possible, otherwise independently by using a hash ratchet. Therefore, with every message a client using the double ratchet advances one of two hash ratchets (one for sending, one receiving) which get seeded with a common secret from a DH ratchet. At the same time it tries to use every opportunity to provide the remote peer with a new public DH value and advance the DH ratchet whenever a new DH value from the remote peer arrives. As soon as a new common secret is established, a new hash ratchet gets initialized.&lt;br /&gt;
&lt;br /&gt;
As cryptographic primitives, the Double Ratchet Algorithm uses&lt;br /&gt;
* for the DH ratchet&lt;br /&gt;
* Elliptic curve Diffie–Hellman (ECDH) with Curve25519,&lt;br /&gt;
* for message authentication codes (MAC, authentication)&lt;br /&gt;
* Keyed-Hash Message Authentication Code (HMAC) based on [[SHA-256]],&lt;br /&gt;
* for symmetric encryption&lt;br /&gt;
* the Advanced Encryption Standard (AES), partially in Cipher Block Chaining mode (CBC) with padding as per PKCS#5 and partially in Counter mode (CTR) without padding,&lt;br /&gt;
* for the hash ratchet&lt;br /&gt;
* HMAC.&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
&lt;br /&gt;
The following is a list of applications that use the '''Double Ratchet Algorithm''' or a custom implementation of it:&lt;br /&gt;
* ChatSecure&lt;br /&gt;
* Conversations&lt;br /&gt;
* Cryptocat&lt;br /&gt;
* Facebook Messenger&lt;br /&gt;
* G Data Secure Chat&lt;br /&gt;
* Gajim&lt;br /&gt;
* Google Allo&lt;br /&gt;
* Pond&lt;br /&gt;
* Signal&lt;br /&gt;
* WhatsApp&lt;br /&gt;
* Wire&lt;br /&gt;
&lt;br /&gt;
Other:&lt;br /&gt;
* In May 2016, Viber said that their encryption protocol is a custom implementation that &amp;quot;uses the same concepts&amp;quot; as the '''Signal Protocol'''.&lt;br /&gt;
&lt;br /&gt;
==Source==&lt;br /&gt;
&lt;br /&gt;
[http://wikipedia.org/ http://wikipedia.org/]&lt;br /&gt;
[[Category:Cryptography]]&lt;br /&gt;
[[Category:Cryptographic algorithms]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
</feed>