circuit_multiplicationL1.cpp 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #include "circuit_multiplicationL1.hpp"
  2. void circuit_multiplicationL1(PublicKey public_key, PrivateKey private_key)
  3. {
  4. F2 un_curve=0,zero_curve=0, produit=0, zero_twist=0, un_twist=0;
  5. BitEvalL1<curvepoint_fp_t> bit_chiffre_0_curve, bit_chiffre_1_curve;
  6. BitEvalL1<twistpoint_fp2_t> bit_chiffre_0_twist, bit_chiffre_1_twist;
  7. BitEvalL2 chiffre_produit;
  8. chiffrement(bit_chiffre_0_curve,0,public_key);
  9. chiffrement(bit_chiffre_1_curve,1,public_key);
  10. chiffrement(bit_chiffre_0_twist,0,public_key);
  11. chiffrement(bit_chiffre_1_twist,1,public_key);
  12. //dechiffrement(zero_curve,bit_chiffre_0_curve,private_key);
  13. //dechiffrement(un_curve,bit_chiffre_1_curve,private_key);
  14. //dechiffrement(zero_twist,bit_chiffre_0_twist,private_key);
  15. //dechiffrement(un_twist,bit_chiffre_1_twist,private_key);
  16. //zout(zero_curve,un_curve,zero_twist,un_twist);
  17. cout << "cas #1 0*0" << endl;
  18. chiffre_produit=multiplicationL1(bit_chiffre_0_curve,bit_chiffre_0_twist,public_key);
  19. dechiffrementL2(produit,chiffre_produit,private_key);
  20. zout(produit);
  21. cout << "cas #2 0*1" << endl;
  22. chiffre_produit=multiplicationL1(bit_chiffre_0_curve,bit_chiffre_1_twist,public_key);
  23. dechiffrementL2(produit,chiffre_produit,private_key);
  24. zout(produit);
  25. cout << "cas #3 1*0" << endl;
  26. //bit_chiffre_0.print();
  27. //bit_chiffre_1.print();
  28. chiffre_produit=multiplicationL1(bit_chiffre_1_curve,bit_chiffre_0_twist,public_key);
  29. dechiffrementL2(produit,chiffre_produit,private_key);
  30. zout(produit);
  31. cout << "cas #4 1*1" << endl;
  32. chiffre_produit=multiplicationL1(bit_chiffre_1_curve,bit_chiffre_1_twist,public_key);
  33. dechiffrementL2(produit,chiffre_produit,private_key);
  34. zout(produit);
  35. //cout << "cas #5 (1+0)*1" << endl;
  36. //BitChiffre temp_curve = additionL1(bit_chiffre_1_curve,bit_chiffre_0_curve,public_key);
  37. //chiffre_produit=multiplicationL1(temp_curve,bit_chiffre_1_twist,public_key);
  38. //dechiffrementL2(produit,chiffre_produit,private_key);
  39. //zout(produit);
  40. //cout << "cas #6 (1+0)*(1+0)" << endl;
  41. //BitChiffre temp_twist = additionL1(bit_chiffre_1_twist,bit_chiffre_0_twist,public_key);
  42. //chiffre_produit=multiplicationL1(temp_curve,temp_twist,public_key);
  43. //dechiffrementL2(produit,chiffre_produit,private_key);
  44. //zout(produit);
  45. //cout << "cas #7 1*(1+0)" << endl;
  46. //chiffre_produit=multiplicationL1(bit_chiffre_1_curve,temp_twist,public_key);
  47. //dechiffrementL2(produit,chiffre_produit,private_key);
  48. //zout(produit);
  49. //cout << "cas #8 (1+0) twist" << endl;
  50. //dechiffrement(produit,temp_twist,private_key);
  51. //zout(produit);
  52. JUMP;
  53. cout << "taille d'un chiffré de niveau 2 = " << sizeof(chiffre_produit) << " octets" << endl;
  54. }