twl_wrapsdk/readme-AES.txt
yutaka a9383294ef add AES library
git-svn-id: file:///Users/lillianskinner/Downloads/platinum/twl/twl_wrapsdk/trunk@51 4ee2a332-4b2b-5046-8439-1ba90f034370
2007-04-27 07:00:20 +00:00

70 lines
1.8 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

=======================
AESに関するポリシー(仮)
=======================
現在のライブラリ実装は自由に扱える状態だが、最終的には
以下のポリシーを反映した形に制限を加える。
○(予習)鍵の種類
次の4組の鍵の組み合わせが存在する。
KEY[0] ID[0] SEED[0]
KEY[1] ID[1] SEED[1]
KEY[2] ID[2] SEED[2]
KEY[3] ID[3] SEED[3]
○(予習)鍵の基本事項
それぞれが独立したレジスタであるが、SEEDを設定したときに、
SEED + ID => KEY という計算処理がおこなれる(計算式は秘密)。
また、任意のタイミングでKEYのひとつをAESコアに送ることができる。
このAESコアに送る作業を行わない限りAESで使用される鍵は
変更されない。
○(予習)種別ごとの意味合い
KEYは一般的なAES回路として他のシステムとやり取りするような
データを取り扱うときにのみ使用する。
IDとSEEDは任天堂依存のやりとりで使うことになるが、
基本的にIDの方はシステム側であらかじめ設定しておき、
アプリケーションには操作させない。
●それぞれの鍵の意味合い
デバイス依存 アプリケーション依存
0: ×
1: ○ ○
2: × ×
3: ○ ×
ここで、デバイス依存とは、eFuseの内容を反映するということ。
また、アプリケーション依存とは、ROMヘッダ辺りを反映するということ。
上記の内容を反映するように、IDを設定することになる。
0と1はブートローダーが、2と3はIPL ROMが設定する。
(いつでも上書きできるので、IPL ROMで0と1も設定しておく)
●アプリケーション解放
アプリケーションには、KEY[0]、SEED[0]SEED[3]を使えるようにする。
場合によっては、SEED[2]とSEED[3]は解放させない(2つしかない)
●ARM9側API案
鍵の種類を、DEVICE_DEPEND、APPLICATION_DEPENDの
ビットORで設定できるようにするだけ。
複数レジスタがあることも見せずに、値をほおり込むと
AESコアに送るところまで処理する。
・AES_SetNormalKey(u128 pKey)
・AES_SetSpecialKey(u128 pKey, u32 types)