(You can also use it for digital signatures, where you provide a copy of the message and also "encrypt" the message with the private key; anyone can publicly decrypt it. If the "decrypted" message matches the original, then the signature proves that the message was signed by someone who has the private key.)
RSA works by starting with two large random prime numbers P and Q. You multiply P and Q to get a number M, and that number becomes part of the public key. An attacker who knows P and Q can compute your private key and decrypt your messages.
RSA assumes that it's computationally infeasible to factor M back into P and Q. It's supposed to be something like O(2^n), where n is the length of M.
A fast factorization algorithm breaks that assumption, allowing attackers to decrypt messages and forge digital signatures.
If Schorr has found an algorithm that does this, I would say it "destroyes the RSA cryptosystem."
(My guess: it probably doesn't work, because drafts of this paper have been out for a few years and the sky hasn't fallen yet.)
P.S. Please don't bring Cooty.
Which is mostly a good thing, to be clear.
I would consider 1024 bits risky in the following 10 years. 2048 bits probably won't ever be broken without significant algorithmic breakthrough or quantum computers.
[0] https://en.wikipedia.org/wiki/RSA_Factoring_Challenge
[1] https://lists.gforge.inria.fr/pipermail/cado-nfs-discuss/202...
But RSA is about a thousand times slower than double-SHA256, yet it still needs such large keys for security. That's because nobody is going to brute-force RSA, there are far better options. Like the General Number Field Sieve. Of course that's still exponential, this paper claims to be polynomial time for the vector-finding portion, not sure about overall. I've only skimmed it, and it's rather dense.
I factored a 2^65.4 bit semi-prime using Sagemath on an M1 in milliseconds.
// get two random primes (pretend P, Q)
sage: random_prime(2^34)
12697300267
sage: random_prime(2^33)
3962800609
// make a semi-prime (pretend N)
sage: 12697300267*3962800609
50316869230723462603
// check length of semi-prime (65-bits)
sage: log(50316869230723462603,2).n()
65.4476759618453
// factor it in 18milliseconds.
sage: time factor(50316869230723462603)
CPU times: user 9.78 ms, sys: 9.07 ms, total: 18.8 ms
Wall time: 23.2 ms
2^1024 bit RSA is about 2^80 in bit strength.This example was 2^65 bit RSA, which is negligible in bit-strength.
bash$ time factor 50316869230723462603
50316869230723462603: 3962800609 12697300267
real 0m0.009s
user 0m0.009s
sys 0m0.000s[0] https://www.amazon.com/Crypto-Rebels-Government-Privacy-Digi...
Both, but neither for as long a period of time beforehand as you remember.