Struct scicrypt::cryptosystems::paillier::PaillierPK
source · [−]pub struct PaillierPK { /* private fields */ }
Expand description
Public key for the Paillier cryptosystem.
Trait Implementations
sourceimpl Associable<PaillierPK> for PaillierCiphertext
impl Associable<PaillierPK> for PaillierCiphertext
sourcefn associate(self, public_key: &PK) -> AssociatedCiphertext<'_, Self, PK>
fn associate(self, public_key: &PK) -> AssociatedCiphertext<'_, Self, PK>
‘Enriches’ a ciphertext by associating it with a corresponding public key. This allows to overlead operators for homomorphic operations.
sourceimpl Debug for PaillierPK
impl Debug for PaillierPK
sourceimpl DecryptionKey<PaillierPK> for PaillierSK
impl DecryptionKey<PaillierPK> for PaillierSK
sourcefn decrypt_raw(
&self,
public_key: &PaillierPK,
ciphertext: &PaillierCiphertext
) -> Integer
fn decrypt_raw(
&self,
public_key: &PaillierPK,
ciphertext: &PaillierCiphertext
) -> Integer
Decrypts a rich Paillier ciphertext using the secret key.
println!("The decrypted message is {}", secret_key.decrypt(&ciphertext));
// Prints: "The decrypted message is 5".
sourcefn decrypt(
&self,
ciphertext: &AssociatedCiphertext<'pk, <PK as EncryptionKey>::Ciphertext, PK>
) -> <PK as EncryptionKey>::Plaintext
fn decrypt(
&self,
ciphertext: &AssociatedCiphertext<'pk, <PK as EncryptionKey>::Ciphertext, PK>
) -> <PK as EncryptionKey>::Plaintext
Decrypt the associated ciphertext using the secret key.
sourceimpl EncryptionKey for PaillierPK
impl EncryptionKey for PaillierPK
sourcefn encrypt_raw<R>(
&self,
plaintext: &Integer,
rng: &mut GeneralRng<R>
) -> PaillierCiphertext where
R: SecureRng,
fn encrypt_raw<R>(
&self,
plaintext: &Integer,
rng: &mut GeneralRng<R>
) -> PaillierCiphertext where
R: SecureRng,
Encrypts a plaintext integer using the Paillier public key.
let ciphertext = public_key.encrypt(&Integer::from(5), &mut rng);
type Input = Integer
type Input = Integer
Input is the type used to multiply additive ciphertexts or exponentiate multiplicative ciphertexts.
type Ciphertext = PaillierCiphertext
type Ciphertext = PaillierCiphertext
The type of an encrypted plaintext, i.e. a ciphertext.
sourcefn encrypt<R>(
&'pk self,
plaintext: &Self::Plaintext,
rng: &mut GeneralRng<R>
) -> AssociatedCiphertext<'pk, Self::Ciphertext, Self> where
R: SecureRng,
fn encrypt<R>(
&'pk self,
plaintext: &Self::Plaintext,
rng: &mut GeneralRng<R>
) -> AssociatedCiphertext<'pk, Self::Ciphertext, Self> where
R: SecureRng,
Encrypt the plaintext using the public key and a cryptographic RNG and immediately associate it with the public key.
sourceimpl HomomorphicAddition for PaillierPK
impl HomomorphicAddition for PaillierPK
sourcefn add(
&self,
ciphertext_a: <PaillierPK as EncryptionKey>::Ciphertext,
ciphertext_b: <PaillierPK as EncryptionKey>::Ciphertext
) -> <PaillierPK as EncryptionKey>::Ciphertext
fn add(
&self,
ciphertext_a: <PaillierPK as EncryptionKey>::Ciphertext,
ciphertext_b: <PaillierPK as EncryptionKey>::Ciphertext
) -> <PaillierPK as EncryptionKey>::Ciphertext
Combines two ciphertexts so that their decrypted value reflects some addition operation
sourcefn mul(
&self,
ciphertext: <PaillierPK as EncryptionKey>::Ciphertext,
input: <PaillierPK as EncryptionKey>::Input
) -> <PaillierPK as EncryptionKey>::Ciphertext
fn mul(
&self,
ciphertext: <PaillierPK as EncryptionKey>::Ciphertext,
input: <PaillierPK as EncryptionKey>::Input
) -> <PaillierPK as EncryptionKey>::Ciphertext
Applies some operation on a ciphertext so that the decrypted value reflects some multiplication with input
sourceimpl PartialEq<PaillierPK> for PaillierPK
impl PartialEq<PaillierPK> for PaillierPK
sourcefn eq(&self, other: &PaillierPK) -> bool
fn eq(&self, other: &PaillierPK) -> bool
This method tests for self
and other
values to be equal, and is used
by ==
. Read more
sourcefn ne(&self, other: &PaillierPK) -> bool
fn ne(&self, other: &PaillierPK) -> bool
This method tests for !=
.
impl StructuralPartialEq for PaillierPK
Auto Trait Implementations
impl RefUnwindSafe for PaillierPK
impl Send for PaillierPK
impl Sync for PaillierPK
impl Unpin for PaillierPK
impl UnwindSafe for PaillierPK
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> CheckedAs for T
impl<T> CheckedAs for T
sourcefn checked_as<Dst>(self) -> Option<Dst> where
T: CheckedCast<Dst>,
fn checked_as<Dst>(self) -> Option<Dst> where
T: CheckedCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> CheckedCastFrom<Src> for Dst where
Src: CheckedCast<Dst>,
impl<Src, Dst> CheckedCastFrom<Src> for Dst where
Src: CheckedCast<Dst>,
sourcefn checked_cast_from(src: Src) -> Option<Dst>
fn checked_cast_from(src: Src) -> Option<Dst>
Casts the value.
sourceimpl<T> OverflowingAs for T
impl<T> OverflowingAs for T
sourcefn overflowing_as<Dst>(self) -> (Dst, bool) where
T: OverflowingCast<Dst>,
fn overflowing_as<Dst>(self) -> (Dst, bool) where
T: OverflowingCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> OverflowingCastFrom<Src> for Dst where
Src: OverflowingCast<Dst>,
impl<Src, Dst> OverflowingCastFrom<Src> for Dst where
Src: OverflowingCast<Dst>,
sourcefn overflowing_cast_from(src: Src) -> (Dst, bool)
fn overflowing_cast_from(src: Src) -> (Dst, bool)
OverflowingCasts the value.
sourceimpl<T> SaturatingAs for T
impl<T> SaturatingAs for T
sourcefn saturating_as<Dst>(self) -> Dst where
T: SaturatingCast<Dst>,
fn saturating_as<Dst>(self) -> Dst where
T: SaturatingCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> SaturatingCastFrom<Src> for Dst where
Src: SaturatingCast<Dst>,
impl<Src, Dst> SaturatingCastFrom<Src> for Dst where
Src: SaturatingCast<Dst>,
sourcefn saturating_cast_from(src: Src) -> Dst
fn saturating_cast_from(src: Src) -> Dst
Casts the value.
sourceimpl<T> UnwrappedAs for T
impl<T> UnwrappedAs for T
sourcefn unwrapped_as<Dst>(self) -> Dst where
T: UnwrappedCast<Dst>,
fn unwrapped_as<Dst>(self) -> Dst where
T: UnwrappedCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> UnwrappedCastFrom<Src> for Dst where
Src: UnwrappedCast<Dst>,
impl<Src, Dst> UnwrappedCastFrom<Src> for Dst where
Src: UnwrappedCast<Dst>,
sourcefn unwrapped_cast_from(src: Src) -> Dst
fn unwrapped_cast_from(src: Src) -> Dst
UnwrappedCasts the value.
sourceimpl<T> WrappingAs for T
impl<T> WrappingAs for T
sourcefn wrapping_as<Dst>(self) -> Dst where
T: WrappingCast<Dst>,
fn wrapping_as<Dst>(self) -> Dst where
T: WrappingCast<Dst>,
Casts the value.
sourceimpl<Src, Dst> WrappingCastFrom<Src> for Dst where
Src: WrappingCast<Dst>,
impl<Src, Dst> WrappingCastFrom<Src> for Dst where
Src: WrappingCast<Dst>,
sourcefn wrapping_cast_from(src: Src) -> Dst
fn wrapping_cast_from(src: Src) -> Dst
WrappingCasts the value.