public class GainFunction
extends java.lang.Object
Constructor and Description |
---|
GainFunction(java.lang.String nameFunction)
Constructs a gain function.
|
Modifier and Type | Method and Description |
---|---|
double |
binGeneralGainFunction(java.lang.String[] guesses,
java.lang.String input)
Returns the gain value of the general binary gain function
given a guess and an input.
|
double |
binHappyGainFunction(java.lang.String guess,
java.lang.String input)
Returns the gain value of the happy gain function
given a guess and an input.
|
double |
binKTriesGainFunction(java.lang.String[] guesses,
java.lang.String input,
int numOfTries,
java.lang.String[] inputDomain)
Returns the gain value of the k-tries gain function
given a guess and an input.
|
static boolean |
checkConsistency(ProbDist pd,
java.util.Set<java.lang.String> guessDomain)
Returns whether each guess in a given guess domain is contained
in a given probability distribution.
|
double |
distanceGainFunction(java.lang.String guess,
java.lang.String input,
java.util.Set<java.lang.String> guessDomain,
int metric)
Returns the gain value of the distance gain function
given a guess and an input.
|
double |
egTigerGainFunction(java.lang.String guess,
java.lang.String input) |
double |
gain(java.lang.String[] guess,
java.lang.String input,
java.util.Set<java.lang.String> guessDomain,
java.lang.String[] inputDomain)
Returns the gain of the attacker when a guess, an input
and a guess domain are given.
|
java.lang.String |
getNameOfGainFunction()
Returns the name of the gain function.
|
double |
identityGainFunction(java.lang.String guess,
java.lang.String input)
Returns the gain value of the identity gain function
given a guess and an input.
|
void |
printGainFunctionsList()
Prints the list of all gain functions available in the leakiEst.
|
public GainFunction(java.lang.String nameFunction)
nameFunction
- a name of the gain functionpublic double binGeneralGainFunction(java.lang.String[] guesses, java.lang.String input)
guesses
- attaker's guesses on the securet inputinput
- secret inputpublic double binHappyGainFunction(java.lang.String guess, java.lang.String input)
guess
- attaker's guess on the securet inputinput
- secret inputpublic double binKTriesGainFunction(java.lang.String[] guesses, java.lang.String input, int numOfTries, java.lang.String[] inputDomain)
guesses
- attaker's guess on the securet inputinput
- secret inputnumOfTries
- the number of tries of guessinginputDomain
- the set of all inputspublic static boolean checkConsistency(ProbDist pd, java.util.Set<java.lang.String> guessDomain)
pd
- probability distributionguessDomain
- guess domainpublic double distanceGainFunction(java.lang.String guess, java.lang.String input, java.util.Set<java.lang.String> guessDomain, int metric)
guess
- attaker's guess on the securet inputinput
- secret inputguessDomain
- the set of all guessesmetric
- type of distancespublic double egTigerGainFunction(java.lang.String guess, java.lang.String input)
public double gain(java.lang.String[] guess, java.lang.String input, java.util.Set<java.lang.String> guessDomain, java.lang.String[] inputDomain)
guess
- attaker's guess on the securet inputinput
- secret inputguessDomain
- the guess domaininputDomain
- the input domainpublic java.lang.String getNameOfGainFunction()
public double identityGainFunction(java.lang.String guess, java.lang.String input)
guess
- attaker's guess on the securet inputinput
- secret inputpublic void printGainFunctionsList()