While reading some cryptographic RFCs, came across the Diffie Hellman prime computation formula:

2^1024 - 2^960 - 1 + 2^64 * { [2^894 pi] + 129093 }

I am curious what the expression [2^894 pi] means here. The part specifically confusing me is the space between 2^894 and pi. It cannot be a multiplication operation as that does not give me the correct result. I am sure the answer is straightforward for someone with mathematical background...


1 Answer 1


It's multiplication of 2^894 and pi.

(2^1024 - 2^960 - 1 + 2^64 * ( (2^894 * pi) + 129093))

Wolfram Alpha

  • $\begingroup$ Thanks Rob. I did try that the result was too long. The prime value from RFC is: "FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFF" I suppose the bits after 1024 are ignored. Also, good to know about this site for big computations $\endgroup$
    – Paani
    Mar 9, 2020 at 0:10
  • 2
    $\begingroup$ The bits aren't ignored. It's just not an integer as given. Add floor() and you'll see it's the same size: wolframalpha.com/input/…*+%28+%282%5E894+*pi%29+%2B+129093+%29%29+in+hexadecimal $\endgroup$
    – Rob Napier
    Mar 9, 2020 at 0:28
  • 1
    $\begingroup$ This value you presented here isn't precisely the prime (again, multiplying times pi isn't going to give you an integer, and it all becomes very dependent on how you precisely do the calculation). They found a nearby prime that had more trailing 1s (see the link that Maarten provides for why they throw pi in there. It's not for math reasons.) $\endgroup$
    – Rob Napier
    Mar 9, 2020 at 0:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.