JP2007281994A - 半導体集積回路 - Google Patents
半導体集積回路 Download PDFInfo
- Publication number
- JP2007281994A JP2007281994A JP2006107220A JP2006107220A JP2007281994A JP 2007281994 A JP2007281994 A JP 2007281994A JP 2006107220 A JP2006107220 A JP 2006107220A JP 2006107220 A JP2006107220 A JP 2006107220A JP 2007281994 A JP2007281994 A JP 2007281994A
- Authority
- JP
- Japan
- Prior art keywords
- bus
- encryption key
- encryption
- key generation
- group
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
【課題】内部バス上における転送情報の暗号化及び復号に用いる暗号鍵の更新動作に要する電力消費を低減する。
【解決手段】夫々のバススレーブ(6,7,8)はその数よりも少ない数にグループ化された当該グループの暗号鍵を生成する第1の暗号鍵生成回路(EK1_s、EK2_s、EK3_s)を有し、その暗号鍵を用いて内部バス(10)への出力情報の暗号化と入力情報の復号を行う。夫々のバスマスタ(2,12)は前記グループ毎の暗号鍵を生成する複数の第2の暗号鍵生成回路(EK1_m、EK2_m、EK3_m)を有し、その暗号鍵を用いて内部バスへの出力情報の暗号化と入力情報の復号を行う。暗号鍵制御回路(5)バスコントローラ(4)によりアクセス対象として選択されたバススレーブが属するグループ内の前記第1の暗号鍵生成回路と当該グループに対応する第2の暗号鍵生成回路とに対して暗号鍵の同期的更新を指示する。
【選択図】図1
【解決手段】夫々のバススレーブ(6,7,8)はその数よりも少ない数にグループ化された当該グループの暗号鍵を生成する第1の暗号鍵生成回路(EK1_s、EK2_s、EK3_s)を有し、その暗号鍵を用いて内部バス(10)への出力情報の暗号化と入力情報の復号を行う。夫々のバスマスタ(2,12)は前記グループ毎の暗号鍵を生成する複数の第2の暗号鍵生成回路(EK1_m、EK2_m、EK3_m)を有し、その暗号鍵を用いて内部バスへの出力情報の暗号化と入力情報の復号を行う。暗号鍵制御回路(5)バスコントローラ(4)によりアクセス対象として選択されたバススレーブが属するグループ内の前記第1の暗号鍵生成回路と当該グループに対応する第2の暗号鍵生成回路とに対して暗号鍵の同期的更新を指示する。
【選択図】図1
Description
本発明は、バスマスタとバススレーブ間の内部バス上に転送される情報を暗号化した半導体集積回路に関し、例えばICカード用マイクロコンピュータ(ICカードマイコンとも記す)に適用して有効な技術に関する。
機密保護データを扱うICカードマイコンのような半導体集積回路(LSI)に対する不正アクセスの手段には電源系ノイズを観測してデータを不正に解析したりする手法がある。これに対してプロセッサとメモリ間のバス上において転送データを暗号化する技術が特許文献1に記載がある。特に特許文献1ではデータの暗号化復号に用いる鍵をテーブルに保持し、プロセッサは暗号化に際してテーブルのインデックスを生成し、メモリはそのインデックスをメモリに蓄え、プロセッサは暗号化データをインデックスと共にメモリに転送し、メモリはインデックスを用いて検索した鍵を暗号化データの復号に用いるものである。これによって暗号化復号動作に伴う電力消費を低減しようとするものである。
本発明者はICカードマイコンにオンチップされたバスマスタと複数のバススレーブを接続する内部バス上における転送情報の暗号化について検討した。例えばバスマスタから出力されたデータは暗号鍵を用いて暗号化されてバスに供給され、これを受けるバススレーブ側は当該暗号鍵を用いてバス上のデータを復号する。暗号化及び復号にはビット毎に2入力排他的論理和ゲート等を用いればよい。暗号化と復号に利用する暗号鍵は逐次変更されることが望ましいため、バススレーブとバスマスタは夫々同期して暗号鍵を更新する暗号鍵生成回路を持つことが必要である。例えばバスマスタによるバスアクセス毎に暗号鍵を更新するように制御すればよい。あるバスマスタによってアクセス可能な複数のバススレーブがオンチップされているとき、バスマスタが一つのバススレーブをアクセスするときであっても残りのバススレーブに対しても暗号鍵生成回路による暗号鍵の更新を制御しなければ、バスマスタとバススレーブとの間の暗号鍵の整合を維持することができなくなる。しかしながら、オンチップされるバスマスタ及びバススレーブの数や種類が多くなったとき、アクセス対象とされない全てのバスマスタ及びバススレーブに係る暗号鍵生成回路についてもバスアクセスサイクルの度に暗号鍵の更新動作を行わなければならないとなると、電力消費が著しく増大してしまうことが本発明者によって明らかにされた。特許文献1ではそのような意味での低消費電力化について考慮されていない。
本発明の目的は、バスマスタ及びバススレーブの数や種類が増えてもそれらが接続される内部バス上における転送情報の暗号化及び復号に用いる暗号鍵の更新動作に要する電力消費を低減できる半導体集積回路を提供することにある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
〔1〕本発明に係る半導体集積回路(1)は、複数のバススレーブ(6A〜6B、7A〜7D,8A〜8C)、内部バス(10)を介して前記複数のバススレーブに接続され前記複数のバススレーブをアクセス可能なバスマスタ(2,11,12)及び前記バスマスタがアクセスしよとするバススレーブをアクセス対象として選択するバスコントローラ(4)を有する。前記夫々のバススレーブはその数よりも少ない数にグループ化された当該グループの暗号鍵を生成する第1の暗号鍵生成回路(EK1_s、EK2_s、EK3_s)を有し、前記暗号鍵生成回路で生成された暗号鍵を用いて前記内部バスへの出力情報の暗号化と前記内部バスからの入力情報の復号を行う。前記夫々のバスマスタは前記グループ(6,7,8)毎の暗号鍵を生成する複数の第2の暗号鍵生成回路(EK1_m、EK2_m、EK3_m)を有し、アクセス対象とするバススレーブに対応する第2の暗号鍵生成回路で生成される暗号鍵を用いて前記内部バスへの出力情報の暗号化と前記内部バスからの入力情報の復号を行う。前記バスコントローラによりアクセス対象として選択されたバススレーブが属するグループ内の前記第1の暗号鍵生成回路と当該グループに対応する第2の暗号鍵生成回路とに対して暗号鍵の同期的更新を指示する暗号鍵制御回路(5)を有する。
上記した手段によれば、バススレーブのグループ毎にバスマスタ及びバススレーブにおける暗号鍵の生成と更新をグループ化したから、バスアクセス動作において動作される暗号鍵生成回路はアクセス主体のバスマスタとアクセス対象とされるバススレーブを含むバススレーブのグループとに限定される。このように動作すべき暗号鍵生成回路を限定することにより、暗号鍵の更新動作等に伴う消費電力を低減することが可能になる。また、バススレーブはその数より少ない数にグループ化されグループ毎に暗号鍵を割り当て、全てのバススレーブ毎に個別の暗号鍵を割り当てるものではないから、一つのバスマスタが保有すべき第2の暗号鍵生成回路の数はバススレーブの数よりも少なくなり、チップ面積の増大が過大なることはない。低消費電力とチップ面積増大のトレードオフを考慮すると、グループ化は例えば10グループ以下にするのがよい。チップ面積はグループ化数に比例して増えるが、消費電力はグループ化数が10程度までは漸次減少するがそれ以上では電力消費の低減率が収束してしまうからである。グループ化数が10程度を超えると暗号鍵生成回路の数が増える分だけ逆にそれぞれの記憶段等で消費される電力の増大を無視できなくなるからである。
本発明の一つの具体的な形態として、前記バスマスタ及びバススレーブは内部バスのデータバス上におけるデータ情報に対する暗号化及び復号を行うものである。内部バスのデータバス上におけるデータの暗号化が行われる。また、前記バスマスタは内部バスのアドレスバスに出力するアドレス情報に対する暗号化を行い、前記バススレーブは内部バスのアドレスバスから入力するアドレス情報に対する復号を行ってもよい。これにより、内部バス上のアドレスバス上におけるアドレス情報に対する暗号化も行われる。ただし、前記バスコントローラは前記バスマスタから暗号化前のアドレス情報を受け取って当該バスマスタがアクセスしようとするバススレーブをアクセス対象として選択することが必要である。このとき、前記第1及び第2の暗号鍵生成回路が生成する暗号鍵はアドレス情報の暗号化復号とデータ情報の暗号化復号との双方に対して共通化されてもよい。前記バスマスタは複数個であってもよい。また、前記バススレーブグループは、例えば単数又は複数のRAMを含むRAMモジュール、単数又は複数のマスクROMを含むマスクROMモジュール、及び単数又は複数の電気的に書換え可能なプログラマブルROMモジュールである。
本発明の別の具体的な形態として、前記バスマスタは内部クロック信号に同期して内部バスにアドレス信号を出力したとき次のクロックサイクルで、書込みデータを内部バスのデータバスに出力し、又は内部バスのデータバスから読出しデータを取り込む制御を行う。このとき、前記第1及び第2の暗号鍵生成回路は前記データバスへのデータ出力又はデータバスからのデータ入力のクロックサイクルの開始タイミングに同期して前記暗号鍵の同期的更新動作を行なう。したがって、データバス上のデータ情報は今回のアクセス動作期間中に更新された暗号鍵を用いて暗号化及び復号が行われる。一方、アドレスバス上のアドレス情報は前回のアクセス動作期間中に既に更新されている暗号鍵を用いて暗号化及び復号が行われる。
本発明の更に別の具体的な形態として、前記第1の暗号鍵生成回路及び第2の暗号鍵生成回路は、初段への帰還経路に乱数発生器の出力と論理演算を行う論理ゲート(EOR1)を備えたリングカウンタ(LFSR)を有し、前記リングカウンタの計数値が暗号鍵とされる。前記リングカウンタは例えば前記内部バスを介して初期値がプリセット可能にされる。リセット信号により一定値に初期化される場合に比べて暗号鍵の機密性が増す。
〔2〕アドレス情報の暗号化に特化する観点では半導体集積回路は、複数のバススレーブ、内部バスを介して前記複数のバススレーブに接続され前記複数のバススレーブをアクセス可能なバスマスタ、及び前記バスマスタがアクセスしようとするバススレーブをアクセス対象として選択するバスコントローラを有する。前記夫々のバススレーブはその数よりも少ない数にグループ化された当該グループの暗号鍵を生成する第1の暗号鍵生成回路を有し、前記暗号鍵生成回路で生成された暗号鍵を用いて前記内部バスのアドレスバスからの入力情報の復号を行う。前記夫々のバスマスタは前記グループ毎の暗号鍵を生成する複数の第2の暗号鍵生成回路を有し、アクセス対象とするバススレーブに対応する第2の暗号鍵生成回路で生成される暗号鍵を用いて前記内部バスのアドレスバスへの出力情報の暗号化を行う。前記バスコントローラによりアクセス対象として選択されたバススレーブが属するグループ内の前記第1の暗号鍵生成回路と当該グループに対応する第2の暗号鍵生成回路とに対して暗号鍵の同期的更新を指示する暗号鍵制御回路を有する。
上記した手段同様に、バスアクセス動作において動作される暗号鍵生成回路はアクセス主体のバスマスタとアクセス対象とされるバススレーブを含むバススレーブグループとに限定されるから、暗号鍵の更新動作等に伴う消費電力を低減することが可能になる。更に、暗号鍵生成回路の数が多数に及ぶことによってチップ面積の増大が過大となることもない。
〔3〕本発明の別の観点では第1の暗号鍵生成回路をグループ単位で設ける。即ち、夫々のバススレーブはその数よりも少ない数にグループ化された当該グループの暗号鍵を生成する第1の暗号鍵生成回路で生成された暗号鍵を用いて前記内部バスへの出力情報の暗号化と前記内部バスからの入力情報の復号を行い、前記夫々のバスマスタは前記グループ毎の暗号鍵を生成する複数の第2の暗号鍵生成回路で生成される暗号鍵を用いて前記内部バスへの出力情報の暗号化と前記内部バスからの入力情報の復号を行ってもよい。要するに、第1の暗号鍵生成回路はそれぞれのバススレーブが保有しなくてもよい。グループ毎に保有してもよい。この場合も上記同様に、前記バスマスタ及びバススレーブは内部バスのデータバス上におけるデータ情報に対する暗号化及び復号を行う。また、前記バスマスタは内部バスのアドレスバスに出力するアドレス情報に対する暗号化を行い、前記バススレーブは内部バスのアドレスバスから入力するアドレス情報に対する復号を行う。
更に同様の観点より、夫々のバススレーブはその数よりも少ない数にグループ化された当該グループの暗号鍵を生成する第1の暗号鍵生成回路で生成された暗号鍵を用いて前記内部バスのアドレスバスからの入力情報の復号を行い、夫々のバスマスタは前記グループ毎の暗号鍵を生成する複数の第2の暗号鍵生成回路で生成される暗号鍵を用いて前記内部バスのアドレスバスへの出力情報の暗号化を行ってもよい。
暗号鍵生成回路をグループ単位で設けるという観点においては、チップ面積は低減するが暗号鍵を伝達する配線の引き回しが長くなり、暗号鍵それ自体に対する不正アクセスのアタックを受け易くなる点に注意が必要である。
〔4〕本発明の更に別の観点ではバススレーブの暗号化復号回路をグループ単位で設ける。即ち、前記夫々のバススレーブはその数よりも少ない数にグループ化され、グループ毎に当該グループの暗号鍵を生成する第1の暗号鍵生成回路で生成された暗号鍵を用いて前記内部バスへの出力情報の暗号化と前記内部バスからの入力情報の復号を行う第1の暗号化復号回路を有し、前記夫々のバスマスタは前記グループ毎の暗号鍵を生成する複数の第2の暗号鍵生成回路で生成される暗号鍵を用いて前記内部バスへの出力情報の暗号化と前記内部バスからの入力情報の復号を行う第2の暗号化復号回路を有する。この場合も上記同様に、前記バスマスタ及びバススレーブは内部バスのデータバス上におけるデータ情報に対する暗号化及び復号を行う。また、前記バスマスタは内部バスのアドレスバスに出力するアドレス情報に対する暗号化を行い、前記バススレーブは内部バスのアドレスバスから入力するアドレス情報に対する復号を行う。
更に同様の観点より、前記夫々のバススレーブはその数よりも少ない数にグループ化され、グループ毎に当該グループの暗号鍵を生成する第1の暗号鍵生成回路で生成された暗号鍵を用いて前記内部バスのアドレスバスからの入力情報の復号を行う第1の暗号化復号回路を有し、前記夫々のバスマスタは前記グループ毎の暗号鍵を生成する複数の第2の暗号鍵生成回路で生成される暗号鍵を用いて前記内部バスのアドレスバスへの出力情報の暗号化を行う第2の暗号化復号回路を有するようにしてもよい。
暗号化復号回路をグループ単位で設けると言う観点においては、チップ面積は低減するが、暗号化前及び復号後の情報伝達距離が長くなるので、不正アクセスのアタックを受け易くなる点に注意が必要である。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
すなわち、暗号鍵の更新動作等に伴う消費電力を低減することができる。このとき、暗号鍵生成回路の数が多数に及ぶことによってチップ面積の増大が過大になることはない。
《ICカードマイコン》
図1には本発明に係る半導体集積回路の一例としてICカードマイコンが例示される。同図に示されるICカードマイコン1は例えば単結晶シリコン等の半導体基板にCMOS集積回路製造技術によって形成される。CPU2はメインCPUであり、CPU11はメインCPU2からのコマンドに応答して演算処理を行なうサブCPUである。ともにアドレシング機能を備え、命令をフェッチし、フェッチした命令をデコードし、デコード結果に従ってデータロード、演算及び演算結果のストア等を行って、その命令を実行する。システムコントローラ(SYSC)3はシステムリセット及びパワーオンリセットに伴うハードウェア制御を行うと共に、ICカードマイコン1の動作モード等を制御する。内部バス10としてデータバス(DBUS)、アドレスバス(ABUS)、及びコントロールバス(CBUS)を有する。詳細は後述するが、データバス(DBUS)及びアドレスバス(ABUS)で転送されるデータ情報及びアドレス情報は暗号化された情報とされる。内部バス10にはバススレーブモジュールとしてエレクトリカリ・イレーザブル・アンド・プログラマブルROM(EEPROM)6A〜6B、ランダムアクセスメモリ(RAM)7A〜7D、及びマスクROM(MROM)8A〜8Cが接続される。内部バス10にはCPU2,11以外のバスマスタとしてダイレクトメモリアクセスコントローラ(DMAC)12が接続される。CPU2、11又はDMAC12はバスアクセスを行うとき、暗号化したアドレス情報をアドレスバスABUSに出力するが、これに並行して、暗号化前のアドレス情報を非暗号化アドレスバスNEABUSに出力する。バスコントローラ(BSC)4は、ICカードマイコン1のアドレス空間に対してバススレーブ等に対するエリア毎にアクセスサイクル数やデータ入出力ビット数等のバスアクセス制御情報が初期設定され、非暗号化アドレスNEABUS上のアドレス情報からアクセス対象のバススレーブを判定し、その動作を選択するための複数ビットのモジュール選択信号13等を出力する。暗号化されたアドレス情報に基づいて正しいモジュール選択を行うことはできないからである。尚、非暗号化アドレスNEABUSはCPU2やDMAC12等のロジック回路に接続されており、そのバス配線はメモリに接続するバス配線のように規則的にはならないから、当該非暗号化アドレスNEABUSの所在の特定は難しく、暗号化しなくても不正アクセスを受ける虞は極めて小さいと考えられる。
図1には本発明に係る半導体集積回路の一例としてICカードマイコンが例示される。同図に示されるICカードマイコン1は例えば単結晶シリコン等の半導体基板にCMOS集積回路製造技術によって形成される。CPU2はメインCPUであり、CPU11はメインCPU2からのコマンドに応答して演算処理を行なうサブCPUである。ともにアドレシング機能を備え、命令をフェッチし、フェッチした命令をデコードし、デコード結果に従ってデータロード、演算及び演算結果のストア等を行って、その命令を実行する。システムコントローラ(SYSC)3はシステムリセット及びパワーオンリセットに伴うハードウェア制御を行うと共に、ICカードマイコン1の動作モード等を制御する。内部バス10としてデータバス(DBUS)、アドレスバス(ABUS)、及びコントロールバス(CBUS)を有する。詳細は後述するが、データバス(DBUS)及びアドレスバス(ABUS)で転送されるデータ情報及びアドレス情報は暗号化された情報とされる。内部バス10にはバススレーブモジュールとしてエレクトリカリ・イレーザブル・アンド・プログラマブルROM(EEPROM)6A〜6B、ランダムアクセスメモリ(RAM)7A〜7D、及びマスクROM(MROM)8A〜8Cが接続される。内部バス10にはCPU2,11以外のバスマスタとしてダイレクトメモリアクセスコントローラ(DMAC)12が接続される。CPU2、11又はDMAC12はバスアクセスを行うとき、暗号化したアドレス情報をアドレスバスABUSに出力するが、これに並行して、暗号化前のアドレス情報を非暗号化アドレスバスNEABUSに出力する。バスコントローラ(BSC)4は、ICカードマイコン1のアドレス空間に対してバススレーブ等に対するエリア毎にアクセスサイクル数やデータ入出力ビット数等のバスアクセス制御情報が初期設定され、非暗号化アドレスNEABUS上のアドレス情報からアクセス対象のバススレーブを判定し、その動作を選択するための複数ビットのモジュール選択信号13等を出力する。暗号化されたアドレス情報に基づいて正しいモジュール選択を行うことはできないからである。尚、非暗号化アドレスNEABUSはCPU2やDMAC12等のロジック回路に接続されており、そのバス配線はメモリに接続するバス配線のように規則的にはならないから、当該非暗号化アドレスNEABUSの所在の特定は難しく、暗号化しなくても不正アクセスを受ける虞は極めて小さいと考えられる。
EEPROM6A〜6Bは電気的に書換え可能な不揮発性メモリである。RAM7A〜7Dは例えばスタティックRAMによって構成される。RAM7A〜7DはCPU1のワーク領域及びデータバッファ等に利用され、EEPROM6A〜6B及びMROM8A〜8Cはプログラム領域又はデータ領域として利用される。認証処理等に利用されるパスワードや個人情報等の機密情報はEEPROM6A〜6BやMROM8A〜8Cが保有し、CPU2,11はその機密情報を読み出し、RAM7A〜7Dを用いて認証処理等を行なう。内部バス10にはその他に外部入出力インタフェース回路(EXIO)9等が接続される。外部インタフェース回路9はホスト装置との間でコマンド入力及びデータ入出力等を行う。外部インタフェース回路9のインタフェース形態は外部端子を介する接触インタフェース或いはアンテナを介する非接触インタフェースの何れか一方又であっても、双方であってもよい。
ICカードマイコン1は機密保護の観点よりバスマスタによるバススレーブのアクセスに際して内部バス10上のデータ及びアドレスを暗号化するバス暗号化機能を備える。ここでは夫々バスマスタであるCPU2、11及びDMAC12は前記内部バス10への出力情報の暗号化と前記内部バス10からの入力情報の復号を行う暗号化復号回路(ECDC)21〜23を有する。それぞれのEEPROM6A〜6Bは前記内部バス10への出力情報の暗号化と前記内部バス10からの入力情報の復号を行う暗号化復号回路31を有する。同様に、それぞれのRAM7A〜7Dは暗号化復号回路32を有し、それぞれのMROM8A〜8Cは暗号化復号回路33を有する。
内部バス10上の情報に対する暗号化及び復号に用いる暗号鍵の割り当てに関し、EEPROM6A〜6BをEPROMグループ(GR1)6とし、RAM7A〜7DをRAMグループ(GR2)7とし、MROM8A〜8CをMROMグループ(GR3)8とし、バススレーブの数よりも少ない数のグループにグループ化される。グループ毎に暗号鍵を割り当て、例えば夫々のバススレーブの暗号化復号回路31〜33はそれに割り当てられたグループの暗号鍵を生成する暗号鍵生成回路(第1の暗号鍵生成回路)EK1_s〜EK3_sを有する。即ち、夫々のEEPROM6A〜6Bの暗号化復号回路31は、暗号鍵生成回路EK1_sを有し、前記暗号鍵生成回路EK1_sで生成された暗号鍵を用いて前記内部バス10への出力情報の暗号化と前記内部バス10からの入力情報の復号を行う。夫々のRAM7A〜7Dの暗号化復号回路32は、暗号鍵生成回路EK2_sを有し、前記暗号鍵生成回路EK2_sで生成された暗号鍵を用いて前記内部バス10への出力情報の暗号化と前記内部バス10からの入力情報の復号を行う。夫々のMROM8A〜8Cの暗号化復号回路33は、暗号鍵生成回路EK3_sを有し、前記暗号鍵生成回路EK3_sで生成された暗号鍵を用いて前記内部バス10への出力情報の暗号化と前記内部バス10からの入力情報の復号を行う。
CPU2、11とDMAC12の暗号化復号回路21〜23はアクセス可能な全てのバススレーブのグループに対応する暗号鍵を用いた暗号化及び復号機能を備える。即ち、暗号化復号回路21、23はそれぞれ暗号鍵生成回路(第2の暗号鍵生成回路)EK1_m〜EK3_mを備える。暗号化復号回路22は暗号鍵生成回路(第2の暗号鍵生成回路)EK2_mを備える。暗号鍵生成回路EK1_mはEEPROMグループ6の暗号鍵生成回路EK1_sと同じ回路構成を有し、暗号鍵生成回路EK2_mはRAMグループ7の暗号鍵生成回路EK2_sと同じ回路構成を有し、暗号鍵生成回路EK3_mはMROMグループ8の暗号鍵生成回路EK3_sと同じ回路構成を有する。暗号化復号回路21〜23は自らが属するバスマスタがアクセスするバススレーブのグループに対応する暗号鍵生成回路EK1_m〜EK3_mの何れかで生成される暗号鍵を用いて、前記内部バス10への出力情報の暗号化と前記内部バス10からの入力情報の復号を行う。
機密保護の実効性を上げるには暗号鍵の逐次更新が必要であるが、バスマスタとこれによってアクセスされるバススレーブの双方が用いる暗号鍵は相互に同じでなければならない。暗号鍵制御回路(ECRP)5は、BSC4によりアクセス対象として選択されたバススレーブが属する一つのグループ内の暗号鍵生成回路(EK1_s〜EK3_sの何れか)と当該グループに対応するバスマスタモジュール内の一つの暗号鍵生成回路(EK1_m〜EK3_mの何れか)とに対して暗号鍵の同期的更新を複数ビットの更新制御信号14によって指示する。ECRP5はモジュール選択信号13を参照してアクセス対象とされるバススレーブのグループを判別し、前記更新制御信号14により、判別したグループのバススレーブと、当該グループをアクセス可能なバスマスタとに対して、暗号鍵生成回路に暗号鍵を更新する動作を指示する。更新が指示された暗号鍵生成回路は、例えばバスアクセスサイクルを規定するクロック信号の所定変化に同期して暗号鍵を更新する。
《データバスの暗号化復号機能》
図2にはICカードマイコンにおけるデータバスの暗号化復号機能の詳細が例示される。図2においてそれぞれの暗号化復号回路21〜23、31〜33において暗号鍵を用いた暗号化及び復号にはデータの各ビットに排他的論理和ゲート(EOR)を用いる。例えば図3に例示されるように、バスマスタにおいてデータD0,D1(=1,0)と暗号化鍵Kec(=1)をEORに入力して暗号化し、暗号化されたデータ(=0,1)がデータバスを介してスレーブモジュールに入力される。入力された暗号化データ(=0,1)は暗号化時と同じ論理値の暗号化鍵Kec(=1)と一緒にEORに入力されることにより、元のデータD0,D1(=1,0)に復号される。特に図示はしないは、データバスDBUSに出力端子が結合されたEORはトライステート出力が可能にされ、出力動作が指示されていないときは高出力インピーダンス状態(HiZ)にされる。
図2にはICカードマイコンにおけるデータバスの暗号化復号機能の詳細が例示される。図2においてそれぞれの暗号化復号回路21〜23、31〜33において暗号鍵を用いた暗号化及び復号にはデータの各ビットに排他的論理和ゲート(EOR)を用いる。例えば図3に例示されるように、バスマスタにおいてデータD0,D1(=1,0)と暗号化鍵Kec(=1)をEORに入力して暗号化し、暗号化されたデータ(=0,1)がデータバスを介してスレーブモジュールに入力される。入力された暗号化データ(=0,1)は暗号化時と同じ論理値の暗号化鍵Kec(=1)と一緒にEORに入力されることにより、元のデータD0,D1(=1,0)に復号される。特に図示はしないは、データバスDBUSに出力端子が結合されたEORはトライステート出力が可能にされ、出力動作が指示されていないときは高出力インピーダンス状態(HiZ)にされる。
バスマスタ2,11において暗号鍵生成回路EK1_m〜EK3_mはセレクタSELで選択される。その選択はバスマスタが自らアクセスしようとするバススレーブのグループに応じて行われる。図2においてBSC4が出力するモジュール選択信号13は、EEPROMグループ6のバススレーブ6A〜6Bに対するモジュール選択信号13_1、RAMグループ7のバススレーブ7A〜7Dに対するモジュール選択信号13_2、MROMグループ8のバススレーブ8A〜8Cに対するモジュール選択信号13_3を含み、それらはECPR5に供給される。SYSC3はパワーオンリセット又はシステムリセットの後に暗号鍵の更新制御イネーブル信号UKDEをECRP5にアサートする。このアサート期間において、ECRP5はアクセスされるバススレーブのグループ内の暗号鍵と当該グループに対応するバスマスタ内の暗号鍵との同期的更新制御が可能にされる。ECRP5が出力する更新制御信号14は、EEPROMグループ6内の暗号鍵生成回路EK1_sと当該グループに対応するバスマスタ2,11内のそれぞれの暗号鍵生成回路EK1_mとに対する更新制御信号14_1、RAMグループ7内の暗号鍵生成回路EK2_sと当該グループに対応するバスマスタ2,11,12内のそれぞれの暗号鍵生成回路EK2_mとに対する更新制御信号14_2、MROMグループ8内の暗号鍵生成回路EK3_sと当該グループに対応するバスマスタ2,11内のそれぞれ暗号鍵生成回路EK3_mとに対する更新制御信号14_3を含む。図2においてそれぞれのバススレーブ及びバスマスタ内のITNLで示される回路ブロックは、便宜上各々のバススレーブ及びバスマスタにおいて暗号化復号回路以外の回路部分を意味するものである。
図4には図2の回路におけるデータの暗号化復号動作のタイミングチャートが例示される。バスコマンド(BCMD)はCPU2等のバスマスタがアドレス信号と一緒にコントロールバスCBUSに出力するリード・ライト等のアクセス制御形態を指示する制御情報である。CLKはICカードマイコンンにおけるバスアクセスサイクルを規定する内部クロック信号である。図4の例では、前記バスマスタは内部クロック信号CLKに同期して非暗号化アドレスバスNEABUSにアドレス信号を出力したとき次のクロックサイクルで、書込みデータをデータバスDBUSに出力し、又はデータバスDBUSから読出しデータを取り込む制御を行うようになっている。例えばCPU2が時刻t0にリードアクセスを指示し、時刻t1にライトアクセスを指示する。時刻t0から始まる1クロックサイクル(CYC1)で前記リードサイクルのアドレス(H‘000100=EEPROM6Aのアドレス)がアドレスバスNEABUSに出力され、時刻t1から始まる1クロックサイクル(CYC2)で前記ライトサイクルのアドレス(H‘FFFA10=RAM7Aのアドレス)がアドレスバスNEABUSに出力される。これと共に、暗号化されたアドレス情報がアドレスバスABUSに出力されるが、同図では便宜上、アドレス情報に対する暗号化及び復号については着目していない。
BSC4はリードサイクルのアドレス(H‘000100=EEPROM6Aのアドレス)に応答してモジュール選択信号13_1をローレベルにアサートし、これを受けてECRP5はEEPROMグループ6に対する暗号鍵更新制御信号14_1をハイレベルにアサートする。暗号鍵更新制御信号14_1によって更新が指示される暗号鍵生成回路EK1_s、EK1_mが生成する暗号鍵はH’55とされている。暗号鍵生成回路は前記データバスDBUS上におけるデータ出力又はデータバスからのデータ入力のクロックサイクルの開始タイミング(=アドレスバスに対するアドレス出力のクロックサイクルの終了タイミング)に同期して前記暗号鍵の同期的更新動作を行なうから、暗号鍵生成回路EK1_s、EK1_mの暗号鍵はクロックサイクルCYC2が始まる時刻t1にH’55からH‘AAに同期的に更新される。時刻t1から始まるクロックサイクルCYC2において、EEPROM6Aはメモリアレイから読み出した元データH’66を暗号鍵H’AAを用いてデータH‘CCに暗号化し、これをデータバスDBUSに出力し、一方、CPU2ははデータバスDBUSからH’CCの暗号化データを取り込み、これを暗号鍵H‘AAで復号して、元データH’66を再生して取り込む。この動作中、アクセス対象とされていないRAMグループ7の暗号鍵に関する暗号鍵生成回路EK2_s、EK2_mは暗号鍵の更新動作が抑止されている。図示はしないがMRONグループの暗号鍵に関する暗号鍵生成回路EK3_s、EK3_mも同様に更新動作が抑止されている。
時刻t1から始まるライトサイクルでは、BSC4は当該ライトサイクルのアドレス(H‘FFFA10=RAM7Aのアドレス)に応答してモジュール選択信号13_2をローレベルにアサートし、これを受けてECRP5はRAMグループ7に対する暗号鍵更新制御信号14_2をハイレベルにアサートする。暗号鍵更新制御信号14_2によって更新が指示される暗号鍵生成回路EK2_s、EK2_mが生成する暗号鍵はH’2Aとされている。暗号鍵生成回路EK2_s、EK2_mの暗号鍵はクロックサイクルCYC3が始まる時刻t2にH’2AからH‘B5に同期的に更新される。時刻t2から始まるクロックサイクルCYC3において、CPU2は書込みアクセスの元データH’88を暗号鍵H’B5を用いてデータH‘3Dに暗号化し、これをデータバスDBUSに出力し、一方、書込み動作されるRAM7AはデータバスDBUSからH’3Dの暗号化データを取り込み、これを暗号鍵H‘B5で復号して、元データH’88を再生してメモリアレイに書込む。この動作中、アクセス対象とされていないEEPROMグループ6の暗号鍵に関する暗号鍵生成回路EK1_s、EK1_mは暗号鍵の更新動作が抑止されている。図示はしないがMRONグループの暗号鍵に関する暗号鍵生成回路EK3_s、EK3_mも同様に更新動作が抑止されている。
《アドレスバスの暗号化復号機能》
図5にはICカードマイコンにおけるアドレスバスの暗号化復号機能の詳細が例示される。図5ではバスマスタとしてCPU2のみ代表的に示される。図5において暗号化復号回路21、31〜33において暗号鍵を用いた暗号化及び復号にはアドレスの各ビットに排他的論理和ゲート(EOR)を用いる。特に図示はしないは、アドレスバスABUSに出力端子が結合されたEORはトライステート出力が可能にされ、出力動作が指示されていないときは高出力インピーダンス状態(HiZ)にされる。アドレスの暗号化にもデータと同じ暗号鍵生成回路EK1_m〜EK3_mを用いる。したがって暗号鍵の更新制御はデータの場合と同じである。但し、暗号鍵の更新タイミングはデータサイクルの開始タイミング(アドレスサイクルの周力タイミング)であるから、アドレスを暗号化するときに用いる暗号鍵は更新前の暗号鍵とされる。
図5にはICカードマイコンにおけるアドレスバスの暗号化復号機能の詳細が例示される。図5ではバスマスタとしてCPU2のみ代表的に示される。図5において暗号化復号回路21、31〜33において暗号鍵を用いた暗号化及び復号にはアドレスの各ビットに排他的論理和ゲート(EOR)を用いる。特に図示はしないは、アドレスバスABUSに出力端子が結合されたEORはトライステート出力が可能にされ、出力動作が指示されていないときは高出力インピーダンス状態(HiZ)にされる。アドレスの暗号化にもデータと同じ暗号鍵生成回路EK1_m〜EK3_mを用いる。したがって暗号鍵の更新制御はデータの場合と同じである。但し、暗号鍵の更新タイミングはデータサイクルの開始タイミング(アドレスサイクルの周力タイミング)であるから、アドレスを暗号化するときに用いる暗号鍵は更新前の暗号鍵とされる。
図6には図5の回路におけるアドレスの暗号化復号動作のタイミングチャートが例示される。上記同様に図6の場合も、バスマスタは内部クロック信号CLKに同期してアドレスABUSにアドレス信号を出力したとき次のクロックサイクルで、書込みデータをデータバスDBUSに出力し、又はデータバスDBUSから読出しデータを取り込む制御を行うようになっている。例えばCPU2が時刻t0にリードアクセスを指示し、時刻t1にライトアクセスを指示し、時刻t2にリードアクセスを指示する。時刻t0から始まる1クロックサイクル(CYC1)で前記リードサイクルのアドレス情報ADRS(H’000100=EEPROM6Aのアドレス)が暗号化復号回路21とBSC4に出力され、時刻t1から始まる1クロックサイクル(CYC2)で次のライトサイクルのアドレス情報ADRS(H‘FFFA10=RAM7Aのアドレス)が暗号化復号回路21とBSC4に出力され、時刻t2から始まる1クロックサイクル(CYC3)で其の次のリードサイクルのアドレス情報ADRS(H‘000110=EEPROM6Aのアドレス)が暗号化復号回路21とBSC4に出力される。
BSC4は最初のリードサイクルのアドレス情報(H‘000100=EEPROM6Aのアドレス)に応答してモジュール選択信号13_1をローレベルにアサートし、これを受けてECRP5はEEPROMグループ6に対する暗号鍵更新制御信号14_1をハイレベルにアサートする。暗号鍵更新制御信号14_1によって更新が指示される暗号鍵生成回路EK1_s、EK1_mが生成する暗号鍵はH’55とされている。暗号鍵生成回路EK1_s、EK1_mは前記データバスDBUS上におけるデータ出力又はデータバスからのデータ入力のクロックサイクルの開始タイミング(=アドレスバスに対するアドレス出力のクロックサイクルの終了タイミング)に同期して前記暗号鍵の同期的更新動作を行なうから、暗号鍵生成回路EK1_s、EK1_mの暗号鍵はクロックサイクルCYC2が始まる時刻t1にH’55からH’AAに同期的に更新される。アドレスに対する暗号化はアドレス出力サイクルCYC1の最初に行われなければならないから、CPU2は時刻t0から始まるクロックサイクルCYC1において、アクセスアドレスの元アドレス情報H’000100を暗号鍵H’55を用いてアドレス情報H‘555455に暗号化し、これをアドレスバスABUSに出力し、一方、EEPROM6AはアドレスバスABUSから暗号化アドレス情報H’555455を取り込み、これを暗号鍵H‘55で復号して、元のアドレス情報H’000100を再生して取り込み、取り込んだアドレスに基づいてEEPROM6Aからデータを読み出し、読出されたデータはCPU2に取り込まれる。この動作中、アクセス対象とされていないRAMグループ7及びMROMグループ8の暗号鍵に関する暗号鍵生成回路EK2_s、EK2_m、EK3_s、EK3_mは暗号鍵の更新動作が抑止されている。
次のクロックサイクルCYC2では、アドレス情報(H‘FFFA10=RAM7Aのアドレス)に応答してモジュール選択信号13_2をローレベルにアサートし、これを受けてECRP5はRAMグループ7に対する暗号鍵更新制御信号14_2をハイレベルにアサートする。暗号鍵更新制御信号14_2によって更新が指示される暗号鍵生成回路EK2_s、EK2_mが生成する暗号鍵は時刻t1においてH’2Aとされている。暗号鍵生成回路EK2_s、EK2_mはクロックサイクルCYC3が始まる時刻t2にH’2AからH’B5に同期的に更新される。アドレスに対する暗号化はアドレス出力サイクルCYC2の最初に行われなければならないから、CPU2は時刻t1から始まるクロックサイクルCYC2において、アクセスアドレスの元アドレス情報H’FFFA10を暗号鍵H’2Aを用いてアドレス情報H‘D5D03Aに暗号化し、これをアドレスバスABUSに出力し、一方、RAM7AはアドレスバスABUSから暗号化アドレス情報H’D5D03Aを取り込み、これを暗号鍵H‘2Aで復号して、元のアドレス情報H’FFFA10を再生して取り込み、取り込んだアドレスに基づいてRAM7Aにデータが書込まれる。この動作中、アクセス対象とされていないEEPROMグループ6及びMROMグループ8の暗号鍵に関する暗号鍵生成回路EK1_s、EK1_m、EK3_s、EK3_mは暗号鍵の更新動作が抑止されている。
その次のクロックサイクルCYC3では、アドレス情報(H‘000110=EEPROM6Aのアドレス)に応答してモジュール選択信号13_1をローレベルにアサートし、これを受けてECRP5はEEPROMグループ6に対する暗号鍵更新制御信号14_1をハイレベルにアサートする。暗号鍵更新制御信号14_1によって更新が指示される暗号鍵生成回路EK1_s、EK1_mが生成する暗号鍵は時刻t2においてH’AAとされている。暗号鍵生成回路EK1_s、EK1_mはクロックサイクルCYC4が始まる時刻t3にH’AAからH’67に同期的に更新される。アドレスに対する暗号化はアドレス出力サイクルCYC3の最初に行われなければならないから、CPU2は時刻t2から始まるクロックサイクルCYC3において、アクセスアドレスの元アドレス情報H’000110を暗号鍵H’AAを用いてアドレス情報H‘B5B4A5に暗号化し、これをアドレスバスABUSに出力し、一方、EEPROM6AはアドレスバスABUSから暗号化アドレス情報H’B5B4A5を取り込み、これを暗号鍵H‘AAで復号して、元のアドレス情報H’000110を再生して取り込み、取り込んだアドレスに基づいてEEPROM6Aからデータを読み出し、読出されたデータはCPU2に取り込まれる。この動作中、アクセス対象とされていないRAMグループ7及びMROMグループ8の暗号鍵に関する暗号鍵生成回路EK2_s、EK2_m、EK3_s、EK3_mは暗号鍵の更新動作が抑止されている。尚、図6のアドレスの暗号化復号動作を行うとき図2におけるデータバスに対する暗号化復号機能を併用し、アドレスバスおよびデータバス双方に対して暗号化復号処理を行なってよいことは当然である。
上記ICカードマイコン1によれば以下の作用効果を得る。
(1)バススレーブのグループ(6,7,8)毎にバスマスタ及びバススレーブにおける暗号鍵の生成と更新をグループ化したから、バスアクセス動作において動作される暗号鍵生成回路はアクセス主体のバスマスタとアクセス対象とされるバススレーブを含むバススレーブのグループとに限定される。このように動作すべき暗号鍵生成回路を限定することにより、暗号鍵の更新動作等に伴う消費電力を低減することが可能になる。
(2)また、バススレーブはその数より少ない数にグループ化されグループ毎に暗号鍵を割り当て、全てのバススレーブ毎に個別の暗号鍵を割り当てるものではないから、一つのバスマスタが保有すべき第2の暗号鍵生成回路の数はバススレーブの数よりも少なくなり、チップ面積の増大が過大なることはない。低消費電力とチップ面積増大のトレードオフを考慮すると、グループ化は例えば10グループ以下にするのがよい。チップ面積はグループ化数に比例して増えるが、消費電力はグループ化数が10程度までは漸次減少するがそれ以上では電力消費の低減率が収束してしまうからである。グループ化数が10程度を超えると暗号鍵生成回路の数が増える分だけ逆にそれぞれの記憶段等で消費される電力の増大を無視できなくなるからである。
(3)図1の例では暗号化復号回路をバスマスタ及びバススレーブのそれぞれのモジュールに設けたが、グループ単位で設ける構成と比較すると、後者の方がチップ面積は低減するが、暗号化前及び復号後の情報伝達距離が長くなり、不正アクセスのアタックを受け易くなる。前者は内部バス上における機密保護を万全にするという観点において優れている。
(4)図1の例では暗号鍵生成回路をバスマスタ及びバススレーブのそれぞれのモジュールに設けたが、グループ単位で設ける構成と比較すると、後者の方がチップ面積は低減するが暗号鍵を伝達する配線の引き回しが長くなり、暗号鍵それ自体に対する不正アクセスのアタックを受け易くなる。前者は内部バス上における機密保護を万全にするという観点において優れている。
図7には暗号鍵生成回路の一例が示される。代表的に示された暗号鍵生成回路EK1_mは初段への帰還経路に乱数発生器(RNG)40の出力と論理演算を行う論理ゲートEOR1を備えたリニアフィードバックシフトレジスタ(LFSR)としてのリングカウンタ41を有し、前記リングカウンタ41の計数値が暗号鍵Kecとされる。論理ゲートEOR1として例えば排他的論理和回路を採用する。リングカウンタ41は例えば直列接続された4個のフリップフロップFFを備え、4個のフリップフロップFFからの並列出力が暗号鍵Kecとされる。例えばデータバスDBUSのビット数が32ビットであるとき、データビット4ビット毎に暗号鍵Kecを用いて暗号化及び復号を行えばよい。乱数発生器40は例えば真正乱数発生器とすればよい。リングカウンタ41のシフト動作はクロック信号CLKに同期される。リセット信号RSTがイネーブルにされることによって暗号鍵Kecが初期化される。更に高い乱数性が必要になる場合はLFSRの段数を増やせばよい。その他の暗号鍵生成回路も同様に構成してよい。
図8には暗号鍵生成回路の別の例が示される。同図に示される暗号鍵生成回路EK1_mは真正乱数発生器に代えて、セレクタSEL1と排他的論理がゲートEOR2を用いた擬似乱数発生を採用する。排他的論理和ゲートEOR2は例えばデータバスDBUSを入力する。セレクタSEL1は論理値1又排他的論理和ゲートEOR2の出力を選択信号Sseに従って選択する。選択信号Sseは例えばデータバスの適宜の1ビット等のような任意性のあるデータビットであればよい。その他の暗号鍵生成回路も同様に構成してよい。
図9には暗号鍵生成回路に対するリセット動作の同期制御形態が例示される。バスマスタとバススレーブ間において相互に同じ暗号鍵を同期的に生成すべき暗号鍵生成回路同士を同じリセット信号でリセットすればよい。図9に代表的に示された例では、EEPROMグループ6の暗号鍵生成回路EK1_sとEEPROMグループ6をアクセス可能なバスマスタ(CPU2)が備える暗号鍵生成回路EK1_mとを同じリセット信号RST1でリセット可能とし、また、RAMグループ7の暗号鍵生成回路EK2_sとRAMグループ7をアクセス可能なバスマスタ(CPU2,DMAC12)が備える暗号鍵生成回路EK2_mとを同じリセット信号RST2でリセット可能とする。この例では何れの暗号鍵生成回路も初期値は共通化される。
図10には暗号鍵生成回路に対するリセット動作の別の同期制御形態が例示される。バスマスタとバススレーブ間において相互に同じ暗号鍵を同期的に生成すべき暗号鍵生成回路同士を同じ書込み信号を用いて同じ値にプリセット可能とするものである。図10に代表的に示された例では、EEPROMグループ6の暗号鍵生成回路EK1_sのLFSRとEEPROMグループ6をアクセス可能なバスマスタ(CPU2)が備える暗号鍵生成回路EK1_mのLFSRとを同じ書込み信号WS1で初期化データをプリセット可能とし、また、RAMグループ7の暗号鍵生成回路EK2_sのLFSRとRAMグループ7をアクセス可能なバスマスタ(CPU2,DMAC12)が備える暗号鍵生成回路EK2_mのLFSRとに同じ書込み信号WS2で初期化データをプリセット可能とする。プリセットすべき初期化データ及び書込み信号は暗号鍵初期化回路(ITC)43が出力する。初期化データの転送路は例えば専用バス44で構成する。暗号鍵初期化回路43は例えばSYSC3が備え、パワーオンリセット若しくはシステムリセットに応答して初期化データのプリセット動作を制御する。図10の構成に適用する前記LFSRは図7及び図8のLFSR41に対して書込み信号がイネーブルにされたときフリップフロップFFのデータ入力端子にプリセットデータが並列に入力されるように構成される。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
例えば、上記説明では暗号化復号回路をバスマスタ及びバススレーブのそれぞれのモジュールに設けたが、グループ単位で設ける構成を採用することも可能である。また、暗号鍵生成回路についてもバスマスタ及びバススレーブのそれぞれのモジュールに設けたが、グループ単位で設ける構成を採用することも可能である。更に、バス暗号化はアドレスバスとデータバスの双方に対して行う場合に限定されず、何れか一方のバス情報に対してだけ暗号化を行うようにしてもよい。アドレス情報に対する暗号化を行わない場合には非暗号化アドレスバスは不要であり、バスコントローラはアドレスバスからアドレス信号を入力してモジュール選択信号を生成すればよい。データバス情報の暗号化復号に用いる暗号鍵とアドレスバス情報の暗号化復号に用いる暗号鍵とを別々にすることも可能である。バスマスタはCPUとDMACに限定されず、その他のアドレシング機能を有するコントローラであってもよい。バススレーブは揮発性メモリ及び不揮発性メモリに限定されず、入出力インタフェース回路等であってもよい。その他、暗号鍵の生成論理や、バス暗号化の論理ゲートは適宜変更可能である。
1 ICカードマイコン
2、11 CPU
3 システムコントローラ(SYSC)
DBUS データバス
ABUS アドレスバス
CBUS コントロールバス
NEABUS 非暗号化アドレス
5 暗号鍵制御回路(ECRP)
6A〜6B エレクトリカリ・イレーザブル・アンド・プログラマブルROM(EEPROM)
7A〜7D ランダムアクセスメモリ(RAM)
8A〜8C マスクROM(MROM)
6 EPROMグループ(GR1)
7 RAMグループ(GR2)
8 MROMグループ(GR3)
10 内部バス
12 ダイレクトメモリアクセスコントローラ(DMAC)
13 モジュール選択信号
14 暗号鍵更新制御信号
21〜23 バスマスタの暗号化復号回路(ECDC)
31〜33 バススレーブの暗号化復号回路
EK1_s〜EK3_s バススレーブの暗号鍵生成回路(第1の暗号鍵生成回路)
EK1_m〜EK3_m バスマスタの暗号鍵生成回路(第2の暗号鍵生成回路)
2、11 CPU
3 システムコントローラ(SYSC)
DBUS データバス
ABUS アドレスバス
CBUS コントロールバス
NEABUS 非暗号化アドレス
5 暗号鍵制御回路(ECRP)
6A〜6B エレクトリカリ・イレーザブル・アンド・プログラマブルROM(EEPROM)
7A〜7D ランダムアクセスメモリ(RAM)
8A〜8C マスクROM(MROM)
6 EPROMグループ(GR1)
7 RAMグループ(GR2)
8 MROMグループ(GR3)
10 内部バス
12 ダイレクトメモリアクセスコントローラ(DMAC)
13 モジュール選択信号
14 暗号鍵更新制御信号
21〜23 バスマスタの暗号化復号回路(ECDC)
31〜33 バススレーブの暗号化復号回路
EK1_s〜EK3_s バススレーブの暗号鍵生成回路(第1の暗号鍵生成回路)
EK1_m〜EK3_m バスマスタの暗号鍵生成回路(第2の暗号鍵生成回路)
Claims (19)
- 複数のバススレーブ、内部バスを介して前記複数のバススレーブに接続され前記複数のバススレーブをアクセス可能なバスマスタ、及び前記バスマスタがアクセスしようとするバススレーブをアクセス対象として選択するバスコントローラを有する半導体集積回路であって、
前記夫々のバススレーブはその数よりも少ない数にグループ化された当該グループの暗号鍵を生成する第1の暗号鍵生成回路を有し、前記暗号鍵生成回路で生成された暗号鍵を用いて前記内部バスへの出力情報の暗号化と前記内部バスからの入力情報の復号を行い、
前記夫々のバスマスタは前記グループ毎の暗号鍵を生成する複数の第2の暗号鍵生成回路を有し、アクセス対象とするバススレーブに対応する第2の暗号鍵生成回路で生成される暗号鍵を用いて前記内部バスへの出力情報の暗号化と前記内部バスからの入力情報の復号を行い、
前記バスコントローラによりアクセス対象として選択されたバススレーブが属するグループ内の前記第1の暗号鍵生成回路と当該グループに対応する第2の暗号鍵生成回路とに対して暗号鍵の同期的更新を指示する暗号鍵制御回路を有する半導体集積回路。 - 前記バスマスタ及びバススレーブは内部バスのデータバス上におけるデータ情報に対する暗号化及び復号を行う請求項1記載の半導体集積回路。
- 前記バスマスタは内部バスのアドレスバスに出力するアドレス情報に対する暗号化を行い、
前記バススレーブは内部バスのアドレスバスから入力するアドレス情報に対する復号を行い、
前記バスコントローラは前記バスマスタから暗号化前のアドレス情報を受け取って当該バスマスタがアクセスしようとするバススレーブをアクセス対象として選択する請求項2記載の半導体集積回路。 - 前記第1及び第2の暗号鍵生成回路が生成する暗号鍵はアドレス情報の暗号化復号とデータ情報の暗号化復号との双方に対して共通化される請求項3記載の半導体集積回路。
- 前記バスマスタを複数個有する請求1記載の半導体集積回路。
- 前記バススレーブのグループは、単数又は複数のRAMを含むRAMモジュール、単数又は複数のマスクROMを含むマスクROMモジュール、及び単数又は複数の電気的に書換え可能なプログラマブルROMモジュールである請求項5記載の半導体集積回路。
- 前記バスマスタは内部クロック信号に同期して内部バスにアドレス信号を出力したとき次のクロックサイクルで、書込みデータを内部バスのデータバスに出力し、又は内部バスのデータバスから読出しデータを取り込む制御を行う請求項1記載の半導体集積回路。
- 前記第1及び第2の暗号鍵生成回路は、前記データバスへのデータ出力又はデータバスからのデータ入力のクロックサイクルの開始タイミングに同期して前記暗号鍵の同期的更新動作を行なう請求項7記載の半導体集積回路。
- 前記第1の暗号鍵生成回路及び第2の暗号鍵生成回路は、初段への帰還経路に乱数発生器の出力と論理演算を行う論理ゲートを備えたリングカウンタを有し、前記リングカウンタの計数値が暗号鍵とされる請求項1記載の半導体集積回路。
- 前記リングカウンタは前記内部バスを介して初期値がプリセット可能にされた請求項9記載の半導体集積回路。
- 複数のバススレーブ、内部バスを介して前記複数のバススレーブに接続され前記複数のバススレーブをアクセス可能なバスマスタ、及び前記バスマスタがアクセスしようとするバススレーブをアクセス対象として選択するバスコントローラを有する半導体集積回路であって、
前記夫々のバススレーブはその数よりも少ない数にグループ化された当該グループの暗号鍵を生成する第1の暗号鍵生成回路を有し、前記暗号鍵生成回路で生成された暗号鍵を用いて前記内部バスのアドレスバスからの入力情報の復号を行い、
前記夫々のバスマスタは前記グループ毎の暗号鍵を生成する複数の第2の暗号鍵生成回路を有し、アクセス対象とするバススレーブに対応する第2の暗号鍵生成回路で生成される暗号鍵を用いて前記内部バスのアドレスバスへの出力情報の暗号化を行い、
前記バスコントローラによりアクセス対象として選択されたバススレーブが属するグループ内の前記第1の暗号鍵生成回路と当該グループに対応する第2の暗号鍵生成回路とに対して暗号鍵の同期的更新を指示する暗号鍵制御回路を有する半導体集積回路。 - 複数のバススレーブ、内部バスを介して前記複数のバススレーブに接続され前記複数のバススレーブをアクセス可能なバスマスタ、及び前記バスマスタがアクセスしようとするバススレーブをアクセス対象として選択するバスコントローラを有する半導体集積回路であって、
前記夫々のバススレーブはその数よりも少ない数にグループ化された当該グループの暗号鍵を生成する第1の暗号鍵生成回路で生成された暗号鍵を用いて前記内部バスへの出力情報の暗号化と前記内部バスからの入力情報の復号を行い、
前記夫々のバスマスタは前記グループ毎の暗号鍵を生成する複数の第2の暗号鍵生成回路で生成される暗号鍵を用いて前記内部バスへの出力情報の暗号化と前記内部バスからの入力情報の復号を行い、
前記バスコントローラによりアクセス対象として選択されたバススレーブが属するグループ内の前記第1の暗号鍵生成回路と当該グループに対応する第2の暗号鍵生成回路とに対して暗号鍵の同期的更新を指示する暗号鍵制御回路を有する半導体集積回路。 - 前記バスマスタ及びバススレーブは内部バスのデータバス上におけるデータ情報に対する暗号化及び復号を行う請求項12記載の半導体集積回路。
- 前記バスマスタは内部バスのアドレスバスに出力するアドレス情報に対する暗号化を行い、
前記バススレーブは内部バスのアドレスバスから入力するアドレス情報に対する復号を行い、
前記バスコントローラは前記バスマスタから暗号化前のアドレス情報を受け取って当該バスマスタがアクセスしようとするバススレーブをアクセス対象として選択する請求項13記載の半導体集積回路。 - 複数のバススレーブ、内部バスを介して前記複数のバススレーブに接続され前記複数のバススレーブをアクセス可能なバスマスタ、及び前記バスマスタがアクセスしようとするバススレーブをアクセス対象として選択するバスコントローラを有する半導体集積回路であって、
前記夫々のバススレーブはその数よりも少ない数にグループ化された当該グループの暗号鍵を生成する第1の暗号鍵生成回路で生成された暗号鍵を用いて前記内部バスのアドレスバスからの入力情報の復号を行い、
前記夫々のバスマスタは前記グループ毎の暗号鍵を生成する複数の第2の暗号鍵生成回路で生成される暗号鍵を用いて前記内部バスのアドレスバスへの出力情報の暗号化を行い、
前記バスコントローラによりアクセス対象として選択されたバススレーブが属するグループ内の前記第1の暗号鍵生成回路と当該グループに対応する第2の暗号鍵生成回路とに対して暗号鍵の同期的更新を指示する暗号鍵制御回路を有する半導体集積回路。 - 複数のバススレーブ、内部バスを介して前記複数のバススレーブに接続され前記複数のバススレーブをアクセス可能なバスマスタ、及び前記バスマスタがアクセスしようとするバススレーブをアクセス対象として選択するバスコントローラを有する半導体集積回路であって、
前記夫々のバススレーブはその数よりも少ない数にグループ化され、グループ毎に当該グループの暗号鍵を生成する第1の暗号鍵生成回路で生成された暗号鍵を用いて前記内部バスへの出力情報の暗号化と前記内部バスからの入力情報の復号を行う第1の暗号化復号回路を有し、
前記夫々のバスマスタは前記グループ毎の暗号鍵を生成する複数の第2の暗号鍵生成回路で生成される暗号鍵を用いて前記内部バスへの出力情報の暗号化と前記内部バスからの入力情報の復号を行う第2の暗号化復号回路有し、
前記バスコントローラによりアクセス対象として選択されたバススレーブが属するグループ内の前記第1の暗号鍵生成回路と当該グループに対応する第2の暗号鍵生成回路とに対して暗号鍵の同期的更新を指示する暗号鍵制御回路を有する半導体集積回路。 - 前記バスマスタ及びバススレーブは内部バスのデータバス上におけるデータ情報に対する暗号化及び復号を行う請求項16記載の半導体集積回路。
- 前記バスマスタは内部バスのアドレスバスに出力するアドレス情報に対する暗号化を行い、
前記バススレーブは内部バスのアドレスバスから入力するアドレス情報に対する復号を行い、
前記バスコントローラは前記バスマスタから暗号化前のアドレス情報を受け取って当該バスマスタがアクセスしようとするバススレーブをアクセス対象として選択する請求項17記載の半導体集積回路。 - 複数のバススレーブ、内部バスを介して前記複数のバススレーブに接続され前記複数のバススレーブをアクセス可能なバスマスタ、及び前記バスマスタがアクセスしようとするバススレーブをアクセス対象として選択するバスコントローラを有する半導体集積回路であって、
前記夫々のバススレーブはその数よりも少ない数にグループ化され、グループ毎に当該グループの暗号鍵を生成する第1の暗号鍵生成回路で生成された暗号鍵を用いて前記内部バスのアドレスバスからの入力情報の復号を行う第1の暗号化復号回路を有し、
前記夫々のバスマスタは前記グループ毎の暗号鍵を生成する複数の第2の暗号鍵生成回路で生成される暗号鍵を用いて前記内部バスのアドレスバスへの出力情報の暗号化を行う第2の暗号化復号回路有し、
前記バスコントローラによりアクセス対象として選択されたバススレーブが属するグループ内の前記第1の暗号鍵生成回路と当該グループに対応する第2の暗号鍵生成回路とに対して暗号鍵の同期的更新を指示する暗号鍵制御回路を有する半導体集積回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006107220A JP2007281994A (ja) | 2006-04-10 | 2006-04-10 | 半導体集積回路 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006107220A JP2007281994A (ja) | 2006-04-10 | 2006-04-10 | 半導体集積回路 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007281994A true JP2007281994A (ja) | 2007-10-25 |
Family
ID=38682978
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006107220A Withdrawn JP2007281994A (ja) | 2006-04-10 | 2006-04-10 | 半導体集積回路 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007281994A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10177913B2 (en) | 2014-06-19 | 2019-01-08 | Samsung Electronics Co., Ltd. | Semiconductor devices and methods of protecting data of channels in the same |
JP2019118064A (ja) * | 2017-12-27 | 2019-07-18 | ラピスセミコンダクタ株式会社 | 半導体装置及び暗号鍵の制御方法 |
-
2006
- 2006-04-10 JP JP2006107220A patent/JP2007281994A/ja not_active Withdrawn
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10177913B2 (en) | 2014-06-19 | 2019-01-08 | Samsung Electronics Co., Ltd. | Semiconductor devices and methods of protecting data of channels in the same |
JP2019118064A (ja) * | 2017-12-27 | 2019-07-18 | ラピスセミコンダクタ株式会社 | 半導体装置及び暗号鍵の制御方法 |
JP7032926B2 (ja) | 2017-12-27 | 2022-03-09 | ラピスセミコンダクタ株式会社 | 半導体装置及び暗号鍵の制御方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11347898B2 (en) | Data protection device and method and storage controller | |
US8543838B1 (en) | Cryptographic module with secure processor | |
JP3848573B2 (ja) | マイクロプロセッサシステム | |
US9094190B2 (en) | Method of managing key for secure storage of data and apparatus therefor | |
CN104252881B (zh) | 半导体集成电路及系统 | |
TWI493951B (zh) | 保護對稱加密鑰的系統及方法 | |
US9100187B2 (en) | Authenticator | |
US8990571B2 (en) | Host device, semiconductor memory device, and authentication method | |
US9904804B2 (en) | Layout-optimized random mask distribution system and method | |
JP2003198534A (ja) | データ暗号化装置及びその方法 | |
JP2008530663A (ja) | マイクロプロセッサのデータセキュリティの方法およびシステム | |
JP6513463B2 (ja) | 半導体集積回路 | |
TW201918923A (zh) | 安全邏輯系統及操作安全邏輯系統的方法 | |
CN112887077A (zh) | 一种ssd主控芯片随机缓存保密方法和电路 | |
Uddin et al. | Memristor crossbar PUF based lightweight hardware security for IoT | |
CN111814212A (zh) | 总线数据的保护方法、装置、存储介质及芯片 | |
JP2007251783A (ja) | 半導体装置の被処理データのスクランブル/デスクランブル方法、そのプログラム、スクランブル/デスクランブル回路、及びそれらを備える半導体装置 | |
JP2001237825A (ja) | 電子的安全部品 | |
CN114764512A (zh) | 加密密钥管理 | |
JP2007281994A (ja) | 半導体集積回路 | |
JP2000242470A (ja) | 乱数生成装置および方法および記録媒体 | |
JP2008140104A (ja) | メモリシステム及びメモリアクセス方法 | |
CN115718717A (zh) | 总线系统 | |
US9014370B2 (en) | High performance hardware-based execution unit for performing C2 block cipher encryption/decryption | |
JP2008181375A (ja) | 半導体記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20090707 |