public abstract class OTFullSimSenderTransferUtilAbs extends java.lang.Object
|Constructor and Description|
Sets the given dlog and random.
|Modifier and Type||Method and Description|
Runs the transfer phase of the OT protocol.
public OTFullSimSenderTransferUtilAbs(DlogGroup dlog, java.security.SecureRandom random)
public void transfer(Channel channel, OTSInput input, OTFullSimPreprocessPhaseValues preprocessValues) throws java.io.IOException, java.lang.ClassNotFoundException
Transfer Phase (with inputs x0,x1)
WAIT for message from R
DENOTE the values received by (g,h)
COMPUTE (u0,v0) = RAND(g0,g,h0,h)
COMPUTE (u1,v1) = RAND(g1,g,h1,h)
in the byte array scenario:
COMPUTE c0 = x0 XOR KDF(|x0|,v0)
COMPUTE c1 = x1 XOR KDF(|x1|,v1)
in the GroupElement scenario:
COMPUTE c0 = x0 * v0
COMPUTE c1 = x1 * v1
SEND (u0,c0) and (u1,c1) to R
This is the transfer stage of OT protocol which can be called several times in parallel.
The OT implementation support usage of many calls to transfer, with single preprocess execution.
This way, one can execute batch OT by creating the OT receiver once and call the transfer function for each input couple.
In order to enable the parallel calls, each transfer call should use a different channel to send and receive messages. This way the parallel executions of the function will not block each other.
channel- each call should get a different one.
input- the parameters given in the input must match the DlogGroup member of this class, which given in the constructor.
preprocessValues- hold the values calculated in the preprocess phase.
CheatAttemptException- if there was a cheat attempt during the execution of the protocol.
java.io.IOException- if the send or receive functions failed
java.lang.ClassNotFoundException- if there was a problem during the serialization mechanism