|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.ObjectSFE.BOAL.Circuit
SFE.PF.UC
public abstract class UC
A Universal Circuit (UC) is a circuit that can be programmed to simulate any circuit.
Field Summary | |
---|---|
static int |
Ggates
number of gates to implement a gate simulation block |
static int |
Xgates
number of gates to implement a X switching block |
static int |
Ygates
number of gates to implement a Y switching block |
Constructor Summary | |
---|---|
UC()
|
Method Summary | |
---|---|
abstract int |
countGates()
Count number of gates of UC. |
abstract int |
estimateGates(int u,
int v,
int k)
Estimate number of gates of UC. |
abstract Gate[] |
extractCircuit(Gate[] outputs)
Extract circuit representation of UC. |
abstract void |
generate(int u,
int v,
int k)
Generate UC for circuit of given shape. |
void |
generateEncCircuit()
Turn all gates in a circuit to encrypted gates |
static UC |
generateUC(int u,
int v,
int k,
java.lang.String type)
generate UC for given circuit parameters |
abstract void |
program(int[] ins,
int[] outs,
SFE.PF.ParseGate[] gates)
Program UC with given circuit. |
int |
translateIO(int linenum,
boolean isAlice,
boolean isInput)
Translate inputs and outputs. |
Methods inherited from class SFE.BOAL.Circuit |
---|
addGate, cextractEncPayload, cextractSecPayload, cinjectEncPayload, cinjectSecPayload, cmeasureEncPayload, cmeasureSecPayload, evalCircuit, evalGarbledCircuit, getGate, isCorrect, printCircuit |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final int Ygates
public static final int Xgates
public static final int Ggates
Constructor Detail |
---|
public UC()
Method Detail |
---|
public abstract void program(int[] ins, int[] outs, SFE.PF.ParseGate[] gates)
ins
- inputsouts
- outputsgates
- gates of circuitpublic abstract void generate(int u, int v, int k)
u
- #inputsv
- #outputsk
- #gatespublic abstract Gate[] extractCircuit(Gate[] outputs)
public abstract int countGates()
public abstract int estimateGates(int u, int v, int k)
u
- #inputsv
- #outputsk
- #gates of circuit
public void generateEncCircuit()
Circuit
generateEncCircuit
in class Circuit
public int translateIO(int linenum, boolean isAlice, boolean isInput)
Inputs and outputs (IO) are rearranged to contain Alice's first and then Bob's in reversed order. Otherwise Alice could infer information about Bob's IO from the UC.
linenum
- original index of IOisAlice
- IO of Alice?isInput
- Input?
public static UC generateUC(int u, int v, int k, java.lang.String type)
u
- #inputsv
- #outputsk
- #gatestype
- type of UC, choose smallest UC if type=null
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |