mirror of
https://github.com/arnaucube/ark-curves-cherry-picked.git
synced 2026-01-09 15:31:34 +01:00
Use Scott's subgroup membership tests for G1 and G2 of BLS12-381. (#74)
* implementation of the fast subgroup check for bls12_381 * add a bench * subgroup check for g1 * subgroup check modifications * remove useless test * fmt * need the last version of arkworks/algebra * remove Parameters0 * using projective points is more efficient * use of projective coordinates in G2 * fmt * documentation on the constants and the psi function * references for algorithms of eprint 2021/1130 * fmt * sed ^ ** * minor improvement * fmt * fix Cargo toml * nits * some cleanup for g1 * add the beta test back * fmt * g2 * changelog * add a note on the Cargo.toml * nits * avoid variable name conflicts * add the early-out optimization Co-authored-by: weikeng <w.k@berkeley.edu>
This commit is contained in:
@@ -196,6 +196,32 @@ macro_rules! ec_bench {
|
||||
});
|
||||
}
|
||||
|
||||
fn deser_uncompressed(b: &mut $crate::bencher::Bencher) {
|
||||
use ark_ec::ProjectiveCurve;
|
||||
use ark_serialize::{CanonicalDeserialize, CanonicalSerialize};
|
||||
const SAMPLES: usize = 1000;
|
||||
|
||||
let mut rng = ark_std::test_rng();
|
||||
|
||||
let mut num_bytes = 0;
|
||||
let tmp = <$projective>::rand(&mut rng).into_affine();
|
||||
let v: Vec<_> = (0..SAMPLES)
|
||||
.flat_map(|_| {
|
||||
let mut bytes = Vec::with_capacity(1000);
|
||||
tmp.serialize_uncompressed(&mut bytes).unwrap();
|
||||
num_bytes = bytes.len();
|
||||
bytes
|
||||
})
|
||||
.collect();
|
||||
|
||||
let mut count = 0;
|
||||
b.iter(|| {
|
||||
count = (count + 1) % SAMPLES;
|
||||
let index = count * num_bytes;
|
||||
<$affine>::deserialize_uncompressed(&v[index..(index + num_bytes)]).unwrap()
|
||||
});
|
||||
}
|
||||
|
||||
fn msm_131072(b: &mut $crate::bencher::Bencher) {
|
||||
use ark_serialize::{CanonicalDeserialize, CanonicalSerialize};
|
||||
const SAMPLES: usize = 131072;
|
||||
@@ -224,6 +250,7 @@ macro_rules! ec_bench {
|
||||
deser,
|
||||
ser_unchecked,
|
||||
deser_unchecked,
|
||||
deser_uncompressed,
|
||||
msm_131072,
|
||||
);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user