The 3DS Cryptosystem
yifan.lu
yifan.lu
The irony is that the feature designed to bring more security was the one that completely broke it.
Too much complexity: having lots of blocks that say “AES” and “RSA” in your plan might impress the boss, but it just adds to the attack surface. Always go with the simplest plan that secures against your threat model.
Security is hard to get right, and retrofitting security features into existing systems is ripe with very subtle traps. Add backwards compatibility into the mix and you've probably created a fragile Frankenstein.
but being someone interested in factorisation i am baffled as to why anyone has or is using rsa
my intended inference is that factoring numbers is deterministically achievable in sub polynomial time, and having your crypto rely on 'it's hard for me it must be impossible for you' reads so sophomoric
And I don't know what subpolynomial time nonsense you're talking about.
edit: I can't seem to reply to you again, so I'll edit. This is all a big miscommunication. I was more confused than hostile, though I recognize how it came off poorly. I genuinely thought he had some fundamental understandings due to the combination of things he said. I was mistaken and my response came off poorly.
what exactly do you mean by this?
and the 'sub' was misplaced, i actually asked instead of editing the original in case this was the reason i was called out so i could explain my typo
for clarification the original should simply read 'polynomial time'
Am I missing something? I thought that the whole point of using the difficulty of integer factorization as the strength of things like RSA was that it's not known to be solvable in polynomial time. "P==NP" is one of the unsolved problems of computer science.
I think that the state of the art is that we can factor in sub-exponential time.
If the original commenter's point was that RSA directly harmed the 3DS in some fundamental way, that would be a legit thing to push back on, I think.
Not really. The last big jump in complexity was in 1991, when the first 512-bit modulus, 2^512+1, was factored by NFS [1]. What has progressed the most, by far, has been the available computational power.
[1] http://www.ams.org/journals/mcom/1993-61-203/S0025-5718-1993...
You know much more than I do about this stuff, but I think I'm prepared to challenge you on this. :)
The practical NFS improvements since then might bring that down to 2^78 or even 2^72---and that's a lot of money saved---but when you're thinking of which key size to use it doesn't matter nearly as much as how 2^80 computation is something that is reasonably practical today, but was unthinkable in 1995.
P == NP => integer factorization can be done in polynomial time with a classic computer but not vice versa. In fact, many people believe P != NP && integer factorization can be done in polynomial time since FACTOR lies in this awkward space in the intersection of NP and co-NP. (Most other problem in this space are also in P, but we think P != NP, so...)
Now of course, if you put in quantum computers into the mix, Shor's algorithm can break both RSA and ECDSA in polynomial time.
I should have phrased my response differently regardless.
> deterministically achievable in sub polynomial time
it's already been stated that 'sub polynomial' was a typo, the original sentence discussed subexp state of the art but i changed it to discuss my research instead and failed to remove the 'sub'
'deterministic' can also be appropriately called out as redundant when used with polynomial time because it is implied in the latter but i wanted to be explicit
> my intended inference
inference is defined as 'a conclusion reached on the basis of evidence and reasoning'
this is a word structure i use in place of faith based assumptions: i think, i believe, etc; to establish a respect for evidence based conclusions
part of my research's aim is interested in a polynomial time algo for integer factorisation, but before i am to conclude that there is such a thing i require evidence, hence it being the intended inference of my research stead a direct inference
> 'it's hard for me it must be impossible for you'
this is what you will hear very often from many in the know if you tell them you have interest in a poly factorisation algo, even in spite of the problem being open
except in the case of one of the people that fanned all this interest
Richard Karp: (Berkeley, unsure, P=/=NP) My intuitive belief is that P is unequal to NP,
but the only supporting arguments I can offer are the failure of all efforts to place specific
NP-complete problems in P by constructing polynomial-time algorithms.
I believe that the traditional proof techniques will not suffice. Something entirely novel will
be required.
My hunch is that the problem will be solved by a young researcher who is not encumbered
by too much conventional wisdom about how to attack the problem. (o)
:pWhat's more interesting to me is that the 3DS system is nonrenewable. As the author of this post correctly points out, all DRM systems inevitably fall, but they accomplish their commercial purpose as long as that fall happens far enough into the future that the developers make their money. Smart systems trying to employ DRM this way build, from the beginning, mechanisms to refresh and re-complicate their DRM systems on a title-by-title basis.
I actually agree with you "in the large" about RSA (factoring doesn't seem like a hard enough problem anymore), but in the particulars, nobody is breaking RSA-2048 any time soon. Unlike strong curves, though, it seems plausible that RSA-2048 (and beyond) could fall before quantum computing.
But turning the question around, what do you think we should do to achieve asymmetric encryption? If you don't want it to break with Shor, then RSA and ECDSA are off the table. If you want small message size, you can't use Lamport.
to address your question i'll say this, crypto is only interesting to me in securing my own work and because my interests are in number theory that, due to rsa popularity, would incidentally affect crypto
i lack an intimate familiarity with the optimisation requirements of rolling production crypto, meaning i can comfortably ignore any message size restraints for my personal uses
instead of implying i know how crypto should be enacted.. with my current knowledge and interest i would be wholly unable to deduce as you did in your article.. i was simply stating that i am interested in factoring large integers and i wonder why anyone thinks open problems in number theory are a sound means of crypto
superb write up by the way
The short answer is that the numbers are so large that with current state of the art means (which I'm sure you know a lot about), factoring a 2048 bit number takes around 1000 years and 4096 bit keys takes about 2^32 times more years. Even if computers get faster every 10 years, you can see that it won't improve much. That's why we use number factoring for crypto; because it takes so long to break.
However, as you've pointed out, since the problems are open, the calculations are meaningless. And of course all this analysis goes out the window with quantum computers. But the unfortunate truth (the "biggest embarrassment of computer science" as Dan Boneh calls it) is that we don't actually have any proof that security exists. All crypto is built on open problems. So better choose open problems that's been open for a long time.
again you speak from a practical perspective, right?
because i was under the assumption onetime pad is provably secure
On the other hand, those of us who like to actually own our hardware very much hope that these mistakes do happen again. :-)
Do not allow restricted devices on the mass market if the legal owner is unable to override the restrictions.
At this point, the term "CTR" has become a design smell.
On system start, the whole chunk is decrypted, the signature is verified, and everything works as expected. Until in the New 3DS, they decide to also additionally encrypt segment 3 (the ARM9 stuff) with a separate key on the NAND. That's what led to the whole mess. So I guess their mistaken assumption was that since FIRM was signed, the encrypted ARM9 section was protected. However, they didn't take account of the fact that the key to decrypt it can be corrupted. It's a bit subtle.
(I get that there are multiple ways to break a bug. :)
They successfully raised the $2000 before the person claiming to do a decap (Jl12) stole all the money and disappeared off the face of the earth.
http://web.archive.org/web/20121227085042/http://3dbrew.org/...
http://web.archive.org/web/20140209211220/http://3dbrew.org/...
http://gaasedelen.blogspot.co.uk/2014/03/depackaging-nintend...
http://www.psdevwiki.com/ps3/Boot_Order#Chain_of_trust_Diagr...
Many smaller breaks happened in that 4 years.