FRODO Version 2.19.1
An open-source framework for Distributed Constraint Optimization (DCOP)
Loading...
Searching...
No Matches
frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare > Class Template Reference

P2-DPOP's collaborative decryption module. More...

Inheritance diagram for frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >:

Classes

class  VariableInfo
 Convent class to store information about a variable. More...
class  StatRequestOutput
 Message sent to stat gatherer with all decryption requests for an agent. More...
class  CryptoSchemeMsg
 Message used to transfer the cryptoScheme to others modules of this agent. More...
class  VectorOutput
 Vector decryption Output Message. More...
class  DecryptionOutput
 Decryption Output Message. More...

Public Member Functions

 CollaborativeDecryption (DCOPProblemInterface<?, C > problem, Element parameters) throws ClassNotFoundException, NoSuchMethodException
 Constructor from XML descriptions.
 CollaborativeDecryption (Element parameters, DCOPProblemInterface<?, C > problem)
 The constructor called in "statistics gatherer" mode.
void setQueue (Queue queue)
Collection< MessageTypegetMsgTypes ()
void notifyIn (Message msg)
int requestCount ()
void getStatsFromQueue (Queue queue)
void reset ()
void setSilent (boolean silent)
Map< String, Integer > getRequestCountMapping ()
Public Member Functions inherited from frodo2.communication.IncomingMsgPolicyInterface< T >
default void notifyIn (Message msg, Object toAgent)
 Notifies the listener of an incoming message.

Static Public Attributes

static final MessageType CRYPTO_SCHEME_TYPE = new MessageType ("P3/2-DPOP", "CollaborativeDecryption", "CryptoScheme")
 The type of the messages containing the CryptoScheme.
static final MessageType REQUEST_TYPE = new MessageType ("P3/2-DPOP", "CollaborativeDecryption", "DecryptionRequest")
 The type of the messages corresponding to decryption requests.
static final MessageType OUTPUT_TYPE = new MessageType ("P3/2-DPOP", "CollaborativeDecryption", "DecryptionOutput")
 The type of the messages containing the outputs of decryptions.
static final MessageType VECTOR_REQUEST_TYPE = new MessageType ("P3/2-DPOP", "CollaborativeDecryption", "VectorDecryptionRequest")
 The type of the messages corresponding to vector decryption requests.
static final MessageType VECTOR_OUTPUT_TYPE = new MessageType ("P3/2-DPOP", "CollaborativeDecryption", "VectorDecryptionOutput")
 The type of the messages containing the outputs of decryptions.
static final MessageType STAT_REQUEST_TYPE = new MessageType ("P3/2-DPOP", "CollaborativeDecryption", "StatRequest")
 The type of the message containing the decryption request stats.
static final MessageType KEY_SHARE_TYPE = new MessageType ("P3/2-DPOP", "CollaborativeDecryption", "KeyShareType")
 The type of the message used to exchange KeyPair.

Private Member Functions

boolean checkModulus (Element params)
 Checks that the ElGamal modulus has a number of bits greater than the product of all domain sizes.
void init ()
 Initiate the statistic gatherer.
void addDecryptRequest (String var)
 Add one to the request counter of a variable passed in argument.

Private Attributes

DCOPProblemInterface<?, C > problem
 This problem.
Queue queue
 Queue of this agent module.
boolean reportStats = true
 Whether to report stats.
Constructor<? extends CryptoScheme< C, E, K > > cryptoConstr
 Constructor for the CryptoScheme.
Element cryptoParameter
 Parameters to pass to the CryptoScheme constructor.
Map< String, VariableInfoinfos
 All variableInfos of this agent.
HashMap< String, Integer > requestCount
 Number of Decryption requests received for every variable.
Random rand = new SecureRandom()
 A source of randomness.
boolean started = false
 Whether the algorithm has already started.

Detailed Description

P2-DPOP's collaborative decryption module.

This is the Decrypt() procedure from the following paper: Thomas Leaute and Boi Faltings. Privacy-preserving multi-agent constraint satisfaction. In Proceedings of the 2009 IEEE International Conference on PrivAcy, Security, riSk and Trust (PASSAT'09), Vancouver, British Columbia, August 29-31 2009. IEEE Computer Society Press.

Author
Eric Zbinden, Thomas Leaute
Parameters
<C>the type used for cleartext numbers
<E>the type used for encrypted numbers
<K>the class used for shares of the public key

Constructor & Destructor Documentation

◆ CollaborativeDecryption() [1/2]

frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.CollaborativeDecryption ( DCOPProblemInterface<?, C > problem,
Element parameters ) throws ClassNotFoundException, NoSuchMethodException

Constructor from XML descriptions.

Parameters
problemdescription of the problem
parametersdescription of the parameters of CollaborativeDecryption
Exceptions
ClassNotFoundExceptionif the class for the CryptoScheme is not found
NoSuchMethodExceptionif the CryptoScheme does not have a constructor that takes in an Element

References CollaborativeDecryption(), and problem.

Referenced by CollaborativeDecryption(), and frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.VectorOutput< C extends Addable< C > >.VectorOutput().

Here is the call graph for this function:

◆ CollaborativeDecryption() [2/2]

frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.CollaborativeDecryption ( Element parameters,
DCOPProblemInterface<?, C > problem )

The constructor called in "statistics gatherer" mode.

Parameters
problemthe overall problem
parametersthe description of what statistics should be reported

References checkModulus(), frodo2.solutionSpaces.DCOPProblemInterface< V extends Addable< V >, U extends Addable< U > >.getVariables(), problem, and requestCount.

Here is the call graph for this function:

Member Function Documentation

◆ addDecryptRequest()

void frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.addDecryptRequest ( String var)
private

Add one to the request counter of a variable passed in argument.

Parameters
varthe variable who ask a decryption

References requestCount.

◆ checkModulus()

boolean frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.checkModulus ( Element params)
private

Checks that the ElGamal modulus has a number of bits greater than the product of all domain sizes.

Parameters
paramsthe CryptoScheme params
Returns
whether the ElGamal modulus has a number of bits greater than the product of all domain sizes

References frodo2.solutionSpaces.DCOPProblemInterface< V extends Addable< V >, U extends Addable< U > >.getDomainSize(), and frodo2.solutionSpaces.DCOPProblemInterface< V extends Addable< V >, U extends Addable< U > >.getVariables().

Referenced by CollaborativeDecryption().

Here is the call graph for this function:

◆ getMsgTypes()

◆ getRequestCountMapping()

Map< String, Integer > frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.getRequestCountMapping ( )
Returns
the mapping of the number of decryption requests. Used in statistic gathering mode

◆ getStatsFromQueue()

void frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.getStatsFromQueue ( Queue queue)

◆ init()

◆ notifyIn()

◆ requestCount()

int frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.requestCount ( )
Returns
the total number of decryption requests. Used in statistic gathering mode

References requestCount.

◆ reset()

◆ setQueue()

◆ setSilent()

void frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.setSilent ( boolean silent)

Member Data Documentation

◆ CRYPTO_SCHEME_TYPE

◆ cryptoConstr

Constructor<? extends CryptoScheme<C,E,K> > frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.cryptoConstr
private

Constructor for the CryptoScheme.

Referenced by init().

◆ cryptoParameter

Element frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.cryptoParameter
private

Parameters to pass to the CryptoScheme constructor.

If no argument need, cryptoParameter is null

◆ infos

Map<String, VariableInfo> frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.infos
private

All variableInfos of this agent.

Referenced by init().

◆ KEY_SHARE_TYPE

final MessageType frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.KEY_SHARE_TYPE = new MessageType ("P3/2-DPOP", "CollaborativeDecryption", "KeyShareType")
static

◆ OUTPUT_TYPE

◆ problem

DCOPProblemInterface<?,C> frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.problem
private

This problem.

Referenced by CollaborativeDecryption(), and CollaborativeDecryption().

◆ queue

Queue frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.queue
private

Queue of this agent module.

Referenced by getStatsFromQueue(), and setQueue().

◆ rand

◆ reportStats

boolean frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.reportStats = true
private

Whether to report stats.

◆ REQUEST_TYPE

◆ requestCount

◆ started

boolean frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.started = false
private

Whether the algorithm has already started.

◆ STAT_REQUEST_TYPE

◆ VECTOR_OUTPUT_TYPE

final MessageType frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.VECTOR_OUTPUT_TYPE = new MessageType ("P3/2-DPOP", "CollaborativeDecryption", "VectorDecryptionOutput")
static

The type of the messages containing the outputs of decryptions.

Referenced by frodo2.algorithms.dpop.privacy.SecureRerooting< C extends Addable< C >, E extends AddableLimited< C, E >.getMsgTypes().

◆ VECTOR_REQUEST_TYPE


The documentation for this class was generated from the following file: