circuit_minmaj.cpp 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #include "circuit_minmaj.hpp"
  2. void circuit_minmaj(char& rop, char symbole, PublicKey public_key, PrivateKey private_key)
  3. {
  4. //signature;
  5. F2 clair1=0, clair2=0, clair3=0; // resp de n8, n9, o8 (voir rapport.pdf, page 24)
  6. precomputation(clair1, clair2, clair3, symbole);
  7. F2 curve, twist, quadripoint;
  8. //F2 clair_n8, clair_n9, clair_o8;
  9. //BitChiffre n8,n9,o8;
  10. BitEvalL1<curvepoint_fp_t> n8,n9;
  11. BitEvalL1<twistpoint_fp2_t> o8;
  12. chiffrement(n8,clair1,public_key);
  13. chiffrement(n9,clair2,public_key);
  14. chiffrement(o8,clair3,public_key);
  15. //zout(sizeof(n8),sizeof(o8));
  16. //dechiffrement(clair_n8,n8,private_key,CURVE);
  17. //dechiffrement(clair_n9,n9,private_key,CURVE);
  18. //dechiffrement(clair_o8,o8,private_key,TWIST);
  19. //BitChiffre temp_curve, temp_twist; //resp 1+n9 et 1+o8
  20. //BitChiffre chiffre_1_curve, chiffre_1_twist;
  21. BitEvalL1<curvepoint_fp_t> temp_curve, chiffre_1_curve;
  22. BitEvalL1<twistpoint_fp2_t> temp_twist, chiffre_1_twist;
  23. chiffrement(chiffre_1_curve,1, public_key);
  24. chiffrement(chiffre_1_twist,1, public_key);
  25. temp_curve = additionL1(chiffre_1_curve,n9,public_key); //NB il faut rajouter CURVE pour passer de BitChiffre à BitEvalL1, la diff entre les deux, la taille mémoire
  26. temp_twist = additionL1(chiffre_1_twist,o8,public_key);
  27. //dechiffrement(curve,temp_curve,private_key,CURVE);
  28. //dechiffrement(twist,temp_twist,private_key,TWIST);
  29. BitEvalL2 temp_quadripoint; // (1+n9)(1+o8)
  30. temp_quadripoint = multiplicationL1(temp_curve,temp_twist,public_key);
  31. //dechiffrementL2(quadripoint,temp_quadripoint,private_key);
  32. //zout(clair1,clair2,clair3);
  33. //zout(curve,twist,quadripoint);
  34. BitEvalL3 evalue; // n8(1+n9)(1+o8)
  35. evalue = multiplicationL1L2(n8,temp_quadripoint,public_key);
  36. //jump;
  37. //zout(sizeof(evalue),sizeof(evalue.get_vec_bipoints()),sizeof(evalue.get_vec_quadripoints()),sizeof(evalue.get_alpha()),sizeof(temp_quadripoint.get_bit_masque()),sizeof(temp_quadripoint.get_quadripoint()));
  38. postcomputation(rop, symbole, evalue, private_key);
  39. }