even simpler schemes and stuff
This commit is contained in:
parent
929a01c92c
commit
73aecc6420
|
@ -1,5 +1,8 @@
|
||||||
package dk.au.pir;
|
package dk.au.pir;
|
||||||
|
|
||||||
|
import dk.au.pir.protocols.evenSimpler.evenSimplerClient;
|
||||||
|
import dk.au.pir.protocols.evenSimpler.evenSimplerDatabase;
|
||||||
|
import dk.au.pir.protocols.evenSimpler.evenSimplerServer;
|
||||||
import dk.au.pir.protocols.interpoly.InterPolyClient;
|
import dk.au.pir.protocols.interpoly.InterPolyClient;
|
||||||
import dk.au.pir.protocols.interpoly.InterPolyDatabase;
|
import dk.au.pir.protocols.interpoly.InterPolyDatabase;
|
||||||
import dk.au.pir.protocols.interpoly.InterPolyServer;
|
import dk.au.pir.protocols.interpoly.InterPolyServer;
|
||||||
|
@ -12,6 +15,24 @@ import java.util.Arrays;
|
||||||
|
|
||||||
public class Driver {
|
public class Driver {
|
||||||
|
|
||||||
|
|
||||||
|
private static int[] evenSimplerScheme(int record) {
|
||||||
|
PIRSettings settings = new PIRSettings(8, 1, 2);
|
||||||
|
evenSimplerDatabase database = new evenSimplerDatabase(settings, new int[] {0, 0, 0, 1, 0, 0, 0, 0});
|
||||||
|
|
||||||
|
evenSimplerServer[] servers = new evenSimplerServer[settings.getNumServers()];
|
||||||
|
|
||||||
|
for (int i = 0; i < settings.getNumServers(); i++) {
|
||||||
|
servers[i] = new evenSimplerServer(database, settings);
|
||||||
|
}
|
||||||
|
|
||||||
|
evenSimplerClient client = new evenSimplerClient(settings, servers);
|
||||||
|
|
||||||
|
int[] res = client.receiveBits(record);
|
||||||
|
System.out.println("res: " + Arrays.toString(res));
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
private static int simpleScheme(int index) {
|
private static int simpleScheme(int index) {
|
||||||
PIRSettings settings = new PIRSettings(8, 2, 1);
|
PIRSettings settings = new PIRSettings(8, 2, 1);
|
||||||
SimpleDatabase database = new SimpleDatabase(settings, new int[] {0, 0, 1, 0, 0, 0, 0, 0});
|
SimpleDatabase database = new SimpleDatabase(settings, new int[] {0, 0, 1, 0, 0, 0, 0, 0});
|
||||||
|
@ -104,7 +125,8 @@ public class Driver {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
// generalBlockInterPolyTestButBetter(1);
|
// generalBlockInterPolyTestButBetter(1);
|
||||||
simpleBlockScheme(1);
|
//simpleBlockScheme(1);
|
||||||
|
evenSimplerScheme(1);
|
||||||
/*
|
/*
|
||||||
int sum = 0;
|
int sum = 0;
|
||||||
for (int i = 0; i < 1; i++) {
|
for (int i = 0; i < 1; i++) {
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
package dk.au.pir.protocols.evenSimpler;
|
||||||
|
|
||||||
|
import dk.au.pir.protocols.simple.SimpleServer;
|
||||||
|
import dk.au.pir.settings.PIRSettings;
|
||||||
|
|
||||||
|
public class evenSimplerClient {
|
||||||
|
|
||||||
|
|
||||||
|
private final PIRSettings settings;
|
||||||
|
private final evenSimplerServer[] servers;
|
||||||
|
|
||||||
|
public evenSimplerClient(PIRSettings settings, evenSimplerServer[] servers) {
|
||||||
|
this.settings = settings;
|
||||||
|
this.servers = servers;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int receiveBit(int index) {
|
||||||
|
int[] data = this.servers[0].giveDatabase();
|
||||||
|
return data[index];
|
||||||
|
}
|
||||||
|
|
||||||
|
public int[] receiveBits(int record) {
|
||||||
|
int[] res = new int[settings.getBlocksize()];
|
||||||
|
int[] data = this.servers[0].giveDatabase();
|
||||||
|
|
||||||
|
System.arraycopy(data, (record * settings.getBlocksize()), res, 0, settings.getBlocksize());
|
||||||
|
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
package dk.au.pir.protocols.evenSimpler;
|
||||||
|
|
||||||
|
|
||||||
|
import dk.au.pir.settings.PIRSettings;
|
||||||
|
|
||||||
|
public class evenSimplerDatabase {
|
||||||
|
|
||||||
|
private final int[] x;
|
||||||
|
|
||||||
|
public evenSimplerDatabase(PIRSettings settings, int[] x) {
|
||||||
|
this.x = x;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int[] getX() {
|
||||||
|
return x;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
package dk.au.pir.protocols.evenSimpler;
|
||||||
|
|
||||||
|
import dk.au.pir.protocols.simple.SimpleDatabase;
|
||||||
|
import dk.au.pir.settings.PIRSettings;
|
||||||
|
|
||||||
|
public class evenSimplerServer {
|
||||||
|
|
||||||
|
private final evenSimplerDatabase database;
|
||||||
|
private final PIRSettings settings;
|
||||||
|
private final int[] x;
|
||||||
|
|
||||||
|
public evenSimplerServer(evenSimplerDatabase database, PIRSettings settings) {
|
||||||
|
this.database = database;
|
||||||
|
this.settings = settings;
|
||||||
|
this.x = database.getX();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int[] giveDatabase() {
|
||||||
|
return this.x;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -1,12 +1,9 @@
|
||||||
package dk.au.pir.protocols.simple;
|
package dk.au.pir.protocols.simple;
|
||||||
|
|
||||||
import dk.au.pir.protocols.simple.SimpleServer;
|
|
||||||
import dk.au.pir.settings.PIRSettings;
|
import dk.au.pir.settings.PIRSettings;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
import static dk.au.pir.utils.ProtocolUtils.printIntArrayArray;
|
|
||||||
|
|
||||||
public class SimpleClient {
|
public class SimpleClient {
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,14 @@ public class PIRSettings {
|
||||||
this.blocksize = blocksize;
|
this.blocksize = blocksize;
|
||||||
|
|
||||||
|
|
||||||
|
// TODO: lol
|
||||||
|
if (numServers > 1) {
|
||||||
this.sequences = ProtocolUtils.createSequences(s, numServers, databaseSize);
|
this.sequences = ProtocolUtils.createSequences(s, numServers, databaseSize);
|
||||||
|
} else {
|
||||||
|
this.sequences = ProtocolUtils.createSequences(calculateS(2, databaseSize), 2, databaseSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
this.field = new BigIntegerField();
|
this.field = new BigIntegerField();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user