AES Registers: Difference between revisions

Myria (talk | contribs)
Hardware key generator: DSi key scrambler algorithm
Line 628: Line 628:
The algorithm for generating the normal-key from keyX and keyY is as follows, in big-endian 128-bit unsigned wraparound arithmetic:
The algorithm for generating the normal-key from keyX and keyY is as follows, in big-endian 128-bit unsigned wraparound arithmetic:


NormalKey = (((KeyX ROL 2) XOR KeyY) + C) ROL 87. "ROL 87" is equivalent to "ROR 41", the latter is closer to the DSi algorithm which used 42.
{| class="wikitable" border="1"
 
! Mode
The secret constant C has not been publicly disclosed.
! Formula
! Secret Constant C
|-
| 3DS
| NormalKey = (((KeyX ROL 2) XOR KeyY) + C) ROR 41
| Not publicly disclosed.
|-
| DSi
| NormalKey = ((KeyX XOR KeyY) + C) ROL 42
|
|}


Unless noted otherwise, all keyslots on retail units use the hardware key generator.
Unless noted otherwise, all keyslots on retail units use the hardware key generator.