Post
Topic
Board Development & Technical Discussion
Re: Pollard's kangaroo ECDLP solver
by
John_Ahmet
on 09/11/2021, 00:23:49 UTC
I've shared the basic pseudo code for RSA Bruteforce below. Can you please write a basic pseudo-code for this method?

Code:
GenerateRSAKeys()
   p => random big prime, below 64bits
   q => random big prime, below 64bits
   e => random small prime, below 16bits
   k => random small integer, below 16 bits
   N = p * q
   d = (k * ((p - 1) * (q - 1)) + 1) / e

   (e, N) => Public key
   (e, d, p, q) => Private key

RSAEncode(m, e, N) // m => message, e and N are public key
   h ≡ m ^ e mod N

RSADecode(h, d, N) // h => encrypted message, d is part of private key
   m ≡ h ^ d mod N

RSACrack_GetPrivateKeyFromPublicKey(e, N, minPrimeBitsLength)
   bitLength = GetBitsLength(N)
   k = 2
   // iterator uses sieve algorithm
   primes = all64BitsPrimes.Select(p => GetBitsLength(p) >= minPrimeBitsLength && GetBitsLength(p) <= (bitLength - minPrimeBitsLength))
   // Example Primes buffer is 4GB, all below 64Bits primes use 1TB memory
   // use only odd numbers bit array
   // max 256 cycles
   for primesBuffer of primes
     for p of primesBuffer
       for q of primesBuffer.Inverse()
         bitLengthA = GetBitsLength(p)
         bitLengthB = GetBitsLength(q)
         bitSum = bitLengthA + bitLengthB
         if (max(bitLengthA, bitLengthB) >= bitLength && bitSum <= bitLength)
           if (p * q == N)
             d = (k * ((p - 1) * (q - 1)) + 1) / e
             return (e, d, p, q)