diff options
author | MITSUNARI Shigeo <herumi@nifty.com> | 2017-09-30 17:19:55 +0800 |
---|---|---|
committer | MITSUNARI Shigeo <herumi@nifty.com> | 2017-09-30 17:19:55 +0800 |
commit | caf9b91ae5925162c9ac44498b67a276d02e749f (patch) | |
tree | 2b51bf22c8a2277d1e2f32a98d345925af5f2200 | |
parent | 95f635d36bb7134311b946f3dba955edda76fc07 (diff) | |
download | tangerine-mcl-caf9b91ae5925162c9ac44498b67a276d02e749f.tar.gz tangerine-mcl-caf9b91ae5925162c9ac44498b67a276d02e749f.tar.zst tangerine-mcl-caf9b91ae5925162c9ac44498b67a276d02e749f.zip |
[she] add decGi bench for variable m
-rw-r--r-- | include/mcl/fp_tower.hpp | 1 | ||||
-rw-r--r-- | include/mcl/she.hpp | 26 | ||||
-rw-r--r-- | misc/she/bench4.txt | 125 | ||||
-rw-r--r-- | misc/she/bench6.txt | 121 | ||||
-rw-r--r-- | misc/she/bench8.txt | 125 | ||||
-rw-r--r-- | test/she_test.cpp | 64 |
6 files changed, 280 insertions, 182 deletions
diff --git a/include/mcl/fp_tower.hpp b/include/mcl/fp_tower.hpp index 37cc3d6..5f6fc67 100644 --- a/include/mcl/fp_tower.hpp +++ b/include/mcl/fp_tower.hpp @@ -140,6 +140,7 @@ public: Fp2T(const std::string& a, const std::string& b, int base = 0) : a(a, base), b(b, base) {} Fp* getFp0() { return &a; } const Fp* getFp0() const { return &a; } + const Unit* getUnit() const { return a.getUnit(); } void clear() { a.clear(); diff --git a/include/mcl/she.hpp b/include/mcl/she.hpp index 4bdc955..4069fef 100644 --- a/include/mcl/she.hpp +++ b/include/mcl/she.hpp @@ -144,7 +144,7 @@ class HashTable { } void setWindowMethod() { - const size_t bitSize = G::BaseFp::getBitSize(); + const size_t bitSize = G::BaseFp::BaseFp::getBitSize(); wm_.init(static_cast<const I&>(P_), bitSize, local::winSize); } public: @@ -339,6 +339,7 @@ struct SHET { static GT ePQ_; // e(P, Q) static std::vector<bn_current::Fp6> Qcoeff_; static local::HashTable<G1> PhashTbl_; + static local::HashTable<G2> QhashTbl_; static mcl::fp::WindowMethod<G2> Qwm_; typedef local::InterfaceForHashTable<GT, false> GTasEC; static local::HashTable<GT, false> ePQhashTbl_; @@ -460,8 +461,6 @@ public: BN::hashAndMapToG2(Q_, "0"); BN::pairing(ePQ_, P_, Q_); BN::precomputeG2(Qcoeff_, Q_); - const size_t bitSize = Fr::getBitSize(); - Qwm_.init(Q_, bitSize, local::winSize); } /* set range for G1-DLP @@ -471,6 +470,13 @@ public: PhashTbl_.init(P_, hashSize, tryNum); } /* + set range for G2-DLP + */ + static void setRangeForG2DLP(size_t hashSize, size_t tryNum = 0) + { + QhashTbl_.init(Q_, hashSize, tryNum); + } + /* set range for GT-DLP */ static void setRangeForGTDLP(size_t hashSize, size_t tryNum = 0) @@ -478,7 +484,7 @@ public: ePQhashTbl_.init(ePQ_, hashSize, tryNum); } /* - set range for G1/GT DLP + set range for G1/G2/GT DLP decode message m for |m| <= hasSize * tryNum decode time = O(log(hasSize) * tryNum) @note if tryNum = 0 then fast but require more memory(TBD) @@ -486,6 +492,7 @@ public: static void setRangeForDLP(size_t hashSize, size_t tryNum = 0) { setRangeForG1DLP(hashSize, tryNum); + setRangeForG2DLP(hashSize, tryNum); setRangeForGTDLP(hashSize, tryNum); } @@ -541,6 +548,13 @@ public: G1::sub(R, c.S_, R); return PhashTbl_.log(R); } + int64_t dec(const CipherTextG2& c) const + { + G2 R; + G2::mul(R, c.T_, y_); + G2::sub(R, c.S_, R); + return QhashTbl_.log(R); + } int64_t dec(const CipherTextA& c) const { return dec(c.c1_); @@ -647,7 +661,7 @@ public: template<class RG> void enc(CipherTextG2& c, int64_t m, RG& rg) const { - enc1(c.S_, c.T_, Q_, yQ_, m, rg, Qwm_); + enc1(c.S_, c.T_, Q_, yQ_, m, rg, QhashTbl_.getWM()); } template<class RG> void enc(CipherTextA& c, int64_t m, RG& rg) const @@ -1201,7 +1215,7 @@ template<class BN, class Fr> typename BN::G2 SHET<BN, Fr>::Q_; template<class BN, class Fr> typename BN::Fp12 SHET<BN, Fr>::ePQ_; template<class BN, class Fr> std::vector<bn_current::Fp6> SHET<BN, Fr>::Qcoeff_; template<class BN, class Fr> local::HashTable<typename BN::G1> SHET<BN, Fr>::PhashTbl_; -template<class BN, class Fr> mcl::fp::WindowMethod<typename BN::G2> SHET<BN, Fr>::Qwm_; +template<class BN, class Fr> local::HashTable<typename BN::G2> SHET<BN, Fr>::QhashTbl_; template<class BN, class Fr> local::HashTable<typename BN::Fp12, false> SHET<BN, Fr>::ePQhashTbl_; typedef mcl::she::SHET<bn_current::BN, bn_current::Fr> SHE; typedef SHE::SecretKey SecretKey; diff --git a/misc/she/bench4.txt b/misc/she/bench4.txt index e7725f6..95f7a28 100644 --- a/misc/she/bench4.txt +++ b/misc/she/bench4.txt @@ -8,57 +8,84 @@ ctest:module=add_mul_add_sub ctest:module=innerProduct ctest:module=io ctest:module=bench -enc 676.135Kclk -add 7.946Kclk -mul 4.053Mclk -dec 2.210Mclk -add after mul 20.648Kclk +enc 674.326Kclk +add 7.910Kclk +mul 4.054Mclk +dec 2.223Mclk +add after mul 21.223Kclk ctest:module=saveHash ctest:module=hashBench Kclk -i= 0 dec(c2)=000fffff dec 2.25e+03 -i= 1 dec(c2)=001fffff dec 2.24e+03 -i= 2 dec(c2)=003fffff dec 2.19e+03 -i= 3 dec(c2)=007fffff dec 2.20e+03 -i= 4 dec(c2)=00ffffff dec 2.23e+03 -i= 5 dec(c2)=01ffffff dec 2.27e+03 -i= 6 dec(c2)=03ffffff dec 2.37e+03 -i= 7 dec(c2)=07ffffff dec 2.54e+03 -i= 8 dec(c2)=0fffffff dec 2.94e+03 -i= 9 dec(c2)=1fffffff dec 3.77e+03 -i=10 dec(c2)=3fffffff dec 5.38e+03 -i=11 dec(c2)=7fffffff dec 8.67e+03 +m=000fffff decG1 1.89e+02 +m=001fffff decG1 1.89e+02 +m=003fffff decG1 1.89e+02 +m=007fffff decG1 1.96e+02 +m=00ffffff decG1 2.11e+02 +m=01ffffff decG1 2.68e+02 +m=03ffffff decG1 4.19e+02 +m=07ffffff decG1 7.23e+02 +m=0fffffff decG1 1.30e+03 +m=1fffffff decG1 2.45e+03 +m=3fffffff decG1 4.71e+03 +m=7fffffff decG1 9.31e+03 + +m=000fffff decG2 4.07e+02 +m=001fffff decG2 4.08e+02 +m=003fffff decG2 4.08e+02 +m=007fffff decG2 4.20e+02 +m=00ffffff decG2 4.46e+02 +m=01ffffff decG2 5.17e+02 +m=03ffffff decG2 7.20e+02 +m=07ffffff decG2 1.11e+03 +m=0fffffff decG2 1.87e+03 +m=1fffffff decG2 3.36e+03 +m=3fffffff decG2 6.38e+03 +m=7fffffff decG2 1.24e+04 + +m=000fffff decGT 2.25e+03 +m=001fffff decGT 2.23e+03 +m=003fffff decGT 2.27e+03 +m=007fffff decGT 2.22e+03 +m=00ffffff decGT 2.25e+03 +m=01ffffff decGT 2.35e+03 +m=03ffffff decGT 2.44e+03 +m=07ffffff decGT 2.63e+03 +m=0fffffff decGT 3.00e+03 +m=1fffffff decGT 3.86e+03 +m=3fffffff decGT 5.46e+03 +m=7fffffff decGT 8.72e+03 large m -G1::add 7.42e-01 -G1::mul 1.86e+02 -G2::add 3.00e+00 -G2::mul 3.93e+02 -GT::mul 5.16e+00 -GT::pow 7.23e+02 -GTwindow 1.36e+02 -miller 6.71e+02 -finalExp 4.29e+02 -precomML 5.24e+02 -small m = 214346 -G1::mul 3.88e+01 -G2::mul 8.54e+01 -GT::pow 9.79e+01 -GTwindow 1.05e+01 -encG1 2.21e+02 -encG2 4.77e+02 -encGT 2.45e+03 -encGTpre 6.03e+02 -decG1 1.84e+02 -degGT 2.19e+03 -mul 4.06e+03 +G1::add 7.35e-01 +G1::mul 1.94e+02 +G2::add 3.17e+00 +G2::mul 4.04e+02 +GT::mul 5.08e+00 +GT::pow 7.44e+02 +GTwindow 1.35e+02 +miller 6.74e+02 +finalExp 4.23e+02 +precomML 5.18e+02 +small m = 2097151 +G1::mul 4.52e+01 +G2::mul 9.95e+01 +GT::pow 1.33e+02 +GTwindow 1.55e+01 +encG1 2.10e+02 +encG2 4.81e+02 +encGT 2.47e+03 +encGTpre 6.02e+02 +decG1 1.90e+02 +decG2 4.12e+02 +degGT 2.22e+03 +mul 4.07e+03 addG1 1.56e+00 -addG2 4.72e+00 -addGT 2.04e+01 -reRandG1 2.12e+02 -reRandG2 4.76e+02 -reRandGT 2.47e+03 -reRandGTpre 6.18e+02 -mulG1 7.90e+01 -mulG2 1.65e+02 -mulGT 3.93e+02 -ctest:name=she_test, module=11, total=2809, ok=2809, ng=0, exception=0 +addG2 4.76e+00 +addGT 2.07e+01 +reRandG1 2.10e+02 +reRandG2 4.73e+02 +reRandGT 2.48e+03 +reRandGTpre 6.08e+02 +mulG1 9.21e+01 +mulG2 2.00e+02 +mulGT 5.35e+02 +ctest:name=she_test, module=11, total=2859, ok=2859, ng=0, exception=0 diff --git a/misc/she/bench6.txt b/misc/she/bench6.txt index 5ed4ea6..d1125f1 100644 --- a/misc/she/bench6.txt +++ b/misc/she/bench6.txt @@ -8,57 +8,84 @@ ctest:module=add_mul_add_sub ctest:module=innerProduct ctest:module=io ctest:module=bench -enc 2.098Mclk -add 17.896Kclk -mul 13.425Mclk -dec 6.041Mclk -add after mul 41.833Kclk +enc 2.081Mclk +add 17.729Kclk +mul 13.522Mclk +dec 6.002Mclk +add after mul 42.743Kclk ctest:module=saveHash ctest:module=hashBench Kclk -i= 0 dec(c2)=000fffff dec 6.00e+03 -i= 1 dec(c2)=001fffff dec 6.02e+03 -i= 2 dec(c2)=003fffff dec 6.01e+03 -i= 3 dec(c2)=007fffff dec 6.01e+03 -i= 4 dec(c2)=00ffffff dec 6.05e+03 -i= 5 dec(c2)=01ffffff dec 6.14e+03 -i= 6 dec(c2)=03ffffff dec 6.36e+03 -i= 7 dec(c2)=07ffffff dec 6.68e+03 -i= 8 dec(c2)=0fffffff dec 7.40e+03 -i= 9 dec(c2)=1fffffff dec 8.92e+03 -i=10 dec(c2)=3fffffff dec 1.20e+04 -i=11 dec(c2)=7fffffff dec 1.79e+04 +m=000fffff decG1 5.29e+02 +m=001fffff decG1 5.27e+02 +m=003fffff decG1 5.30e+02 +m=007fffff decG1 5.36e+02 +m=00ffffff decG1 5.83e+02 +m=01ffffff decG1 7.07e+02 +m=03ffffff decG1 9.52e+02 +m=07ffffff decG1 1.41e+03 +m=0fffffff decG1 2.31e+03 +m=1fffffff decG1 4.13e+03 +m=3fffffff decG1 7.73e+03 +m=7fffffff decG1 1.50e+04 + +m=000fffff decG2 1.26e+03 +m=001fffff decG2 1.27e+03 +m=003fffff decG2 1.26e+03 +m=007fffff decG2 1.29e+03 +m=00ffffff decG2 1.35e+03 +m=01ffffff decG2 1.53e+03 +m=03ffffff decG2 1.88e+03 +m=07ffffff decG2 2.54e+03 +m=0fffffff decG2 3.86e+03 +m=1fffffff decG2 6.50e+03 +m=3fffffff decG2 1.18e+04 +m=7fffffff decG2 2.24e+04 + +m=000fffff decGT 6.05e+03 +m=001fffff decGT 6.05e+03 +m=003fffff decGT 6.04e+03 +m=007fffff decGT 6.07e+03 +m=00ffffff decGT 6.11e+03 +m=01ffffff decGT 6.19e+03 +m=03ffffff decGT 6.42e+03 +m=07ffffff decGT 6.74e+03 +m=0fffffff decGT 7.47e+03 +m=1fffffff decGT 9.00e+03 +m=3fffffff decGT 1.21e+04 +m=7fffffff decGT 1.81e+04 large m G1::add 1.48e+00 -G1::mul 5.40e+02 -G2::add 7.01e+00 -G2::mul 1.29e+03 -GT::mul 1.04e+01 -GT::pow 2.02e+03 -GTwindow 4.10e+02 -miller 2.08e+03 -finalExp 1.49e+03 -precomML 1.65e+03 -small m = 748424 -G1::mul 7.55e+01 -G2::mul 1.79e+02 -GT::pow 2.22e+02 -GTwindow 2.10e+01 -encG1 6.07e+02 +G1::mul 5.34e+02 +G2::add 6.94e+00 +G2::mul 1.22e+03 +GT::mul 1.07e+01 +GT::pow 1.96e+03 +GTwindow 4.15e+02 +miller 2.10e+03 +finalExp 1.50e+03 +precomML 1.64e+03 +small m = 2097151 +G1::mul 8.24e+01 +G2::mul 2.06e+02 +GT::pow 2.68e+02 +GTwindow 3.18e+01 +encG1 6.03e+02 encG2 1.51e+03 -encGT 7.66e+03 -encGTpre 1.74e+03 -decG1 5.51e+02 -degGT 6.00e+03 -mul 1.34e+04 -addG1 3.08e+00 -addG2 1.03e+01 -addGT 4.26e+01 -reRandG1 6.15e+02 +encGT 7.68e+03 +encGTpre 1.75e+03 +decG1 5.28e+02 +decG2 1.29e+03 +degGT 6.05e+03 +mul 1.35e+04 +addG1 3.09e+00 +addG2 1.02e+01 +addGT 4.22e+01 +reRandG1 5.99e+02 reRandG2 1.50e+03 -reRandGT 7.68e+03 -reRandGTpre 1.75e+03 -mulG1 1.53e+02 -mulG2 3.60e+02 -mulGT 8.85e+02 -ctest:name=she_test, module=11, total=2809, ok=2809, ng=0, exception=0 +reRandGT 7.72e+03 +reRandGTpre 1.76e+03 +mulG1 1.65e+02 +mulG2 4.13e+02 +mulGT 1.07e+03 +ctest:name=she_test, module=11, total=2859, ok=2859, ng=0, exception=0 diff --git a/misc/she/bench8.txt b/misc/she/bench8.txt index 2471585..4f09ad7 100644 --- a/misc/she/bench8.txt +++ b/misc/she/bench8.txt @@ -8,57 +8,84 @@ ctest:module=add_mul_add_sub ctest:module=innerProduct ctest:module=io ctest:module=bench -enc 5.103Mclk -add 36.406Kclk -mul 30.673Mclk -dec 13.132Mclk -add after mul 76.518Kclk +enc 5.084Mclk +add 36.299Kclk +mul 30.169Mclk +dec 12.705Mclk +add after mul 77.619Kclk ctest:module=saveHash ctest:module=hashBench Kclk -i= 0 dec(c2)=000fffff dec 1.28e+04 -i= 1 dec(c2)=001fffff dec 1.29e+04 -i= 2 dec(c2)=003fffff dec 1.28e+04 -i= 3 dec(c2)=007fffff dec 1.29e+04 -i= 4 dec(c2)=00ffffff dec 1.30e+04 -i= 5 dec(c2)=01ffffff dec 1.31e+04 -i= 6 dec(c2)=03ffffff dec 1.34e+04 -i= 7 dec(c2)=07ffffff dec 1.41e+04 -i= 8 dec(c2)=0fffffff dec 1.54e+04 -i= 9 dec(c2)=1fffffff dec 1.80e+04 -i=10 dec(c2)=3fffffff dec 2.33e+04 -i=11 dec(c2)=7fffffff dec 3.37e+04 +m=000fffff decG1 1.43e+03 +m=001fffff decG1 1.44e+03 +m=003fffff decG1 1.43e+03 +m=007fffff decG1 1.46e+03 +m=00ffffff decG1 1.54e+03 +m=01ffffff decG1 1.69e+03 +m=03ffffff decG1 2.02e+03 +m=07ffffff decG1 2.64e+03 +m=0fffffff decG1 3.89e+03 +m=1fffffff decG1 6.37e+03 +m=3fffffff decG1 1.13e+04 +m=7fffffff decG1 2.13e+04 + +m=000fffff decG2 3.00e+03 +m=001fffff decG2 3.01e+03 +m=003fffff decG2 3.00e+03 +m=007fffff decG2 3.05e+03 +m=00ffffff decG2 3.16e+03 +m=01ffffff decG2 3.43e+03 +m=03ffffff decG2 3.94e+03 +m=07ffffff decG2 4.95e+03 +m=0fffffff decG2 6.95e+03 +m=1fffffff decG2 1.10e+04 +m=3fffffff decG2 1.91e+04 +m=7fffffff decG2 3.52e+04 + +m=000fffff decGT 1.29e+04 +m=001fffff decGT 1.29e+04 +m=003fffff decGT 1.29e+04 +m=007fffff decGT 1.29e+04 +m=00ffffff decGT 1.30e+04 +m=01ffffff decGT 1.32e+04 +m=03ffffff decGT 1.35e+04 +m=07ffffff decGT 1.41e+04 +m=0fffffff decGT 1.54e+04 +m=1fffffff decGT 1.80e+04 +m=3fffffff decGT 2.32e+04 +m=7fffffff decGT 3.37e+04 large m -G1::add 4.67e+00 -G1::mul 1.42e+03 -G2::add 1.37e+01 -G2::mul 2.93e+03 -GT::mul 1.95e+01 -GT::pow 4.24e+03 -GTwindow 1.00e+03 -miller 5.24e+03 -finalExp 3.52e+03 -precomML 4.00e+03 -small m = 34209 -G1::mul 1.23e+02 -G2::mul 2.84e+02 -GT::pow 3.32e+02 -GTwindow 4.04e+01 -encG1 1.70e+03 -encG2 3.67e+03 -encGT 1.87e+04 -encGTpre 3.77e+03 -decG1 1.52e+03 -degGT 1.32e+04 -mul 3.11e+04 -addG1 7.21e+00 -addG2 2.09e+01 -addGT 8.04e+01 -reRandG1 1.66e+03 -reRandG2 3.58e+03 -reRandGT 1.83e+04 +G1::add 3.42e+00 +G1::mul 1.48e+03 +G2::add 1.38e+01 +G2::mul 2.90e+03 +GT::mul 1.92e+01 +GT::pow 4.32e+03 +GTwindow 9.01e+02 +miller 4.86e+03 +finalExp 3.25e+03 +precomML 3.74e+03 +small m = 2097151 +G1::mul 1.53e+02 +G2::mul 3.87e+02 +GT::pow 4.89e+02 +GTwindow 5.82e+01 +encG1 1.68e+03 +encG2 3.48e+03 +encGT 1.78e+04 +encGTpre 3.76e+03 +decG1 1.48e+03 +decG2 2.96e+03 +degGT 1.30e+04 +mul 3.10e+04 +addG1 6.92e+00 +addG2 2.05e+01 +addGT 7.66e+01 +reRandG1 1.65e+03 +reRandG2 3.48e+03 +reRandGT 1.77e+04 reRandGTpre 3.78e+03 -mulG1 2.36e+02 -mulG2 5.55e+02 -mulGT 1.30e+03 -ctest:name=she_test, module=11, total=2809, ok=2809, ng=0, exception=0 +mulG1 3.07e+02 +mulG2 7.69e+02 +mulGT 1.96e+03 +ctest:name=she_test, module=11, total=2859, ok=2859, ng=0, exception=0 diff --git a/test/she_test.cpp b/test/she_test.cpp index 8d3e3e5..3869ed7 100644 --- a/test/she_test.cpp +++ b/test/she_test.cpp @@ -282,44 +282,47 @@ CYBOZU_TEST_AUTO(saveHash) static inline void putK(double t) { printf("%.2e\n", t * 1e-3); } +template<class CT> +void decBench(const char *msg, int C, const SecretKey& sec, const PublicKey& pub) +{ + int64_t begin = 1 << 20; + int64_t end = 1LL << 32; + while (begin < end) { + CT c; + int64_t x = begin - 1; + pub.enc(c, x); + printf("m=%08x ", (uint32_t)x); + CYBOZU_BENCH_C(msg, C, sec.dec, c); + CYBOZU_TEST_EQUAL(sec.dec(c), x); + begin *= 2; + } + int64_t mTbl[] = { -0x80000003ll, 0x80000000ll, 0x80000005ll }; + for (size_t i = 0; i < CYBOZU_NUM_OF_ARRAY(mTbl); i++) { + int64_t m = mTbl[i]; + CT c; + pub.enc(c, m); + CYBOZU_TEST_EQUAL(sec.dec(c), m); + } +} + CYBOZU_TEST_AUTO(hashBench) { SecretKey& sec = g_sec; sec.setByCSPRNG(); + const int C = 500; const size_t hashSize = 1u << 21; SHE::setRangeForDLP(hashSize, 1024); PublicKey pub; sec.getPublicKey(pub); PrecomputedPublicKey ppub; ppub.init(pub); - { - int x = 1 << 20; - CipherText one; - CipherText c1; - pub.enc(c1, x); - pub.enc(one, 1, true); - - puts("Kclk"); - cybozu::bench::setPutCallback(putK); - for (int i = 0; i < 12; i++) { - int y = 1 << i; - CipherText c2; - pub.enc(c2, y); - c2.mul(c1); - c2.sub(one); - int expect = x * y - 1; - CYBOZU_TEST_EQUAL(sec.dec(c2), expect); - printf("i=%2d dec(c2)=%08x ", i, expect); - CYBOZU_BENCH_C("dec", 100, sec.dec, c2); - } - // larger than int32_t - int64_t mTbl[] = { -0x80000003ll, 0x80000000ll, 0x80000005ll }; - for (size_t i = 0; i < CYBOZU_NUM_OF_ARRAY(mTbl); i++) { - int64_t m = mTbl[i]; - pub.enc(c1, m); - CYBOZU_TEST_EQUAL(sec.dec(c1), m); - } - } + puts("Kclk"); + cybozu::bench::setPutCallback(putK); + decBench<CipherTextG1>("decG1", C, sec, pub); + puts(""); + decBench<CipherTextG2>("decG2", C, sec, pub); + puts(""); + decBench<CipherTextGT>("decGT", C, sec, pub); G1 P, P2; G2 Q, Q2; @@ -333,7 +336,6 @@ CYBOZU_TEST_AUTO(hashBench) BN::hashAndMapToG1(P, "abc"); BN::hashAndMapToG2(Q, "abc"); BN::pairing(e, P, Q); - const int C = 100; P2.clear(); Q2.clear(); e2 = 1; @@ -366,7 +368,7 @@ CYBOZU_TEST_AUTO(hashBench) CipherTextG2 ca2; CipherTextM cm; - int m = int(mcl::she::local::g_rg() % hashSize); + int m = int(hashSize - 1); printf("small m = %d\n", m); CYBOZU_BENCH_C("G1::mul ", C, G1::mul, P, P, m); CYBOZU_BENCH_C("G2::mul ", C, G2::mul, Q, Q, m); @@ -379,7 +381,7 @@ CYBOZU_TEST_AUTO(hashBench) CYBOZU_BENCH_C("encGTpre", C, ppub.enc, cm, m); CYBOZU_BENCH_C("decG1 ", C, sec.dec, ca1); -// CYBOZU_BENCH_C("decG2 ", C, sec.dec, ca2); + CYBOZU_BENCH_C("decG2 ", C, sec.dec, ca2); CYBOZU_BENCH_C("degGT ", C, sec.dec, cm); CYBOZU_BENCH_C("mul ", C, CipherTextM::mul, cm, ca1, ca2); |