(57)【要約】      （修正有）【課題】アクセスを制限するための設定情報を改竄又は誤って変更された場合でも、機密情報の漏洩を防止する技術を提供する。【解決手段】半導体集積回路２において、機密情報の利用状態の遷移に応じて変化するアクセス許可情報に基づいて、機密情報へのアクセスの許否を判断するアクセス認証部２１と、アクセス許可情報と、遷移後の利用状態に対応して定義されているアクセス許可情報とが異なることを検知した場合、機密情報を保護する処理を行うライフサイクル監視部２３と、を備える。【選択図】図１
2016218944.tif 000002
【特許請求の範囲】
【請求項１】
機密情報の利用状態の遷移に応じて変化するアクセス許可情報に基づいて、前記機密情報へのアクセスの許否を判断するアクセス認証部と、
前記アクセス許可情報と、前記遷移後の利用状態に対応して定義されているアクセス許可情報とが異なることを検知した場合、前記機密情報を保護する処理を行う監視部と、
を備える半導体集積回路。
【請求項２】
前記監視部は、前記機密情報を消去することにより、前記機密情報を保護する処理を行う、請求項１記載の半導体集積回路。
【請求項３】
前記監視部は、１つ以上前の利用状態に対応するアクセス許可情報が設定された場合に、不正アクセスと判断し、前記機密情報へのアクセスを拒否する、請求項１または２記載の半導体集積回路。
【請求項４】
前記監視部は、機密情報の利用状態が遷移した際に、前記機密情報を格納するアドレスを更新し、更新したアドレスを管理し、
１つ以上前の利用状態に対応するアクセス許可情報が設定された場合に、不正アクセスと判断し、更新したアドレスを管理する情報を消去する、
請求項１乃至３のいずれか一項に記載の半導体集積回路。
【請求項５】
前記監視部は、乱数に基づいて、前記更新後のアドレスを設定する、請求項４記載の半導体集積回路。
【請求項６】
前記監視部は、所定の時間間隔で、前記機密情報を格納するアドレスを更新する、
請求項４または５に記載の半導体集積回路。
【請求項７】
前記監視部は、前記機密情報へのアクセスの頻度が、前記利用状態に応じた閾値を超えた場合に、前記機密情報を保護する処理を行う、請求項１乃至６のいずれか１項に記載の半導体集積回路。
【請求項８】
前記機密情報及びアクセス許可情報を格納するメモリをさらに有する、
請求項１乃至７のいずれか一項に記載の半導体集積回路。
【請求項９】
請求項１乃至８のいずれか一項に記載の半導体集積回路と、
前記アクセス認証部を介して、前記機密情報へアクセスするプロセッサと、
を有する電子機器。
【請求項１０】
半導体集積回路における機密保護方法であって、
機密情報の利用状態の遷移に応じて変化するアクセス許可情報に基づいて、前記機密情報へのアクセスの許否を判断するステップと、
前記アクセス許可情報と、前記遷移後の利用状態に対応して定義されているアクセス許可情報とが異なることを検知した場合、前記機密情報を保護する処理を行うステップと、
を実行する機密保護方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路、電子機器、及び機密保護方法に関する。
【背景技術】
【０００２】
ＩＣチップを含む半導体チップ等の電子部品に搭載されているメモリには、電子部品の所有者の個人情報や、安全なネットワーク通信を行うための暗号鍵など、外部に対して非公開にするべき情報（機密情報）が記憶されている。
【０００３】
この機密情報に対して他者が容易にアクセスすることができないように、予め設定された情報に基づいて、メモリへのアクセスを制限する技術が知られている（特許文献１参照）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来技術では、アクセスを制限するための設定情報を、改竄または誤って変更された場合に、機密情報が漏洩し得るという問題がある。
【０００５】
そこで、アクセスを制限するための設定情報を改竄または誤って変更された場合でも、機密情報の漏洩を防止する技術を提供することを目的とする。
【課題を解決するための手段】
【０００６】
半導体集積回路において、機密情報の利用状態の遷移に応じて変化するアクセス許可情報に基づいて、前記機密情報へのアクセスの許否を判断するアクセス認証部と、前記アクセス許可情報と、前記遷移後の利用状態に対応して定義されているアクセス許可情報とが異なることを検知した場合、前記機密情報を保護する処理を行う監視部と、を備える。
【発明の効果】
【０００７】
開示の技術によれば、アクセスを制限するための設定情報を改竄または誤って変更された場合でも、機密情報の漏洩を防止することが可能となる。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態に係る電子機器の構成図である。
【図２】ライフサイクルとアクセス許可情報の値を説明する図である。
【図３】アクセス許可情報の設定ミスを検出した場合の処理を説明する図である。
【図４】アクセス許可情報の改竄を検出した場合の処理を説明する図である。
【図５】機密情報の配置変換処理を説明する図である。
【図６】１つのアドレスに格納するデータサイズの半分毎の配置変換処理を説明する図である。
【図７】１つのアドレスに格納するデータサイズの１／４毎の配置変換処理を説明する図である。
【図８】メモリをＯＴＰメモリにより構成した場合の機密情報の配置変換処理を説明する図である。
【図９】電子機器のシーケンス図である。
【図１０】機密情報格納部へのアクセスを要求された際の、セキュアアクセスモジュールの処理のフローチャートである。
【図１１】アクセス許可情報が書き換えられた際の、セキュアアクセスモジュールの処理のフローチャートである。
【図１２】第１の実施形態に係る電子機器の動作を説明する図である。
【図１３】第２の実施形態に係る電子機器の構成図である。
【図１４】第２の実施形態のデータ配置変換テーブルに格納するデータの一例を示す図である。
【図１５】第３の実施形態に係る電子機器の構成図である。
【図１６】アクセス数制限テーブルの一例を示す図である。
【図１７】第３の実施形態に係る電子機器の動作を説明する図である。
【図１８】第４の実施形態に係る電子機器の構成図である。
【図１９】配置変換間隔テーブルの一例を示す図である。
【図２０】データ配置変換テーブルの更新内容の一例を示す図である。
【発明を実施するための形態】
【０００９】
＜第１の実施形態＞
以下に図面を参照して実施形態について説明する。図１は、第１の実施形態に係る電子機器１の構成図である。
【００１０】
電子機器１は、半導体集積回路２と、ＣＰＵ１０を有する。半導体集積回路２は、ＣＰＵ(Central Processing Unit)１０により制御される。
【００１１】
半導体集積回路２は、セキュアアクセスモジュール２０、メモリ３０を有する。なお、メモリ３０は、半導体集積回路２の外部に設ける外部メモリとして構成してもよい。ＣＰＵ１０とメモリ３０は、セキュアアクセスモジュール２０を介して接続される。
【００１２】
ＣＰＵ１０は、プログラム等からの命令に従い、セキュアアクセスモジュール２０を介してメモリ３０にアクセスし、情報の読み書きを行う。
【００１３】
メモリ３０は、不揮発性メモリであり、暗号鍵等の機密情報を格納する機密情報格納部３１と、機密情報格納部３１に対するアクセス可否の情報であるアクセス許可情報を格納するアクセス許可情報格納部３２を有する。
【００１４】
セキュアアクセスモジュール２０は、ＣＰＵ１０からメモリ３０へのアクセスを仲介する。メモリ３０に格納されているアクセス許可情報に基づいて、メモリ３０の機密情報格納部３１へのアクセスの許否を判断する。また、メモリ３０に格納されているアクセス許可情報と、遷移後のライフサイクル（「利用状態」の一例）に対応して定義されているアクセス許可情報とが異なることを検知した場合、機密情報格納部３１に格納されている機密情報を保護する処理を行う。
【００１５】
次に、セキュアアクセスモジュール２０の詳細について説明する。
【００１６】
セキュアアクセスモジュール２０は、アクセス認証部２１、アクセス実行部２２、ライフサイクル監視部２３を備える。
【００１７】
アクセス認証部２１は、機密情報格納部３１へのアクセスに対して、アクセス許可情報に基づいて、可否を判断する。なお、アクセス許可情報格納部３２へのアクセスに対しては、アクセス許可情報に基づく可否の判断は行わない。
【００１８】
アクセス実行部２２は、アクセス認証部２１からアクセスの許可を指示されると、機密情報格納部３１へのリード/ライト等のアクセスを実行する。
【００１９】
ライフサイクル監視部２３は、アクセス許可情報格納部３２に格納されているアクセス許可情報が、予め規定されているライフサイクルの遷移に従った変更をされているかを監視する。予め規定されているライフサイクルの遷移に従った変更をされていないことを検出すると、アラートを出力する等の機密情報の保護処理を行う。なお、機密情報の保護処理についての詳細は後述する。
【００２０】
ライフサイクル監視部２３は、データ配置変換テーブル２３１を有する。ライフサイクル監視部２３は、ライフサイクルが遷移したとき、機密情報格納部３１に格納されている機密情報の配置（アドレス）を、データ配置変換テーブル２３１に従って更新する処理である、機密情報の配置変換処理を行う。なお、機密情報の配置変換処理についての詳細は後述する。
【００２１】
次に、図２を参照し、ライフサイクルの遷移と、アクセス認証部２１によるアクセス許可情報に応じた機密情報格納部３１へのアクセスの制限について説明する。
【００２２】
図２は、ライフサイクルとアクセス許可情報の値を説明する図である。
【００２３】
実施形態においては、ライフサイクルは、所定の状態を順に遷移していくものとし、所定の状態として、以下の遷移順に、「初期状態」、「運用状態」、「上書き状態」、「破棄状態」の４つの状態を規定する。
【００２４】
「初期状態」では、アクセス許可情報は「０００」であり、機密情報格納部３１に対して機密情報の読み込み（リード）と書き込み（ライト）の両方を実行可能である。
【００２５】
「運用状態」では、アクセス許可情報は「００１」であり、機密情報格納部３１に対して機密情報の読み込みのみを実行可能である。
【００２６】
「上書き状態」では、アクセス許可情報は「０１１」であり、機密情報格納部３１に対して機密情報の読み込み（リード）と書き込み（ライト）の両方を実行可能である。「上書き状態」では、使わなくなった機密情報を破棄するために、例えばＣＰＵ１０からの指示により、機密情報格納部３１に格納されているデータを消去する。なお、データの消去は、例えば、乱数値や指定した文字コード等を、機密情報格納部３１に上書きすることにより行う構成としてもよい。
【００２７】
「破棄状態」では、アクセス許可情報は「１１１」であり、使わなくなった機密情報が破棄され、機密情報格納部３１に対してアクセスができないようにする。
【００２８】
なお、ライフサイクルの状態の種類を１つ増やす場合は、アクセス許可情報を１ビット増やす構成としてもよい。
【００２９】
なお、実施形態においては、ライフサイクルは、所定の状態を順に遷移する。そのため、アクセス許可情報を格納するアクセス許可情報格納部３２を、ＯＴＰ(One Time Programmable)メモリにより構成すると、以前のライフサイクルに対応するアクセス許可情報に変更できないため、よりセキュリティが向上する。なお、ＯＴＰメモリとは、一度だけ値を書き換えることが可能な不揮発性メモリである。例えば、初期値が０であった場合、一度だけ０から１へ書き換えることができ、その後１から０に書き換えることはできない。なお、実施形態では、ライフサイクル監視部２３を備えるため、ＯＴＰメモリを用いなくともよい。
【００３０】
次に、図３を参照し、アクセス許可情報の設定ミスを検出した場合の機密情報の保護処理を説明する。図３は、アクセス許可情報の設定ミスを検出した場合の機密情報の保護処理を説明する図である。図３は、例えばユーザが誤って、アクセス許可情報を、「運用状態」を示す「００１」から、ライフサイクルが定義されていない「１０１」に書き換えた場合の例である。
【００３１】
図３のように、アクセス許可情報が、各ライフサイクルに対応して定義されているいずれの値にも該当しない場合、ライフサイクル監視部２３は、アラートを出力し、機密情報保護のため機密情報を上書きすることをユーザに促す。または、アクセス認証部２１が、ユーザからの機密情報格納部３１に対するアクセスを拒否し、ライフサイクル監視部２３が自動で機密情報を上書きする構成としてもよい。
【００３２】
次に、図４を参照し、アクセス許可情報の改竄を検出した場合の機密情報の保護処理を説明する。図４は、アクセス許可情報の改竄を検出した場合の機密情報の保護処理を説明する図である。ライフサイクル監視部２３は、１つ以上前の利用状態に対応するアクセス許可情報が設定された場合などに、不正アクセスにより、アクセス許可情報が改竄されたと判断する。
【００３３】
図４に示す例では、例えば悪意のあるユーザが機密情報に対して不正なアクセスを行うために、セキュアアクセスモジュール２０を介さずに、メモリ３０に直接接続する。そして、「運用状態」のライフサイクルにおいて、「初期状態」のライフサイクルに対応して定義されたアクセス許可情報の値である「０００」を設定したとする。
【００３４】
その場合、ライフサイクル監視部２３は、予め定義されているライフサイクルの遷移とは異なる遷移をしたことを検知し、不正なアクセスによりアクセス許可情報が改竄されたと判断する。そして、図３にて説明した設定ミスを検出した場合よりも強固なセキュリティとするため、アラートを出力するとともに、ライフサイクル監視部２３は、アクセス実行部２２に指示を出し、それ以降の機密情報格納部３１に対するアクセスを拒否させる。なお、ライフサイクル監視部２３により、自動で機密情報を上書きする構成を付加してもよい。
【００３５】
また、ライフサイクル監視部２３は、データ配置変換テーブル２３１のデータを、上書きする等により破壊（削除）する。それにより、その後、機密情報格納部３１を読み取られたとしても、データ配置変換テーブル２３１のデータを読み取られることはなくなる。そのため、後述する機密情報の配置変換処理により変換された機密情報の配置を元に戻すことができなくなり、機密情報の漏洩を抑制することができる。
【００３６】
次に、図５を参照し、ライフサイクル監視部２３による、ライフサイクルの遷移に応じて、機密情報格納部３１に保存されているデータを格納するアドレスを変換する処理である、機密情報の配置変換処理について説明する。なお、説明を簡略にするため、以下では、機密情報格納部３１が、機密情報を保存するためのアドレスを４つ有するものとして説明する。
【００３７】
図５は、機密情報の配置変換処理を説明する図である。
【００３８】
図５（Ａ）は、ライフサイクル監視部２３が有するデータ配置変換テーブル２３１に格納されている情報の一例を示す。データ配置変換テーブル２３１は、ライフサイクルに対応して定義されたアクセス許可情報毎に、機密情報格納部３１に保存されているデータを入れ替えるアドレスを管理する。例えば、アクセス許可情報毎に、入れ替え元のアドレスと、入れ替え先のアドレスとを対応付けて管理する。
【００３９】
図５（Ｂ）は、図５（Ａ）のデータ配置変換テーブル２３１に従って、ライフサイクルが遷移する度に、機密情報を格納するアドレスを更新する処理を説明する図である。ライフサイクル監視部２３は、ライフサイクルが「初期状態」、「運用状態」、「上書き状態」と遷移したとき、つまりアクセス許可情報が「０００」、「００１」、「０１１」と変更される毎に、機密情報格納部３１のデータを格納するアドレスを更新する
図５の例では、例えば、アクセス許可情報が「０００」の時に機密情報格納部３１のアドレス０ｘ０に保存されたデータは、アクセス許可情報が「００１」に変更された時に、アドレス０ｘ１に配置が入れ替わる。そして、アクセス許可情報が「０１１」に変更された時に、アドレス０ｘ３に配置が入れ替わることを表している。
【００４０】
このようにライフサイクル監視部２３は、アクセス許可情報が書き換えられたことを検出した際、データ配置変換テーブル２３１に基づいて、機密情報格納部３１に格納されているデータの配置を入れ替えることを、アクセス実行部２２に要求する。
【００４１】
次に、図６を参照し、入れ替え元のアドレスのデータを複数（２つ）に分割し、機密情報の配置変換処理を行う場合について説明する。
【００４２】
図６は、１つのアドレスに格納するデータサイズの半分毎の配置変換処理を説明する図である。図５の例では、機密情報の配置変換処理を、４バイトのデータを格納するアドレス毎に行っていた。図６の例では、１つのアドレスに格納するデータサイズの半分である２バイト（ハーフワード）毎に分割して配置変換処理を行うことにより、配置の変更がより複雑となるため、よりセキュリティが向上する。
【００４３】
図６（Ａ）は、データ配置変換テーブル２３１に格納されている情報の一例を示す。なお、図中で、ＡＤＲ０、ＡＤＲ１、ＡＤＲ２、ＡＤＲ３は、アクセス許可情報が「０００」の時に機密情報格納部３１のアドレス０ｘ０、０ｘ１、０ｘ２、０ｘ３に保存されたデータを示す。［Ｘ：Ｙ］は、データのＹ＋１ビット目からＸ＋１ビット目までのデータを示す。例えば、ＡＤＲ０［３１：０］は、ＡＤＲ０の１ビット目から３２ビット目まで、つまりＡＤＲ０全体を示す。
【００４４】
図６（Ｂ）は、図６（Ａ）のデータ配置変換テーブル２３１に従って、ライフサイクルが遷移する度に、機密情報格納部３１に保存されているデータを入れ替えるアドレスの変換処理を説明する図である。
【００４５】
図６の例では、例えば、ＡＤＲ０は、アクセス許可情報が「００１」に変更された時、ＡＤＲ０の前半の２バイトであるＡＤＲ０［１５：０］は、アドレス０ｘ３の後半の２バイト［１５：０］に、配置が入れ替わる。そして、後半の２バイトであるＡＤＲ０［３１：１６］は、アドレス０ｘ０の後半の２バイト［３１：１６］に、配置が入れ替わる。
【００４６】
次に、図７を参照し、入れ替え元のアドレスのデータを複数（４つ）に分割し、機密情報の配置変換処理を行う場合について説明する。
【００４７】
図７は、１つのアドレスに格納するデータサイズの１／４毎の配置変換処理を説明する図である。図７の例では、１つのアドレスに格納するデータサイズの１／４である１バイト毎に分割して配置変換処理を行うことにより、配置の変更がより複雑となるため、よりセキュリティが向上する。
【００４８】
図７の例では、例えば、ＡＤＲ０は、アクセス許可情報が「００１」に変更された時、ＡＤＲ０の先頭の１バイトであるＡＤＲ０［７：０］は、アドレス０ｘ３の先頭の１バイトに、配置が入れ替わる。２番目の１バイトであるＡＤＲ０［１５：８］は、アドレス０ｘ２の２番目の１バイトに、配置が入れ替わる。３番目の１バイトであるＡＤＲ０［２３：１６］は、アドレス０ｘ１の３番目の１バイトに、４番目の１バイトであるＡＤＲ０［３１：２４］は、アドレス０ｘ０の４番目の１バイトに、配置が入れ替わる。
【００４９】
次に、図８を参照し、メモリ３０をＯＴＰメモリにより構成した場合の機密情報の配置変換処理について説明する。
【００５０】
図８は、メモリ３０をＯＴＰメモリにより構成した場合の機密情報の配置変換処理を説明する図である。なお、説明を簡略にするため、機密情報格納部３１が、機密情報を保存するためのアドレスを３つ有するものとして説明する。図８（Ａ）は、メモリ３０をＯＴＰメモリにより構成した場合の、データ配置変換テーブル２３１に格納されている情報の一例を示す。図８（Ｂ）は、メモリ３０をＯＴＰメモリにより構成した場合の、ライフサイクルの遷移と、機密情報格納部３１に保存されているデータを入れ替えるアドレスを説明する図である。
【００５１】
図８の例では、例えば、アクセス許可情報が「０００」の時に機密情報格納部３１のアドレス０ｘ０に保存されたデータは、アクセス許可情報が「００１」に変更された時に、アドレス０ｘ３に配置が入れ替わる。そして、アクセス許可情報が「０１１」に変更された時に、アドレス０ｘ６に配置が入れ替わることを表している。なお、図中のデータＦＦＦＦは消去されたことを表す。
【００５２】
メモリ３０をＯＴＰメモリにより構成した場合、機密情報格納部３１に保存されているデータの書き換えができない。そのため、図８のように、空いているアドレスにデータを移し、元のデータは消去する。
【００５３】
次に、図９を参照し、電子機器１の動作について説明する。図９は、電子機器１のシーケンス図である。
【００５４】
ＣＰＵ１０は、ユーザまたはプログラムからの指示に従い、セキュアアクセスモジュール２０に、メモリ３０の機密情報格納部３１へのアクセスを要求する（ステップＳ１０１）。
【００５５】
セキュアアクセスモジュール２０は、メモリ３０のアクセス許可情報格納部３２からアクセス許可情報を取得し（ステップＳ１０２）、アクセス許可情報に基づいて、機密情報格納部３１へのアクセスの可否を判断する（ステップＳ１０３）。アクセスを許可すると判断した場合、ＣＰＵ１０からメモリ３０の機密情報格納部３１へのアクセスを可能とする（ステップＳ１０４）。
【００５６】
ＣＰＵ１０は、ユーザまたはプログラムからの指示に従い、セキュアアクセスモジュール２０を介して、メモリ３０のアクセス許可情報格納部３２に格納されているアクセス許可情報を書き換える（ステップＳ１０５）。なお、この際、セキュアアクセスモジュール２０のアクセス認証部２１にて、パスワード等を用いて認証を行う構成としてもよい。
【００５７】
セキュアアクセスモジュール２０は、メモリ３０のアクセス許可情報格納部３２からアクセス許可情報を取得し（ステップＳ１０６）、アクセス許可情報が書き換えられたことを検出する（ステップＳ１０７）。そして、書き換えられたアクセス許可情報が、定義された遷移に従って変更されたか判断し（ステップＳ１０８）、定義された遷移に従って変更されたと判断すると、上述した機密情報の配置変換処理を行う（ステップＳ１０９）。
【００５８】
次に、図１０を参照し、セキュアアクセスモジュール２０が、図９のステップＳ１０１で、ＣＰＵ１０から、機密情報格納部３１へのアクセスを要求された際の動作の詳細について説明する。図１０は、機密情報格納部３１へのアクセスを要求された際の、セキュアアクセスモジュール２０の処理のフローチャートである。
【００５９】
セキュアアクセスモジュール２０のアクセス認証部２１は、ＣＰＵ１０から、機密情報格納部３１へのアクセス要求を受信すると（ステップＳ２０１）、アクセス実行部２２を介してメモリ３０のアクセス許可情報格納部３２からアクセス許可情報を取得する（ステップＳ２０２）。そして、アクセス許可情報の値を判断し（ステップＳ２０３）、アクセス許可情報の値が「１１１」である場合、ＣＰＵ１０にアクセスの拒否を通知し（ステップＳ２０４）、処理を終了する。ステップＳ２０３でアクセス許可情報の値が「０００」、「００１」、または「０１１」である場合、ＣＰＵ１０から要求された機密情報格納部３１のアクセス先のアドレスを、データ配置変換テーブル２３１に従って変更する（ステップＳ２０５）。そして、アクセス許可情報の値を判断し（ステップＳ２０６）、アクセス許可情報の値が「０００」または「０１１」である場合、ＣＰＵ１０からメモリ３０の機密情報格納部３１への読み込み及び書き込みを可能とする（ステップＳ２０７）。ステップＳ２０６でアクセス許可情報の値が「００１」である場合、ＣＰＵ１０からメモリ３０の機密情報格納部３１への読み込みのみを可能とする（ステップＳ２０８）。
【００６０】
次に、図１１を参照し、セキュアアクセスモジュール２０が、図９のステップＳ１０５でアクセス許可情報が書き換えられた際の動作の詳細について説明する。図１１は、アクセス許可情報が書き換えられた際の、セキュアアクセスモジュール２０の処理のフローチャートである。
【００６１】
アクセス許可情報格納部３２に格納されているアクセス許可情報が書き換えられると、セキュアアクセスモジュール２０のライフサイクル監視部２３は、アクセス許可情報が書き換えられたことを検出する（ステップＳ３０１）。そして、書き換えられたアクセス許可情報が、定義された遷移に従って変更されたか判断し（ステップＳ３０２）、定義された遷移に従って変更されたと判断すると（ステップＳ３０２でＹＥＳ）、上述した機密情報の配置変換処理を行う（ステップＳ３０３）。定義された遷移に従って変更されていないと判断すると（ステップＳ３０２でＮＯ）、上述した機密情報の保護処理を行う（ステップＳ３０４）。
【００６２】
次に、図１２を参照し、半導体集積回路２を、電子機器１である指紋認証ゲートに搭載した場合を例として、電子機器１の動作を説明する。
【００６３】
図１２は、電子機器１である指紋認証ゲートの動作を説明する図である。
【００６４】
まず、電子機器１に搭載される半導体集積回路２において、アクセス許可情報は「０００」、すなわち、ライフサイクルは「初期状態」に設定されている。
【００６５】
そして、システム開発者等であるユーザＡが、各利用者の指紋データと、入館可能なゲートを識別する情報とを対応付けて、機密情報格納部３１に書き込む。その後、ユーザＡが、アクセス許可情報を「００１」、すなわち、ライフサイクルを「運用状態」に設定する。そして、半導体集積回路２を、電子機器１である指紋認証ゲートに搭載して使用する。
【００６６】
そして、ユーザＢが、例えば、自分が入れないゲートに入るため、もしくは他人の指紋データを入手するために、指紋認証ゲートにパーソナルコンピュータ等を接続して、機密情報格納部３１にアクセスしようとする。その際、セキュアアクセスモジュール２０が、上述した機密情報の保護処理を行うことにより、機密情報を保護する。
【００６７】
また、ユーザＢが、指紋認証ゲートを物理的に破壊する等して、指紋認証ゲートに内蔵されている半導体集積回路２を抜き出し、機密情報格納部３１にアクセスしようとする。その場合、機密情報は、ユーザＡがアクセス許可情報を「００１」に設定した際に、上述した機密情報の配置変換処理により、機密情報格納部３１内にばらばらに配置されている。そのため、機密情報の漏洩を抑制することができる。
【００６８】
＜第２の実施形態＞
第１の実施形態では、データ配置変換テーブル２３１に格納するデータは、予め設定されているものとした。第２の実施形態では、データ配置変換テーブル２３１に格納するデータを、ライフサイクルが遷移した際に、乱数により生成する。それにより、製造段階等では、どのように機密情報の配置が入れ替わるか分からないため、セキュリティが向上する。
【００６９】
図１３は、第２の実施形態に係る電子機器の構成図である。第１の実施形態と比較して、セキュアアクセスモジュールが、乱数発生部２４をさらに有する。
【００７０】
乱数発生部２４は、機密情報格納部３１のアドレス空間の個数に応じて、重複しない乱数を発生させ、ライフサイクル監視部２３に出力する。例えば、機密情報格納部３１のアドレス空間が７個あれば、乱数発生部２４は、０から６の中から、重複しない乱数を発生させる。
【００７１】
第２の実施形態のライフサイクル監視部２３は、ライフサイクルが遷移した際、乱数発生部２４から入力した乱数に基づいて、データ配置変換テーブル２３１に格納するデータを生成する。
【００７２】
図１４は、第２の実施形態のデータ配置変換テーブル２３１に格納するデータの一例を示す図である。
【００７３】
図１４（Ａ）は、ライフサイクルが「初期状態」の時の、データ配置変換テーブル２３１に格納されているデータの一例を示す図である。ライフサイクルが「初期状態」の時、「運用状態」、「上書き状態」のライフサイクルに遷移した際、すなわち、アクセス許可情報が「００１」、「０１１」に変更された際の、入れ替え先のアドレスの情報は未決定となっている。
【００７４】
図１４（Ｂ）は、ライフサイクルが「運用状態」に遷移した時の、データ配置変換テーブル２３１に格納されているデータの一例を示す図である。ライフサイクルが「運用状態」に遷移した際、すなわち、アクセス許可情報が「００１」に変更された際、入れ替え先のアドレスが、乱数に基づいて生成される。なお、データ配置変換テーブル２３１は、上述したように、４バイト単位、２バイト単位、１バイト単位等、任意の単位とし、その単位で配置変換処理を行う構成としてよい。
【００７５】
＜第３の実施形態＞
第３の実施形態では、第１の実施形態乃至第２の実施形態と比較し、単位時間当たりのアクセス数を制限する。それにより、セキュリティが向上する。
【００７６】
図１５は、第３の実施形態に係る電子機器の構成図である。第１の実施形態乃至第２の実施形態と比較して、セキュアアクセスモジュールが、タイマー２５、アクセス数監視部２６をさらに有する。
【００７７】
タイマー２５は、時間を計測し、アクセス数監視部２６に時間を出力する。
【００７８】
アクセス数監視部２６は、各ライフサイクルにおいて、タイマー２５から送られてくる時間と、アクセス実行部２２から送られてくる機密情報格納部３１へのアクセス数を基に、単位時間あたりに何回アクセスがあったかを計測する。
【００７９】
アクセス数監視部２６は、各ライフサイクルにおける単位時間あたりアクセス数の上限値（閾値）を予め記憶しておく、アクセス数制限テーブル２６１を有する。
【００８０】
図１６は、アクセス数制限テーブル２６１の一例を示す図である。アクセス数制限テーブル２６１は、各ライフサイクルに対応するアクセス許可情報毎に、単位時間あたりアクセス数の上限値の設定を記憶する。例えば、「初期状態」（アクセス許可情報が「０００」）の時は機密情報の書き込みがあるため、上限値を大きくし、「運用状態」（アクセス許可情報が「００１」）の時は単位時間あたりのアクセス数が少ないはずであるため、上限値を小さくしてもよい。
【００８１】
アクセス数監視部２６は、単位時間あたりのアクセス数が、ライフサイクル毎の上限値を超えた場合に、不正なアクセスと判断し、機密情報格納部３１へのアクセスを制限（ロック）する等、上述した機密情報の保護処理を行う。
【００８２】
なお、アクセスをロックした後、一定時間を経過すると、ロックを解除する構成としても良い。また、正規のユーザが誤アクセスした場合を想定し、ロックする前にアラートを出力する構成としても良い。
【００８３】
次に、図１７を参照し、第３の実施形態の半導体集積回路２を、電子機器１である個人情報管理サーバに搭載した場合を例として、電子機器１の動作を説明する。
【００８４】
図１７は、第３の実施形態の電子機器１である個人情報管理サーバの動作を説明する図である。
【００８５】
まず、電子機器１に搭載される半導体集積回路２において、アクセス許可情報は「０００」、すなわち、ライフサイクルは「初期状態」に設定されている。
【００８６】
そして、システム開発者等であるユーザＡが、住民の個人情報等の機密情報を機密情報格納部３１に書き込む。その後、ユーザＡが、アクセス許可情報を「００１」、すなわち、ライフサイクルを「運用状態」に設定する。そして、半導体集積回路２を、電子機器１である個人情報管理サーバに搭載して使用する。
【００８７】
この個人情報管理サーバは、例えば役所において住民票を発行する際に使用され、１分に１回程度のアクセス頻度だとする。図１６のように、「運用状態」における単位時間あたりのアクセス数の上限を示す閾値が１分間あたり３回であれば、通常のアクセス頻度ではこの閾値を超えることはない。
【００８８】
外部から不正にアクセスされ、１分間に３回を超える頻度で機密情報格納部３１にアクセスが有った場合、これをアクセス数監視部２６が検出する。その後、上述した機密情報の保護処理を行う。
【００８９】
＜第４の実施形態＞
第４の実施形態では、第１の実施形態乃至第３の実施形態と比較し、所定の時間間隔で、データ配置変換テーブル２３１を更新し、機密情報の配置変換処理を行う。それにより、一時的にデータ配置変換テーブル２３１のデータが盗まれても、所定の時間を経過すると、機密情報格納部３１に格納されるデータの配置が変化するため、機密情報の漏洩を抑制することができる。
【００９０】
図１８は、第４の実施形態に係る電子機器の構成図である。第１の実施形態乃至第３の実施形態と比較して、セキュアアクセスモジュールが、配置変換タイマー２７をさらに有する。
【００９１】
配置変換タイマー２７は、時間を計測し、ライフサイクル監視部２３に時間を出力する。
【００９２】
第４の実施形態のライフサイクル監視部２３は、各ライフサイクルにおける機密情報の配置変換処理を行う時間間隔を予め記憶しておく、配置変換間隔テーブル２３２を有する。
【００９３】
図１９は、配置変換間隔テーブル２３２の一例を示す図である。配置変換間隔テーブル２３２は、各ライフサイクルに対応するアクセス許可情報毎に、機密情報の配置変換処理を行う時間間隔の設定を記憶する。例えば、「初期状態」（アクセス許可情報が「０００」）の時は、デバッグ等を行うため、機密情報の配置変換処理を行わないように設定し、「運用状態」（アクセス許可情報が「００１」）の時は１分間隔で機密情報の配置変換処理を行う設定とする。
【００９４】
第４の実施形態のライフサイクル監視部２３は、図１９の配置変換間隔テーブル２３２に設定されている時間間隔にて、データ配置変換テーブル２３１を更新し、機密情報の配置変換処理を行う。
【００９５】
図２０は、データ配置変換テーブル２３１の更新内容の一例を示す図である。なお、データ配置変換テーブル２３１のデータは、予め記憶されている複数のデータの中から選択したデータにて更新する構成としてもよい。また、乱数発生器等を用いて、更新の度に生成する構成としてもよい。
【００９６】
なお、上述した実施形態における構成は一例であり、用途や目的に応じて様々な構成例があることは言うまでもない。例えば、セキュアアクセスモジュール２０の各機能は、ハードウェアにより構成されてもよく、ソフトウェアにより構成されてもよく、ハードウェアとソフトウェアとを組み合わせて構成されてもよい。
【符号の説明】
【００９７】
１  電子機器
１０  ＣＰＵ（「プロセッサ」の一例）
２  半導体集積回路
２０  セキュアアクセスモジュール
２１  アクセス認証部
２２  アクセス実行部
２３  ライフサイクル監視部（「監視部」の一例）
２３１  データ配置変換テーブル
２３２  配置変換間隔テーブル
２４  乱数発生部
２５  タイマー
２６  アクセス数監視部（「監視部」の一例）
２６１  アクセス数制限テーブル
２７  配置変換タイマー
３０  メモリ
【先行技術文献】
【特許文献】
【００９８】
【特許文献１】特開２０１４−０１６９５８号公報
【図１】
2016218944.tif 000003
【図２】
2016218944.tif 000004
【図３】
2016218944.tif 000005
【図４】
2016218944.tif 000006
【図５】
2016218944.tif 000007
【図６】
2016218944.tif 000008
【図７】
2016218944.tif 000009
【図８】
2016218944.tif 000010
【図９】
2016218944.tif 000011
【図１０】
2016218944.tif 000012
【図１１】
2016218944.tif 000013
【図１２】
2016218944.tif 000014
【図１３】
2016218944.tif 000015
【図１４】
2016218944.tif 000016
【図１５】
2016218944.tif 000017
【図１６】
2016218944.tif 000018
【図１７】
2016218944.tif 000019
【図１８】
2016218944.tif 000020
【図１９】
2016218944.tif 000021
【図２０】
2016218944.tif 000022