parent
4c376d551e
commit
85163ee003
@ -1,76 +0,0 @@ |
||||
#pragma once |
||||
/**
|
||||
@file |
||||
@brief 192/256-bit additive homomorphic encryption by lifted-ElGamal |
||||
@author MITSUNARI Shigeo(@herumi) |
||||
@license modified new BSD license |
||||
http://opensource.org/licenses/BSD-3-Clause
|
||||
*/ |
||||
#include <mcl/elgamal.hpp> |
||||
#include <mcl/ecparam.hpp> |
||||
|
||||
namespace mcl { |
||||
|
||||
#ifdef MCL_USE_AHE192 |
||||
namespace ahe192 { |
||||
|
||||
const mcl::EcParam& para = mcl::ecparam::NIST_P192; |
||||
|
||||
typedef mcl::FpT<mcl::FpTag, 192> Fp; |
||||
typedef mcl::FpT<mcl::ZnTag, 192> Zn; |
||||
typedef mcl::EcT<Fp> Ec; |
||||
typedef mcl::ElgamalT<Ec, Zn> ElgamalEc; |
||||
typedef ElgamalEc::PrivateKey SecretKey; |
||||
typedef ElgamalEc::PublicKey PublicKey; |
||||
typedef ElgamalEc::CipherText CipherText; |
||||
|
||||
static inline void initAhe() |
||||
{ |
||||
Fp::init(para.p); |
||||
Zn::init(para.n); |
||||
Ec::init(para.a, para.b); |
||||
Ec::setIoMode(16); |
||||
Zn::setIoMode(16); |
||||
} |
||||
|
||||
static inline void initSecretKey(SecretKey& sec) |
||||
{ |
||||
const Ec P(Fp(para.gx), Fp(para.gy)); |
||||
sec.init(P, Zn::getBitSize()); |
||||
} |
||||
|
||||
} //mcl::ahe192
|
||||
#endif |
||||
|
||||
#ifdef MCL_USE_AHE256 |
||||
namespace ahe256 { |
||||
|
||||
const mcl::EcParam& para = mcl::ecparam::NIST_P256; |
||||
|
||||
typedef mcl::FpT<mcl::FpTag, 256> Fp; |
||||
typedef mcl::FpT<mcl::ZnTag, 256> Zn; |
||||
typedef mcl::EcT<Fp> Ec; |
||||
typedef mcl::ElgamalT<Ec, Zn> ElgamalEc; |
||||
typedef ElgamalEc::PrivateKey SecretKey; |
||||
typedef ElgamalEc::PublicKey PublicKey; |
||||
typedef ElgamalEc::CipherText CipherText; |
||||
|
||||
static inline void initAhe() |
||||
{ |
||||
Fp::init(para.p); |
||||
Zn::init(para.n); |
||||
Ec::init(para.a, para.b); |
||||
Ec::setIoMode(16); |
||||
Zn::setIoMode(16); |
||||
} |
||||
|
||||
static inline void initSecretKey(SecretKey& sec) |
||||
{ |
||||
const Ec P(Fp(para.gx), Fp(para.gy)); |
||||
sec.init(P, Zn::getBitSize()); |
||||
} |
||||
|
||||
} //mcl::ahe256
|
||||
#endif |
||||
|
||||
} // mcl
|
Loading…
Reference in new issue