Skip to content

Latest commit

 

History

History
210 lines (175 loc) · 6.48 KB

cryptography.md

File metadata and controls

210 lines (175 loc) · 6.48 KB

Cryptography

Diffie–Hellman key exchange

X3DH

Elliptic-curve Diffie–Hellman

  • also called: 'ECDH'
  • https://en.wikipedia.org/wiki/Elliptic-curve_Diffie%E2%80%93Hellman
  • is a: 'Key-agreement protocol'
  • based on: 'Elliptic-curve cryptography'
  • domain: 'Public-key cryptography'
  • variant of: 'Diffie–Hellman key exchange'
  • implemented in (libraries): 'C OpenSSL'
  • implemented by (applications): 'Line'
  • used by (protocols): 'Signal Protocol'

Curve25519

  • paper: 'Curve25519: new Diffie-Hellman speed records' (2006)
  • https://en.wikipedia.org/wiki/Curve25519
  • is a: 'Elliptic curve'
  • for use with: 'Elliptic-curve Diffie–Hellman'
  • implemented in (libraries): 'C NaCl'
  • used by (protocols): 'OMEMO', 'Secure Shell', 'Transport Layer Security', 'Tox'
  • implemented by (applications): 'Wire', 'Threema'

RSA

Asynchronous Ratcheting Tree

TreeKEM

  • also called: 'MLS ratchet tree'
  • based on: 'Asynchronous Ratcheting Tree'

Double Ratchet algorithm

Square

Advanced Encryption Standard

Salsa20

ChaCha20

  • based on: 'Salsa20'
  • is a: 'Stream cipher', 'Symmetric-key algorithm'
  • RFC: 7539, 8439
  • implemented in: 'Crypto++', 'C OpenSSL'

Poly1305

  • is a: 'Message authentication code'
  • RFC: 7539, 8439
  • implemented in: 'Crypto++', 'C OpenSSL', 'C NaCl'

-- key derivation function

Lyra2

scrypt

PBKDF2

Argon2

-- block cipher modes of operation

ECB

  • also called: 'Electronic Codebook'
  • susceptible to: 'replay attacks'
  • encryption parallelizable: Yes
  • decryption parallelizable: Yes
  • random read access: Yes
  • don't use

CBC

  • also called: 'Cipher-block chaining'
  • patent: 'Message verification and transmission error detection by block chaining' (1976)
  • https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#CBC
  • encryption parallelizable: No
  • decryption parallelizable: Yes
  • random read access: Yes
  • susceptible to: 'padding oracle attacks', 'malleability attacks'

CFB

  • also called: 'Cipher Feedback'
  • encryption parallelizable: No
  • decryption parallelizable: Yes
  • random read access: Yes

CTR

  • also called: 'Counter'
  • paper: 'Privacy and authentication: An introduction to cryptography' (1979)
  • encryption parallelizable: Yes
  • decryption parallelizable: Yes
  • random read access: Yes
  • susceptible to: 'malleability attacks'

XTS

CMC

  • also called: 'CBC–mask–CBC'

EME

  • also called: 'ECB–mask–ECB', 'ECB-Mix-ECB', 'Encrypt-Mix-Encrypt'
  • paper: 'A Parallelizable Enciphering Mode' (2003)
  • patent: 'Block cipher mode of operation for constructing a wide-blocksize block cipher from a conventional block cipher' (2003)
  • wide-block encryption

EME*

  • also called: 'EME2'
  • paper: 'EME*: Extending EME to Handle Arbitrary-Length Messages with Associated Data' (2004)
  • wide-block encryption
  • refinement of: 'EME'

XCB

  • also called: 'Extended codebook mode'
  • paper: 'The Extended Codebook (XCB) Mode of Operation' (2004)
  • analysis paper: 'The Security of the Extended Codebook (XCB) Mode of Operation' (2007)

-- Authenticated block cipher modes of operation

GCM

CCM

CCM*

  • variant of: 'CCM'
  • used by: 'ZigBee'

EAX

OCB

CWC