verificatum / verificatum-vmn

The first implementation of a fully distributed provably secure and universally verifiable mix-net based on the El Gamal cryptosystem.
https://www.verificatum.org
Other
11 stars 4 forks source link

Error in key_gen file #7

Closed sheriumair closed 3 years ago

sheriumair commented 3 years ago

When I run demo, in keys are not generated. The only thing I have changed is the mix-net interface from 'native' to 'json'

sheriub@192-168-100-4:~/verificatum-vmn-3.0.4-full/verificatum-vmn-3.0.4/demo/mixnet$ ./demo Cleaning up data from previous demos... done.

EXECUTION OF EL GAMAL MIX-NET (VMN 3.0.4)

Number of mix-servers: 3 Min. number of honest mix-servers: 2 Party01: host: localhost CPU: Intel(R) Core(TM) i7-4500U X4 (3.00GHz) OS: GNU/Linux (Ubuntu 18.04.5 LTS) Party02: host: localhost CPU: Intel(R) Core(TM) i7-4500U X4 (3.00GHz) OS: GNU/Linux (Ubuntu 18.04.5 LTS) Party03: host: localhost CPU: Intel(R) Core(TM) i7-4500U X4 (3.00GHz) OS: GNU/Linux (Ubuntu 18.04.5 LTS)

No. keys used in parallel: 1 No. ciphertexts mixed as a unit: 1 No. ciphertexts in mixing: 100

Group is: ECqPGroup(P-256)::00000000020100000020636f6d2e766572696669636174756d2e61726974686d2e4543715047726f75700100000005502d323536

Zero-knowledge proofs: noninteractive Mix-net interface: json Arrays are stored on: file

Generate info files... Making directories of servers.... done. Generating protocol stub file... done. Copy stub file to Party02... done. Copy stub file to Party03... done. Generating private and protocol files of Party01... done. Generating private and protocol files of Party02... done. Generating private and protocol files of Party03... done. Copy protocol file of Party01 to Party02... done. Copy protocol file of Party01 to Party03... done. Copy protocol file of Party02 to Party01... done. Copy protocol file of Party02 to Party03... done. Copy protocol file of Party03 to Party01... done. Copy protocol file of Party03 to Party02... done. Merge protocol files to global protocol file at Party01... done. Merge protocol files to global protocol file at Party02... done. Merge protocol files to global protocol file at Party03... done. done. Running distributed key generation... Most recent command executed at Party 1 failed with exit code 1.

Demo command failed! Aborting.

Generate demo ciphertexts... ERROR: Unable to read public key!

com.verificatum.protocol.ProtocolException: Unable to read public key! at com.verificatum.protocol.elgamal.ProtocolElGamalDemo.readPublicKey(ProtocolElGamalDemo.java:266) at com.verificatum.protocol.elgamal.ProtocolElGamalDemo.main(ProtocolElGamalDemo.java:345) Caused by: com.verificatum.protocol.ProtocolFormatException: Unable to read public key! at com.verificatum.protocol.elgamal.ProtocolElGamalInterfaceJSONDecode.readPublicKey(ProtocolElGamalInterfaceJSONDecode.java:151) at com.verificatum.protocol.elgamal.ProtocolElGamalDemo.readPublicKey(ProtocolElGamalDemo.java:262) ... 1 more Caused by: java.io.FileNotFoundException: publicKey_ext (No such file or directory) at java.base/java.io.FileInputStream.open0(Native Method) at java.base/java.io.FileInputStream.open(FileInputStream.java:219) at java.base/java.io.FileInputStream.(FileInputStream.java:157) at com.verificatum.eio.ExtIO.readString(ExtIO.java:520) at com.verificatum.protocol.elgamal.ProtocolElGamalInterfaceJSONDecode.readPublicKey(ProtocolElGamalInterfaceJSONDecode.java:149) ... 2 more

Most recent command executed at Party 1 failed with exit code 1.

Demo command failed! Aborting.

Mixing ciphertexts... Most recent command executed at Party 1 failed with exit code 1.

Demo command failed! Aborting.

Copying proof from Party01 (verifier is not executing yet)... cp: cannot stat '../dir/nizkp/default': No such file or directory done. Verify Fiat-Shamir Proof... ERROR: Can not find version file in proof directory!

com.verificatum.protocol.ProtocolError: Can not find version file in proof directory! at com.verificatum.protocol.mixnet.MixNetElGamalVerifyFiatShamir.failStop(MixNetElGamalVerifyFiatShamir.java:553) at com.verificatum.protocol.mixnet.MixNetElGamalVerifyFiatShamir.failStop(MixNetElGamalVerifyFiatShamir.java:562) at com.verificatum.protocol.mixnet.MixNetElGamalVerifyFiatShamirSession.verifyVersion(MixNetElGamalVerifyFiatShamirSession.java:307) at com.verificatum.protocol.mixnet.MixNetElGamalVerifyFiatShamirSession.verify(MixNetElGamalVerifyFiatShamirSession.java:1329) at com.verificatum.protocol.mixnet.MixNetElGamalVerifyFiatShamirTool.main(MixNetElGamalVerifyFiatShamirTool.java:1147)

EXECUTION COMPLETED

verificatum commented 3 years ago

From the comments in demo/mixnet/conf

Choose the interface to the mix-net.

#

Use "json" for JSON encoding for the public key, ciphertexts, and

plaintexts. It currently only works when using a subgroup of the

multiplicative group modulo a prime.

#

You are not using a multiplicative group modulo a prime (ModPGroup). You are using an elliptic curve group (ECqPGroup), so this does not work as expected and the code to informs you about this by throwing an exception.

I hope this is helpful.

verificatum commented 3 years ago

The comments in demo/mixnet/conf actually tells you this right at the point where you have modified the conf-file.

verificatum commented 3 years ago

Sorry for shouting above :-) GitHub decided to interpret the hash-characters of the comment...

verificatum commented 3 years ago

I will close this, since it has been inactive for a while. Feel free to re-open if needed.