LinkoVitch said:
i read on a site that the current hack is a backdoor past the encryption that was built in incase the actual key was ever lost. It also explained the way the encryption works. something along the lines of.
There's a rumor of a backdoor. Haven't seen anybody actually confirm this. Maybe the universal header that's available is that backdoor?
LinkoVitch said:
The first 8K of data on the cart is the checksum of the cart. If you then run the key over the cart data the checksum should match the one on the cart.
The first 8k (or $2000 hex bytes - memory locations $800000 to $801FFF) contains an RSA encrypted program for the GPU. This encrypted program is a MD5 algorithm that is a digest of the cartridge. To put it in layman's terms - a checksum but more elaborate.
Locations $800400 to $80040C contain boot up parameters for the Jaguar (cart start address, whether the cart is 8, 16 or 32bit wide, and whether to do the start up Atari/spinning cube).
The remainder after that is just filled with $FF hex bytes.
LinkoVitch said:
So if this is the case, doesn't that mean the Jag knows the key. so it must have it stored somewhere. If you disassemble the standard Jag bootROM surley the key is stored within that?
The Jag only knows the public key. It does not contain the private key. Two keys are need to encrypt a Jaguar cart or CD game. Only one key is needed to decrypt and perform the authenctication.
Plus just knowing the numbers in the key is not enough. To use it with the programs that Atari wrote to encrypt games, the numbers were stored in a text file in a certain way. Here's the actual public key that is in every Jaguar boot ROM for the cartridge:
public:
dc.b $2f,$c5,$0f,$79,$b7,$96,$1b,$10
dc.b $a2,$ea,$46,$ab,$a1,$f0,$1d,$af
dc.b $c5,$c7,$94,$c0,$08,$b9,$81,$80
dc.b $5e,$5b,$93,$f5,$03,$02,$41,$fe
dc.b $75,$b7,$1c,$e8,$e7,$22,$79,$a3
dc.b $d5,$be,$30,$45,$f9,$ea,$35,$d9
dc.b $8a,$0a,$15,$40,$b4,$b4,$e8,$4e
dc.b $a6,$dd,$17,$ee,$42,$33,$10,$0d
dc.b $f9
Key things to note about this number. It is 65 bytes long. Only 518 bits of it are used (65 bytes = 520 bits). Upper two bits of the first number are not used. Last number is always odd value. Both the public and private key are a very large prime number!
LinkoVitch said:
Simply retrieve the key and use that to generate the checksum data. (means games boot slower at first whilst the Jag checks the values. But I guess it should work.
You still would need the appropriate private key to make it all work. But since the universal header is available, no need to do this for the cartridge. Better to devote effort to the CD key.
LinkoVitch said:
Or possibly even, make a modified bootrom, so you stick in your cart. The jag then generates the checksum it expects to find in the 8K, and if it doesn't match, instead of going red screen on us, it simply echos the value to screen/carts NVRAM. If this worked you could use a jag as a crypt jag. and when you write something you could get it to generate the code you need for that line of carts.
The point is not to have to modify Jags just to boot stuff.
Glenn