diff --git a/specs/hacspec-lib/src/bit_vector.rs b/specs/hacspec-lib/src/bit_vector.rs index 3be1906bc..98d98ff48 100644 --- a/specs/hacspec-lib/src/bit_vector.rs +++ b/specs/hacspec-lib/src/bit_vector.rs @@ -1,150 +1,2 @@ -pub struct BitVector { - bits: Vec, -} - -pub struct BitVectorChunks<'a> { - chunk_iterator: std::slice::Chunks<'a, u8>, -} - -impl BitVectorChunks<'_> { - pub fn next(&mut self) -> Option { - self.chunk_iterator.next().map(|bits| BitVector { - bits: bits.to_vec(), - }) - } -} - -impl IntoIterator for BitVector { - type Item = u8; - type IntoIter = as IntoIterator>::IntoIter; - - fn into_iter(self) -> Self::IntoIter { - self.bits.into_iter() - } -} - -impl From<&[u8]> for BitVector { - fn from(bytes: &[u8]) -> Self { - let mut out = Vec::with_capacity(bytes.len() * 8); - - for byte in bytes { - for j in 0..u8::BITS { - out.push((byte >> j) & 1); - } - } - - Self { bits: out } - } -} - -impl BitVector { - pub fn new(bits: Vec) -> Self { - for bit in &bits { - assert!(*bit == 0 || *bit == 1); - } - - Self { bits } - } - pub fn chunks(&self, chunk_size: usize) -> BitVectorChunks { - BitVectorChunks { - chunk_iterator: self.bits.chunks(chunk_size), - } - } -} - -pub trait LittleEndianBitStream { - fn nth_bit(&self, n: usize) -> u8; - fn iter(&self) -> LittleEndianBitStreamIter<'_>; -} - -pub struct LittleEndianBitStreamIter<'a> { - bytes: &'a [u8], - bit: usize, -} - -impl Iterator for LittleEndianBitStreamIter<'_> { - type Item = u8; - - fn next(&mut self) -> Option { - let byte_index = self.bit / 8; - if byte_index >= self.bytes.len() { - return None; - } - - let out = self.bytes.nth_bit(self.bit); - self.bit += 1; - - Some(out) - } -} - -impl LittleEndianBitStream for &[u8] { - fn nth_bit(&self, n: usize) -> u8 { - let byte = n / 8; - let byte_bit = n % 8; - (self[byte] >> byte_bit) & 1 - } - - fn iter(&self) -> LittleEndianBitStreamIter<'_> { - LittleEndianBitStreamIter { - bytes: self, - bit: 0, - } - } -} - -impl LittleEndianBitStream for Vec { - fn nth_bit(&self, n: usize) -> u8 { - self.as_slice().nth_bit(n) - } - - fn iter(&self) -> LittleEndianBitStreamIter<'_> { - LittleEndianBitStreamIter { - bytes: self, - bit: 0, - } - } -} - -#[cfg(test)] -mod tests { - use crate::bit_vector::LittleEndianBitStream; - - #[test] - fn bits() { - // 00000001 00000010 00000011 00000100 00000101 00000110 ... - // 1 2 3 4 5 6 - let v = vec![1u8, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]; - - let mut n = 0; - - assert_eq!(v.nth_bit(n), 1); - n += 1; - - for n_ in n..8 { - assert_eq!(v.nth_bit(n_), 0); - } - n = 8; - - assert_eq!(v.nth_bit(n), 0); - n += 1; - - assert_eq!(v.nth_bit(n), 1); - n += 1; - - for n_ in n..16 { - assert_eq!(v.nth_bit(n_), 0); - } - n = 16; - - assert_eq!(v.nth_bit(n), 1); - n += 1; - - assert_eq!(v.nth_bit(n), 1); - - for n in v.iter() { - eprint!("{n}"); - } - eprintln!(); - } -} +pub type BitVector = Vec; +pub type BitSlice<'a> = &'a [u8]; diff --git a/specs/kyber/src/compress.rs b/specs/kyber/src/compress.rs index 84dcde1d4..ad7eaecca 100644 --- a/specs/kyber/src/compress.rs +++ b/specs/kyber/src/compress.rs @@ -1,8 +1,8 @@ use crate::parameters::{self, KyberFieldElement, KyberPolynomialRingElement}; -/// According to the NIST FIPS 203 standard, compressing a polynomial -/// ring element is accomplished by `compress()`ing its constituent field -/// coefficients. +/// According to the NIST FIPS 203 standard (Page 10, Lines 536 - 539), +/// compressing a polynomial ring element is accomplished by `compress()`ing its +/// constituent field coefficients. /// /// The NIST FIPS 203 standard can be found at /// . @@ -16,9 +16,9 @@ pub fn compress( ) } -/// According to the NIST FIPS 203 standard, compressing a polynomial -/// ring element is accomplished by `decompress()`ing its constituent field -/// coefficients. +/// According to the NIST FIPS 203 standard (Page 10, Lines 536 - 539), +/// compressing a polynomial ring element is accomplished by `decompress()`ing +/// its constituent field coefficients. /// /// The NIST FIPS 203 standard can be found at /// . @@ -32,8 +32,8 @@ pub fn decompress( ) } -/// This function implements the `Compress` function defined on Page 18 of the -/// NIST FIPS 203 standard, which is defined as: +/// This function implements the `Compress` function specified in the NIST FIPS +/// 203 standard (Page 18, Expression 4.5), which is defined as: /// /// ```plaintext /// Compress_d: ℤq -> ℤ_{2ᵈ} @@ -69,8 +69,8 @@ fn compress_d(fe: KyberFieldElement, to_bit_size: usize) -> KyberFieldElement { (compressed % two_pow_bit_size).into() } -/// This function implements the `Decompress` function defined on Page 18 of the -/// NIST FIPS 203 standard, which is defined as: +/// This function implements the `Decompress` function specified in the NIST FIPS +/// 203 standard (Page 18, Expression 4.6), which is defined as: /// /// ```plaintext /// Decompress_d: ℤ_{2ᵈ} -> ℤq diff --git a/specs/kyber/src/ind_cpa.rs b/specs/kyber/src/ind_cpa.rs index a831f172c..43c687c1c 100644 --- a/specs/kyber/src/ind_cpa.rs +++ b/specs/kyber/src/ind_cpa.rs @@ -1,10 +1,10 @@ use hacspec_lib::{ - ArrayConversion, ArrayPadding, PanickingIntegerCasts, UpdatableArray, UpdatingArray, VecUpdate, + ArrayConversion, ArrayPadding, PanickingIntegerCasts, UpdatableArray, UpdatingArray, }; use crate::{ compress::{compress, decompress}, - matrix::{multiply_matrix_transpose_by_column, multiply_column_by_row, transpose}, + matrix::{encode_vector_12, multiply_column_by_row, multiply_matrix_by_column, transpose}, ntt::{ntt, ntt_inverse}, parameters::{ hash_functions::{G, H, PRF, XOF}, @@ -15,7 +15,7 @@ use crate::{ VECTOR_U_ENCODED_SIZE, VECTOR_V_COMPRESSION_FACTOR, }, sampling::{sample_ntt, sample_poly_cbd}, - serialize::{deserialize_little_endian, serialize_little_endian}, + serialize::{byte_decode, byte_encode}, BadRejectionSamplingRandomnessError, }; @@ -50,15 +50,6 @@ impl KeyPair { } } -fn encode_12(input: [KyberPolynomialRingElement; RANK]) -> Vec { - let mut out = Vec::new(); - for re in input.into_iter() { - out.extend_from_slice(&serialize_little_endian(re, 12)); - } - - out -} - /// This function implements most of Algorithm 12 of the /// NIST FIPS 203 specification; this is the Kyber CPA-PKE key generation algorithm. /// @@ -72,7 +63,7 @@ fn encode_12(input: [KyberPolynomialRingElement; RANK]) -> Vec { /// Output: encryption key ekₚₖₑ ∈ 𝔹^{384k+32}. /// Output: decryption key dkₚₖₑ ∈ 𝔹^{384k}. /// -/// d $← B +/// d ←$ B /// (ρ,σ) ← G(d) /// N ← 0 /// for (i ← 0; i < k; i++) @@ -174,16 +165,19 @@ pub(crate) fn generate_keypair( } // t̂ ← Â◦ŝ + ê - let mut t_as_ntt = multiply_matrix_transpose_by_column(&A_as_ntt, &secret_as_ntt); + let mut t_as_ntt = multiply_matrix_by_column(&A_as_ntt, &secret_as_ntt); for i in 0..t_as_ntt.len() { t_as_ntt[i] = t_as_ntt[i] + error_as_ntt[i]; } // ekₚₖₑ ← ByteEncode₁₂(t̂) ‖ ρ - let public_key_serialized = encode_12(t_as_ntt).concat(seed_for_A); + let public_key_serialized = UpdatableArray::new([0u8; CPA_PKE_PUBLIC_KEY_SIZE]) + .push(&encode_vector_12(t_as_ntt)) + .push(seed_for_A) + .array(); // dkₚₖₑ ← ByteEncode₁₂(ŝ) - let secret_key_serialized = encode_12(secret_as_ntt); + let secret_key_serialized = encode_vector_12(secret_as_ntt); Ok(KeyPair::new( secret_key_serialized.into_array(), @@ -194,9 +188,9 @@ pub(crate) fn generate_keypair( fn encode_and_compress_u(input: [KyberPolynomialRingElement; RANK]) -> Vec { let mut out = Vec::new(); for re in input.into_iter() { - out.extend_from_slice(&serialize_little_endian( - compress(re, VECTOR_U_COMPRESSION_FACTOR), + out.extend_from_slice(&byte_encode( VECTOR_U_COMPRESSION_FACTOR, + compress(re, VECTOR_U_COMPRESSION_FACTOR), )); } @@ -257,7 +251,7 @@ pub(crate) fn encrypt( .chunks(BYTES_PER_RING_ELEMENT) .enumerate() { - t_as_ntt[i] = deserialize_little_endian(12, t_as_ntt_bytes); + t_as_ntt[i] = byte_decode(12, t_as_ntt_bytes); } // ρ ← ekₚₖₑ[384k: 384k + 32] @@ -328,14 +322,13 @@ pub(crate) fn encrypt( // u ← NTT-¹(Âᵀ ◦ r̂) + e₁ let A_as_ntt_transpose = transpose(&A_as_ntt); - let mut u = multiply_matrix_transpose_by_column(&A_as_ntt_transpose, &r_as_ntt) - .map(|re| ntt_inverse(re)); + let mut u = multiply_matrix_by_column(&A_as_ntt_transpose, &r_as_ntt).map(|re| ntt_inverse(re)); for i in 0..u.len() { u[i] = u[i] + error_1[i]; } // μ ← Decompress₁(ByteDecode₁(m))) - let message_as_ring_element = decompress(deserialize_little_endian(1, &message), 1); + let message_as_ring_element = decompress(byte_decode(1, &message), 1); // v ← NTT-¹(t̂ᵀ ◦ r̂) + e₂ + μ let v = ntt_inverse(multiply_column_by_row(&t_as_ntt, &r_as_ntt)) @@ -346,9 +339,9 @@ pub(crate) fn encrypt( let c1 = encode_and_compress_u(u); // c₂ ← ByteEncode_{dᵥ}(Compress_{dᵥ}(v)) - let c2 = serialize_little_endian( - compress(v, VECTOR_V_COMPRESSION_FACTOR), + let c2 = byte_encode( VECTOR_V_COMPRESSION_FACTOR, + compress(v, VECTOR_V_COMPRESSION_FACTOR), ); // return c ← (c₁ ‖ c₂) @@ -392,14 +385,14 @@ pub(crate) fn decrypt( .enumerate() { u[i] = decompress( - deserialize_little_endian(VECTOR_U_COMPRESSION_FACTOR, u_bytes), + byte_decode(VECTOR_U_COMPRESSION_FACTOR, u_bytes), VECTOR_U_COMPRESSION_FACTOR, ); } // v ← Decompress_{dᵥ}(ByteDecode_{dᵥ}(c₂)) let v = decompress( - deserialize_little_endian( + byte_decode( VECTOR_V_COMPRESSION_FACTOR, &ciphertext[VECTOR_U_ENCODED_SIZE..], ), @@ -409,7 +402,7 @@ pub(crate) fn decrypt( // ŝ ← ByteDecode₁₂(dkₚₖₑ) let mut secret_as_ntt = [KyberPolynomialRingElement::ZERO; RANK]; for (i, secret_bytes) in secret_key.chunks_exact(BYTES_PER_RING_ELEMENT).enumerate() { - secret_as_ntt[i] = deserialize_little_endian(12, secret_bytes); + secret_as_ntt[i] = byte_decode(12, secret_bytes); } // w ← v - NTT-¹(ŝᵀ ◦ NTT(u)) @@ -422,5 +415,5 @@ pub(crate) fn decrypt( // m ← ByteEncode₁(Compress₁(w)) // return m // FIXME: remove conversion - serialize_little_endian(compress(message, 1), 1).as_array() + byte_encode(1, compress(message, 1)).as_array() } diff --git a/specs/kyber/src/lib.rs b/specs/kyber/src/lib.rs index 6b2d69d45..c719aabcc 100644 --- a/specs/kyber/src/lib.rs +++ b/specs/kyber/src/lib.rs @@ -1,6 +1,6 @@ use hacspec_lib::{ArrayConversion, UpdatingArray2}; use parameters::{ - hash_functions::{G, H, H_DIGEST_SIZE, KDF}, + hash_functions::{G, H, H_DIGEST_SIZE, J}, CPA_PKE_KEY_GENERATION_SEED_SIZE, CPA_PKE_MESSAGE_SIZE, CPA_PKE_PUBLIC_KEY_SIZE, CPA_PKE_SECRET_KEY_SIZE, }; @@ -53,130 +53,190 @@ impl KeyPair { } } -/// This function implements Algorithm 7 of the Kyber Round 3 specification; -/// This is the Kyber Round 3 CCA-KEM key generation algorithm, and is -/// reproduced below: +/// This function implements most of Algorithm 15 of the +/// NIST FIPS 203 specification; this is the Kyber CCA-KEM key generation algorithm. +/// +/// We say "most of" since Algorithm 15 samples the required randomness within +/// the function itself, whereas this implementation expects it to be provided +/// through the `randomness` parameter. +/// +/// Algorithm 15 is reproduced below: /// /// ```plaintext -/// Output: Public key pk ∈ B^{12·k·n/8+32} -/// Output: Secret key sk ∈ B^{24·k·n/8+96} -/// z←B^{32} -/// (pk , sk′) := Kyber.CPAPKE.KeyGen() -/// sk := (sk′ || pk || H(pk) || z) -/// return (pk,sk) +/// Output: encapsulation key ekₚₖₑ ∈ 𝔹^{384k+32}. +/// Output: decapsulation key dkₚₖₑ ∈ 𝔹^{768k+96}. +/// +/// z ←$ 𝔹³² +/// (ekₚₖₑ, dkₚₖₑ) ← K-PKE.KeyGen() +/// ek ← ekₚₖₑ +/// dk ← (dkₚₖₑ ‖ ek ‖ H(ek) ‖ z) +/// return (ek, dk) /// ``` /// -/// The Kyber Round 3 specification can be found at: -/// +/// The NIST FIPS 203 standard can be found at +/// . pub fn generate_keypair( randomness: [u8; KYBER768_KEY_GENERATION_SEED_SIZE], ) -> Result { let ind_cpa_keypair_randomness = &randomness[0..parameters::CPA_PKE_KEY_GENERATION_SEED_SIZE]; let implicit_rejection_value = &randomness[parameters::CPA_PKE_KEY_GENERATION_SEED_SIZE..]; + // (ekₚₖₑ, dkₚₖₑ) ← K-PKE.KeyGen() let ind_cpa_key_pair = ind_cpa::generate_keypair(&ind_cpa_keypair_randomness.as_array())?; + // dk ← (dkₚₖₑ ‖ ek ‖ H(ek) ‖ z) let secret_key_serialized = ind_cpa_key_pair.serialize_secret_key(&implicit_rejection_value.as_array()); + // return (ek, dk) let key_pair = KeyPair::new(ind_cpa_key_pair.pk(), secret_key_serialized); Ok(key_pair) } -/// This function implements Algorithm 8 of the Kyber Round 3 specification; -/// This is the Kyber Round 3 CCA-KEM encapsulation algorithm, and is -/// reproduced below: +fn public_key_modulus_check(public_key: &PublicKey) -> bool { + let encoded_ring_elements = &public_key[0..KYBER768_PUBLIC_KEY_SIZE - 32]; + let decoded_ring_elements = matrix::decode_vector_12(encoded_ring_elements.try_into().unwrap()); + + encoded_ring_elements == matrix::encode_vector_12(decoded_ring_elements) +} + +/// This function implements most of Algorithm 16 of the +/// NIST FIPS 203 specification; this is the Kyber CCA-KEM encapsulation algorithm. +/// +/// We say "most of" since Algorithm 16 samples the required randomness within +/// the function itself, whereas this implementation expects it to be provided +/// through the `randomness` parameter. +/// +/// Algorithm 16 is reproduced below: /// /// ```plaintext -/// Input: Public key pk ∈ B^{12·k·n / 8 + 32} -/// Output: Ciphertext c ∈ B^{d_u·k·n/8 + d_v·n/8} -/// Output: Shared key K ∈ B^{*} -/// m ← B^{32} -/// m ← H(m) -/// (K ̄, r) := G(m || H(pk)) -/// c := Kyber.CPAPKE.Enc(pk,m,r) -/// K := KDF(K ̄ || H(c)) -/// return(c,K) +/// Validated input: encapsulation key ekₚₖₑ ∈ 𝔹^{384k+32}. +/// Output: shared key K ∈ 𝔹³². +/// Output: ciphertext c ∈ 𝔹^{32(dᵤk+dᵥ)}. +/// +/// Input validation step 1. (Type check.) If ek is not an array of bytes of length +/// 384k + 32 for the value of k specifed by the relevant parameter set, the input +/// is invalid. +/// +/// Input validation step 2. (Modulus check.) Perform the computation +/// ek' ← ByteEncode₁₂(ByteDecode₁₂(ek)). If ek' ≠ ek, the input is invalid. +/// +/// m ←$ 𝔹³² +/// (K,r) ← G(m ‖ H(ek)) +/// c ← K-PKE.Encrypt(ek, m, r) +/// return(K,c) /// ``` /// -/// The Kyber Round 3 specification can be found at: -/// +/// The NIST FIPS 203 standard can be found at +/// . pub fn encapsulate( + // Input validation step 1 is performed by specifying the type of + // |public_key| to be |PublicKey| public_key: PublicKey, randomness: [u8; KYBER768_SHARED_SECRET_SIZE], ) -> Result<(Ciphertext, SharedSecret), BadRejectionSamplingRandomnessError> { - let randomness_hashed = H(&randomness); + // Input validation step 2 + assert!(public_key_modulus_check(&public_key)); - let to_hash: [u8; 2 * H_DIGEST_SIZE] = randomness_hashed.push(&H(&public_key)); + // (K,r) ← G(m ‖ H(ek)) + let to_hash: [u8; 2 * H_DIGEST_SIZE] = randomness.push(&H(&public_key)); let hashed = G(&to_hash); - let (k_not, pseudorandomness) = hashed.split_at(32); - - let ciphertext = - ind_cpa::encrypt(&public_key, randomness_hashed, &pseudorandomness.as_array())?; + let (shared_secret, pseudorandomness) = hashed.split_at(KYBER768_SHARED_SECRET_SIZE); - let to_hash: [u8; 2 * H_DIGEST_SIZE] = k_not.push(&H(&ciphertext)); - let shared_secret: SharedSecret = KDF(&to_hash); + // c ← K-PKE.Encrypt(ek, m, r) + let ciphertext = ind_cpa::encrypt(&public_key, randomness, &pseudorandomness.as_array())?; - Ok((ciphertext, shared_secret)) + // return(K,c) + Ok((ciphertext, shared_secret.as_array())) } -/// This function implements Algorithm 9 of the Kyber Round 3 specification; -/// This is the Kyber Round 3 CCA-KEM decapsulation algorithm, and is -/// reproduced below: +/// This function implements Algorithm 17 of the +/// NIST FIPS 203 specification; this is the Kyber CCA-KEM encapsulation algorithm. +/// +/// Algorithm 17 is reproduced below: /// /// ```plaintext -/// Input: Ciphertext c ∈ B^{d_u·k·n/8 + d_v·n/8} -/// Input: Secret key sk ∈ B^{24·k·n / 8 + 96} -/// Output: Shared key K ∈ B^{*} -/// pk := sk + 12·k·n/8 -/// h := sk + 24·k·n / 8 + 32 ∈ B^{32} -/// z := sk + 24·k·n /8 + 64 -/// m′ := Kyber.CPAPKE.Dec(s, (u, v)) -/// (K ̄′, r′) := G(m′ || h) -/// c′ := Kyber.CPAPKE.Enc(pk, m′, r′) -/// if c = c′ then -/// return K := KDF(K ̄′ || H(c)) -/// else -/// return K := KDF(z || H(c)) +/// Validated input: ciphertext c ∈ 𝔹^{32(dᵤk+dᵥ)}. +/// Validated input: decapsulation key dkₚₖₑ ∈ 𝔹^{768k+96}. +/// Output: shared key K ∈ 𝔹^{384k+32}. +/// +/// Input validation step 1. (Ciphertext type check.) If c is not a byte array +/// of length 32(dᵤk+dᵥ) for the values of dᵤ, dᵥ, and k specifed by the relevant +/// parameter set, the input is invalid. +/// +/// Input validation step 2. (Decapsulation key type check.) If dk is not a byte +/// array of length 768k + 96 for the value of k specifed by the relevant +/// parameter set, the input is invalid. +/// +/// dkₚₖₑ ← dk[0 : 384k] +/// ekₚₖₑ ← dk[384k : 768k + 32] +/// h ← dk[768k + 32 : 768k + 64] +/// z ← dk[768k + 64 : 768k + 96] +/// m′ ← K-PKE.Decrypt(dkₚₖₑ,c) +/// (K′,r′) ← G(m′ ‖ h) +/// K̃ ← J(z‖c, 32) +/// c′ ← K-PKE.Encrypt(ekₚₖₑ, m′, r′) +/// if c ≠ c′ then +/// K′ ← K̃ /// end if -/// return K +/// return K′ /// ``` /// -/// The Kyber Round 3 specification can be found at: -/// -pub fn decapsulate(secret_key: PrivateKey, ciphertext: Ciphertext) -> SharedSecret { +/// The NIST FIPS 203 standard can be found at +/// . +pub fn decapsulate( + // Input validation step 1 is performed by specifying the type of + // |ciphertext| to be |Ciphertext| + ciphertext: Ciphertext, + // Input validation step 2 is performed by specifying the type of + // |secret_key| to be |PrivateKey| + secret_key: PrivateKey, +) -> SharedSecret { + // dkₚₖₑ ← dk[0 : 384k] let (ind_cpa_secret_key, secret_key) = secret_key.split_at(CPA_PKE_SECRET_KEY_SIZE); + + // ekₚₖₑ ← dk[384k : 768k + 32] let (ind_cpa_public_key, secret_key) = secret_key.split_at(CPA_PKE_PUBLIC_KEY_SIZE); + + // h ← dk[768k + 32 : 768k + 64] + // z ← dk[768k + 64 : 768k + 96] let (ind_cpa_public_key_hash, implicit_rejection_value) = secret_key.split_at(H_DIGEST_SIZE); + // m′ ← K-PKE.Decrypt(dkₚₖₑ,c) let decrypted = ind_cpa::decrypt(&ind_cpa_secret_key.as_array(), &ciphertext); + // (K′,r′) ← G(m′ ‖ h) let to_hash: [u8; CPA_PKE_MESSAGE_SIZE + H_DIGEST_SIZE] = decrypted.push(ind_cpa_public_key_hash); - let hashed = G(&to_hash); - let (k_not, pseudorandomness) = hashed.split_at(32); + let (success_shared_secret, pseudorandomness) = hashed.split_at(KYBER768_SHARED_SECRET_SIZE); + // K̃ ← J(z‖c, 32) + let to_hash: [u8; KYBER768_SHARED_SECRET_SIZE + KYBER768_CIPHERTEXT_SIZE] = + implicit_rejection_value.push(&ciphertext); + let rejection_shared_secret: [u8; KYBER768_SHARED_SECRET_SIZE] = J(&to_hash); + + // c′ ← K-PKE.Encrypt(ekₚₖₑ, m′, r′) let reencrypted_ciphertext = ind_cpa::encrypt( &ind_cpa_public_key.as_array(), decrypted, &pseudorandomness.as_array(), ); - let to_hash = if let Ok(reencrypted) = reencrypted_ciphertext { + // if c ≠ c′ then + // K′ ← K̃ + // end if + // return K′ + if let Ok(reencrypted) = reencrypted_ciphertext { if ciphertext == reencrypted { - k_not + success_shared_secret.as_array() } else { - implicit_rejection_value + rejection_shared_secret } } else { - implicit_rejection_value - }; - assert!(to_hash.len() == 32); - let to_hash: [u8; 32 + H_DIGEST_SIZE] = to_hash.push(&H(&ciphertext)); - - KDF(&to_hash) + rejection_shared_secret + } } #[cfg(test)] @@ -186,18 +246,22 @@ mod tests { use super::*; - const IMPLICIT_REJECTION_VALUE_POSITION: usize = parameters::CPA_PKE_SECRET_KEY_SIZE - + parameters::CPA_PKE_PUBLIC_KEY_SIZE - + parameters::hash_functions::H_DIGEST_SIZE; + use parameters::{ + hash_functions::{H_DIGEST_SIZE, J}, + CPA_PKE_PUBLIC_KEY_SIZE, CPA_PKE_SECRET_KEY_SIZE, + }; + + const IMPLICIT_REJECTION_VALUE_POSITION: usize = + CPA_PKE_SECRET_KEY_SIZE + CPA_PKE_PUBLIC_KEY_SIZE + H_DIGEST_SIZE; - pub fn decapsulate_with_implicit_rejection_value( + pub fn calculate_rejection_secret( secret_key: PrivateKey, - ciphertext: [u8; KYBER768_CIPHERTEXT_SIZE], + ciphertext: Ciphertext, ) -> SharedSecret { let mut to_hash = secret_key[IMPLICIT_REJECTION_VALUE_POSITION..].to_vec(); - to_hash.extend_from_slice(¶meters::hash_functions::H(&ciphertext)); + to_hash.extend_from_slice(&ciphertext); - parameters::hash_functions::KDF(&to_hash) + J(&to_hash) } proptest! { @@ -205,7 +269,7 @@ mod tests { fn consistency(key_generation_randomness in vec(any::(), KYBER768_KEY_GENERATION_SEED_SIZE), encapsulation_randomness in vec(any::(), KYBER768_SHARED_SECRET_SIZE)) { if let Ok(key_pair) = generate_keypair(key_generation_randomness.try_into().unwrap()) { if let Ok((ciphertext, shared_secret)) = encapsulate(key_pair.pk, encapsulation_randomness.try_into().unwrap()) { - let shared_secret_decapsulated = decapsulate(key_pair.sk, ciphertext); + let shared_secret_decapsulated = decapsulate(ciphertext, key_pair.sk); assert_eq!(shared_secret, shared_secret_decapsulated); } @@ -226,12 +290,12 @@ mod tests { if let Ok(key_pair) = generate_keypair(key_generation_randomness.try_into().unwrap()) { if let Ok((mut ciphertext, shared_secret)) = encapsulate(key_pair.pk, encapsulation_randomness.try_into().unwrap()) { ciphertext[ciphertext_position] ^= random_byte; - let shared_secret_decapsulated = decapsulate(key_pair.sk, ciphertext); + let shared_secret_decapsulated = decapsulate(ciphertext, key_pair.sk); assert_ne!(shared_secret, shared_secret_decapsulated); - let implicit_rejection_shared_secret = decapsulate_with_implicit_rejection_value(key_pair.sk, ciphertext); - assert_eq!(shared_secret_decapsulated, implicit_rejection_shared_secret); + let implicit_rejection_secret = calculate_rejection_secret(key_pair.sk, ciphertext); + assert_eq!(shared_secret_decapsulated, implicit_rejection_secret); } } @@ -251,7 +315,7 @@ mod tests { if let Ok(mut key_pair) = generate_keypair(key_generation_randomness.try_into().unwrap()) { if let Ok((ciphertext, shared_secret)) = encapsulate(key_pair.pk, encapsulation_randomness.try_into().unwrap()) { key_pair.sk[secret_key_position] ^= random_byte; - let shared_secret_decapsulated = decapsulate(key_pair.sk, ciphertext); + let shared_secret_decapsulated = decapsulate(ciphertext, key_pair.sk); assert_ne!(shared_secret, shared_secret_decapsulated); } @@ -275,10 +339,10 @@ mod tests { if let Ok(mut key_pair) = generate_keypair(key_generation_randomness.try_into().unwrap()) { if let Ok((mut ciphertext, _)) = encapsulate(key_pair.pk, encapsulation_randomness.try_into().unwrap()) { ciphertext[ciphertext_position] ^= random_byte_for_ciphertext; - let shared_secret_decapsulated = decapsulate(key_pair.sk, ciphertext); + let shared_secret_decapsulated = decapsulate(ciphertext, key_pair.sk); key_pair.sk[secret_key_position] ^= random_byte_for_secret_key; - let shared_secret_decapsulated_2 = decapsulate(key_pair.sk, ciphertext); + let shared_secret_decapsulated_2 = decapsulate(ciphertext, key_pair.sk); assert_ne!(shared_secret_decapsulated, shared_secret_decapsulated_2); } diff --git a/specs/kyber/src/matrix.rs b/specs/kyber/src/matrix.rs index 86ebf8ad4..a6eceb4c8 100644 --- a/specs/kyber/src/matrix.rs +++ b/specs/kyber/src/matrix.rs @@ -1,6 +1,7 @@ use crate::{ ntt::multiply_ntts, - parameters::{KyberPolynomialRingElement, RANK}, + parameters::{KyberPolynomialRingElement, BYTES_PER_RING_ELEMENT, RANK}, + serialize::{byte_decode, byte_encode}, }; pub(crate) fn transpose( @@ -16,7 +17,12 @@ pub(crate) fn transpose( transpose } -pub(crate) fn multiply_matrix_transpose_by_column( +/// N.B.: According to the NIST FIPS 203 standard (Page 9, Line 519), a matrix is +/// a set of column vectors. +/// +/// The NIST FIPS 203 standard can be found at +/// . +pub(crate) fn multiply_matrix_by_column( matrix: &[[KyberPolynomialRingElement; RANK]; RANK], vector: &[KyberPolynomialRingElement; RANK], ) -> [KyberPolynomialRingElement; RANK] { @@ -44,3 +50,28 @@ pub(crate) fn multiply_column_by_row( result } + +pub(crate) fn encode_vector_12( + re_vector: [KyberPolynomialRingElement; RANK], +) -> [u8; RANK * BYTES_PER_RING_ELEMENT] { + let mut out = [0u8; RANK * BYTES_PER_RING_ELEMENT]; + + for (i, re) in re_vector.into_iter().enumerate() { + out[i * BYTES_PER_RING_ELEMENT..(i + 1) * BYTES_PER_RING_ELEMENT] + .copy_from_slice(&byte_encode(12, re)); + } + + out +} + +pub(crate) fn decode_vector_12( + encoded: &[u8; RANK * BYTES_PER_RING_ELEMENT], +) -> [KyberPolynomialRingElement; RANK] { + let mut out = [KyberPolynomialRingElement::ZERO; RANK]; + + for (i, bytes) in encoded.chunks(BYTES_PER_RING_ELEMENT).enumerate() { + out[i] = byte_decode(12, bytes); + } + + out +} diff --git a/specs/kyber/src/ntt.rs b/specs/kyber/src/ntt.rs index d420f67d7..1fb2d44d9 100644 --- a/specs/kyber/src/ntt.rs +++ b/specs/kyber/src/ntt.rs @@ -231,7 +231,7 @@ mod tests { use proptest::prelude::*; - use crate::compress::tests::arb_ring_element; + use crate::{compress::tests::arb_ring_element, parameters::FIELD_MODULUS}; #[test] fn seven_bit_reverse() { @@ -240,6 +240,11 @@ mod tests { assert_eq!(78, bit_rev_7(185)); } + #[test] + fn zeta() { + assert_eq!(FIELD_MODULUS - 1, ZETA.pow(128).into()); + } + proptest! { #[test] fn to_ntt_and_back(ring_element in arb_ring_element(12)) { diff --git a/specs/kyber/src/parameters.rs b/specs/kyber/src/parameters.rs index ad5545678..f5dff5c29 100644 --- a/specs/kyber/src/parameters.rs +++ b/specs/kyber/src/parameters.rs @@ -74,7 +74,7 @@ pub(crate) mod hash_functions { digest::shake128::(input) } - pub(crate) fn KDF(input: &[u8]) -> [u8; LEN] { + pub(crate) fn J(input: &[u8]) -> [u8; LEN] { digest::shake256::(input) } } diff --git a/specs/kyber/src/sampling.rs b/specs/kyber/src/sampling.rs index 5d33682e5..b4519a4fd 100644 --- a/specs/kyber/src/sampling.rs +++ b/specs/kyber/src/sampling.rs @@ -1,10 +1,11 @@ -use hacspec_lib::bit_vector::{BitVector, BitVectorChunks}; - use crate::{ parameters::{self, KyberFieldElement, KyberPolynomialRingElement}, + serialize::bytes_to_bits, BadRejectionSamplingRandomnessError, }; +use hacspec_lib::bit_vector::BitSlice; + /// If `bytes` contains a set of uniformly random bytes, this function /// uniformly samples a ring element `â` that is treated as being the NTT representation /// of the corresponding polynomial `a`. @@ -54,13 +55,13 @@ pub fn sample_ntt( let b1 = u16::from(byte_chunk[1]); let b2 = u16::from(byte_chunk[2]); - // d_1 ← B[i] + 256·(B[i+1] mod 16) - // d_2 ← ⌊B[i+1]/16⌋ + 16·B[i+2] + // d₁ ← B[i] + 256·(B[i+1] mod 16) + // d₂ ← ⌊B[i+1]/16⌋ + 16·B[i+2] let d1 = b + (256 * (b1 % 16)); let d2 = (b1 / 16) + (16 * b2); - // if d_1 < q then - // â[j] ← d_1 + // if d₁ < q then + // â[j] ← d₁ // j ← j+1 // end if if d1 < parameters::FIELD_MODULUS && sampled_coefficients < a_hat.len() { @@ -68,8 +69,8 @@ pub fn sample_ntt( sampled_coefficients += 1 } - // if d_2 < q and j < 256 then - // â[j] ← d_2 + // if d₂ < q and j < 256 then + // â[j] ← d₂ // j ← j+1 // end if if d2 < parameters::FIELD_MODULUS && sampled_coefficients < a_hat.len() { @@ -90,9 +91,9 @@ pub fn sample_ntt( // // This function calls `unwrap()`, meaning the caller assumes the responsibility // for ensuring `next()`, when called on the iterator, does not come up empty-handed. -fn sum_coins(coins: &mut BitVectorChunks<'_>) -> KyberFieldElement { +fn sum_coins(coins: BitSlice) -> KyberFieldElement { let mut sum: u8 = 0; - for coin in coins.next().unwrap() { + for coin in coins.iter() { sum += coin; } @@ -149,8 +150,7 @@ fn sum_coins(coins: &mut BitVectorChunks<'_>) -> KyberFieldElement { pub fn sample_poly_cbd(eta: usize, bytes: &[u8]) -> KyberPolynomialRingElement { assert_eq!(bytes.len(), eta * 64); - // b ← BytesToBits(B) - let bits: BitVector = bytes.into(); + let bits = bytes_to_bits(bytes); let mut bits = bits.chunks(eta); @@ -158,10 +158,10 @@ pub fn sample_poly_cbd(eta: usize, bytes: &[u8]) -> KyberPolynomialRingElement { for i in 0..f.len() { // x ← ∑(j = 0 to η-1) b[2iη + j] - let x: KyberFieldElement = sum_coins(&mut bits); + let x: KyberFieldElement = sum_coins(bits.next().unwrap()); // y ← ∑(j = 0 to η-1) b[2iη + η + j] - let y: KyberFieldElement = sum_coins(&mut bits); + let y: KyberFieldElement = sum_coins(bits.next().unwrap()); // f[i] ← x − y mod q f[i] = x - y; diff --git a/specs/kyber/src/serialize.rs b/specs/kyber/src/serialize.rs index 862b8756a..cf9638ff9 100644 --- a/specs/kyber/src/serialize.rs +++ b/specs/kyber/src/serialize.rs @@ -1,108 +1,206 @@ -use hacspec_lib::{bit_vector::BitVector, ring::LittleEndianBitStream}; - use crate::parameters::{KyberFieldElement, KyberPolynomialRingElement, BITS_PER_COEFFICIENT}; +use hacspec_lib::{ + bit_vector::{BitSlice, BitVector}, + PanickingIntegerCasts, +}; + +/// Converts a bit string `bits` into an array of bytes. This function asserts +/// that `bits.len()` is a multiple of 8. +/// +/// This function implements Algorithm 2 of the NIST FIPS 203 +/// standard, which is reproduced below: +/// +/// ```plaintext +/// Input: bit array b ∈ {0,1}⁸ˡ. +/// Output: byte array B ∈ 𝔹ˡ. +/// +/// B ← (0,...,0) +/// for (i ← 0; i < 8l; i++) +/// B[⌊i/8⌋] ← B[⌊i/8⌋] + b[i]·2^{i} mod 8 +/// end for +/// return B +/// ``` +/// +/// The NIST FIPS 203 standard can be found at +/// . +pub(crate) fn bits_to_bytes(bits: BitVector) -> Vec { + assert!(bits.len() % 8 == 0); + + // B ← (0,...,0) + let mut bytes = Vec::new(); + + // for (i ← 0; i < 8l; i++) + for bit_chunk in bits.chunks(8) { + let mut byte_value = 0u8; + for (i, bit) in bit_chunk.into_iter().enumerate() { + // B[⌊i/8⌋] ← B[⌊i/8⌋] + b[i]·2^{i} mod 8 + byte_value += bit * 2u8.pow(i as u32); + } -fn to_little_endian_bit_vector( - re: KyberPolynomialRingElement, - bits_per_coefficient: usize, -) -> Vec { - let mut ring_element_bits: Vec = Vec::new(); - for bits in re.coefficients().bits_chunks(bits_per_coefficient) { - ring_element_bits.extend_from_slice(&bits); + bytes.push(byte_value); + } + + bytes +} + +/// Converts a set of bytes in `bytes` into a set of bits. +/// +/// This function implements Algorithm 3 of the NIST FIPS 203 +/// standard, which is reproduced below: +/// +/// ```plaintext +/// Input: byte array B ∈ 𝔹ˡ. +/// Output: bit array b ∈ {0,1}⁸ˡ. +/// for (i ← 0; i < l; i++) +/// for(j ← 0; j < 8; j++) +/// b[8i + j] ← B[i] mod 2 +/// B[i] ← ⌊B[i]/2⌋ +/// end for +/// end for +/// return b +/// ``` +/// +/// The NIST FIPS 203 standard can be found at +/// . +pub(crate) fn bytes_to_bits(bytes: &[u8]) -> BitVector { + let mut bits = BitVector::new(); + + // for (i ← 0; i < l; i++) + for byte in bytes.iter() { + let mut byte_value = *byte; + + // for(j ← 0; j < 8; j++) + for _ in 0..u8::BITS { + // b[8i + j] ← B[i] mod 2 + bits.push(byte_value % 2); + + // B[i] ← ⌊B[i]/2⌋ + byte_value /= 2; + } } - ring_element_bits + bits } /// Convert the associated ring element into a vector of -/// `|parameters::COEFFICIENTS_IN_RING_ELEMENT| * |bits_per_coefficient|` +/// `COEFFICIENTS_IN_RING_ELEMENT * bits_per_coefficient` /// bits, and output this vector as a byte array such that the first 8 bits of /// the vector represent the first byte of the output, the next 8 bits the /// next byte of the output, and so on ... /// -/// N.B.: While the specification states that `serialize_little_endian` is -/// the inverse of `deserialize_little_endian`, this is only the case for -/// this implementation when: +/// N.B.: `byte_encode` is only the inverse of `byte_decode` when: /// -/// - each ring coefficient can fit into |bits_per_coefficient| (otherwise +/// - each ring coefficient can fit into `bits_per_coefficient` (otherwise /// lossy compression takes place) -/// - `|bits_per_coefficient| < |parameters::BITS_PER_COEFFICIENT|`, since -/// otherwise when `deserialize_little_endian` operates on 12 bits at a time, +/// - `bits_per_coefficient < BITS_PER_COEFFICIENT`, since +/// otherwise when `byte_decode` operates on 12 bits at a time, /// it is not injective: the values 3329 + 1 and 1 for example both fit into /// 12 bits and map to the same `KyberFieldElement` /// -/// Otherwise `deserialize_little_endian` is not injective and therefore has -/// no left inverse. -pub fn serialize_little_endian( - re: KyberPolynomialRingElement, - bits_per_coefficient: usize, -) -> Vec { - let mut serialized: Vec = Vec::new(); - - for bit_vector in to_little_endian_bit_vector(re, bits_per_coefficient).chunks(8) { - let mut byte_value: u8 = 0; - for (i, &bit) in bit_vector.iter().enumerate() { - byte_value |= bit << i; - } +/// Otherwise `byte_decode` is not injective and therefore has no left inverse. +/// +/// N.B.: This function asserts that `bits_per_coefficient <= 12` +/// +/// This function implements Algorithm 4 of the NIST FIPS 203 standard, which is +/// reproduced below: +/// +/// ```plaintext +/// Input: integer array F ∈ ℤₘ²⁵⁶, where m = 2ᵈ if d < 12 and m = q if d = 12. +/// Output: byte array B ∈ 𝔹^{32d}. +/// for(i ← 0; i < 256; i++) +/// a ← F[i] +/// for(j ← 0; j < d; j++) +/// b[i·d + j] ← a mod 2 +/// a ← (a − b[i·d + j])/2 +/// end for +/// B ← BitsToBytes(b) +/// return B +/// ``` +/// +/// The NIST FIPS 203 standard can be found at +/// . +pub fn byte_encode(bits_per_coefficient: usize, re: KyberPolynomialRingElement) -> Vec { + assert!(bits_per_coefficient <= BITS_PER_COEFFICIENT); - serialized.push(byte_value); + let mut re_bits = BitVector::new(); + + // for(i ← 0; i < 256; i++) + for coefficient in re.coefficients() { + // a ← F[i] + let mut coefficient_value = coefficient.value; + + // for(j ← 0; j < d; j++) + for _ in 0..bits_per_coefficient { + let bit = coefficient_value % 2; + + // b[i·d + j] ← a mod 2 + re_bits.push(bit as u8); + + // a ← (a − b[i·d + j])/2 + coefficient_value = (coefficient_value - bit) / 2; + } } - serialized + bits_to_bytes(re_bits) } -fn field_element_from_little_endian_bit_vector(bit_vector: BitVector) -> KyberFieldElement { +fn field_element_from_bits(bits: BitSlice) -> KyberFieldElement { + assert!(bits.len() <= BITS_PER_COEFFICIENT); + + let modulus = 2u16.pow(bits.len().as_u32()); let mut value: u16 = 0; - for (i, bit) in bit_vector.into_iter().enumerate() { - value |= u16::from(bit) << i; + + for (i, bit) in bits.into_iter().enumerate() { + value += ((*bit as u16) * (1 << i)) % modulus; } value.into() } -/// Given a series of bytes representing a ring element in `|ring_element_bytes|`, +/// Given a series of bytes representing a ring element in `re_bytes`, /// first convert them into a vector of bits in little-endian order; i.e. -/// the least significant `|bits_per_coefficient|` of `|ring_element_bytes[0]|` +/// the least significant `bits_per_coefficient` of `re_bytes[0]` /// are the first set of bits in the bitstream. /// -/// This vector is deserialized into a KyberPolynomialRingElement structure. -/// The first `|bits_per_coefficient|` represent the first coefficient of -/// the ring element, the second `|bits_per_coefficient|` the second coefficient, +/// This vector is deserialized into a `KyberPolynomialRingElement` structure. +/// The first `bits_per_coefficient` represent the first coefficient of +/// the ring element, the second `bits_per_coefficient` the second coefficient, /// and so on. /// -/// This function implements Algorithm 3 of the Kyber Round 3 specification, -/// which is reproduced below: +/// N.B.: This function asserts that `bits_per_coefficient <= 12` +/// +/// This function implements Algorithm 5 of the NIST FIPS 203 +/// standard, which is reproduced below: /// /// ```plaintext -/// Input: Byte array B ∈ B^{32*l} -/// Output: Polynomial f ∈ R_q -/// (β_0, . . . , β_{256l−1}) := BytesToBits(B) -/// for i from 0 to 255 do -/// f_i := sum(j = 0 to l−1)(β_{il+j}*2^{j}) +/// Input: byte array B ∈ 𝔹^{32d}. +/// Output: integer array F ∈ ℤₘ²⁵⁶, where m = 2ᵈ if d < 12 and m = q if d = 12. +/// +/// b ← BytesToBits(B) +/// for (i ← 0; i < 256; i++) +/// F[i] ← ∑(j = 0 to d−1) b[i·d + j] · 2ʲ mod m /// end for -/// return f0 +f_1X +f_2X^2 +···+f_255X^255 +/// return F /// ``` /// -/// The Kyber Round 3 specification can be found at: -/// -pub fn deserialize_little_endian( - bits_per_coefficient: usize, - ring_element_bytes: &[u8], -) -> KyberPolynomialRingElement { +/// The NIST FIPS 203 standard can be found at +/// . +pub fn byte_decode(bits_per_coefficient: usize, re_bytes: &[u8]) -> KyberPolynomialRingElement { assert!(bits_per_coefficient <= BITS_PER_COEFFICIENT); + assert_eq!(re_bytes.len(), 32 * bits_per_coefficient); - // FIXME: rewrite like serialization without the `BitVector`. - let ring_element_bits: BitVector = ring_element_bytes.into(); - let mut ring_element_bits = ring_element_bits.chunks(bits_per_coefficient); + let re_bits = bytes_to_bits(re_bytes); + let mut re_bit_chunks = re_bits.chunks(bits_per_coefficient); - let mut deserialized = KyberPolynomialRingElement::ZERO; + let mut re = KyberPolynomialRingElement::ZERO; - for i in 0..deserialized.len() { - deserialized[i] = - field_element_from_little_endian_bit_vector(ring_element_bits.next().unwrap()); + // for (i ← 0; i < 256; i++) + for i in 0..re.len() { + // F[i] ← ∑(j = 0 to d−1) b[i·d + j] · 2ʲ mod m + re[i] = field_element_from_bits(re_bit_chunks.next().unwrap()); } - deserialized + re } #[cfg(test)] @@ -116,14 +214,14 @@ mod tests { // TODO: Generalize this to sizes other than 12. #[test] fn deserialize_is_left_inverse_of_serialize_when_no_compression(ring_element in arb_ring_element(12)) { - let ring_element_serialized = serialize_little_endian(ring_element, 12); - assert_eq!(ring_element, deserialize_little_endian(12, &ring_element_serialized)); + let ring_element_serialized = byte_encode(12, ring_element); + assert_eq!(ring_element, byte_decode(12, &ring_element_serialized)); } #[test] fn serialize_is_sometimes_left_inverse_of_deserialize_when_no_compression(ring_element in arb_ring_element(12)) { - let ring_element_serialized = serialize_little_endian(ring_element, 12); - assert_eq!(ring_element_serialized, serialize_little_endian(deserialize_little_endian(12, &ring_element_serialized), 12)); + let ring_element_serialized = byte_encode(12, ring_element); + assert_eq!(ring_element_serialized, byte_encode(12, byte_decode(12, &ring_element_serialized))); } } } diff --git a/specs/kyber/tests/kyber768_nist_kats.json b/specs/kyber/tests/kyber768_nist_kats.json index 143afd4fe..1c5396033 100644 --- a/specs/kyber/tests/kyber768_nist_kats.json +++ b/specs/kyber/tests/kyber768_nist_kats.json @@ -1,802 +1,802 @@ [ { - "key_generation_seed": "7c9935a0b07694aa0c6d10e4db6b1add2fd81a25ccb148032dcd739936737f2d8626ed79d451140800e03b59b956f8210e556067407d13dc90fa9e8b872bfb8f", + "key_generation_seed": "7c9935a0b07694aa0c6d10e4db6b1add2fd81a25ccb148032dcd739936737f2db505d7cfad1b497499323c8686325e4792f267aafa3f87ca60d01cb54f29202a", "sha3_256_hash_of_public_key": "d4ec143b50f01423b177895edee22bb739f647ecf85f50bc25ef7b5a725dee86", - "sha3_256_hash_of_secret_key": "245bc1d8cdd4893e4c471e8fccfa7019df0fd10f2d5375f36b4af5f4222aca6a", - "encapsulation_seed": "147c03f7a5bebba406c8fae1874d7f13c80efe79a3a9a874cc09fe76f6997615", - "sha3_256_hash_of_ciphertext": "962242140e9b3492476c62847a250a5e425a41ceec123ce0158d601e7af4139e", - "shared_secret": "914cb67fe5c38e73bf74181c0ac50428dedf7750a98058f7d536708774535b29" + "sha3_256_hash_of_secret_key": "f900f8294f1b65d21350cc837c2206b0da33057e56396d0df31897179a275c81", + "encapsulation_seed": "eb4a7c66ef4eba2ddb38c88d8bc706b1d639002198172a7b1942eca8f6c001ba", + "sha3_256_hash_of_ciphertext": "1b06ca3e54fa6d5d11a3846c3c0d87a987ee63fd47c063f1f264548571c9e87d", + "shared_secret": "1460f573a69383d92c2c272dc0193174b44d227bf95ca81e14a758c3f7e59c15" }, { - "key_generation_seed": "d60b93492a1d8c1c7ba6fc0b733137f3406cee8110a93f170e7a78658af326d9003271531cf27285b8721ed5cb46853043b346a66cba6cf765f1b0eaa40bf672", + "key_generation_seed": "d60b93492a1d8c1c7ba6fc0b733137f3406cee8110a93f170e7a78658af326d9588522d326e7f105f11c4e8d97e119e193af42dc28409f4f7572ada538b52c1f", "sha3_256_hash_of_public_key": "2cedad700b675e98641bea57b936bd8befce2d5161e0ef4ef8406e70f1e2c27c", - "sha3_256_hash_of_secret_key": "0a84cc895da138b944accbef3ff1a0004b8a0d8af5d426d2b82ea4c0e585cc6a", - "encapsulation_seed": "cde797df8ce67231f6c5d15811843e01eb2ab84c7490931240822adbddd72046", - "sha3_256_hash_of_ciphertext": "5c292a0b3e0f411d1d52ea30126d6c21e83f0bb5781cb4418795d4568ded5e77", - "shared_secret": "fe8aaa6558fd8087dd7cab54b4bce50fc625a369ecace58b2ec36f3bc5bb4f5a" + "sha3_256_hash_of_secret_key": "65f816af2a2db20c68a66550269c08aabb858ea5de86f67ba7f62ec5da3012a1", + "encapsulation_seed": "46401015603c5e2174cb94ac742e836b516e2d570f15de0b9d0204d79ac64ba3", + "sha3_256_hash_of_ciphertext": "e3547990af2f627dc0535e734af9813d83d756472e0bd17c19dda35e0df1fd0c", + "shared_secret": "7ca06f75490aab6218e89a10c19f9313ebdd219fa79e44c2e4440ff1a3c2d291" }, { - "key_generation_seed": "4b622de1350119c45a9f2e2ef3dc5df50a759d138cdfbd64c81cc7cc2f513345e82fcc97ca60ccb27bf6938c975658aeb8b4d37cffbde25d97e561f36c219ade", + "key_generation_seed": "4b622de1350119c45a9f2e2ef3dc5df50a759d138cdfbd64c81cc7cc2f513345d5a45a4ced06403c5557e87113cb30ea3dc2f39481734de9e18bcbfbecc6719f", "sha3_256_hash_of_public_key": "3dbc65b722a8982d058e27d409f04f744551ecde9015b62607cf67bb8ececbb8", - "sha3_256_hash_of_secret_key": "0ffced333b5d13fff22b81e66d57b6e2a6dba0285fe2a82d5537df51a8d3eac3", - "encapsulation_seed": "f43f68fbd694f0a6d307297110ecd4739876489fdf07eb9b03364e2ed0ff96e9", - "sha3_256_hash_of_ciphertext": "0d21bf3200a154ba18b488794d8fdcb17a7796b0b0cd98cedc882a55764cada4", - "shared_secret": "86435ab2aff9cea1dc653ce819721a56933841f29330869b63e36604a6ceaff2" + "sha3_256_hash_of_secret_key": "2ff10d40eaca83255e065b379ab4de87d78930b845426c803e08b6ac199bed75", + "encapsulation_seed": "8ddcc956a19e14e33dd2f1fcc4e6aa816f299f76cbf95b962a0535a7e2949405", + "sha3_256_hash_of_ciphertext": "c377599cbede71a5f34aa4bc258d4e7c941d0ef6a0dc8a8898816fe71b092061", + "shared_secret": "57d3c28b11497bdbcb6cb8bd09e459292f7904e1f78fa5d2b8dbb33b23b21d9a" }, { - "key_generation_seed": "050d58f9f757edc1e8180e3808b806f5bbb3586db3470b069826d1bb9a4efc2cde950541fd53a8a47aaa8cdfe80d928262a5ef7f8129ec3ef92f78d7cc32ef60", + "key_generation_seed": "050d58f9f757edc1e8180e3808b806f5bbb3586db3470b069826d1bb9a4efc2c3e0351bdc8a2daf0258645c383021df33fe59b553a8270c1b7a4d0af155999b8", "sha3_256_hash_of_public_key": "94391b7a41175a41c15cd995ebc69c83b29e4bcea6c186611dc4a79578e37f4c", - "sha3_256_hash_of_secret_key": "e3904266e186b34a397014c95f6d314cd6e1c813348b02e977d0fd21d9bb681b", - "encapsulation_seed": "ea74fbc3c546500ed684bed6fe3c496d3b86d2d6dfaf223969b942e9a8c95e85", - "sha3_256_hash_of_ciphertext": "9bdde47293bfd0a5b054c7ef58d2d9baf78aa47685941f315e771595b15c99b9", - "shared_secret": "f9a2d73f0a81b5829e7c7cad8fcf5f1ad55b384b2427c288bfbf4c29540f1db6" + "sha3_256_hash_of_secret_key": "62da89532e86ce3c5760d33914a3ebdc062a5e42920a336ccb0c3f287816224d", + "encapsulation_seed": "ded872c12331243854d57fb85475e4a45d85378aa15cc73dbaa11d6c3ea9a080", + "sha3_256_hash_of_ciphertext": "d92a4855d2bf4321750901ae4ed4b70ecdd24e63804e6488968e8b091d26c23f", + "shared_secret": "c0858517d0c27b05325599951912324de393470811c6e19d99aa9e4ef4f0807f" }, { - "key_generation_seed": "66b79b844e0c2adad694e0478661ac46fe6b6001f6a71ff8e2f034b1fd8833d3be2d3c64d38269a1ee8660b9a2beaeb9f5ac022e8f0a357feebfd13b06813854", + "key_generation_seed": "66b79b844e0c2adad694e0478661ac46fe6b6001f6a71ff8e2f034b1fd8833d3b68c0ef1663e52e24c33090ea8f4f564d85daca610fd7c2d5756d7d882408ded", "sha3_256_hash_of_public_key": "c5dbd68b3a8c148b2e7ac049bb986e14dd1cebfa1cbf3edd6bae85a4d2dda082", - "sha3_256_hash_of_secret_key": "b3fa7958f4b7ccb68712ae948c3f08740c8b89a69e53ad4e9959234e6869d8fe", - "encapsulation_seed": "64efa87a12cb96f98b9b81a7e5128a959c74e5332aaab0444fca7b4a5e5e0216", - "sha3_256_hash_of_ciphertext": "b898e6fe8eec252f9d2b16894f9e29425514eccca8aea8ad7ffc693e57124c4b", - "shared_secret": "83e562482fcf5157c75d3d2f0a35da861689a1009104a071a7bfb10bc4d8cd02" + "sha3_256_hash_of_secret_key": "1118be4c259f8c4f04dbded5415e2688cc024f6e7caefd45e364c81948da6219", + "encapsulation_seed": "be4b5e900bf3274d5c6556ce983f3c13eb314e8b3ac969be600a8c769a6e7c76", + "sha3_256_hash_of_ciphertext": "1be54f3bb79cea0ea5bc7a1f06a269b0c372944cf28d088af11d2bd618fffb3d", + "shared_secret": "7f20a54fa2f1f84093f5cee4c8f31640be654f07bc939952284bfb3b0440a079" }, { - "key_generation_seed": "7ec408f52c9aa723d0c41d9987682a5f4ce6c9da7cd0215af60bbaf5484ab353a08ccf451b049fd51d7a9ad77ae14a81569df8c9bd3a8f1ebea86fdcfb823082", + "key_generation_seed": "7ec408f52c9aa723d0c41d9987682a5f4ce6c9da7cd0215af60bbaf5484ab3530da1d147e7686e428aa1775bc2eb045d1ecbb17563ac966f708cf3882c47b5ad", "sha3_256_hash_of_public_key": "62e0447f7b5ae8a806b741ca5c302230b555c3786c11f3eb43894a8f45e3f7b1", - "sha3_256_hash_of_secret_key": "1a3249c268754c86d2e02ba9d87c2b60b220bf2406b71037cfaf6b089477ffb4", - "encapsulation_seed": "8a95d71228acaa5f9ae6f9d9ca8ae55fde296463b41083a39e833e37c4c90f88", - "sha3_256_hash_of_ciphertext": "f37074f0b62febb653bc6a39f3a242c03572ec4e7b0bdac6a1a807e74044c3ec", - "shared_secret": "445b60a142d4853702a102f9cc37fdfb1d0b14a9a7e210c7d290f9402f0a2f40" + "sha3_256_hash_of_secret_key": "463392367be5231c78417f2e29df9e52229ea13e3cc694eefe72a36a6fe7dd52", + "encapsulation_seed": "b0c99f495ad0cfa090c5453402fb93b6bf35d02077c5f6388810cee3edf51a99", + "sha3_256_hash_of_ciphertext": "5e5a81eaa6a7c28e3bf7f66ea55a9451b71c1ca1f57189e1c8c1ebe7ed3f93d0", + "shared_secret": "082442b947f74c4e9a1c3e18a2dc9e761677251ba93d4ce000960ee23c2cdcdd" }, { - "key_generation_seed": "c121915bfef6abdfc177dae2f5a24218f9abda2559afc6741b08e0e61ab433eb84ef52db5eaa6df8ec3a0bc5ffa730db0dde8c5f38f266d5c680a78d264a7b96", + "key_generation_seed": "c121915bfef6abdfc177dae2f5a24218f9abda2559afc6741b08e0e61ab433eb729b5a50627688a4cb3e37cc0fef22162ddbd848e5aa641731f8e60b4b79c93f", "sha3_256_hash_of_public_key": "0c1d832af7b7282d8bd81a2237107ee60d81e28eb64d6a153ae0eaa1a25797c2", - "sha3_256_hash_of_secret_key": "fd6b5d3f120ca009871ca24552a6118917ea882f12f30dc8097f6614d9d36080", - "encapsulation_seed": "90d79d75d0bbb8921cf70d46bab497022a8e750efdc99e5f1bae653275441c7b", - "sha3_256_hash_of_ciphertext": "c68b7acf4074d1ae2ff4055dc420e5c4e808255623874082f31118c212b079c2", - "shared_secret": "71156980b8970fed7f2213594630ca825ea8eade58cc8225df8111460412b762" + "sha3_256_hash_of_secret_key": "ff9c41570c1129a4ad5f09318416f0fb5dc7f4ab3a62ccfc802a8b7010272f5a", + "encapsulation_seed": "187361c0147168efc571fc7c181bb39144a8f7ea3e878d28024d19ba42135bd8", + "sha3_256_hash_of_ciphertext": "1d6d5670755b4db082e38278a52630bd1619725622c1e5277c4da009b828f3c6", + "shared_secret": "ecfa00644757c95e8a66c87a4d1fe52ebb7592234ebc5cfe51941d8c12118095" }, { - "key_generation_seed": "d86634ecf96cc2603761e284c0e36734cedec64e7ff486469e38539c71141c5a99daf37400cfe59841afc412ec97f2929dc84a6f3c36f378ee84ce3e46cd1209", + "key_generation_seed": "d86634ecf96cc2603761e284c0e36734cedec64e7ff486469e38539c71141c5a0472c3d61e4cae91b22d2f5a316794c723fbcf7546db47a42a15f1450ca3282d", "sha3_256_hash_of_public_key": "2b757ac0425152bef72ed852ab1eb44f4359499407bb6a020ff843a31657c5fe", - "sha3_256_hash_of_secret_key": "27dbbc7918c31e9ab57808f439c4f4189cc318a62422457f4fed733be959c816", - "encapsulation_seed": "be8a32f97b9a8d596382c02fa2a0eeebc15c083e970ddaa4f2622b91d6718663", - "sha3_256_hash_of_ciphertext": "2f7dd9b6567b3c2c8be065e42e3a709339e26dfaebaa6d1d85c88e1ddc214694", - "shared_secret": "eff5e4ce44fe0d0b77cf8109d46c8a888399d1608ad9e2248181bd205a0b23d9" + "sha3_256_hash_of_secret_key": "0983851414a22b57d62a81e41fc5c44c15ef605138082746e20c0b0d0844994f", + "encapsulation_seed": "295f219917d44b474de067472cc832406bcd18447df12f87bd117662cb0f2e77", + "sha3_256_hash_of_ciphertext": "bed9f6a40a07aaa64a2a2f6ee4bf76090082f3328c9f0200d96eb1104562fd2e", + "shared_secret": "b4aeb74357e6f7d976f210bb04feea974a4a56edc42c733dc1b456f215cc3aa2" }, { - "key_generation_seed": "0610678ff4dc3128e1619f915dc192c220f8fad94da1943b90aaec401683a492da1804ddb5aa9b1c6a47a98f8505a49bae2affde5fe75e69e828e546a6771004", + "key_generation_seed": "0610678ff4dc3128e1619f915dc192c220f8fad94da1943b90aaec401683a49281b292427d57feeb160f9347348632e1cd340960f6e6ea2422d194a0109af1df", "sha3_256_hash_of_public_key": "53b9d62e64f9069d9fb94ea2c0806459b201531f4fddd708d162981cc1fb3757", - "sha3_256_hash_of_secret_key": "f4b964b7ab3e09fdf3d91527da06a4d29ef28344709a41739ef56f18bd5b984b", - "encapsulation_seed": "da2cfaf69e25b2a89ff2557bbb6f69e01d8e2e7bb27a7a1ce7e40fead16f33b2", - "sha3_256_hash_of_ciphertext": "db93c9936569e81c7ed2e9c9a29ecedefddd06f793ec869f6dd0b88148e7c43c", - "shared_secret": "25c35f5858d03291c0132c970e6e072d8a7b33419b984b391a12891f878d981f" + "sha3_256_hash_of_secret_key": "8b6a2bb94342b96c7ed422065153855ea936dba97ee7ea0435d3bdb82a6152b0", + "encapsulation_seed": "281481109453c6238eb72d8995d5a09baeb0b830e40fb09ed20e37bde4826ddb", + "sha3_256_hash_of_ciphertext": "19a1da151b8cf386e7ce4ff2486cf07f364056499a2c86a052584416a925e928", + "shared_secret": "1c14cf303c1330c50786fe731325b1d31d7d11e39c1dc9ec58cb3c9b5d290a38" }, { - "key_generation_seed": "d322d56d8ef067ba1f24c92492b9c56df3a6ef54a304adc1b69913766a1ce69756047447b810cc094d400ab204cf9ae71e3afa68b88586ecb6498c68ac0e51b9", + "key_generation_seed": "d322d56d8ef067ba1f24c92492b9c56df3a6ef54a304adc1b69913766a1ce69705224fca29659d6c7a880a5f20d5fe02dc4491f2f095dcf2ddecbf105014c5a8", "sha3_256_hash_of_public_key": "9cfeca12dfe978bf0b7ad7271487cf61b2b8f7c60f389f33fc18439a95bcbb63", - "sha3_256_hash_of_secret_key": "a2e37a55c9b80fb423f40585180b011f32402d0320259285b6e278df6c20ba60", - "encapsulation_seed": "511c2ab40782322c06111e144e505328c4e5bfc890a5980a2bbc44aeda4c738b", - "sha3_256_hash_of_ciphertext": "758e2189cd55f9d9fa80fbcfa433bce052cf402cd53ee060f930356f780ecd62", - "shared_secret": "f9eb1c87813c712cc3054109acb5f219fc1e29db10ff33d093a5cd67df995015" + "sha3_256_hash_of_secret_key": "785041961ab3d4e17897275c90b4e6e52d803ca6b0c745f15a71a1ab8fee58f4", + "encapsulation_seed": "1e712b1ef59c5594b414d7c1156b8e4ff3c3d24c92ac92c734f4ad03449a7e28", + "sha3_256_hash_of_ciphertext": "c1da7667ce099e145c4926297720e45f9a0d3084542b7d09c5c550678cb88c61", + "shared_secret": "ff77e8fe0458dfd2c82f6dab5dba05944c7d88a02fcae8448d9044d12279d429" }, { - "key_generation_seed": "2f1d8a3bebb34540324b9485fdf3d5be3b858f544abc3fc641b5728cafab03ba8d6c42e7270ee2b77b6045385f3d175984a0e260363166c73b0c70c971644363", + "key_generation_seed": "2f1d8a3bebb34540324b9485fdf3d5be3b858f544abc3fc641b5728cafab03ba6931e7324d5527dcd0ea7e2e6c2a82d4a80c3edfb38752b36581f3035ed9a23e", "sha3_256_hash_of_public_key": "9aa64a30bed5aa8300772066ef577f79bf4813e3315a15f2c28b2665e4dc7e2f", - "sha3_256_hash_of_secret_key": "837eb6ce037f235273d7686fd9d01bea14026e0a0f5f943884f18409cc4bc70a", - "encapsulation_seed": "dca92dbec9b260dd97e8886f876862d6effc3b91fcf3fbc986cf56ab93ae79a2", - "sha3_256_hash_of_ciphertext": "8a8d7f3524c3ef9c1dd37d62969e9a829f61409b132ff5b2732286e22bd08af8", - "shared_secret": "a2b1d4028af3777be109a51fab5b7014681b0be94a7c06e8c2100565667f21a7" + "sha3_256_hash_of_secret_key": "05aa3d69cb0420c6ca5c8ef9148896d353ceb7dfa8b9b77a2e783dbd99e75614", + "encapsulation_seed": "bcd1828f520df6a11b417bc8ec4367b6f7ccc47a4f69aadc445dc83f15482abe", + "sha3_256_hash_of_ciphertext": "8fa32330753587c67a08d878e18e9cdc6264636089bac48084ad8441ae3cafc5", + "shared_secret": "53a2c4d5e96348634d8e0b8165355ec7dff157e93c4a4cbb6ebb0a89e5a1c5f9" }, { - "key_generation_seed": "31beda3462627f601cbc56f3ddf4424e1529c04737ef0ef2af6d7401f653b8a1812083bfa3b670e3eaf9b443702fb6db16ac1197656bbd61a8e25ed523b8d1e5", + "key_generation_seed": "31beda3462627f601cbc56f3ddf4424e1529c04737ef0ef2af6d7401f653b8a13390c2faa8e2bbdac1edf5a5b6803bfd3c58dcb1ace60333d03cde2c71737f55", "sha3_256_hash_of_public_key": "241e5c7b836862d7482d507973ae3fd8dae96eec4ecebcedb68fbda75e04b401", - "sha3_256_hash_of_secret_key": "95c79c2a867b3e8a4e4e545ff626cd49893b8e87eb188ed1516b159a24736c97", - "encapsulation_seed": "57c170e691d7a914a901b9a11c62b8b569b3806427557a9dbac9faa720ec3641", - "sha3_256_hash_of_ciphertext": "731f4dcf933a93ab333df3632b48b059b0bcd6fe8956435756ea53d67b539ddc", - "shared_secret": "4a2bac4d2a30597aa5b528d0e20b1630b20a36e8d747b5ec41eeb57950375a5d" + "sha3_256_hash_of_secret_key": "10b57ddf94754b37b0d1c8ec29abf6b522752bf74d104f8600ce6274cb64558f", + "encapsulation_seed": "c5d2e4c39ef9b75e3691b929f1618699306802adc2d04bb0219418f7bb0d2b19", + "sha3_256_hash_of_ciphertext": "410873b8abe2e20c26abe32ba2fa2cd4c28f39c12db548aefe39486ebdeb7c3e", + "shared_secret": "b3668d62a092edad32a4d1d4a8d919a27197f88fab79f33aa325d2ef20c73c90" }, { - "key_generation_seed": "cbdff028766d558af4466ef14043a1a9cf765f7748c63cc09dceb59ab39a4e4d8e9a30597e4b52ffa87a54b83c91d12a5e9c2cd90fcac2c11b3a348240411a4c", + "key_generation_seed": "cbdff028766d558af4466ef14043a1a9cf765f7748c63cc09dceb59ab39a4e4d605f30457945f8b1560010c71b40717fee3264a27ebae2ac8abc16267fb0f3ae", "sha3_256_hash_of_public_key": "6ad1d739f1598a16c608a240cd13dfaf8263d74866315e2898a3431cf19e4685", - "sha3_256_hash_of_secret_key": "1ef733faa4f2cb53cb5d8975aa6797b5f37fd918aeda02178a40584475cdf667", - "encapsulation_seed": "6b5a14e1473abf5a33d44975ca2088bd8fa6fddcb3f80e8fd5c45b9d90c24a5c", - "sha3_256_hash_of_ciphertext": "7e5fcf6be83e2dd9962f842b8f7879d6b0f61c31d0fc12cdce7eaea33bb9b0cd", - "shared_secret": "e09c8d7e5d104c0a42b47f031efe22a79ba1008efdfb80ffc7532f40fc9b3a94" + "sha3_256_hash_of_secret_key": "424c04a3ceb98646a95ed440b4e4f3e7ac1953a783fc3e397568565b8ed3b4a6", + "encapsulation_seed": "aa9d93a4f2747551ddb0453f9717e1789b64ac9c19ba3da020261936ffaa9ca1", + "sha3_256_hash_of_ciphertext": "2e3f32137c3ebe04adbc541b449a58b620072f32677f85ed6e19e3db695bd640", + "shared_secret": "e2c19c840f2378fcdf9a8e71de83815c4c41a9e579adc6405f14ce91232e3f53" }, { - "key_generation_seed": "4c04310bea66305c6ca8ba6b8f61ca96257a67663afc11761f13fb5c7b324b6b8aec87a9a79204cee2986867a2906eb851b734b8b22b91d6749b1a5f07c44e3b", + "key_generation_seed": "4c04310bea66305c6ca8ba6b8f61ca96257a67663afc11761f13fb5c7b324b6b0a8155459118346a84683de346659727da4b64a1050c5271e968ba9cfdf6029d", "sha3_256_hash_of_public_key": "9510a2a0b4fcbd414fc61aff04a8df579660d14b13c40ec0470c45f639b65a58", - "sha3_256_hash_of_secret_key": "0bcfa8078582f60e218047d0016437601da8431f34ae6da12921f53958f32819", - "encapsulation_seed": "40e593754e6eddb7f9cf176ba2d5fd1087c90ad377556d0b0f686537b1a3165e", - "sha3_256_hash_of_ciphertext": "f71047763708b3af8d9487f2b293b7e58faf7ed988642ab901eb3968b59f7aa8", - "shared_secret": "1f8d087b541b57a9d85f0737c39e73fde01db5bbe539834d8f918426a57df9e5" + "sha3_256_hash_of_secret_key": "d08bd6c42be27ce3ac3482ea6a2d5457acbf02c3cac5f4c85a6ff481eb79d9d1", + "encapsulation_seed": "8af3dbb32af8dec4843aa90bbf43a5f13686d9738911a805c62636c111b2e140", + "sha3_256_hash_of_ciphertext": "98634075f38dc8ee974f0d0cdd470ec3ceb37bd0aec83d88f38f4edff07729e1", + "shared_secret": "07163cd065c6976622fa92b5f0e93e6748111ae8a8f7194498eb2f6664d336ad" }, { - "key_generation_seed": "38a0d5f41d7dc1896efd1b45b0485634cef149828751b96087a0a6dd81b4d58aa2acf359556df4a2abaeb9dcee945829beb71185b4d6bd18b76e5668f253383a", + "key_generation_seed": "38a0d5f41d7dc1896efd1b45b0485634cef149828751b96087a0a6dd81b4d58a08ad5bf30d584ae9c8425ab3c8f1fb9960752721cb2c8310cd7bac84808bb979", "sha3_256_hash_of_public_key": "cfbe9649d9d1c384baad67b91b2f3e21f2fadd6bb582a0b9cb016051dd82c75a", - "sha3_256_hash_of_secret_key": "09b118f7c4d059baf27284d127d4e85d55b84e4c92bf3127eeb318d2f5765401", - "encapsulation_seed": "c152523abd8248bed40c3827bcf0f8e8127037a55c780695e2c28ea3e041a44c", - "sha3_256_hash_of_ciphertext": "cebd6e1e4a16d53cf241c686a5516319bf7ba7ae1248368a874484e270fe56d2", - "shared_secret": "0da3b9b56fa25f4ca356d3206b99ac83fe84a09cf7fd55a33268c122a8fb51ab" + "sha3_256_hash_of_secret_key": "7ab035158caf211d606c4ddc12184360893479048e44fc9fd4c51e0bb9f231e6", + "encapsulation_seed": "ad44643a608b78bece50b8309f573aac3da68125ce877e8bcbdcd51762aa0a9e", + "sha3_256_hash_of_ciphertext": "0f02d7a5153d62a1f24ed5c6a95caad1e1e63974a6e8b26d6b7b1c93d9582e6c", + "shared_secret": "794a5cb19552d8b4b4e4eb3ac5dc75a69fc5e98acc4b93e99de85586c85a352e" }, { - "key_generation_seed": "97b5665676e59e3538ebadaa8cd50df1f9fda1502d9894c616a946078e56b621df05318b5f655efe36f1b678cf4b875108a18db2fa312261caf839f84bd956c5", + "key_generation_seed": "97b5665676e59e3538ebadaa8cd50df1f9fda1502d9894c616a946078e56b62148b1985fd7938595dac8ab776701ca1e9fef47350dfc45355ff1e83a08bfc3a9", "sha3_256_hash_of_public_key": "a19c2c9c907b129d01cc44a95949121c39534cc98b6d105e60fe519a000cc2ae", - "sha3_256_hash_of_secret_key": "f1c00070780a7a2ac5b57ff3ff765ca75278bb661d1635cac92792f9454fe8ba", - "encapsulation_seed": "ad6466dd59f26b762fb02b19eedf5f79964da68bce0459b91c3a6ee5a7e01183", - "sha3_256_hash_of_ciphertext": "602b24bff7f990322b92fe715ed2fc790821ca44f1f83b1c1f8416dfd99ac106", - "shared_secret": "806390146332daf2ac2ce5499d2abec128137cf7db02c27fb457663c18a0d7b0" + "sha3_256_hash_of_secret_key": "c8b3015a718fad5aa1fff3a2d27004f29377362410f78bacff4c1b12ef09f97d", + "encapsulation_seed": "4ff3f8a7536a4c7d4bdef0400ed1b450cac329089b1443bf148fea0a01398912", + "sha3_256_hash_of_ciphertext": "0bd2c5f5e8e23fd96718f13414ae0d2788b2173d99c55db0b56b7772e06eb4ea", + "shared_secret": "9e30c8c6e962986c1b4c51c49b2d248c3770649b951a9b6c8c06f4a997e6f199" }, { - "key_generation_seed": "ef99224a03a85a46ef115474ec5b5d620da6795d6efcca4c9135d19958a9de62df7d92dda83e6b2ef4cce08c9134563063068a196d7b1a1a13623e48ae12528e", + "key_generation_seed": "ef99224a03a85a46ef115474ec5b5d620da6795d6efcca4c9135d19958a9de6285c3a8b3732db34f4cd985b65e078afe6a735b53f4bc36d4762a3e45d1dbcb74", "sha3_256_hash_of_public_key": "e4174b6e7542fbe80ab2bc06dfb802f691aff147ff90332d5ea739216c18d872", - "sha3_256_hash_of_secret_key": "f3f3a292f5cf01d6f7266461c9e8cd44bfc8f17e16035ab8d10af8177f389b86", - "encapsulation_seed": "1a4d5dff5847cfb48333e33bb00ca7301b144aa89dcd412ff5a3b1081d775b7f", - "sha3_256_hash_of_ciphertext": "0e184e227d7499f0a5acdadc353e8e83ad8ce17b836ba41980bc7662b0c21bcd", - "shared_secret": "5c32a0ecc8fd7e70c1b389fe25c91899c37ce4ce672e299a41c7732f4f0d03b2" + "sha3_256_hash_of_secret_key": "abb3084c78b87bb8b78ff63a9c82bea6fb643aa4672c08b29442259c3103c657", + "encapsulation_seed": "ace5e23f87cdb061c1821314f8353cfa96d69cf902a2866e5075a796b24594bf", + "sha3_256_hash_of_ciphertext": "509392c09a9031c90ee1c91ec28fac3d061863e884a96e40a560b3c2c2f63d3f", + "shared_secret": "a3db23ace4a8ef0e43134949dad1c1a89d9cc527115530575306ae97d59d0845" }, { - "key_generation_seed": "b12f6fd965ea9c5b947db80fc60c83d5e232dca82e7263027c19bd62e5a6ff550f6aa3e88f7fa8a96067f8cdaeceeac90c2d0b5e277e56e9c405ec9420c30252", + "key_generation_seed": "b12f6fd965ea9c5b947db80fc60c83d5e232dca82e7263027c19bd62e5a6ff5511c11c1086f0365e9fbd525b3fcb4e4f169fb488bf0cbcb455ec098d49e903c9", "sha3_256_hash_of_public_key": "2006a70fa33ff4a65b00553734c5bd8cca0a65eb3a115d96b8aa90f8fdc5f8f4", - "sha3_256_hash_of_secret_key": "7334d4a1755e1e639b3e9eadb5996cd910b55d1de5790469f229231d3bfb1528", - "encapsulation_seed": "34f44ec2092eeaf686f2ea170591a98527cbb03a4fa9477a7aef6b41a54feeb2", - "sha3_256_hash_of_ciphertext": "cc7108f8cf530f939b4babfb6d10d61a8f1077c96fef8c2d74eceb2659a172f4", - "shared_secret": "4fc71b4d0a7cd5d80824e137b93f8356aeda6a13a55c0515aa74eef21447caca" + "sha3_256_hash_of_secret_key": "4af54757b83a68faea34d4c050e0f267034242e0895a0342f55a37fbef6ec3bf", + "encapsulation_seed": "95be66caa72e47634e9748bd26c12b04e2193a69140284624d4e177f4dd66f7b", + "sha3_256_hash_of_ciphertext": "f059d22952a450a243faa51424893e858a969b43889909d11512321e7ec32887", + "shared_secret": "88cdb3f900436d49fe112a0223d3190364f94a6740d073b17db7938e159c6e76" }, { - "key_generation_seed": "9f52af92ca165fdc38788f2b59ba02e01c8281ff7c1e60504688043a5fe814b04f3029e1be4e1c0258c3a22ff5b50b2674cc094ba7018da2a61569845c17d26f", + "key_generation_seed": "9f52af92ca165fdc38788f2b59ba02e01c8281ff7c1e60504688043a5fe814b0284837f7edf4788f32e757949cfa69ddee079e2e00e439ecedc8512097e2d2ce", "sha3_256_hash_of_public_key": "631e1de2556ae65d57e600c21e8e355a4ed586d667177ca0b7545cb5a23d669f", - "sha3_256_hash_of_secret_key": "3d4d2c680a1e6aa83861ad95043ded260e720ae80060320feffa309b4281ba3d", - "encapsulation_seed": "6250c81126572eec2da330271db36ee591f060fc7e53eeefe2e1c476c675fa33", - "sha3_256_hash_of_ciphertext": "8f755c36d1f19cf4b1d72ce3295fd7fc4b5d74165a19397bde4f8980d2cb72ee", - "shared_secret": "5a864018c4c8c17c01c5ef38d7154668d9099994d92ed2ef55f02cf6b3623fd1" + "sha3_256_hash_of_secret_key": "5768d9eaaa7f38f5d5de7c8dc070fdbf27cdd41ffffd84a86e0e9bced7305ca7", + "encapsulation_seed": "53d3fc9947de6ea6e5b4b5e89d236258ae933c485c2ab4b1d6db8282173a7c8c", + "sha3_256_hash_of_ciphertext": "af18498efd5f696cb3360f40e2a528b536b8a02997deca308db76ab9a536dfe0", + "shared_secret": "4d363a3200134219189c5e71dfd606b675db8fda35a845444473b675557dea0e" }, { - "key_generation_seed": "851ea90fd3854cbf28fe39fb81f68e4b14345cf0d6eee7ec4ce772513df8410d1c0ec046899a777655233e4e1b5ca44e9afbdc67964bfd5d5e3dbb45e60d03cf", + "key_generation_seed": "851ea90fd3854cbf28fe39fb81f68e4b14345cf0d6eee7ec4ce772513df8410d11bfe66d2d15c33524f478f9a6bb3af2a83357197c834d399a8625f761529be9", "sha3_256_hash_of_public_key": "87f3829eff562789b3e19fafec92e4b5f95b45f3786f12d9c24915ca484a49ce", - "sha3_256_hash_of_secret_key": "9aa6c0546cf02085e2b3af65a7d7fd32d0f6d8080e1e7fbff6c39bcf3086ece4", - "encapsulation_seed": "35d470bcc5880872754810dfb3f2796da2fd7f397537146f6488c27804072b34", - "sha3_256_hash_of_ciphertext": "bd1de588978206a5d400f38cb7be532e93839fd59fb52dae97053163667a4895", - "shared_secret": "c8b9932975c3ef329424392da29b103f367fff38cf402b40a0299bcd2cf10fca" + "sha3_256_hash_of_secret_key": "480ada00bba38a263714d4eb70a9f17df014b824f909a760a8156d8a5cf9a956", + "encapsulation_seed": "64e3fbdf8d2349a497b5c9fa3ad3f7396fc1a9769175a336181c42e95c4889d1", + "sha3_256_hash_of_ciphertext": "90201c5332b308f358b80b5c40e51c3ac96fd4cc7e8e6f9a383e4635d9d3304d", + "shared_secret": "54cac3c7b8261f42b7fa913d6fa29b67493bd969833b2734636bb99db92040b7" }, { - "key_generation_seed": "d304c9389cc973477f169788abcb9d511f843219d246a9b587822f422a70c2386590a2e5c7ed86cf2c5c2a898662bc9a81418720bbb632ef9cf0b845ed052d73", + "key_generation_seed": "d304c9389cc973477f169788abcb9d511f843219d246a9b587822f422a70c23810efe801ae61866a7109f40ed932e67b0ae9e966d1ec5f917e4a9f31a27ee13d", "sha3_256_hash_of_public_key": "699fb2f061a75f111f4a7a60195d9045dc01716b6502cc107cbcedf122e8f619", - "sha3_256_hash_of_secret_key": "421f16805b1ceffcd64128b1296521ef812d3a8f4c5e3875a049f8de456b021a", - "encapsulation_seed": "8d667921c5db401a86fe1c35dfcf164a6bb2ab7400fd6a0b67eafd4a0ed11940", - "sha3_256_hash_of_ciphertext": "eb84a0b49f4d5e7b64227d4c1ebb34272eb4adfc61c8292f9eb035bb3a7fea71", - "shared_secret": "578e4e308f2b426a7b1ed7d80c72396a914ce77a4a7a6d16b26e4af3d59b491b" + "sha3_256_hash_of_secret_key": "939e978d96fa46fd682e11fa93842728cf78eb4150bdfceb7ea030ba79d836c0", + "encapsulation_seed": "7274cfcaf30a61d198328be008f814b2a87d50570b58a80c03ff151a774c589e", + "sha3_256_hash_of_ciphertext": "2e2e486c211078941b7c63e30d55371d277593b556def6182412ca704ef33eac", + "shared_secret": "04f380d7841528316439eb1960c612cf3ece3d425aa33ff4343b4a87b3202866" }, { - "key_generation_seed": "89a6e3be304a3518fb82b18ca730f0b359cd6ba90664a493fb4f8edaf965b9c3b6591121e25d64010c25a18676033e1d7278ac5f2d0b43a31f3a4156ae710465", + "key_generation_seed": "89a6e3be304a3518fb82b18ca730f0b359cd6ba90664a493fb4f8edaf965b9c3921bbfbfcc283e1d1db36e99b9cc6ccfffbfdb86dab7b6c7ca02cda227da8632", "sha3_256_hash_of_public_key": "d3413880d082f26986fcf452a84a8da934ed06198b290ada1789e74d9081a9e7", - "sha3_256_hash_of_secret_key": "7b546a42ffe6b65cd9c5b8857c2518f4f8e0bf835c894a68d1743691fc9aad9d", - "encapsulation_seed": "ec750b3939385a3f8df868119dc76f77ca845567ef068de6ada5478a56bc78b6", - "sha3_256_hash_of_ciphertext": "a2d61450626fbc4167a67ebc41aff6de662cd1b9d97b798b0a82adcf688ceaf2", - "shared_secret": "70080e3baab3fa55e8a308e84fe9abae780be8c09e211651f6ebf6053f8f264e" + "sha3_256_hash_of_secret_key": "53ae445a48d5cd24fb784e0c9205d10d99f842425c755b2af69d6c7546c8e2a1", + "encapsulation_seed": "a0462a5f2a6c43d1198d54097e08d20c53d87b7c05dcce5418838fa8e73a9c8a", + "sha3_256_hash_of_ciphertext": "3b44e13a94287f3ecb9c0ef884675f5e784fe1b237f7c9477f18fdf5908b313b", + "shared_secret": "160b5ecb8d716fe55187632277ff23a74ec598cdc1a640da772fb98979cf98bd" }, { - "key_generation_seed": "d569b935ce015c85f792f8f7fb0d83c4f53b492959361dd4f75fb764d656450176eae84d11c4528382828f7a689a0d5cff87b8ca0bba97feacb39b935a8788cb", + "key_generation_seed": "d569b935ce015c85f792f8f7fb0d83c4f53b492959361dd4f75fb764d656450140b4e01e03f62e5f489c39c78d387bb33b526ceb6907734a5f788209ae3c2647", "sha3_256_hash_of_public_key": "e6eec2929feac2a86c9dacfa6214e2e353fda2d547c3829f5678025ff8418a1a", - "sha3_256_hash_of_secret_key": "5fac243c82807d7357a61023226a7c270525d96932162ca5c09fc8f7b9ec6cb3", - "encapsulation_seed": "74f1d52af09b12c36eb062ea7528550cb4c18a3ce8e4f4ea9fac43ae383bc925", - "sha3_256_hash_of_ciphertext": "4f7808244313ad693062e2e2a6419261801aad59bf06350dc1fac1ed50a5739b", - "shared_secret": "f804333e26c5981eb749e8e9fecbe8f8886e493cf8013a6760a1bf5d4a37200e" + "sha3_256_hash_of_secret_key": "7b9609ff0e89f2d91cb58d765a978114dfca062c3d23241d7043e6bd1b5ea78b", + "encapsulation_seed": "adf233a4311b157829d49a0bcb633571230f7060f3ce655551aed8be8961d1ca", + "sha3_256_hash_of_ciphertext": "928699cbd4ca4b155ccb6bb98d7b4b9f4b117e6b84642bf46b7ee06fdae6d226", + "shared_secret": "4e366c3d6ea9da570b650ed2909e11a8e372daf4d580050958f116fb41bac319" }, { - "key_generation_seed": "5cbb141c2763425c274f7404fe530d9116e08c33f9f200a20b011cf563a28990fc9ebbe336dc464489861db8253606971bd0a9008a433ed17752d04023781552", + "key_generation_seed": "5cbb141c2763425c274f7404fe530d9116e08c33f9f200a20b011cf563a28990870a300648d2b1f1a637374278bc62b5abb56380cde88eacfbadb3224795a125", "sha3_256_hash_of_public_key": "c74f3b7fa6e2ef8ce99508c89cf3c71d666ab065a262581a5fb01b2c9b9444fa", - "sha3_256_hash_of_secret_key": "5c6998a20960109a4c9808f8f8575697b2b8d18c44c7e9dff97585ae43e6004c", - "encapsulation_seed": "4b3a70d85f640d1a2a852fb6fe96704af56a7415a8ee4282e9207bc3a2dc116a", - "sha3_256_hash_of_ciphertext": "1ff8bc41435803d1931fc2a758d9f386083e183e2ce14394e9833a120a9d2ddf", - "shared_secret": "eb9b44605e6b8ff3a59e567c1c16c6f96b6079f8e2c4d70f706d30df82f09902" + "sha3_256_hash_of_secret_key": "42f7618e2d2fb14fe043ba01ea2b256fa4d96924bda9afb8288403ff69e72ee1", + "encapsulation_seed": "9db1c63ef94f37d77f386dfe00d619e2d6789fe8237028e79b7b1eed9c16ff5a", + "sha3_256_hash_of_ciphertext": "ff3e8cdf68825c42dc8653b415771f7b06b8605a2a273907185878e8932a17b8", + "shared_secret": "5eccf621ab9a0c96475a8d23484f2f6eea704862e4291e628fee08fffe1e0d0b" }, { - "key_generation_seed": "293abb6d1c207927945417cf84883ef010823e11b487ed55239e466e83696d0cff8563038aad865a817cab9ce98846ba75be9363718ecf5fea538aea90b2a558", + "key_generation_seed": "293abb6d1c207927945417cf84883ef010823e11b487ed55239e466e83696d0c0914d81173bfd7729d81603deb601c93969b81c401e2b7b922b2873f8aa2d998", "sha3_256_hash_of_public_key": "7378ef967195c977d43a50d03205044006715a6a8a8263d717f40170b49e6bd0", - "sha3_256_hash_of_secret_key": "30bd5f16c3f242248a4c4cddc43508bf54535958657bda4dcf105216ddf47eb0", - "encapsulation_seed": "26e38ac804fb5b4d59ddf747715e7e6041d875f99c7b638024b4af82d622da60", - "sha3_256_hash_of_ciphertext": "4d6f027097a767ee92937a06e618dbe1a2707b974d6fe8e4fe0c72d90772d44c", - "shared_secret": "5635fed1a43168075134d0e6dd4c9cff6e85f3860b3e9f1cac06b249d62892de" + "sha3_256_hash_of_secret_key": "a9e3291ba748f7e10f0aa5fcc1d0ea2f147bfd75ed874e08ad57f1bf5b4a84e0", + "encapsulation_seed": "ebecb3e8c3dc591eaa503c332c8fbdf07804fc915b771779c1be60f42e2f3ead", + "sha3_256_hash_of_ciphertext": "f2094dcf3609e2e43c24e149bd03a99b17655cd3c525610cef5d8adfbb089e49", + "shared_secret": "9c5462c2f6642744c58e0fe1631ed21bff41ef5ff4e8184a85e76cfe3160fbb6" }, { - "key_generation_seed": "74d87c7556f2671f2d666854a4d6e073e69f35421e6e1a428cccea49c37f972ce1fb7456ac0aa1b97068f452cba64ebdc138bcf5d36b0a0fada2a3b374141eb9", + "key_generation_seed": "74d87c7556f2671f2d666854a4d6e073e69f35421e6e1a428cccea49c37f972ce82ab6cd4250546e9d3aac903d6cc326cc39ae0b04cffe6c6b3ffbd29ab63dd7", "sha3_256_hash_of_public_key": "16fe956be4601573d72306a251f69bc2181253e2417e178341fd6553303ac189", - "sha3_256_hash_of_secret_key": "873c94f8bee9fe37265d5dc0c5d3bc1c706057c7efb3cd2cd5ca9ba45498d0d1", - "encapsulation_seed": "a319d2b8f114f1acd866478bcdeba6fd164dc4e37b0adfa8d8034afb3e197376", - "sha3_256_hash_of_ciphertext": "b84605835fbbbfdadef1ce96daa0dcf97d2f20310a45b4cf8eef2e4878cdc5bc", - "shared_secret": "a920df59ab127d563d7e7e96afe8075d8a7242b0ad88d72f367545fac6daa4c5" + "sha3_256_hash_of_secret_key": "c81aac61580d3dd4a397e163544970374b5173baf8d0419649857c0784907a78", + "encapsulation_seed": "a9da4fae601738a23f95165da22cdaa8bd455688b6033c74b4604dabdfd46fd4", + "sha3_256_hash_of_ciphertext": "de52ba37ff88fa36b0f063523898b5dce66447881fb6d17b6bceb3a0d8908e50", + "shared_secret": "016e1a77ae909c6ef7a8b38456a01d1b9aead47aa379f4051d74756223fc2ee8" }, { - "key_generation_seed": "013bab0212d04ecd54b478daf72748003a25e2cb060ba6cc50bf95c292b8206b9da0c5da5f195b80fbb99c2e8b06926074f3f604b3f6195b5a5b9737876bba72", + "key_generation_seed": "013bab0212d04ecd54b478daf72748003a25e2cb060ba6cc50bf95c292b8206bf7642088944d664ca7996ba944eff7e4abd0b900d3d1728d99a9f722f928fedd", "sha3_256_hash_of_public_key": "633bee89571e8fc16151491ea71234ab83289426559f90c67903a36e4afaa6f4", - "sha3_256_hash_of_secret_key": "3c3cff5f49a802cec693efbfc264f6a385210b1eed20f7bc5b07b51839961d14", - "encapsulation_seed": "ff646071b2509e6b75790917e08e4f0b0d9f0116ec6291c0b59eaa4b583ad830", - "sha3_256_hash_of_ciphertext": "85b2c2d105917e9c47c7f1cb5355fba0c5c90115da1ea850f8dc520980d8233e", - "shared_secret": "462f8ae0143a9173e7fb5a0b476adac03f2600fff5779cc1df9dcad9b1e7ab84" + "sha3_256_hash_of_secret_key": "675737db0ad4d59a62b7b4c9b9f3709b92113961f84fbc182252b30515ee784f", + "encapsulation_seed": "e821e6e3209b923765f0ded2d65dec798c9ceee04665ace3061fe506b49ac7d1", + "sha3_256_hash_of_ciphertext": "b507309f88801371a088deb5e69b1204eb5a9d13788ef05735fed6d9ba2afa74", + "shared_secret": "e688170871dbfb0f0c93bd5389dcca06accf082595cc6a1a12197715ec262277" }, { - "key_generation_seed": "ccb073c4b90be0ad746e26fb093b60c70110bd1dcbcddb566a8cffb7b3caf80e71600a8982c350df524cde514431ded7aec23576530894bcbf0ec0bfef0bb64f", + "key_generation_seed": "ccb073c4b90be0ad746e26fb093b60c70110bd1dcbcddb566a8cffb7b3caf80e55f35361778bc0a53ea94003fcc0252d8333c58152482af1e9c9d2bdf12f377f", "sha3_256_hash_of_public_key": "3217d034b472a846cd317681c0f36feea187bd40e546dc4ad69c2e67fd9d8303", - "sha3_256_hash_of_secret_key": "1503bc141825d523c9505d34f50dc0a01d7bc91cdaee6b99f4a85a24ce800496", - "encapsulation_seed": "0584270ec26f3b9818e4af074d17b2d51037cc8dfdcbe3b140fa4fed5deebc54", - "sha3_256_hash_of_ciphertext": "4a88fe4d98d08230a339829a486d94c328e7eef83df2336db6ab82da74b3ba43", - "shared_secret": "bad63432a274bec85e9c361191a3431d6f211f1fcc69173b9fb00c0517ac3b3c" + "sha3_256_hash_of_secret_key": "8af83b7a4a698b90d65dcfa1ba89701828ecb2c3b0d329fee499938b4bc7a91c", + "encapsulation_seed": "1332fbc0a80d85a33c44f3a9f060ad7ac8727576105931bb0401f47b31990836", + "sha3_256_hash_of_ciphertext": "52fb8efd2e0bc65ae55426b4db2dc1ccbc39d82b03932742a954d153668073ba", + "shared_secret": "f150b7d47c6aeb0920564b34d145c59f5d5a60a709e23afb52fc54c41a009b86" }, { - "key_generation_seed": "2e889f44e28901e9ac7ca6b2fffcb124c8979401b17064d7e1d51a7e3c3adbfa0e145e44aae52cfc609e6f47fd7a6f6af877190ff52256d0ac5b05b89c3f449f", + "key_generation_seed": "2e889f44e28901e9ac7ca6b2fffcb124c8979401b17064d7e1d51a7e3c3adbfab2638686db9a0292adc26e549c7152ff36d9a7293bf1380bf93f1498546eb93b", "sha3_256_hash_of_public_key": "d1756ecfaeb695001ac490f36c4638151bee98d367fb7adf0e06a470844068af", - "sha3_256_hash_of_secret_key": "a21acea0fd4354eb0c78d47caaf93c9f2434f1cf2d6b2194871ccd98f9522ced", - "encapsulation_seed": "51e05c7b4ca3079781e8293f4eccebeeb2f8c8b4c59468eddb62a21bcb4ab8a3", - "sha3_256_hash_of_ciphertext": "2d8dccd1c8907f15a0f5b521a10849f836fe822729c4bbe91bdd4c631c6ad80f", - "shared_secret": "50cd9d6042e7708f347b3d187430d070f0d8712e0bf68350ab47f4b50f04962e" + "sha3_256_hash_of_secret_key": "a203a16b2243a3ca98003094b374d188d3e681c2d58d1fddb11d60faab3528aa", + "encapsulation_seed": "13a6de9e8ae97898fa9382e95d49f64ea8592ed38c3aaadf36d20c243fa0aa53", + "sha3_256_hash_of_ciphertext": "227fc816a0305f054ae4d88831229294d1f415000e461304b8be242177a23923", + "shared_secret": "8a2ec5558e193c476a7fcc373f96073fe0ab13ec87adf3110a2ee013cd5a318a" }, { - "key_generation_seed": "174aaa36410566dc15a5e62874218d7abdde0b2c0f30d877bb80b1abd5f5a0a450a7a2354f7e5cefa6f4a4e9a1c411eb9364506e9e1204a8acb3cb77fbd2c4ed", + "key_generation_seed": "174aaa36410566dc15a5e62874218d7abdde0b2c0f30d877bb80b1abd5f5a0a43afcc6703873ba41a425ff19559ee47d056d3b5b9e567e5cf24ea17010a5c3ca", "sha3_256_hash_of_public_key": "1b1b0a8682caf72df2e0a48513a7358edbc77a615d6be6fe2a7145be66b7c509", - "sha3_256_hash_of_secret_key": "3e214f25fbf4d1bb670a87367399e1b2a9da3491cac5a22a2c18dcc44f3f1bae", - "encapsulation_seed": "9eca0fe36c80fc5eba171c3ae66a5b1c923faa50b4521bb055e7bf51005c93df", - "sha3_256_hash_of_ciphertext": "b0e274894823b30ec50f790c7658c7b7e79d4e269c7e4a66790f635d265f72e1", - "shared_secret": "2e610015c6b440280d6f28d5e3ced35cbf65a70a171151363c4cc882d7899e0e" + "sha3_256_hash_of_secret_key": "ff5816c22a0d947627c1583487cc5020fbc4bbe2e8c2767fa3144dd6d6605d6b", + "encapsulation_seed": "ffb94fd16f27b1b653e0882f4e86b8ad651a38c01a33fe0a34dbb425937e242a", + "sha3_256_hash_of_ciphertext": "2fc5b37d941622a4b2eb3b6c8cc7706dfa718a59d28cac3d9de51588b0f18405", + "shared_secret": "ca2a954ccc529708d25cf972de39638dd8d7323ac8c48dae7157f4bcd00a5cff" }, { - "key_generation_seed": "351fe4313e2da7fac83d509f3103caf7b4c64a4d458fefdf636785ac361a1390f072d9b5a99f9c7a0a011e4dc10f6b600d611f40bba75071e7bee61d23fd5eda", + "key_generation_seed": "351fe4313e2da7fac83d509f3103caf7b4c64a4d458fefdf636785ac361a1390a4cb53697a77fe6e39ef13c7460d657197bc1c7ea3df65b85c8deb43a058bf1d", "sha3_256_hash_of_public_key": "2c54df6e9020e1e44b11b471dea97a382a2fe8d1042565bcd51ef21cc0884d68", - "sha3_256_hash_of_secret_key": "c6bc9c9e797a02684d3ad8de47919b8d8fdbee09258d084c7a9dc963c80401ac", - "encapsulation_seed": "0c5719261caab51ae66b8c32e21c34e6d86ee4aa127d1b0195663c066497b2e9", - "sha3_256_hash_of_ciphertext": "ff01837c1bfb9790421dfff41272144b4c95498207ffb6b9a29f0b3db24da9af", - "shared_secret": "91961efe34b53285433fa9f780a04b8e47261e7a6ef77d46658e7671d800e2f2" + "sha3_256_hash_of_secret_key": "44513019c56944d754ef73889607c0838986b0cb6ce601116ba2eefd41b7b90e", + "encapsulation_seed": "da8f1fa1262c71363592344af3af48d678dac8e93cb11d2df01a93fefe97c4c8", + "sha3_256_hash_of_ciphertext": "e875ad60af179216d71d1665b191b5e8bd3787992e6cae9c8597fceeaa8dd173", + "shared_secret": "58008784be263327ab4e974fcdd2ce549178fff85bc82507b7330ce42a8de16d" }, { - "key_generation_seed": "9bc5315580207c6c16dcf3a30c48daf278de12e8c27df6733e62f799068ad23d5a4d0a8a41c4f666854e9b13673071ceb2fd61def9a850c211e7c50071b1ddad", + "key_generation_seed": "9bc5315580207c6c16dcf3a30c48daf278de12e8c27df6733e62f799068ad23d195927b10c3be5f19fb055a71cf9610fdc0f03e23fd09eeb8c63b7ba3c0fe642", "sha3_256_hash_of_public_key": "bdcaf7b417da8b8933279b33068f6fda313826c2eec500b224cbe046abeb37a7", - "sha3_256_hash_of_secret_key": "c96e176b19f4135add434d0dd219024587d49fdb649bf470e84d9518bbfa2879", - "encapsulation_seed": "0e59f6f9047c784c1f00b24454aa4f1bd32c92ae7e626549972f86fab90e7e89", - "sha3_256_hash_of_ciphertext": "93199c23b5751ae8e1278d9c4792eb898d51db9b4a98dd532c5005da9c86f0e6", - "shared_secret": "e4983d6021d6c10e71f474d76650f7b5e23e02805f755f57a1012882daa77abe" + "sha3_256_hash_of_secret_key": "80a416bf5f04b4baaf103409565e7f7f98a8bb10614b604b4355a68be6f96f0f", + "encapsulation_seed": "c08ebd7cdcd4dfc51cf41db75f31755f2b3fadb6a059499dd431eb931e348143", + "sha3_256_hash_of_ciphertext": "7f567b9578c85707f4ddf5b451907682b11476a9a8bea05c68e96e96cdbbc220", + "shared_secret": "0a950a267affabf0644e2351506c01e6762782220815a93f9dd1e439ebe7dcac" }, { - "key_generation_seed": "d8b907b34d152ff8603b73051f772daa71eb902c47b7e2f070508269d757e02e36b817736cbc5f7b1dd6eef5fe6332fb1a598f3871e5470d440fd2ea631da28a", + "key_generation_seed": "d8b907b34d152ff8603b73051f772daa71eb902c47b7e2f070508269d757e02e7613c090fbe4afd54869ce826b72f3a5ec823d9a1c983a3d31b2387ed6b0c613", "sha3_256_hash_of_public_key": "61e27e954728e2e2e230c94ff009417d7372938e2c29c38af22184eed530fa1f", - "sha3_256_hash_of_secret_key": "8baa58b1d3fab8ec5cee8841c9012506cad40bf58a677adac88f1a6400506d40", - "encapsulation_seed": "a3963ade17d69debbc358dda82c7bebe2c39d25b36813058e7a161542e3f8c2b", - "sha3_256_hash_of_ciphertext": "e9831b8bf3683bdb258faf38f7ab1772dac3851bfec7890d65fc0cdcc4bd3ed9", - "shared_secret": "807703887ad9601806d0bfd5f9d9b6cb01bee01f82500f525cf4cca6e4b21fd6" + "sha3_256_hash_of_secret_key": "8ca2be859865a3846edd118be8269f7c828b016cb190611a9795df8ad8bc351d", + "encapsulation_seed": "0727dc8abdf2f12fcbbfccc9c84b6dfad8e1eb346249efe569f2ace9d8614a07", + "sha3_256_hash_of_ciphertext": "259702ee33b54ce7f9258dee7130bcde9e91a868d5a0235162f29fa182ec736f", + "shared_secret": "f9d4d24cb3e4435000c5da3482513e957d057f0a915afe36e6ac39b42f78458f" }, { - "key_generation_seed": "684a29e4e5480a5f2533e1526b5fac8cdf5927f3d85087c71f928c59690eb56575d12195ec32a8686d0600e45d4a7f54219b0d7a3826d193a51b9156ecf2edd6", + "key_generation_seed": "684a29e4e5480a5f2533e1526b5fac8cdf5927f3d85087c71f928c59690eb565bb3eeac4320f84d09cad413a7d7c19c27668b2e0e1bbba2d159b833db6c0f50a", "sha3_256_hash_of_public_key": "672e53b28d579974d268132187e7bd72238639c6f2ca154d50d98c74096ec330", - "sha3_256_hash_of_secret_key": "4c72f0a7ef5c3274c49365cca5e6770bc709ef12bdbd4fd7c2eb5faa296cdfe8", - "encapsulation_seed": "97beafabf2c8575586487c7a80e8af5fc50f94b6051c1bc66a5ae9f66be3cea7", - "sha3_256_hash_of_ciphertext": "1892658d3ba82460b22d0b062da2a2a2e2b1756f877c718d6ab64ee2ed2312bf", - "shared_secret": "9d28091b20946b5507ae42bc4355a71acd2b5ead20d4181b22a5031ec53ca00f" + "sha3_256_hash_of_secret_key": "13c853926d95930fbe60e877d83577c7392c1dc5a426a4cefbd60977d80459fd", + "encapsulation_seed": "492d4cea1c6e07d9535ab2fc21d773bea7ee2c7d66ec80d41191aed269a398d6", + "sha3_256_hash_of_ciphertext": "945a307244ef30ed305e4acd00ebef2556ac0cd8ec6ef8fa4d83eccd80d41244", + "shared_secret": "9ba312722b5d9586905e6b8b5f27ce6ea6437ea5116edd119afb92c22ec71359" }, { - "key_generation_seed": "d76b3573f596eb286ab5231feec7499686b13021be36cb126c7ebeb9d7030daf248c0a21ea0bb6d6f56f12300e8584d8e9a34e0e6f52227281151ae4c305fb8f", + "key_generation_seed": "d76b3573f596eb286ab5231feec7499686b13021be36cb126c7ebeb9d7030dafa8ac144dfda421de1a7addc92adb79bbfa9657f3dc4b78a7335f29db87b290d5", "sha3_256_hash_of_public_key": "b86d5b13bb8b72a9fb81245ab712f0d10f0e2e09b222143c420e3f2c3acea27b", - "sha3_256_hash_of_secret_key": "c25f2e16a0e6fbf0729e5ee89fbbdd71f00ff9a1abbb00cb47f26e9989eaf678", - "encapsulation_seed": "75461decd34c50d6a094b4a64fb75e5e9479f8f9250d82bb7d729dedeb2d4b65", - "sha3_256_hash_of_ciphertext": "c4b79295e9561bf7d5143d27ed021b4e751a92b8bf22035124a5f7e2c5a13ec7", - "shared_secret": "98498206d1f4d3c94a054c3c3a6087760b210d2f3628c71ccf3f0ade9694ed7a" + "sha3_256_hash_of_secret_key": "c7243c4b553e945d750f12f8d9682fb3b32c417a8f9e282080cc80a8d4f81d67", + "encapsulation_seed": "a0caa815deb43343d4c18fbe19b107d20e36f89ac9d721ee8e82cca43f9a28b7", + "sha3_256_hash_of_ciphertext": "ab9fc2200e6b2efa8f659f458936e798d932f0d9f0ff529fcdca3517350eb06b", + "shared_secret": "2e7a7f18cc02e426eed8c39c07743b71b2559c0739a69b3fa5146c037be36a51" }, { - "key_generation_seed": "b87439fde81c9e39eebe7cf741c685785532c1dd23e8ef868b9ce7a541010f3d1646460817a0fce5836bdfe124a7448e7adf7b8ecc2652ac6d280e986682df71", + "key_generation_seed": "b87439fde81c9e39eebe7cf741c685785532c1dd23e8ef868b9ce7a541010f3d6eda18027c6709111f1987e026a481d46003aeaf2ff23b675bc349c749f300c5", "sha3_256_hash_of_public_key": "85441cbd71c18717e9de7359b920a9a3bb7f32e619806f4e4718c585085be624", - "sha3_256_hash_of_secret_key": "93b65d2df33d3e3ab0d53c1d0a21f3752e2c5962f7d960b888b2a8c495b1b133", - "encapsulation_seed": "2607dcf4fd6ca1c614c21b5e37c24981c32b91c8c3e6955777da8a3f5d9c9335", - "sha3_256_hash_of_ciphertext": "869f16ec6c5c47a2ff2283f166616f16926d0fe805333e70945ad6fd1e9a701a", - "shared_secret": "c93350d1f27f771801b7c3e03a2e7672146809d37f33ba262e9e0ce7809b2187" + "sha3_256_hash_of_secret_key": "f26e972e5d506fd5a5fb4a99a733220b77ae41afcb1c58bc52b4c4107c429f7d", + "encapsulation_seed": "281023b82d26fa61f9a306cce0fa00037556c9a0b597fc734ab2fa2a146c1661", + "sha3_256_hash_of_ciphertext": "9c689540707f79b7112ad545812a028fbedfcdb53c7a0377f601936a77c43367", + "shared_secret": "034b0a42ecb7b7a8a0ceb8fdb13f4a1ea0b3305c942ebfd69f0d9d9a9a88c91a" }, { - "key_generation_seed": "056661b38038da4fdd7426f32a81576c73ed84843b305168a374f934e27a4e1b79238a80dcfd7c992d84b2dffa67493e669243d4fa38c46b090bdf86bc548411", + "key_generation_seed": "056661b38038da4fdd7426f32a81576c73ed84843b305168a374f934e27a4e1bba2de5dd570e201786cbfd5d27020b649b011455909aaf0ad6d92c1b4bb1f8db", "sha3_256_hash_of_public_key": "065fb6156acaac591f1bf3ce71c4a046be8c6c55eb9a84d29569bd2b144c73e2", - "sha3_256_hash_of_secret_key": "0121afcc6aeb8be9f1c5b06d5b65cc1c03e9366ed7b85fc511d853c5eee230cc", - "encapsulation_seed": "38c89bbe7145c29e9a831c11431eb9929cb24fb4992db20737e4687d397fd732", - "sha3_256_hash_of_ciphertext": "4cc25957859ee2a08070380f4a5301601dcd4a756784c9719de99d09c12fd85e", - "shared_secret": "387e023a733bba407f35d4456a9edec3922b151c3b49c67bf3541bbee5bda18b" + "sha3_256_hash_of_secret_key": "a4ccc6e1e9381f7cec390aeaa363930369ee0932cf222e0d0b01bf1d1d137367", + "encapsulation_seed": "2f349ae0ca4e08e2a8ce5d568829cbaa2150b69d13fff8a46711b0f5dcd770cc", + "sha3_256_hash_of_ciphertext": "d895ec998e55f3b1142f6562f40f0b44716ec00a9dbf054b2ff435ffbb7b028b", + "shared_secret": "ac21234f79f757260908ea2ea4fa4d4191fca2fbe292d8ed71932142c11ee11c" }, { - "key_generation_seed": "a1b52d871612a1c611ae0944f9e71858f35d3bd14f20e96a931720668bdf0a6b1f135cf64b6403e103afae34da038613e2853bbfc36baafa3c6a95347193f37c", + "key_generation_seed": "a1b52d871612a1c611ae0944f9e71858f35d3bd14f20e96a931720668bdf0a6bf25f42aaa0d647322bd837cb730af6082d2fa2d17bd63b162b36839fcc2df0c5", "sha3_256_hash_of_public_key": "ced77d358342759291c2bd225b0bd82d659d28a24bbc5eda8f47975b780cd129", - "sha3_256_hash_of_secret_key": "16e06287bd8d71c78f1657bbd6d5d12c22f6bad7658e68dd849d7751da950860", - "encapsulation_seed": "b2c35e33c72d90182791f0e12a0324f5b216efcab2c8da1bee025dfbe13f4152", - "sha3_256_hash_of_ciphertext": "78e964378f328246da5cf23098e6b5311f4a6dd018faed91dcc6fd5c107ab366", - "shared_secret": "4d91655d2bd77339bb81f82916a1a77329071b3919cfb35cc1d1655c2da5a2f7" + "sha3_256_hash_of_secret_key": "53ce8213eae8a52a046c9b01550bf4a54b7334ca2edc901a7923d77fc8366496", + "encapsulation_seed": "525f15e526198acd1d2b0ba0886071e482866312cdfdef01c20eb2935c28ec84", + "sha3_256_hash_of_ciphertext": "beee4e4c9005b1108cc4818b7056d1111f469934d9b142f89cdee115efdf01a7", + "shared_secret": "5299f08547b1a22cd97c0d9c055049d66f61cf38b391b0489232215b602f5d91" }, { - "key_generation_seed": "952b49c803d6d6fba69f4375adce8594847a00bcae2179da49af2aed0423250262d7033947ae42ca53522a65fbafe18d3bc3e0cb66164e9a094fe4b44d8977ed", + "key_generation_seed": "952b49c803d6d6fba69f4375adce8594847a00bcae2179da49af2aed0423250223da505ea48a79eb504eeaddf7d19d736f39a46c837f2a0c2bf3fb876ed8e6bf", "sha3_256_hash_of_public_key": "2fdb7c7e39ce1625c20a13a1c91aa5909d8b03b064d00877dce2415020370c72", - "sha3_256_hash_of_secret_key": "ffdb52b23a9ca4b71ec882031ebcb33a0ecc6731c13c817b24f3a06e48273778", - "encapsulation_seed": "afb7d6dc2b7eb6d84acc080c1be63c98afe7b07786b5801f716444a3e8e64800", - "sha3_256_hash_of_ciphertext": "64e3d0d521f46ff42772a91a33368013005d6dcdb72310dcfc1bc53d6b6dd524", - "shared_secret": "3d0d1ad5e2825db1f539515af2392f0d212e8166b34f3d8cf2ebe97e51785ec0" + "sha3_256_hash_of_secret_key": "53ce802fed4e4e34836773471ad42c09ef50c69473ec98ad39cf13bc336a98bb", + "encapsulation_seed": "06430dd2cfea620f387e8cf12a48dc32e25b9eacb9468c42057b01a3cd76aa80", + "sha3_256_hash_of_ciphertext": "12b67a037f5978f4f83bce99e916dd284891c7aa95b59dd3a5908dfd5259a742", + "shared_secret": "819d5eb67a67f9ab9d00779a1caab3be8783b45c158fa554813c8da2efe31eae" }, { - "key_generation_seed": "3c815e57e9233e975fa1630208aab206b71ae0db37a7a8789ac683d9f9b2d29801c8e376fdb140ee343106c093af7cb149b316ba79446ceb4e5e0cedb9b164f9", + "key_generation_seed": "3c815e57e9233e975fa1630208aab206b71ae0db37a7a8789ac683d9f9b2d2985532c666d12d7f321aa87f8a1f475b161bf3812efa99269925f5f29b1e030b5d", "sha3_256_hash_of_public_key": "86bb11e7d9c1368fbba34ce3a2f169c2464ef5fbc11f73843c456467b6cdbd4e", - "sha3_256_hash_of_secret_key": "5d46659798d268f1314ad1e7c1735c480301f5877773403966e928bc3fd33d1b", - "encapsulation_seed": "28f5e9dbda122b2cf8f3754fe9e0c73a84ad4b0c093522e0b62cf815d60bbc3c", - "sha3_256_hash_of_ciphertext": "1002639fbd0211ab78f332128acecb9d75f7af4eb0d255a24ab19d7058012b99", - "shared_secret": "ff9a0d1ae64c97e4c51512b315d044c14ca34771df320ba0c16c8531d6a40d78" + "sha3_256_hash_of_secret_key": "f9419bbdd23c4450e45d45ece5b010f4126d1af49444ba794ac58a6e552ca075", + "encapsulation_seed": "45443194c6681faeb9e4cd954543bdb55dc9fc5478555dbabaff127cfdd85438", + "sha3_256_hash_of_ciphertext": "930cb75aceb98cf6537470275b8d177ea7baea842bd91b70935030f6fd56f1ba", + "shared_secret": "ba5f0e30257647cd1ba1e9bb446bf9469614351931907e29d7cca5e87fdc476e" }, { - "key_generation_seed": "588760826dcfbd36d9abe6ae44a669bb3ebba6a218eab69e30f18a3bd536576e0e860576285483bb5fd36e2f944d32c4317bebc1e441470c1372046a790d79d4", + "key_generation_seed": "588760826dcfbd36d9abe6ae44a669bb3ebba6a218eab69e30f18a3bd536576e173dbcd4922b8fa921dc24240b2173c2e65a839357f8e4a93f51e7daed4c8c00", "sha3_256_hash_of_public_key": "29253478090cb4d580bc2a912645bc685061e5d4437b3811eda69c865ea9923c", - "sha3_256_hash_of_secret_key": "aadce411f3708e9727e4a7e4e198781e1ef5e8f4c4c14add1e25f5758649e265", - "encapsulation_seed": "b0d713cbef0bb1df70cbb425d1e9373e9f7790fdc7980cc96a240dfc53f1e8e2", - "sha3_256_hash_of_ciphertext": "8e8019b55e3bebe889ef989277dbeddc8632824845dca75b43144d32fea9f78d", - "shared_secret": "0e40bef57dc97b87ef89e5308f9db94fff59a475dc35ead3f2d5b6b89d24ca2d" + "sha3_256_hash_of_secret_key": "93c0b3425746d8d25009785f5c034035ca03a29fd64ebc28989e320dcaf9c9eb", + "encapsulation_seed": "52081a3d33dd573d4554eb48c3f83e7961c3909b6053ae3765369b2bae10cb8c", + "sha3_256_hash_of_ciphertext": "cd4123df90f93dea0bfc09cfd5c1ae0db96a94c65b3bbe4e817264f4a5069611", + "shared_secret": "247562cec50dd14948eac590fa642a465b53b8009eda63498fb5bf9c5b51e0fb" }, { - "key_generation_seed": "47550e9edacb6ddce3d9ab81f6b61080dd4f2693854acb05e0ccc7a4fb6390fbf89d7d99d5c3e0d10d6ef9af054d842375f695abb28e3b8eb495100f04306e92", + "key_generation_seed": "47550e9edacb6ddce3d9ab81f6b61080dd4f2693854acb05e0ccc7a4fb6390fb7e30dd3b9f9d66518a0525f030574c504ab3851b77857b70858c130ca20ece35", "sha3_256_hash_of_public_key": "286de7dc142efe935e84b0aeebbd32d050fd9d8b008a94e59454b19ea401611d", - "sha3_256_hash_of_secret_key": "a6b53edf9efd7fa67a478456a5b6a379876c248f623ea45f4b541a8db00c524e", - "encapsulation_seed": "32bdcdb7059fe27f6409901980c080308951ffd90deffa8317b4d213a5f04495", - "sha3_256_hash_of_ciphertext": "12767f1cc2278778a66d808ae6a230428c0bd48e61fca54aad631a95e4547242", - "shared_secret": "6134219801b78f6fa5a998377643f828c19ab6fee69e7dba03c7b8e20915de13" + "sha3_256_hash_of_secret_key": "5d34cb9feab5e083d02dac7b315a77ca970a46d2c940542bffdf393b8b69b51c", + "encapsulation_seed": "6a56ea6b25105666b70c77c9027468b84e2b069070ef3380403066430733575a", + "sha3_256_hash_of_ciphertext": "8c055af87ff74705e748015569e5121ddc4ee907bd5f9724b6ba5a3fab5d2fe4", + "shared_secret": "fd125b3f05d1effd5d5780f04bcb63093a5d46546672fdbb3c20c9d88e178c97" }, { - "key_generation_seed": "610afb64be8cc1df288cfb016ee2f44c6c07113de7f6fee071fe0c3fe31c6215cd292e4c5f9e1a55e0489bceffb204d672a6215f4f3980a646d9f880817c52dd", + "key_generation_seed": "610afb64be8cc1df288cfb016ee2f44c6c07113de7f6fee071fe0c3fe31c621505913ffc8d7fb91c97dc1e0bea9dc9955fa28b3cc0b7415c192f81912d70516a", "sha3_256_hash_of_public_key": "029a2e12c3e6aa668afb5be8a82576813fac7b8e61c5a88aff94ecc2770c585e", - "sha3_256_hash_of_secret_key": "413ae41ee83e17b74ac654c2aca57abe8f8ed0409acf7cc8b301e3d6bb049cfe", - "encapsulation_seed": "4ed7c92d83bd03b2a25b567f17ae55542e2f6a4308ec0f3fe69f8ba5ae24331b", - "sha3_256_hash_of_ciphertext": "fdc158261cb75522352cf6e3208d27d0f2213a33b40522271811b2ee201683b6", - "shared_secret": "787ed075f818be6a0eae99b113dba31002097e0b85a5480003c505a40793403f" + "sha3_256_hash_of_secret_key": "1d49be6e184db9d8f1cb53c539eed286faf340567d9491d003ac202de03dd7b3", + "encapsulation_seed": "e75c36e2c2f58f47597a06ff4be1caca2984c889e08a9c9d4b2831d6a6ec17e1", + "sha3_256_hash_of_ciphertext": "6d1c46ef846eaad126984716aef54148c44630a37fcbf37d2a7d1b38c33726ae", + "shared_secret": "bcc9c42039a770e1846a38e37e1a5e7702300e9b29de5241208bda4b1d8fa98d" }, { - "key_generation_seed": "e1953800acaa85ac02a906c72cb8e8d704e8d27820345f88f71e89c1f549afcc8c64c049c6dfc0f1476cffd520b055756162f7ec94243de6b14ac0b9e5fb366c", + "key_generation_seed": "e1953800acaa85ac02a906c72cb8e8d704e8d27820345f88f71e89c1f549afcc97c65a12d87432f475509f11e0884fb51b5d970c1b6d2c87c70590cf41c16b4f", "sha3_256_hash_of_public_key": "e3ec3671cc7675a321af8584a0961101c04a432772431e77f5740ba3b2ef488d", - "sha3_256_hash_of_secret_key": "93bf696bf0671c3845c4b246f29701a0978eec5b49de81589009e235903061e0", - "encapsulation_seed": "060ea5d2ed1dd88144a9885e79278590821c22917b55a48920f96b53ebe0e689", - "sha3_256_hash_of_ciphertext": "b07b1e1a4fa74d847910d0769ee7a8daeeab56174051037279d371be2470c0a3", - "shared_secret": "b81e1ea69c6a6e1737c78fe18c36cfdcd26cef62deb805f22a92c49df6596c0d" + "sha3_256_hash_of_secret_key": "f86e99c0c54989a8fd4b898c869f2f5be740cfa86204338af1c7a0ce2a06bffd", + "encapsulation_seed": "c068b1a68f7f29e1a8313876c4d37a23167e9bb9ec5a47013a5a840dc77d4ba6", + "sha3_256_hash_of_ciphertext": "f7f8098077f3f6cc3aa5b4d0e1ee9e6f462ae5378dde875258f64cbce44f4bbb", + "shared_secret": "78a4ee59d4aa5d7c68f22247a6d1d512267c2700e831ae979b460011906df4c2" }, { - "key_generation_seed": "c719f9b2d16399b7326ce4eca30dabefe8fdaab18e9f6df888b0a134ef355570e40771856eb77e4633504899fcb86c6a3d433d0b8d60e26f07bd61f1d4ed69bd", + "key_generation_seed": "c719f9b2d16399b7326ce4eca30dabefe8fdaab18e9f6df888b0a134ef355570a49f3b482a66256d7f667585925cb7f58894e42660ef2573ae33655c231dfb0e", "sha3_256_hash_of_public_key": "79836213a513bd4cfd42ed281304e3ee4560e4e0c60fa53781f83d5bd2bbea52", - "sha3_256_hash_of_secret_key": "65deb55fea451375ef335e7faac73917d32220fc70c95f371fdb16e712beeb26", - "encapsulation_seed": "10ef9426f8c4a13b52325c5bb4ead4596ecf2c6b5bd2d37d8350e90d4164fdd9", - "sha3_256_hash_of_ciphertext": "06bdd1883161221c5e66dfdeaf63ee8f526d63d8a0a2cd33487412b4413d51dc", - "shared_secret": "5d014fdcc992fcfcbdf3af29e8dbc9e5024f2ac41e71a3ef0ea43a063bf44e79" + "sha3_256_hash_of_secret_key": "b41e6d67d9f0f73a96bbd2b4fbbe83280ebca6e2578ee47aa0035db6bdca0f9a", + "encapsulation_seed": "d5668ff18683eea789415d6fa2a5a1031b2980b1e641f521d5235d50e04eac25", + "sha3_256_hash_of_ciphertext": "26cfbe666502bfdf45c3744d99157b92c557ec0274fc80d1c5a9636eff481987", + "shared_secret": "9d782edeba3f818256f43aa326eb1e585766742b7b043e2e72436ab5416ff577" }, { - "key_generation_seed": "e9acbb774be970206c3a738e243b420805a509fa59fa902044be2f0d013650d2ded5edaec5de3bf5b4d7c2f2e18e87f499c1968993eff196753db8045e2c8ba8", + "key_generation_seed": "e9acbb774be970206c3a738e243b420805a509fa59fa902044be2f0d013650d21d9667c03155106785069387ce7d25cb09c5516d52817201d6653f20e775b453", "sha3_256_hash_of_public_key": "0c2e803c2872400c49e1bb10232946ab939319e84ff32cd354dc15d082cde5a3", - "sha3_256_hash_of_secret_key": "d37f172803739d074d71a2be32125eb1ba4250128342e34b882fcba38b259248", - "encapsulation_seed": "a4bd30a64cbf29a4e290fa1cc1dfb99e68348713041e4409a1af23c5d80c15c4", - "sha3_256_hash_of_ciphertext": "0c7b5071b20477a398e4db3d83c18204c2a5dfb030f61b0d1b9434a255dedcd8", - "shared_secret": "80548d4687da93177d06d98c1e2def33fe85e770f8b871d2f74cae533f654692" + "sha3_256_hash_of_secret_key": "30afeda565afaa01894c7dd10d89fc04e4d235fc87586be6c4c6414e2e2f1ec8", + "encapsulation_seed": "07b6b69b60dc15a90690b3fc53e8a4655275e0a1a502551d8bf2eb337b1cd2fb", + "sha3_256_hash_of_ciphertext": "eaaf8adf795661aadb3a492207c3bc744e27d6f220a29383ead75798bade27ec", + "shared_secret": "618f4ece7c4393669f273b8a937de3bb779911cee8e1fdd022550d8e2915d336" }, { - "key_generation_seed": "c1b3cbffad4b306f9af0cdd3028876486dbe858875c9b6497fe20172a986c82b1c96249919cedc2369d8d739ab125e0d2ccb82dfebcd90240a545cdfe07511f2", + "key_generation_seed": "c1b3cbffad4b306f9af0cdd3028876486dbe858875c9b6497fe20172a986c82bb5b9e60227058afd73501b1c4e45adbbd41c7be8d14bcb8e98af77698fdf6b69", "sha3_256_hash_of_public_key": "5818ac8d7a38c781e3a0bc43d088e6d391d1d67d9639b260bb6f58a19a57150d", - "sha3_256_hash_of_secret_key": "280e4774d1b2401580216fa70fb24c2c214ac5dc7f3841710a42e14d6aa09663", - "encapsulation_seed": "f4b66a7d3b65b896dfe100b2cad24b175a1168cfd2ae11fd704b835f6bcd311a", - "sha3_256_hash_of_ciphertext": "aa39d64b106590c57b817f1958dff22fe0e3266c8d4e40a194930a4c32d2beb9", - "shared_secret": "2f2f58e23dba54d8a44ba11aa4546ee3f1819c6243e986249b7102019de3a777" + "sha3_256_hash_of_secret_key": "f24eac40ba2379c1693037128444eb0dd18cbb0462d19c8a976a2e85db1625ae", + "encapsulation_seed": "d70b79de7c2f7cb8d18eaf1ca040f6d8588ba85512ad000b59806ba485538377", + "sha3_256_hash_of_ciphertext": "d5c18a33ee0769372ad2274b0d500969521016a142322800deabf1242e19ec06", + "shared_secret": "3fb42aed91616bb85d06748999b29c6a287ae6c6e33941ce783bc3245c729d52" }, { - "key_generation_seed": "ff7495b8575b5a98e4fd21fb4c3e58cbb60f14bef21aa74cf8802e3153f14807bdc370460375a778d1a31d01c42b66367ed8d9e8f84551002f552f0e52102b5d", + "key_generation_seed": "ff7495b8575b5a98e4fd21fb4c3e58cbb60f14bef21aa74cf8802e3153f1480711c033d4a4bb231985ca7e851fc73ea4b2c29e131b7f442db8a66a9e5b31934b", "sha3_256_hash_of_public_key": "172cf4f8dace8a96b8f70da966080a5e3f132873ca7544343377a99b65e8147f", - "sha3_256_hash_of_secret_key": "31136804b6c14f3a0a00a3295a5fed8d606369e64d272d432c59d7fe0ccc3e47", - "encapsulation_seed": "1d7b03d3c5eefb8ae5799dc569aa668f1bcb8c86607b089d3530cf61d6380147", - "sha3_256_hash_of_ciphertext": "9c7b7cd8cb42ab4bc9fb532405c4673f28cd41751458d7549597ed2f5d993115", - "shared_secret": "0936224ef45e29dfe9263c6237a22798e94e81a932796174271ceccb78188554" + "sha3_256_hash_of_secret_key": "d3ab82e3711ada2c1bd7b6c7f079873be41c3045ef6c6c968c9f1cadedad8191", + "encapsulation_seed": "8449bffafb415183ec7e27d7fa2e30ae045b7d860a4f59ad0c551a8488e1db6e", + "sha3_256_hash_of_ciphertext": "176c4da5697e5e4cc26bcc994ade2695cd702fd6b8765a11397e46099ca85f2e", + "shared_secret": "4197c16aad6fdc186d5aa91000898b67cb65280503eab4826d7d3c4669aa5d70" }, { - "key_generation_seed": "bdc3fba1c32751139fc45bacffb3ea97f26573d804a5f27a459293d95190ed8efd5a08f656a6eb8cd20679930a31caa6a6331c4b133a6838c223ef9f769f6246", + "key_generation_seed": "bdc3fba1c32751139fc45bacffb3ea97f26573d804a5f27a459293d95190ed8e75fd654bb12da3469881ed591a82f58b4bfbac587d045fdf3aa0348029deb1a7", "sha3_256_hash_of_public_key": "268b6356f92c57da6dd34494b927e8764adf0ad519612ef0d1b8951e50966c2f", - "sha3_256_hash_of_secret_key": "3bf02cee24670ca40b7280d8047fa147b24c5e286dcae9c24bace9465bb19f61", - "encapsulation_seed": "554f3385b382f4a46314de37ee3885addfc5332bd4038785094e0a832e9e8c2c", - "sha3_256_hash_of_ciphertext": "12a71af24c3174eab460a2a2d2e3d27316becaae5f714e333a562dccf84b987b", - "shared_secret": "2073cea69b598292f44ebf4af3f7035e1738afb7203ad67531a7140150176e5e" + "sha3_256_hash_of_secret_key": "3a3da51819e77634e889c0296cec713d6508627aeedb5a7bcda49cf72641533f", + "encapsulation_seed": "fa2c8b8c0f711a6d31c496199ad1993c31db62debbc11ba3b3a86fe4278c365a", + "sha3_256_hash_of_ciphertext": "567191b708b992c4dbb4a6647c675cefe274c556d371e9c012d51b98ada71de9", + "shared_secret": "c5ade7eac4ca60209d65539c8551f71602f2c6aa00fc244eff0cfdb3f84b98f4" }, { - "key_generation_seed": "447f6076a627bbc5ad7773fbfeb14b4ba9ac43a0f8b99fb6dcd5e452aa3c47ec20a7237801f470fcc2bd9fd7bea8322859b850f7882d362947432913dd068c01", + "key_generation_seed": "447f6076a627bbc5ad7773fbfeb14b4ba9ac43a0f8b99fb6dcd5e452aa3c47ec4c7e3a5fa1ec46b73f87af48578132eb080aaa37d31f0c2a041c5948e59f44f9", "sha3_256_hash_of_public_key": "4c6d304e0494d88d83b5e3aa5761df3b299551a24f28994d2747b2b08945bead", - "sha3_256_hash_of_secret_key": "5de91ca73756eee74da3cac78a1fb329a02f8587f212bb9bc0b29e0e654a5795", - "encapsulation_seed": "38bf0033b779edf5367d9ebc01c988af90904c560970815837380650e4749eea", - "sha3_256_hash_of_ciphertext": "b83891ce96450ac05aa2f7373675fa1dda337ab61e60098d18e8ec910d63175d", - "shared_secret": "633d9672d83a112a260b9d4c17812359b5591900a3b80424b3590b403a5dfba9" + "sha3_256_hash_of_secret_key": "682cfccf7d4056357bec9973eb7b63ccbe163a65e0e0e7f144a046029ad8679e", + "encapsulation_seed": "0359cbd196b3f4e9a0f8506a14a90ae501b00496958c512744ec20e95b065497", + "sha3_256_hash_of_ciphertext": "c33c3554d56402fbfe5ae07644494eca869ce0746ad2e312cf0cd8d220f19231", + "shared_secret": "e8167d50f2c74925434b2e86c2469af294074c4b30ec4019677e2711f3f157e6" }, { - "key_generation_seed": "2d5df64d62cb07fe630310bb801c658dbf3d97993e68626745de39d37fbfc2b27b534537addaba4ecf14f02ab317d36cb9f0f50222ced7cf029dff8a0d3d2fd9", + "key_generation_seed": "2d5df64d62cb07fe630310bb801c658dbf3d97993e68626745de39d37fbfc2b26cf04ca090e5805fe0ffedd6be0f254397155a7639c5afbb30a7a75cfebff026", "sha3_256_hash_of_public_key": "72be2f5cd569e6229f00014854633f7b278e90af4ea593411909467a03e29cfb", - "sha3_256_hash_of_secret_key": "a68ca31b91491a129af9f280cb4c60c046e7a7ccddf41c9bd98663f8512ca34b", - "encapsulation_seed": "048ea516d0ebbd9f709b47eaac66f344c571cf50f0d01c9466aa061a50b66a24", - "sha3_256_hash_of_ciphertext": "b8f3a0ec2b0827718d736ac715dcf10b514771c8b80dc27b283e6636ea598417", - "shared_secret": "7efdc40486793dcbc7c030273f8edb4178075955edbfbbf0f21b793206a172d4" + "sha3_256_hash_of_secret_key": "b5fa10b9c967460e9fe6658cbe0aadf9e5a0ce9c14e1d98cbeb4b4d4fb221d3a", + "encapsulation_seed": "894f98d7435d1c0c3667c22a218a449d07f117d46fcbfa4baa09f62403827464", + "sha3_256_hash_of_ciphertext": "a791e6855bb3dedbd10c621838111547649285f18b2796c3c450cef8290ccf55", + "shared_secret": "08be70e91b98730e5c7dfeb15c1a020e31853e012b04c0b70ce2560d3a6e27bf" }, { - "key_generation_seed": "25056d1b8113bb362dd979d98643d7a7ac9c4f95994c0ba060609b6d07002ff3f48a9254dd40b117941fa35a66bb50296327b725525deef70e128ca8045ec451", + "key_generation_seed": "25056d1b8113bb362dd979d98643d7a7ac9c4f95994c0ba060609b6d07002ff30d5ec1be89d37beb810db438778bac52cdc1fe8f5c27ad825639e12ed908fa31", "sha3_256_hash_of_public_key": "0831c75b153fa17d336a79ff6e88ddf485daf7b1b0bcf39d8df15319d52ac67e", - "sha3_256_hash_of_secret_key": "2b983d7cb50880cff761441b6a2c66b7a41642cfd2a8cc297a5df53f0ed1947f", - "encapsulation_seed": "686c921c9db1263e78ae753b1c9c2e7936b8229dca48c0942c56c6bca4f10917", - "sha3_256_hash_of_ciphertext": "df0f1e8526b97933ad6cae8d4059d2d90b292a2e084c2ef2833c89146777546b", - "shared_secret": "a33bbcff1ec8c4d3e3229aec78463ffead5b96c6c1fa857921f8907a9180af07" + "sha3_256_hash_of_secret_key": "6b89bebc623a5db14ea33d1f8d95e019aad69da02869b61671a5c192b72a62c9", + "encapsulation_seed": "c07d2a9f28995f021a974e798a55aec0230b11b9ee542f69925d009159425e81", + "sha3_256_hash_of_ciphertext": "2fc62903bf1caf20ca26c4aa6f0fad10d0d070e16d7d601e9c805b579f7ea273", + "shared_secret": "11b7bfc2474a85e9c699b20ba61fe50ef52f9331e6d815ca24efa4c7cb5e0ded" }, { - "key_generation_seed": "e4d34e12982aeeb1d62fd488d9b9e28557ed3429292239fb4f76fa9098009acae6c45c7fc62329b13c8d29844405db8ff6860de474bf727ecd19e54e6e1a141b", + "key_generation_seed": "e4d34e12982aeeb1d62fd488d9b9e28557ed3429292239fb4f76fa9098009aca91fd1369e8228b3979984c15440ef268fd3629c186d6cfde02b0f8a7908a7ee2", "sha3_256_hash_of_public_key": "b30cedc4316b63d75b641fbad2f33241a3fc47ab8b3ee1a3ed597e5b04f77c68", - "sha3_256_hash_of_secret_key": "a49a7533c671e533deec55af218ee511c57014070e138c7059853e08c34b0a78", - "encapsulation_seed": "2387772e50059cabda53cb93ba24b19ae529496c03b36584169451525c4a0e7e", - "sha3_256_hash_of_ciphertext": "563edf14ab8095cc468c400fb06476bdcae5236e8ae7336715e8feeb7bc3969e", - "shared_secret": "bbc0b0a4782e2bb9eb19257f5b80338d1e239aa6a08710cbcba0adb974d7dc64" + "sha3_256_hash_of_secret_key": "0a96c271773c3387f011f6749dfcf53e3bc75ce18525ca1b2fe4dd6f5d0b1d49", + "encapsulation_seed": "135cd8f8172371cef32284ec766614cfdca11dbae8797b92227da5e487e16435", + "sha3_256_hash_of_ciphertext": "a230d3dbd5cb62d48a77c9abd04c587044b6efdae85201347725e8a7a17dcd52", + "shared_secret": "28b44cb0820b37d6011e5d42c1f15f381d29d5250114c63453087b255dbd6ce4" }, { - "key_generation_seed": "cd6a99396eb3539ca663a51e42063a3a262cc1c5a5fce1566f0597b52ad9fa325a3407f591791a5db4578b5972093a95bec3b8e70c1d542c9b5c9789729f8922", + "key_generation_seed": "cd6a99396eb3539ca663a51e42063a3a262cc1c5a5fce1566f0597b52ad9fa32ac8557eb61a3d4a2400d3a604092cc3b92032f4d3b563f3d4aa19387eebf2a76", "sha3_256_hash_of_public_key": "ee044dbdf6787ff038dbf9c133557169c62fc1ce2580739369aa87df00b49648", - "sha3_256_hash_of_secret_key": "9e865967f0d1e7d3f6a49f2bb623ced2a7b1408a945e02adbdca35846b70e7b9", - "encapsulation_seed": "155c29c5f0378df0cd0e847a80a07143cf7522fcd880c9229eb9feb1ce340cd2", - "sha3_256_hash_of_ciphertext": "8cc9b0e48193e9da7cb75bae6a63f83caaab5dc7ac67c5554d46c3fa1db1e647", - "shared_secret": "3eea7528610dae3539f5f81efd9beedda4d45ef0b9ff91d3d4f3561b4981d286" + "sha3_256_hash_of_secret_key": "3281dbe93a0028141807c7ee31886eda7e2d4d5e5502d47657bca66136dab9ee", + "encapsulation_seed": "96fdac8ddcc219f5abacd5f20fefeed980b40339d4147c6a066d6b6d67458760", + "sha3_256_hash_of_ciphertext": "18f1ed23c8d9e87769f85f7e7916514e21282d1e0995a338ef56e77e533364cb", + "shared_secret": "6336970864cd8a6b3674bdd3760c6bbbb9bfc3344256f4e7a789cf8be4c7c2c7" }, { - "key_generation_seed": "6c8c53ed6f65e6b2e324b84364e10de42d1c26a106d4d1c99eee79c78586fb55b9402bf02481ce4b27a52e87feb92c4399c7f2988d40e942e7496ad15ad2aa88", + "key_generation_seed": "6c8c53ed6f65e6b2e324b84364e10de42d1c26a106d4d1c99eee79c78586fb5555bdb92f28d0393c0f7850c7f6c371bd4835d6db61c138b0faf22854466231d8", "sha3_256_hash_of_public_key": "e965ac6995d525e324e8252d8e2c2da909a29b24baca8b68daa5122cb539a474", - "sha3_256_hash_of_secret_key": "91051a381626e9465fc7ab20a1944eca64be461330bda53e7d1838a74597392d", - "encapsulation_seed": "a9cb9a61a3324b1ea5afe693b32784e2871096b2ca14a11acc9577c52359a241", - "sha3_256_hash_of_ciphertext": "3d06ab179441a0fea2b05281871e6d19578a63fd1e161aa8c4b0ef7281cde2d6", - "shared_secret": "c5e2f0c1ee4f13fa8fbf2d09a78b04a5e2069aafa978598f96424acbcf41ad44" + "sha3_256_hash_of_secret_key": "ce7198e9be9390d9dab38bcc13637765f4ab266bf4516c8df199885a12df1859", + "encapsulation_seed": "5e4723f16005d54429f70be509c3149f769c7179c155393ccbde778707cf3a7d", + "sha3_256_hash_of_ciphertext": "a94fbf51c347f7a8e58385242cc04a921cb6119dd9dbda4f666f9950e7010985", + "shared_secret": "c2865575e8346d295d1e3e1da0e317416e47323b7065877735c79167dcf8dc8b" }, { - "key_generation_seed": "2107204cd995f1df14314d5381f8c5440f09a347502e161cffc0a2ec3dcfbc7324c3da70fe850e80aa818301d60c70f3038153866dcd5d179e22db59b8991bb4", + "key_generation_seed": "2107204cd995f1df14314d5381f8c5440f09a347502e161cffc0a2ec3dcfbc73c95df27db27ffd4a8fdf31c4474cbfe2f5ef99f760e97fcf569d8ab22c2855a5", "sha3_256_hash_of_public_key": "a3d8a85f38cfda38c66ae39b2f9186ef7bc1e0c98e8976a6cbc6c4875d73d7fb", - "sha3_256_hash_of_secret_key": "cf7e797f8f7229a08206034737e54fe46645ab2fabdbfc8662b45a2604876b65", - "encapsulation_seed": "e99fbae8a024ebbbdcef32ce213f6aa942e3eca925e5da4c09975d773b33a175", - "sha3_256_hash_of_ciphertext": "4d2a2c762d4fc69191a3a936f0d918a9891ccb72d4a0bfd2de80d27283cbe88d", - "shared_secret": "0b642d9427caaab926dfc155993bcb41bfbfb91e6c6d1c4165d8750222cc3688" + "sha3_256_hash_of_secret_key": "14a0fa6e292693f41e591c1985fcc40e820e1a69c4ab770ca3ffd02745cb0a97", + "encapsulation_seed": "2435be12e5a6b3b230f3b0b24ac28fa464b9e8df34acbc8c6eb16441739c1b18", + "sha3_256_hash_of_ciphertext": "9cc7c3cd306f9e1e97a1bc9dff9b61a27071eac1f47fcdcaadbfddbd1c97aeef", + "shared_secret": "fe0d49911c876535e0ebad25fcf5d05d0f1041f40315a5e1165fd08f53c443e1" }, { - "key_generation_seed": "63a925685a8ac5bbd918faa33ac397d1ffbcf99135d9da7c3d6ff7aa4c50af3d3afdb8a246a56ee71465591831c371f2eb87467b0559dedd776ba063ee6d2f93", + "key_generation_seed": "63a925685a8ac5bbd918faa33ac397d1ffbcf99135d9da7c3d6ff7aa4c50af3d284fdcb2d2a697d75e985aa43fae0df266a8056c18cb0bbb52b4ec89d66c21e8", "sha3_256_hash_of_public_key": "aa73b40dedd61e6fdaac86971965c03ab14ae69e8130426fdf830bd57d0974ce", - "sha3_256_hash_of_secret_key": "1e7f3f1e5632d1df538b564304f56689742d1f652d8d32f019b45183af68a20e", - "encapsulation_seed": "67a216f37d67f5e74f782f1badbce1cc8c80a6130aec305b421899a4faa0a6c3", - "sha3_256_hash_of_ciphertext": "4c4ecacde036488a6b2361b1b976b86e9b63294bb7df100e35dd3246d423965a", - "shared_secret": "79462708f754bf842716f900e850c228b00996b0e3801b43f6a928bfd4aa9e50" + "sha3_256_hash_of_secret_key": "660e737f15faa6e9d93338863bafd81fb373fd427861c8cdd6d3090057cbf7de", + "encapsulation_seed": "630f384162dd6f8206cb36d2278af30ccdfc73105029dd507a18ad433503cd7d", + "sha3_256_hash_of_ciphertext": "91144f5d36b5418f791b5ea9f96c88a38cdb3c96833f71fa8845fd929a8badaf", + "shared_secret": "40f2c0f5f4d2215bbf6d7ce287ea8ea394660b7cf5c7e3dceddf79f663777667" }, { - "key_generation_seed": "6a1aee5e708c1b47f02bdacce4f56c860f74fc7cfec1ef3b58285b1c8ad7fec2230e05b7114ff0395cc6634db1eae8258072d09c09f291e92d6620b177dc50d7", + "key_generation_seed": "6a1aee5e708c1b47f02bdacce4f56c860f74fc7cfec1ef3b58285b1c8ad7fec211fe1ebbd66174798908aeaa16d79212e61d5c30364864fc1e09f1b20f296c11", "sha3_256_hash_of_public_key": "cf754f2ee43694865a09ca7beb0deda9b1328fd0abdf30ca5c338e27e8be04b5", - "sha3_256_hash_of_secret_key": "928592604aa44df8f2072f26e9511129f61da0b7f57acb3f6896635a9764ea87", - "encapsulation_seed": "52b19fea232c9154a3e431e9d69cda40013cf2d485c3cd027ad24e645420420b", - "sha3_256_hash_of_ciphertext": "e7c673bdc9d9dc543754e0673e9aa66ae3f4ee7b1efb5f4fdaed89794ea77fb8", - "shared_secret": "bf535eebd3721e4d832fa4c11369808a154faed4602220b4070b78900b008358" + "sha3_256_hash_of_secret_key": "92d8c80a665cd09b0406080f41ce3e5081ea94f59cc5fc2349051cae06b033df", + "encapsulation_seed": "a0f6aa73a5d09451a39087fd84f6872ce2ef031e6c02468b433362311346fb42", + "sha3_256_hash_of_ciphertext": "0a8cd1a17978f1be136476a8668ee537a6c63d620e7c3371e0cd74b0bd272f3f", + "shared_secret": "b82e5857200c398c297840cc0b14b83510cf03de5d85e71584ec22a38a830239" }, { - "key_generation_seed": "6396b328b100e4c7f4bcae69875edea1a1982421558c608c13c592bf7b5d0fef1100ced48add211a5c937b8d6079d8e271af3f949edc61f70e60453aef20dea9", + "key_generation_seed": "6396b328b100e4c7f4bcae69875edea1a1982421558c608c13c592bf7b5d0fefbae49824e1a023a302cdf665aec15b60f7f77ab2a0fffd5246d07ae975a0614e", "sha3_256_hash_of_public_key": "3a842153dee9e035299d7e268c9492d71188f9fb24bdc2dd20c1ddca647a1523", - "sha3_256_hash_of_secret_key": "28ee987bc4ae5a321d2669950dbf87596fc4b35c29f192836005064aa3dadee1", - "encapsulation_seed": "64440adb05db3308b189bf999f9ee16e8ee3a6ccbe11eebf0d3ae4b172da7d2f", - "sha3_256_hash_of_ciphertext": "4fcc1ca889f0792f716e9ed77d2794b9fe34531dbfda86b01dc6088c21e5c87a", - "shared_secret": "3602269c7af9fe28ea1019208dc3ab33ba09239d435c509903ca67345717e845" + "sha3_256_hash_of_secret_key": "e312d8546d22538f59329b7a09d1ca16168a8daa3127fd484fd6c18bdec5f1ef", + "encapsulation_seed": "2905f02ce2c10e4ae7bb7f862d1d377f8df3a1280481e2579d49191d1ee6ef6d", + "sha3_256_hash_of_ciphertext": "129c7c5ffd14c2cbcc79c624666c988c039ade0e4705995e64e70aab5c6e2739", + "shared_secret": "a1676fb1bf8bde481425fd5183ca9c41b15364edcb7dbf5e8002e81acf830bf2" }, { - "key_generation_seed": "a453bcacdd2b0d4646009e5ed451c3c45f08fb827ef733db3c517a9dc1af93e67a3cc8aa3239d4c52ce4c95afdeff6efbfacac10d294edc0e7cf4535059bfdba", + "key_generation_seed": "a453bcacdd2b0d4646009e5ed451c3c45f08fb827ef733db3c517a9dc1af93e6e39cc6c99ee6fd8653d15505a6c2a713d41b43fa521cfb214e8d1b38440f4640", "sha3_256_hash_of_public_key": "da43cae3c4da51d69a57eb87094a03cd3a9c3e6b4ed864cc691a60f0509cc646", - "sha3_256_hash_of_secret_key": "b204cd1c3122b29a3d99cb77e11427fc102375699928c5a6fe816f96bb212627", - "encapsulation_seed": "c8bb46b3a7344ad170c2052fb042b5a3b62e0590562ee82577b1081f6f114d16", - "sha3_256_hash_of_ciphertext": "d60b51f94c4de5c221af1e05e7603296ed365913f90e061c686c6174aacaa891", - "shared_secret": "5e039d591cfb128e51d0804e0993084fc92b0bca9c0f2d84e24f5fea5efb3b8b" + "sha3_256_hash_of_secret_key": "e2e5780efc1feaf21a486b1898050103a4d96fac61560fc775346dc79c53e64b", + "encapsulation_seed": "ca41a891e8b3cf62f7cf5e356fa7705dcf26478b2cf2561a0de208dc06c02059", + "sha3_256_hash_of_ciphertext": "2be0619e339bedb36446eb9d716fef36513674dcdee5c8e935d320f6137d97f2", + "shared_secret": "3ee950c6975c5e90dc9c53e541453b82cae8cbebb102a820c558c84882a94e68" }, { - "key_generation_seed": "47ca2b77c5b717f423222c2730ca5cb9c856bc951d01b2b2c80bd76ccb5539b78f1481d7cab000e33fa07de8dc9627a85e76fabb4428a3376e66300cf12a0787", + "key_generation_seed": "47ca2b77c5b717f423222c2730ca5cb9c856bc951d01b2b2c80bd76ccb5539b7d55eeb68870b6df148654f14eb4b3ae9084b40f8b5cbc83ff4c419dbbacbd190", "sha3_256_hash_of_public_key": "6533c524a32345eefdadc74a3c6ad7e981832797faf1068955b79f118dff9358", - "sha3_256_hash_of_secret_key": "b9dee52055b1f9a2b25a0c1be4d9f30d2ecd7c5a09f0f5294de2d49a55ac9fe0", - "encapsulation_seed": "2e2b70609f3fe029a14d09d5d659871ac776ce2797a0355f16e2eb68f5613fd1", - "sha3_256_hash_of_ciphertext": "9319ad69d886668892dfdd31b359f6abfdcac75ee600875ec47389d1d63d8c49", - "shared_secret": "eae95e643381df7a1ca1954eb0d529db88a8001b8c1ed98a4b055936bbc6c038" + "sha3_256_hash_of_secret_key": "bba596fead944e0797fadcb23c0607becab0e1e085bea1602a96da841adf6e90", + "encapsulation_seed": "7343358fd131bc289baec8ebfcac5c52c29a86c89f8a2b89c695d8a9a7afd491", + "sha3_256_hash_of_ciphertext": "350c29ae106eafcfeb386afbe9da0ae48b0ed8f98cc86ee45a71f41bc87b5ff3", + "shared_secret": "5a020d0f9ac9826cb6d43ac73acfa6cd978d3a547ad510261090498e05b9c345" }, { - "key_generation_seed": "aaf6eb40e596a5e3e8218871e708b089240dcbe7fd3641f0e5e41e071ce49107e2f8d320ac3cb0c52efdc753282f092bc39baf4a18783a48ea031a191865eb78", + "key_generation_seed": "aaf6eb40e596a5e3e8218871e708b089240dcbe7fd3641f0e5e41e071ce49107aacc8be341a319f425312eff5dacb31e6e772efadde7250db9f613c13b454565", "sha3_256_hash_of_public_key": "e2f60f27da7f318eb94a74b437f8e0bc9513e9bcc38dad99c174c1d75e0145f1", - "sha3_256_hash_of_secret_key": "68eaa8143a71bd5f6df29b128781e3f2a5fbc5d20534afb223ddcc64bc767f5a", - "encapsulation_seed": "4725dd8fb314bfd8ee23731c2341dbe114606d9abe6434c471b5573e7df193bb", - "sha3_256_hash_of_ciphertext": "fca5c4beeee972f426128385dfa08f2ad7491e42bb9f414def44f0f9d3fa962d", - "shared_secret": "dfff52ca2afc33401b4f72f5e6ab5d9bc21c08a6843ffb2ced24775d786b5a0c" + "sha3_256_hash_of_secret_key": "3e8d3a8402013e9f53693cc997ff86d7a04728c4471156a6f69b7745cbb739f1", + "encapsulation_seed": "1beaad495ce5da859511454a6e6d84c3a3e0d73bae4cb1cf8ee16aa1539d37d6", + "sha3_256_hash_of_ciphertext": "018e8717842caed955d907bbe06529ecc3761e87c9ed39b1528075201ea34250", + "shared_secret": "6ebe495e409b039e504a06a0ee6fec60ae49c05ced0413e6df59bb74945a4543" }, { - "key_generation_seed": "6500f32c93415cfdbc0bd31d78d5be95cb9060c8cfa2013955b56f8b6868b322393308641a9a4647f230201e1389624a296b55192a9819fcb19ab77c25f95445", + "key_generation_seed": "6500f32c93415cfdbc0bd31d78d5be95cb9060c8cfa2013955b56f8b6868b3222779aba933159a5aa043e2fbe31b14d2e56f93e83763e19787607196101d3f26", "sha3_256_hash_of_public_key": "d4bf608793939ecba27dff5889d4d921c583999a57e20a48085ac549573e6abf", - "sha3_256_hash_of_secret_key": "5f9a14a9c41fc228306d79417015408f31bc9c3d97579616bd68a3d3444f9bd2", - "encapsulation_seed": "818d3bb8ebfb32bf464775f7139bac0a5bddce80ec5798595992f9403002cd5d", - "sha3_256_hash_of_ciphertext": "bf911b0acdaf3ba97192e847cf8327696378bd4aee452751432763e7e531aa8c", - "shared_secret": "c870a7be3dc7bbf5836727e5bd82cf977b1332e7db276473e4029ed95204acda" + "sha3_256_hash_of_secret_key": "08d36f358373a7d8f5bfd77044ecab2e7ef0a81e78e152f883c957350073801c", + "encapsulation_seed": "d2b388fdf32c5ceb6126f9f28c341d109c1cbc6e69207bd655b969de1b8f7b0c", + "sha3_256_hash_of_ciphertext": "96dd2a1d77b25cdad88c587af4238c85396ef5f91f224507f13c4d40d7ac65ae", + "shared_secret": "13718da36873842e229ca5c142ff416f257e160ce7b0b7ec407ee55242ed1811" }, { - "key_generation_seed": "7643cef2d62cc5aaeecf754653ea62294cd2208e5bf3ddeea209e3dc45373d49eac9d531a532770837a854b4f5531f6e0c8d6c10183b30d3435498c2dd142951", + "key_generation_seed": "7643cef2d62cc5aaeecf754653ea62294cd2208e5bf3ddeea209e3dc45373d4992cedef206325f68ebc282123eb0ab02874f8a3c6665b78346775351ad99cc3d", "sha3_256_hash_of_public_key": "65f03add3941d22c80d50659f501f8cca1b448d84462ccb93d5f065889484bc0", - "sha3_256_hash_of_secret_key": "e4513cfd1dd2153d30d15b023421cb8e8456e6a40e612847e1713e915a29a87c", - "encapsulation_seed": "c92aa5fb91c980d9cade9ce99d4c75b2ffa7d6a6ff9bd59def1aa701f2a0992b", - "sha3_256_hash_of_ciphertext": "66d912705b35909a378354e283482cedd6e3391f78985e9e75e7639efa3268eb", - "shared_secret": "3a14474e05df3ff59c6105b1f2af004a8b8164dd049eb6929b9c9881a873ab08" + "sha3_256_hash_of_secret_key": "11710bcf6f2c6ca2ad9c712cf648ff7f65516fa9c4b89bc7260e4774742b640c", + "encapsulation_seed": "5741c37bc610abd8f8f9673d0267895a4e77235acbdb294eca9ded915410fb1a", + "sha3_256_hash_of_ciphertext": "b49eb18af6c3b3828b7b49bde20862641d8247bee638aa92a4cd6e0e65fd80b1", + "shared_secret": "e5398378607b281f73f6fc93a7cb58811ae9f8d986bbe0d8c19ea0b3971b6c42" }, { - "key_generation_seed": "f8ee95521060c03bb8dacc79f7eb7db640f545f315613a35d447a09e504cb4e13fc3d8392cb53f36ed647364a04e37278a0e0a45b720f4a75c580c9920eba98d", + "key_generation_seed": "f8ee95521060c03bb8dacc79f7eb7db640f545f315613a35d447a09e504cb4e17373d22cace9f3a09fcc5e85067ee05c0e537aa0738f79101236b4e7d28f2889", "sha3_256_hash_of_public_key": "b8a3b8cf4709204a2fdb19889b0022ea655dfd58ff27e17d530510e1eef45793", - "sha3_256_hash_of_secret_key": "1f7cdadf3d4707efe1b7a6173d8f7b8a9f864ab388c3271d79ec424d9da3e896", - "encapsulation_seed": "7e8086a01dc5b3bb9eda25bcc45d27f99874841b97237968495800e007696ac5", - "sha3_256_hash_of_ciphertext": "02f5530dd9feb48f4013f496bb9ea98d70ce40f75862ca68cfd1b68e2da13a4a", - "shared_secret": "2d26f4da925e01caaeaf4a89f5ce81148a000f7a36dfee74e059a933d973ddbb" + "sha3_256_hash_of_secret_key": "d565ef976e3162581a75145d227e9696b1e0a45c8ffdfd947d8413d448b3d4cd", + "encapsulation_seed": "c4d1d167371706468915dfa7f41e45fc48fc5e02ef79651c81c87bea7861b2b4", + "sha3_256_hash_of_ciphertext": "f9bed840b0697b2cfabcbdeeacaf89db47854660403cea50ce653c4d4f970a72", + "shared_secret": "cce008cbb7f83b2ec863b089b7030ae360f775439a96f0a51061a76b7bc7bcf5" }, { - "key_generation_seed": "b8bd0493a882e3a49b4e0f6256fb1fea0912562fd9ba26ec3d6c9cc12c8973abd7e4b5d8021c486b9c3114d7cbbeb7cd49eba8a61bc2bcae1f1bef30a1daf76d", + "key_generation_seed": "b8bd0493a882e3a49b4e0f6256fb1fea0912562fd9ba26ec3d6c9cc12c8973abc1b070e4e519d727f677e011716436bee9dd0188fe38c00d0ff425ad794c07d1", "sha3_256_hash_of_public_key": "46fe6c37136273736ccb11df5b6d55debbc087de802404b72a003c5e8c809719", - "sha3_256_hash_of_secret_key": "3177ed170e84ff15fa1e744adc9ce806e431a68f15a7a026c6092bf593dec6a1", - "encapsulation_seed": "bb321ef14d44d8698df879fd52450567657f52a2df8d111185dcd7d4f30a72d4", - "sha3_256_hash_of_ciphertext": "d65323bd9209bc4e9e6b6ad73beaf3871707b3af1a5cb460000f1cfd47c823f1", - "shared_secret": "5012217b85a1e5dba62a2476d7a441411d8ecddbe2d3a291f658b7dc1d1197e9" + "sha3_256_hash_of_secret_key": "bc20850e9c8e8e9635bea5443cf0bbe408e5dff765b9306799e0013f980c5ab5", + "encapsulation_seed": "c83b6ddc081188c55bd3d236d360f73c5cabf211676ecca5a0f2da3550d51ba6", + "sha3_256_hash_of_ciphertext": "7af0e7306870548224cc3235a239f6134b818e517a6c732d06a8cdfdca98fbc8", + "shared_secret": "45b97d6ebbb1dc841ff6c4d407f40496a2fceeceac09703967f75fe1aa01ca27" }, { - "key_generation_seed": "c0407e41ddf48d333978b89bcf2db01e4613425b456249e76a6f25b8a2827bf5b2dca81e3f5f748d23c9d356a2209f6b2d60247b2e45c9808de497f64f124643", + "key_generation_seed": "c0407e41ddf48d333978b89bcf2db01e4613425b456249e76a6f25b8a2827bf5d89cdcf4b8ece9f441926532427f01e9dd71b86ea949a59b14189aaa249aaf77", "sha3_256_hash_of_public_key": "a074ed1f76e97d68434ba4af2af0e549204222679e9e643580c35af3cdd247ce", - "sha3_256_hash_of_secret_key": "8f9b3f631d0fb04477846ae09aea725f1cc65b2cdefe2108cdb399c36db9b487", - "encapsulation_seed": "210a423dadd899b810f011794b79aa7f860823ac1962370e791287d3a1afa384", - "sha3_256_hash_of_ciphertext": "bfcb6519e71a36787ec2f499db9c29a491e67c1a9765aa1824a454f77b1cd7b0", - "shared_secret": "0dcecac51c5261e34023d2e04146ccea10a0b39ae7edc50736127184fecfc8d8" + "sha3_256_hash_of_secret_key": "e075ca3db9c2db16f063997a1abf1708d49ed376920e5ffd5af1f410c0fe236e", + "encapsulation_seed": "5add4ff6b8986e4b0dbc8e05801f48b7fa41aaa10e2311f4fe1e0b010d569862", + "sha3_256_hash_of_ciphertext": "5ba7e7db337d4eebdb33122f367bd549e14601ca0f9a8bdb22b625766efcaa47", + "shared_secret": "dd789e66587ec52ef9c471d0f6461d5de7c2c072cb44084c42ac17af4cabab7a" }, { - "key_generation_seed": "334382d39164d1989696a2ff77b25a28af8bead9883b5365eb6fcca7c1781cc9aba5068af837be962f439f233593d193ce5e08f7d66efb3389885927b89d2523", + "key_generation_seed": "334382d39164d1989696a2ff77b25a28af8bead9883b5365eb6fcca7c1781cc98aae27e7d301495dab212a61fd3f209a8068fcf9a61ad83463c00d2cab426633", "sha3_256_hash_of_public_key": "26659f74fc9ec372fe18be4ed6aa28b7cd84ad1c0f0115dad011a11d20fda9ed", - "sha3_256_hash_of_secret_key": "5e3f83cb08ff80183879af9ade3631bed2a468e429ad027a5afeafd9a6f66362", - "encapsulation_seed": "bc856afe24213e3d14c3d6f9b89223bbcfb2c890722d770fa3492c1e46d1c302", - "sha3_256_hash_of_ciphertext": "e3abb3ac5b54dcad2611ca640bd314a976ae0ded1a8110dfa0cea536ead85372", - "shared_secret": "0d403f00c22fab72899d302cb536854b934446b62f9da6d9d6cf1c0f7abac2e6" + "sha3_256_hash_of_secret_key": "5c6bad9f97bbc0c744010921d92e737e75c17c384121b8bbae17a49dd1515015", + "encapsulation_seed": "f9e9fd68166f1efe1916c2e0868e30cd14ca6a7e07c44a1e5ecad722d016a3bd", + "sha3_256_hash_of_ciphertext": "c56a93486cfbbb935e7e62e3ed0e733b253cfbe89a6936bb5d853cb7704ed95b", + "shared_secret": "bf7edcacc71270dffba4d5981f98ccaf7502f8d8ea4a482c1d38378ed4d25cb5" }, { - "key_generation_seed": "6995143e8eb8a6e93840f76eec844f67d2b5f75b1839a5040337e61f9806764a0f4dff8e56f68440836a072412a30d851ace2c7c6f02d60e7a8420001a63e6c6", + "key_generation_seed": "6995143e8eb8a6e93840f76eec844f67d2b5f75b1839a5040337e61f9806764ac30e299218d4a39c2ea3fc06439fc4c411e99bbc34b8f30d23845e91e71fef3c", "sha3_256_hash_of_public_key": "2ca3d8ad2dab1dd8a2f4320658fe6eacabf70d907920593919119cf374516336", - "sha3_256_hash_of_secret_key": "2798448395f6ae3223550e7d5255e6a605b430229f5809b6efd0683a6b9ca402", - "encapsulation_seed": "5fc00f89563e44b24cd67d0ce684effe5731619fd08e7d72e2406eb016afb66b", - "sha3_256_hash_of_ciphertext": "547cda0ec8f19690d1a8bdfb7bd8b822872ffb0c321ff096e280abe1faaa45ef", - "shared_secret": "8c0346216cc65f95d2e0caaeec4bffaaccc49132cba2dee8f2a6ce1f922e6db4" + "sha3_256_hash_of_secret_key": "747532335c4236747ad0c1f515b721ac0ad8c5df32b5dd42b20a0be79b9730a0", + "encapsulation_seed": "f866365324cfdf8254ea0b73b7947496f9fd24bfdc562db4857ef5c659441cf5", + "sha3_256_hash_of_ciphertext": "d7168faac7876b663dab57eace75bb8786a3922ed86b7abf3808a1289dc092dc", + "shared_secret": "792d526ed63f602f8d353c92e76ac32b021ecc7c5313697dcba7ed953a099bfd" }, { - "key_generation_seed": "995eff7e0d195c6d0533f3dc194d47e60f9ad14696144cde694d60a95f3e96b4b28f7e7a15a005f92400ce33db073d49b53871594a88fc45e0f94207b5f0f2dc", + "key_generation_seed": "995eff7e0d195c6d0533f3dc194d47e60f9ad14696144cde694d60a95f3e96b4a33923382f8863478882483037fb1282ff917eb6658a7154c6ad64b5858c629e", "sha3_256_hash_of_public_key": "de62eff56f6b49a156d065d85eaf0aa21ca229a20fa4e1372a410ab1c4ab6e7e", - "sha3_256_hash_of_secret_key": "6766cef3fe644a233caddf208074b58e6e83f8a78aecd00911c29a08f6f0b0f3", - "encapsulation_seed": "ea22a76065db4b565ee1807fbd813b43bde72b0e08407fb867c6a18995025e50", - "sha3_256_hash_of_ciphertext": "f1d6c83633f244e683ea018c1d70818cb923c2c312cf03ad81884d4de4d29cdc", - "shared_secret": "35151c059e5220d4abab9380fb0ebfa061148e6096d8f5678e4308cba0226261" + "sha3_256_hash_of_secret_key": "5a31cb57ac2cf5dbc2ba37110fa7937348f53c734fe6e2361e0a5e7b1dd81fdd", + "encapsulation_seed": "4c25311d7b2fa56a45f4ec1cb4591c627b52eed4d2409ec70ebe855d988893d8", + "sha3_256_hash_of_ciphertext": "c8cb0b7d1c7e386632d839113496a19a7598de8ffeea985ad6c7ed32f486ffb9", + "shared_secret": "e1eb308a3ace733dfa73700195b5beb0bcf96739328df7301bfabe07fe1239a3" }, { - "key_generation_seed": "3e809ec8dd0fec0d911a4e3fac20f70fbb128c5de94dc7184ca7310ae9157a98d8128601c28b1def8d393a0db283229f7c7383152a814e7cefe8ef9d9768c473", + "key_generation_seed": "3e809ec8dd0fec0d911a4e3fac20f70fbb128c5de94dc7184ca7310ae9157a987b2daf2ea1f1011c4bd04208e9e90b9c2bbe2d8b96a1565cd1163966f5337e4a", "sha3_256_hash_of_public_key": "66f161d27dc34e1a2f4b98b14a2b221d7eae26a593bfe432487d9994cb480656", - "sha3_256_hash_of_secret_key": "2237f6cbb452d375878b82c474a7c948ff587a5f3ed02bbba1459fa7ff8ef802", - "encapsulation_seed": "e9602b34fe73ad57f4bf6ead99743d645641553a5b9b9bf2e7016629e3e9bd76", - "sha3_256_hash_of_ciphertext": "a4d6fafba699c00c8fc8e453ef1eaf47a7432e9c7f413468e126b24b458d6450", - "shared_secret": "fa4c0c7c5bbb803acd4ae91e49cb8cc659a94490e8b786cabfd9b92e949fbb0b" + "sha3_256_hash_of_secret_key": "405f354fecb3e69ef24e24814f04e29a0e2a76baa8cd56d56a6d09ca8087c81c", + "encapsulation_seed": "37a2bfa95682bf678cbefc25bc48bf62fa950bbb7c0e7051cee508f9540fdbec", + "sha3_256_hash_of_ciphertext": "eae7dfcd6179c896c37378af211bc81380b82b2f645dabd16540539f86508db9", + "shared_secret": "6a54f3597e7c60bcf0fd8b7b34cb4c9350ded0aa726cb2071830c70a2de8d428" }, { - "key_generation_seed": "dbf1c465fff3d9f783bd9ee61a573715e45691147b8904439b5ffaa64f94ff7bb6d75eac6c76ced1b0a025b40a55440712ad8424672e761e9bc400d63812006f", + "key_generation_seed": "dbf1c465fff3d9f783bd9ee61a573715e45691147b8904439b5ffaa64f94ff7b5c2478cdc8d59ab164856623d53b9e60cf0aa8214cb64e674140bfd6de9fdfaf", "sha3_256_hash_of_public_key": "7537e68ccf14e8b7e57090d8f648529dc461ca3950288879e88116acaf57b4a2", - "sha3_256_hash_of_secret_key": "bd8e44337eef01251217c4702c99232c001b33870953473d83a7486fd25484cf", - "encapsulation_seed": "f72b9080a6c051bbdb9b0abc1949034be0f89a9f73fe277ec4d4740c78d04a83", - "sha3_256_hash_of_ciphertext": "013f4b782480c4647feafa3bbfc91e84fb391e0545168d17a0a7845e5ad3f0bf", - "shared_secret": "b7a8e7b3c6d244b6b0dcc45947dc91f795ed21a5b5ad545205cd5b210df37325" + "sha3_256_hash_of_secret_key": "68c14693fcbcd623627abb74cc3c2661678b9f4ed7c64d5207c86e9602696aa6", + "encapsulation_seed": "fc69423340cca2e8e96b963188545fdb2b9287959ecb7eb108f8d04204bc87ca", + "sha3_256_hash_of_ciphertext": "274d1cb207754f18b7fbe608756a8ef6164d78224109d68ac6e39e77cf59d8cf", + "shared_secret": "cd0e055432e110bcba3c34af1c0be0cb266ff70e52010d30fba733701cdeb18f" }, { - "key_generation_seed": "1f7cfd2b70863154e8a69d1758532e86c20cfc763d67c758bd10a13b24e759b5273b38bddc18488024ec90e62a4110129a42a16d2a93c45439888e76008604c6", + "key_generation_seed": "1f7cfd2b70863154e8a69d1758532e86c20cfc763d67c758bd10a13b24e759b588e66590b5b102b223291cc78119bb94e799e37b95b7bef0337e6a572284b9fb", "sha3_256_hash_of_public_key": "82f68b15681cca5c2852c18d6e88bcb102a059c1d21936582adb71790cc0a335", - "sha3_256_hash_of_secret_key": "fd483ddc211c5c27f453bca56158e1f8084f075a7b06f5098cc3204427bf8197", - "encapsulation_seed": "f1e5542190db8ecf4b8d617a04fd3783ad0df78bf8dab749afb57db8321d151b", - "sha3_256_hash_of_ciphertext": "3c150f0cf10ad27bca07c75961d5dee46dc8db458fa6b79ddb3de58e50433017", - "shared_secret": "70cf00481198a97f14e0870c268ca55b6ef787d130a4c32314eb7c0a531cd188" + "sha3_256_hash_of_secret_key": "a141eb70e92c5445a4f1b6fadb0c94d83aaf564399905fe8b78aca21766f9445", + "encapsulation_seed": "01e6b1b765e4c42464f6a35d1df3d2c673d752683850fa4d147d4e0629b88b10", + "sha3_256_hash_of_ciphertext": "93f51fbf16cbced766b5caca18872b897b7abdec2b37f7bbb9c29316ff283e5b", + "shared_secret": "11289a8c4d0acb00567e38127f448bc5ceba08d0a5d7530d6ed38a60a2d255a4" }, { - "key_generation_seed": "3a19577908efd37697b8edc7fdaf47d1bd3ad01a1b77faf794bee5b9c3192a6fa3729672816f3eba84c9638a79676eeac0f22c8a48e0c5d50a26ff0844c66b99", + "key_generation_seed": "3a19577908efd37697b8edc7fdaf47d1bd3ad01a1b77faf794bee5b9c3192a6f08a2455063246eb5761e908816e48990d670308b0d34d7823a325d49a1a4dc0d", "sha3_256_hash_of_public_key": "104fbf09445794c0ea0654f5caf70ee09d51c8386d4e1f467b10633c710ac2a4", - "sha3_256_hash_of_secret_key": "73fb93953ae666a9df1bf933ba56b8655ea9e319c0110c78d49f8480ae1aa3fd", - "encapsulation_seed": "74efa414ae171bf60b6f884cb7e5ce12028f49365daccfa23e845d551711660b", - "sha3_256_hash_of_ciphertext": "24cbafde848a7049b17fa7b911a925de796344a95eb13e0c4bcbf239c28ca964", - "shared_secret": "2e8ff9c053137ca6b6c31ce8ba7f14135a7e102c211e68eb99de12b94273f9e2" + "sha3_256_hash_of_secret_key": "99db76f57f801fd17124f3a003127e0840e308a528629c0d5833ef8e97a3d57a", + "encapsulation_seed": "d7a9ee0513802fdfc6995a975c992350a5277ee79f1837e66959d1d0016eee34", + "sha3_256_hash_of_ciphertext": "75016b3b8f19a309fd1c7277236aa792eb004cb45e7444aaa76c36d8ef19afb9", + "shared_secret": "e9616b25a3261edccadbfbe4b797302c1101431e02cd2e47ffb4968086644749" }, { - "key_generation_seed": "ae0f65e29f38804a6759f70f4d01e2aaff7fe1c91ebc4f892dd0de3ab2e68ea5e03ff73e02a217659f53d8c47556bf3d8c94040f630d63605e2d0f923579370c", + "key_generation_seed": "ae0f65e29f38804a6759f70f4d01e2aaff7fe1c91ebc4f892dd0de3ab2e68ea5dad700cfd0bfc439237a0cdb3f7d6c76699aad545d0acd755f14f7cb3b30096c", "sha3_256_hash_of_public_key": "0f353d6a29813d354471eb8b4c38df93939eb3b1db80ddd1cdd6558a9f2687a3", - "sha3_256_hash_of_secret_key": "8a9edd6278707108652f3a5bc244592cb7a82c24634583ed2d3eb6a176b216b8", - "encapsulation_seed": "0b4c3cffb2ba4380ead13dc0d8acad2356b448a810da1df29f264c44aab6d24f", - "sha3_256_hash_of_ciphertext": "5137ec9d55a3187cdcd24ba553853cb6182fbd07d39d288cbde158788c23270c", - "shared_secret": "ffe9448fe824ec92022890969f1fa8e2fa87e5b3e95a9a155839177cd3c8e359" + "sha3_256_hash_of_secret_key": "555048607f1095e29cf4b72211cbf823c83758502ad138d55d82c23a5a816989", + "encapsulation_seed": "2bee79d35d1bd40005203028b58b095ddff33a4806a2ba264f76b6b06af6449c", + "sha3_256_hash_of_ciphertext": "bdea783378ca90299faa7ea3a6c48cd33b1bc2094d341a0729d1bfd50af971c1", + "shared_secret": "586a425a78d2dc217638d3088949f1a526f611784a01e415bcd29a41d695eaa6" }, { - "key_generation_seed": "6084a235f79dd093ef6d185b54e69df33dacee73a9bf2f379004421a10e3a79d9f684fb055ece19459eb464e91e126a7a6e3ed11ccee0046da234d964c985110", + "key_generation_seed": "6084a235f79dd093ef6d185b54e69df33dacee73a9bf2f379004421a10e3a79d2a96a70166e26d17a7319e8a5e12e38ca01a98d8a5813049a5bdd355a7d71347", "sha3_256_hash_of_public_key": "12e89c47142418c26396ef0174c02f69dc00022d56494d31af935490edee6385", - "sha3_256_hash_of_secret_key": "bc13b19f01d4cab36dac2154e0fd8fb7d2fa012596363942847f1b0bb3715f90", - "encapsulation_seed": "1c82471dcdfca3a6942061ab4f3d5bf0d197321437c706d9cccccce449447002", - "sha3_256_hash_of_ciphertext": "855b06dfc24eb530c82c7a70f12b04748027d7fa29de97d7d3b73247b16dfccc", - "shared_secret": "e3f110e7d74400cb476b0e34141a107d874986a3732ecc103d9bdfe76bd492f1" + "sha3_256_hash_of_secret_key": "d91f5f587c523f4ec8fcd33370bed63b93b75d2765d3a364fba14c6cd678ce2c", + "encapsulation_seed": "a8fdb315f75aa1e656cad005010b032bce1dcdd7cff8c938a5314ed240f480ea", + "sha3_256_hash_of_ciphertext": "f8c61405df0fde4d40db0bcbddc4365b3de53437ddfbb54de7a5138197d22350", + "shared_secret": "542c773f515d31af4e937259725a9eb45b14251be68f0685261efeab78900a72" }, { - "key_generation_seed": "acd1c0217fad5caa4235544dd9de153ab1880ccf4c76f16f236fae4e4bfda04cf03a8abb0a5010f400ae5722a75bdf5a2f6d5b546b34d73857cb1bfc7e587aa7", + "key_generation_seed": "acd1c0217fad5caa4235544dd9de153ab1880ccf4c76f16f236fae4e4bfda04ccd2dd7a1be89575be8c14529bde4d832cc005dea955065c08b3185b215da3a2d", "sha3_256_hash_of_public_key": "2fac52ca60594e514333ead02cb1bfa5cd1d9ecda4a0b25ccdfc47ad3f632a85", - "sha3_256_hash_of_secret_key": "2743b7a9dd83a6b9bb5c2685f28b5629b2e31132ac64788a0929557d3449dfc0", - "encapsulation_seed": "46fe60a18124125ab93e0c578f1c02f1bd1301595013001c7f3c2fa56cde294e", - "sha3_256_hash_of_ciphertext": "d9997372e3853eb89c704d0673a526c464b1f46c27d33a445df1f6ae5a90511c", - "shared_secret": "e26737292d1a1fc6772d9c14f9d74f0f4e830c0ba04253aeea21e69830a3a360" + "sha3_256_hash_of_secret_key": "1a8524eb5b988dfa14b6b44ea33df646d28f6f9c8c1584ccfc5d45221e9ad927", + "encapsulation_seed": "794b565fe52db74e9c19e9364ee545d7cda5a67f3850d318c3812691356e5520", + "sha3_256_hash_of_ciphertext": "f8f29165a717acc4989b68acc94759ba68e6d2d0790e20d9792a1d87c2e4562c", + "shared_secret": "32b13a9ee75c0a5ea2db0b9bb0d21f169508bcb2de4da85b7f887d34ec63f1af" }, { - "key_generation_seed": "241191401a63afa750f05662e354dddbc683c776ce3222beb83e3cf913d7ed7ca59b3bd23b49a95bc1fad20070fec930b6060bd827d742b077092e422268e15d", + "key_generation_seed": "241191401a63afa750f05662e354dddbc683c776ce3222beb83e3cf913d7ed7c9508257a83ccffbd0677795070695cd40d7b7f39a891d25e7e208bb9d65af538", "sha3_256_hash_of_public_key": "3eb856043b822df9d60b55fccb537afa3cacca9ef50433bde1dd9831e534d192", - "sha3_256_hash_of_secret_key": "398ae3423ba5c6bb05920e83e8939a104c3e4ad91647edc7db1667efe438cbfa", - "encapsulation_seed": "52fb7cb6a633fd2e83f2892bd9441b48fe59ecee6d026f5246fa7f2a5e55ee3b", - "sha3_256_hash_of_ciphertext": "dd3e23a09b448da3e15af8cccef9eec6de397b91e34e07b23171a3a93535709c", - "shared_secret": "1d8db19740e2f6ba7c8c04216cf2398fe9221b2404addfef8996a03ec72ead37" + "sha3_256_hash_of_secret_key": "8a820bcf253a70eaac0b29aa7ef0ba428137d5a83c1fd633cfd9bdd2bacd8b81", + "encapsulation_seed": "848db3a6d5cc33f17d978a283b8267e45510cf6c6354edd5e2476821e12be3e5", + "sha3_256_hash_of_ciphertext": "2caf75663c41966a949949dd03bdfe6228b27551f632fdaac671ac124f4c67b5", + "shared_secret": "8053c5b5f8ef3a9e42f0a459772b75e915a3e9d209d54386626a7377ca15e63c" }, { - "key_generation_seed": "b9a6b0c05677e957d41a34ba03bd06f2a9092e31f63389397d7e70fde6409d18e99c0e7b82be89bc3c1eaee6680aa4efd394e40c2b3f30523c8117f7c26a8969", + "key_generation_seed": "b9a6b0c05677e957d41a34ba03bd06f2a9092e31f63389397d7e70fde6409d1824d67704139cb68edb8f14c5ecffce83828208edf58c0f494fe3ca22cfdf58ae", "sha3_256_hash_of_public_key": "306aed2a804a1c9bad4ab9e59f6126ad7c8633cdd0c2dd9d4c6f639d312ed47b", - "sha3_256_hash_of_secret_key": "88b28cf6fe19424ff82fc2bb096423b71f0cb8cf985af31bc15ceb4ed18a5e62", - "encapsulation_seed": "0f81a5f97082121244403da3feeb734f6084b314b8d94beb11627aa6ad1914e9", - "sha3_256_hash_of_ciphertext": "2183395e1b660eae184599967416ea85e0ccbbc7e993b384063f1e91086b27cc", - "shared_secret": "cb0026c186440c0744c1c1c708d8fbf2b7aa1126792a7363576bcb2e64384117" + "sha3_256_hash_of_secret_key": "b3d5cdf2e40bb5cfa5017b96428b3d27cbd3c375d56cf20efd9f89eeae88110b", + "encapsulation_seed": "c1c78caec83245fcbe98a15314940686fa06e675e68c24e069509cf1974aee78", + "sha3_256_hash_of_ciphertext": "205000e7b1b7126fa232012aa426c8d32b23f0594d5a7af6b34a68a3cc62c916", + "shared_secret": "8bbf8a535392c99bad81c98aba0d84400724a3c46a8523a482e5a00665cf0e88" }, { - "key_generation_seed": "28a96c71577ba00c94f99fe965bc595a26db2b3ca6ab5cf8e443cdd8462b17929c35d165453e5fcdc6f9df64526d9de698f2bd3e6bac6c7fdd86601b9ba5f4a5", + "key_generation_seed": "28a96c71577ba00c94f99fe965bc595a26db2b3ca6ab5cf8e443cdd8462b1792ce71ac90659ff2dd31b35c165d3929cfa5e94407a5a798c568e6098f631923ef", "sha3_256_hash_of_public_key": "9bb3963cc1c5cf2b2d1c6ca76226328ab765a79999ccc71fe98d5bf3b34f51b1", - "sha3_256_hash_of_secret_key": "d8c2492023fb1175a84c19b3ce20f03dd12b1c26b65176d5582c319124bc0e24", - "encapsulation_seed": "31af9345365549ea0360169ed57daf98cc5444799d4c75d9f1f5d615e9df8a91", - "sha3_256_hash_of_ciphertext": "7f8fc45748528ca80816473c46b88d268bd8c31d556cf211ef41e362e63dffd1", - "shared_secret": "f855334cde90e9e858863dbaed7bf4c45bf189861750eaa59355a3648b1ca1cb" + "sha3_256_hash_of_secret_key": "d7b64c87846cf69409c8aefee10233342c2a4ae0f0b4cd4a777a8dfc10849d7a", + "encapsulation_seed": "59bd98530c55222a8294517068b7fd7e3210fcc2bdf400f4e584bc209afa44d8", + "sha3_256_hash_of_ciphertext": "cbec0ac11d151c7047ba30775a2b0b8bcfe23d102b98543eca07fa17b21b9845", + "shared_secret": "86e93fdae44a1a43345283dac1e7c893eebaa43f60952b90e5c96788130b104e" }, { - "key_generation_seed": "c08ba2ef8c3a0a043afad931652d7a19e6e8cb670f840de5f1fa03309b2ca9ec5fe6141a25f7ab9f875f79e0a82d6ea5cde5a017ab637d5fdb7c42646a1d71df", + "key_generation_seed": "c08ba2ef8c3a0a043afad931652d7a19e6e8cb670f840de5f1fa03309b2ca9ec4248ff45452bce5777b08108e059234029d3309cbc2bcaad8ebb37dcf27832f2", "sha3_256_hash_of_public_key": "6d029bb2121c788b5b6ead7226df664490dae362c4befb615717d81c656b3273", - "sha3_256_hash_of_secret_key": "0f2c7bd16d9289c3c27136df0cb6ebc624e80144cb92e6f0c897f58a53617ac3", - "encapsulation_seed": "774ae54093d694ef40b63b62c73e6c98295f606feb8699807eda1d030ffb996d", - "sha3_256_hash_of_ciphertext": "fdfbcedd46fbe70f8892f641c4e84f9b48d1c33ddba29e126d4236df17448ddb", - "shared_secret": "3030433313514ea95b5d6a2fdfb64d4225fc84eb70336323507aed63c5755481" + "sha3_256_hash_of_secret_key": "15acf6df5be4bcf0783c9ee8ff62a7f021d04817b59ffbb2aee1949f18d98632", + "encapsulation_seed": "c11e2fcd6cc56977006f5dfa825271c6fd49069a747eb36c1765f5d5a22b38b3", + "sha3_256_hash_of_ciphertext": "582ad49a698df637876f76bcf19f589e9655c9027059651b7a9fc805d077ecae", + "shared_secret": "c4880aea127420aeb4a96da81cd6b2562063db9c0d585f874df097ddaeba5b17" }, { - "key_generation_seed": "0e3b30e102d707538c2671060f603bb0b8a014103f132d63b09ece07e4a4c75b11eafeca9e810796c34e8cfce9d59342884456007b01ddd12edce6d10ed87e4c", + "key_generation_seed": "0e3b30e102d707538c2671060f603bb0b8a014103f132d63b09ece07e4a4c75b7b129a56b51be635054cab9e84f2def59a3f8168e301ea2be388c45b8cb022ec", "sha3_256_hash_of_public_key": "64c819d9bf66855f6ae70627f04da8378547e5867e2eb9759fe0971efd601c4a", - "sha3_256_hash_of_secret_key": "e85b62236d5c6c691a9076dc58bd5da80999eccc8df973c7d0e7e65d8465ea7d", - "encapsulation_seed": "9f27a47604ab5146caaf0aafe6d149424f8d66e39ba3baf5e6c73b19221b7e21", - "sha3_256_hash_of_ciphertext": "a38d236d52672c9bfb9533ad1e106544b0e52436ff622a633a1439bcf06fcf6c", - "shared_secret": "b8b9f3af55e8c616d07c7042ccc26bb4b83d20fd502ba5cc7b72310990ec50ec" + "sha3_256_hash_of_secret_key": "cfd0e15465075c423793796d369bcbb779c311aa5a1f9a4f61e6352cd622b0ab", + "encapsulation_seed": "5d5b9bc8e9d09b6d5f96d13a5b7a8d8f491c15e7ab912a17ce8141299fb6ca44", + "sha3_256_hash_of_ciphertext": "3e02519f7893baaa9ac5118173f8033ff07c456c6dd42ecfcb87d19153d25bdc", + "shared_secret": "67f2e28da0e65230d0cede679ca0da4d8e970c8532ce81dd3bcd9f3743218bbc" }, { - "key_generation_seed": "2478f7d3de6041e7e5cd11c5e2ef483d1aa6218eb126444091535f6ae532fa7311136e2681df2ef881b51a092a9badbe72c9772c169808521c47149578621e28", + "key_generation_seed": "2478f7d3de6041e7e5cd11c5e2ef483d1aa6218eb126444091535f6ae532fa73f0c083ae8cff7a4bd779d4385e111ed4583fe00d30e651f171d7e8a90eec0db5", "sha3_256_hash_of_public_key": "db315cafbaec2f8a0142f45affff65289e826c9244ab1cb03f9f65df3e3cbcf7", - "sha3_256_hash_of_secret_key": "be98d62e4724c0d960ad4839298d4571f9871033b63bdf10d3b0e589db376ffa", - "encapsulation_seed": "90044031b7597b5e60a4f946b713e8996d0426d2cb013243d9b7d8f8ef159a0f", - "sha3_256_hash_of_ciphertext": "4b32c8d47f6ea3114114f8569dedc246e5b7ce78944273848f24eb8a5e2a3b7c", - "shared_secret": "2e4139c499a24caa334754e10c6bbddc7a0830499ca65e941af8d87ee022d483" + "sha3_256_hash_of_secret_key": "7c4e256edf13f045685bc27e4b4878d744396ad70b867745a3759d51e1ade902", + "encapsulation_seed": "075246aeb644ca0c05b7d6e50083363d4f89291711d8412f0131cb1bdd2c70f2", + "sha3_256_hash_of_ciphertext": "acf517b7b88fa57be6ac4725972edb2b0da0e71621259a4787e860c91962c6ed", + "shared_secret": "1fd88ac828c344a627cf29883bd07a328d1d7cce9c821c7c14704abf998776e7" }, { - "key_generation_seed": "9d405d3ebdaf35fa8722de431b669722acaaea2fd10b814310b17f78b66147d16ceb14f7662be0c42779459f69a145c0e2ce9f0bd9a0cd1bf32ed5694cc9ae32", + "key_generation_seed": "9d405d3ebdaf35fa8722de431b669722acaaea2fd10b814310b17f78b66147d1b46f84f01fefc519e118affc4a7a1560f1f8add6de72615229b997b2cad6393c", "sha3_256_hash_of_public_key": "c8d853e65b5b118e28b7cb6f0d5d6f282e0ea20fd72f3690a6b232b20a8a55ec", - "sha3_256_hash_of_secret_key": "7a5e854bad628be7b99f524f52a97b0959c0ee67a7a10ad24b970e6e3aeeeb80", - "encapsulation_seed": "a7a31e140891ea37d2b6424b59b1f84f89220f32dcb73e037eb912b389d34a48", - "sha3_256_hash_of_ciphertext": "24cf6d09fadeca5a23052d0239f954714bcbc47973086d778a5d2f3c47964e82", - "shared_secret": "e412f3aac1c0284d999d5a7f8344b4053d10965fcbe1638f7ef666ef29c521d2" + "sha3_256_hash_of_secret_key": "924992e55c95df00d2b7a947b7dacb9541dc962623fb268bc96f9c23d12dadfd", + "encapsulation_seed": "de5840c7a3b6585c81cef65c8256be98fde71f70f5f5f17ef8008e64849cb02b", + "sha3_256_hash_of_ciphertext": "07970cef76b0e3e4ed3f1b0d94bd4f39509c8e3f7b90fc43913399d7d286883c", + "shared_secret": "827c23d58e079cedaa9ca13591550bd2a9121140b6d4ae662287066b6e443d1e" }, { - "key_generation_seed": "9a86490f0615f3edf789cb0654066e9ee339cc59f968281f3b89213f83c692edfaeb2ef44d2f608621e831187ce79b2d2f4a20f1568bbe76b0d3d5af36111714", + "key_generation_seed": "9a86490f0615f3edf789cb0654066e9ee339cc59f968281f3b89213f83c692ed1056461570b29e27126962068b2d07eb33db448a2938785e6fb3e02675a6ec67", "sha3_256_hash_of_public_key": "f69bd52cb1d071f1cc7720f949d44f66f40c917eb30f3a4b0eb519ecad2d03dc", - "sha3_256_hash_of_secret_key": "b6ef04e6acbcd1bb072d1cd28412cdb00ee40d04ce5b39442a2efd6756292167", - "encapsulation_seed": "70eb3f791faa91f1f982fa477dbcddeb2c55691c07f93b04cd31b37544c94b42", - "sha3_256_hash_of_ciphertext": "0044243b64d889050a71bbc15d8d7e619f443d0d6c3b28bf05f7811873434749", - "shared_secret": "4f9de6e4cbd9948d2de9250654d5db97ffe24cf222f68ba51d6261f02f4dc5e7" + "sha3_256_hash_of_secret_key": "57c6ed5adbaad61854b21c990bb961d192e515491225715abaa2a0d1924b3fb2", + "encapsulation_seed": "d45fb8527103ed4a9a88e77edd89261b4e0d74b9b3a3f81016f534edb12f3d36", + "sha3_256_hash_of_ciphertext": "264e7c327f8a70ab560ff6fba230c71b94c09a7df81a6f8a9b6dd0476304d1fc", + "shared_secret": "6e20e8d7d899ec62839d375e81d7fbd6e6255dde5820e9dc63978c6442520716" }, { - "key_generation_seed": "6dfd9b575872560c7bdc2732c4a28dac4db04e535eb8e402c3dffd145c09ce47a2985c1c4d203778597947d710dec806e36b0cd949fe460ef141213bfc525e5b", + "key_generation_seed": "6dfd9b575872560c7bdc2732c4a28dac4db04e535eb8e402c3dffd145c09ce472dc85fef74a61da258edff86f377ff16f321689e7ba5052364d2448a333c7961", "sha3_256_hash_of_public_key": "10e01965f9c196d2f5f90ce3ce8f552f8a0d76ba8f5345365392febc50560012", - "sha3_256_hash_of_secret_key": "2b5c6d5fe9b09ab5a027522e699401223ae9d304ac912f1b15f0f647dd9a0a7f", - "encapsulation_seed": "30f4095015ba88b6d969672ca3f438c395dacf7d476ea7a9e805ce932d270a13", - "sha3_256_hash_of_ciphertext": "1464bf8d08a52ae4b5b5ce35eacdbccbc845350d2586d17d1ca3ded460b36e98", - "shared_secret": "da6373247f33971b39d955418425ef1d1a233fae7fb1985c0126f541ab8d58d7" + "sha3_256_hash_of_secret_key": "cef62b5395ae47c8ab39e228acb8317db6875db5f72d72bd758f4b12f0042110", + "encapsulation_seed": "147c065d7cf409a115a8df448134e1081e296f120729ca37b4185b73e2685931", + "sha3_256_hash_of_ciphertext": "db085c4108c275db336bc7141e86e7f3ae7e687ac744ea844205b12a56e0d7b1", + "shared_secret": "5a1b31e2936d1cb11179d456608333801904253a3b6a53121350c61fb5d86ea8" }, { - "key_generation_seed": "6fca9f4e384d8418075cc064c70730801bdb8249899d456a77130d5beeb3662cce7683f8a03d3cf04e46970ff7d6a12494ae12558346dfc8fd9370bf944a0102", + "key_generation_seed": "6fca9f4e384d8418075cc064c70730801bdb8249899d456a77130d5beeb3662cf4626afbae65ea913cdb263c9615a5f66061ccc74b1ac83b5fbab8fa1eb6799b", "sha3_256_hash_of_public_key": "7c3991fa7983d0dd6e7157cfb152538466e9d5c3998a2b8ed862162b91ca851c", - "sha3_256_hash_of_secret_key": "72e786018ae9ab8293fa51cb7ca3ff0435e7cccbd5ae02b4680b92c148590265", - "encapsulation_seed": "cf31220f44de862e1719570e1b26e897790159366a385452334fe24cdcae28ba", - "sha3_256_hash_of_ciphertext": "feb0875261b62b026e02265b31a433c75a4330a8af26d3e5f4a8fc2e6bd3a482", - "shared_secret": "037452d74a46b60f415dad3498adbac608dcabe4edc7070a358e7325c72ce76f" + "sha3_256_hash_of_secret_key": "226ed8f742397bedcd71dcaf9cf451ecaad1cda53588cddf473aa535aa67032b", + "encapsulation_seed": "90ce0644a11e7225da1f86e1d34d506fce42b809d968d23ff0c6ae57ac5ef075", + "sha3_256_hash_of_ciphertext": "b75f69b3c68b3ee133e2a9c8e0dbbbcd3e65868324289328a5322f18a00d331b", + "shared_secret": "6e98522c0f419ec8b1f2254ddf9805d7e7ea147e2ff1cd5219f55e01f91a939c" }, { - "key_generation_seed": "e58f71bf175c0550a67e00e0f7b3b7fc36bc2707bf0c93044a492626de36301a7f7054814869cf7625e45647bc1547aff288dbb90699b2ad84893f3b755d9722", + "key_generation_seed": "e58f71bf175c0550a67e00e0f7b3b7fc36bc2707bf0c93044a492626de36301ad79909f31e8168ac129feed8efeb21f07c02f282cb90f63ef10eb2f4a9acb886", "sha3_256_hash_of_public_key": "8aacd8940ff6fc27f175342be74d48075f8ae9320cae20a41c879c27c1bf815d", - "sha3_256_hash_of_secret_key": "f7399dbf35fcc57a9bff87b0087755faa75267788cd0921b9ebc5cde8b656271", - "encapsulation_seed": "bb5e65669a44e5d5c709bafa98c16ccba6ac2c4ae923334f69a11543eda64f5d", - "sha3_256_hash_of_ciphertext": "8009fb9c48aef553011af0576568351db3776b01def04198874e1155059c3006", - "shared_secret": "2cfcf5fa2b4c0aaa85c6069616e19e6715fec913592d6b8f57eba9cb4e3b162a" + "sha3_256_hash_of_secret_key": "fc4c22e1d27454dde2d850743b00569cad241c1849b3871cd181e76ece785aba", + "encapsulation_seed": "8bc7f573082482206adac45f410a9a3ebeb4a8538999b681072c26731023fcff", + "sha3_256_hash_of_ciphertext": "dafea6959497e440ee3c704a4040c4815db8e693e57afdac31093dbd0f938a13", + "shared_secret": "5f40486d6cd463359464296cd0fab7200e6fa2c896a7ad78108ab279a8115476" }, { - "key_generation_seed": "e3fc575ed51513e62aba655d24cd9c8f1c6c848aaffa946c49a53ac3ea59e474d82c2f1bf2e6aebde5660fa73356982e12999d8fdafbb3cb186341d0386dead0", + "key_generation_seed": "e3fc575ed51513e62aba655d24cd9c8f1c6c848aaffa946c49a53ac3ea59e474648e3fae1aea06e15778f3442223574e9c7823f36cd16c72618846331f95e91c", "sha3_256_hash_of_public_key": "149e0b6b49fe8adba1217c2c57c83f2b8c5f1d92f319e502b184a65869214f75", - "sha3_256_hash_of_secret_key": "6dfa4d29af6a0e8413d5591339c15d2e2cfac3f502f49acca3efb53b53624666", - "encapsulation_seed": "9ddb3aa9c7905d1a438c93bcf78e3e321813580371ab4e1289e2dbf3701972c2", - "sha3_256_hash_of_ciphertext": "0d379514e14f3cc9d1ce5804db6f58868654a604177058d3f6431ff1f2be431c", - "shared_secret": "d3551ed0fd716e4887c82a6f24c5008ba80a9b5c3fc9e50f188eb224be8102c8" + "sha3_256_hash_of_secret_key": "08263e220cd8685e33e417a00ab0b00423f6ff24b79e667d12114b74d69ed35b", + "encapsulation_seed": "6e357dd587894d497886bb4c678cf1ed347d1d85bc1540d31563106341718e16", + "sha3_256_hash_of_ciphertext": "f4d9eceb8de671df78b5539a61af787acf2afe58e62549350298b125864eb21e", + "shared_secret": "d8b6312262738999b5c37ee0249a08736d84fd75a5a085e491f64f7ca14c3e29" }, { - "key_generation_seed": "470b4943f0fe7fd0d8ec5185aba0d1db09d112934e4fb4787e2bbc6b88466e7b8b2809fd40008be70a6b184981101724bc3d5ec5e1956b510b82fd5ad0668a5a", + "key_generation_seed": "470b4943f0fe7fd0d8ec5185aba0d1db09d112934e4fb4787e2bbc6b88466e7bbb02d701fd1350aab462cb65dac4b2f75928d378dfd7a0360dff9185175538fe", "sha3_256_hash_of_public_key": "29b1bff7f12eda28dfedfbf0ac16e27008c9fdc62c35e53b28a312bdc91c40bf", - "sha3_256_hash_of_secret_key": "762a61eb847c017ece920f51d5da7a9036ed8b835bfd7793527321ec635e2fd0", - "encapsulation_seed": "26d90b190a6c3d0d9a86cf66005154e7086749e966e7187c249ccb9329fd3b8b", - "sha3_256_hash_of_ciphertext": "a9d77d81f4a1db5985bcd6fde4b68c8f65470f2a48ecf99d6e11b6a31ae8d26d", - "shared_secret": "03139cf9f20fb6bdaa4ee906aeee834815fa924e05ed7e7e3bfb432aad944d6f" + "sha3_256_hash_of_secret_key": "0385a6c55b7c13537e4db21177befd4a17e536261bc2e8c2510ee09bcf719444", + "encapsulation_seed": "0c7068e5864fae7d1abda0d0a5c1e62fe5e1cfc2c96d82ed6ef180815dfacc66", + "sha3_256_hash_of_ciphertext": "0674204e247b4a884eb1a5bd6960f6551cd0f19d05fe3f684d8103c07e0ebf00", + "shared_secret": "86d1e1f87406302c1d044f5c319b2dda1d3e0ec5cd071a42122efb684839665e" }, { - "key_generation_seed": "6df4385db978d27b27d2aa5e452e4152b36f097503d9581ac3390105c5727e7dc95fa08ed106ce84660e8a4c90bd2b22634e40769aa0090a101c5dddad45edc5", + "key_generation_seed": "6df4385db978d27b27d2aa5e452e4152b36f097503d9581ac3390105c5727e7d165fd0a50a39142f7c6faa2bfd417adfa4224858281696965772f448c7ae22d4", "sha3_256_hash_of_public_key": "b990059e901097d00e0ebaf40c5d5dab009c66798489d357e760478ce884cce5", - "sha3_256_hash_of_secret_key": "37a044795bd330e4dc60a6d84bc6e99664d1be418b0239661d2ff16d1501573f", - "encapsulation_seed": "7db6d1a129d6123f1f805b79ad3b413012ea86aed42a05e98e7b1f32f9fbbdec", - "sha3_256_hash_of_ciphertext": "20f09e737440c30b8119448c19c43127a52070265752f2f859f110d136daf470", - "shared_secret": "f87cffe1a96bcded4fe027dc8006065d67d0190b87d805135bdafcb5edb9803c" + "sha3_256_hash_of_secret_key": "ae7200d639e8294916e7016af5aeba892db7cb62035680080582002de19864ba", + "encapsulation_seed": "5486a0032681ff89526326cc4bc085b8023614dd1621850619c6082483d84c0d", + "sha3_256_hash_of_ciphertext": "dc5cee44dd5faab6db63653d3f8d66d4ab349bc77179770e4c9428fe30e8f1b0", + "shared_secret": "9b892665a45abdea0fb08c9f1dac9ef5b9e49ec9e7c9923340cf344c2c1cb112" }, { - "key_generation_seed": "dbacba825728444921b227cdba54446b3f6881b47be9cd02832f78b023b1bee0e15274a8e2bc08fe818b117ba28c5dfae74d54fcdf6f20052f79be333edc8dde", + "key_generation_seed": "dbacba825728444921b227cdba54446b3f6881b47be9cd02832f78b023b1bee0171ebb1a64c173b3d4d997c12f734d2d57fa2127052887dcc6461fcc23b66fec", "sha3_256_hash_of_public_key": "175eb63c3144108548720ce7ee0f43a9ff3f52a9924efe9f2f59318bb93c86b5", - "sha3_256_hash_of_secret_key": "1993d7639b79f5e4871a7c58a69fec50f96c1424c2c0ee030ac054ae1b88a56f", - "encapsulation_seed": "1d129b27be7384c359d04311fe5c44917d1fde4bfb57314f483ac617edd5ac49", - "sha3_256_hash_of_ciphertext": "1288de12d00d76095c0072f3f0a0058227e99e9909fba65b58b361f85a76c98a", - "shared_secret": "d2d4a23dec18fd2c413d0c64d58c1d14e19d2a18aef1cb038d14c3c2e79f6a69" + "sha3_256_hash_of_secret_key": "ba8092eda4ade726a2033899d8f2161a3b703418edb1fa8f4909270c6330c67b", + "encapsulation_seed": "87d356bedd39170c21194287fd3095c451b1e877de2fc9e51b58294672311a75", + "sha3_256_hash_of_ciphertext": "e35136839d96bfdd8a35ce74cb2651c99371110e1b11d425261d4c5febe12e66", + "shared_secret": "bbbfb22f6eef49a100e6e7dcc6ad61a2972d570739ddfccaafc2db90e1cb92f6" }, { - "key_generation_seed": "690eb71fd7052b906eaec09937a8ed374e0b02afa27c2f14399932be5839fad281c38c2cb5cfafac81b96a810ab749b61806b6d54c9f8cf4bf1be0192423288f", + "key_generation_seed": "690eb71fd7052b906eaec09937a8ed374e0b02afa27c2f14399932be5839fad20b472c6da19b790e6c9591ee625b42ca0fc04fd9f69d72ce4efdb3b9ed8d9c29", "sha3_256_hash_of_public_key": "9bc32a138a2fb5b6072464172abe0fd97e9eabf357c3fa5391d94a415b53abd3", - "sha3_256_hash_of_secret_key": "3db4ab1393cfc8b1c708cf8efdb1c443c975878898b60182c22af66375cba13a", - "encapsulation_seed": "bbc773ebd2df42c36ae05952d6a64c63a5dfb82ceb3ef4f8d4df3a30ec8c0467", - "sha3_256_hash_of_ciphertext": "6f991f90c37724ccf1ea02f0c90b618cd97c1ede4221d4bc369f78d03da4c560", - "shared_secret": "52e36f81dd9a23fb9bb2363c31b715106d38520a31a3304cf754a9432e757224" + "sha3_256_hash_of_secret_key": "f66b605a342d67a3b9462a365e50c560340197740de9d67b7f86f05bba027677", + "encapsulation_seed": "a172a053269af9bf0c132baeba3bcab0c3222520eb90a6f7ba15f507273c828f", + "sha3_256_hash_of_ciphertext": "8012f193abee899cd20a8e35f602000ce7507c4d950a9879ca75d0c77f652586", + "shared_secret": "894a4d596e75b5300b45feabd3fe8d3ef943743023446bdb2f44d10137847367" }, { - "key_generation_seed": "32e0ea9089fa928482c0770da545af1bb871a03ce38604138b0d08ea2a10ca2bc06c5bef7b6508409daf847a64c8d30d0974fd3ba7476dc76c46b458a036d884", + "key_generation_seed": "32e0ea9089fa928482c0770da545af1bb871a03ce38604138b0d08ea2a10ca2b56ddb63a495d1afa553a815cf751d711478a39e8d1aaca992796b619c84565cd", "sha3_256_hash_of_public_key": "7ef43a72ef04766f1e899d25c9a005009c788b5faf985123cfb3fb97975de26d", - "sha3_256_hash_of_secret_key": "77431cb18010a604d56fe5a623bed2ffd028a741f176fa09546e9a45a48caa5e", - "encapsulation_seed": "5b17a6adad541efcbf5ae4b0c0452cd2ce32e4f0f8701801c5b63e197c1fcbf4", - "sha3_256_hash_of_ciphertext": "11fd09e815bbe163a61c9d215fc7123799b7e774c8945239cac775057b8606d2", - "shared_secret": "d072cb81aff4aa5712e56f0e9567dd89f2b03488735ba4751a7f0df1c786402a" + "sha3_256_hash_of_secret_key": "3c3cc7e8bb1a0cd314d4a00a634d39540d25721a0570db19e7019051e0443c96", + "encapsulation_seed": "ac46852132e10665c4983e3829bd9de2adf693cccf572b4ebc5c0a633230b627", + "sha3_256_hash_of_ciphertext": "817475e0ce64371c0ec99d8b114821de9c84c09eab1a92657b83616e5bfb3a64", + "shared_secret": "3c0e71b90b0ca310cf77eff994fc2acede65d12431d08b9ee758e1fe896b3b2a" }, { - "key_generation_seed": "6fb2ec719f2a0dea152bf3f64b9d148f8ab8ba88f64e61f5db53e12d59f525574f797c007e4061f95c7d56cfc7ee5c49e849dde3fea8f25e7876df2a18515c34", + "key_generation_seed": "6fb2ec719f2a0dea152bf3f64b9d148f8ab8ba88f64e61f5db53e12d59f52557d3698490455837fe52948613ee5fc2284f00b130c72334b1d8e68c7b09b2de2e", "sha3_256_hash_of_public_key": "2c0db43f39b672b2cd912f907cf76a0f6fda925eb2d205546431be0b37b20411", - "sha3_256_hash_of_secret_key": "09844e203f4d8fa30728ab388b9d654847febbf5c9cd939cdc11c9c9be24ce9c", - "encapsulation_seed": "61ab87659525de9656af41246f20e1dbe85c24e335e7ecf9493f46168bc14e94", - "sha3_256_hash_of_ciphertext": "19d527602842910160a13f92dbf9c610a32a5163c3f063271a759487c344cf93", - "shared_secret": "da1085cbc7452cf2ac98ca36631c6ebcfff02e60485f9e807cdb3db77bc92243" + "sha3_256_hash_of_secret_key": "d519785c51c665c8a8591ffeda76f547e21c54d3e90c76c5f0ffe66da0baa27e", + "encapsulation_seed": "1d0144ea8aa44c56c084f3d692d40ee9acca9835f74e2db60116db3669c8ef73", + "sha3_256_hash_of_ciphertext": "986e7c3e5f9051f2df284376027c870680d243a0f7c13f4141c21d61337b154b", + "shared_secret": "34385badb991e44425bcb966ac8db27aaf0c196288c0415b9774883f95d1432c" }, { - "key_generation_seed": "527fb88c8bd9a4d6031dad15e63878abd2b559e7e08d61f69e8e78fca964ee6ae32d432b4f9f751bde0496c580a181ffed762aa35454a02d3f1f47ee0394c89c", + "key_generation_seed": "527fb88c8bd9a4d6031dad15e63878abd2b559e7e08d61f69e8e78fca964ee6a229ef54e776c02586f3f46d723e7932215fb7e09c397d1552cdfe3457241fc30", "sha3_256_hash_of_public_key": "aae8e61b905723fa092fb95b839f6de3670c39ce0498c27b87d20c24e7f64e22", - "sha3_256_hash_of_secret_key": "3880f7ca8fc33575a7a6d8bb46fec86a3f12e0068630507ed245d8bc278fbe5d", - "encapsulation_seed": "eca2adc3da1fb15f34033405ec08ef2f46163df4bfcccf8842c600ce0bc2026c", - "sha3_256_hash_of_ciphertext": "9faa095c14ed0b2e38ac99ef1f7c896c8dacb9065dbe677add2960053c1a0421", - "shared_secret": "aca83f1dc628fa87b20133bed4c2eee34b98021f295ab585dfdcefc9e3c032f5" + "sha3_256_hash_of_secret_key": "2144bc9cc28b5bf0d2eb19ef840af566513604b7e0de78de1f2b99dccace1f65", + "encapsulation_seed": "1407c5b3005f98c64400fe2201f1a2b77b378fbc8141f175ab2d1c2a58846693", + "sha3_256_hash_of_ciphertext": "6916f06141cf65b7f9e1ac836aff9b523a466ce592c7453409d4fbc991f132a2", + "shared_secret": "4726929011926eb0ae28133055edb8e1d5fc8b879807f33c80d5c79d691c52e5" }, { - "key_generation_seed": "ac6fcfaeeef795b6ef9e062f02bf42975fa01e7d91ba832f74e05269a72684d05aeda108ea4d6c6bc0fb958286850422bc357ca67b83c986048e0d0087fa11ec", + "key_generation_seed": "ac6fcfaeeef795b6ef9e062f02bf42975fa01e7d91ba832f74e05269a72684d066bbd48deea2a0a14bcaa97e18d848e609339dc39bcecce7077f2d7432da536e", "sha3_256_hash_of_public_key": "64e085f67e48f00a7a7f82963e8c67176bff839a54fa1008328c0612f98d83d3", - "sha3_256_hash_of_secret_key": "0bfbc25d9df751f4c30907095eb6d9a75ed07fa23218ad0fffc469f0e55553c2", - "encapsulation_seed": "c4f15bec2d7701339d0ade4835193bea3632edcf89e74992620d9eb623a0d0d4", - "sha3_256_hash_of_ciphertext": "bc1227424d0f6e0b6974a798f281b3f2ae089216cacf15a7c87c10aa67040720", - "shared_secret": "3cc0ef85a74184338a10ffbfad5f6d04860d51e7dacf3ee73033b70969785af8" + "sha3_256_hash_of_secret_key": "e18e270aa6dae2bb369326712c661555236aaa2027467d214c82daebf77d3168", + "encapsulation_seed": "19428b5875abce53a0c9baaea7707855e56d971083793b2960986d38e2880449", + "sha3_256_hash_of_ciphertext": "9e3cbd92ad9c8303a8b36bb469bc37938734af66dab403320b1f34a778e3d14d", + "shared_secret": "292e6dae0a593d50f6fb50a8ad71dafc9bc616e7bb9ad7985d31b49de6eafb5d" }, { - "key_generation_seed": "ba2fb9318d4dbe7488057c33e95e6f054583a2800c41bb83083c330a914a12cfe63f8ffda3565c2424c89b20974b748a65a5aba75133fcb3156dfb6626a83bab", + "key_generation_seed": "ba2fb9318d4dbe7488057c33e95e6f054583a2800c41bb83083c330a914a12cf3e3a1bcd39c74c1b899ffa21a6fe100804a551199d32db4a75e6314bfb58f70e", "sha3_256_hash_of_public_key": "8dab879de09b58d0fc7ade140393ffb5343abbddabdc118fad519b14436a964c", - "sha3_256_hash_of_secret_key": "7c53072fd98ea7bd8c5e873688b1a5650fe7e11c791407ac8c118b7958cf414b", - "encapsulation_seed": "28878249e2ac2b6263422993923a0c8bd05ce56e385ed13c943b03d226856947", - "sha3_256_hash_of_ciphertext": "9013959fd6d233a5baebd70cb33e1eb99ff6b3054af1a7d863dd1203ece5f869", - "shared_secret": "1db6e99f80628e170260354ee6f3854f905d198e9669b4faab478f4b39cc2f0e" + "sha3_256_hash_of_secret_key": "24f3521854b7e70ba6211af30e0d6da3f326231517a47cd787342778c58154c5", + "encapsulation_seed": "eec1e23e58387ea5247e118b6204176e01c8fde4ebf069f4b1a460713b5d5fc8", + "sha3_256_hash_of_ciphertext": "0d8dee24c36d51ae0f99ef13c62f9dedf265b6ebe7787f93a4a902958db12dbd", + "shared_secret": "6aa07d31caecd34b786845d20e24db069d24b6301a8e90cd2bada69023b3cf48" }, { - "key_generation_seed": "aa6dd1e5799cdf7af9c4fc632b3eb9d51d66e85c8e0a21ec98664fc51ab63c7dfda268813efab5204efa60f78bf81d320d01ac09ac06244f7afbd2d80fd356d9", + "key_generation_seed": "aa6dd1e5799cdf7af9c4fc632b3eb9d51d66e85c8e0a21ec98664fc51ab63c7daff7ecfe33efe4042a44f2f801170616925be8cca1bd1812a7335dcd80f9cf14", "sha3_256_hash_of_public_key": "919a696301240cd6129f66be58e19d99b0d827d9932785cd9ea3d92f7ba54463", - "sha3_256_hash_of_secret_key": "cb1d7301f15951883cc3f287d4dd8fdf5c9b7022f558dff551c2ade5f5065755", - "encapsulation_seed": "17fc65f7fbd7c75ceec421dee84dff5a8cb22764a182db17e0ebe857f54d60eb", - "sha3_256_hash_of_ciphertext": "2a0c4b9f6c8818d628045333456751d87f87821eb4496ad022d23e0d4fa3872c", - "shared_secret": "ef8de288a7ce14ccd5172a4a2f91588559e3780a75b1df329a53b1e400c4c7f5" + "sha3_256_hash_of_secret_key": "407bcd068ea8319a4e349a94658970abca5fb08c72985ad34ce7ff9b10e0c849", + "encapsulation_seed": "da9c015b918108c1596309fe0042218de4c31900b8dfa6c1cec28ad10988bbc7", + "sha3_256_hash_of_ciphertext": "7b58aeb566d148a41abb83d5106f7cdfed9f3c4431d8380d665bf2114f3bf015", + "shared_secret": "01bbd6a971252d67a10d0ef15fc4a5d2e501a7eab8b6a8fab24702c714714711" }, { - "key_generation_seed": "195d6c86a3df4c21e3007d7f2768b43c74cb3060e0eca77f0a5d3271542b9a84ae77e0f9f21eabd8c0c6eea7767f4e10fde5c2d79b8400bf96b19014b457ec21", + "key_generation_seed": "195d6c86a3df4c21e3007d7f2768b43c74cb3060e0eca77f0a5d3271542b9a84d375bc4fb24e98f1eaa01e50a588e96a2b26daf9421437313fc7e4b520387050", "sha3_256_hash_of_public_key": "cb6d7232426bdbdfdacd373c9190722e7bf342825f7d829185dcc9120588fc76", - "sha3_256_hash_of_secret_key": "a85e24cc2eafdfe40d82f46471112e1359628b9955f3feae9955b48d563ac952", - "encapsulation_seed": "fa0489f3730100609488e951e6aaa15c0f193bc1dbcfcd013bc418d6c507b176", - "sha3_256_hash_of_ciphertext": "9496733c6b4cfc954325101068c40a02c4e3234cf60f1bad187ac479416f9415", - "shared_secret": "4793f705aed572ace61db13bede3900f2538eaddb904988c1f015bac605a1093" + "sha3_256_hash_of_secret_key": "2b5b169e8d6d8b08fbb0cd7411771cd3f4f560ff394d115127abc85ee724e55f", + "encapsulation_seed": "05874f9d5a2e9133d385f3326fa925129dff03359d78b0d07ed78fd5c1307800", + "sha3_256_hash_of_ciphertext": "bdc800186cfb29a764c08fd7851daf01ef156d7baccdc4b3c45aa4b2ed384c27", + "shared_secret": "477f645e1a03a787f29f7b15932f65aee1d74eab2adb4f378e263fd8e2ebd526" } -] +] \ No newline at end of file diff --git a/specs/kyber/tests/kyber768_kat.rs b/specs/kyber/tests/kyber768_nist_kats.rs similarity index 98% rename from specs/kyber/tests/kyber768_kat.rs rename to specs/kyber/tests/kyber768_nist_kats.rs index 959c2df5e..43e0a1e1d 100644 --- a/specs/kyber/tests/kyber768_kat.rs +++ b/specs/kyber/tests/kyber768_nist_kats.rs @@ -62,7 +62,7 @@ fn kyber768_known_answer_tests() { assert_eq!(shared_secret[i], kat.shared_secret[i]); } - let shared_secret_from_decapsulate = hacspec_kyber::decapsulate(*key_pair.sk(), ciphertext); + let shared_secret_from_decapsulate = hacspec_kyber::decapsulate(ciphertext, *key_pair.sk()); for i in 0..shared_secret.len() { assert_eq!(shared_secret_from_decapsulate[i], shared_secret[i]); }