tests pass

mixer
Tal Moran 2017-01-19 15:24:35 +02:00
parent fc2c26d7e9
commit deeed4f20f
3 changed files with 6 additions and 8 deletions

View File

@ -33,16 +33,16 @@ public class BenesNetwork implements PermutationNetwork
* (that is, switch j has inputs/outputs 2j and 2j+1)
*
* @param logN log (base 2) of number of inputs to Benes network (N = 2^{logN})
* @param layer current layer index. Must be between 1 and 2*logN-2 (layer 0 doesn't have a previous layer)
* @param layer current layer index. Must be between 0 and 2*logN-1 (layer -1 is the inputs and layer 2*logN-1 is the outputs)
* @param inputIdx the input Idx for the current layer (must be between 0 and (1 << logN) - 1
*
* @return the requested index
*/
public static int getOutputIdxInPreviousLayer(int logN, int layer, int inputIdx) {
assert (layer >= 0) && (layer < 2*logN - 1);
assert (layer >= 0) && (layer <= 2*logN - 1);
assert (inputIdx >= 0) && (inputIdx < 1 << logN);
if ((layer == 0) || (inputIdx & 1) == 0) {
if ((layer == 0) || (layer == 2*logN - 1) || (inputIdx & 1) == 0) {
// layer 0 inputs and all even inputs
// are connected straight "across" everywhere
return inputIdx;

View File

@ -147,9 +147,6 @@ public class Mixer implements meerkat.crypto.mixnet.Mixer {
, EncryptionRandomness[][] randomnesses) throws InvalidProtocolBufferException {
int layers = mixNetwork.getNumLayers();
int n = mixNetwork.getNumInputs();
Switch[] switchesLayer;
int index1,index2;
int switchIndex = 0;
int numSwitches = n >> 1;
Mix2Proof[][] proofsTable = new Mix2Proof[layers][numSwitches];
@ -168,7 +165,7 @@ public class Mixer implements meerkat.crypto.mixnet.Mixer {
r1 = randomnesses[layer][2 * switchIdx];
r2 = randomnesses[layer][2 * switchIdx + 1];
proofsTable[layer][switchIndex] =
proofsTable[layer][switchIdx] =
prover.prove(a, b, c, d, isCrossed, layer, switchIdx, out0, out1, r1, r2);
}
}
@ -187,7 +184,7 @@ public class Mixer implements meerkat.crypto.mixnet.Mixer {
int n = ciphertexts.size();
assert (n > 1 && isPowerOfTwo(n));
int logN = Integer.numberOfTrailingZeros(Integer.highestOneBit(n)) + 1;
int logN = Integer.numberOfTrailingZeros(Integer.highestOneBit(n));
PermutationNetwork net = generateMixNetwork(logN,random);

View File

@ -18,6 +18,7 @@ public class Mix2 {
public ChallengeGenerator(ECElGamalEncryption encryptor, Random rand) {
this.encryptor = encryptor;
this.rand = rand;
group = encryptor.getGroup();
}