We briefly recall BLS signatures, following the summary given in section 1 of this article (from which we steal much of the notation, the organization, and also the LaTex). Our notation conforms to the notation in the puzzle
Let
Let
We briefly recall BLS signatures, following the summary given in section 1 of this article (from which we steal much of the notation, the organization, and also the LaTex). Our notation conforms to the notation in the puzzle
Let
Let
use ark_bls12_381::{g2::Config, Bls12_381, Fr, G1Affine, G1Projective, G2Affine, G2Projective}; | |
use ark_ec::{ | |
hashing::{curve_maps::wb::WBMap, map_to_curve_hasher::MapToCurveBasedHasher, HashToCurve}, | |
pairing::Pairing, | |
CurveGroup, Group, | |
}; | |
use ark_ff::field_hashers::DefaultFieldHasher; | |
use ark_serialize::{CanonicalDeserialize, CanonicalSerialize}; | |
use sha2::Sha256; | |
use std::{fs::File, io::Read, ops::Mul}; |
Suppose we have two chimpanzees: Flint and Goliath. Flint wants to send Goliath a message
There is a well-accepted solution to this type of problem: combining public key encryption schemes and digital signature schemes. More precisely: Goliath has a public encryption key
Flint->Goliath: $x:=Enc(m, pk_{G,enc})$
Flint->Goliath: $\sigma:=Sign(x, sk_{F,sign})$