Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

CODEX_ThresholdCrypto::DLProof Class Reference

This class encapsulates a particular discrete log proof useful in robust threshold operations. More...

#include <DLProof.h>

Inheritance diagram for CODEX_ThresholdCrypto::DLProof:

Inheritance graph
[legend]
Collaboration diagram for CODEX_ThresholdCrypto::DLProof:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 DLProof ()
 Default constructor, for creating an object to be unmarshalled.
 DLProof (const BIGNUM *g1, const BIGNUM *g2, const BIGNUM *n, const BIGNUM *max, const BIGNUM *x, const CODEX_Ciphers::HashFunction &H)
 Constructor taking information used to construct the proof.
 DLProof (const DLProof &aOther)
 Copy constructor.
virtual ~DLProof ()
 Virtual destructor.
void operator= (const DLProof &aOther)
 Assignment operator.
bool verify (const BIGNUM *g1, const BIGNUM *g2, const BIGNUM *y1, const BIGNUM *y2, const BIGNUM *n, const CODEX_Ciphers::HashFunction &H) const
 Test the validity of the proof.
int marshal (unsigned char **pp) const
 Serialize the object.
void * unmarshal (void *bogus, unsigned char **pp, long length)
 Unserialize the object.
bool initialized () const

Protected Attributes

bool m_initialized
 Has this object been initialized yet, or is it still blank?

Detailed Description

This class encapsulates a particular discrete log proof useful in robust threshold operations.

Specifically, it proves that the discrete log of y1 to the base g1 and the discrete log of y2 to the base g2 are identical.

Definition at line 34 of file DLProof.h.


Constructor & Destructor Documentation

DLProof::DLProof const BIGNUM *  g1,
const BIGNUM *  g2,
const BIGNUM *  n,
const BIGNUM *  max,
const BIGNUM *  x,
const CODEX_Ciphers::HashFunction H
 

Constructor taking information used to construct the proof.

Parameters:
g1 The first base, such as a ciphertext or portion of a ciphertext.
g2 The second base, such as a witness base for Feldman's VSS scheme.
n The modulus in which operations are to be performed. This may be prime or composite.
max The maximum value for the random secret used in the proof. Ideally this would be phi(n), but for a composite n with unknown factorization some other value should be chosen. For RSA, n/4 is a safe value.
x The discrete log to be demonstrated. This will typically be a share of a private key.
H A cryptographically secure hash function, such as SHA-1 or MD5.

Definition at line 32 of file DLProof.cc.

References CODEX_ASN1::BigNumber::marshal().


Member Function Documentation

bool CODEX_ASN1::Base::initialized  )  const [inline, inherited]
 

Returns:
Has this object been initialized?

Definition at line 175 of file Base.h.

References CODEX_ASN1::Base::m_initialized.

Referenced by CODEX_APSS::SecretManagement::addComputeMsg(), CODEX_APSS::SecretManagement::addEstablishMsg(), CODEX_APSS::SecretManagement::addEstablishResponse(), CODEX_APSS::SecretManagement::addInitMsg(), CODEX_APSS::SecretManagement::addSharing(), CODEX_APSS::SecretManagement::addSubsharing(), CODEX_VSS::Combinatoric< NumT, ThreshT >::apply(), CODEX_Server::ServerState::caKey(), CODEX_KeyService::ClientCreateCallback::ClientCreateCallback(), CODEX_VSS::Combinatoric< NumT, ThreshT >::count(), CODEX_Server::QuorumBuilderAct::handler(), CODEX_APSS::MessageVerifier::handler(), CODEX_KeyService::DelegateResponseVerifier::handler(), CODEX_KeyService::DelegateRequestDistributor::handler(), CODEX_KeyService::ClientMessageVerifier::handler(), CODEX_KeyService::ClientMessageSigner::handler(), CODEX_VSS::SubshareLabel< LabelType >::marshal(), CODEX_KeyService::KeyInfo::marshal(), CODEX_VSS::LabeledShare< ShareType, OneWay >::marshal(), CODEX_VSS::ShareLabel< _ShareType, _OneWay >::marshal(), CODEX_VSS::ModExpFunctionalArgs::marshal(), CODEX_VSS::Combinatoric< NumT, ThreshT >::marshal(), CODEX_KeyService::SignWriteCallback::operator()(), CODEX_KeyService::SignReadCallback::operator()(), CODEX_KeyService::SignCreateCallback::operator()(), CODEX_VSS::ModExpFunctional::operator()(), CODEX_KeyService::ClientReadCallback::operator()(), CODEX_KeyService::ClientCreateCallback::operator()(), CODEX_VSS::Combinatoric< NumT, ThreshT >::operator+=(), CODEX_Server::ServerState::readElGamalShares(), CODEX_VSS::Combinatoric< NumT, ThreshT >::recover(), CODEX_APSS::SecretManagement::sendFinished(), CODEX_Server::ServerState::serviceKey(), CODEX_Server::ServerState::setEGShareCallback(), and CODEX_Server::ServerState::setRSAShareCallback().

bool DLProof::verify const BIGNUM *  g1,
const BIGNUM *  g2,
const BIGNUM *  y1,
const BIGNUM *  y2,
const BIGNUM *  n,
const CODEX_Ciphers::HashFunction H
const
 

Test the validity of the proof.

Parameters:
g1 The first base, as in the constructor.
g2 The second base, as in the constructor.
y1 The first exponentiation, which should be g1^x.
y2 The second exponentiation, which should be g2^x.
n The modulus in which operations are performed.
H A cryptographically secure hash function, as in the constructor.

Definition at line 205 of file DLProof.cc.

References CODEX_ASN1::BigNumber::marshal(), and CODEX_ASN1::BigNumber::value().


The documentation for this class was generated from the following files:
Generated on Fri May 6 17:42:51 2005 for COrnell Data EXchange (CODEX) by  doxygen 1.4.1