fork(2) download
  1. <?php
  2.  
  3. $g = gmp_init(3);
  4. $p = gmp_init(5);
  5.  
  6. $a = gmp_import(openssl_random_pseudo_bytes(12));;
  7. $b = gmp_import(openssl_random_pseudo_bytes(12));;
  8.  
  9. $A = gmp_powm($g, $a, $p);
  10. $B = gmp_powm($g, $b, $p);
  11.  
  12. $Astr = gmp_strval($A);
  13. $Bstr = gmp_strval($B);
  14. echo "A: $Astr \n";
  15. echo "B: $Bstr \n";
  16.  
  17. $Ba = gmp_powm($B, $a, $p);
  18. $Ba = gmp_powm($A, $b, $p);
  19. $gab = gmp_powm($g, gmp_mul($a, $b), $p);
  20.  
  21. $BaStr = gmp_strval($Ba);
  22. $AbStr = gmp_strval($Ba);
  23. $gabStr = gmp_strval($gab);
  24. echo "Ba: $BaStr \n";
  25. echo "Ab: $AbStr \n";
  26. echo "K: $gabStr \n";
Success #stdin #stdout 0.02s 82880KB
stdin
Standard input is empty
stdout
A: 4 
B: 1 
Ba: 1 
Ab: 1 
K: 1