(57)【要約】【課題】内部バス上における転送情報の暗号化及び復号に用いる暗号鍵の更新動作に要する電力消費を低減する。【解決手段】夫々のバススレーブ（６，７，８）はその数よりも少ない数にグループ化された当該グループの暗号鍵を生成する第１の暗号鍵生成回路（ＥＫ１＿ｓ、ＥＫ２＿ｓ、ＥＫ３＿ｓ）を有し、その暗号鍵を用いて内部バス（１０）への出力情報の暗号化と入力情報の復号を行う。夫々のバスマスタ（２，１２）は前記グループ毎の暗号鍵を生成する複数の第２の暗号鍵生成回路（ＥＫ１＿ｍ、ＥＫ２＿ｍ、ＥＫ３＿ｍ）を有し、その暗号鍵を用いて内部バスへの出力情報の暗号化と入力情報の復号を行う。暗号鍵制御回路（５）バスコントローラ（４）によりアクセス対象として選択されたバススレーブが属するグループ内の前記第１の暗号鍵生成回路と当該グループに対応する第２の暗号鍵生成回路とに対して暗号鍵の同期的更新を指示する。【選択図】図１
2007281994.tif 000002
【特許請求の範囲】
【請求項１】
複数のバススレーブ、内部バスを介して前記複数のバススレーブに接続され前記複数のバススレーブをアクセス可能なバスマスタ、及び前記バスマスタがアクセスしようとするバススレーブをアクセス対象として選択するバスコントローラを有する半導体集積回路であって、
前記夫々のバススレーブはその数よりも少ない数にグループ化された当該グループの暗号鍵を生成する第１の暗号鍵生成回路を有し、前記暗号鍵生成回路で生成された暗号鍵を用いて前記内部バスへの出力情報の暗号化と前記内部バスからの入力情報の復号を行い、
前記夫々のバスマスタは前記グループ毎の暗号鍵を生成する複数の第２の暗号鍵生成回路を有し、アクセス対象とするバススレーブに対応する第２の暗号鍵生成回路で生成される暗号鍵を用いて前記内部バスへの出力情報の暗号化と前記内部バスからの入力情報の復号を行い、
前記バスコントローラによりアクセス対象として選択されたバススレーブが属するグループ内の前記第１の暗号鍵生成回路と当該グループに対応する第２の暗号鍵生成回路とに対して暗号鍵の同期的更新を指示する暗号鍵制御回路を有する半導体集積回路。
【請求項２】
前記バスマスタ及びバススレーブは内部バスのデータバス上におけるデータ情報に対する暗号化及び復号を行う請求項１記載の半導体集積回路。
【請求項３】
前記バスマスタは内部バスのアドレスバスに出力するアドレス情報に対する暗号化を行い、
前記バススレーブは内部バスのアドレスバスから入力するアドレス情報に対する復号を行い、
前記バスコントローラは前記バスマスタから暗号化前のアドレス情報を受け取って当該バスマスタがアクセスしようとするバススレーブをアクセス対象として選択する請求項２記載の半導体集積回路。
【請求項４】
前記第１及び第２の暗号鍵生成回路が生成する暗号鍵はアドレス情報の暗号化復号とデータ情報の暗号化復号との双方に対して共通化される請求項３記載の半導体集積回路。
【請求項５】
前記バスマスタを複数個有する請求１記載の半導体集積回路。
【請求項６】
前記バススレーブのグループは、単数又は複数のＲＡＭを含むＲＡＭモジュール、単数又は複数のマスクＲＯＭを含むマスクＲＯＭモジュール、及び単数又は複数の電気的に書換え可能なプログラマブルＲＯＭモジュールである請求項５記載の半導体集積回路。
【請求項７】
前記バスマスタは内部クロック信号に同期して内部バスにアドレス信号を出力したとき次のクロックサイクルで、書込みデータを内部バスのデータバスに出力し、又は内部バスのデータバスから読出しデータを取り込む制御を行う請求項１記載の半導体集積回路。
【請求項８】
前記第１及び第２の暗号鍵生成回路は、前記データバスへのデータ出力又はデータバスからのデータ入力のクロックサイクルの開始タイミングに同期して前記暗号鍵の同期的更新動作を行なう請求項７記載の半導体集積回路。
【請求項９】
前記第１の暗号鍵生成回路及び第２の暗号鍵生成回路は、初段への帰還経路に乱数発生器の出力と論理演算を行う論理ゲートを備えたリングカウンタを有し、前記リングカウンタの計数値が暗号鍵とされる請求項１記載の半導体集積回路。
【請求項１０】
前記リングカウンタは前記内部バスを介して初期値がプリセット可能にされた請求項９記載の半導体集積回路。
【請求項１１】
複数のバススレーブ、内部バスを介して前記複数のバススレーブに接続され前記複数のバススレーブをアクセス可能なバスマスタ、及び前記バスマスタがアクセスしようとするバススレーブをアクセス対象として選択するバスコントローラを有する半導体集積回路であって、
前記夫々のバススレーブはその数よりも少ない数にグループ化された当該グループの暗号鍵を生成する第１の暗号鍵生成回路を有し、前記暗号鍵生成回路で生成された暗号鍵を用いて前記内部バスのアドレスバスからの入力情報の復号を行い、
前記夫々のバスマスタは前記グループ毎の暗号鍵を生成する複数の第２の暗号鍵生成回路を有し、アクセス対象とするバススレーブに対応する第２の暗号鍵生成回路で生成される暗号鍵を用いて前記内部バスのアドレスバスへの出力情報の暗号化を行い、
前記バスコントローラによりアクセス対象として選択されたバススレーブが属するグループ内の前記第１の暗号鍵生成回路と当該グループに対応する第２の暗号鍵生成回路とに対して暗号鍵の同期的更新を指示する暗号鍵制御回路を有する半導体集積回路。
【請求項１２】
複数のバススレーブ、内部バスを介して前記複数のバススレーブに接続され前記複数のバススレーブをアクセス可能なバスマスタ、及び前記バスマスタがアクセスしようとするバススレーブをアクセス対象として選択するバスコントローラを有する半導体集積回路であって、
前記夫々のバススレーブはその数よりも少ない数にグループ化された当該グループの暗号鍵を生成する第１の暗号鍵生成回路で生成された暗号鍵を用いて前記内部バスへの出力情報の暗号化と前記内部バスからの入力情報の復号を行い、
前記夫々のバスマスタは前記グループ毎の暗号鍵を生成する複数の第２の暗号鍵生成回路で生成される暗号鍵を用いて前記内部バスへの出力情報の暗号化と前記内部バスからの入力情報の復号を行い、
前記バスコントローラによりアクセス対象として選択されたバススレーブが属するグループ内の前記第１の暗号鍵生成回路と当該グループに対応する第２の暗号鍵生成回路とに対して暗号鍵の同期的更新を指示する暗号鍵制御回路を有する半導体集積回路。
【請求項１３】
前記バスマスタ及びバススレーブは内部バスのデータバス上におけるデータ情報に対する暗号化及び復号を行う請求項１２記載の半導体集積回路。
【請求項１４】
前記バスマスタは内部バスのアドレスバスに出力するアドレス情報に対する暗号化を行い、
前記バススレーブは内部バスのアドレスバスから入力するアドレス情報に対する復号を行い、
前記バスコントローラは前記バスマスタから暗号化前のアドレス情報を受け取って当該バスマスタがアクセスしようとするバススレーブをアクセス対象として選択する請求項１３記載の半導体集積回路。
【請求項１５】
複数のバススレーブ、内部バスを介して前記複数のバススレーブに接続され前記複数のバススレーブをアクセス可能なバスマスタ、及び前記バスマスタがアクセスしようとするバススレーブをアクセス対象として選択するバスコントローラを有する半導体集積回路であって、
前記夫々のバススレーブはその数よりも少ない数にグループ化された当該グループの暗号鍵を生成する第１の暗号鍵生成回路で生成された暗号鍵を用いて前記内部バスのアドレスバスからの入力情報の復号を行い、
前記夫々のバスマスタは前記グループ毎の暗号鍵を生成する複数の第２の暗号鍵生成回路で生成される暗号鍵を用いて前記内部バスのアドレスバスへの出力情報の暗号化を行い、
前記バスコントローラによりアクセス対象として選択されたバススレーブが属するグループ内の前記第１の暗号鍵生成回路と当該グループに対応する第２の暗号鍵生成回路とに対して暗号鍵の同期的更新を指示する暗号鍵制御回路を有する半導体集積回路。
【請求項１６】
複数のバススレーブ、内部バスを介して前記複数のバススレーブに接続され前記複数のバススレーブをアクセス可能なバスマスタ、及び前記バスマスタがアクセスしようとするバススレーブをアクセス対象として選択するバスコントローラを有する半導体集積回路であって、
前記夫々のバススレーブはその数よりも少ない数にグループ化され、グループ毎に当該グループの暗号鍵を生成する第１の暗号鍵生成回路で生成された暗号鍵を用いて前記内部バスへの出力情報の暗号化と前記内部バスからの入力情報の復号を行う第１の暗号化復号回路を有し、
前記夫々のバスマスタは前記グループ毎の暗号鍵を生成する複数の第２の暗号鍵生成回路で生成される暗号鍵を用いて前記内部バスへの出力情報の暗号化と前記内部バスからの入力情報の復号を行う第２の暗号化復号回路有し、
前記バスコントローラによりアクセス対象として選択されたバススレーブが属するグループ内の前記第１の暗号鍵生成回路と当該グループに対応する第２の暗号鍵生成回路とに対して暗号鍵の同期的更新を指示する暗号鍵制御回路を有する半導体集積回路。
【請求項１７】
前記バスマスタ及びバススレーブは内部バスのデータバス上におけるデータ情報に対する暗号化及び復号を行う請求項１６記載の半導体集積回路。
【請求項１８】
前記バスマスタは内部バスのアドレスバスに出力するアドレス情報に対する暗号化を行い、
前記バススレーブは内部バスのアドレスバスから入力するアドレス情報に対する復号を行い、
前記バスコントローラは前記バスマスタから暗号化前のアドレス情報を受け取って当該バスマスタがアクセスしようとするバススレーブをアクセス対象として選択する請求項１７記載の半導体集積回路。
【請求項１９】
複数のバススレーブ、内部バスを介して前記複数のバススレーブに接続され前記複数のバススレーブをアクセス可能なバスマスタ、及び前記バスマスタがアクセスしようとするバススレーブをアクセス対象として選択するバスコントローラを有する半導体集積回路であって、
前記夫々のバススレーブはその数よりも少ない数にグループ化され、グループ毎に当該グループの暗号鍵を生成する第１の暗号鍵生成回路で生成された暗号鍵を用いて前記内部バスのアドレスバスからの入力情報の復号を行う第１の暗号化復号回路を有し、
前記夫々のバスマスタは前記グループ毎の暗号鍵を生成する複数の第２の暗号鍵生成回路で生成される暗号鍵を用いて前記内部バスのアドレスバスへの出力情報の暗号化を行う第２の暗号化復号回路有し、
前記バスコントローラによりアクセス対象として選択されたバススレーブが属するグループ内の前記第１の暗号鍵生成回路と当該グループに対応する第２の暗号鍵生成回路とに対して暗号鍵の同期的更新を指示する暗号鍵制御回路を有する半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バスマスタとバススレーブ間の内部バス上に転送される情報を暗号化した半導体集積回路に関し、例えばＩＣカード用マイクロコンピュータ（ＩＣカードマイコンとも記す）に適用して有効な技術に関する。
【背景技術】
【０００２】
機密保護データを扱うＩＣカードマイコンのような半導体集積回路（ＬＳＩ）に対する不正アクセスの手段には電源系ノイズを観測してデータを不正に解析したりする手法がある。これに対してプロセッサとメモリ間のバス上において転送データを暗号化する技術が特許文献１に記載がある。特に特許文献１ではデータの暗号化復号に用いる鍵をテーブルに保持し、プロセッサは暗号化に際してテーブルのインデックスを生成し、メモリはそのインデックスをメモリに蓄え、プロセッサは暗号化データをインデックスと共にメモリに転送し、メモリはインデックスを用いて検索した鍵を暗号化データの復号に用いるものである。これによって暗号化復号動作に伴う電力消費を低減しようとするものである。
【０００３】
【特許文献１】特開２００３−１９８５３４
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明者はＩＣカードマイコンにオンチップされたバスマスタと複数のバススレーブを接続する内部バス上における転送情報の暗号化について検討した。例えばバスマスタから出力されたデータは暗号鍵を用いて暗号化されてバスに供給され、これを受けるバススレーブ側は当該暗号鍵を用いてバス上のデータを復号する。暗号化及び復号にはビット毎に２入力排他的論理和ゲート等を用いればよい。暗号化と復号に利用する暗号鍵は逐次変更されることが望ましいため、バススレーブとバスマスタは夫々同期して暗号鍵を更新する暗号鍵生成回路を持つことが必要である。例えばバスマスタによるバスアクセス毎に暗号鍵を更新するように制御すればよい。あるバスマスタによってアクセス可能な複数のバススレーブがオンチップされているとき、バスマスタが一つのバススレーブをアクセスするときであっても残りのバススレーブに対しても暗号鍵生成回路による暗号鍵の更新を制御しなければ、バスマスタとバススレーブとの間の暗号鍵の整合を維持することができなくなる。しかしながら、オンチップされるバスマスタ及びバススレーブの数や種類が多くなったとき、アクセス対象とされない全てのバスマスタ及びバススレーブに係る暗号鍵生成回路についてもバスアクセスサイクルの度に暗号鍵の更新動作を行わなければならないとなると、電力消費が著しく増大してしまうことが本発明者によって明らかにされた。特許文献１ではそのような意味での低消費電力化について考慮されていない。
【０００５】
本発明の目的は、バスマスタ及びバススレーブの数や種類が増えてもそれらが接続される内部バス上における転送情報の暗号化及び復号に用いる暗号鍵の更新動作に要する電力消費を低減できる半導体集積回路を提供することにある。
【０００６】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００７】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【０００８】
〔１〕本発明に係る半導体集積回路（１）は、複数のバススレーブ（６Ａ〜６Ｂ、７Ａ〜７Ｄ，８Ａ〜８Ｃ）、内部バス（１０）を介して前記複数のバススレーブに接続され前記複数のバススレーブをアクセス可能なバスマスタ（２，１１，１２）及び前記バスマスタがアクセスしよとするバススレーブをアクセス対象として選択するバスコントローラ（４）を有する。前記夫々のバススレーブはその数よりも少ない数にグループ化された当該グループの暗号鍵を生成する第１の暗号鍵生成回路（ＥＫ１＿ｓ、ＥＫ２＿ｓ、ＥＫ３＿ｓ）を有し、前記暗号鍵生成回路で生成された暗号鍵を用いて前記内部バスへの出力情報の暗号化と前記内部バスからの入力情報の復号を行う。前記夫々のバスマスタは前記グループ（６，７，８）毎の暗号鍵を生成する複数の第２の暗号鍵生成回路（ＥＫ１＿ｍ、ＥＫ２＿ｍ、ＥＫ３＿ｍ）を有し、アクセス対象とするバススレーブに対応する第２の暗号鍵生成回路で生成される暗号鍵を用いて前記内部バスへの出力情報の暗号化と前記内部バスからの入力情報の復号を行う。前記バスコントローラによりアクセス対象として選択されたバススレーブが属するグループ内の前記第１の暗号鍵生成回路と当該グループに対応する第２の暗号鍵生成回路とに対して暗号鍵の同期的更新を指示する暗号鍵制御回路（５）を有する。
【０００９】
上記した手段によれば、バススレーブのグループ毎にバスマスタ及びバススレーブにおける暗号鍵の生成と更新をグループ化したから、バスアクセス動作において動作される暗号鍵生成回路はアクセス主体のバスマスタとアクセス対象とされるバススレーブを含むバススレーブのグループとに限定される。このように動作すべき暗号鍵生成回路を限定することにより、暗号鍵の更新動作等に伴う消費電力を低減することが可能になる。また、バススレーブはその数より少ない数にグループ化されグループ毎に暗号鍵を割り当て、全てのバススレーブ毎に個別の暗号鍵を割り当てるものではないから、一つのバスマスタが保有すべき第２の暗号鍵生成回路の数はバススレーブの数よりも少なくなり、チップ面積の増大が過大なることはない。低消費電力とチップ面積増大のトレードオフを考慮すると、グループ化は例えば１０グループ以下にするのがよい。チップ面積はグループ化数に比例して増えるが、消費電力はグループ化数が１０程度までは漸次減少するがそれ以上では電力消費の低減率が収束してしまうからである。グループ化数が１０程度を超えると暗号鍵生成回路の数が増える分だけ逆にそれぞれの記憶段等で消費される電力の増大を無視できなくなるからである。
【００１０】
本発明の一つの具体的な形態として、前記バスマスタ及びバススレーブは内部バスのデータバス上におけるデータ情報に対する暗号化及び復号を行うものである。内部バスのデータバス上におけるデータの暗号化が行われる。また、前記バスマスタは内部バスのアドレスバスに出力するアドレス情報に対する暗号化を行い、前記バススレーブは内部バスのアドレスバスから入力するアドレス情報に対する復号を行ってもよい。これにより、内部バス上のアドレスバス上におけるアドレス情報に対する暗号化も行われる。ただし、前記バスコントローラは前記バスマスタから暗号化前のアドレス情報を受け取って当該バスマスタがアクセスしようとするバススレーブをアクセス対象として選択することが必要である。このとき、前記第１及び第２の暗号鍵生成回路が生成する暗号鍵はアドレス情報の暗号化復号とデータ情報の暗号化復号との双方に対して共通化されてもよい。前記バスマスタは複数個であってもよい。また、前記バススレーブグループは、例えば単数又は複数のＲＡＭを含むＲＡＭモジュール、単数又は複数のマスクＲＯＭを含むマスクＲＯＭモジュール、及び単数又は複数の電気的に書換え可能なプログラマブルＲＯＭモジュールである。
【００１１】
本発明の別の具体的な形態として、前記バスマスタは内部クロック信号に同期して内部バスにアドレス信号を出力したとき次のクロックサイクルで、書込みデータを内部バスのデータバスに出力し、又は内部バスのデータバスから読出しデータを取り込む制御を行う。このとき、前記第１及び第２の暗号鍵生成回路は前記データバスへのデータ出力又はデータバスからのデータ入力のクロックサイクルの開始タイミングに同期して前記暗号鍵の同期的更新動作を行なう。したがって、データバス上のデータ情報は今回のアクセス動作期間中に更新された暗号鍵を用いて暗号化及び復号が行われる。一方、アドレスバス上のアドレス情報は前回のアクセス動作期間中に既に更新されている暗号鍵を用いて暗号化及び復号が行われる。
【００１２】
本発明の更に別の具体的な形態として、前記第１の暗号鍵生成回路及び第２の暗号鍵生成回路は、初段への帰還経路に乱数発生器の出力と論理演算を行う論理ゲート（ＥＯＲ１）を備えたリングカウンタ（ＬＦＳＲ）を有し、前記リングカウンタの計数値が暗号鍵とされる。前記リングカウンタは例えば前記内部バスを介して初期値がプリセット可能にされる。リセット信号により一定値に初期化される場合に比べて暗号鍵の機密性が増す。
【００１３】
〔２〕アドレス情報の暗号化に特化する観点では半導体集積回路は、複数のバススレーブ、内部バスを介して前記複数のバススレーブに接続され前記複数のバススレーブをアクセス可能なバスマスタ、及び前記バスマスタがアクセスしようとするバススレーブをアクセス対象として選択するバスコントローラを有する。前記夫々のバススレーブはその数よりも少ない数にグループ化された当該グループの暗号鍵を生成する第１の暗号鍵生成回路を有し、前記暗号鍵生成回路で生成された暗号鍵を用いて前記内部バスのアドレスバスからの入力情報の復号を行う。前記夫々のバスマスタは前記グループ毎の暗号鍵を生成する複数の第２の暗号鍵生成回路を有し、アクセス対象とするバススレーブに対応する第２の暗号鍵生成回路で生成される暗号鍵を用いて前記内部バスのアドレスバスへの出力情報の暗号化を行う。前記バスコントローラによりアクセス対象として選択されたバススレーブが属するグループ内の前記第１の暗号鍵生成回路と当該グループに対応する第２の暗号鍵生成回路とに対して暗号鍵の同期的更新を指示する暗号鍵制御回路を有する。
【００１４】
上記した手段同様に、バスアクセス動作において動作される暗号鍵生成回路はアクセス主体のバスマスタとアクセス対象とされるバススレーブを含むバススレーブグループとに限定されるから、暗号鍵の更新動作等に伴う消費電力を低減することが可能になる。更に、暗号鍵生成回路の数が多数に及ぶことによってチップ面積の増大が過大となることもない。
【００１５】
〔３〕本発明の別の観点では第１の暗号鍵生成回路をグループ単位で設ける。即ち、夫々のバススレーブはその数よりも少ない数にグループ化された当該グループの暗号鍵を生成する第１の暗号鍵生成回路で生成された暗号鍵を用いて前記内部バスへの出力情報の暗号化と前記内部バスからの入力情報の復号を行い、前記夫々のバスマスタは前記グループ毎の暗号鍵を生成する複数の第２の暗号鍵生成回路で生成される暗号鍵を用いて前記内部バスへの出力情報の暗号化と前記内部バスからの入力情報の復号を行ってもよい。要するに、第１の暗号鍵生成回路はそれぞれのバススレーブが保有しなくてもよい。グループ毎に保有してもよい。この場合も上記同様に、前記バスマスタ及びバススレーブは内部バスのデータバス上におけるデータ情報に対する暗号化及び復号を行う。また、前記バスマスタは内部バスのアドレスバスに出力するアドレス情報に対する暗号化を行い、前記バススレーブは内部バスのアドレスバスから入力するアドレス情報に対する復号を行う。
【００１６】
更に同様の観点より、夫々のバススレーブはその数よりも少ない数にグループ化された当該グループの暗号鍵を生成する第１の暗号鍵生成回路で生成された暗号鍵を用いて前記内部バスのアドレスバスからの入力情報の復号を行い、夫々のバスマスタは前記グループ毎の暗号鍵を生成する複数の第２の暗号鍵生成回路で生成される暗号鍵を用いて前記内部バスのアドレスバスへの出力情報の暗号化を行ってもよい。
【００１７】
暗号鍵生成回路をグループ単位で設けるという観点においては、チップ面積は低減するが暗号鍵を伝達する配線の引き回しが長くなり、暗号鍵それ自体に対する不正アクセスのアタックを受け易くなる点に注意が必要である。
【００１８】
〔４〕本発明の更に別の観点ではバススレーブの暗号化復号回路をグループ単位で設ける。即ち、前記夫々のバススレーブはその数よりも少ない数にグループ化され、グループ毎に当該グループの暗号鍵を生成する第１の暗号鍵生成回路で生成された暗号鍵を用いて前記内部バスへの出力情報の暗号化と前記内部バスからの入力情報の復号を行う第１の暗号化復号回路を有し、前記夫々のバスマスタは前記グループ毎の暗号鍵を生成する複数の第２の暗号鍵生成回路で生成される暗号鍵を用いて前記内部バスへの出力情報の暗号化と前記内部バスからの入力情報の復号を行う第２の暗号化復号回路を有する。この場合も上記同様に、前記バスマスタ及びバススレーブは内部バスのデータバス上におけるデータ情報に対する暗号化及び復号を行う。また、前記バスマスタは内部バスのアドレスバスに出力するアドレス情報に対する暗号化を行い、前記バススレーブは内部バスのアドレスバスから入力するアドレス情報に対する復号を行う。
【００１９】
更に同様の観点より、前記夫々のバススレーブはその数よりも少ない数にグループ化され、グループ毎に当該グループの暗号鍵を生成する第１の暗号鍵生成回路で生成された暗号鍵を用いて前記内部バスのアドレスバスからの入力情報の復号を行う第１の暗号化復号回路を有し、前記夫々のバスマスタは前記グループ毎の暗号鍵を生成する複数の第２の暗号鍵生成回路で生成される暗号鍵を用いて前記内部バスのアドレスバスへの出力情報の暗号化を行う第２の暗号化復号回路を有するようにしてもよい。
【００２０】
暗号化復号回路をグループ単位で設けると言う観点においては、チップ面積は低減するが、暗号化前及び復号後の情報伝達距離が長くなるので、不正アクセスのアタックを受け易くなる点に注意が必要である。
【発明の効果】
【００２１】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００２２】
すなわち、暗号鍵の更新動作等に伴う消費電力を低減することができる。このとき、暗号鍵生成回路の数が多数に及ぶことによってチップ面積の増大が過大になることはない。
【発明を実施するための最良の形態】
【００２３】
《ＩＣカードマイコン》
図１には本発明に係る半導体集積回路の一例としてＩＣカードマイコンが例示される。同図に示されるＩＣカードマイコン１は例えば単結晶シリコン等の半導体基板にＣＭＯＳ集積回路製造技術によって形成される。ＣＰＵ２はメインＣＰＵであり、ＣＰＵ１１はメインＣＰＵ２からのコマンドに応答して演算処理を行なうサブＣＰＵである。ともにアドレシング機能を備え、命令をフェッチし、フェッチした命令をデコードし、デコード結果に従ってデータロード、演算及び演算結果のストア等を行って、その命令を実行する。システムコントローラ（ＳＹＳＣ）３はシステムリセット及びパワーオンリセットに伴うハードウェア制御を行うと共に、ＩＣカードマイコン１の動作モード等を制御する。内部バス１０としてデータバス（ＤＢＵＳ）、アドレスバス（ＡＢＵＳ）、及びコントロールバス（ＣＢＵＳ）を有する。詳細は後述するが、データバス（ＤＢＵＳ）及びアドレスバス（ＡＢＵＳ）で転送されるデータ情報及びアドレス情報は暗号化された情報とされる。内部バス１０にはバススレーブモジュールとしてエレクトリカリ・イレーザブル・アンド・プログラマブルＲＯＭ（ＥＥＰＲＯＭ）６Ａ〜６Ｂ、ランダムアクセスメモリ（ＲＡＭ）７Ａ〜７Ｄ、及びマスクＲＯＭ（ＭＲＯＭ）８Ａ〜８Ｃが接続される。内部バス１０にはＣＰＵ２，１１以外のバスマスタとしてダイレクトメモリアクセスコントローラ（ＤＭＡＣ）１２が接続される。ＣＰＵ２、１１又はＤＭＡＣ１２はバスアクセスを行うとき、暗号化したアドレス情報をアドレスバスＡＢＵＳに出力するが、これに並行して、暗号化前のアドレス情報を非暗号化アドレスバスＮＥＡＢＵＳに出力する。バスコントローラ（ＢＳＣ）４は、ＩＣカードマイコン１のアドレス空間に対してバススレーブ等に対するエリア毎にアクセスサイクル数やデータ入出力ビット数等のバスアクセス制御情報が初期設定され、非暗号化アドレスＮＥＡＢＵＳ上のアドレス情報からアクセス対象のバススレーブを判定し、その動作を選択するための複数ビットのモジュール選択信号１３等を出力する。暗号化されたアドレス情報に基づいて正しいモジュール選択を行うことはできないからである。尚、非暗号化アドレスＮＥＡＢＵＳはＣＰＵ２やＤＭＡＣ１２等のロジック回路に接続されており、そのバス配線はメモリに接続するバス配線のように規則的にはならないから、当該非暗号化アドレスＮＥＡＢＵＳの所在の特定は難しく、暗号化しなくても不正アクセスを受ける虞は極めて小さいと考えられる。
【００２４】
ＥＥＰＲＯＭ６Ａ〜６Ｂは電気的に書換え可能な不揮発性メモリである。ＲＡＭ７Ａ〜７Ｄは例えばスタティックＲＡＭによって構成される。ＲＡＭ７Ａ〜７ＤはＣＰＵ１のワーク領域及びデータバッファ等に利用され、ＥＥＰＲＯＭ６Ａ〜６Ｂ及びＭＲＯＭ８Ａ〜８Ｃはプログラム領域又はデータ領域として利用される。認証処理等に利用されるパスワードや個人情報等の機密情報はＥＥＰＲＯＭ６Ａ〜６ＢやＭＲＯＭ８Ａ〜８Ｃが保有し、ＣＰＵ２，１１はその機密情報を読み出し、ＲＡＭ７Ａ〜７Ｄを用いて認証処理等を行なう。内部バス１０にはその他に外部入出力インタフェース回路（ＥＸＩＯ）９等が接続される。外部インタフェース回路９はホスト装置との間でコマンド入力及びデータ入出力等を行う。外部インタフェース回路９のインタフェース形態は外部端子を介する接触インタフェース或いはアンテナを介する非接触インタフェースの何れか一方又であっても、双方であってもよい。
【００２５】
ＩＣカードマイコン１は機密保護の観点よりバスマスタによるバススレーブのアクセスに際して内部バス１０上のデータ及びアドレスを暗号化するバス暗号化機能を備える。ここでは夫々バスマスタであるＣＰＵ２、１１及びＤＭＡＣ１２は前記内部バス１０への出力情報の暗号化と前記内部バス１０からの入力情報の復号を行う暗号化復号回路（ＥＣＤＣ）２１〜２３を有する。それぞれのＥＥＰＲＯＭ６Ａ〜６Ｂは前記内部バス１０への出力情報の暗号化と前記内部バス１０からの入力情報の復号を行う暗号化復号回路３１を有する。同様に、それぞれのＲＡＭ７Ａ〜７Ｄは暗号化復号回路３２を有し、それぞれのＭＲＯＭ８Ａ〜８Ｃは暗号化復号回路３３を有する。
【００２６】
内部バス１０上の情報に対する暗号化及び復号に用いる暗号鍵の割り当てに関し、ＥＥＰＲＯＭ６Ａ〜６ＢをＥＰＲＯＭグループ（ＧＲ１）６とし、ＲＡＭ７Ａ〜７ＤをＲＡＭグループ（ＧＲ２）７とし、ＭＲＯＭ８Ａ〜８ＣをＭＲＯＭグループ（ＧＲ３）８とし、バススレーブの数よりも少ない数のグループにグループ化される。グループ毎に暗号鍵を割り当て、例えば夫々のバススレーブの暗号化復号回路３１〜３３はそれに割り当てられたグループの暗号鍵を生成する暗号鍵生成回路（第１の暗号鍵生成回路）ＥＫ１＿ｓ〜ＥＫ３＿ｓを有する。即ち、夫々のＥＥＰＲＯＭ６Ａ〜６Ｂの暗号化復号回路３１は、暗号鍵生成回路ＥＫ１＿ｓを有し、前記暗号鍵生成回路ＥＫ１＿ｓで生成された暗号鍵を用いて前記内部バス１０への出力情報の暗号化と前記内部バス１０からの入力情報の復号を行う。夫々のＲＡＭ７Ａ〜７Ｄの暗号化復号回路３２は、暗号鍵生成回路ＥＫ２＿ｓを有し、前記暗号鍵生成回路ＥＫ２＿ｓで生成された暗号鍵を用いて前記内部バス１０への出力情報の暗号化と前記内部バス１０からの入力情報の復号を行う。夫々のＭＲＯＭ８Ａ〜８Ｃの暗号化復号回路３３は、暗号鍵生成回路ＥＫ３＿ｓを有し、前記暗号鍵生成回路ＥＫ３＿ｓで生成された暗号鍵を用いて前記内部バス１０への出力情報の暗号化と前記内部バス１０からの入力情報の復号を行う。
【００２７】
ＣＰＵ２、１１とＤＭＡＣ１２の暗号化復号回路２１〜２３はアクセス可能な全てのバススレーブのグループに対応する暗号鍵を用いた暗号化及び復号機能を備える。即ち、暗号化復号回路２１、２３はそれぞれ暗号鍵生成回路（第２の暗号鍵生成回路）ＥＫ１＿ｍ〜ＥＫ３＿ｍを備える。暗号化復号回路２２は暗号鍵生成回路（第２の暗号鍵生成回路）ＥＫ２＿ｍを備える。暗号鍵生成回路ＥＫ１＿ｍはＥＥＰＲＯＭグループ６の暗号鍵生成回路ＥＫ１＿ｓと同じ回路構成を有し、暗号鍵生成回路ＥＫ２＿ｍはＲＡＭグループ７の暗号鍵生成回路ＥＫ２＿ｓと同じ回路構成を有し、暗号鍵生成回路ＥＫ３＿ｍはＭＲＯＭグループ８の暗号鍵生成回路ＥＫ３＿ｓと同じ回路構成を有する。暗号化復号回路２１〜２３は自らが属するバスマスタがアクセスするバススレーブのグループに対応する暗号鍵生成回路ＥＫ１＿ｍ〜ＥＫ３＿ｍの何れかで生成される暗号鍵を用いて、前記内部バス１０への出力情報の暗号化と前記内部バス１０からの入力情報の復号を行う。
【００２８】
機密保護の実効性を上げるには暗号鍵の逐次更新が必要であるが、バスマスタとこれによってアクセスされるバススレーブの双方が用いる暗号鍵は相互に同じでなければならない。暗号鍵制御回路（ＥＣＲＰ）５は、ＢＳＣ４によりアクセス対象として選択されたバススレーブが属する一つのグループ内の暗号鍵生成回路（ＥＫ１＿ｓ〜ＥＫ３＿ｓの何れか）と当該グループに対応するバスマスタモジュール内の一つの暗号鍵生成回路（ＥＫ１＿ｍ〜ＥＫ３＿ｍの何れか）とに対して暗号鍵の同期的更新を複数ビットの更新制御信号１４によって指示する。ＥＣＲＰ５はモジュール選択信号１３を参照してアクセス対象とされるバススレーブのグループを判別し、前記更新制御信号１４により、判別したグループのバススレーブと、当該グループをアクセス可能なバスマスタとに対して、暗号鍵生成回路に暗号鍵を更新する動作を指示する。更新が指示された暗号鍵生成回路は、例えばバスアクセスサイクルを規定するクロック信号の所定変化に同期して暗号鍵を更新する。
【００２９】
《データバスの暗号化復号機能》
図２にはＩＣカードマイコンにおけるデータバスの暗号化復号機能の詳細が例示される。図２においてそれぞれの暗号化復号回路２１〜２３、３１〜３３において暗号鍵を用いた暗号化及び復号にはデータの各ビットに排他的論理和ゲート（ＥＯＲ）を用いる。例えば図３に例示されるように、バスマスタにおいてデータＤ０，Ｄ１（＝１，０）と暗号化鍵Ｋｅｃ（＝１）をＥＯＲに入力して暗号化し、暗号化されたデータ（＝０，１）がデータバスを介してスレーブモジュールに入力される。入力された暗号化データ（＝０，１）は暗号化時と同じ論理値の暗号化鍵Ｋｅｃ（＝１）と一緒にＥＯＲに入力されることにより、元のデータＤ０，Ｄ１（＝１，０）に復号される。特に図示はしないは、データバスＤＢＵＳに出力端子が結合されたＥＯＲはトライステート出力が可能にされ、出力動作が指示されていないときは高出力インピーダンス状態（ＨｉＺ）にされる。
【００３０】
バスマスタ２，１１において暗号鍵生成回路ＥＫ１＿ｍ〜ＥＫ３＿ｍはセレクタＳＥＬで選択される。その選択はバスマスタが自らアクセスしようとするバススレーブのグループに応じて行われる。図２においてＢＳＣ４が出力するモジュール選択信号１３は、ＥＥＰＲＯＭグループ６のバススレーブ６Ａ〜６Ｂに対するモジュール選択信号１３＿１、ＲＡＭグループ７のバススレーブ７Ａ〜７Ｄに対するモジュール選択信号１３＿２、ＭＲＯＭグループ８のバススレーブ８Ａ〜８Ｃに対するモジュール選択信号１３＿３を含み、それらはＥＣＰＲ５に供給される。ＳＹＳＣ３はパワーオンリセット又はシステムリセットの後に暗号鍵の更新制御イネーブル信号ＵＫＤＥをＥＣＲＰ５にアサートする。このアサート期間において、ＥＣＲＰ５はアクセスされるバススレーブのグループ内の暗号鍵と当該グループに対応するバスマスタ内の暗号鍵との同期的更新制御が可能にされる。ＥＣＲＰ５が出力する更新制御信号１４は、ＥＥＰＲＯＭグループ６内の暗号鍵生成回路ＥＫ１＿ｓと当該グループに対応するバスマスタ２，１１内のそれぞれの暗号鍵生成回路ＥＫ１＿ｍとに対する更新制御信号１４＿１、ＲＡＭグループ７内の暗号鍵生成回路ＥＫ２＿ｓと当該グループに対応するバスマスタ２，１１，１２内のそれぞれの暗号鍵生成回路ＥＫ２＿ｍとに対する更新制御信号１４＿２、ＭＲＯＭグループ８内の暗号鍵生成回路ＥＫ３＿ｓと当該グループに対応するバスマスタ２，１１内のそれぞれ暗号鍵生成回路ＥＫ３＿ｍとに対する更新制御信号１４＿３を含む。図２においてそれぞれのバススレーブ及びバスマスタ内のＩＴＮＬで示される回路ブロックは、便宜上各々のバススレーブ及びバスマスタにおいて暗号化復号回路以外の回路部分を意味するものである。
【００３１】
図４には図２の回路におけるデータの暗号化復号動作のタイミングチャートが例示される。バスコマンド（ＢＣＭＤ）はＣＰＵ２等のバスマスタがアドレス信号と一緒にコントロールバスＣＢＵＳに出力するリード・ライト等のアクセス制御形態を指示する制御情報である。ＣＬＫはＩＣカードマイコンンにおけるバスアクセスサイクルを規定する内部クロック信号である。図４の例では、前記バスマスタは内部クロック信号ＣＬＫに同期して非暗号化アドレスバスＮＥＡＢＵＳにアドレス信号を出力したとき次のクロックサイクルで、書込みデータをデータバスＤＢＵＳに出力し、又はデータバスＤＢＵＳから読出しデータを取り込む制御を行うようになっている。例えばＣＰＵ２が時刻ｔ０にリードアクセスを指示し、時刻ｔ１にライトアクセスを指示する。時刻ｔ０から始まる１クロックサイクル（ＣＹＣ１）で前記リードサイクルのアドレス（Ｈ‘０００１００＝ＥＥＰＲＯＭ６Ａのアドレス）がアドレスバスＮＥＡＢＵＳに出力され、時刻ｔ１から始まる１クロックサイクル（ＣＹＣ２）で前記ライトサイクルのアドレス（Ｈ‘ＦＦＦＡ１０＝ＲＡＭ７Ａのアドレス）がアドレスバスＮＥＡＢＵＳに出力される。これと共に、暗号化されたアドレス情報がアドレスバスＡＢＵＳに出力されるが、同図では便宜上、アドレス情報に対する暗号化及び復号については着目していない。
【００３２】
ＢＳＣ４はリードサイクルのアドレス（Ｈ‘０００１００＝ＥＥＰＲＯＭ６Ａのアドレス）に応答してモジュール選択信号１３＿１をローレベルにアサートし、これを受けてＥＣＲＰ５はＥＥＰＲＯＭグループ６に対する暗号鍵更新制御信号１４＿１をハイレベルにアサートする。暗号鍵更新制御信号１４＿１によって更新が指示される暗号鍵生成回路ＥＫ１＿ｓ、ＥＫ１＿ｍが生成する暗号鍵はＨ’５５とされている。暗号鍵生成回路は前記データバスＤＢＵＳ上におけるデータ出力又はデータバスからのデータ入力のクロックサイクルの開始タイミング（＝アドレスバスに対するアドレス出力のクロックサイクルの終了タイミング）に同期して前記暗号鍵の同期的更新動作を行なうから、暗号鍵生成回路ＥＫ１＿ｓ、ＥＫ１＿ｍの暗号鍵はクロックサイクルＣＹＣ２が始まる時刻ｔ１にＨ’５５からＨ‘ＡＡに同期的に更新される。時刻ｔ１から始まるクロックサイクルＣＹＣ２において、ＥＥＰＲＯＭ６Ａはメモリアレイから読み出した元データＨ’６６を暗号鍵Ｈ’ＡＡを用いてデータＨ‘ＣＣに暗号化し、これをデータバスＤＢＵＳに出力し、一方、ＣＰＵ２ははデータバスＤＢＵＳからＨ’ＣＣの暗号化データを取り込み、これを暗号鍵Ｈ‘ＡＡで復号して、元データＨ’６６を再生して取り込む。この動作中、アクセス対象とされていないＲＡＭグループ７の暗号鍵に関する暗号鍵生成回路ＥＫ２＿ｓ、ＥＫ２＿ｍは暗号鍵の更新動作が抑止されている。図示はしないがＭＲＯＮグループの暗号鍵に関する暗号鍵生成回路ＥＫ３＿ｓ、ＥＫ３＿ｍも同様に更新動作が抑止されている。
【００３３】
時刻ｔ１から始まるライトサイクルでは、ＢＳＣ４は当該ライトサイクルのアドレス（Ｈ‘ＦＦＦＡ１０＝ＲＡＭ７Ａのアドレス）に応答してモジュール選択信号１３＿２をローレベルにアサートし、これを受けてＥＣＲＰ５はＲＡＭグループ７に対する暗号鍵更新制御信号１４＿２をハイレベルにアサートする。暗号鍵更新制御信号１４＿２によって更新が指示される暗号鍵生成回路ＥＫ２＿ｓ、ＥＫ２＿ｍが生成する暗号鍵はＨ’２Ａとされている。暗号鍵生成回路ＥＫ２＿ｓ、ＥＫ２＿ｍの暗号鍵はクロックサイクルＣＹＣ３が始まる時刻ｔ２にＨ’２ＡからＨ‘Ｂ５に同期的に更新される。時刻ｔ２から始まるクロックサイクルＣＹＣ３において、ＣＰＵ２は書込みアクセスの元データＨ’８８を暗号鍵Ｈ’Ｂ５を用いてデータＨ‘３Ｄに暗号化し、これをデータバスＤＢＵＳに出力し、一方、書込み動作されるＲＡＭ７ＡはデータバスＤＢＵＳからＨ’３Ｄの暗号化データを取り込み、これを暗号鍵Ｈ‘Ｂ５で復号して、元データＨ’８８を再生してメモリアレイに書込む。この動作中、アクセス対象とされていないＥＥＰＲＯＭグループ６の暗号鍵に関する暗号鍵生成回路ＥＫ１＿ｓ、ＥＫ１＿ｍは暗号鍵の更新動作が抑止されている。図示はしないがＭＲＯＮグループの暗号鍵に関する暗号鍵生成回路ＥＫ３＿ｓ、ＥＫ３＿ｍも同様に更新動作が抑止されている。
【００３４】
《アドレスバスの暗号化復号機能》
図５にはＩＣカードマイコンにおけるアドレスバスの暗号化復号機能の詳細が例示される。図５ではバスマスタとしてＣＰＵ２のみ代表的に示される。図５において暗号化復号回路２１、３１〜３３において暗号鍵を用いた暗号化及び復号にはアドレスの各ビットに排他的論理和ゲート（ＥＯＲ）を用いる。特に図示はしないは、アドレスバスＡＢＵＳに出力端子が結合されたＥＯＲはトライステート出力が可能にされ、出力動作が指示されていないときは高出力インピーダンス状態（ＨｉＺ）にされる。アドレスの暗号化にもデータと同じ暗号鍵生成回路ＥＫ１＿ｍ〜ＥＫ３＿ｍを用いる。したがって暗号鍵の更新制御はデータの場合と同じである。但し、暗号鍵の更新タイミングはデータサイクルの開始タイミング（アドレスサイクルの周力タイミング）であるから、アドレスを暗号化するときに用いる暗号鍵は更新前の暗号鍵とされる。
【００３５】
図６には図５の回路におけるアドレスの暗号化復号動作のタイミングチャートが例示される。上記同様に図６の場合も、バスマスタは内部クロック信号ＣＬＫに同期してアドレスＡＢＵＳにアドレス信号を出力したとき次のクロックサイクルで、書込みデータをデータバスＤＢＵＳに出力し、又はデータバスＤＢＵＳから読出しデータを取り込む制御を行うようになっている。例えばＣＰＵ２が時刻ｔ０にリードアクセスを指示し、時刻ｔ１にライトアクセスを指示し、時刻ｔ２にリードアクセスを指示する。時刻ｔ０から始まる１クロックサイクル（ＣＹＣ１）で前記リードサイクルのアドレス情報ＡＤＲＳ（Ｈ’０００１００＝ＥＥＰＲＯＭ６Ａのアドレス）が暗号化復号回路２１とＢＳＣ４に出力され、時刻ｔ１から始まる１クロックサイクル（ＣＹＣ２）で次のライトサイクルのアドレス情報ＡＤＲＳ（Ｈ‘ＦＦＦＡ１０＝ＲＡＭ７Ａのアドレス）が暗号化復号回路２１とＢＳＣ４に出力され、時刻ｔ２から始まる１クロックサイクル（ＣＹＣ３）で其の次のリードサイクルのアドレス情報ＡＤＲＳ（Ｈ‘０００１１０＝ＥＥＰＲＯＭ６Ａのアドレス）が暗号化復号回路２１とＢＳＣ４に出力される。
【００３６】
ＢＳＣ４は最初のリードサイクルのアドレス情報（Ｈ‘０００１００＝ＥＥＰＲＯＭ６Ａのアドレス）に応答してモジュール選択信号１３＿１をローレベルにアサートし、これを受けてＥＣＲＰ５はＥＥＰＲＯＭグループ６に対する暗号鍵更新制御信号１４＿１をハイレベルにアサートする。暗号鍵更新制御信号１４＿１によって更新が指示される暗号鍵生成回路ＥＫ１＿ｓ、ＥＫ１＿ｍが生成する暗号鍵はＨ’５５とされている。暗号鍵生成回路ＥＫ１＿ｓ、ＥＫ１＿ｍは前記データバスＤＢＵＳ上におけるデータ出力又はデータバスからのデータ入力のクロックサイクルの開始タイミング（＝アドレスバスに対するアドレス出力のクロックサイクルの終了タイミング）に同期して前記暗号鍵の同期的更新動作を行なうから、暗号鍵生成回路ＥＫ１＿ｓ、ＥＫ１＿ｍの暗号鍵はクロックサイクルＣＹＣ２が始まる時刻ｔ１にＨ’５５からＨ’ＡＡに同期的に更新される。アドレスに対する暗号化はアドレス出力サイクルＣＹＣ１の最初に行われなければならないから、ＣＰＵ２は時刻ｔ０から始まるクロックサイクルＣＹＣ１において、アクセスアドレスの元アドレス情報Ｈ’０００１００を暗号鍵Ｈ’５５を用いてアドレス情報Ｈ‘５５５４５５に暗号化し、これをアドレスバスＡＢＵＳに出力し、一方、ＥＥＰＲＯＭ６ＡはアドレスバスＡＢＵＳから暗号化アドレス情報Ｈ’５５５４５５を取り込み、これを暗号鍵Ｈ‘５５で復号して、元のアドレス情報Ｈ’０００１００を再生して取り込み、取り込んだアドレスに基づいてＥＥＰＲＯＭ６Ａからデータを読み出し、読出されたデータはＣＰＵ２に取り込まれる。この動作中、アクセス対象とされていないＲＡＭグループ７及びＭＲＯＭグループ８の暗号鍵に関する暗号鍵生成回路ＥＫ２＿ｓ、ＥＫ２＿ｍ、ＥＫ３＿ｓ、ＥＫ３＿ｍは暗号鍵の更新動作が抑止されている。
【００３７】
次のクロックサイクルＣＹＣ２では、アドレス情報（Ｈ‘ＦＦＦＡ１０＝ＲＡＭ７Ａのアドレス）に応答してモジュール選択信号１３＿２をローレベルにアサートし、これを受けてＥＣＲＰ５はＲＡＭグループ７に対する暗号鍵更新制御信号１４＿２をハイレベルにアサートする。暗号鍵更新制御信号１４＿２によって更新が指示される暗号鍵生成回路ＥＫ２＿ｓ、ＥＫ２＿ｍが生成する暗号鍵は時刻ｔ１においてＨ’２Ａとされている。暗号鍵生成回路ＥＫ２＿ｓ、ＥＫ２＿ｍはクロックサイクルＣＹＣ３が始まる時刻ｔ２にＨ’２ＡからＨ’Ｂ５に同期的に更新される。アドレスに対する暗号化はアドレス出力サイクルＣＹＣ２の最初に行われなければならないから、ＣＰＵ２は時刻ｔ１から始まるクロックサイクルＣＹＣ２において、アクセスアドレスの元アドレス情報Ｈ’ＦＦＦＡ１０を暗号鍵Ｈ’２Ａを用いてアドレス情報Ｈ‘Ｄ５Ｄ０３Ａに暗号化し、これをアドレスバスＡＢＵＳに出力し、一方、ＲＡＭ７ＡはアドレスバスＡＢＵＳから暗号化アドレス情報Ｈ’Ｄ５Ｄ０３Ａを取り込み、これを暗号鍵Ｈ‘２Ａで復号して、元のアドレス情報Ｈ’ＦＦＦＡ１０を再生して取り込み、取り込んだアドレスに基づいてＲＡＭ７Ａにデータが書込まれる。この動作中、アクセス対象とされていないＥＥＰＲＯＭグループ６及びＭＲＯＭグループ８の暗号鍵に関する暗号鍵生成回路ＥＫ１＿ｓ、ＥＫ１＿ｍ、ＥＫ３＿ｓ、ＥＫ３＿ｍは暗号鍵の更新動作が抑止されている。
【００３８】
その次のクロックサイクルＣＹＣ３では、アドレス情報（Ｈ‘０００１１０＝ＥＥＰＲＯＭ６Ａのアドレス）に応答してモジュール選択信号１３＿１をローレベルにアサートし、これを受けてＥＣＲＰ５はＥＥＰＲＯＭグループ６に対する暗号鍵更新制御信号１４＿１をハイレベルにアサートする。暗号鍵更新制御信号１４＿１によって更新が指示される暗号鍵生成回路ＥＫ１＿ｓ、ＥＫ１＿ｍが生成する暗号鍵は時刻ｔ２においてＨ’ＡＡとされている。暗号鍵生成回路ＥＫ１＿ｓ、ＥＫ１＿ｍはクロックサイクルＣＹＣ４が始まる時刻ｔ３にＨ’ＡＡからＨ’６７に同期的に更新される。アドレスに対する暗号化はアドレス出力サイクルＣＹＣ３の最初に行われなければならないから、ＣＰＵ２は時刻ｔ２から始まるクロックサイクルＣＹＣ３において、アクセスアドレスの元アドレス情報Ｈ’０００１１０を暗号鍵Ｈ’ＡＡを用いてアドレス情報Ｈ‘Ｂ５Ｂ４Ａ５に暗号化し、これをアドレスバスＡＢＵＳに出力し、一方、ＥＥＰＲＯＭ６ＡはアドレスバスＡＢＵＳから暗号化アドレス情報Ｈ’Ｂ５Ｂ４Ａ５を取り込み、これを暗号鍵Ｈ‘ＡＡで復号して、元のアドレス情報Ｈ’０００１１０を再生して取り込み、取り込んだアドレスに基づいてＥＥＰＲＯＭ６Ａからデータを読み出し、読出されたデータはＣＰＵ２に取り込まれる。この動作中、アクセス対象とされていないＲＡＭグループ７及びＭＲＯＭグループ８の暗号鍵に関する暗号鍵生成回路ＥＫ２＿ｓ、ＥＫ２＿ｍ、ＥＫ３＿ｓ、ＥＫ３＿ｍは暗号鍵の更新動作が抑止されている。尚、図６のアドレスの暗号化復号動作を行うとき図２におけるデータバスに対する暗号化復号機能を併用し、アドレスバスおよびデータバス双方に対して暗号化復号処理を行なってよいことは当然である。
【００３９】
上記ＩＣカードマイコン１によれば以下の作用効果を得る。
【００４０】
（１）バススレーブのグループ（６，７，８）毎にバスマスタ及びバススレーブにおける暗号鍵の生成と更新をグループ化したから、バスアクセス動作において動作される暗号鍵生成回路はアクセス主体のバスマスタとアクセス対象とされるバススレーブを含むバススレーブのグループとに限定される。このように動作すべき暗号鍵生成回路を限定することにより、暗号鍵の更新動作等に伴う消費電力を低減することが可能になる。
【００４１】
（２）また、バススレーブはその数より少ない数にグループ化されグループ毎に暗号鍵を割り当て、全てのバススレーブ毎に個別の暗号鍵を割り当てるものではないから、一つのバスマスタが保有すべき第２の暗号鍵生成回路の数はバススレーブの数よりも少なくなり、チップ面積の増大が過大なることはない。低消費電力とチップ面積増大のトレードオフを考慮すると、グループ化は例えば１０グループ以下にするのがよい。チップ面積はグループ化数に比例して増えるが、消費電力はグループ化数が１０程度までは漸次減少するがそれ以上では電力消費の低減率が収束してしまうからである。グループ化数が１０程度を超えると暗号鍵生成回路の数が増える分だけ逆にそれぞれの記憶段等で消費される電力の増大を無視できなくなるからである。
【００４２】
（３）図１の例では暗号化復号回路をバスマスタ及びバススレーブのそれぞれのモジュールに設けたが、グループ単位で設ける構成と比較すると、後者の方がチップ面積は低減するが、暗号化前及び復号後の情報伝達距離が長くなり、不正アクセスのアタックを受け易くなる。前者は内部バス上における機密保護を万全にするという観点において優れている。
【００４３】
（４）図１の例では暗号鍵生成回路をバスマスタ及びバススレーブのそれぞれのモジュールに設けたが、グループ単位で設ける構成と比較すると、後者の方がチップ面積は低減するが暗号鍵を伝達する配線の引き回しが長くなり、暗号鍵それ自体に対する不正アクセスのアタックを受け易くなる。前者は内部バス上における機密保護を万全にするという観点において優れている。
【００４４】
図７には暗号鍵生成回路の一例が示される。代表的に示された暗号鍵生成回路ＥＫ１＿ｍは初段への帰還経路に乱数発生器（ＲＮＧ）４０の出力と論理演算を行う論理ゲートＥＯＲ１を備えたリニアフィードバックシフトレジスタ（ＬＦＳＲ）としてのリングカウンタ４１を有し、前記リングカウンタ４１の計数値が暗号鍵Ｋｅｃとされる。論理ゲートＥＯＲ１として例えば排他的論理和回路を採用する。リングカウンタ４１は例えば直列接続された４個のフリップフロップＦＦを備え、４個のフリップフロップＦＦからの並列出力が暗号鍵Ｋｅｃとされる。例えばデータバスＤＢＵＳのビット数が３２ビットであるとき、データビット４ビット毎に暗号鍵Ｋｅｃを用いて暗号化及び復号を行えばよい。乱数発生器４０は例えば真正乱数発生器とすればよい。リングカウンタ４１のシフト動作はクロック信号ＣＬＫに同期される。リセット信号ＲＳＴがイネーブルにされることによって暗号鍵Ｋｅｃが初期化される。更に高い乱数性が必要になる場合はＬＦＳＲの段数を増やせばよい。その他の暗号鍵生成回路も同様に構成してよい。
【００４５】
図８には暗号鍵生成回路の別の例が示される。同図に示される暗号鍵生成回路ＥＫ１＿ｍは真正乱数発生器に代えて、セレクタＳＥＬ１と排他的論理がゲートＥＯＲ２を用いた擬似乱数発生を採用する。排他的論理和ゲートＥＯＲ２は例えばデータバスＤＢＵＳを入力する。セレクタＳＥＬ１は論理値１又排他的論理和ゲートＥＯＲ２の出力を選択信号Ｓｓｅに従って選択する。選択信号Ｓｓｅは例えばデータバスの適宜の１ビット等のような任意性のあるデータビットであればよい。その他の暗号鍵生成回路も同様に構成してよい。
【００４６】
図９には暗号鍵生成回路に対するリセット動作の同期制御形態が例示される。バスマスタとバススレーブ間において相互に同じ暗号鍵を同期的に生成すべき暗号鍵生成回路同士を同じリセット信号でリセットすればよい。図９に代表的に示された例では、ＥＥＰＲＯＭグループ６の暗号鍵生成回路ＥＫ１＿ｓとＥＥＰＲＯＭグループ６をアクセス可能なバスマスタ（ＣＰＵ２）が備える暗号鍵生成回路ＥＫ１＿ｍとを同じリセット信号ＲＳＴ１でリセット可能とし、また、ＲＡＭグループ７の暗号鍵生成回路ＥＫ２＿ｓとＲＡＭグループ７をアクセス可能なバスマスタ（ＣＰＵ２，ＤＭＡＣ１２）が備える暗号鍵生成回路ＥＫ２＿ｍとを同じリセット信号ＲＳＴ２でリセット可能とする。この例では何れの暗号鍵生成回路も初期値は共通化される。
【００４７】
図１０には暗号鍵生成回路に対するリセット動作の別の同期制御形態が例示される。バスマスタとバススレーブ間において相互に同じ暗号鍵を同期的に生成すべき暗号鍵生成回路同士を同じ書込み信号を用いて同じ値にプリセット可能とするものである。図１０に代表的に示された例では、ＥＥＰＲＯＭグループ６の暗号鍵生成回路ＥＫ１＿ｓのＬＦＳＲとＥＥＰＲＯＭグループ６をアクセス可能なバスマスタ（ＣＰＵ２）が備える暗号鍵生成回路ＥＫ１＿ｍのＬＦＳＲとを同じ書込み信号ＷＳ１で初期化データをプリセット可能とし、また、ＲＡＭグループ７の暗号鍵生成回路ＥＫ２＿ｓのＬＦＳＲとＲＡＭグループ７をアクセス可能なバスマスタ（ＣＰＵ２，ＤＭＡＣ１２）が備える暗号鍵生成回路ＥＫ２＿ｍのＬＦＳＲとに同じ書込み信号ＷＳ２で初期化データをプリセット可能とする。プリセットすべき初期化データ及び書込み信号は暗号鍵初期化回路（ＩＴＣ）４３が出力する。初期化データの転送路は例えば専用バス４４で構成する。暗号鍵初期化回路４３は例えばＳＹＳＣ３が備え、パワーオンリセット若しくはシステムリセットに応答して初期化データのプリセット動作を制御する。図１０の構成に適用する前記ＬＦＳＲは図７及び図8のＬＦＳＲ４１に対して書込み信号がイネーブルにされたときフリップフロップＦＦのデータ入力端子にプリセットデータが並列に入力されるように構成される。
【００４８】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００４９】
例えば、上記説明では暗号化復号回路をバスマスタ及びバススレーブのそれぞれのモジュールに設けたが、グループ単位で設ける構成を採用することも可能である。また、暗号鍵生成回路についてもバスマスタ及びバススレーブのそれぞれのモジュールに設けたが、グループ単位で設ける構成を採用することも可能である。更に、バス暗号化はアドレスバスとデータバスの双方に対して行う場合に限定されず、何れか一方のバス情報に対してだけ暗号化を行うようにしてもよい。アドレス情報に対する暗号化を行わない場合には非暗号化アドレスバスは不要であり、バスコントローラはアドレスバスからアドレス信号を入力してモジュール選択信号を生成すればよい。データバス情報の暗号化復号に用いる暗号鍵とアドレスバス情報の暗号化復号に用いる暗号鍵とを別々にすることも可能である。バスマスタはＣＰＵとＤＭＡＣに限定されず、その他のアドレシング機能を有するコントローラであってもよい。バススレーブは揮発性メモリ及び不揮発性メモリに限定されず、入出力インタフェース回路等であってもよい。その他、暗号鍵の生成論理や、バス暗号化の論理ゲートは適宜変更可能である。
【図面の簡単な説明】
【００５０】
【図１】本発明に係る半導体集積回路の一例であるＩＣカードマイコンのブロック図である。
【図２】ＩＣカードマイコンにおけるデータバスの暗号化復号機能の詳細を例示するブロック図である。
【図３】バスの暗号化復号論理の一例を示す論理回路図である。
【図４】図２の回路におけるデータの暗号化復号動作のタイミングチャートである。
【図５】ＩＣカードマイコンにおけるアドレスバスの暗号化復号機能の詳細を例示するブロック図である。
【図６】図５の回路におけるアドレスの暗号化復号動作のタイミングチャートである。
【図７】暗号鍵生成回路の一例を示す論理回路図である。
【図８】暗号鍵生成回路の別の例を示す論理回路図である。
【図９】暗号鍵生成回路に対するリセット動作の同期制御形態を例示するブロック図である。
【図１０】暗号鍵生成回路に対するリセット動作の別の同期制御形態を例示するブロック図である。
【符号の説明】
【００５１】
１  ＩＣカードマイコン
２、１１  ＣＰＵ
３  システムコントローラ（ＳＹＳＣ）
ＤＢＵＳ  データバス
ＡＢＵＳ  アドレスバス
ＣＢＵＳ  コントロールバス
ＮＥＡＢＵＳ  非暗号化アドレス
５  暗号鍵制御回路（ＥＣＲＰ）
６Ａ〜６Ｂ  エレクトリカリ・イレーザブル・アンド・プログラマブルＲＯＭ（ＥＥＰＲＯＭ）
７Ａ〜７Ｄ  ランダムアクセスメモリ（ＲＡＭ）
８Ａ〜８Ｃ  マスクＲＯＭ（ＭＲＯＭ）
６  ＥＰＲＯＭグループ（ＧＲ１）
７  ＲＡＭグループ（ＧＲ２）
８  ＭＲＯＭグループ（ＧＲ３）
１０  内部バス
１２  ダイレクトメモリアクセスコントローラ（ＤＭＡＣ）
１３  モジュール選択信号
１４  暗号鍵更新制御信号
２１〜２３  バスマスタの暗号化復号回路（ＥＣＤＣ）
３１〜３３  バススレーブの暗号化復号回路
ＥＫ１＿ｓ〜ＥＫ３＿ｓ  バススレーブの暗号鍵生成回路（第１の暗号鍵生成回路）
ＥＫ１＿ｍ〜ＥＫ３＿ｍ  バスマスタの暗号鍵生成回路（第２の暗号鍵生成回路）
【図１】
2007281994.tif 000003
【図２】
2007281994.tif 000004
【図３】
2007281994.tif 000005
【図４】
2007281994.tif 000006
【図５】
2007281994.tif 000007
【図６】
2007281994.tif 000008
【図７】
2007281994.tif 000009
【図８】
2007281994.tif 000010
【図９】
2007281994.tif 000011
【図１０】
2007281994.tif 000012