Skip to content

Supported Algorithms

Karel Donk edited this page Aug 4, 2018 · 12 revisions

The following algorithms are supported by QuantumGate. Please note that supported algorithms are not yet final and can change before the first major release.

Hashing algorithms

Hashing algorithms can be specified using the QuantumGate::Algorithm::Hash enum definition.

enum class Hash : UInt16
{
    Unknown = 0,
    SHA256 = 100,
    SHA512 = 200,
    BLAKE2S256 = 300,
    BLAKE2B512 = 400
};

Values

Name Description
Unknown Unspecified or unknown.
SHA256 The 256-bit version of the SHA-2 algorithm.
SHA512 The 512-bit version of the SHA-2 algorithm.
BLAKE2S256 The 256-bit version of the BLAKE2 algorithm.
BLAKE2B512 The 512-bit version of the BLAKE2b algorithm.

Asymmetric algorithms

Asymmetric algorithms can be specified using the QuantumGate::Algorithm::Asymmetric enum definition.

enum class Asymmetric : UInt16
{
    Unknown = 0,
    ECDH_SECP521R1 = 100,
    ECDH_X25519 = 200,
    ECDH_X448 = 300,
    KEM_NTRUPRIME = 1000,
    KEM_NEWHOPE = 1100,
    KEM_MCELIECE = 1200,
    EDDSA_ED25519 = 2000,
    EDDSA_ED448 = 2100
};

Values

Name Description
Unknown Unspecified or unknown.
ECDH_SECP521R1 Elliptic Curve Diffie Hellman key exchange based on the secp521r1 curve.
ECDH_X25519 Elliptic Curve Diffie Hellman key exchange based on Curve25519.
ECDH_X448 Elliptic Curve Diffie Hellman key exchange based on Curve448.
KEM_NTRUPRIME Key Encapsulation Mechanism key exchange based on the NTRU Prime post-quantum algorithm.
KEM_NEWHOPE Key Encapsulation Mechanism key exchange based on the New Hope post-quantum algorithm.
KEM_CLASSIC_MCELIECE Key Encapsulation Mechanism key exchange based on the Classic McEliece post-quantum algorithm.
EDDSA_ED25519 Edwards-curve Digital Signature Algorithm based on Curve25519.
EDDSA_ED448 Edwards-curve Digital Signature Algorithm based on Curve448.

Symmetric algorithms

Symmetric algorithms can be specified using the QuantumGate::Algorithm::Symmetric enum definition.

enum class Symmetric : UInt16
{
    Unknown = 0,
    AES256_GCM = 100,
    CHACHA20_POLY1305 = 200
};

Values

Name Description
Unknown Unspecified or unknown.
AES256_GCM AES stream cipher in 256 bit combined with GCM message authentication code.
CHACHA20_POLY1305 ChaCha20 stream cipher combined with Poly1305 message authentication code.

Compression algorithms

Compression algorithms can be specified using the QuantumGate::Algorithm::Compression enum definition.

enum class Compression : UInt16
{
    Unknown = 0,
    DEFLATE = 100,
    ZSTANDARD = 200
};

Values

Name Description
Unknown Unspecified or unknown.
DEFLATE Compression based on the Deflate algorithm.
ZSTANDARD Compression based on the zstandard algorithm.
Clone this wiki locally