Neuron®
The Neuron® is the basis for the creation of open and secure federated networks for smart societies.
Loading...
Searching...
No Matches
ModuleLattice256Endpoint.cs
3
5{
10 {
15 : this(new Aes256())
16 {
17 }
18
24 : base(ML_KEM.ML_KEM_1024, ML_KEM.ML_KEM_1024.KeyGen(true),
25 ML_DSA.ML_DSA_87, ML_DSA.ML_DSA_87.KeyGen(true),
27 {
28 }
29
36 : base(PublicKey, ML_KEM.ML_KEM_1024, ML_DSA.ML_DSA_87, DefaultSymmetricCipher)
37 {
38 }
39
46 public ModuleLattice256Endpoint(ML_KEM_Keys KeyEncapsulationMechanismKeys,
48 : base(ML_KEM.ML_KEM_1024, KeyEncapsulationMechanismKeys,
49 ML_DSA.ML_DSA_87, SignatureAlgorithmKeys, DefaultSymmetricCipher)
50 {
51 }
52
56 public override int SecurityStrength => 256;
57
61 public override string LocalName => "ml256";
62
69 {
71 }
72
78 public override IE2eEndpoint CreatePrivate(byte[] Secret)
79 {
80 this.GeneratePrivateKeys(Secret, out ML_KEM_Keys KemKeys, out ML_DSA_Keys DsaKeys);
81 return new ModuleLattice256Endpoint(KemKeys, DsaKeys, this.DefaultSymmetricCipher.CreteNew());
82 }
83
89 public override IE2eEndpoint CreatePublic(byte[] PublicKey)
90 {
92 }
93 }
94}
virtual IE2eSymmetricCipher DefaultSymmetricCipher
Default symmetric cipher.
Definition: E2eEndpoint.cs:282
Module Lattice endpoint with 256 bit security strength.
override IE2eEndpoint CreatePrivate(byte[] Secret)
Creates a new endpoint given a private key.
override IE2eEndpoint CreatePublic(byte[] PublicKey)
Creates a new endpoint given a public key.
override string LocalName
Local name of the E2E encryption scheme
ModuleLattice256Endpoint(IE2eSymmetricCipher DefaultSymmetricCipher)
Module Lattice endpoint with 256 bit security strength.
ModuleLattice256Endpoint()
Module Lattice endpoint with 256 bit security strength.
ModuleLattice256Endpoint(byte[] PublicKey, IE2eSymmetricCipher DefaultSymmetricCipher)
Module Lattice endpoint with 256 bit security strength.
override IE2eEndpoint Create(int SecurityStrength)
Creates a new key.
override int SecurityStrength
Security strength of End-to-End encryption scheme.
ModuleLattice256Endpoint(ML_KEM_Keys KeyEncapsulationMechanismKeys, ML_DSA_Keys SignatureAlgorithmKeys, IE2eSymmetricCipher DefaultSymmetricCipher)
Module Lattice endpoint with 256 bit security strength.
Abstract base class for Module Lattice endpoints.
void GeneratePrivateKeys(byte[] Secret, out ML_KEM_Keys KemKeys, out ML_DSA_Keys DsaKeys)
Generates private keys from a 96-byte secret.
Implements support for the AES-256 cipher in hybrid End-to-End encryption schemes.
Definition: Aes256.cs:17
ML-DSA public and private keys, as defined in §6.1.
Definition: ML_DSA_Keys.cs:7
Implements the ML-DSA algorithm for post-quantum cryptography, as defined in NIST FIPS 204: https://n...
Definition: ML_DSA.cs:12
ML_KEM encryption and decryption keys, as defined in §6.1.
Definition: ML_KEM_Keys.cs:7
Implements the ML-KEM algorithm for post-quantum cryptography, as defined in NIST FIPS 203: https://n...
Definition: ML_KEM.cs:11
Abstract base class for End-to-End encryption schemes.
Definition: IE2eEndpoint.cs:13
Interface for symmetric ciphers.
IE2eSymmetricCipher CreteNew()
Creates a new symmetric cipher object with the same settings as the current object.