[Main Page]

WiiEncryptionKeys

From EurAsiaWiki

Main Page | Recent changes | View source | Page history | Log in / create account |

Printable version | Disclaimers | Privacy policy
Category: Wii

Bushing @ http://hackmii.com/2008/04/keys-keys-keys/


By popular request, here's an explanation of the different encryption keys that are used on the Wii. No, I'm not giving them to you today; eventually, I may release some software to extract them from your own console; do not ask me when it will be released.


AES Keys: The Wii uses 128-bit (16-byte) symmetric AES (aka AES-128-CBC) for most encryption.

RSA keys: The Wii uses RSA-based authentication in several different places. This is fundamentally different than the AES encryption used for data-hiding, because RSA is an asymmetric cipher, meaning there are no shared secrets - nothing to be extracted from the Wii. The only RSA keys stored on the Wii are public keys, used to verify authenticity of content.

ECC keys: The Wii uses Elliptic Curve Cryptography in a few select places - primarily, it uses this when it signs savegames before writing them to SD card. ECC is used in ways similar to RSA, but it's somewhat newer and much faster to run on an embedded system.


Other: For lack of a better place to put it, there is also an HMAC key - a 20-byte value that is used in a SHA1-based HMAC of the NAND flash contents to prevent them from being tampered with. This is a commonly used scheme in embedded systems, where a device wants to "sign" something itself, for itself. There are no public vs private keys here - you need to know this value in order to verify the hash, and you need the same value to generate the hash. This isn't appropriate for communications between two people, but is perfectly fine for letting the Wii test to see if the chip was pulled, rewritten, and resoldered.

Key storage: The public keys are stored in various places - these aren't sensitive, so they don't really need to be concealed (although at least one of them needs to be protected from modification, and it can then sign the others). The rest are stored in two places:

  1. SHA1 hash of boot1
2. Common key
3. ECC private key
4. NAND HMAC
5. NAND AES key
6. RNG seed
7. other stuff we can't yet decipher

All of that info comes from tmbinc, who recovered it with a method he described here.

Retrieved from "http://www.eurasia.nu/wiki/index.php/WiiEncryptionKeys"

This page has been accessed 857 times. This page was last modified 16:52, 16 February 2010.