circuit_additionL2.cpp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. #include "circuit_additionL2.hpp"
  2. void circuit_additionL2(PublicKey public_key, PrivateKey private_key)
  3. {
  4. F2 un=0,zero=0, somme=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_L2_0, chiffre_L2_1, chiffre_somme;
  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. chiffre_L2_0=multiplicationL1(bit_chiffre_0_curve,bit_chiffre_0_twist,public_key);
  13. chiffre_L2_1=multiplicationL1(bit_chiffre_1_curve,bit_chiffre_1_twist,public_key);
  14. //dechiffrementL2(zero,chiffre_L2_0,private_key);
  15. //dechiffrementL2(un,chiffre_L2_1,private_key);
  16. //zout(zero,un);
  17. cout << "cas #1 0+0" << endl;
  18. chiffre_somme=additionL2(chiffre_L2_0,chiffre_L2_0,public_key);
  19. dechiffrementL2(somme,chiffre_somme,private_key);
  20. zout(somme);
  21. cout << "cas #2 0+1" << endl;
  22. chiffre_somme=additionL2(chiffre_L2_0,chiffre_L2_1,public_key);
  23. dechiffrementL2(somme,chiffre_somme,private_key);
  24. zout(somme);
  25. cout << "cas #3 1+0" << endl;
  26. //chiffre_L2_0.print_bit_masque();
  27. //chiffre_L2_1.print_bit_masque();
  28. chiffre_somme=additionL2(chiffre_L2_1,chiffre_L2_0,public_key);
  29. dechiffrementL2(somme,chiffre_somme,private_key);
  30. zout(somme);
  31. //chiffre_somme.print_bit_masque();
  32. cout << "cas #4 1+1" << endl;
  33. chiffre_somme=additionL2(chiffre_L2_1,chiffre_L2_1,public_key);
  34. dechiffrementL2(somme,chiffre_somme,private_key);
  35. zout(somme);
  36. JUMP;
  37. cout << "taille d'un chiffré de niveau 2 = " << sizeof(chiffre_L2_0) << " octets" << endl;
  38. }