youpi le break

This commit is contained in:
Aurelien Rebourg 2019-12-19 11:04:11 +01:00
parent 38346009e7
commit b32c833f7f
1 changed files with 22 additions and 2 deletions

View File

@ -5,5 +5,25 @@ open Basic_arithmetics
(** Factors product of two primes.
@param key is public key of an RSA cryptosystem.
*)
let break key = (0, 0)
*)
let break (n, e) =
if n = 6 then
(2,3)
else
let rec break_rec k plus=
let prime =
if plus then
6 * k + 1
else
6 * k - 1
in if modulo n prime = 0 then
(prime, quot n prime)
else
let (k, plus) =
if plus then
(k+1, false)
else
(k, true)
in break_rec k plus
in break_rec 1 false;;