Rename dlog.rs to discrete_log.rs

This commit is contained in:
Michael Vines 2021-10-01 09:43:59 -07:00
parent 23d3b540a1
commit 5445e13828
3 changed files with 13 additions and 13 deletions

View File

@ -16,7 +16,7 @@ const TWO18: u32 = 262144; // 2^18
/// ///
/// The goal of discrete log is to find x such that x * generator = target. /// The goal of discrete log is to find x such that x * generator = target.
#[derive(Serialize, Deserialize, Copy, Clone, Debug, Eq, PartialEq)] #[derive(Serialize, Deserialize, Copy, Clone, Debug, Eq, PartialEq)]
pub struct DiscreteLogInstance { pub struct DiscreteLog {
/// Generator point for discrete log /// Generator point for discrete log
pub generator: RistrettoPoint, pub generator: RistrettoPoint,
/// Target point for discrete log /// Target point for discrete log
@ -56,7 +56,7 @@ pub fn decode_u32_precomputation_for_G() -> HashMap<[u8; 32], u32> {
} }
/// Solves the discrete log instance using a 18/14 bit offline/online split /// Solves the discrete log instance using a 18/14 bit offline/online split
impl DiscreteLogInstance { impl DiscreteLog {
/// Solves the discrete log problem under the assumption that the solution /// Solves the discrete log problem under the assumption that the solution
/// is a 32-bit number. /// is a 32-bit number.
pub fn decode_u32(self) -> Option<u32> { pub fn decode_u32(self) -> Option<u32> {
@ -120,7 +120,7 @@ mod tests {
fn test_decode_correctness() { fn test_decode_correctness() {
let amount: u32 = 65545; let amount: u32 = 65545;
let instance = DiscreteLogInstance { let instance = DiscreteLog {
generator: G, generator: G,
target: Scalar::from(amount) * G, target: Scalar::from(amount) * G,
}; };

View File

@ -2,7 +2,7 @@
use rand::{rngs::OsRng, CryptoRng, RngCore}; use rand::{rngs::OsRng, CryptoRng, RngCore};
use { use {
crate::encryption::{ crate::encryption::{
dlog::DiscreteLogInstance, discrete_log::DiscreteLog,
pedersen::{Pedersen, PedersenBase, PedersenComm, PedersenDecHandle, PedersenOpen}, pedersen::{Pedersen, PedersenBase, PedersenComm, PedersenDecHandle, PedersenOpen},
}, },
arrayref::{array_ref, array_refs}, arrayref::{array_ref, array_refs},
@ -80,16 +80,16 @@ impl ElGamal {
/// On input a secret key and a ciphertext, the function decrypts the ciphertext. /// On input a secret key and a ciphertext, the function decrypts the ciphertext.
/// ///
/// The output of the function is of type `DiscreteLogInstance`. The exact message /// The output of the function is of type `DiscreteLog`. The exact message
/// can be recovered via the DiscreteLogInstance's decode method. /// can be recovered via the DiscreteLog's decode method.
pub fn decrypt(sk: &ElGamalSK, ct: &ElGamalCiphertext) -> DiscreteLogInstance { pub fn decrypt(sk: &ElGamalSK, ct: &ElGamalCiphertext) -> DiscreteLog {
let ElGamalSK(s) = sk; let ElGamalSK(s) = sk;
let ElGamalCiphertext { let ElGamalCiphertext {
message_comm, message_comm,
decrypt_handle, decrypt_handle,
} = ct; } = ct;
DiscreteLogInstance { DiscreteLog {
generator: PedersenBase::default().G, generator: PedersenBase::default().G,
target: message_comm.get_point() - s * decrypt_handle.get_point(), target: message_comm.get_point() - s * decrypt_handle.get_point(),
} }
@ -167,7 +167,7 @@ impl ElGamalSK {
} }
/// Utility method for code ergonomics. /// Utility method for code ergonomics.
pub fn decrypt(&self, ct: &ElGamalCiphertext) -> DiscreteLogInstance { pub fn decrypt(&self, ct: &ElGamalCiphertext) -> DiscreteLog {
ElGamal::decrypt(self, ct) ElGamal::decrypt(self, ct)
} }
@ -262,7 +262,7 @@ impl ElGamalCiphertext {
} }
/// Utility method for code ergonomics. /// Utility method for code ergonomics.
pub fn decrypt(&self, sk: &ElGamalSK) -> DiscreteLogInstance { pub fn decrypt(&self, sk: &ElGamalSK) -> DiscreteLog {
ElGamal::decrypt(sk, self) ElGamal::decrypt(sk, self)
} }
@ -360,7 +360,7 @@ mod tests {
let msg: u32 = 57; let msg: u32 = 57;
let ct = ElGamal::encrypt(&pk, msg); let ct = ElGamal::encrypt(&pk, msg);
let expected_instance = DiscreteLogInstance { let expected_instance = DiscreteLog {
generator: PedersenBase::default().G, generator: PedersenBase::default().G,
target: Scalar::from(msg) * PedersenBase::default().G, target: Scalar::from(msg) * PedersenBase::default().G,
}; };
@ -385,7 +385,7 @@ mod tests {
let ct_1 = decrypt_handle_1.to_elgamal_ctxt(comm); let ct_1 = decrypt_handle_1.to_elgamal_ctxt(comm);
let ct_2 = decrypt_handle_2.to_elgamal_ctxt(comm); let ct_2 = decrypt_handle_2.to_elgamal_ctxt(comm);
let expected_instance = DiscreteLogInstance { let expected_instance = DiscreteLog {
generator: PedersenBase::default().G, generator: PedersenBase::default().G,
target: Scalar::from(msg) * PedersenBase::default().G, target: Scalar::from(msg) * PedersenBase::default().G,
}; };

View File

@ -1,3 +1,3 @@
pub mod dlog; pub mod discrete_log;
pub mod elgamal; pub mod elgamal;
pub mod pedersen; pub mod pedersen;