Public-key cryptography was not invented until the 1970's. Apart from the idea not existing earlier (as talked about here), is there any reason it could not have been used earlier? For example, are there forms that are easy enough to perform by hand but complicated enough to not be solved (easily) by hand?
1 Answers
What an interesting question! Yes, it certainly could. The math required to carry out RSA encryption, for example, have been known for millennia. The most complex algorithms are:
- Primality testing for key generation. I think that the first efficient algorithm was Fermat's, from ~1600
- Euclid's, which is from 300 BC
- Binary exponentiation, which I couldn't find when it was discovered, but I'd guess it's pretty old too
- Even the Chinese Remainder Theorem, which can speed up the RSA computation, is from 300 AD.
So, if someone discovered RSA and also Fermat's primality testing, then it would be possible to use RSA millenia ago.
People wouldn't need to use keys as large as in use today since any attacker would also need to do calculations by hand. The first efficient (sub-exponential) factorization algorithm, the continued fraction algorithm appeared in 1931. So an attacker would need to brute force the key with trial division, in $O(\sqrt{n})$ steps. In 1903, a 67-bit Mersenne number was factored. Leaving 2 bits of breathing room (the calculation took half a year, 3 additional bits would make it take four years), then $(67+3) = 70$-bit (21-digit) keys would be more or less safe against brute-forcing by hand. This seems to be an overestimation, though, since calculators existed at that time, see this discussion.
20-digit calculations seem a lot, but considering it may be overestimated, it seems using RSA millenia ago would be possible.
These are all approximations though, someone with deeper knowledge of math history should be able to shed more light in this question. (Maybe this question would even fit the Math.SE better)
- 6,614
- 1
- 30
- 45