public class Prover
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private java.math.BigInteger |
a
Commitment *
|
private java.math.BigInteger |
b
Commitment+Response der Simulation
|
private int |
c
Challenge *
|
private int |
C
Challenge des Verifizierers für OR-Beweis
|
private int |
d
Challenge der Simulation
|
private boolean |
extended
Protokolltyp (extended = OR-Protokoll)
|
private java.math.BigInteger |
g |
private GUIObserver |
gui |
private java.math.BigInteger |
inv_x_B
muliplikative Inverse von x_B
|
private Verifier |
myVerifier
zu überzeugender Verifizierer
|
private java.math.BigInteger |
p
Systemparameter *
|
private java.math.BigInteger |
q |
private java.util.Random |
rand
Zufallszahlengenerator
|
private java.math.BigInteger |
s
Zufallswert im 1.Beweisschritt
|
private java.math.BigInteger |
w
geheimer Schlüssel des Beweisers (für einfachen Beweis)
|
private java.math.BigInteger |
w_A
geheimer Schlüssel des Beweisers (für OR-Beweis)
|
private java.math.BigInteger |
x
öffentlicher Schlüssel des Beweisers (für einfachen Beweis)
|
private java.math.BigInteger |
x_A
öffentlicher Schlüssel des Beweisers (für OR-Beweis)
|
private java.math.BigInteger |
x_B
öffentlicher Schlüssel des Verifizierers (für OR-Beweis)
|
private java.math.BigInteger |
y
Commitment+Response der Simulation
|
private java.math.BigInteger |
z
Response *
|
Constructor and Description |
---|
Prover(GroupParam group,
int seed) |
Modifier and Type | Method and Description |
---|---|
void |
addO(GUIObserver o)
Legt GUI-Observer zum Darstellen gesendeter Nachrichten fest.
|
java.math.BigInteger |
getPublicKey()
Gibt öffentlichen Schlüssel x des Beweisers zurück.
|
void |
or_sendCommitment()
Die Methode implementiert den ersten Beweisschritt der OR-Version des
Zero-Knowledge Beweises.
|
void |
or_sendResponse()
Diese Methode implementiert den dritten Beweisschritt der OR-Version des
Zero-Knowledge Beweises.
|
void |
proof()
Die Methode proof() führt eine Beweisrunde des Zero-Knowledge Beweises
zur Kenntnis eines diskreten Logarithmus durch.
|
void |
sendCommitment()
Die Methode implementiert den ersten Beweisschritt des Zero-Knowledge
Beweises, d.h. berechnet das Commitment a und übermittelt es an den
Verifizierer.
|
void |
sendResponse()
Diese Methode implementiert den dritten Beweisschritt.
|
void |
setProtocolType(java.lang.String type)
Legt fest, ob für den Zero-Knowledge Beweis das einfache Protokoll oder
der erweiterte OR-Beweis zum Einsatz kommt.
|
void |
toProof(Verifier verifier,
java.math.BigInteger assertion)
Die Methode toProof legt den gewünschten Verifizierer fest und
übermittelt an diesen die zu beweisende Behauptung (meist der öffentliche
Schlüssel x)
|
private java.math.BigInteger p
private java.math.BigInteger q
private java.math.BigInteger g
private java.math.BigInteger w
private java.math.BigInteger x
private java.math.BigInteger w_A
private java.math.BigInteger x_A
private java.math.BigInteger x_B
private java.math.BigInteger inv_x_B
private java.math.BigInteger s
private java.math.BigInteger a
private int c
private int C
private java.math.BigInteger z
private int d
private java.math.BigInteger b
private java.math.BigInteger y
private Verifier myVerifier
private java.util.Random rand
private boolean extended
private GUIObserver gui
public Prover(GroupParam group, int seed)
public void toProof(Verifier verifier, java.math.BigInteger assertion)
verifier
- der gewünschte Verifiziererassertion
- die zu beweisende Behauptungpublic java.math.BigInteger getPublicKey()
public void setProtocolType(java.lang.String type)
type
- Protokoll-Variantepublic void addO(GUIObserver o)
o
- GUIpublic void proof()
public void sendCommitment()
public void sendResponse()
public void or_sendCommitment()
public void or_sendResponse()