2021SC@SDUSC-SEAL全同态加密库(十二)

SEAL全同态加密库(十二)

performance

生成公私钥 for context

cout << "Generating secret/public keys: ";
KeyGenerator keygen(context);
cout << "Done" << endl;

auto secret_key = keygen.secret_key();
auto public_key = keygen.public_key();

RelinKeys relin_keys;
GaloisKeys gal_keys;

这些将保存每个操作使用的总时间。

chrono::microseconds time_batch_sum(0);
chrono::microseconds time_unbatch_sum(0);
chrono::microseconds time_encrypt_sum(0);
chrono::microseconds time_decrypt_sum(0);
chrono::microseconds time_add_sum(0);
chrono::microseconds time_multiply_sum(0);
chrono::microseconds time_multiply_plain_sum(0);
chrono::microseconds time_square_sum(0);
chrono::microseconds time_relinearize_sum(0);
chrono::microseconds time_rotate_rows_one_step_sum(0);
chrono::microseconds time_rotate_rows_random_sum(0);
chrono::microseconds time_rotate_columns_sum(0);

填充要进行批处理的值向量

size_t slot_count = batch_encoder.slot_count();
vector<uint64_t> pod_vector;
random_device rd;
for (size_t i = 0; i < slot_count; i++)
{
    
    
    pod_vector.push_back(rd() % plain_modulus.value());
}

cout << "Running tests ";

猜你喜欢

转载自blog.csdn.net/weixin_46021936/article/details/122520880