Cryptography

Key Signatures 

  • Single-part signature: Ed25519
  • Multi-part signature: Ed25519ph  

Key exchange

  • BLAKE2B - BLAKE2 is a cryptographic hash function faster than MD5, SHA-1, SHA-2, and SHA-3, yet is at least as secure as the latest standard SHA-3. Optimized for 64-bit platforms—including NEON-enabled ARMs—and produces digests of any size between 1 and 64 bytes
  • X25519 – Ephemeral Key Pair - Computes a secret shared between the sender and receiver, using the sender’s secret key and the receiver’s public key (or vice versa) 

Authenticated Encryption with Additional Data

  • Encrypts a message with a key and a nonce to keep it confidential
  • Computes an authentication tag. This tag is used to make sure that the message, as well as optional, non-confidential (non-encrypted) data, haven’t been tampered with.

The XChaCha20-Poly1305-IETF construction can safely encrypt a practically unlimited number of messages with the same key, without any practical limit to the size of a message (up to ~ 2^64 bytes). As an alternative to counters, its large nonce size (192-bit) allows random nonces to be safely used.