mirror of
https://github.com/holub/mame
synced 2025-05-09 15:51:48 +03:00
removed some obsolete commentaries. Not worth.
This commit is contained in:
parent
697eff192e
commit
4e4ff5da98
@ -1436,7 +1436,7 @@ M1: DMA read of protected ROM area
|
|||||||
M2: special read of ROM area which supplies decryption key first
|
M2: special read of ROM area which supplies decryption key first
|
||||||
M3: normal read followed by write to cart's decryption buffer (up to 64kB), followed by M2 but from buffer area
|
M3: normal read followed by write to cart's decryption buffer (up to 64kB), followed by M2 but from buffer area
|
||||||
|
|
||||||
M1's working is still unclear (more on this later), so we will be speaking of M2 & M3 most of the time.
|
Notes below refer to M2 & M3.
|
||||||
|
|
||||||
The encryption is done by a stream cipher operating in counter mode, which use a 16-bits internal block cipher.
|
The encryption is done by a stream cipher operating in counter mode, which use a 16-bits internal block cipher.
|
||||||
|
|
||||||
@ -1454,7 +1454,7 @@ internal block-cipher. So, at a given step, the internal block cipher will outpu
|
|||||||
given plaintext word, and the remaining 2 to the next plaintext word.
|
given plaintext word, and the remaining 2 to the next plaintext word.
|
||||||
|
|
||||||
The underlying block cipher consists of two 4-round Feistel Networks (FN): the first one takes the counter (16 bits),
|
The underlying block cipher consists of two 4-round Feistel Networks (FN): the first one takes the counter (16 bits),
|
||||||
the game-key (>=25 bits) and the sequence-key (16 bits) and output a middle result (16 bits) which will act as another key
|
the game-key (>=26 bits) and the sequence-key (16 bits) and output a middle result (16 bits) which will act as another key
|
||||||
for the second one. The second FN will take the encrypted word (16 bits), the game-key, the sequence-key and the result
|
for the second one. The second FN will take the encrypted word (16 bits), the game-key, the sequence-key and the result
|
||||||
from the first FN and will output the decrypted word (16 bits).
|
from the first FN and will output the decrypted word (16 bits).
|
||||||
|
|
||||||
@ -1484,19 +1484,6 @@ It can be observed that a couple of sboxes have incomplete tables (a 255 value i
|
|||||||
as of december/2010 show small randomness and big correlations, making possible that some unseen bits could make the
|
as of december/2010 show small randomness and big correlations, making possible that some unseen bits could make the
|
||||||
decryption need those incomplete parts.
|
decryption need those incomplete parts.
|
||||||
|
|
||||||
When bit #1 of the heading control bits is set to 1, an additional decompression step seems to be carried out. As of
|
|
||||||
february/2010, Deunan Knute has put some work on analyzing the decompression algorithm, but probably much more work will
|
|
||||||
be needed to completely reverse engineer it. Interested devs with quick access to hardware tests are welcomed to join
|
|
||||||
the task.
|
|
||||||
|
|
||||||
Guilty Gear X & Sega Tetris are examples of games using the decompression ingame.
|
|
||||||
|
|
||||||
Due to technical details, it's more difficult to get custom decryption data from M1 carts, which hinders some types of
|
|
||||||
analysis. The only M1 cart which have received attention until now have been AH! MY GODDESS. The available data clearly
|
|
||||||
doesn't have the same structure than M2&M3 carts using only the decryption step. However, due to that some hardware tests
|
|
||||||
show cycled structures similar to the ones returned by M2&M3 carts using the decompression algo, it's conjectured that M1
|
|
||||||
carts will be using the same decompression algorithm seen in M2&M3 ones.
|
|
||||||
|
|
||||||
****************************************************************************************/
|
****************************************************************************************/
|
||||||
|
|
||||||
struct sbox
|
struct sbox
|
||||||
|
Loading…
Reference in New Issue
Block a user