|
FRODO Version 2.19.1
An open-source framework for Distributed Constraint Optimization (DCOP)
|
P2-DPOP's collaborative decryption module. More...

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< MessageType > | getMsgTypes () |
| 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, VariableInfo > | infos |
| 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. | |
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.
| <C> | the type used for cleartext numbers |
| <E> | the type used for encrypted numbers |
| <K> | the class used for shares of the public key |
| 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.
| problem | description of the problem |
| parameters | description of the parameters of CollaborativeDecryption |
| ClassNotFoundException | if the class for the CryptoScheme is not found |
| NoSuchMethodException | if 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().

| 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.
| problem | the overall problem |
| parameters | the description of what statistics should be reported |
References checkModulus(), frodo2.solutionSpaces.DCOPProblemInterface< V extends Addable< V >, U extends Addable< U > >.getVariables(), problem, and requestCount.

|
private |
Add one to the request counter of a variable passed in argument.
| var | the variable who ask a decryption |
References requestCount.
|
private |
Checks that the ElGamal modulus has a number of bits greater than the product of all domain sizes.
| params | the CryptoScheme params |
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().

| Collection< MessageType > frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.getMsgTypes | ( | ) |
Implements frodo2.communication.MessageListener< T >.
References frodo2.algorithms.AgentInterface< V extends Addable< V > >.AGENT_FINISHED, frodo2.algorithms.dpop.privacy.SecureCircularRouting.DELIVERY_MSG_TYPE, frodo2.algorithms.varOrdering.dfs.DFSgenerationWithOrder< V extends Addable< V >, U extends Addable< U > >.OUTPUT_ORDER_TYPE, REQUEST_TYPE, frodo2.algorithms.AgentInterface< V extends Addable< V > >.START_AGENT, frodo2.algorithms.varOrdering.dfs.DFSgenerationWithOrder< V extends Addable< V >, U extends Addable< U > >.VARIABLE_COUNT_TYPE, and VECTOR_REQUEST_TYPE.
| Map< String, Integer > frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.getRequestCountMapping | ( | ) |
| void frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.getStatsFromQueue | ( | Queue | queue | ) |
Implements frodo2.algorithms.StatsReporter.
References queue, and STAT_REQUEST_TYPE.
|
private |
Initiate the statistic gatherer.
References cryptoConstr, frodo2.solutionSpaces.DCOPProblemInterface< V extends Addable< V >, U extends Addable< U > >.getMyVars(), frodo2.solutionSpaces.DCOPProblemInterface< V extends Addable< V >, U extends Addable< U > >.getNbrNeighbors(), infos, and requestCount.

| void frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.notifyIn | ( | Message | msg | ) |
Implements frodo2.communication.IncomingMsgPolicyInterface< T >.
References frodo2.communication.MessageType.equals(), notifyIn(), and STAT_REQUEST_TYPE.
Referenced by notifyIn().

| int frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.requestCount | ( | ) |
References requestCount.
| void frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.reset | ( | ) |
| void frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.setQueue | ( | Queue | queue | ) |
Implements frodo2.communication.MessageListener< T >.
References queue.
| void frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.setSilent | ( | boolean | silent | ) |
Implements frodo2.algorithms.StatsReporter.
|
static |
The type of the messages containing the CryptoScheme.
Referenced by frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.CryptoSchemeMsg< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.CryptoSchemeMsg(), frodo2.algorithms.dpop.privacy.EncryptedUTIL< V extends Addable< V >, U extends Addable< U >, E extends AddableLimited< U, E >.getMsgTypes(), frodo2.algorithms.dpop.privacy.SecureRerooting< C extends Addable< C >, E extends AddableLimited< C, E >.getMsgTypes(), frodo2.algorithms.dpop.privacy.test.SecureRerootingTest.getMsgTypes(), and frodo2.algorithms.dpop.privacy.test.SecureRerootingTest.notifyIn().
|
private |
Constructor for the CryptoScheme.
Referenced by init().
|
private |
Parameters to pass to the CryptoScheme constructor.
If no argument need, cryptoParameter is null
|
private |
All variableInfos of this agent.
Referenced by init().
|
static |
The type of the message used to exchange KeyPair.
Referenced by frodo2.algorithms.dpop.privacy.KeyShareMsg< K extends CryptoScheme.PublicKeyShare >.KeyShareMsg(), and frodo2.algorithms.dpop.privacy.KeyShareMsg< K extends CryptoScheme.PublicKeyShare >.KeyShareMsg().
|
static |
The type of the messages containing the outputs of decryptions.
Referenced by frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.DecryptionOutput< C extends Addable< C > >.DecryptionOutput(), frodo2.algorithms.dpop.privacy.EncryptedUTIL< V extends Addable< V >, U extends Addable< U >, E extends AddableLimited< U, E >.getMsgTypes(), and frodo2.algorithms.dpop.privacy.SecureRerooting< C extends Addable< C >, E extends AddableLimited< C, E >.getMsgTypes().
|
private |
This problem.
Referenced by CollaborativeDecryption(), and CollaborativeDecryption().
|
private |
Queue of this agent module.
Referenced by getStatsFromQueue(), and setQueue().
|
private |
|
private |
Whether to report stats.
|
static |
The type of the messages corresponding to decryption requests.
Referenced by frodo2.algorithms.dpop.privacy.DecryptRequest< C extends Addable< C >, E extends AddableLimited< C, E >.DecryptRequest(), frodo2.algorithms.dpop.privacy.DecryptRequest< C extends Addable< C >, E extends AddableLimited< C, E >.DecryptRequest(), and getMsgTypes().
|
private |
Number of Decryption requests received for every variable.
Used for statistics gathering mode
Referenced by addDecryptRequest(), CollaborativeDecryption(), init(), requestCount(), reset(), and frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.StatRequestOutput.StatRequestOutput().
|
private |
Whether the algorithm has already started.
|
static |
The type of the message containing the decryption request stats.
Referenced by getStatsFromQueue(), notifyIn(), frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.StatRequestOutput.StatRequestOutput(), and frodo2.algorithms.dpop.privacy.CollaborativeDecryption< C extends Addable< C >, E extends AddableLimited< C, E, K extends PublicKeyShare >.StatRequestOutput.StatRequestOutput().
|
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().
|
static |
The type of the messages corresponding to vector decryption requests.
Referenced by frodo2.algorithms.dpop.privacy.DecryptVectorRequest< C extends Addable< C >, E extends AddableLimited< C, E >.DecryptVectorRequest(), frodo2.algorithms.dpop.privacy.DecryptVectorRequest< C extends Addable< C >, E extends AddableLimited< C, E >.DecryptVectorRequest(), and getMsgTypes().