Skip to content

Commit

Permalink
started mu encoding
Browse files Browse the repository at this point in the history
  • Loading branch information
jlmucb committed Apr 25, 2024
1 parent 09c3b2e commit 5ab3f3a
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 10 deletions.
2 changes: 1 addition & 1 deletion v2/include/kyber.h
Original file line number Diff line number Diff line change
Expand Up @@ -165,7 +165,7 @@ bool ntt_module_vector_dot_product_first_transposed(module_vector& in1,
void print_module_vector(module_vector& mv);

bool ntt_module_apply_array(int g, module_array& A, module_vector& v, module_vector* out);
bool ntt_module_apply_transpose_array(int g, module_array& A, module_vector& v, module_vector* out);
bool ntt_module_apply_transposed_array(int g, module_array& A, module_vector& v, module_vector* out);

void print_kyber_parameters(kyber_parameters& p);

Expand Down
30 changes: 21 additions & 9 deletions v2/kyber/kyber.cc
Original file line number Diff line number Diff line change
Expand Up @@ -360,7 +360,7 @@ bool ntt_module_apply_array(int g, module_array& A, module_vector& v, module_vec
return true;
}

bool ntt_module_apply_array_transpose(int g, module_array& A, module_vector& v, module_vector* out) {
bool ntt_module_apply_transposed_array(int g, module_array& A, module_vector& v, module_vector* out) {
if ((A.nc_ != v.dim_) || A.nr_ != out->dim_) {
printf("mismatch, nc: %d, v: %d, nr: %d, out: %d\n", A.nc_, v.dim_, A.nr_, out->dim_);
return false;
Expand Down Expand Up @@ -1325,10 +1325,9 @@ bool kyber_encrypt(int g, kyber_parameters& p, int ek_len, byte* ek,
printf("\ne2:\n");
print_coefficient_vector(e2);
printf("\n");
return true;
#endif

if (!ntt_module_apply_transpose_array(g, A_ntt, r_ntt, &s)) {
if (!ntt_module_apply_transposed_array(g, A_ntt, r_ntt, &s)) {
printf("kyber_encrypt: ntt_module_apply_transpose_array) failed\n");
return false;
}
Expand All @@ -1352,13 +1351,29 @@ bool kyber_encrypt(int g, kyber_parameters& p, int ek_len, byte* ek,
coefficient_vector mu(p.q_, p.n_);
coefficient_vector nu(p.q_, p.n_);
coefficient_vector nu_ntt(p.q_, p.n_);
if (!coefficient_vector_zero(&nu)) {
if (!coefficient_vector_zero(&mu)) {
return false;
}
if (!coefficient_vector_zero(&nu_ntt)) {
// mu = decompress(1, byte_decode(m))
if (!byte_decode_to_vector(1, p.n_, m_len, m, mu.c_)) {
return false;
}
for (int i = 0; i < p.n_; i++) {
mu.c_[i] = decompress(p.q_, mu.c_[i], 1);
}

#if 1
printf("m: ");
print_bytes(m_len, m);
printf("mu:\n");
print_coefficient_vector(mu);
return true;
#endif

if (!coefficient_vector_zero(&nu)) {
return false;
}
if (!coefficient_vector_zero(&mu)) {
if (!coefficient_vector_zero(&nu_ntt)) {
return false;
}
if (!ntt_module_vector_dot_product(t_ntt, r_ntt, &nu_ntt)) {
Expand All @@ -1374,9 +1389,6 @@ bool kyber_encrypt(int g, kyber_parameters& p, int ek_len, byte* ek,
return false;
}

if (!byte_decode_to_vector(1, p.n_, m_len, m, mu.c_)) {
return false;
}

module_vector compressed_u(p.q_, p.n_, p.k_);
for (int i = 0; i < p.k_; i++) {
Expand Down
4 changes: 4 additions & 0 deletions v2/kyber/test_kyber.cc
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,10 @@ bool test_kyber1() {
printf("wrong return from crypto_get_random_bytes\n");
return false;
}
m[1] = 0xff;
m[3] = 0x0f;
m[5] = 0x10;
m[7] = 0x11;

if (!kyber_encrypt(g, p, ek_len, ek, m_len, m,
b_r_len, b_r, &c_len, c)) {
Expand Down

0 comments on commit 5ab3f3a

Please sign in to comment.