View Javadoc
1   package civitas.crypto.signedciphertext;
2   
3   import java.util.Base64;
4   
5   import civitas.common.CommonUtil;
6   import civitas.crypto.ciphertext.ElGamalCiphertextTestData;
7   import civitas.util.CivitasBigInteger;
8   import civitas.util.CivitasBigIntegerFactory;
9   
10  public interface ElGamalSignedCiphertextTestData extends ElGamalCiphertextTestData {
11  
12  	String EL_GAMAL_SIGNED_CIPHERTEXT_C_BASE64 = "dHKDA9V8OEUx/Z2A7TLdgbG7OdIZTbg860iANjgFJMI=";
13  	CivitasBigInteger EL_GAMAL_SIGNED_CIPHERTEXT_HASH1 = BIGINT_G.modPow(RANDOMS_0, BIGINT_P);
14  	CivitasBigInteger EL_GAMAL_SIGNED_CIPHERTEXT_A = BIGINT_G.modPow(FACTOR_E, BIGINT_P);
15  	CivitasBigInteger EL_GAMAL_SIGNED_CIPHERTEXT_B =
16  			MESSAGE_VOTE_CAPABILITY_SHARE_ENCODED.modMultiply(PUBKEY_E.modPow(FACTOR_E, BIGINT_P), BIGINT_P);
17  	CivitasBigInteger EL_GAMAL_SIGNED_CIPHERTEXT_C =
18  			CivitasBigIntegerFactory.obtain(Base64.getDecoder().decode(EL_GAMAL_SIGNED_CIPHERTEXT_C_BASE64));
19  	CivitasBigInteger EL_GAMAL_SIGNED_CIPHERTEXT_D =
20  			RANDOMS_0.modAdd(EL_GAMAL_SIGNED_CIPHERTEXT_C.modMultiply(FACTOR_E, BIGINT_Q), BIGINT_Q);
21  
22  	ElGamalSignedCiphertext EL_GAMAL_SIGNED_CIPHERTEXT = new ElGamalSignedCiphertext(
23  			EL_GAMAL_SIGNED_CIPHERTEXT_A, EL_GAMAL_SIGNED_CIPHERTEXT_B,
24  			EL_GAMAL_SIGNED_CIPHERTEXT_C, EL_GAMAL_SIGNED_CIPHERTEXT_D);
25  	CivitasBigInteger HASH_OF_G_POW_RANDOMS0_G_EXP_FACTOR_MESSAGE_MUL_PUBKEY_POW_FACTOR_ADDITIONALENV =
26  			CommonUtil.asBigint("dHKDA9V8OEUx/Z2A7TLdgbG7OdIZTbg860iANjgFJMI=");
27  	CivitasBigInteger HASH_OF_G_POW_RANDOMS0_G_EXP_FACTOR_MESSAGE_MUL_PUBKEY_POW_FACTOR =
28  			CommonUtil.asBigint("AKw6iOIfDUU0OHK6D2nQ/e40bKkVIrYwO+kUZJuwSWYt");
29  
30  	CivitasBigInteger RANDOMS_0_PLUS_HASH_MUL_FACTOR = RANDOMS_0.modAdd(
31  			HASH_OF_G_POW_RANDOMS0_G_EXP_FACTOR_MESSAGE_MUL_PUBKEY_POW_FACTOR_ADDITIONALENV.modMultiply(
32  					FACTOR_E, BIGINT_Q),
33  			BIGINT_Q);
34  
35  	CivitasBigInteger RANDOMS_0_PLUS_HASH_MUL_FACTOR_NOENV = RANDOMS_0.modAdd(
36  			HASH_OF_G_POW_RANDOMS0_G_EXP_FACTOR_MESSAGE_MUL_PUBKEY_POW_FACTOR.modMultiply(FACTOR_E, BIGINT_Q),
37  			BIGINT_Q);
38  
39  	CivitasBigInteger G_POW_RANDOMS0_G_EXP_FACTOR_MESSAGE_MUL_PUBKEY_POW_FACTOR_ADDITIONALENV = BIGINT_G.modPow(
40  					RANDOMS_0_PLUS_HASH_MUL_FACTOR.mod(BIGINT_Q), BIGINT_P)
41  			.modMultiply(
42  					CIPHERTEXT_E_A.modPow(
43  							HASH_OF_G_POW_RANDOMS0_G_EXP_FACTOR_MESSAGE_MUL_PUBKEY_POW_FACTOR_ADDITIONALENV.modNegate(
44  									BIGINT_Q),
45  							BIGINT_P),
46  					BIGINT_P);
47  
48  	CivitasBigInteger G_POW_RANDOMS0_G_EXP_FACTOR_MESSAGE_MUL_PUBKEY_POW_FACTOR_ADDITIONALENV_BAD = BIGINT_G.modPow(
49  					RANDOMS_0_PLUS_HASH_MUL_FACTOR.mod(BIGINT_Q), BIGINT_P)
50  			.modMultiply(CIPHERTEXT_E_A.modPow(BIGINT_C.modNegate(BIGINT_Q), BIGINT_P), BIGINT_P);
51  	CivitasBigInteger G_POW_RANDOMS0_G_EXP_FACTOR_MESSAGE_MUL_PUBKEY_POW_FACTOR_BAD = BIGINT_G.modPow(
52  					RANDOMS_0_PLUS_HASH_MUL_FACTOR_NOENV.mod(BIGINT_Q), BIGINT_P)
53  			.modMultiply(CIPHERTEXT_E_A.modPow(BIGINT_C.modNegate(BIGINT_Q), BIGINT_P), BIGINT_P);
54  
55  	CivitasBigInteger G_POW_RANDOMS0_G_EXP_FACTOR_MESSAGE_MUL_PUBKEY_POW_FACTOR = BIGINT_G.modPow(
56  					RANDOMS_0_PLUS_HASH_MUL_FACTOR.mod(BIGINT_Q), BIGINT_P)
57  			.modMultiply(
58  					CIPHERTEXT_E_A.modPow(
59  							HASH_OF_G_POW_RANDOMS0_G_EXP_FACTOR_MESSAGE_MUL_PUBKEY_POW_FACTOR.modNegate(BIGINT_Q),
60  							BIGINT_P),
61  					BIGINT_P);
62  
63  	ElGamalSignedCiphertext SIGNED_CIPHERTEXT_OF_MESSAGE_WITH_FACTOR_RANDOM0_ADDITIONALENV =
64  			new ElGamalSignedCiphertext(
65  					CIPHERTEXT_E_A,
66  					CIPHERTEXT_E_B,
67  					HASH_OF_G_POW_RANDOMS0_G_EXP_FACTOR_MESSAGE_MUL_PUBKEY_POW_FACTOR_ADDITIONALENV,
68  					RANDOMS_0_PLUS_HASH_MUL_FACTOR);
69  
70  	ElGamalSignedCiphertext SIGNED_CIPHERTEXT_OF_MESSAGE_WITH_FACTOR_RANDOM0_ADDITIONALENV_BAD =
71  			new ElGamalSignedCiphertext(CIPHERTEXT_E_A, CIPHERTEXT_E_B, BIGINT_C, RANDOMS_0_PLUS_HASH_MUL_FACTOR);
72  
73  	ElGamalSignedCiphertext SIGNED_CIPHERTEXT_OF_MESSAGE_WITH_FACTOR_RANDOM0 = new ElGamalSignedCiphertext(
74  			CIPHERTEXT_E_A,
75  			CIPHERTEXT_E_B,
76  			HASH_OF_G_POW_RANDOMS0_G_EXP_FACTOR_MESSAGE_MUL_PUBKEY_POW_FACTOR,
77  			RANDOMS_0_PLUS_HASH_MUL_FACTOR_NOENV);
78  
79  	ElGamalSignedCiphertext SIGNED_CIPHERTEXT_OF_MESSAGE_WITH_FACTOR_RANDOM0_BAD =
80  			new ElGamalSignedCiphertext(CIPHERTEXT_E_A, CIPHERTEXT_E_B, BIGINT_C, RANDOMS_0_PLUS_HASH_MUL_FACTOR_NOENV);
81  }