ES block encryption, for lack of a better name, is a commonly used data encryption method on DSi by Nintendo.
ES block encryption, for lack of a better name, is a commonly used data encryption method on DSi by Nintendo.
−
It uses AES CCM to encrypt a maximum of 0x20000 bytes of data per time, and extends it with a 32 byte metablock at the end.
+
It uses AES CCM to encrypt a maximum of 0x20000 bytes of data per time, and extends it with a 32 byte metablock at the end. Data blocks bigger than 0x20000 bytes are segmented into multiple ES blocks.
A part of the last 16 bytes of metablock itself is encrypted with AES CTR, and contains the nonce for decryption and size of the ES block:
A part of the last 16 bytes of metablock itself is encrypted with AES CTR, and contains the nonce for decryption and size of the ES block: