Discrete Logarithm : Rho-Pollard factorisation and Baby-step-GiantStep and Silver-Pohlig-Hellman algorithms