FRODO Version 2.19.1
An open-source framework for Distributed Constraint Optimization (DCOP)
Loading...
Searching...
No Matches
frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > > Class Template Reference

Module that intercepts messages during UTIL and VALUE propagation and obfuscates the variable names, variable domains, and utility values. More...

Inheritance diagram for frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >:

Public Member Functions

 VariableObfuscation (DCOPProblemInterface< V, U > problem, Element parameters)
 Constructor.
Decision notifyOut (Message msg)
Collection< MessageTypegetMsgTypes ()
void setQueue (Queue queue)
void notifyIn (Message msg)
Public Member Functions inherited from frodo2.communication.OutgoingMsgPolicyInterface< T >
default Decision notifyOut (Object fromAgent, Message msg)
 Notifies the listener of an outgoing message.
default Decision notifyOut (Object fromAgent, Message msg, Collection<? extends Object > toAgents)
 Notifies the listener of an outgoing message.
default Decision notifyOut (Message msg, Collection<? extends Object > toAgents)
 Notifies the listener of an outgoing message.
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 CODE_NAME_TYPE = new MessageType ("P-DPOP", "VariableObfuscation", "Code_Name")
 The type of the messages containing code names.
static final MessageType OBFUSCATED_VALUE_TYPE = new MessageType ("P-DPOP", "VariableObfuscation", "VALUE")
 The type of obfuscated VALUE messages.
static final MessageType OBFUSCATED_UTIL_TYPE = new MessageType ("P-DPOP", "VariableObfuscation", "UTIL")
 The type of obfuscated UTIL messages.

Private Member Functions

void generateCodeName (String var)
 In mergeBack mode: Generates one codeName for the input variable Without mergeBack mode: Initiate general codeName map only.
void generateUtilObfuscKeys (String var)
 In mergeBack mode: Generates a range of utilityKey for the input variable Without mergeBack mode: Initiate general utilityKey map only.
void generateNewCodeName (String myVar, String child)
 Generates a new codeName and new utility keys for the couple myVar-child and add it in the corresponding generals tables.
void initiateAllMaps (String var)
 Initiates all maps for the input variable.
String randomCodeName ()
 Create a random integer of 32 bits and return it in hex-decimal string form.
V[] randomDomain (V[] initDom)
 Generates a domain of random numbers.
getTranslatedValue (String myVar, String other, V value, boolean decode)
 Translates (decodes or encodes) a specified value of the domain of variable other.
void init ()
 Initiates the variableObfuscation module.
void init (String var)
 Initiates all datastructures related to the input variable.
void generateObfuscatedDomains (String var)
 In mergeBack mode: Generates an obfuscated domain for the input variable.
void sendDelayedMsg (String myVar)
 Send the delayed UTILmsg.
void addReverseMap (String parent, String myVar, String codeName, V[] domain, V[] obfuscatedDomain, AddableBigInteger[] utilityKeys)
 Puts in the reverse maps the assignment codeName-variable and parent-domain for a given child variable.
String decodeCodeName (String myVar, String codeName)
 Returns the variable assigned with the given codeName if and only if the variable who want to decode is a child or a pseudo child of the coded variable.
String encodeCodeName (String myVar, String parent)
 Returns the codeName assigned with the given parent if and only if the variable who wants to decode is a child or a pseudo child of the coded variable.
V[] decodeDomain (String myVar, String parent)
 Returns the parent's cleartext domain if and only if the variable who wants to decode is a child or wants to decode its own domain.
V[] encodeDomain (String myVar, String parent)
 Returns the parent's obfuscated domain if and only if the variable who wants to obfuscate is a child or wants to obfuscate its own domain.
AddableBigInteger[] encryptUtility (String myVar, String parent)
AddableBigInteger[] decryptUtility (String myVar, String child)
AddableBigInteger[] decryptMySelfUtility (String myVar, String child)

Private Attributes

Random rand = new SecureRandom()
 A random Stream.
Map< String, String > codeNamesMerged = new HashMap<String, String>()
 A Map containing assignments variable-codeName with mergeBack.
Map< String, Map< String, String > > codeNamesUnique = new HashMap<String, Map<String, String>>()
 A Map containing assignment variable-codeName without mergeBack: (Pseudo-)Parent - Child - CodeName.
Map< String, V[]> obfuscatedMergedDomains = new HashMap<String, V[]>()
 A Map containing assignments variable-domain with mergeBack.
Map< String, Map< String, V[]> > obfuscatedUniqueDomains = new HashMap<String, Map<String, V[]>>()
 A Map containing assignments variable-domain without mergeBack: (Pseudo-)Parent - Child - Domain.
Map< String, AddableBigInteger[]> utilKeyMerged = new HashMap<String, AddableBigInteger[]>()
 A Map containing assignments of obfuscation keys to all variables of this agent.
Map< String, Map< String, AddableBigInteger[]> > utilKeyUnique = new HashMap<String, Map<String, AddableBigInteger[]>>()
 A Map containing assignments of obfuscation keys without mergeBack: (Pseudo-)Parent - Child - UtilKey.
Map< String, Map< String, String > > decodeCodeName = new HashMap<String, Map<String, String>>()
 Map for all variables of this agent of reverse map assignment codeName-variable of their (pseudo-)parents: Child - Parents' CodeName - (Pseudo-)Parent.
Map< String, Map< String, String > > encodeParent = new HashMap<String, Map<String, String>>()
 Map for all variables of this agent of map assignment variable-codeName of their (pseudo-)parents: Child - (Pseudo-)Parent - Parents' CodeName.
Map< String, Map< String, List< V[]> > > decodeDomains = new HashMap<String, Map< String, List<V[]> >>()
 Map for all variables of this agent of map assignment variable-domain of their (pseudo-)parents: Child - (Pseudo-)Parent - Domain.
Map< String, Map< String, AddableBigInteger[]> > receivedUtilKey = new HashMap<String, Map<String, AddableBigInteger[]>>()
 Map for all variables of this agent of maps of variable-utility obfuscation key assignments Child - (Pseudo-)Parent - Utility key.
Map< String, Map< String, AddableBigInteger[]> > ownUtilKey = new HashMap<String, Map<String, AddableBigInteger[]>>()
 own - (myChild OR myCodeName sent to myChild) - myUTIL
Map< String, Integer > numDecrypt = new HashMap<String, Integer>()
 Map with : Parent - Number of time utilities in UTILmsg must be decrypted.
Map< String, String > parents = new HashMap<String, String>()
 The true parent of each of this agent's variables in the DFS.
final boolean mergeBack
 If mergeBackEdges are allowed.
final AddableBigInteger infeasibleUtil
 Long.MIN_VALUE if the problem is a maximization problem, Long.MAX_VALUE otherwise.
final int numBits
 The size of the BigInteger for the utility obfuscation.
final int default_numBits = 128
 The size by default of the BigInteger used for utility obfuscation.
Map< String, Integer > incomingExpected = new HashMap<String, Integer>()
 For each internal variable, the number of codeName messages it is still expecting.
Map< String, ArrayList< UTILmsg< V, AddableBigInteger > > > waitingMsg = new HashMap<String, ArrayList<UTILmsg<V, AddableBigInteger>>>()
 Set of all waiting msg.
Map< String, Boolean > hasDecoded = new HashMap<String, Boolean>()
 Map that says if a variable has decoded a UTIL.
Map< String, Map< String, ArrayList< String > > > utilContent = new HashMap<String, Map<String, ArrayList<String>>>()
 Map with the UTIL codeNames received (used without mergeBack).
Queue queue
 The agent's queue.
boolean started = false
 Whether the algorithm has already started.
DCOPProblemInterface< V, U > problem
 Problem description.

Detailed Description

Module that intercepts messages during UTIL and VALUE propagation and obfuscates the variable names, variable domains, and utility values.

Parameters
<V>the type used for variable values
<U>the type used for utility values, in stats gatherer mode only (in normal mode, AddableBigInteger is used)
Author
Eric Zbinden, Thomas Leaute

Constructor & Destructor Documentation

◆ VariableObfuscation()

frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.VariableObfuscation ( DCOPProblemInterface< V, U > problem,
Element parameters )

Constructor.

Parameters
problemproblem description
parametersif mergeBackEdges feature is used or not

References default_numBits, infeasibleUtil, mergeBack, numBits, problem, and VariableObfuscation().

Referenced by sendDelayedMsg(), and VariableObfuscation().

Here is the call graph for this function:

Member Function Documentation

◆ addReverseMap()

void frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.addReverseMap ( String parent,
String myVar,
String codeName,
V[] domain,
V[] obfuscatedDomain,
AddableBigInteger[] utilityKeys )
private

Puts in the reverse maps the assignment codeName-variable and parent-domain for a given child variable.

Parameters
parentthe parent that sent this message
myVarthe given child variable that received the assignment codeName-variable from its parent
codeNameThe code name of the parent
domainthe domain of the parent variable, in cleartext
obfuscatedDomainthe obfuscated domain of the parent
utilityKeysthe utility obfuscation keys of the parent

References decodeCodeName, decodeDomains, encodeParent, and receivedUtilKey.

Referenced by notifyOut().

◆ decodeCodeName()

String frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.decodeCodeName ( String myVar,
String codeName )
private

Returns the variable assigned with the given codeName if and only if the variable who want to decode is a child or a pseudo child of the coded variable.

Else, return null

Parameters
myVarthe variable who want to decode the codeName
codeNamethe codeName to decode
Returns
the variable which correspond to the code name or null if this knowledge is unknown

References decodeCodeName.

◆ decodeDomain()

V[] frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.decodeDomain ( String myVar,
String parent )
private

Returns the parent's cleartext domain if and only if the variable who wants to decode is a child or wants to decode its own domain.

Else, returns null

Parameters
myVarthe variable who want to decode the domain
parentthe parent whose domain has to be decoded
Returns
The parent's cleartext domain. Or null if this parent's cleartext domain is unknown.

References decodeDomains.

Referenced by getTranslatedValue().

◆ decryptMySelfUtility()

AddableBigInteger[] frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.decryptMySelfUtility ( String myVar,
String child )
private
Parameters
myVarthe variable that wants to decrypt its own utility keys
childthe child to whom myVar has sent this utilityKey
Returns
a tab with the utility keys of inverse sign

References frodo2.solutionSpaces.crypto.AddableBigInteger.flipSign(), and ownUtilKey.

Here is the call graph for this function:

◆ decryptUtility()

AddableBigInteger[] frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.decryptUtility ( String myVar,
String child )
private
Parameters
myVarthe variable that called this method
childthe variable whose utility keys we want
Returns
the tab of the utility keys of inverse sign

References frodo2.solutionSpaces.crypto.AddableBigInteger.flipSign(), and receivedUtilKey.

Here is the call graph for this function:

◆ encodeCodeName()

String frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.encodeCodeName ( String myVar,
String parent )
private

Returns the codeName assigned with the given parent if and only if the variable who wants to decode is a child or a pseudo child of the coded variable.

Else, returns null

Parameters
myVarthe variable who wants to decode the codeName
parentthe parent to encode
Returns
the codeName which corresponds to the parent or null if this codename is unknown

References encodeParent.

◆ encodeDomain()

V[] frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.encodeDomain ( String myVar,
String parent )
private

Returns the parent's obfuscated domain if and only if the variable who wants to obfuscate is a child or wants to obfuscate its own domain.

Else, returns null

Parameters
myVarthe variable who wants to obfuscate the domain
parentthe parent whose domain has to be obfuscated
Returns
The parent's obfuscated domain. Or null if this parent's domain is unknown.

References decodeDomains.

Referenced by getTranslatedValue().

◆ encryptUtility()

AddableBigInteger[] frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.encryptUtility ( String myVar,
String parent )
private
Parameters
myVarthe variable that called this method
parentthe variable whose utility keys we want
Returns
the tab of the utility keys

References receivedUtilKey.

◆ generateCodeName()

void frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.generateCodeName ( String var)
private

In mergeBack mode: Generates one codeName for the input variable Without mergeBack mode: Initiate general codeName map only.

Parameters
varthe variable

References codeNamesMerged, codeNamesUnique, mergeBack, and randomCodeName().

Referenced by init().

Here is the call graph for this function:

◆ generateNewCodeName()

void frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.generateNewCodeName ( String myVar,
String child )
private

Generates a new codeName and new utility keys for the couple myVar-child and add it in the corresponding generals tables.

Parameters
myVarthe var that generates the codeName
childthe child who will receive msg that contains myVar's codeName
Warning
to use only without mergeBack mode

References codeNamesUnique, mergeBack, numBits, obfuscatedUniqueDomains, problem, rand, randomCodeName(), randomDomain(), and utilKeyUnique.

Referenced by notifyOut().

Here is the call graph for this function:

◆ generateObfuscatedDomains()

void frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.generateObfuscatedDomains ( String var)
private

In mergeBack mode: Generates an obfuscated domain for the input variable.

Without mergeBack mode: Only initiates the table

Parameters
varthe variable

References mergeBack, obfuscatedMergedDomains, obfuscatedUniqueDomains, problem, and randomDomain().

Referenced by init().

Here is the call graph for this function:

◆ generateUtilObfuscKeys()

void frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.generateUtilObfuscKeys ( String var)
private

In mergeBack mode: Generates a range of utilityKey for the input variable Without mergeBack mode: Initiate general utilityKey map only.

Parameters
varthe variable

References mergeBack, numBits, problem, rand, utilKeyMerged, and utilKeyUnique.

Referenced by init().

◆ getMsgTypes()

◆ getTranslatedValue()

V frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.getTranslatedValue ( String myVar,
String other,
V value,
boolean decode )
private

Translates (decodes or encodes) a specified value of the domain of variable other.

Parameters
myVarthe variable who calls this method
otherthe variable who owns the value to translate
valuethe value to be translated
decodetrue if myVar wants to decode the value, false if myVar wants to encode the value
Returns
the specified value translated (decoded or encoded) if myVar knows the translation, else returns null

References decodeDomain(), and encodeDomain().

Here is the call graph for this function:

◆ init() [1/2]

void frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.init ( )
private

Initiates the variableObfuscation module.

References hasDecoded, init(), and problem.

Referenced by init(), and notifyIn().

Here is the call graph for this function:

◆ init() [2/2]

void frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.init ( String var)
private

Initiates all datastructures related to the input variable.

Parameters
varthe variable

References generateCodeName(), generateObfuscatedDomains(), generateUtilObfuscKeys(), and initiateAllMaps().

Here is the call graph for this function:

◆ initiateAllMaps()

void frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.initiateAllMaps ( String var)
private

Initiates all maps for the input variable.

Parameters
varthe variable

References decodeCodeName, decodeDomains, encodeParent, incomingExpected, mergeBack, ownUtilKey, receivedUtilKey, utilContent, and waitingMsg.

Referenced by init().

◆ notifyIn()

◆ notifyOut()

◆ randomCodeName()

String frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.randomCodeName ( )
private

Create a random integer of 32 bits and return it in hex-decimal string form.

Returns
a randomCodeName

References rand.

Referenced by generateCodeName(), and generateNewCodeName().

◆ randomDomain()

V[] frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.randomDomain ( V[] initDom)
private

Generates a domain of random numbers.

Parameters
initDomthe initial domain
Returns
a random domain of values in form of a array of size specified
Todo
Make all obfuscated domains with the same size (given as a parameter in the XML file).

References randomDomain().

Referenced by generateNewCodeName(), generateObfuscatedDomains(), and randomDomain().

Here is the call graph for this function:

◆ sendDelayedMsg()

void frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.sendDelayedMsg ( String myVar)
private

◆ setQueue()

Member Data Documentation

◆ CODE_NAME_TYPE

◆ codeNamesMerged

Map<String, String> frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.codeNamesMerged = new HashMap<String, String>()
private

A Map containing assignments variable-codeName with mergeBack.

Note
must be used only when codeName are generated or to send codeNameMsg when mergeBack=true

Referenced by generateCodeName(), and notifyOut().

◆ codeNamesUnique

Map<String, Map<String, String> > frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.codeNamesUnique = new HashMap<String, Map<String, String>>()
private

A Map containing assignment variable-codeName without mergeBack: (Pseudo-)Parent - Child - CodeName.

Note
must be used only when codeName are generated or to send codeNameMsg when mergeBack=false

Referenced by generateCodeName(), generateNewCodeName(), and notifyOut().

◆ decodeCodeName

Map<String, Map<String, String> > frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.decodeCodeName = new HashMap<String, Map<String, String>>()
private

Map for all variables of this agent of reverse map assignment codeName-variable of their (pseudo-)parents: Child - Parents' CodeName - (Pseudo-)Parent.

Referenced by addReverseMap(), decodeCodeName(), initiateAllMaps(), and notifyOut().

◆ decodeDomains

Map<String, Map< String, List<V[]> > > frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.decodeDomains = new HashMap<String, Map< String, List<V[]> >>()
private

Map for all variables of this agent of map assignment variable-domain of their (pseudo-)parents: Child - (Pseudo-)Parent - Domain.

Cleartext domain in [0], obfuscated domain in [1]

Referenced by addReverseMap(), decodeDomain(), encodeDomain(), initiateAllMaps(), and notifyOut().

◆ default_numBits

final int frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.default_numBits = 128
private

The size by default of the BigInteger used for utility obfuscation.

Referenced by VariableObfuscation().

◆ encodeParent

Map<String, Map<String, String> > frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.encodeParent = new HashMap<String, Map<String, String>>()
private

Map for all variables of this agent of map assignment variable-codeName of their (pseudo-)parents: Child - (Pseudo-)Parent - Parents' CodeName.

Referenced by addReverseMap(), encodeCodeName(), and initiateAllMaps().

◆ hasDecoded

Map<String, Boolean> frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.hasDecoded = new HashMap<String, Boolean>()
private

Map that says if a variable has decoded a UTIL.

Referenced by init().

◆ incomingExpected

Map<String, Integer> frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.incomingExpected = new HashMap<String, Integer>()
private

For each internal variable, the number of codeName messages it is still expecting.

Referenced by initiateAllMaps(), and notifyOut().

◆ infeasibleUtil

final AddableBigInteger frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.infeasibleUtil
private

Long.MIN_VALUE if the problem is a maximization problem, Long.MAX_VALUE otherwise.

Referenced by VariableObfuscation().

◆ mergeBack

◆ numBits

final int frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.numBits
private

The size of the BigInteger for the utility obfuscation.

Referenced by generateNewCodeName(), generateUtilObfuscKeys(), and VariableObfuscation().

◆ numDecrypt

Map<String, Integer> frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.numDecrypt = new HashMap<String, Integer>()
private

Map with : Parent - Number of time utilities in UTILmsg must be decrypted.

Referenced by notifyOut().

◆ OBFUSCATED_UTIL_TYPE

◆ OBFUSCATED_VALUE_TYPE

◆ obfuscatedMergedDomains

Map<String, V[]> frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.obfuscatedMergedDomains = new HashMap<String, V[]>()
private

A Map containing assignments variable-domain with mergeBack.

Note
must be used only when domains are generated or to send codeNameMsg when mergeBack=true

Referenced by generateObfuscatedDomains(), and notifyOut().

◆ obfuscatedUniqueDomains

Map<String, Map<String, V[]> > frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.obfuscatedUniqueDomains = new HashMap<String, Map<String, V[]>>()
private

A Map containing assignments variable-domain without mergeBack: (Pseudo-)Parent - Child - Domain.

Note
must be used only when domains are generated or to send codeNameMsg when mergeBack=false

Referenced by generateNewCodeName(), generateObfuscatedDomains(), and notifyOut().

◆ ownUtilKey

Map<String, Map<String, AddableBigInteger[]> > frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.ownUtilKey = new HashMap<String, Map<String, AddableBigInteger[]>>()
private

own - (myChild OR myCodeName sent to myChild) - myUTIL

Referenced by decryptMySelfUtility(), initiateAllMaps(), and notifyOut().

◆ parents

Map<String, String> frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.parents = new HashMap<String, String>()
private

The true parent of each of this agent's variables in the DFS.

Referenced by notifyOut().

◆ problem

◆ queue

Queue frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.queue
private

The agent's queue.

Referenced by notifyOut(), and setQueue().

◆ rand

Random frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.rand = new SecureRandom()
private

A random Stream.

Referenced by generateNewCodeName(), generateUtilObfuscKeys(), and randomCodeName().

◆ receivedUtilKey

Map<String, Map<String, AddableBigInteger[]> > frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.receivedUtilKey = new HashMap<String, Map<String, AddableBigInteger[]>>()
private

Map for all variables of this agent of maps of variable-utility obfuscation key assignments Child - (Pseudo-)Parent - Utility key.

Referenced by addReverseMap(), decryptUtility(), encryptUtility(), and initiateAllMaps().

◆ started

boolean frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.started = false
private

Whether the algorithm has already started.

Referenced by notifyIn().

◆ utilContent

Map<String, Map<String, ArrayList<String> > > frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.utilContent = new HashMap<String, Map<String, ArrayList<String>>>()
private

Map with the UTIL codeNames received (used without mergeBack).

Variable X - Children of X - CodeName(s) of X

Note
used only without mergeBack

Referenced by initiateAllMaps(), and notifyOut().

◆ utilKeyMerged

Map<String, AddableBigInteger[]> frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.utilKeyMerged = new HashMap<String, AddableBigInteger[]>()
private

A Map containing assignments of obfuscation keys to all variables of this agent.

Note
must be used only when domains are generated or to send utilKey when mergeBack=true

Referenced by generateUtilObfuscKeys(), and notifyOut().

◆ utilKeyUnique

Map<String, Map<String, AddableBigInteger[]> > frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.utilKeyUnique = new HashMap<String, Map<String, AddableBigInteger[]>>()
private

A Map containing assignments of obfuscation keys without mergeBack: (Pseudo-)Parent - Child - UtilKey.

Note
must be used only when domains are generated or to send utilKey when mergeBack=false

Referenced by generateNewCodeName(), generateUtilObfuscKeys(), and notifyOut().

◆ waitingMsg

Map<String, ArrayList<UTILmsg<V, AddableBigInteger> > > frodo2.algorithms.dpop.privacy.VariableObfuscation< V extends Addable< V >, U extends Addable< U > >.waitingMsg = new HashMap<String, ArrayList<UTILmsg<V, AddableBigInteger>>>()
private

Set of all waiting msg.

Referenced by initiateAllMaps(), and sendDelayedMsg().


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