Trapdoor.h 730 B

1234567891011121314151617181920212223242526272829
  1. #pragma once
  2. #include "Params.h"
  3. #include "openfhe/core/lattice/hal/lat-backend.h"
  4. #include "openfhe/core/math/matrix.h"
  5. #include "openfhe/core/lattice/trapdoor.h"
  6. #include "DCRTPoly.h"
  7. namespace openfhe
  8. {
  9. using Matrix = lbcrypto::Matrix<lbcrypto::DCRTPoly>;
  10. using RLWETrapdoorPair = lbcrypto::RLWETrapdoorPair<lbcrypto::DCRTPoly>;
  11. struct TrapdoorOutput
  12. {
  13. Matrix m;
  14. RLWETrapdoorPair tp;
  15. };
  16. // Generator functions
  17. [[nodiscard]] std::unique_ptr<TrapdoorOutput> DCRTPolyTrapdoorGen(
  18. const ILDCRTParams& params,
  19. int64_t base,
  20. bool balanced);
  21. [[nodiscard]] std::unique_ptr<Matrix> DCRTPolyGaussSamp(size_t n, size_t k, const TrapdoorOutput& trapdoor, const DCRTPolyImpl& u, int64_t base);
  22. } // openfhe