(57)【要約】【課題】接続されるＬＳＩのデバイス固有鍵で暗号化された秘密データを格納する不揮発性メモリの管理に要する負荷を軽減する。【解決手段】デバイス固有鍵と共通鍵とを保持し、そのデバイス固有鍵を用いた暗号化及び復号と、共通鍵を用いた復号とを実行可能な暗号演算回路と、秘密データを使用する回路の一例であるプロセッサと、外付けされる不揮発性メモリとのインターフェースとを有するＬＳＩであって、以下のように構成される。ＬＳＩと不揮発性メモリが接続されたときに、暗号演算回路は、共通鍵を用いて暗号化されているデータを、その共通鍵を用いて復号した後に、デバイス固有鍵を用いて暗号化して、不揮発性メモリに書き込む活性化処理を行なう。活性化処理の後、不揮発性メモリから暗号化されたデータを読出し、暗号演算回路は、デバイス固有鍵を用いて復号してプロセッサに供給する。【選択図】図１
2017108293.tif 000002
【特許請求の範囲】
【請求項１】
暗号演算回路と、秘密データを使用する回路と、外付けされる不揮発性メモリとのインターフェース回路とを有する半導体集積回路装置であって、
前記暗号演算回路は、第１暗号鍵を用いた復号と、前記半導体集積回路装置に固有のデバイス固有鍵である第２暗号鍵を用いた暗号化及び復号とを実行可能であり、
前記暗号演算回路は、前記第１暗号鍵または前記第１暗号鍵と対をなす暗号鍵を用いて暗号化されている第１データを、前記第１暗号鍵を用いて復号した後に、前記第２暗号鍵を用いて暗号化して第２データとして、前記インターフェースを介して前記不揮発性メモリに書き込む活性化処理を実行可能であり、
前記暗号演算回路は、前記第２データを、前記インターフェース回路を介して読出し、前記第２暗号鍵または前記第２暗号鍵と対をなす復号鍵を用いて復号して前記秘密データを使用する回路に供給可能である、
半導体集積回路装置。
【請求項２】
請求項１において、前記第１暗号鍵と前記第２暗号鍵は、それぞれ共通鍵暗号方式による共通鍵であり、
前記半導体集積回路装置は、前記第１暗号鍵と前記第２暗号鍵とを保持し、
前記暗号演算回路は、前記第１暗号鍵を用いて暗号化されている第１データを、前記第１暗号鍵を用いて復号した後に、前記第２暗号鍵を用いて暗号化して第２データとし、
前記暗号演算回路は、前記不揮発性メモリから読み出された前記第２データを、前記第２暗号鍵を用いて復号する、
半導体集積回路装置。
【請求項３】
請求項２において、前記第１データは前記不揮発性メモリに格納されており、
前記暗号演算回路は、前記第１データを、前記インターフェースを介して前記不揮発性メモリから読み出す、
半導体集積回路装置。
【請求項４】
請求項３において、
前記不揮発性メモリ上の前記第１データは、読み出された後に消去される、
半導体集積回路装置。
【請求項５】
請求項１において、
前記半導体集積回路装置は、前記第２暗号鍵と第３暗号鍵とを保持し、
前記第１暗号鍵と前記第２暗号鍵は、それぞれ共通鍵暗号方式による共通鍵であり、
前記暗号演算回路は、さらに前記第３暗号鍵を用いた復号を実行可能であり、
前記暗号演算回路は、前記第３暗号鍵で暗号化されている前記第１暗号鍵を、前記第３暗号鍵を用いて復号した後に、前記第１暗号鍵を用いて暗号化されている第１データを、復号された前記第１暗号鍵を用いて復号した後に、前記第２暗号鍵を用いて暗号化して第２データとし、
前記暗号演算回路は、前記不揮発性メモリから読み出された前記第２データを、前記第２暗号鍵を用いて復号する、
半導体集積回路装置。
【請求項６】
請求項５において、前記第１暗号鍵を用いて暗号化されている前記第１データと前記第３暗号鍵で暗号化されている前記第１暗号鍵は、前記不揮発性メモリに格納されており、
暗号化されている前記第１暗号鍵と暗号化されている前記第１データとを、前記インターフェースを介して前記不揮発性メモリから読み出す、
半導体集積回路装置。
【請求項７】
請求項６において、
前記不揮発性メモリ上の前記第１データと前記第１暗号鍵は、読み出された後に消去される、
半導体集積回路装置。
【請求項８】
請求項１において、
前記インターフェース回路には、活性化プログラムを格納するプログラムメモリをさらに接続可能であり、
前記半導体集積回路装置は、前記プログラムメモリをアクセスして前記活性化プログラムを実行することによって、前記活性化処理を実行する、
半導体集積回路装置。
【請求項９】
請求項１において、
前記半導体集積回路装置は、活性化プログラムを格納するオンチップメモリをさら備え、前記オンチップメモリをアクセスして前記活性化プログラムを実行することによって、前記活性化処理を実行する、
半導体集積回路装置。
【請求項１０】
暗号演算回路と秘密データを使用する回路とを有する半導体集積回路装置と、前記半導体集積回路装置と電気的に接続される不揮発性メモリと備え、
前記不揮発性メモリは、第１暗号鍵を用いて暗号化されている第１データを保持し、
前記半導体集積回路装置は、前記暗号演算回路によって、前記第１暗号鍵または前記第１暗号鍵と対をなす復号鍵を用いて復号した後に、前記半導体集積回路装置に固有のデバイス固有鍵である第２暗号鍵を用いて暗号化して第２データとして、前記不揮発性メモリに書き込む活性化処理を実行可能であり、
前記活性化処理後、前記半導体集積回路装置は、前記第２データを前記不揮発性メモリから読出し、前記暗号演算回路によって、前記第２暗号鍵または前記第２暗号鍵と対をなす復号鍵を用いて復号して、前記秘密データを使用する回路に供給可能である、
データ処理装置。
【請求項１１】
請求項１０において、前記第１暗号鍵と前記第２暗号鍵は、それぞれ共通鍵暗号方式による共通鍵であり、
前記半導体集積回路装置は、前記第１暗号鍵と前記第２暗号鍵とを保持し、
前記暗号演算回路は、前記第１暗号鍵を用いて暗号化されている第１データを、前記第１暗号鍵を用いて復号した後に、前記第２暗号鍵を用いて暗号化して第２データとし、
前記暗号演算回路は、前記不揮発性メモリから読み出された前記第２データを、前記第２暗号鍵を用いて復号する、
データ処理装置。
【請求項１２】
請求項１１において、
前記半導体集積回路装置は、前記不揮発性メモリ上の前記第１データを読み出された後に消去する、
データ処理装置。
【請求項１３】
請求項１０において、
前記不揮発性メモリは、第３暗号鍵で暗号化されている第１暗号鍵をさらに保持し、
前記第１暗号鍵と前記第２暗号鍵と前記第３暗号鍵は、それぞれ共通鍵暗号方式による共通鍵であり、
前記半導体集積回路装置は、前記第２暗号鍵と前記第３暗号鍵とを保持し、
前記活性化処理において、前記半導体集積回路装置は、暗号化されている前記第１暗号鍵を前記不揮発性メモリから読み出して前記暗号演算回路に前記第３暗号鍵を用いて復号させ、暗号化されている第１データを読み出して、前記復号された前記第１暗号鍵を用いて前記暗号演算回路に復号させた後に、前記暗号演算回路に前記第２暗号鍵を用いて暗号化させて第２データとし、
前記活性化処理後、前記半導体集積回路装置は、前記不揮発性メモリから読み出した前記第２データを、前記暗号演算回路によって前記第２暗号鍵を用いて復号させる、
データ処理装置。
【請求項１４】
請求項１３において、
前記半導体集積回路装置は、前記不揮発性メモリ上の前記第１データと前記第１暗号鍵を、読み出した後に消去する、
データ処理装置。
【請求項１５】
請求項１０において、
前記半導体集積回路装置には、活性化プログラムを格納するプログラムメモリがさらに接続され、
前記半導体集積回路装置は、前記プログラムメモリをアクセスして前記活性化プログラムを実行することによって、前記活性化処理を実行する、
データ処理装置。
【請求項１６】
請求項１０において、
前記半導体集積回路装置は、活性化プログラムを格納するオンチップメモリをさら備え、前記オンチップメモリをアクセスして前記活性化プログラムを実行することによって、前記活性化処理を実行する、
データ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置およびデータ処理装置に関し、特に、使用するデータが暗号化され格納された不揮発性メモリが接続される半導体集積回路装置およびそれらを備えるデータ処理装置に好適に利用できるものである。
【背景技術】
【０００２】
マイクロコントローラなどのＬＳＩ（Large Scale Integrated circuit）で利用されるデータ（プログラムコードを含む）の秘匿性を担保するためには、そのデータを暗号化してそのＬＳＩに接続される不揮発性メモリに格納しておき、ＬＳＩは暗号化されたデータを読み出して復号してから利用する。
【０００３】
特許文献１には、予め暗号化されたプログラムを読み込み、それを復号して実行する、プログラム処理系を備えるシステムが開示されている。このシステムは、暗号化を行う送信側と、復号してプログラム処理を行なう受信側とを備える。送信側では第１の暗号鍵セットのうちの暗号鍵を使ってプログラムを暗号化し、第２の暗号鍵セットの暗号鍵を使って第１の暗号鍵セットの復号鍵を暗号化して受信側に供給する。受信側は第２の暗号鍵セットの復号鍵を使って第１の暗号鍵セットの復号鍵を復号し、復号された第１の暗号鍵セットの復号鍵を使って暗号化されたプログラムを復号して実行する。これにより、プログラムの秘匿性は担保される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２７５６９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１について本発明者が検討した結果、以下のような新たな課題があることがわかった。
【０００６】
ＬＳＩで利用されるデータの秘匿性を担保するためには、当該ＬＳＩに固有の暗号鍵、所謂デバイス固有鍵を使用すると、極めて高い安全性を担保することができる。デバイス固有鍵は、そのＬＳＩが出荷されるときに外部から書き込まれるか、或いは、内部で生成されて保持される。ＬＳＩで利用されるデータを外付けされる不揮発性メモリに格納する場合には、そのデータをそのＬＳＩに固有のデバイス固有鍵を使って暗号化することにより、暗号化されたデータを他のデバイスでは復号することができないので、データの秘匿性を担保することができる。
【０００７】
そのためには、ＬＳＩでの復号処理に使われるデバイス固有鍵と同じ共通鍵または対応する暗号鍵（公開鍵）を使って、不揮発性メモリに書き込むデータを暗号化する必要がある。即ち、不揮発性メモリに書き込むデータを、接続されるＬＳＩに固有のデバイス固有鍵で復号することができるように暗号化するためには、接続されるＬＳＩが個体として特定されている必要がある。したがって、１個のＬＳＩに固有のデバイス固有鍵を使用するＬＳＩと、そのＬＳＩで使用するために当該ＬＳＩに固有のデバイス固有鍵で暗号化されたデータを格納された不揮発性メモリとは、暗号化されたデータが生成されてから、互いに対応するＬＳＩと不揮発性メモリとが実装されて接続されるまでの間、一対で管理される必要がある。
【０００８】
ところが、データを暗号化し不揮発性メモリへの書込みを行う業者と、ＬＳＩと不揮発性メモリを１つの装置に実装する業者が、ＬＳＩの製造業者と異なる場合が多い。そのような場合には、デバイス固有鍵の管理と不揮発性メモリの管理が極めて煩雑となり、管理負担が著しく重くなるという問題があることがわかった。
【０００９】
このような課題を解決するための手段を以下に説明するが、その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
一実施の形態によれば、下記の通りである。
【００１１】
すなわち、暗号演算回路と、秘密データを使用する回路と、外付けされる不揮発性メモリとのインターフェース回路とを有する半導体集積回路装置（ＬＳＩ）であって、以下のように構成される。
【００１２】
暗号演算回路は、第１暗号鍵を用いた復号と、当該半導体集積回路装置自身に固有のデバイス固有鍵である第２暗号鍵を用いた暗号化及び復号と、を実行可能である。
【００１３】
ＬＳＩと不揮発性メモリが接続されたときに、暗号演算回路は、第１暗号鍵またはそれと対をなす暗号鍵を用いて暗号化されている秘密データを、その第１暗号鍵を用いて復号した後に、デバイス固有鍵である第２暗号鍵を用いて暗号化して、インターフェースを介して不揮発性メモリに書き込む、活性化処理を行なう。
【００１４】
活性化処理の後、インターフェース回路を介して不揮発性メモリから暗号化された秘密データを読出し、暗号演算回路は、デバイス固有鍵である第２暗号鍵またはそれと対をなす復号鍵を用いて復号して秘密データを使用する回路に供給する。
【発明の効果】
【００１５】
前記一実施の形態によって得られる効果を簡単に説明すれば下記のとおりである。
【００１６】
すなわち、半導体集積回路装置（ＬＳＩ）に固有のデバイス固有鍵（第２暗号鍵）で暗号化された秘密データを、その秘密データが格納される不揮発性メモリがＬＳＩに接続された後に書き込むことができ、当該不揮発性メモリの管理に要する負荷を軽減することができる。
【図面の簡単な説明】
【００１７】
【図１】図１は、代表的な一実施の形態（実施形態１）に係るＬＳＩ及びそのＬＳＩと不揮発性メモリを備えるデータ処理装置の構成例を示すブロック図である。
【図２】図２は、実施形態２に係るＬＳＩ及びそのＬＳＩと不揮発性メモリを備えるデータ処理装置の構成例を示すブロック図である。
【図３】図３は、実施形態２に係るデータ処理装置における活性化処理（セキュリティサイト側）の一例を示すフローチャートである。
【図４】図４は、実施形態２に係るデータ処理装置における活性化処理（組み立て工場側）の一例を示すフローチャートである。
【図５】図５は、実施形態２に係るデータ処理装置に顧客秘密データをインストールする処理全体の概要を模式的に示す説明図である。
【図６】図６は、実施形態２に係るデータ処理装置に顧客秘密データをインストールする処理全体の中の顧客サーバー側処理の一例を示すフローチャートである。
【図７】図７は、実施形態２に係るデータ処理装置に顧客秘密データをインストールする処理全体の中のセキュリティサイト側処理の一例を示すフローチャートである。
【図８】図８は、実施形態２に係るデータ処理装置に顧客秘密データをインストールする処理全体の中の書き込み処理の一例を示すフローチャートである。
【図９】図９は、実施形態２に係るデータ処理装置に顧客秘密データをインストールする処理全体の中の活性化処理の一例を示すフローチャートである。
【図１０】図１０は、実施形態２に係るデータ処理装置のハードウェアの一構成例を示すブロック図である。
【図１１】図１１は、実施形態２に係るデータ処理装置のハードウェアの別の構成例を示すブロック図である。
【図１２】図１２は、実施形態３に係るデータ処理装置に顧客秘密データをインストールする処理全体の概要を模式的に示す説明図である。
【図１３】図１３は、実施形態３に係るＬＳＩ及びそのＬＳＩと不揮発性メモリを備えるデータ処理装置の構成例を示すブロック図である。
【図１４】図１４は、実施形態３に係るデータ処理装置に顧客秘密データをインストールする処理全体の中のセキュリティサイト側処理の一例を示すフローチャートである。
【図１５】図１５は、実施形態３に係るデータ処理装置に顧客秘密データをインストールする処理全体の中の書き込み処理の一例を示すフローチャートである。
【図１６】図１６は、実施形態３に係るデータ処理装置に顧客秘密データをインストールする処理全体の中の活性化処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１８】
実施の形態について詳述する。なお、発明を実施するための形態を説明するための全図において、同一の機能を有する要素には同一の符号を付して、その繰り返しの説明を省略する。
【００１９】
〔実施形態１〕
図１は、代表的な一実施の形態に係るＬＳＩ１及びそのＬＳＩ１と不揮発性メモリ２０を備えるデータ処理装置１００の構成例を示すブロック図である。
【００２０】
データ処理装置１００は、ＬＳＩ１と、ＬＳＩ１と電気的に接続される不揮発性メモリ２０と備える。ＬＳＩ１は、暗号演算回路の一例である暗号エンジン１０と、秘密データを使用する回路の一例であるＣＰＵ（Central Processing Unit）３０と、外付けされる不揮発性メモリ２０とのインターフェース回路３１とを有する。暗号エンジン１０は、第１暗号鍵１５を用いた復号演算処理１２と、ＬＳＩ１に固有のデバイス固有鍵である第２暗号鍵１６を用いた暗号化演算処理１４及び復号演算処理１１とを実行可能である。
【００２１】
活性化処理において、入力される第１暗号鍵１５を用いて暗号化された秘密データ２２に対して、暗号エンジン１０は第１暗号鍵１５を用いて復号演算処理１２を行って、内部に平文の秘密データ２２を復元した後、デバイス固有鍵１６を用いて暗号化演算処理１４を行って、インターフェース回路３１を介して不揮発性メモリ２０に書き込む。
【００２２】
その後の通常処理では、ＬＳＩ１は、デバイス固有鍵１６を用いて暗号化された秘密データ２１を不揮発性メモリ２０からインターフェース回路３１を介して読み込み、暗号エンジン１０によってデバイス固有鍵１６を使った復号演算処理１１を行ってＣＰＵ３０に供給する。
【００２３】
これにより、半導体集積回路装置（ＬＳＩ）１に固有のデバイス固有鍵１６で暗号化された秘密データ２１を、その秘密データが格納される不揮発性メモリ２０がＬＳＩ１に接続された後に書き込む、活性化処理を行なうことができ、当該不揮発性メモリ２０の管理に要する負荷を軽減することができる。また、不揮発性メモリ２０への秘密データを暗号化するために、デバイス固有鍵１６を読み出す必要がなく、デバイス固有鍵１６は一切読み出されることがないような構成を採用することができるので、セキュリティが著しく強化される。
【００２４】
デバイス固有鍵１６は、ＬＳＩ１に固有である。例えば、ＬＳＩ１の出荷段階で外部から入力される種データに基づいて生成され、或いは、ＬＳＩ１の製造ばらつきを反映する物理的パラメータから生成される。後者の場合、例えば、物理的に複製不可能な関数（ＰＵＦ：Physically Unclonable Function）を利用して生成されてもよい。デバイス固有鍵１６はＬＳＩ１に固有であるが故に、セキュリティ性能が極めて高い。特に、ＰＵＦを利用して物理的に複製不可能とすることにより、ＬＳＩ１自体を複製された場合であっても、暗号化された顧客秘密データを復号することができないように構成することができる。
【００２５】
デバイス固有鍵１６によってこのような高いセキュリティ性能を提供するためには、そのデバイス固有鍵１６が第三者に知られないように、厳格に管理する必要がある。ＬＳＩ１の外部に読み出さないことが最も高いセキュリティ状態となる。しかしながら、秘密のデータを不揮発性メモリに書き込むに当たり、そのデバイス固有鍵１６で暗号化するためには、その値を知っている必要がある。また、デバイス固有鍵１６で暗号化された秘密データが書込まれた不揮発性メモリ２０は、そのデバイス固有鍵１６を持つＬＳＩ１に接続されなければならないので、個体単位で１：１に対応付けされて管理される必要がある。通常は型名のＬＳＩに接続される不揮発性メモリは型名が規定されるに留まり、個体ごとの１：１に対応付けられた管理は必要がない。例えば故障した個体は良品の個体によって代替される。したがって、デバイス固有鍵１６を使って暗号化された秘密データが書込まれた後の不揮発性メモリ２０は、接続されるＬＳＩ１が個体で対応付けられてしまうので、個体レベルでの１：１の管理が必要とされ、管理負担が極めて重くなる。
【００２６】
本願の代表的な実施の形態においては、外付けされる不揮発性メモリ２０に書き込まれるデータを暗号化するのは、その不揮発性メモリ２０に接続されるＬＳＩ１自身であるから、当然にデバイス固有鍵１６の値を知っており、暗号化することができる。さらにＬＳＩ１の外部で暗号化するわけではないので、デバイス固有鍵１６を外部に読み出す必要がない。また、ＬＳＩ１に接続される不揮発性メモリ２０は、組立てられた段階までは、デバイス固有鍵１６を使って暗号化されたデータを格納しているわけではないため、上述のような個体レベルでの１：１の管理は不要である。
【００２７】
デバイス固有鍵１６を使って暗号化される前のデータの、ＬＳＩ１への入力方法は任意である。何らかの暗号鍵（図１の第１暗号鍵）で暗号化された状態で入力され、ＬＳＩ１の内部で復号されるのが望ましい。ＬＳＩ１と不揮発性メモリ２０を接続する組み立て工程が、十分に高いセキュリティで管理される工場等である場合には、暗号化せずに平文で入力され、ＬＳＩ１内での復号演算処理１２が省略されてもよい。一方、図１に示すように、第１暗号鍵で暗号化された顧客秘密データ２２が入力され、ＬＳＩ１の内部で第１暗号鍵１５による復号演算処理１５を行うように構成することにより、顧客秘密データはＬＳＩ１の外部には読み出されることがないため、安全性が高い。
【００２８】
暗号化と復号のあるアルゴリズムは任意であり、例えば、共通鍵暗号方式でも公開鍵暗号方式でもよい。公開鍵暗号方式のように、暗号化と復号に使用する鍵が異なる場合には、一対であればよい。即ち、暗号化処理１４はデバイス固有鍵１６の公開鍵で行い、復号演算処理１１は対応する秘密鍵で行えば良い。図１は同じ鍵が使用されるように図示されているが、上述のように変更されてもよい。なお、図１において、暗号エンジン内には、暗号化処理１４と復号演算処理１１、１２がブロックとして図示されているが、実際のハードウェアは、それらの処理をプログラマブルに実行可能なプロセッサ形式で実装されても良い。図１には、復号された顧客秘密データがＣＰＵ３０に入力される例が示されているが、他の機能モジュールに変更されても良い。ＬＳＩ１は、顧客秘密データを利用する任意の半導体集積回路装置であり、例えばマイクロコントローラ（或いはマイクロプロセッサ、どちらも「マイコン」と略する場合がある）、システムＬＳＩ（ＳＯＣ：System On-a-Chip）である。また、信号の流れを示す矢印は、１ビットまたは複数ビットのディジタル信号配線によって実現されるが、ベクトル表示は省略する。本願で参照する他の図についても同様である。
【００２９】
〔実施形態２〕
本実施形態２は、第１暗号鍵として共通鍵が採用され、当該共通鍵をＬＳＩ１内に保持するとともに、同じ共通鍵を使って暗号化された顧客秘密データ２２が、組立て工程でＬＳＩ１と接続される前の不揮発性メモリ２０に予め書き込まれる、実施の形態である。第１暗号鍵をインストール鍵と呼ぶ。
【００３０】
図２は、実施形態２に係るＬＳＩ１及びそのＬＳＩ１と不揮発性メモリ２０を備えるデータ処理装置１００の構成例を示すブロック図である。
【００３１】
データ処理装置１００は、ＬＳＩ１の一例であるマイクロコントローラ１と、マイクロコントローラ１と電気的に接続される不揮発性メモリ２０の一例であるフラッシュメモリ２０と備える。マイクロコントローラ１は、暗号エンジン１０とＣＰＵ３０とインターフェース回路３１とを有する。暗号エンジン１０は、インストール鍵１５とデバイス固有鍵１６とを保持し、インストール鍵１５を用いた復号演算処理１２と、デバイス固有鍵１６を用いた暗号化演算処理１４及び復号演算処理１１とを実行可能である。暗号エンジン１０は、例えば、暗号演算処理に特有の特殊な演算を実行可能な演算回路と、演算の中間データを一時的に保持するレジスタと、全体の処理手順を制御するシーケンスコントローラとを備えて構成することができ、当該シーケンスコントローラに与える処理のシーケンスは、プログラマブルとすることができる。即ち、１つの暗号エンジン１０には、インストール鍵１５を用いた復号演算処理１２を実行するシーケンスプログラムと、デバイス固有鍵１６を用いた暗号化演算処理１４を実行するシーケンスプログラムと、デバイス固有鍵１６を用いた復号演算処理１１を実行するシーケンスプログラムとを、随時選択可能な形で保持しておくことができる。
【００３２】
顧客秘密データ５１は、顧客秘密データ管理装置５０において、上記インストール鍵１５と同じ共通鍵（または対応する公開鍵）であるインストール鍵５４を使って暗号化処理５２を施され、インストール鍵で暗号化された顧客秘密データ２２が生成される。インストール鍵で暗号化された顧客秘密データ２２は、フラッシュメモリ２０に書き込まれる。顧客秘密データ２２が書き込まれたフラッシュメモリ２０とマイクロコントローラ１は、組み立て工程において、例えばデータ処理装置１００に搭載されるプリント基板上に実装されることによって、電気的に接続される。その後、活性化処理が行われる。
【００３３】
活性化処理において、インストール鍵１５と同じ共通鍵であるインストール鍵５４を使って暗号化された顧客秘密データ２２を、フラッシュメモリ２０から読み出し、インターフェース回路３１を介して暗号エンジン１０に読み込む。暗号エンジン１０は、読み込んだ顧客秘密データ２２に対して、内部に保持するインストール鍵１５を使った復号演算処理１２を施して、平文の顧客秘密データに戻し、それに対して、同じく内部に保持するデバイス固有鍵１６を使った暗号化演算処理１４を施して、インターフェース回路３１を介してフラッシュメモリ２０上に、デバイス固有鍵で暗号化された顧客秘密データ２１として書き戻す。この活性化処理は、例えばデータ処理装置１００の製造工程のうち、マイクロコントローラ１とフラッシュメモリ２０の組み立て工程において、マイクロコントローラ１とフラッシュメモリ２０が電気的に接続された後に実施される。
【００３４】
その後の通常動作では、マイクロコントローラ１は、インターフェース回路３１を介してフラッシュメモリ２０から顧客秘密データ２１を読み込み、暗号エンジンン１０においてデバイス固有鍵１６を使った復号演算処理１１を施した後に、ＣＰＵ３０に供給する。
【００３５】
これにより、マイクロコントローラ１の個体に固有のデバイス固有鍵１６で暗号化された秘密データ２１を、その秘密データが格納されるフラッシュメモリ２０がマイクロコントローラ１に接続された後に書き込む、活性化処理を行なうことができ、当該フラッシュメモリ２０の管理に要する負荷を軽減することができる。また、フラッシュメモリ２０への秘密データを暗号化するために、デバイス固有鍵１６を読み出す必要がなく、デバイス固有鍵１６は一切読み出されることがないような構成を採用することができるので、セキュリティが著しく強化される。
【００３６】
データ処理装置１００の動作についてさらに詳しく説明する。
【００３７】
図３と図４は、本実施形態２に係るデータ処理装置における活性化処理の、セキュリティサイト側と組み立て工場側での一例をそれぞれ示すフローチャートである。
【００３８】
図３に示される、セキュリティサイト側の顧客秘密データ管理装置５０では、顧客から暗号化された状態で送られてくる顧客秘密データを復号化する（Ｓ０１）。次に、復号された顧客秘密データをインストール鍵（共通鍵）５４で暗号化する（Ｓ０２）。暗号化した顧客秘密データを外付けのフラッシュメモリ２０に書き込み（Ｓ０３）、組み立て工場に配送する（Ｓ０４）。
【００３９】
図４に示される、組み立て工場側では、配送されてきたフラッシュメモリ２０とマイクロコントローラ１を接続する、組み立て工程を行う（Ｓ０５）。組み立てが完了した後に電源を供給して、インストール鍵（共通鍵）で暗号化された顧客秘密データ２２をマイクロコントローラ１に読み出し（Ｓ０６）、読み出した顧客秘密データ２２をマイクロコントローラ１が内部に保持するインストール鍵（共通鍵）１５を使って復号化する（Ｓ０７）。マイクロコントローラ１は、復号化によって平文に戻った顧客秘密データを、自身に固有のデバイス固有鍵１５を使って暗号化し（Ｓ０８）、デバイス固有鍵１５で暗号化された顧客秘密データ２１をフラッシュメモリ２０に書き込む（Ｓ０９）。
【００４０】
このように、インストール鍵で暗号化された顧客秘密データ２２を、フラッシュメモリ２０に書き込んで、データ処理装置１００の製造工程の１つである組立て工程に配送することにより、配送過程における顧客秘密データを暗号化された状態にして、保護することができる。さらに、活性化処理においては通常動作でも使用されるインターフェース回路３１を介して顧客秘密データ２２がマイクロコントローラ１に読み込まれ、同じ、インターフェース回路３１を介してフラッシュメモリ２０に書き戻されるため、活性化処理にのみ使用するようなインターフェースをマイクロコントローラ１に追加する必要がない。
【００４１】
なお、特に制限されるものではないが、インストール鍵１５とデバイス固有鍵１６をそれぞれ共通鍵暗号方式の共通鍵とすることにより、暗号演算回路１０による暗号化と復号の演算負荷が抑えられる。
【００４２】
図５は、データ処理装置１００に顧客秘密データをインストールして活性化する処理全体の概要を模式的に示す説明図である。
【００４３】
顧客サーバー６１と、例えばマイクロコントローラ１を製造・販売する半導体メーカが管理するセキュリティサイト６０と、データ処理装置１００の工場７０とが存在するものとして説明する。セキュリティサイト６０は、顧客によって管理され、或いは、顧客または半導体メーカから委託された管理者によって管理されても良いが、ファイアウォールなどによってデータが漏洩することなく秘密の状態に守られているサイトをいう。顧客秘密データは、暗号化された状態でＣＤ（Compact Disc）等の記憶媒体６２に格納されて、顧客サーバー６１からセキュリティサイト６０に配送される。セキュリティサイト６０ではデータサーバー６３に送られてきた顧客秘密データを記憶して管理し、データ処理装置１００へのインストールが要求されると、その顧客秘密データを活性化前顧客秘密データ生成サーバー６５へ送る。このとき顧客秘密データは記憶媒体６４に保持された状態で伝送されるが、セキュリティサイト内であるから、暗号化等による保護は必ずしも必要がない。活性化前顧客秘密データ生成サーバー６５では、インストール鍵５４を使って暗号化された後、記憶媒体６６に保持された状態でデータ処理装置１００の工場７０へ配送される。
【００４４】
データ処理装置１００の工場７０では、インストール鍵を使って暗号化された顧客秘密データ２２を、フラッシュメモリ２０に書き込み、マイクロコントローラ１と接続する組み立て工程を行う。マイクロコントローラ１は、インストール鍵１５とデバイス固有鍵１６とを有する暗号エンジン１０を備えており、上述したように活性化処理を終えた後には、フラッシュメモリ２０上のインストール鍵で暗号化された顧客秘密データ２２を消去してもよい。
【００４５】
これにより、フラッシュメモリ２０の記憶領域が解放されて利用可能となり、合せて、セキュリティが強化される。顧客秘密データ管理装置５０側でも管理されている共通鍵であるインストール鍵で暗号化された顧客秘密データ２２は、外部に知られていないデバイス固有鍵１６で暗号化された顧客秘密データ２１と比較して安全性が劣るところ、組立て後の不揮発性メモリに格納されているのが、安全性の高い顧客秘密データ２１のみとなるからである。
【００４６】
なお、暗号化された顧客秘密データ２２のフラッシュメモリ２０への書き込みは、図示される例の他、セキュリティサイト６０で実施され、或いは、他のサイト、例えば不揮発性メモリの製造工場で実施されても良い。
【００４７】
また、記録媒体６２、６４、６６は、上で例示したＣＤの他、ＤＶＤ（Digital Versatile Disc；登録商標）、ブルーレイディスク（Blue-Ray Disc；登録商標）、ＵＳＢ（Universal Serial Bus）メモリ等の半導体メモリであってもよい。また、これらの有体物に限られず、インターネットなどのネットワーク上のパケットを含む、有線／無線を問わない通信媒体などの無体物であってもよい。
【００４８】
顧客秘密データは、例えば顧客１人１人の個人情報などの個別のデータであってもよい。その場合には、複数の顧客の秘密データは束の状態で供給され、１単位ごとにインストールされることとなる。顧客の秘密データは、アプリケーションで使用される暗号や署名における暗号鍵や証明書の鍵データであることが多いため、顧客秘密データの束は「鍵束」と呼ばれる場合がある。なお、この鍵束は、それを守るための暗号化処理に用いる、インストール鍵、デバイス固有鍵、後述の一時鍵などの暗号鍵とは区別される。
【００４９】
図６〜図９は、本実施形態２に係るデータ処理装置に顧客秘密データ束（鍵束）をインストールする処理全体の流れの一例を示すフローチャートである。図６には顧客サーバー側での処理、図７にはセキュリティサイト側での処理、図８には書き込み処理、図９には活性化処理が、それぞれ例示されている。
【００５０】
顧客サーバー側では、図６に示すように、顧客秘密データを作成し（Ｓ１１）、暗号化して（Ｓ１２）、セキュリティサイトへ配送する（Ｓ１３）。
【００５１】
セキュリティサイトでは、図７に示すように、顧客秘密データを復号化し（Ｓ１４）、１単位の顧客秘密データをインストール鍵（共通鍵）で暗号化する（Ｓ１５）。顧客秘密データが必要数分暗号化されるまでこれを繰り返す（Ｓ１５，Ｓ１６）ことによって暗号化された顧客秘密データの束が生成される。暗号化された顧客秘密データの束は、ＣＤ等のメディア（記憶媒体）に書き込まれ（Ｓ１７）、外付けのフラッシュメモリの組み立て工場に向けて配送される（Ｓ１８）。
【００５２】
組み立て工場での書き込み処理では、図８に示すように、暗号化した顧客秘密データを１単位ごとにフラッシュメモリ２０に書き込み（Ｓ１９）、フラッシュメモリ２０とマイクロコントローラ１を接続する組み立て工程を行う（Ｓ２０）。
【００５３】
組み立て工場での活性化処理では、図９に示すように、インストール鍵（共通鍵）で暗号化された顧客秘密データ２２をフラッシュメモリ２０から読み出し（Ｓ２１）、内部に保持するインストール鍵（共通鍵）１５で復号化する（Ｓ２２）。復号されて平文となった顧客秘密データを、デバイス固有鍵１６で暗号化し（Ｓ２３）、暗号化された顧客秘密データをフラッシュメモリ２０に書き込む（Ｓ２４）。
【００５４】
ＬＳＩ１は、上で例示したマイクロコントローラ１のように、プログラムを実行することができるプロセッサであって、外部に接続されるフラッシュメモリ２０に対する書込みを行うためのインターフェース回路３１を備えるとよい。
【００５５】
図１０と図１１は、データ処理装置１００のハードウェアの一構成例と別の構成例をそれぞれ示すブロック図である。
【００５６】
図１０と図１１に示されるデータ処理装置１００はどちらも、マイクロコントローラ１とデータフラッシュメモリ２０とコードフラッシュメモリ４０とが、マイクロコントローラ１が有するフラッシュメモリインターフェース３１に接続される外部バス４３に接続されている。
【００５７】
図１０に例示されるマイクロコントローラ１は、ＣＰＵ３０、暗号エンジン１０、インストール鍵（共通鍵）１５、デバイス固有鍵１６、フラッシュメモリインターフェース３１、乱数発生器３２、タイマ３３、ＲＡＭ３４、及び、周辺モジュール３９を有し、主な機能ブロックは内部バス３６を介してＣＰＵ３０に電気的に接続されている。インストール鍵（共通鍵）１５とデバイス固有鍵１６は、暗号エンジン１０に直接接続され、ＣＰＵ３０を始めとして、暗号エンジン１０以外の機能モジュールからアクセスすることができないように構成されることによって、耐タンパ性が担保されている。インストール鍵（共通鍵）１５とデバイス固有鍵１６は、暗号エンジン１０に内蔵されていても良い。
【００５８】
データフラッシュメモリ２０には、活性化処理前にはインストール鍵で暗号化された顧客データ２２が格納され、活性化処理の後にはデバイス固有鍵１６で暗号化された顧客秘密データ２１が格納される。コードフラッシュメモリ４０には、活性化プログラム４１と他の一般のプログラム４２が格納されている。
【００５９】
活性化処理を実行するために、ＣＰＵ３０は、フラッシュメモリインターフェース３１を介してコードフラッシュメモリ４０にアクセスして活性化プログラム４１を実行する。活性化プログラム４１を実行することによって、データフラッシュメモリ２０からインストール鍵で暗号化された秘密データ２２を読出し、上述の各処理を、主に暗号エンジン１０に実行させることによって、顧客秘密データをデバイス固有鍵１６で暗号化し、ＣＰＵ３０からフラッシュメモリインターフェース３１を介してデータフラッシュメモリ２０に書き込む。これにより、データフラッシュメモリ２０には、接続されるマイクロコントローラ１に固有のデバイス固有鍵で暗号化された顧客秘密データ２１が格納されることとなる。インストール鍵で暗号化された顧客秘密データ２２は、その後データフラッシュメモリ２０から消去されてもよい。
【００６０】
図１１に例示されるデータ処理装置１００は、マイクロコントローラ１がさらにＲＯＭ３５を内蔵する点で図１０に例示されるマイクロコントローラ１と異なり、活性化プログラム４１が外付けのコードフラッシュメモリ４０に代えて内蔵ＲＯＭ３５に格納されている点で異なるが、他の構成は同様であるので説明を省略する。活性化処理を実行するためには、ＣＰＵ３０は内蔵ＲＯＭ３５に格納されている活性化プログラム４１を実行する点で上述の図１０の動作とは相違するが、活性化プログラム４１によって実行される活性化処理の内容自体は上述と同様であるので説明は省略する。
【００６１】
図１０と図１１に示したハードウェア構成は一例に過ぎず、他の構成に変更することは任意である。例えば、ＲＡＭ３４やＲＯＭ３５、フラッシュメモリインターフェース３１は、ＣＰＵ３０に直接接続されるのではなく、バス３６に接続される構成に変更してもよい。ＣＰＵ３０に加えてさらに複数のＣＰＵが搭載されたマルチプロセッサに変更してもよく、バス３６やＲＡＭ３４などのメモリは階層化されてもよい。
【００６２】
〔実施形態３〕
本実施形態３は、ＬＳＩ１内に保持するインストール鍵とは別の暗号鍵を使って秘密データを暗号化した上で、不揮発性メモリに書き込むなどしてＬＳＩ１に供給する。この時の別の暗号鍵を一時鍵（Temp key）と呼ぶこととし、一時鍵もインストール鍵を使って暗号化し、不揮発性メモリに書き込むなどしてＬＳＩ１に供給する。ＬＳＩ１は、まず、内部に保持するインストール鍵を使って供給された一時鍵を復号し、次に、復号された一時鍵を使って秘密データを復号する。
【００６３】
図１２は、実施形態３に係るデータ処理装置１００に顧客秘密データをインストールする処理全体の概要を模式的に示す説明図である。
【００６４】
顧客秘密データ管理装置５０において、顧客秘密データ５１は一時鍵（Temp key）５５を使って暗号化処理５２を施され、一時鍵で暗号化された顧客秘密データ２３が生成される。一時鍵５５自体は、ＬＳＩ１が内部に保持するインストール鍵１５と同じ共通鍵であるインストール鍵５４を使って暗号化処理５２を施され、インストール鍵で暗号化された一時鍵２４が生成される。図５に示した例と同様に、この顧客秘密データ管理装置５０もセキュリティサイト６０におけるデータサーバー６３と活性化前顧客秘密データ生成サーバー６５として構成されても良い。一時鍵で暗号化された顧客秘密データ２３とインストール鍵で暗号化された一時鍵２４は、記憶媒体６６に保持された状態で不揮発性メモリの書き込み工程に配送され、不揮発性メモリ２０に書き込まれる。不揮発性メモリ２０の好適な一例はフラッシュメモリ２０である。フラッシュメモリ２０は、データ処理装置１００の組み立て工程でマイクロコントローラ１と接続される。マイクロコントローラ１は、実施形態２と同様に、インストール鍵１５とデバイス固有鍵１６とを保持しているが、一時鍵は保持していない。組み立て工程では、マイクロコントローラ１とフラッシュメモリ２０とを接続した後、鍵活性化処理を行なう。
【００６５】
鍵活性化処理では、マイクロコントローラ１は、まず、フラッシュメモリ２０からインストール鍵で暗号化された一時鍵２４を読み込んで、内部に保持するインストール鍵１５を使って復号し、平文の一時鍵を得る。マイクロコントローラ１は、次にフラッシュメモリ２０から一時鍵で暗号化された顧客秘密データ２３を読み込んで、復号された一時鍵を使って復号する。マイクロコントローラ１は、復号された顧客秘密データを、デバイス固有鍵１６を使って暗号化して、フラッシュメモリ２０に書き込む。フラッシュメモリ２０に書き込まれた顧客秘密データは、デバイス固有鍵で暗号化された顧客秘密データ２１であり、マイクロコントローラ１は、これを使用するときは、フラッシュメモリ２０から読み込んで、デバイス固有鍵で復号する。実施形態２と同様に、フラッシュメモリ２０上の一時鍵で暗号化された顧客秘密データ２３とインストール鍵で暗号化された一時鍵２４は、活性化処理を終えた後には消去されてもよい。
【００６６】
これにより、一時鍵（Temp key）をマイクロコントローラ１に予め保持させておく必要がなく、顧客秘密データ管理装置５０において自由に設定し変更することができる。例えば、暗号化された秘密データの仕向け先ごとに個別に設定することができる。また、頻繁に変更することができる。
【００６７】
図１３は、本実施形態３に係るＬＳＩ１及びそのＬＳＩ１と不揮発性メモリ２０を備えるデータ処理装置１００の構成例を示すブロック図である。
【００６８】
データ処理装置１００は、ＬＳＩ１の一例であるマイクロコントローラ１と、マイクロコントローラ１と電気的に接続される不揮発性メモリ２０の一例であるフラッシュメモリ２０と備える。マイクロコントローラ１は、暗号エンジン１０とＣＰＵ３０とインターフェース回路３１とを有する。暗号エンジン１０は、インストール鍵１５とデバイス固有鍵１６とを保持し、図２に示した実施形態２の暗号エンジンと同様に、インストール鍵１５を用いた復号演算処理１３と、デバイス固有鍵１６を用いた暗号化演算処理１４及び復号演算処理１１とを実行可能である。実施形態２の暗号エンジンとは異なり、復号演算処理１３で復号された一時鍵１７を一時的に保持することができ、これを使った復号演算処理１２を実行することができる。一時鍵１７は、例えば、暗号エンジン１０が有するレジスタに一時的に保持される。
【００６９】
顧客秘密データ管理装置５０において、顧客秘密データ５１は、上記一時鍵１７と同じ共通鍵である一時鍵５５を使って暗号化処理５２を施され、一時鍵で暗号化された顧客秘密データ２３が生成される。このときに暗号化に使われた一時鍵は、上記インストール鍵１７と同じ共通鍵であるインストール鍵５４を使って暗号化処理５３を施され、インストール鍵で暗号化された一時鍵２４が生成される。一時鍵で暗号化された顧客秘密データ２３とインストール鍵で暗号化された一時鍵２４とは、フラッシュメモリ２０に書き込まれる。顧客秘密データ２３と一時鍵２４が書き込まれたフラッシュメモリ２０とマイクロコントローラ１は、組み立て工程において、例えばデータ処理装置１００に搭載されるプリント基板上に実装されることによって、電気的に接続され、その後、活性化処理が行われる。
【００７０】
活性化処理において、インストール鍵１５と同じ共通鍵であるインストール鍵５４を使って暗号化された一時鍵２４を、フラッシュメモリ２０から読み出し、インターフェース回路３１を介して暗号エンジン１０に読み込む。暗号エンジン１０は、読み込んだ一時鍵２４に対して、内部に保持するインストール鍵１５を使った復号演算処理１３を施して、平文の一時鍵１７に戻して一時的にレジスタ等に保持する。次に、一時鍵１５と同じ共通鍵である一時鍵５５を使って暗号化された顧客秘密データ２３を、フラッシュメモリ２０から読み出し、インターフェース回路３１を介して暗号エンジン１０に読み込み、暗号エンジン１０に一時的に保持されている平文の一時鍵１７を使って復号演算処理１２を施す。復号された顧客秘密データに対して、内部に保持するデバイス固有鍵１６を使った暗号化演算処理１４を施して、インターフェース回路３１を介してフラッシュメモリ２０上に、デバイス固有鍵で暗号化された顧客秘密データ２１として書き戻す。この活性化処理は、例えばデータ処理装置１００の製造工程のうち、マイクロコントローラ１とフラッシュメモリ２０を電気的に接続する組み立て工程において、実施される。
【００７１】
その後の通常動作では、マイクロコントローラ１は、インターフェース回路３１を介してフラッシュメモリ２０から顧客秘密データ２１を読み込み、暗号エンジンン１０においてデバイス固有鍵１６を使った復号演算処理１１を施した後に、ＣＰＵ３０に供給する。
【００７２】
これにより、実施形態２と同様に、マイクロコントローラ１の個体に固有のデバイス固有鍵１６で暗号化された秘密データ２１を、その秘密データが格納されるフラッシュメモリ２０がマイクロコントローラ１に接続された後に書き込む、活性化処理を行なうことができ、当該フラッシュメモリ２０の管理に要する負荷を軽減することができる。また、フラッシュメモリ２０への秘密データを暗号化するために、デバイス固有鍵１６を読み出す必要がなく、デバイス固有鍵１６は一切読み出されることがないような構成を採用することができるので、セキュリティが著しく強化される点でも同様である。さらに、一時鍵は活性化処理を終わった後は消去されてもよい。これにより、フラッシュメモリ２０上の一時鍵で暗号化された顧客秘密データ２３が消去されない場合であっても、これを復号するための一時鍵がデータ処理装置１００内に存在しなくなるので、安全性が高まる。
【００７３】
図１４〜図１６は、本実施形態３に係るデータ処理装置に顧客秘密データ束をインストールする処理全体の流れの一例を示すフローチャートである。図１４にはセキュリティサイト側での処理、図１５には書き込み処理、図１６には活性化処理が、それぞれ例示されている。
【００７４】
セキュリティサイトでは、図１４に示すように、一時鍵を生成し（Ｓ３０）、１単位の顧客秘密データを作成した一時鍵で暗号化する（Ｓ３１）とともに、当該一時鍵をインストール鍵（共通鍵）で暗号化する（Ｓ３２）。その後次の顧客秘密データの有無を判定し（Ｓ３３）、まだ暗号化されていない顧客秘密データがあるときはステップＳ３１に戻って暗号化処理を繰り返す。顧客秘密データの暗号化をすべて完了した時には、ステップＳ３４に進む。このステップＳ３１からステップＳ３３の繰り返しループによって、暗号化された顧客秘密データの束と暗号化された一時鍵が生成される。一時鍵で暗号化された顧客秘密データの束とインストール鍵で暗号化された一時鍵は、ＣＤ等のメディア（記憶媒体）に書き込まれ（Ｓ３４）、外付けのフラッシュメモリの組み立て工場に向けて配送される（Ｓ３５）。
【００７５】
組み立て工場での書き込み処理では、図１５に示すように、一時鍵で暗号化された顧客秘密データを１単位とインストール鍵で暗号化された一時鍵とをフラッシュメモリ２０に書き込み（Ｓ３６）、フラッシュメモリ２０とマイクロコントローラ１を接続する組み立て工程を行う（Ｓ３７）。
【００７６】
組み立て工場での活性化処理では、図１６に示すように、インストール鍵（共通鍵）で暗号化された一時鍵２４をフラッシュメモリ２０から読み出し（Ｓ３８）、マイクロコントローラ１の内部に保持するインストール鍵（共通鍵）１５で復号化する（Ｓ３９）。次に、一時鍵で暗号化された顧客秘密データ２３をフラッシュメモリ２０から読み出し（Ｓ４０）、ステップＳ３８で復号されて平文となった一時鍵を使って復号化する（Ｓ４１）。復号されて平文となった顧客秘密データを、デバイス固有鍵１６で暗号化し（Ｓ４２）、暗号化された顧客秘密データをフラッシュメモリ２０に書き込む（Ｓ４３）。
【００７７】
ＬＳＩ１は、上で例示したマイクロコントローラ１のように、プログラムを実行することができるプロセッサであって、外部に接続されるフラッシュメモリ２０に対する書込みを行うためのインターフェース回路３１を備えるとよい。
【００７８】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【００７９】
例えば、図１、２、１３に例示したＬＳＩ１またはマイクロコントローラ１に搭載される暗号エンジン１０は、ハードウェアを使って実現されても、ソフトウェアを使って実現されてもよい。例えばＣＰＵ３０で実行されるソフトウェアを使って実現される場合には、図１０、図１１に例示されるようなハードウェアの暗号エンジン１０は不要となる。この場合であっても、暗号演算の一部を高速に実行可能なアクセラレータを備えて、ソフトウェアを使って実現され暗号エンジン１０の機能の一部を実行させるように、ソフトウェアとハードウェアを協調動作させるように構成してもよい。
【００８０】
暗号方式としては、主に例示した共通鍵暗号方式に代えて公開鍵暗号方式を採用してもよい。公開鍵暗号方式を採用する場合には、暗号化のために使用する公開鍵と復号のために使用する秘密鍵を一対の組とすればよい。例えば、ＬＳＩ１の内部ではデバイス固有の一対の公開鍵と秘密鍵の組を保持して、活性化処理では顧客秘密データを公開鍵で暗号化して不揮発性メモリに書き込み、活性化後の通常処理では対応する秘密鍵を使って、平文の顧客秘密データに復号して利用すればよい。他の暗号方式を採用する場合も同様である。
【符号の説明】
【００８１】
１  半導体集積回路装置（ＬＳＩ；マイクロコントローラ、ＳＯＣ等）
１０  暗号エンジン
１１、１２、１３  復号部
１４  暗号化部
１５  インストール鍵（共通鍵；Shared Key）
１６  デバイス固有鍵
１７  一時鍵（Temp Key）
２０  不揮発性メモリ（Flashメモリ）
２１  デバイス固有鍵で暗号化された顧客秘密データ
２２  インストール鍵で暗号化された顧客秘密データ
２３  一時鍵で暗号化された顧客秘密データ
２４  インストール鍵で暗号化された一時鍵
３０  ＣＰＵ
３１  インターフェース
３２  乱数発生器
３３  タイマ
３４  ＲＡＭ
３５  ＲＯＭ
３６  バス
３９  周辺モジュール
４０  不揮発性メモリ（Flashメモリ）
４１  活性化プログラム
４２  一般のプログラム
４３  外部バス
５０  顧客秘密データ管理装置
５１  顧客秘密データ
５２、５３  暗号化部
５４  インストール鍵（共通鍵；Shared Key）
５５  一時鍵（Temp Key）
６０  セキュリティサイト
６１  顧客サーバー
６３  データサーバー
６５  活性化前顧客秘密データ生成サーバー
６２、６４、６６  記憶媒体（ＣＤ等）
７０  データ処理装置の工場
１００  データ処理装置
【図１】
2017108293.tif 000003
【図２】
2017108293.tif 000004
【図３】
2017108293.tif 000005
【図４】
2017108293.tif 000006
【図５】
2017108293.tif 000007
【図６】
2017108293.tif 000008
【図７】
2017108293.tif 000009
【図８】
2017108293.tif 000010
【図９】
2017108293.tif 000011
【図１０】
2017108293.tif 000012
【図１１】
2017108293.tif 000013
【図１２】
2017108293.tif 000014
【図１３】
2017108293.tif 000015
【図１４】
2017108293.tif 000016
【図１５】
2017108293.tif 000017
【図１６】
2017108293.tif 000018