Factoring may be easier than we think (2016)
math.mit.edu
math.mit.edu
Think carefully. You now how the power to decrypt much of the world's banking and internet traffic and spoof certificates. There are forces in this world that would kill you to have this power. Would you publish your findings for everlasting fame? Would you sell it to the NSA for money (remember you can prove your power without releasing your algorithm)? Would you use it for personal gain or power? Who would you tell first? Who do you trust?
* Discuss the result with a few cryptographers he trusts, to check whether he didn't make a mistake and to make sure he's not the only one who knows about it.
* Write a paper. Put in all kinds of silly things, because it will get published anyway.
* Publish proof of having found the algorithm, together with a hash of the paper.
* Wait ~3 years until everyone has moved to a better algorithm. The normal responsible disclosure period is 3-6 months but this is so big it has to take a bit longer.
* Publish the paper.
I certainly think this is pretty dangerous. It may in fact be better to do the initial publication anonymously... and make sure you avoid all possible traces (the NSA will do everything in their power to get a hold of you).
Well, what kinds of mistakes can you make? Either it works or it doesnt. You (and everyone else) can verify that easily.
(It might not work some numbers with special properties or so. But this does not matter if you can already break 99% of RSA keys)
> _I_ still wouldn’t be able to crack any RSA keys at all.
Everybody can crack RSA keys if the modulos is small enough. You just need to factor a number :)
There actually nice list of numbers to try: https://en.wikipedia.org/wiki/RSA_numbers
You can factor, e.g, RSA-100 on a normal PC with state of the art algorithms in reasonable time.
That said, I had some new insight into factoring, and I was only a mere factor of one million away from factoring industrial crytography, I'd maybe try to optimize it a bit more.
You are off by many magnitudes. 1M is very little and equivalent computing power can be bought for a few tens of euros.
I think my plan would just be to publish that factorisation anonymously (being super paranoid to avoid being traced) and then wait however long was necessary before publishing the algorithm.
Unless someone else comes up with the same algorithm, and does lower the constant factor.
This has little impact on what someone can do with the algorithm, but it sounds like the author is concerned with ensuring that they understand why their new algorithm works. Since they're committed to not discussing their discovery for several years, it seems reasonable to want to make sure they haven't convinced themselves of something that doesn't work the way they think.
No discussion needed. Simply MITM yourself or others in network to find out.
No, I think this is a danger to you as long as you, and only you know about it.
Now, in the case you were to immediately publish this after you find out,same thing, you'd be safe. The fallout would be sub-optimal though, you would gain no immediate cash, but you would gain notoriety (maybe not the best kind) and you would give NSA and other intelligence agencies who presumably collected encrypted data for later deciphering. The internet security would probably be compromised for a couple of months, until new algos would be in place.
I am not a cryptographer and I just have minimal understanding of these things, but I'll take a crack at saying what could be done:
1) Tell no one. POC is sufficient to deomnstrate it working.
Ethical path goto 4
Unethical path:
2) Build a helper program that can easily crack keys on demand
3) Put it out on the darknet that you decrypt stuff for a steep fee. Get rich.
4) Publish the finding, do not provide the algo, focus on maintaining anonymity and having impeccable OPSEC. Provide proof.
This will mean that everybody knows how unsafe their infrastructure is and there will be maximum effort to move everything to something else. But the algo is still contained and people can not yet have the power, _you_ have it. This, of course exposes you to maximal risks but also maximizes your potential financial reward. Maybe someone will soon find a way to crack it too, and then your show is off. Or maybe they will never find it and you remain a mystery, the _one_guy who could brake prime factoring. (unlikely, considering the number of smart people on this earth)
It doesn't break elliptic curve crypto by factoring numbers. Instead, it breaks them by solving the discrete logarithm problem.
If the encryption eventually gets cracked somehow, my data will be available not only to whoever owns, hacks, or otherwise compromises the cloud storage provider itself, but anyone who happened to have captured the traffic on any of the hops it went through on the way to the provider.
It'd be interesting if it could be used to manipulate voting results, but e-voting is still in its infancy.
I'd adjust the price regularly to maximize my profit. The world would go crazy and very rapidly upgrade all software to not use prime factoring based encryption. I'd retire early to some lovely place, and never, ever, tell anyone how I got all this money.
But all you'd need to do is steal from one early adopter (it's in their financial interest to be savvy enough) and the adopter could alarm the community that an exploit is in existence.
In addition, there are various cryptographic algorithms used. So, one could accept Litecoin, if SHA-256 was exploited. Or accept Vertcoin if both Script and SHA-256 was exploited. Etc.
So, it's an interesting situation based on game theory of an exploit. There is no hard and fast answer.
Now I think bitcoin actually uses es elliptic curve cryptography (I don’t know, I really don’t care about bitcoin), but the hypothetical was more along the lines of “what if you could break public/private key cryptography”, and less about factorization in specific, anyway.
But a break in ECC would be...something extreme IMHO and according to multiple researchers, I believe, would happen after SHA-256 because ECC is more settled mathematics.
I think the real question here should be whether it is immoral though, because it is trivially illegal. Consider the DMCA and penalties for circumventing DRM. Heck, if you are decrypting stuff that is classified, intent might not even matter.
Why not just create transfers quietly from others and bleed out wallets from around the world, then convert to cash, then publish? You’d be rich, crypto would crash, and you’d be able to buy a lifetime supply of popcorn for the ensuing collapse.
Then I'd enjoy watching people try to figure out if I'd solved factoring, or broke the hash function, or both, or something else.
A fundamental class break that takes down RSA would be a big deal, but not a national emergency; the world is already moving somewhat rapidly towards elliptic curve systems anyways.
My point is just that nobody is going to kill you for this ability.
Indeed, the authors who proved that primality testing was in P did so with, IIRC, an O(n^12) algorithm (with n being the number of bits), which is not much use in practice. Although, in that case the result was already widely suspected to be true, and fast, randomized (non-deterministic but highly accurate) polynomial-time algorithms were already known.
Also, even a O(n^100) sol'n is way better than O(2^n) since (usually) I can parallelize polynomial time algorithms to something more practical: e.g., http://cds.iisc.ac.in/faculty/vss/courses/PPP2014/projects/p...
...there's probably already sci-fi around that idea, but if not it'd be a great plot.
2. Steal bitcoins from very old wallets with some small amounts. Supposedly those wallets are lost. Steal enough to have enough money to live a good life. Well, if for some reason I would have enough money, skip this step.
3. Break google.com certificate and mail hashes to Google Security team. Ask them to disclose that factorization is broken, so the rest of the world can prepare. Repeat with some other big companies.
4. Disclose algorithm when the world is ready.
I.e. if you could do DLP in polynomial time, then also factoring becomes polynomial (thanks to Shor's Algorithm [2]).
The reverse, however, is not currently known to be true AFAICS: having an oracle that computes the DLP does not help you to speed up factoring (at least not in a way that makes it polynomial).
[1] https://en.wikipedia.org/wiki/Reduction_(complexity)
[2] https://en.wikipedia.org/wiki/Shor%27s_algorithm
(EDIT: typo)
The stack-exchange questions that you link to refers to [1] "Discrete Logarithms and Factoring". Section 1 "Introduction" already states many facts that imply that DLP is hard, even if you can factor:
* fastest known method for DLP is O(exp(c sqrt(log n log log n)))
* 1. 3c) "if we can factor in polynomial time, then to quickly solve a^x ≡ b mod n, all we need are solutions modulo the prime divisors of n"
Note that "solutions modulo the prime divisors of n" are still instances of the DLP with super-polynomial complexity, and in cryptographic applications N is usually a prime number anyway (DHE, ElGamal crypto-system), so 1 3c) does not actually apply.
See also the paper's section 6 final remarks "Conversely, one can ask for a fast algorithm for prime-modulus problems, assuming all needed factorizations. Both of these questions remain unanswered".
[1] https://www2.eecs.berkeley.edu/Pubs/TechRpts/1984/CSD-84-186...
That is what I remembered. You don't need Shor's Algorithm though. DLP would help finding roots, in particular if the log of a number is even, you can compute the square root of the original number which is useful for finding quadratic congruences (the goal of the quadratic sieve). The reverse (factoring enables DLP) does not appear to be true.
For both factoring or preimaging, I'd think I'd offer it publicly (any three lettered agency will find you anyway). I mean offering the 'service' as a commercial, legal, tax paying business.
- Offer factoring/preimages as a service, start with very high prices (like a million USD per input).
- Lower the price after every x sales. Like for every 100 sales, reduce the price by 50%
- Once the price goes below a certain threshold, release the algorithm.
This method has (I think) the most benefits:
- it slowly released to the public, giving everybody enough time to migrate away
- it makes you less of a target for government/organised crime, as it's less controversial for them just to pay instead of trying to extort.
- by incorporating a business and paying tax, offering this service will probably be legal in most countries (not sure though)
- by the time you release the algo, you'll have made plenty of money to retire, and you'll no longer be at risk since it is now public information.
And for those wondering: if you find practical SHA-2 preimage, you would NOT be able to mine bitcoin with it.
Even when this occurs, the earliest iterations of these algorithms are intensely technical, and very slow. Of course, followup research often rapidly improves on these numbers, but that usually happens in collaboration with other authors.
So all-in-all, it is unlikely that a lone genius comes up with an efficient factoring algorithm all by themselves.
Improve on the old record? Possible. Shatter it at this late date? That’ll take a mode of thinking that nobody has tried.
https://www.antipope.org/charlie/blog-static/fiction/toast/t...
Just publish it. At most demonstrate it's been broken in some incontrovertible way so people figure out next steps more quickly. Protect yourself as best you can.
I would publish it in such a way that it would appear to have been released/solved by the worst person I didn't like; a world-known dictator or similar would be ideal. Nobody would believe it, but maybe their narcissism wouldn't let them not play along. It very well might screw their life over in ways unknown.
The uproar around the world would be very interesting to watch.
But I'd definitely make sure I wasn't connected in any way - you would likely have a target on your head (because if you could do that - what else could you know or do?)...
In academia, maybe. But I would not be surprised if millenia of experts' time has been spent on this problem in intelligence agencies.
Hopefully.
A key portion of an advantage like this would be who to share 1) derived intel and 2) capability with.
I strongly suspect it would be impossible to use it to any moderate degree without being found out in one way or another.
I know this is a very very poorly worded question :) but I wonder what the most amazing secret was that was held for the longest time?
Very relevant, probably the Allie's breaking the Axis enigma code in WWII.
https://en.m.wikipedia.org/wiki/Ultra
If the NSA broke RSA, they'd have a similar program set up to ensure nobody notices.
I heard that the use of the golden ratio in projects such as the engineering of cathedrals, required that the first thing you do before you draw your plan is to draw a pentagram, in order to derive the ratio using simple drawing tools, and then carefully erase it, or in other words, make it occult. http://www.matematicasvisuales.com/english/html/geometry/gol...
Also, I'd really like to know who in the hell built the Ankythera device. https://en.wikipedia.org/wiki/Antikythera_mechanism
Just like the AKS primality testing algorithm depends on clever number theory, any progress, any new trick would be very likely reported, and we'd see it in charts like these:
https://aiimpacts.org/progress-in-general-purpose-factoring/
I tend to agree. Look at Fermat's last theorem: it went over a century as one of mathematics hardest unsolved problems, and in reality all it took was one guy dedicating a couple of months of exclusive work to it. Factoring (and discrete log?) is probably similar.
I work in this field as a non-academically-trained cryptographer. Cryptographers prefer to assume their assumed-hard functions are in fact hard and move on. Especially those that have academic training--they supposedly know better than to waste their time on such a hard problem.. but by induction that means approximately nobody is really looking at it.
Six years, not a couple of months.
There were plenty of people who tackled this problem and who failed to make any headway. {Edit: I phrased this last sentence really clumsily, sorry.}
There was also plenty of meaningful progress throughout the 20th century at least, showing that the FLT was implied by other statements which would be easier to prove. Wiles's work was a follow-on to this progress; it's quite misleading to say that it "took" a single guy working over six years to prove FLT.
See also the many P = NP proof attempts. (Sure, most of them are complete crackpot garbage, but that doesn't mean serious attempts are not made, and probably more serious attempts are made that then go nowhere so the author doesn't disclose it.)
This is wrong. Many professional mathematicians attacked the problem, and many useful discoveries were made before it was proved. For a brief summary, see https://en.wikipedia.org/wiki/Fermat%27s_Last_Theorem#Early_...
However, if you apply Landauer's principle, current factoring algorithms would require enough energy to boil all oceans on the earth, that's a lot even compared to the US's energy supply.
So algorithmic improvements are the real danger basically. Even if we discovered a decryption method now, and immediately everyone stopped using RSA, there would still be an immense impact because all the past encrypted traffic that someone might have stored somewhere suddenly becomes decryptable. And usually, traffic from 20 years ago is still relevant today.
Interesting. For what algorithm & key size?
I'd love to quote this. I've heard it before but I don't remember the source.
> Boiling all water on the planet (including all starfish) amounts to about 2^24 lakes of Geneva and leads to global security: 114-bit symmetric cryptosystems, 228-bit cryptographic hashes, 2380-bit RSA. This needs to be done 16 thousand times to break AES-128, SHA-256, or 3064-bit RSA.
I think this paper isn't using Landauer's bounds though, but conventional computers. So maybe my claim was wrong, because we aren't 16 thousand times away from Landauer's bounds but millions [1].
[1]: https://web.archive.org/web/20141219043239/http://www.bloomf...
I'd say, rather, that it gives a rough ballpark of how much the government was willing to invest in the 1940s, at the peak of its ability and willingness to take on projects of incredible scope. There was still a fair amount of this for a few decades after that, but not since the 70s. See https://rationalconspiracy.com/2012/06/03/why-doesnt-our-gov... for one person's take on this (though you don't have to go as far as she does, I think, to establish that applying Manhattan Project numbers to anything going on today will result in an overestimate).
One of these things must be true, and debates around quantum computing usually focus on the first two. But as argued, we don't have great reasons to believe factoring in polynomial time is impossible. We certainly don't have a proof that no such algorithm exists.
You'd also need to accept that Quantum computers are realistic, which is why Aaronson's trilemma includes quantum computers being impossible.
Feel free to prove me wrong by building one which does useful calculations. No time limit, until you die, in which case "time's up."
Edit add for downvoters: the strong Church Turing thesis is also almost certainly, and very obviously bullshit. How does that make you feel?
I went to a Gordon conference on this subject in the 1990s; as far as I can tell, there has been zero progress in the topic since then. Sure are a lot of press releases though!
Of course they haven't built one yet, but none of the difficulties encountered so far have involved discovering new physics, which is what you would need to do to rule out quantum computers since the laws of physics as currently understood permit them.
Never in the history of the human race has something as complex as a computer architecture existed in the theoretical world before it exists in some form in the physical world, let alone one for which we define complexity classes.
The entire field is intensely silly, and the last time I said so in a public place, the waiter turned out to be some dude who just got his Ph.D. in the subject. He didn't agree with me exactly, but the fact the dude had a job bringing people steaks for a living is a decent argument I'm right.
I am not certain that quantum computers are possible, but I am certain that you are wildly overconfident that they are not.
Saying "quantum mechanics works" is not the same as saying "I can manipulate exponential QM states with polynomial imperfect physical devices." In the early days, people sketched out optical quantum computers that totally worked, but had exponential growth in elements with quantum states. Which, I bet, is how the universe is always going to work.
Money where your mouth is: I haven't found any other good shorts for this shitty idea.
I'm not super confident there will be quantum computers, whereas you seem very confident there will not be. What do you think the probability of quantum supremacy within 20 years is? If you think it's 5 % and I think it's 50 %, perhaps we can take the geometric mean and bet at 6:1 odds (~15% chance).
Will you give me those odds? Let's say I stake $200. Then I'd give you that if I lose, and you'd give me $1200 if I win. Or we can increase the amount a bit. Today's dollars, we can inflation adjust since it'll be 20 years.
The terms might sound favourable to me, but you seem very confident that there won't be quantum computers ever, so less than 15% chance in the next 20 years seems consistent with your belief.
I wouldn't know how to put the bet on a blockchain, but if you know about that and want to, I'm happy. Otherwise I am happy to just take your word.
We can also shorten the duration of the bet, but I would want to shift the odds a bit since although I think quantum computers have a decent chance of being possible, there is considerable uncertainty in how long it would take to get to the point of demonstrating quantum supremacy. Probably I would accept doubling the odds if the duration of the bet were halved and so on.
There's this ethereum thing called Augur we could use to place the bet, though that's an interesting bet in itself (ethereum and auger being around in 20 years is not a sure thing). I suppose also "long bets." If you google my name you can find my contact info.
Quantum computers are not known to be capable of solving NP-Complete problems in polynomial time.
Out of all the "classical" problems that we might find another algorithm for, "factoring" would be my bet for the one that we are missing a better algorithm.
Sure, lots of crypto exists that isn't prime factoring based and we could move to that in a hurry- but it would be a lot like if we'd realized the Y2K problem on December 31st, 1999. Everything would need to be updated right now, immediately, today.
And yet part of me is kind of excited it could happen.
> On the other hand, the people who talk about the great difficulty of factoring have equally little evidence...
This is a classic antinomy (paradox): one can argue indefinitely in either direction, because the question lies along the bounds of human reason (or so says Immanuel Kant).
The two sentences above, in themselves, provide a bit of evidence of the impossibility of solving the problem, and at the same time provide evidence for the possibility of handling this problem as a significant phenomenon of pure mathematics.
:)
EDIT: I mean only that the insolubility of the problem may itself be of mathematical use: it may (insofar as it is unsolvable, and insofar as it appears to be soluble) amount to a kind of 'anchor' for mathematics, a marker that indicates the boundary of the mathematical sciences, and that such a boundary would be of tremendous import to mathematicians and philosophers. Why is _this_ problem, _this_ problem specifically, unsolvable? (Rather than some other problem that has been solved?)
tl;dr The question of "why have we have trying to solve this problem for millennia?" is perhaps more significant for mathematics than the solution to the problem.
Even if I had no education in mathematics I tried to show that in fact it was feasible to factor some enough large numbers with "bc" (using square root and a few other simple tricks) so the risk of having encryption broken by professionals was quite serious.
My boss asked to another guy for its advice, which was essentially that for a start he would not try to break any encryption scheme anyway. And that was the end of the story. The unstated lesson was probably that there were no reason to expect a career boost by working on such topics.
At the time when 1024-bit numbers used in RSA were 'perfect', it was infeasible to factor the number in a reasonable amount of time. The most straightforward approach is just to iterate over integers from 2 to your target number (call it n), and see if anything divides evenly. Now, you start looking for shortcuts. First, you can test only half the numbers, because the second half will give identical results (e.g. n=20, n/2 = 10; later, n/10 = 2; no need to even test the second half of the range.) Next, it becomes obvious that we only care about odd numbers (if it's divisible by an even number, it's divisible by two); but really, when it comes down do it, we only care about prime factors (for one thing, all non-primes can be decomposed into prime factors; for another, we used prime numbers to get n.) And lastly, for the simple shortcuts, you really only have to get to int(sqrt(n)) + 1 or so. So we've cut down the number of integers we have to divide with.
Did we find the two prime factors of our n in a "reasonable" time? If so, just double the bit length to get a problem twice as hard. Every publicly-known shortcut to factoring large numbers just means you need to make your n larger to increase the workload on an attacker.
The question then becomes: has anyone found a shortcut that will factor any number within a "reasonable" time? We don't know.
As to your career-related comments, I read cluelessness from your boss, and carelessness from the 'other guy' - if OG "would not try to break any encryption scheme," then he's not the person whose advice you want about the strength of cryptosystems. Your boss just lacked critical thinking skills.
IIRC the movie plot was somewhat convoluted and confusing and I don't have any desire to see it again. I'm bringing it up because there are a number of "what would you do if" posts here.
In the end, the "sneakers" use the box to cause: the sudden bankruptcy of the Republican National Committee, and the simultaneous receipt of large anonymous donations by Amnesty International, Greenpeace, and the United Negro College Fund.
"There is no branch of mathematics, however abstract, which may not some day be applied to phenomena of the real world." - Nikolai Ivanovich Lobachevsky
Applied mathematics is a problem looking for a solution and pure or abstract mathematics is a solution looking for a problem. An instance of this is the extension of the set of complex numbers called the quaternions discovered long ago which eventually found their application in affairs that require the representation of orientations in three dimensions, such as in computer graphics.
It seems here then that a motivated entrepreneur can establish a remunerative business should he or she find a solution to this prime factoring problem.
For this reason the SHA-3 competition was started to find a new hash function based on different principles.
In the end it was found that creating practical attacks for SHA-2 is too hard. But we don't know what the future will bring.
The difference between RSA and SHA-2 is that RSA is a very nice mathematical structure and we are still learning a lot about (prime) numbers. In contrast, SHA-2 is weird structure that has to solve a hard problem. It is hard to attack.
One thing to keep in mind:
Bitcoin wallets are implemented with public/private key pairs. If you believed that you had a method to crack that, well you probably couldn't just take all the bitcoin (people would notice and the market value would evaporate), but you could probably figure out a way to make at least 1% (a couple billion). So if it can be broken with a group of smart people thinking hard, that sounds like a startup opportunity.
The papers claim, that np but very likely not np-hard problems are likely to be in p is applicable though to breaking ECC
https://github.com/mcastorina/wheel-factorization/blob/maste...
> Of course, I have no real evidence for my views: [...]
>Of course, I have no real evidence for my views; ... On the other hand, the people who talk about the great difficulty of factoring have equally little evidence.
The implied idea is that this discovery could happen at any time and all things depending on it are at risk. This is also true but it's unreasonable to think that it is likely given that much effort has been put into this.
Yes we don't know, but two unknowns are not 50:50. Of course regardless of how you estimate its truth consider the cost of being wrong when using anything depending on it.
P=NP is a very hard problem and there have been a lot of failed solutions (including some that are flawed for very subtle reasons that can be easy to overlook). Even many famous, well known people have fallen into the trap of thinking they have a viable solution.
If RSA is used to encrypt (for example if you send an encrypted message using PGP) then factoring directly breaks the encryption.
In practice, a lot of encryption on the Internet uses RSA to sign the hash of a key obtained using Diffie-Hellman. In this case breaking RSA would allow the NSA to impersonate but not directly break existing communications. The problem with impersonation is that it is very noticeable.
What I find odd about the linked article is that it only talks about factoring. In practice, the discrete log. problem is just as important and is very much related to factoring.