aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMITSUNARI Shigeo <herumi@nifty.com>2017-09-30 17:19:55 +0800
committerMITSUNARI Shigeo <herumi@nifty.com>2017-09-30 17:19:55 +0800
commitcaf9b91ae5925162c9ac44498b67a276d02e749f (patch)
tree2b51bf22c8a2277d1e2f32a98d345925af5f2200
parent95f635d36bb7134311b946f3dba955edda76fc07 (diff)
downloadtangerine-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.hpp1
-rw-r--r--include/mcl/she.hpp26
-rw-r--r--misc/she/bench4.txt125
-rw-r--r--misc/she/bench6.txt121
-rw-r--r--misc/she/bench8.txt125
-rw-r--r--test/she_test.cpp64
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);