Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
matrix-org
Olm
Commits
eee46a54
Commit
eee46a54
authored
Aug 18, 2015
by
Mark Haines
Browse files
Fix spelling
parent
c4ad39a3
Changes
1
Hide whitespace changes
Inline
Side-by-side
docs/olm.rst
View file @
eee46a54
Olm: A Crytographic Ratchet
Olm: A Cry
p
tographic Ratchet
===========================
===========================
=
An implementation of the cryptographic ratchet described by
An implementation of the cryptographic ratchet described by
https://github.com/trevp/axolotl/wiki.
https://github.com/trevp/axolotl/wiki.
...
@@ -12,7 +12,7 @@ Initial setup
...
@@ -12,7 +12,7 @@ Initial setup
~~~~~~~~~~~~~
~~~~~~~~~~~~~
The setup takes four Curve25519_ inputs: Identity keys for Alice and Bob,
The setup takes four Curve25519_ inputs: Identity keys for Alice and Bob,
:math:`I_A` and :math:`I_B`, and e
m
phemeral keys for Alice and Bob,
:math:`I_A` and :math:`I_B`, and ephemeral keys for Alice and Bob,
:math:`E_A` and :math:`E_B`. A shared secret, :math:`S`, is generated using
:math:`E_A` and :math:`E_B`. A shared secret, :math:`S`, is generated using
`Triple Diffie-Hellman`_. The initial 256 bit root key, :math:`R_0`, and 256
`Triple Diffie-Hellman`_. The initial 256 bit root key, :math:`R_0`, and 256
bit chain key, :math:`C_{0,0}`, are derived from the shared secret using an
bit chain key, :math:`C_{0,0}`, are derived from the shared secret using an
...
@@ -113,7 +113,7 @@ Alice's single-use key, :math:`E_A`, the public part of his single-use key,
...
@@ -113,7 +113,7 @@ Alice's single-use key, :math:`E_A`, the public part of his single-use key,
part of the single-use key, :math:`E_B`. Bob computes the root key :math:`R_0`,
part of the single-use key, :math:`E_B`. Bob computes the root key :math:`R_0`,
and the chain key :math:`C_{0,0}`. Bob then advances the chain key to compute
and the chain key :math:`C_{0,0}`. Bob then advances the chain key to compute
the chain key used by the message, :math:`C_{0,j}`. Bob then creates the
the chain key used by the message, :math:`C_{0,j}`. Bob then creates the
message key, :math:`M_{0,j}`, and attempts to decrypt the ciphertext,
message key, :math:`M_{0,j}`, and attempts to decrypt the cipher
-
text,
:math:`X_{0,j}`. If the cipher-text's authentication is correct then Bob can
:math:`X_{0,j}`. If the cipher-text's authentication is correct then Bob can
discard private part of his single-use one-time key, :math:`E_B`.
discard private part of his single-use one-time key, :math:`E_B`.
...
@@ -147,7 +147,7 @@ the receiver computes the chain key, :math:`C_{i,j}`. The receiver computes the
...
@@ -147,7 +147,7 @@ the receiver computes the chain key, :math:`C_{i,j}`. The receiver computes the
message key, :math:`M_{i,j}`, from the chain key and attempts to decrypt the
message key, :math:`M_{i,j}`, from the chain key and attempts to decrypt the
cipher-text, :math:`X_{i,j}`.
cipher-text, :math:`X_{i,j}`.
If the decryption succeeds the rec
i
ever updates the chain key for :math:`T_i`
If the decryption succeeds the rece
i
ver updates the chain key for :math:`T_i`
with :math:`C_{i,j+1}` and stores the message keys that were skipped in the
with :math:`C_{i,j+1}` and stores the message keys that were skipped in the
process so that they can decode out of order messages. If the receiver created
process so that they can decode out of order messages. If the receiver created
a new receiver chain then they discard their current sender chain so that
a new receiver chain then they discard their current sender chain so that
...
@@ -192,7 +192,7 @@ Cipher-Text 0x22 String The cipher-text, :math:`X_{i,j}`, of the message
...
@@ -192,7 +192,7 @@ Cipher-Text 0x22 String The cipher-text, :math:`X_{i,j}`, of the message
=========== ===== ======== ================================================
=========== ===== ======== ================================================
The length of the MAC is determined by the authenticated encryption algorithm
The length of the MAC is determined by the authenticated encryption algorithm
being used. The MAC protects all of the bytes prece
e
ding the MAC.
being used. The MAC protects all of the bytes preceding the MAC.
Pre-Key Messages
Pre-Key Messages
~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment