DiME
  • Introduction
  • Format overview
  • Claims
  • Item verification
  • Time syncronization
  • Implementations
  • Licence
  • Version history
  • Items
    • Envelopes
    • Key
    • Identity
    • Identity Issuing Request
    • Data
    • Message
    • Tag
  • Encoding
    • General encoding
    • Key encoding
    • Signature encoding
  • Cryptography
    • Thumbprints
    • Item links
    • Suites
Powered by GitBook
On this page

Was this helpful?

  1. Cryptography

Suites

DiME, the open and trust-based data format building secure Application-based Public-Key Infrastructures (APKIs) in a breeze.

PreviousItem links

Last updated 2 years ago

Was this helpful?

A foundation principle of the DiME design is minimizing options and decisions, and this is equally relevant for the choice of algorithms to use. DiME uses pre-defined cryptographic suits with the intention to remove much of need of detailed understanding and expert knowledge with cryptography.

Currently only one suite has been defined, the "salt" suite (NaCl), based on the popular .

Usage
Algorithm

Digital signature

()

Key agreement (exchange)

()

Secret key encryption

()

Hash function

The suggested implementation of this cryptography suite is the tried and tested which has numerous bindings to diffrent languages and plaforms..

Although the DiME format itself does not solve the need to understand and properly use these algorithms, the idea is that the available reference implementation will remove this need.

The use of a specific suite is closely associated with the raw data of keys. Here is an example of an encryption key:

NaCl.eDYvQUipW45guJvDoc13iFQkMwNZUJcBaqJWN7JguG5DVfQED

As the header of DiME items, the raw key data starts with a header indicating the cryptographic suite used, in this case ‘NaCl’. The header ‘NaCl’ is used for the DiME standard cryptographic suite.

Networking and Cryptography library
libsodium library
Ed25519
EdDSA
X25519
ECDH
XSalsa20-Poly1305
AE
BLAKE2