Forum discussion about cracking the TI-83+ key
unitedti.org
unitedti.org
Being able to do more complex stuff on a TI-83 would certainly allow beginning calculus students to cheat on tests, since most classes allow nothing higher than a TI-83 under the assumption that 83's won't do, for example, step-by-step integration.
http://en.wikipedia.org/wiki/Public-key_cryptography
The 'input' (the public key) of the problem can probably be found in the firmware of the device (it's probably too large to have been bruteforced). To be able to sign code so that the device will run it, you need the private key, which is one of the factors of the public key. So the guy used a program to factor the public key to get the private key so that he could sign the code (whatever code he wants) with it and get the calculator to run it.
The modulus is composed of two primes, p and q. Factoring n into p and q is sufficient to regenerate the private exponent d. Thus, the hackers can now sign their own OS and have it loaded on stock calculators.
I suspect the 512-bit RSA key was used in order for the Z80 to verify a signature in a short period of time. It's possible they even use a small public exponent (e=3), which could enable simpler/quicker attacks than factoring.
TI could have solved this in a number of ways. Partitioning the key space so there isn't one global key (like broadcast encryption) is one solution. Another would be to use ECDSA with a fast curve.
Also:
"The sieving database was 4.9 gigabytes and contained just over 51 million relations. - During the "filtering" phase, Msieve was using about 2.5 gigabytes of RAM. - The final processing involved finding the null space of a 5.4 million x 5.4 million matrix."