(57)【要約】      （修正有）【課題】不正に流出した端末装置、システムＬＳＩあるいは記憶部からそれらを製造した製造者等の特定可能とする。【解決手段】最終機密情報を内部機密情報により暗号化した第１の被暗号化機密情報及び内部機密情報を変換機密情報により暗号化した第２の被暗号化機密情報を記憶する記憶部と、アドレス情報を含み変換種の生成元になる第１の定数、テスト用変換種の生成元になる第２の定数及び第３の定数の記憶並びに第１、第２、第３の定数をテスト信号及びモード設定値に応じて変換種又はテスト用変換種として出力する種生成部と、変換種又はテスト用変換種を、第１の被暗号化機密情報により変換し、変換機密情報又はテスト用変換機密情報を生成する一方向関数回路と、第２の被暗号化機密情報を、一方向関数回路の出力を鍵として復号化する復号回路と、第１の被暗号化機密情報を、復号回路の出力を鍵として復号化する復号回路と、を含むＬＳＩとを備える。【選択図】  図１１
2007011871.tif 000002
【特許請求の範囲】
【請求項１】
最終機密情報を内部機密情報により暗号化した第１の被暗号化機密情報及び前記内部機密情報を変換機密情報により暗号化した第２の被暗号化機密情報を記憶する記憶部と、
アドレス情報を含み変換種の生成元になる第１の定数、テスト用変換種の生成元になる第２の定数及び第３の定数の記憶並びに前記第１の定数、前記第２の定数又は前記第３の定数をテスト信号及びモード設定値に応じて前記変換種又は前記テスト用変換種として出力する種生成部と、
前記種生成部から出力される前記変換種又は前記テスト用変換種を、前記記憶部から入力される前記第１の被暗号化機密情報により変換し、前記変換機密情報又はテスト用変換機密情報を生成する一方向関数回路と、
前記記憶部から入力される前記第２の被暗号化機密情報を、前記一方向関数回路の出力を鍵として復号化する第１の復号回路と、
前記記憶部から入力される前記第１の被暗号化機密情報を、前記第１の復号回路の出力を鍵として復号化する第２の復号回路と、を含むＬＳＩと、を備える機密情報実装システム。
【請求項２】
請求項１記載の機密情報実装システムであって、
前記記憶部は、前記最終機密情報を前記内部機密情報により暗号化した第３の被暗号化機密情報と、前記内部機密情報を前記変換機密情報により暗号化した第４の被暗号化機密情報とを記憶し、
前記種生成部は、アドレス情報を含み第1の変換種の生成元になる第１の定数と、第1のテスト用変換種の生成元になる第２の定数と、第２の変換種の生成元になる第３の定数と、第２のテスト用変換種の生成元になる第２の定数とを記憶する定数記憶部を持ち、それぞれテスト信号により選択した前記第３の定数又は前記第２の定数及び前記第１の定数又は前記第２の定数を前記モード設定値により選択し、
前記一方向関数回路は、前記種生成部から出力される前記第１の変換種、前記第１のテスト用変換種、前記第２の変換種又は前記第２のテスト用変換種を、前記モード設定値に応じて前記記憶部から入力される前記第１の被暗号化機密情報又は前記第３の被暗号化機密情報を鍵として変換して前記変換機密情報又はテスト用変換機密情報を生成し、
前記第１の復号回路は、前記モード設定値に応じて前記記憶部から入力される前記第２の被暗号化機密情報又は前記第４の被暗号化機密情報を、前記一方向関数回路の出力を鍵として復号化する機密情報実装システム。
【請求項３】
請求項２記載の機密情報実装システムであって、
前記種生成部は、前記第１の定数及び前記第２の定数を記憶する第１の定数記憶部と、
前記第１の定数及び前記第２の定数を前記テスト信号に応じて選択出力する第１のセレクタと、
前記第３の定数及び前記第２の定数を記憶する第２の定数記憶部と、
前記モード設定値に応じて選択出力する第２のセレクタと、
前記第１の変換種若しくは前記第１のテスト用変換種又は前記第２の変換種若しくは前記第２のテスト用変換種を前記テスト信号に応じて選択出力する第３のセレクタと、を備える機密情報実装システム。
【請求項４】
請求項２記載の機密情報実装システムであって、
前記モード設定値は、特定の動作モードでのみ変更が可能な機密情報実装システム。
【請求項５】
請求項２記載の機密情報実装システムであって、
前記ＬＳＩは、前記第１の定数に含まれる前記アドレス情報が入力される演算回路を備え、
前記演算回路は、前記テスト信号により選択した実装段階における第6の定数又は検査段階における第７の定数に所定の演算を行って第１の変換アドレス情報又は第２の変換アドレス情報を出力する機密情報実装システム。
【請求項６】
請求項２記載の機密情報実装システムであって、
前記第１の被暗号化機密情報及び前記第２の被暗号化機密情報により生成される第1の機密情報と、前記第３の被暗号化機密情報及び前記第４の被暗号化機密情報により生成される第２の機密情報とは、互いに別の機密情報処理に使用される機密情報実装システム。
【請求項７】
請求項２記載の機密情報実装システムであって、
前記第１の被暗号化機密情報及び前記第２の被暗号化機密情報並びに前記第３の被暗号化機密情報及び前記第４の被暗号化機密情報の少なくとも一方が実装されている機密情報実装システム。
【請求項８】
請求項５記載の機密情報実装システムであって、
前記演算回路は、テスト時は前記第7の定数を選択して前記第２の変換アドレス情報を出力し、テスト時以外は前記第６の定数を選択して前記第１の変換アドレス情報を出力する機密情報実装システム。
【請求項９】
請求項８記載の機密情報実装システムであって、
前記第６の定数を外部から入力設定する手段を備える機密情報実装システム。
【請求項１０】
請求項５記載の機密情報実装システムであって、
前記記憶部に記憶される前記第１及び第２の被暗号化機密情報は、前記演算回路から出力される前記第１の変換アドレス情報に関連付けられる機密情報実装システム。
【請求項１１】
請求項５記載の機密情報実装システムであって、
前記最終機密情報及び前記内部機密情報は、前記第１の変換アドレス情報に関連付けられる機密情報実装システム。
【請求項１２】
請求項５記載の機密情報実装システムであって、
前記最終機密情報及び前記内部機密情報を、前記第１の変換アドレス情報の順に並べて配置する機密情報実装システム。
【請求項１３】
請求項２記載の機密情報実装システムであって、
前記第２の復号回路の出力に対して暗号化処理又は改ざん検出処理などの機密処理を行う機密処理回路ブロックを備える機密情報実装システム。
【請求項１４】
請求項５記載の機密情報実装システムであって、
前記第１の定数は、前記ＬＳＩの固体毎に乱数性を持つものであって、前記演算回路から出力された前記第２の変換アドレス情報により乱数性を検査する機能を含む機密情報実装システム。
【請求項１５】
請求項２記載の機密情報実装システムであって、
前記第１の定数は、前記ＬＳＩの固体毎に固有な定数であり、
前記第２の定数、前記第３の定数、前記第６の定数、前記第７の定数は、前記ＬＳＩの所定数毎に固有な定数である機密情報実装システム。
【請求項１６】
請求項５記載の機密情報実装システムであって、
前記第２の変換アドレス情報として同一の値が実装されていた場合に、実装を停止する機能を含む機密情報実装システム。
【請求項１７】
請求項８記載の機密情報実装システムであって、
前記第１の変換アドレス情報のテスト時における出力を禁止する手段を備える機密情報実装システム。
【請求項１８】
最終機密情報を内部機密情報により暗号化した第１の被暗号化機密情報と、前記内部機密情報を変換機密情報により暗号化した第２の被暗号化機密情報とが入力されるＬＳＩであって、
アドレス情報を含み変換種の生成元になる第１の定数、テスト用変換種の生成元になる第２の定数及び第３の定数の記憶並びに前記第１の定数、前記第２の定数又は前記第３の定数をテスト信号及びモード設定値に応じて前記変換種又は前記テスト用変換種として出力する種生成部と、
前記種生成部から出力される前記変換種又は前記テスト用変換種を、前記第１の被暗号化機密情報により変換し、前記変換機密情報又はテスト用変換機密情報を生成する一方向関数回路と、
前記第２の被暗号化機密情報を、前記一方向関数回路の出力を鍵として復号化する第１の復号回路と、
前記第１の被暗号化機密情報を、前記第１の復号回路の出力を鍵として復号化する第２の復号回路と、を備えるＬＳＩ。
【請求項１９】
請求項１８記載のＬＳＩであって、
前記種生成部は、アドレス情報を含み第1の変換種の生成元になる第１の定数と、第1のテスト用変換種の生成元になる第２の定数と、第２の変換種の生成元になる第３の定数と、第２のテスト用変換種の生成元になる第２の定数とを記憶する定数記憶部を持ち、それぞれテスト信号により選択した前記第３の定数又は前記第２の定数及び前記第１の定数又は前記第２の定数を前記モード設定値により選択し、
前記一方向関数回路は、前記種生成部から出力される前記第１の変換種、前記第１のテスト用変換種、前記第２の変換種又は第２のテスト用変換種を、前記モード設定値に応じて前記第１の被暗号化機密情報又は前記最終機密情報を前記内部機密情報により暗号化した第３の被暗号化機密情報を鍵として変換して前記変換機密情報又はテスト用変換機密情報を生成し、
前記第１の復号回路は、前記モード設定値に応じて前記第２の被暗号化機密情報又は前記内部機密情報を前記変換機密情報により暗号化した第４の被暗号化機密情報を、前記第1の一方向関数回路の出力を鍵として復号化するＬＳＩ。
【請求項２０】
請求項１９記載のＬＳＩであって、
前記種生成部に記憶される前記第１の定数又は前記第２の定数を、前記テスト信号に応じて検証する検証回路を備えるＬＳＩ。
【請求項２１】
請求項１９記載のＬＳＩであって、
前記第1のモード設定値は、実装後の変更を禁止した状態でヒューズで実装されるＬＳＩ。
【請求項２２】
請求項１記載の第１の定数、第３の定数、最終機密情報及び内部機密情報を入力し、前記第１の被暗号化機密情報及び前記第２の被暗号化機密情報を前記アドレス情報に相関させてソート出力する機能を持った機密情報生成装置。
【請求項２３】
請求項１記載の第２の定数又は第３の定数、テスト用機密情報、テスト用内部機密情報及びモード設定値を入力し、前記第１の被暗号化機密情報及び前記第２の被暗号化機密情報を出力する機能を持った機密情報生成装置。
【請求項２４】
請求項１記載の第１の定数、第３の定数、最終機密情報及び内部機密情報を入力し、前記モード設定値に応じて前記第1の定数を選択し、前記第１の被暗号化機密情報及び前記第２の被暗号化機密情報を前記第1の変換アドレス情報に相関させてソート出力する機密情報生成方法。
【請求項２５】
請求項１記載の第１の定数、第３の定数、最終機密情報及び内部機密情報を入力し、前記モード設定値に応じて第３の定数を選択し前記第３の被暗号化機密情報及び前記第４の被暗号化機密情報を出力する機密情報生成方法。
【請求項２６】
請求項２４記載の機密情報生成方法であって、
前記第1の定数に対する冗長演算の結果に相当する第４の定数を出力させる機密情報生成方法。
【請求項２７】
請求項１記載の第２の定数、第3の定数、テスト用機密情報及びテスト用変換機密情報を入力し、前記モード設定値に応じて前記第２の定数又は前記第３の定数を選択し前記第１の被暗号化機密情報及び前記第２の被暗号化機密情報を出力させる機密情報生成方法。
【請求項２８】
請求項２７記載の機密情報実装方法であって、
前記第２の定数に対する冗長演算の結果に相当する第５の定数を出力させる機密情報生成方法。
【請求項２９】
請求項１９記載のＬＳＩであって、
前記第１の定数、前記第2の定数、前記第３の定数、前記第１の定数に対する冗長演算の結果に相当する第４の定数、前記第２の定数に対する冗長演算の結果に相当する第５の定数、実装段階における第６の定数及び検査段階における第７の定数を外部読み出し不能に実装したＬＳＩ。
【請求項３０】
最終機密情報を内部機密情報により暗号化した第１の被暗号化機密情報及び第３の被暗号化機密情報及び第５の被暗号化機密情報と、前記内部機密情報を変換機密情報により暗号化した第２の被暗号化機密情報及び第４の被暗号化機密情報及び第６の被暗号化機密情報を記憶する記憶部と、
アドレス情報を含み第1の変換種の生成元になる第１の定数、第1のテスト用変換種の生成元になる第２の定数、第２の変換種の生成元になる第３の定数及び第２のテスト用変換種の生成元になる第２の定数を記憶する定数記憶部を持ち、それぞれテスト信号により選択した前記第３の定数又は前記第２の定数及び前記第１の定数又は前記第２の定数を前記モード設定値により選択する種生成部と、
前記種生成部から出力される前記第１の変換種、前記第１のテスト用変換種、前記第２の変換種又は第２のテスト用変換種を、前記モード設定値に応じて前記記憶部から入力される前記第１の被暗号化機密情報又は前記第３の被暗号化機密情報を鍵として変換して前記変換機密情報又はテスト用変換機密情報を生成する一方向関数回路と、
前記モード設定値に応じて前記記憶部から入力される前記第２の被暗号化機密情報又は第４の被暗号化機密情報を、前記一方向関数回路の出力を鍵として復号化を行う第１の復号回路と、
前記記憶部から入力される前記第１の被暗号化機密情報を、前記第１の復号回路の出力を鍵として復号化を行う第２の復号回路と、
前記第５の被暗号化機密情報及び前記第６の被暗号化機密情報により得られる最終機密情報を前記モード設定値とは独立したモード設定値に応じて前記第１の定数を鍵として暗号化を行い第７の被暗号化機密情報として前記記憶部へ出力する暗号回路と、
前記記憶部から入力される前記第７の被暗号化機密情報を前記第１の定数を鍵として復号化を行う第３の復号回路と、を含むＬＳＩとを備える機密情報実装システム。
【請求項３１】
請求項３０記載の機密情報実装システムであって、
前記第１の被暗号化機密情報及び前記第２の被暗号化機密情報、前記第３の被暗号化機密情報及び前記第４の被暗号化機密情報並びに前記第５の被暗号化機密情報及び前記第６の被暗号化機密情報の少なく一組が実装されている機密情報実装システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機密情報実装システム及びこれを実現するためのＬＳＩに関する。
【背景技術】
【０００２】
ＤＶＤ、ＳＤカードなどの著作権を保護すべきコンテンツを格納した蓄積デバイス、及びそれらの蓄積デバイスを再生あるいは復調する端末装置のシステムＬＳＩ等には、暗号化された情報の復号に必要な鍵情報が埋め込まれる。
【０００３】
この鍵情報は、著作権保護及び端末装置の不正使用防止のため、ユーザはもちろんのこと端末装置の製造者に対しても厳重な機密事項となっている。すなわち、鍵情報が埋め込まれるシステムＬＳＩの開発段階、システムＬＳＩの製造工程の一つであるヒューズ実装段階、及びそれらのシステムＬＳＩをメモリ等と組み合わせ端末装置を製造するセット実装段階において厳重に管理されている。
【０００４】
本出願人は、先に、鍵が実装されたシステムやこれに用いるＬＳＩに関して、機密にすべき情報を分散させることにより、鍵の機密性及び秘匿性を向上させるとともに、さまざまな機密鍵を容易に実装することができ、さらに、回路規模を増大させることなく実装された値のテストを可能にする鍵実装システムについて開示した（例えば、特許文献１、図１８参照）。
【０００５】
図１８は、上記文献で開示した鍵実装システム７を説明するための概略構成を示すブロック図である。なお、以下の説明において、暗号及び復号の処理については、対称暗号を前提とする。「対称暗号」とは、図１９に示すように、暗号回路５０により、Ａを入力としてＢを鍵として用いて暗号化したものをＣとすると、復号回路５１により、Ｃを入力としてＢを鍵として復号化したものは、Ａとなる特性を持つものである。また、Ｘに対して鍵Ｙを用いて暗号化して得た被暗号化鍵のことを、ＥＸ（Ｙ）と表現するものとする。
【０００６】
ＬＳＩ７０は、第２及び第３の入力ＩＮ２，ＩＮ３を入力とし、このいずれかを、テスト信号ＴＥＳＴに応じて選択出力する第１のセレクタ６４を備えている。第１の復号回路Ｘ３３は、この第１のセレクタ６４の出力を入力とする。また、ＬＳＩ７０には、第１の定数記憶部７２と、第２のセレクタ７３と、第２の定数記憶部７４と、第２の一方向関数回路Ｂ７５とを備えた種生成部７１が設けられている。
【０００７】
第１の定数記憶部７２は、変換種ＩＤｆｕｓｅ１の元になる第１の定数ＩＤｆｕｓｅと、テスト用変換種ＩＤｔｓｔ１の元になる第２の定数ＩＤｔｓｔとを記憶している。この第１の定数記憶部７２は、第１の定数ＩＤｆｕｓｅ及び第２の定数ＩＤｔｓｔとして、レーザトリミング等によるヒューズ切断により任意の値が実装可能に構成されている。
【０００８】
第２のセレクタ７３は、第１及び第２の定数ＩＤｆｕｓｅ，ＩＤｔｓｔのいずれかを、テスト信号ＴＥＳＴに応じて選択出力する。第２の定数記憶部７４は、第３の定数Ｃｏｎｓｔを記憶している。第２の一方向関数回路Ｂ７５は、変換種となる第３の定数Ｃｏｎｓｔを、第２のセレクタ７３の出力を用いて一方向関数によって変換する。
【０００９】
ＬＳＩ７０は、変換種となる第２の一方向関数回路Ｂ７５の出力を、第１の入力ＩＮ１を用いて一方向関数によって変換し、変換鍵ＣＫ又はテスト用変換鍵ＣＫｔｓｔを生成する第1の一方向関数回路Ａ３２と、第１のセレクタ６４の出力を、第1の一方向関数回路Ａ３２の出力を鍵として用いて復号化する第１の復号回路Ｘ３３と、第１の入力ＩＮ１を、第１の復号回路Ｘ３３の出力を鍵として用いて復号化する第２の復号回路Ｙ３４とを備えている。
【００１０】
ＬＳＩ７０には、第２のセレクタ７３の出力を検証する検証回路６５が設けられている。検証回路６５は、定数ＩＤｆｕｓｅに対する冗長演算の結果に相当する定数ＣＲＣｆｕｓｅがヒューズ実装された定数記憶部６６と、第２のセレクタ７３の出力に対して上述の冗長演算を行い、その結果と定数記憶部６６に記憶された定数ＣＲＣｆｕｓｅとを比較する比較回路６７とを備えている。
【００１１】
まず、ＬＳＩ７０の検査時における動作について説明する。この場合、テスト信号ＴＥＳＴは“１”に設定する。このとき、第１のセレクタ６４はテスト信号ＴＥＳＴとして“１”を受けて、入力ＩＮ３すなわち第３の被暗号化鍵ＥＭＫｔｓｔ（ＣＫｔｓｔ）を選択出力する。また第２のセレクタ７３は、テスト信号ＴＥＳＴとして“１”を受けて、第１の定数記憶部７２に記憶された第２の定数ＩＤｔｓｔを選択出力する。
【００１２】
第２の一方向関数回路Ｂ７５は、第２の定数記憶部７４に記憶された第３の定数Ｃｏｎｓｔを、第２のセレクタ７３の出力すなわち第２の定数ＩＤｔｓｔを用いて一方向関数によって変換する。すなわち、種生成部７１から、変換種としてテスト用変換種ＩＤｔｓｔ１が出力される。
【００１３】
そして、第1の一方向関数回路Ａ３２は、種生成部７１から出力されたテスト用変換種ＩＤｔｓｔ１を、第１の入力ＩＮ１すなわち第１の被暗号化鍵ＥＤＫ（ＭＫ）を用いて、テスト用変換鍵ＣＫｔｓｔの生成に用いたものに相当する一方向関数によって変換する。これにより、一方向関数回路Ａ３２から、テスト用変換鍵ＣＫｔｓｔが生成出力される。
【００１４】
第１の復号回路Ｘ３３は、第１のセレクタ６４の出力すなわち第３の被暗号化鍵ＥＭＫｔｓｔ（ＣＫｔｓｔ）を、第1の一方向関数回路Ａ３２の出力すなわちテスト用変換鍵ＣＫｔｓｔを鍵として用いて復号化する。これにより、第１の復号回路Ｘ３３から、テスト用内部鍵ＭＫｔｓｔが生成出力される。第２の復号回路Ｙ３４は、第１の入力ＩＮ１すなわち第１の被暗号化鍵ＥＤＫ（ＭＫ）を、第１の復号回路Ｘ３３の出力すなわちテスト用内部鍵ＭＫｔｓｔを鍵として用いて復号化する。これにより、第２の復号回路Ｙ３４から、テスト用最終鍵ＤＫｔｓｔが生成される。
【００１５】
次に、ＬＳＩ７０の通常時における動作について説明する。この場合、テスト信号ＴＥＳＴは“０”に設定する。このとき、第１のセレクタ６４はテスト信号ＴＥＳＴとして“０”を受けて、入力ＩＮ２すなわち第２の被暗号化鍵ＥＭＫ（ＣＫ）を選択出力する。また第２のセレクタ７３は、テスト信号ＴＥＳＴとして“０”を受けて、第１の定数記憶部７２に記憶された第１の定数ＩＤｆｕｓｅを選択出力する。
【００１６】
第２の一方向関数回路Ｂ７５は、第２の定数記憶部７４に記憶された第３の定数Ｃｏｎｓｔを、第２のセレクタ７３の出力すなわち第１の定数ＩＤｆｕｓｅを用いて一方向関数によって変換する。これにより、種生成部７１から、変換種ＩＤｆｕｓｅ１が出力される。
【００１７】
そして、第1の一方向関数回路Ａ３２は、種生成部７１から出力された変換種ＩＤｆｕｓｅ１を、第１の被暗号化鍵ＥＤＫ（ＭＫ）を用いて、変換鍵ＣＫの生成に用いたものに相当する一方向関数によって変換する。これにより、第1の一方向関数回路Ａ３２から、変換鍵ＣＫが生成出力される。
【００１８】
第１の復号回路Ｘ３３は、第１のセレクタ６４の出力すなわち第２の被暗号化鍵ＥＭＫ（ＣＫ）を、第1の一方向関数回路Ａ３２の出力すなわち変換鍵ＣＫを鍵として用いて復号化する。これにより、第１の復号回路Ｘ３３から、内部鍵ＭＫが生成出力される。第２の復号回路Ｙ３４は、第１の入力ＩＮ１すなわち第１の被暗号化鍵ＥＤＫ（ＭＫ）を、第１の復号回路Ｘ３３の出力すなわち内部鍵ＭＫを鍵として用いて復号化する。これにより、第２の復号回路Ｙ３４から、最終鍵ＤＫが生成される。
【００１９】
このとき、第２のセレクタ７３の出力は、検証回路６５内の比較回路６７にも入力される。比較回路６７によって、第２のセレクタ７３の出力に対する冗長演算の結果と、定数記憶部６６にヒューズ実装されたＣＲＣｆｕｓｅとが同一であるか否かがチェックされる。これにより、種生成部７１に記憶された第２の定数ＩＤｆｕｓｅの正当性を検証することができる。
【特許文献１】特開２００３−１０１５２７号公報
【発明の開示】
【発明が解決しようとする課題】
【００２０】
上記従来の鍵実装システムにあっては、不正に流出した端末装置、システムＬＳＩあるいは記憶部から、その端末装置、システムＬＳＩあるいは記憶部を製造した製造者等を特定することができないという事情があった。また、特定の機密情報が流出してしまった場合に、その特定の機密情報をコピーすることにより、通常動作が可能な端末装置あるいはシステムＬＳＩが大量に製造できてしまい、著作権を十分に保護することができないという事情があった。
【００２１】
また、上記従来の鍵実装システムにあっては、機器1台毎に違うＩＤｆｕｓｅをもとに機密情報を保護するか、ある任意の固定値を使用するかを機密情報に応じて選択することができなかった。このため柔軟な実装を行うことができなかった。
【００２２】
本発明は、不正に流出した端末装置、システムＬＳＩあるいは記憶部から、その端末装置、システムＬＳＩあるいは記憶部を製造した製造者等の特定を可能として機密情報の厳格な管理を行うことができる機密情報実装システム及びＬＳＩを提供することを目的とする。
【課題を解決するための手段】
【００２３】
本発明の機密情報実装システムは、最終機密情報を内部機密情報により暗号化した第１の被暗号化機密情報及び前記内部機密情報を変換機密情報により暗号化した第２の被暗号化機密情報を記憶する記憶部と、アドレス情報を含み変換種の生成元になる第１の定数、テスト用変換種の生成元になる第２の定数及び第３の定数の記憶並びに前記第１の定数、前記第２の定数又は前記第３の定数をテスト信号及びモード設定値に応じて前記変換種又は前記テスト用変換種として出力する種生成部と、前記種生成部から出力される前記変換種又は前記テスト用変換種を、前記記憶部から入力される前記第１の被暗号化機密情報により変換し、前記変換機密情報又はテスト用変換機密情報を生成する一方向関数回路と、前記記憶部から入力される前記第２の被暗号化機密情報を、前記一方向関数回路の出力を鍵として復号化する第１の復号回路と、前記記憶部から入力される前記第１の被暗号化機密情報を、前記第１の復号回路の出力を鍵として復号化する第２の復号回路と、を含むＬＳＩと、を備える。
【００２４】
本発明のＬＳＩは、最終機密情報を内部機密情報により暗号化した第１の被暗号化機密情報と、前記内部機密情報を変換機密情報により暗号化した第２の被暗号化機密情報とが入力されるＬＳＩであって、アドレス情報を含み変換種の生成元になる第１の定数、テスト用変換種の生成元になる第２の定数及び第３の定数の記憶並びに前記第１の定数、前記第２の定数又は前記第３の定数をテスト信号及びモード設定値に応じて前記変換種又は前記テスト用変換種として出力する種生成部と、前記種生成部から出力される前記変換種又は前記テスト用変換種を、前記第１の被暗号化機密情報により変換し、前記変換機密情報又はテスト用変換機密情報を生成する一方向関数回路と、前記第２の被暗号化機密情報を、前記一方向関数回路の出力を鍵として復号化する第１の復号回路と、前記第１の被暗号化機密情報を、前記第１の復号回路の出力を鍵として復号化する第２の復号回路と、を備える。
【発明の効果】
【００２５】
本発明によれば、暗号化機密情報にアドレス情報を関連付けることにより、不正に流出してしまった端末装置、システムＬＳＩあるいは記憶部から、その端末装置、システムＬＳＩあるいは記憶部を製造した製造者等の特定が可能となり、機密情報の厳格な管理を行うことができる。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施の形態について、図面を参照して説明する。まず、本発明の実施形態の機密情報実装システムを開発、製造、検査及び実装する各段階において、それぞれの段階で必要となる機密情報を製造者にライセンスする場合のライセンス管理、すなわちライセンススキームについて説明する。なお、この機密情報には、鍵、パラメーター、暗号アルゴリズムあるいは変換テーブル等、機密にする必要があるすべての情報が含まれる。
【００２７】
図１は、本実施形態の機密情報実装システムを、端末装置に実装するまでの全工程を説明するためのフローチャートである。また、図２、図３及び図４は、それぞれ本実施形態の機密情報実装システムに内蔵されるシステムＬＳＩの開発工程、ヒューズ（ｆｕｓｅ）実装工程及び端末装置等へのセット実装工程を説明するためのフローチャートである。
【００２８】
図５は、本実施形態の機密情報実装システムに内蔵されるシステムＬＳＩの開発工程において、機密情報ライセンス会社２２０から、システムＬＳＩの開発及び製造を担当するＬＳＩベンダーＡ２３０にライセンスを提供する場合のライセンススキームを説明するための図である。
【００２９】
図６及び図７は、図５に示す機密情報ライセンス会社２２０において暗号化された機密情報を生成する暗号化機密情報生成機２００，２１０を説明するためのブロック図である。
【００３０】
図８は、本実施形態の機密情報実装システムに内蔵されるシステムＬＳＩのｆｕｓｅ実装工程において、機密情報ライセンス会社２２０から、システムＬＳＩのｆｕｓｅ実装を担当するＦｕｓｅ実装ベンダーＣ２４０にライセンスを提供する場合のライセンススキームを説明するための図である。
【００３１】
図９は、本実施形態の機密情報実装システムに内蔵されるシステムＬＳＩのセット実装工程において、機密情報ライセンス会社２２０から、システムＬＳＩのセット実装を担当するセットメーカーＢ２５０にライセンスを提供する場合のライセンススキームを説明するための図である。また、図１０は、図５、図８及び図９を総合し、端末装置に本実施形態の機密情報実装システムを実装する全工程のライセンススキームを説明するための図である。
【００３２】
以下、本発明の実施形態の機密情報実装システムを開発、製造、検査及び実装する各段階におけるライセンススキームを順番に説明する。本実施形態の機密情報実装システムを内蔵する端末装置を販売するとともに、端末装置で再生等されるコンテンツの著作権を管理する主体は、機密情報ライセンス会社２２０である。
【００３３】
まず、機密情報ライセンス会社２２０は、図１及び図５に示すように、ＬＳＩベンダーＡ２３０にＬＳＩ開発用のライセンスを提供するために、ＬＳＩ開発用暗号化機密情報を生成する（図１のステップＳ１１）。機密情報ライセンス会社２２０は、図６に示すように、暗号化機密情報生成機２００により、ＬＳＩベンダーＡ２３０に提供する暗号化機密情報を生成する。すなわち、暗号回路２０１により、開発用機密情報ＤＫｔｓｔを、テスト用内部機密情報ＭＫｔｓｔを鍵として用いて暗号化し、第１の開発用被暗号化情報ＥＤＫｔｓｔ（ＭＫｔｓｔ）を生成する。
【００３４】
次に、セレクタ２０３は第1のモード設定値（mode）により、選択されたテスト用定数ＩＤｔｓｔを出力する。ここでLSIメーカー鍵constの値を検査するためにセレクタ２０３はLSIメーカー鍵constを出力するように第1のモード設定値を設定しても良い。さらにその変換結果を、一方向関数回路２０４により、暗号回路２０１によって生成された第１の開発用被暗号化情報ＥＤＫｔｓｔ（ＭＫｔｓｔ）を鍵として用いて一方向関数によって変換し、テスト用変換鍵ＣＫｔｓｔを生成する。また、第１のモード設定値を実装後の変更を禁止した状態でヒューズで実装することで、機密情報の改ざんを防止することができる。
【００３５】
その後、暗号回路２０５により、テスト用内部機密情報ＭＫｔｓｔを、一方向関数回路２０４から出力されるテスト用変換鍵ＣＫｔｓｔを鍵として用いて暗号化し、第２の開発用被暗号化情報ＥＭＫｔｓｔ（ＣＫｔｓｔ）を生成する。また、ＣＲＣ生成回路２０２により、テスト用定数ＩＤｔｓｔに対して冗長演算（例えばＣＲＣ１６）を行い、検証テスト用定数ＣＲＣｔｓｔを生成する。
【００３６】
そして、機密情報ライセンス会社２２０は、図５に示すように、第１と第２の開発用被暗号化機密情報ＥＤＫｔｓｔ（ＭＫｔｓｔ），ＥＭＫｔｓｔ（ＣＫｔｓｔ）、テスト用定数ＩＤｔｓｔ、検証テスト用定数ＣＲＣｔｓｔ、及びＬＳＩメーカー鍵ｃｏｎｓｔをＬＳＩベンダーＡ２３０に提供する。
【００３７】
次に、開発用暗号化機密情報の提供を受けたＬＳＩベンダーＡ２３０は、その開発用暗号化機密情報に基づいてＬＳＩの開発及び製造を行う（図１のステップＳ１４）。
【００３８】
図２は、ＬＳＩベンダーＡ２３０で行われるＬＳＩの開発及び製造工程のフローチャートである。ＬＳＩベンダーＡ２３０では、図２に示すように、設計データへＬＳＩメーカー鍵ｃｏｎｓｔ、テスト用定数ＩＤｔｓｔ、検証テスト用定数ＣＲＣｔｓｔ及びａｄｄｒｅｓｓ変換(mask)の値を実装し（ステップＳ２１）、後述するＬＳＩ検査のためのＴＥＳＴ信号をオンする（ステップＳ２２）。
【００３９】
そして、第１と第２の開発用被暗号化機密情報ＥＤＫｔｓｔ（ＭＫｔｓｔ），ＥＭＫｔｓｔ（ＣＫｔｓｔ）を用いてＬＳＩ機能の検証を行い（ステップＳ２３）、レイアウト設計及びマスク発注を行う（ステップＳ２４）。
ここで前記に示したようにLSIメーカー鍵constの値を検査ＴＥＳＴ信号をオフにしてLSIメーカー鍵constによって生成された第１と第２の開発用被暗号化機密情報ＥＤＫｔｓｔ（ＭＫｔｓｔ），ＥＭＫｔｓｔ（ＣＫｔｓｔ）を用いてＬＳＩ機能の検証を行っても良い。
【００４０】
次に、第１と第２の開発用被暗号化機密情報ＥＤＫｔｓｔ（ＭＫｔｓｔ），ＥＭＫｔｓｔ（ＣＫｔｓｔ）を用いてＬＳＩ検査を行い（ステップＳ２５）、さらに機能検査（ステップＳ２６）がＯＫであればＬＳＩを良品に分類し（ステップＳ２７）、ＮＧならば不良品に分類する（ステップＳ２８）。
【００４１】
次に、機密情報ライセンス会社２２０は、Ｆｕｓｅ実装ベンダーＣ２４０に提供するＩＤｆｕｓｅ等の暗号化機密情報を生成するとともに（図１のステップＳ１２）、セットメーカーＢ２５０に提供する第１の被暗号化機密情報ＥＤＫ（ＭＫ）／ａｄｄｒｅｓｓ等の暗号化機密情報を生成する（図１のステップＳ１３）。
【００４２】
この場合、機密情報ライセンス会社２２０では、図７及び図８に示すように、暗号化機密情報を暗号化機密情報生成機２１０により生成する。すなわち、暗号回路２１１により、最終機密情報ＤＫを、アドレス(address)に対応した内部機密情報ＭＫを鍵として用いて暗号化し、アドレスに関連付けられた第１の被暗号化機密情報ＥＤＫ（ＭＫ）／ａｄｄｒｅｓｓを生成する。
【００４３】
次に、セレクタ２１３は第1のモード設定値（mode）により、選択されたアドレスに対応した定数ＩＤｆｕｓｅ／ａｄｄｒｅｓｓを出力する。さらにその結果を、一方向関数回路２１４により、暗号回路２１１によって生成された第１の被暗号化機密情報ＥＤＫ（ＭＫ）／ａｄｄｒｅｓｓを鍵として用いて一方向関数によって変換し、変換鍵ＣＫを生成する。
【００４４】
その後、内部機密情報ＭＫを、一方向関数回路２１４により生成された変換機密情報ＣＫ及びアドレスを鍵として用いて暗号化し、第２の被暗号化機密情報ＥＭＫ（ＣＫ）／ａｄｄｒｅｓｓを生成する。また、ＣＲＣ生成回路２１２により、アドレスに対応した定数ＩＤｆｕｓｅ／ａｄｄｒｅｓｓに対して冗長演算（例えばＣＲＣ１６）を行い、アドレスに対応した検証定数ＣＲＣｆｕｓｅ／ａｄｄｒｅｓｓを生成する。更に暗号化機密情報生成機２１０により第１の被暗号化機密情報ＥＤＫ（ＭＫ）／ａｄｄｒｅｓｓ及び第２の被暗号化機密情報ＥＭＫ（ＣＫ）／ａｄｄｒｅｓｓと検証定数ＣＲＣｆｕｓｅ／ａｄｄｒｅｓｓをａｄｄｒｅｓｓ変換(mask)により変換された変換アドレスａｄｄｒｅｓｓ’を出力しこれに基づきａｄｄｒｅｓｓに対応したａｄｄｒｅｓｓ’に関連付けられた第１の被暗号化機密情報ＥＤＫ（ＭＫ）／ａｄｄｒｅｓｓ’及び第２の被暗号化機密情報ＥＭＫ（ＣＫ）／ａｄｄｒｅｓｓ’と検証定数ＣＲＣｆｕｓｅ／ａｄｄｒｅｓｓ’を生成する。更にこれらの情報をａｄｄｒｅｓｓ’の数字の順に並び変えてデータベースを生成する。
【００４５】
更に暗号化機密情報生成機２１０は第1のモード設定値（mode）によりセレクタ２１３がLSIメーカー鍵ｃｏｎｓｔを選択するように切り替え上記と同様の処理を行ない、第３の被暗号化機密情報ＥＤＫ２（ＭＫ２）／ｃｏｎｓｔ及び第４の被暗号化機密情報ＥＭＫ２（ＣＫ２）／ｃｏｎｓｔを生成する。
【００４６】
そして、機密情報ライセンス会社２２０は、図８に示すように、定数ＩＤｆｕｓｅ／ａｄｄｒｅｓｓ、検証用定数ＣＲＣｆｕｓｅ／ａｄｄｒｅｓｓをＦｕｓｅ実装ベンダーＣ２４０に提供する。実装用暗号化機密情報の提供を受けたＦｕｓｅ実装ベンダーＣ２４０は、それらの実装用暗号化機密情報に基づいてＬＳＩの検査及びヒューズ実装を行う（図１のステップＳ１５）。
【００４７】
図３は、Ｆｕｓｅ実装ベンダーＣ２４０で行われるヒューズ実装工程のフローチャートである。Ｆｕｓｅ実装ベンダーＣ２４０は、機密情報ライセンス会社２２０から提供された定数ＩＤｆｕｓｅ／ａｄｄｒｅｓｓを読み取り（ステップＳ３１）、Ｆｕｓｅ書き込み装置をオンにする（ステップＳ３２）。
【００４８】
そして、ＬＳＩに定数ＩＤｆｕｓｅ／ａｄｄｒｅｓｓを書き込み（ステップＳ３３）、ＴＥＳＴ信号をオフにして（ステップＳ３５）、Ｆｕｓｅ部及びＣＲＣ検査を行う（ステップＳ３６）。
【００４９】
ＣＲＣ検査の結果、定数ＩＤｆｕｓｅ／ａｄｄｒｅｓｓが正常に書き込まれていれば（ＯＫ）、良品として分類し（ステップＳ３７）、定数ＩＤｆｕｓｅ／ａｄｄｒｅｓｓが正常に書き込まれていなければ（ＮＧ）、不良品として分類する（ステップＳ３８）。
【００５０】
次に、良品に対して、ＴＥＳＴ信号をオンにして（ステップＳ３９）、ＬＳＩに設けられた復号回路及び一方向関数回路等の機能検査を行う（ステップＳ４０）。機能検査が正常であれば（ＯＫ）、良品として分類し（ステップＳ４１）、機能検査が正常でなければ（ＮＧ）、不良品として分類する（ステップＳ４２）。この機能検査段階において平行してａｄｄｒｅｓｓ’ｔｓｔを読み取り乱数性チェック装置（ステップＳ４３）にて各実装されたａｄｄｒｅｓｓ’ｔｓｔに乱数性及び固有性が維持されているかをチェックする（ステップＳ４４）。チェック結果で各実装されたａｄｄｒｅｓｓ’ｔｓｔに乱数性及び固有性に異状が認められた時（同じ値が読み取られた場合など）はＦｕｓｅ実装工程が異状であると判断して停止する（ステップＳ４５）。
【００５１】
Ｆｕｓｅ実装ベンダーＣ２４０で、機能検査が正常であり良品として分類されたＬＳＩは、セットメーカーＢ２５０に出荷され（図１のステップＳ１６）、セットメーカーＢ２５０において、セット開発が行われる（ステップＳ１７）。
【００５２】
一方、機密情報ライセンス会社２２０では、前述のように、暗号化機密情報生成機２１０により、ａｄｄｒｅｓｓ’にソートされた第１の被暗号化機密情報ＥＤＫ（ＭＫ）／ａｄｄｒｅｓｓ’、第２の被暗号化機密情報ＥＭＫ（ＣＫ）／ａｄｄｒｅｓｓ’、第３の被暗号化機密情報ＥＤＫ２（ＭＫ２）／ｃｏｎｓｔ及び第４の被暗号化機密情報ＥＭＫ２（ＣＫ２）／ｃｏｎｓｔが生成されており、これらの暗号化機密情報がセットメーカーＢ２５０に提供される（図９参照）。
【００５３】
暗号化機密情報の提供を受けたセットメーカーＢ２５０では、ＬＳＩがセットに実装される（図１のステップＳ１８）。セットメーカーＢ２５０におけるＬＳＩ実装工程は、図４のフローチャートに示される。
【００５４】
すなわち、セットメーカーＢ２５０では、暗号化機密情報と相関関係を有するアドレス（Ａｄｄｒｅｓｓ’）を読み取り（ステップＳ５１）、Ａｄｄｒｅｓｓ’値に従って、第１の被暗号化情報ＥＤＫ（ＭＫ）／ａｄｄｒｅｓｓ’及び第２の被暗号化機密情報ＥＭＫ（ＣＫ）／ａｄｄｒｅｓｓ’を機密情報ライセンス会社２２０から提供された暗号化機密情報のデータベースから検索し選択する、また同時に必要に応じて第３の被暗号化機密情報ＥＤＫ２（ＭＫ２）／ｃｏｎｓｔ及び第４の被暗号化機密情報ＥＭＫ２（ＣＫ２）／ｃｏｎｓｔを選択する（ステップＳ５２）。
【００５５】
そして、選択した第１の被暗号化機密情報ＥＤＫ（ＭＫ）／ａｄｄｒｅｓｓ’、第２の被暗号化機密情報ＥＭＫ（ＣＫ）／ａｄｄｒｅｓｓ’、第３の被暗号化機密情報ＥＤＫ２（ＭＫ２）／ｃｏｎｓｔ及び第４の被暗号化機密情報ＥＭＫ２（ＣＫ２）／ｃｏｎｓｔをセットに実装し（ステップＳ５３）、ＬＳＩ内にある第1のモード設定値のモードフラグによりIDfuseを用いるかｃｏｎｓｔを用いるかにより切り替えて同時に第１の被暗号化機密情報ＥＤＫ（ＭＫ）／ａｄｄｒｅｓｓ’、第２の被暗号化機密情報ＥＭＫ（ＣＫ）／ａｄｄｒｅｓｓ’か第３の被暗号化機密情報ＥＤＫ２（ＭＫ２）／ｃｏｎｓｔ及び第４の被暗号化機密情報ＥＭＫ２（ＣＫ２）／ｃｏｎｓｔのどちらかを入力し（ステップＳ５４）、最終的なセットの動作検査を行う（ステップＳ５５）。なおモードフラグはＦｕｓｅ切断又は端子固定を行うことにより固定にしても良い。
【００５６】
ここでセットメーカーはテスト信号を固定にすることでａｄｄｒｅｓｓ’ｔｓｔを読み出すことが出来ないようにすることでＦｕｓｅ実装ベンダーＣ２４０の持つ情報からもLSIを特定することが出来ないようにすることで更に情報を保護することが出来る。
【００５７】
また、内部機密情報ＭＫ及び最終機密情報ＤＫは、例えば、（ＹＹＹＹ）＋（セットメーカー特定ビット）の構成を有し、ＬＳＩをセットに実装したセットメーカーが特定できるビットを有する。ただし、内部機密情報ＭＫ及び最終機密情報ＤＫは、ＩＤｆｕｓｅ毎に違う値でもかまわない。このように、定数ＩＤｆｕｓｅ／ａｄｄｒｅｓｓは、アドレスに関連付けられたＬＳＩ固有のＩＤであるので、セットメーカーは同じ機密情報を流用することができない。また、内部機密情報ＭＫ及び最終機密情報ＤＫには、ＬＳＩを実装したセットメーカーを特定できるビットが含まれているので、内部機密情報ＭＫ及び最終機密情報ＤＫが流出した場合でも、その管理を強化することができる。
【実施例１】
【００５８】
次に、本実施形態の機密情報実装システムの回路及びその動作について、それぞれの工程段階ごとに説明する。
【００５９】
図１１は、本実施形態の機密情報実装システム１２０のＬＳＩ開発段階における概略構成を説明するための回路図である。ＬＳＩベンダーＡ２３０におけるＬＳＩを開発する段階では、後述するヒューズ及びアドレスには何も書き込まれていないため、検査はテスト値を用いて実施される。図１１に示すように、機密情報実装システム１２０は、記憶部１２０ａとＬＳＩ１２０ｂとを備えている。
【００６０】
記憶部１２０ａは、テスト用最終機密情報ＤＫｔｓｔを、テスト用内部機密情報ＭＫｔｓｔを用いて暗号化して得た第１のテスト用被暗号化機密情報ＥＤＫｔｓｔ（ＭＫｔｓｔ）と、テスト用内部機密情報ＭＫｔｓｔを、一方向関数による変換によって得たテスト用変換機密情報ＣＫｔｓｔを用いて暗号化して得た第２のテスト用被暗号化機密情報ＥＭＫｔｓｔ（ＣＫｔｓｔ）とを記憶している。テスト用変換機密情報ＣＫｔｓｔは、変換機密情報ＣＫの生成に用いられたものと同等の一方向関数によって変換されたものである。ＬＳＩ１２０ｂには、第１の定数記憶部１３２と、第１のセレクタ１３３と、第２の定数記憶部１３４と、第1のモード設定値と第２のセレクタ１３５とを備えた種生成部１３１が設けられている。
【００６１】
第１の定数記憶部１３２は、テスト用変換種ＩＤｔｓｔ１の元になる第２の定数ＩＤｔｓｔを記憶している。なお、第１の定数記憶部１３２には、ＬＳＩの開発が完了した後のヒューズ実装段階で、変換種ＩＤｆｕｓｅ１の元になる第１の定数ＩＤｆｕｓｅ及びアドレスが書き込まれる領域が存在する。ＬＳＩ開発段階ではこの領域のデータは使用しないので、図では第１の定数として“ｘｘｘ”，“ｙｙｙ”が記載されているが、商品として使用しない値であればどんな値でもかまわない。第１の定数記憶部１３２は、レーザトリミング等、電気ヒューズ又はその他不揮発性デバイス等によりヒューズ切断又は外部からの定数の書き込みにより、第２の定数ＩＤｔｓｔ、第１の定数ＩＤｆｕｓｅ及びアドレスが実装可能に構成されている。
【００６２】
第１のセレクタ１３３は、第１及び第２の定数“ｘｘｘ”，“ｙｙｙ”，ＩＤｔｓｔのいずれかを、テスト信号ＴＥＳＴに応じて選択出力する。第２の定数記憶部１３４は、ＬＳＩメーカー鍵となる第３の定数Ｃｏｎｓｔを記憶している。第３のセレクタ１３６は第３の定数Ｃｏｎｓｔか第２の定数ＩＤｔｓｔのいずれかを、テスト信号ＴＥＳＴに応じて選択出力する。更に第２のセレクタ１３５は、前記第１のセレクタ１３３、第３のセレクタ１３６により選択された２つの値を第1のモード設定値により選択し変換種を出力する。
【００６３】
ＬＳＩ１２０ｂは、変換種となる第２のセレクタ１３５の出力を、第１の入力ＩＮ１すなわち第１のテスト用被暗号化機密情報ＥＤＫｔｓｔ（ＭＫｔｓｔ）を用いて一方向関数によって変換し、テスト用変換機密情報ＣＫｔｓｔを生成する第１の一方向関数回路Ａ３２と、第２の入力ＩＮ２すなわち第２のテスト用被暗号化機密情報ＥＭＫｔｓｔ（ＣＫｔｓｔ）を、第１の一方向関数回路Ａ３２の出力を鍵として用いて復号化する第１の復号回路Ｘ３３と、第１の入力ＩＮ１を、第１の復号回路Ｘ３３の出力を鍵として用いて復号化する第２の復号回路Ｙ３４とを備えている。
【００６４】
さらにＬＳＩ１２０ｂには、第１のセレクタ１３３の出力を検証する検証回路１６５が設けられている。検証回路１６５は、テスト用定数ＩＤｔｓｔに対する冗長演算の結果に相当する定数ＣＲＣｔｓｔが記憶された第３の定数記憶部１６６と、第１のセレクタ１３３の出力に対して上述の冗長演算を行い、その結果と第３の定数記憶部１６６に記憶された定数ＣＲＣｔｓｔとを比較する比較回路１６８とを備えている。
【００６５】
更にＬＳＩ１２０ｂでは、第１の定数のうちアドレスを演算回路B１５３に入力する。そして第4のセレクタ１５４は１５５に示す第6の定数aaa又は１５２に示す第7の定数aaatstをテスト信号ＴＥＳＴに応じて選択出力する。この選択出力も演算回路B１５３に入力し前記演算回路Ｂ１５３に入力したアドレスを変換して出力する変換回路１５１を備えている。
【００６６】
ここで第6の定数aaaは外部から入力し設定する手段を講じる場合もある。この場合は図１４に示すように第6の定数aaaはLSIベンダーＡ２３０には渡されず、セットメーカB250に提供される。そして図15の変換回路１５１に示すようにLSI実装段階では何もかかれず任意の初期値（nodata）が入っている。
【００６７】
なお、ＬＳＩ開発時は、第１の定数記憶部１３２にはヒューズ実装段階又は外部からの定数書き込み段階で使用する第１の定数ＩＤｆｕｓｅ及びアドレスが書き込まれていないことに対応して、第３の定数記憶部１６６にも第１の定数ＩＤｆｕｓｅ及びアドレスに対応するデータが書き込まれていないので、図ではｚｚｚと表示した。ｚｚｚもｘｘｘ，ｙｙｙと同様に、商品で使用しない値であればどんな値でもかまわない。なお第１の定数、第２の定数、第３の定数、第１の定数に対する冗長演算の結果に相当する第４の定数、第２の定数に対する冗長演算の結果に相当する第５の定数、第６の定数、第７の定数はLSI外部には読み出せない構成とし、機密上の秘匿性を向上させる。第４の定数、第５の定数を出力させて検証するので、実装段階で第１の定数、第２の定数の正当性を検証することができる。
【００６８】
次に、ＬＳＩ１２０ｂの検査時における動作について説明する。この場合、テスト信号ＴＥＳＴは“１”に設定する。このとき、第１のセレクタ１３３は、テスト信号ＴＥＳＴとして“１”を受けて、第１の定数記憶部１３２に記憶された第２のテスト用定数ＩＤｔｓｔを選択出力する。
【００６９】
同様に第２のセレクタ１３５もテスト信号ＴＥＳＴとして“１”を受けて第１の定数記憶部１３２に記憶されたＩＤｔｓｔを選択する。すなわち、第1のモード設定値の値に関わらず種生成部１３１から、変換種としてＩＤｔｓｔが出力される。
【００７０】
そして、第１の一方向関数回路Ａ３２は、種生成部１３１から出力されたテスト用変換種ＩＤｔｓｔ１を、第１の入力ＩＮ１すなわち第１のテスト用被暗号化機密情報ＥＤＫｔｓｔ（ＭＫｔｓｔ）を用いて、テスト用変換機密情報ＣＫｔｓｔの生成に用いたものに相当する一方向関数によって変換する。これにより、第１の一方向関数回路Ａ３２から、テスト用変換機密情報ＣＫｔｓｔが生成出力される。
【００７１】
第１の復号回路Ｘ３３は、第２の入力ＩＮ２すなわち第２の被暗号化機密情報ＥＭＫｔｓｔ（ＣＫｔｓｔ）を、第１の一方向関数回路Ａ３２の出力すなわちテスト用変換機密情報ＣＫｔｓｔを鍵として用いて復号化する。これにより、第１の復号回路Ｘ３３から、テスト用内部機密情報ＭＫｔｓｔが生成出力される。
【００７２】
第２の復号回路Ｙ３４は、第１の入力ＩＮ１すなわち第１のテスト用被暗号化機密情報ＥＤＫｔｓｔ（ＭＫｔｓｔ）を、第１の復号回路Ｘ３３の出力すなわちテスト用内部機密情報ＭＫｔｓｔを鍵として用いて復号化する。これにより、第２の復号回路Ｙ３４から、テスト用最終機密情報ＤＫｔｓｔが生成される。
【００７３】
一方、検証回路１６５内の第５のセレクタ１６７は、テスト信号ＴＥＳＴとして“１”を受けて、第３の定数記憶部１６６に記憶されたテスト用検証定数ＣＲＣｔｓｔを選択出力する。
【００７４】
またこのとき、第１のセレクタ１３３の出力は、検証回路１６５内の比較回路１６８にも入力される。比較回路１６８によって、第１のセレクタ１３３の出力に対する冗長演算の結果と、第５のセレクタ１６７の出力である第３の定数記憶部１６６に記憶されたＣＲＣｔｓｔとが同一であるか否かがチェックされる。そして、比較回路１６８において不一致が検出された場合は、第２の復号回路３４の動作を停止する。これにより、種生成部１３１に記憶された第２のテスト用定数ＩＤｔｓｔの正当性を検証することができる。また、ＬＳＩ開発段階ではダミーのパラメーターで検査することにより、ＬＳＩ開発者が暗号化機密情報（パラメーター）を取得できないので、暗号化機密情報の秘匿性を向上することができる。さらに、テスト値では正規の製品は動作しないので、たとえ暗号化機密情報が不正に流出した場合でも、コンテンツの著作権を守ることができる。なお、ＬＳＩ１２０ｂの通常時にはテスト信号ＴＥＳＴが“０”に設定されるが、ＬＳＩ開発段階では通常動作を行わないのでその説明は省略する。
【００７５】
またLSI検査段階ではテスト信号ＴＥＳＴは“０”に設定し、第1のモード設定値を第３の定数Ｃｏｎｓｔが選択されるようにして、第３の被暗号化機密情報ＥＤＫｔｓｔ（ＭＫｔｓｔ）／ｃｏｎｓｔ及び第４の被暗号化機密情報ＥＭＫｔｓｔ（ＣＫｔｓｔ）／ｃｏｎｓｔを用いて検査を行ってもよい。
【００７６】
図１２は、本実施形態の機密情報実装システム１２０のヒューズ実装段階における概略構成を説明するための回路図である。この段階において、ヒューズ実装ベンダーＣ２３０は、機密情報ライセンス会社２２０からライセンスを受けた機密情報であるＩＤｆｕｓｅを任意のＬＳＩに個別に実装する。この段階での機能検査もテスト信号ＴＥＳＴを“１”にしてテスト値を使用して行われ、ヒューズの書き込みの正当性はテスト信号を“０”にしてＣＲＣ値との比較検査で実施される。
【００７７】
図１２に示すように、ＬＳＩ１２０ｂに対するヒューズ書き込みは、機密情報実装システム１２０の外部に設けられたＩｄｆｕｓｅ実装装置３００から行われる。すなわち、種生成部１３１の第１の定数記憶部１３２にＩＤｆｕｓｅ／ａｄｄｒｅｓｓが書き込まれ、検証回路１６５の定数記憶部１６６にＣＲＣｆｕｓｅが書き込まれる。
【００７８】
ヒューズの書き込みの正当性は、テスト信号ＴＥＳＴを“０”に設定して行われる。このとき、第１のセレクタ１３３は、テスト信号ＴＥＳＴとして“０”を受けて、第１の定数記憶部１３２に記憶された第１の定数ＩＤｆｕｓｅ／ａｄｄｒｅｓｓを選択出力する。また第５のセレクタ１６７は、テスト信号ＴＥＳＴとして“０”を受けて、第３の定数記憶部１６６に記憶された検証定数ＣＲＣｆｕｓｅ／ａｄｄｒｅｓｓを選択出力する。
【００７９】
第１のセレクタ１３３の出力は、検証回路１６５内の比較回路１６８に入力される。比較回路１６８によって、第１のセレクタ１３３の出力に対する冗長演算の結果と、第３の定数記憶部１６６にヒューズ実装されたＣＲＣｆｕｓｅ／ａｄｄｒｅｓｓとが同一であるか否かがチェックされる。そして、比較回路１６８において不一致が検出された場合は、第２の復号回路３４の動作を停止する。これにより、種生成部１３１に記憶された第１の定数ＩＤｆｕｓｅ／ａｄｄｒｅｓｓの正当性を検証することができる。
【００８０】
一方、ＬＳＩ１２０ｂの機能検査は、図１１に示したＬＳＩ開発段階と同様に、テスト信号ＴＥＳＴを“１”に設定し、第２のテスト用定数ＩＤｔｓｔ及びテスト用検証定数ＣＲＣｔｓｔにより行われる。また同時に第１の定数のうちａｄｄｒｅｓｓ情報はアドレス変換回路１５１の演算B153に入力される。ここでａｄｄｒｅｓｓ情報はテスト信号ＴＥＳＴを“１”にすることで第4のセレクタ１５４で選択出力される第7の定数aaatstにより変換されて変換アドレス情報２ａｄｄｒｅｓｓ’ｔｓｔ（第２の変換アドレス情報）をＬＳＩ１２０ｂの外部に出力する。この出力されたａｄｄｒｅｓｓ’ｔｓｔは乱数性チェック装置１２０Cに入力されデータが蓄積される。LSI毎に蓄積されるａｄｄｒｅｓｓ’ｔｓｔに乱数性又は固有性が維持されないものが判定されたときにはヒューズ実装が中断される（図３参照）。
【００８１】
図１３は、本実施形態の機密情報実装システム１２０において、セットへの機密情報実装段階における概略構成を説明するための回路図である。セットメーカーＢ２５０では、機密情報ライセンス会社２２０からライセンスを受けた暗号化機密情報（パラメーター）を、ＬＳＩ１２０ｂから出力される変換アドレス情報１ａｄｄｒｅｓｓ’（第１の変換アドレス情報）に基づき、対応した暗号化機密情報（パラメーター）を記憶部１２０ａに実装する。
【００８２】
セットへの機密情報実装段階においてはテスト信号ＴＥＳＴを“０”に設定される。図１３に示すように、暗号化機密情報実装装置３０１が機密情報実装システム１２０の外部に設けられ、一方、ＬＳＩ１２０ｂの内部には、種生成部１３１の第１の定数記憶部１３２における第１の定数ＩＤｆｕｓｅと相関関係を有するアドレスを、テスト信号ＴＥＳＴを“０”にすることで第4のセレクタ１５４で選択出力される第６の定数aaaにより変換されたａｄｄｒｅｓｓ’をＬＳＩ１２０ｂの外部に出力する。この出力されたａｄｄｒｅｓｓ’に基づき暗号化機密情報実装装置３０１は暗号化機密情報（パラメーター）を記憶部１２０ａに実装していく。
【００８３】
ここで第6の定数aaaは外部から入力し設定する手段を講じる場合もある。この場合は図１６に示すように第6の定数aaaは暗号化機密情報実装装置３０１からＬＳＩ１２０ｂの変換回路１５１に設定される。
【００８４】
暗号化機密情報実装装置３０１は、アドレス変換回路１５１から第１の定数ＩＤｆｕｓｅと相関関係を有する変換アドレス情報１ａｄｄｒｅｓｓ’を読み出し、暗号化機密情報実装装置３０１内のデータベースにおいて、指定された変換アドレス情報１ａｄｄｒｅｓｓ’の順に配置された暗号化機密情報を、機密情報実装システム１２０の記憶部１２０ａに書き込む。図１３では、記憶部１２０ａに第１の被暗号化機密情報ＥＤＫ（ＭＫ）／ａｄｄｒｅｓｓ’、第２の被暗号化機密情報ＥＭＫ（ＣＫ））／ａｄｄｒｅｓｓ’、第３の被暗号化機密情報ＥＤＫ２（ＭＫ２）／ｃｏｎｓｔ及び第４の被暗号化機密情報ＥＭＫ２（ＣＫ２）／ｃｏｎｓｔが記憶された状態を示す。
【００８５】
次に、セット動作の検査（通常時動作）が行われる。このとき、第１のセレクタ１３３は、テスト信号ＴＥＳＴとして“０”を受けて、第１の定数記憶部１３２に記憶された第１の定数ＩＤｆｕｓｅ／ａｄｄｒｅｓｓを選択出力する。
【００８６】
そして第１の被暗号化機密情報ＥＤＫ（ＭＫ）／ａｄｄｒｅｓｓ’と、第２の被暗号化機密情報ＥＭＫ（ＣＫ）／ａｄｄｒｅｓｓ’の情報を使用する場合には第1のモード設定値を“１”に設定する。これにより第2のセレクタ１３５は第１のセレクタ１３３から出力されたＩＤｆｕｓｅが選択出力されこれにより、種生成部１３１から、変換種ＩＤｆｕｓｅ１が出力される。
【００８７】
そして、第１の一方向関数回路Ａ３２は、種生成部１３１から出力された変換種ＩＤｆｕｓｅ１を、第１の被暗号化機密情報ＥＤＫ（ＭＫ）／ａｄｄｒｅｓｓ’を用いて、変換機密情報ＣＫの生成に用いたものに相当する一方向関数によって変換する。これにより、第１の一方向関数回路Ａ３２から、変換機密情報ＣＫが生成出力される。
【００８８】
第１の復号回路Ｘ３３は、第２の被暗号化機密情報ＥＭＫ（ＣＫ）／ａｄｄｒｅｓｓ’を、第１の一方向関数回路Ａ３２の出力すなわち変換機密情報ＣＫを鍵として用いて復号化する。これにより、第１の復号回路Ｘ３３から、内部機密情報ＭＫが生成出力される。第２の復号回路Ｙ３４は、第１の入力ＩＮ１すなわち第１の被暗号化機密情報ＥＤＫ（ＭＫ）／ａｄｄｒｅｓｓ’を、第１の復号回路Ｘ３３の出力すなわち内部機密情報ＭＫを鍵として用いて復号化する。これにより、第２の復号回路Ｙ３４から、最終機密情報ＤＫが生成される。
【００８９】
次に第３の被暗号化機密情報ＥＤＫ２（ＭＫ２）／Ｃｏｎｓｔと、第４の被暗号化機密情報ＥＭＫ２（ＣＫ２）／Ｃｏｎｓｔの情報を使用する場合には第1のモード設定値を“０”に設定する。これにより第2のセレクタ１３５は第３のセレクタ１３６からテスト信号ＴＥＳＴとして“０”により選択されたＣｏｎｓｔが選択出力され、種生成部１３１から、変換種Const1が出力される。
【００９０】
そして、第１の一方向関数回路Ａ３２は、種生成部１３１から出力された変換種Const1を、第３の被暗号化機密情報ＥＤＫ２（ＭＫ２）／Constを用いて、変換機密情報ＣＫ２の生成に用いたものに相当する一方向関数によって変換する。これにより、第１の一方向関数回路Ａ３２から、変換機密情報ＣＫ２が生成出力される。
【００９１】
第１の復号回路Ｘ３３は、第４の被暗号化機密情報ＥＭＫ２（ＣＫ２）／Constを、第１の一方向関数回路Ａ３２の出力すなわち変換機密情報ＣＫ２を鍵として用いて復号化する。これにより、第１の復号回路Ｘ３３から、内部機密情報ＭＫ２が生成出力される。第２の復号回路Ｙ３４は、第１の入力ＩＮ１すなわち第３の被暗号化機密情報ＥＤＫ２（ＭＫ２）／Constを、第１の復号回路Ｘ３３の出力すなわち内部機密情報ＭＫ２を鍵として用いて復号化する。これにより、第２の復号回路Ｙ３４から、最終機密情報ＤＫ２が生成される。
【００９２】
またこのとき、第５のセレクタ１６７は、テスト信号ＴＥＳＴとして“０”を受けて、第３の定数記憶部１６６に記憶された検証用定数ＣＲＣｆｕｓｅ／ａｄｄｒｅｓｓを選択出力する。第５のセレクタ１６７の出力は、比較回路１６８に入力される。第１のセレクタ１３３の出力も、検証回路１６５内の比較回路１６８に入力される。比較回路１６８によって比較検査を行い、結果が不一致の場合は、第２の復号回路３４の動作を停止する。これにより、種生成部１３１に記憶された第１の定数ＩＤｆｕｓｅ／ａｄｄｒｅｓｓの正当性を検証することができる。
【００９３】
このように本実施形態の機密情報実装システムによれば、ＬＳＩに固有な識別情報であるＩＤｆｕｓｅに対応したアドレスを外部出力する場合、アドレス自体をそのまま出力するのではなく、アドレス変換回路１５１の演算Ｂ１５３により変換（排他論理等）した変換アドレス情報（address’）として出力する。その際、検査段階では検査用の定数aaatst（第７の定数）を入力とし、実装段階では定数aaa（第６の定数）を入力とする切り替えを行う。更に、実装段階において、定数aaaをnodata（任意データ）として外部から入力する仕組みをとり、nodataをセットメーカーに分散させることで耐タンパ性を向上させることができる。
【００９４】
また、本実施形態の種生成部１３１では、モード切替部分（mode１３７、セレクタ１３５，１３６）において、所定数のＬＳＩに共通の第３の定数Constと、各ＬＳＩに固有のIDfuseとを切り替えることができるため、機密情報の実装に対する柔軟性を向上させることができる。
【００９５】
例えば、記憶部１２０ａへ機密情報を実装記憶する場合において、定数Constで記憶させる場合は、機密性はいくぶん低下するが書き込み（実装時間）を短くすることができる。一方、各ＬＳＩに固有のIDfuseで記憶させる場合は、書き込み時間は長くなるが機密性を高めることができる。
【００９６】
このため、記憶部１２０ａに記憶させるデータ量に応じて定数ConstとIDfuseを切り替える。すなわち、データ量が小さい場合（鍵等はデータ量が小さく、かつ機密性の確保も必要）は、機密性を優先するため、機密情報をIDfuseに対応付けて記憶させ（EDK(MK)/address’１７１等）、一方、データ量が大きい場合（プログラム等はデータ量が大きく、かつそれほど機密性を確保する必要はない）は、実装時間を優先するため定数Constで記憶させ（EDK2(MK2)/const１７３等）、機密情報の実装に対する柔軟性を向上させることができる。
【実施例２】
【００９７】
図１６では更に、本実施形態の機密情報実装システム１２０において、ＬＳＩ１２０ｂに、第２の復号回路Ｙ３４から出力される最終機密情報ＤＫを入力とする機密処理回路１４１ａ又は機密処理回路１４１ｂを設けた構成を示す。
【００９８】
ここで前記実施例と同様に第1のモード設定値の値によりセレクタ１３５によってIDfuseが選択出力され、このときに第１の被暗号化機密情報ＥDK（MK）／ａｄｄｒｅｓｓ’と第２の被暗号化機密情報ＥＭＫ（ＣＫ）／ａｄｄｒｅｓｓ’を入力することで最終機密情報DKを得る。この最終機密情報は機密処理回路１４１ａに用いられ、次に第１のモード設定値の値によりセレクタ１３５によってconstが選択出力され、このときに第３の被暗号化機密情報ＥDK（MK）／constと第４の被暗号化機密情報ＥＭＫ（ＣＫ）／constを入力することで最終機密情報DK２を得る。この最終機密情報DK２は機密処理回路１４１ａとは別の機密処理回路１４１ｂに用いるようにする。
【００９９】
本実施形態によれば、最終機密情報ＤＫとDK2を別の用途の暗号処理に用いることが出来る。これにより被暗号化機密情報の実装を柔軟に実現することが出来る。
【実施例３】
【０１００】
図１７は、本実施形態の機密情報実装システム１２０において、記憶部１２０ａに、第２の復号回路Ｙ３４から出力される最終機密情報ＤＫとDK2とは別に、第５の被暗号化機密情報と第６の被暗号化機密情報により復号回路Ｙ３４から出力される最終機密情報DK3を再度暗号化して第７の被暗号化機密情報を生成する方法を設けた構成を示す。
【０１０１】
図１７において実施例１と同様にIDfuse実装、LSI検査等は実施されるので本実施例では割愛し、次に、セット動作の検査（通常時動作）以降について説明する。
セット動作の検査においては第１のセレクタ１３３は、テスト信号ＴＥＳＴとして“０”を受けて、第１の定数記憶部１３２に記憶された第１の定数ＩＤｆｕｓｅ／ａｄｄｒｅｓｓを選択出力する。
【０１０２】
そして第１の被暗号化機密情報ＥＤＫ（ＭＫ）／ａｄｄｒｅｓｓ’と、第２の被暗号化機密情報ＥＭＫ（ＣＫ）／ａｄｄｒｅｓｓ’の情報を使用する場合には第1のモード設定値を“１”に設定する。これにより第2のセレクタ１３５は第１のセレクタ１３３から出力されたＩＤｆｕｓｅが選択出力されこれにより、種生成部１３１から、変換種ＩＤｆｕｓｅ１が出力される。
【０１０３】
そして、第１の一方向関数回路Ａ３２は、種生成部１３１から出力された変換種ＩＤｆｕｓｅ１を、第１の被暗号化機密情報ＥＤＫ（ＭＫ）／ａｄｄｒｅｓｓ’を用いて、変換機密情報ＣＫの生成に用いたものに相当する一方向関数によって変換する。これにより、第１の一方向関数回路Ａ３２から、変換機密情報ＣＫが生成出力される。
【０１０４】
第１の復号回路Ｘ３３は、第２の被暗号化機密情報ＥＭＫ（ＣＫ）／ａｄｄｒｅｓｓ’を、第１の一方向関数回路Ａ３２の出力すなわち変換機密情報ＣＫを鍵として用いて復号化する。これにより、第１の復号回路Ｘ３３から、内部機密情報ＭＫが生成出力される。第２の復号回路Ｙ３４は、第１の入力ＩＮ１すなわち第１の被暗号化機密情報ＥＤＫ（ＭＫ）／ａｄｄｒｅｓｓ’を、第１の復号回路Ｘ３３の出力すなわち内部機密情報ＭＫを鍵として用いて復号化する。これにより、第２の復号回路Ｙ３４から、最終機密情報ＤＫが生成される。
【０１０５】
次に第３の被暗号化機密情報ＥＤＫ２（ＭＫ２）／Ｃｏｎｓｔと、第４の被暗号化機密情報ＥＭＫ２（ＣＫ２）／Ｃｏｎｓｔの情報を使用する場合には第1のモード設定値を“０”に設定する。これにより第2のセレクタ１３５は第３のセレクタ１３６からテスト信号ＴＥＳＴとして“０”により選択されたＣｏｎｓｔが選択出力され、種生成部１３１から、変換種Const1が出力される。
【０１０６】
そして、第１の一方向関数回路Ａ３２は、種生成部１３１から出力された変換種Const1を、第３の被暗号化機密情報ＥＤＫ２（ＭＫ２）／Constを用いて、変換機密情報ＣＫ２の生成に用いたものに相当する一方向関数によって変換する。これにより、第１の一方向関数回路Ａ３２から、変換機密情報ＣＫ２が生成出力される。
【０１０７】
第１の復号回路Ｘ３３は、第４の被暗号化機密情報ＥＭＫ２（ＣＫ２）／Constを、第１の一方向関数回路Ａ３２の出力すなわち変換機密情報ＣＫ２を鍵として用いて復号化する。これにより、第１の復号回路Ｘ３３から、内部機密情報ＭＫ２が生成出力される。第２の復号回路Ｙ３４は、第１の入力ＩＮ１すなわち第３の被暗号化機密情報ＥＤＫ２（ＭＫ２）／Constを、第１の復号回路Ｘ３３の出力すなわち内部機密情報ＭＫ２を鍵として用いて復号化する。これにより、第２の復号回路Ｙ３４から、最終機密情報ＤＫ２が生成される。
【０１０８】
ここで最終機密情報ＤＫ及び最終機密情報ＤＫ２は最終機密情報として機密処理回路A１４１ａ又は機密処理回路B１４１ｂにセットされる。
【０１０９】
またこのとき、第５のセレクタ１６７は、テスト信号ＴＥＳＴとして“０”を受けて、第３の定数記憶部１６６に記憶された検証用定数ＣＲＣｆｕｓｅ／ａｄｄｒｅｓｓを選択出力する。第５のセレクタ１６７の出力は、比較回路１６８に入力される。第１のセレクタ１３３の出力も、検証回路１６５内の比較回路１６８に入力される。比較回路１６８によって比較検査を行い、結果が不一致の場合は、第２の復号回路３４の動作を停止する。これにより、種生成部１３１に記憶された第１の定数ＩＤｆｕｓｅ／ａｄｄｒｅｓｓの正当性を検証することができる。
【０１１０】
次に第５の被暗号化機密情報ＥＤＫ３（ＭＫ３）／Ｃｏｎｓｔと、第６の被暗号化機密情報ＥＭＫ３（ＣＫ３））／Ｃｏｎｓｔの情報を使用する場合には第1のモード設定値を“０”に設定する。これにより第2のセレクタ１３５は第３のセレクタ１３６からテスト信号ＴＥＳＴとして“０”により選択されたＣｏｎｓｔが選択出力され、種生成部１３１から、変換種Const1が出力される。
【０１１１】
そして、第１の一方向関数回路Ａ３２は、種生成部１３１から出力された変換種Const1を、第５の被暗号化機密情報ＥＤＫ３（ＭＫ３）／Constを用いて、変換機密情報ＣＫ３の生成に用いたものに相当する一方向関数によって変換する。これにより、第１の一方向関数回路Ａ３２から、変換機密情報ＣＫ３が生成出力される。
【０１１２】
第１の復号回路Ｘ３３は、第６の被暗号化機密情報ＥＭＫ３（ＣＫ３）／Constを、第１の一方向関数回路Ａ３２の出力すなわち変換機密情報ＣＫ３を鍵として用いて復号化する。これにより、第１の復号回路Ｘ３３から、内部機密情報ＭＫ３が生成出力される。第２の復号回路Ｙ３４は、第１の入力ＩＮ１すなわち第３の被暗号化機密情報ＥＤＫ３（ＭＫ３）／Constを、第１の復号回路Ｘ３３の出力すなわち内部機密情報ＭＫ３を鍵として用いて復号化する。これにより、第２の復号回路Ｙ３４から、最終機密情報ＤＫ３が生成される。
【０１１３】
次に第１のモード設定値１３７とは独立の第２のモード設定値３９を“１”に設定する。これにより第１の暗号回路XX３５の動作が許可される。そして最終機密情報ＤＫ３を第１の暗号回路XX３５に入力し第１の定数ＩＤｆｕｓｅを鍵として暗号化を行う。その結果得られた第7の被暗号化機密情報EDK3(IDfuse)をLSI１２０ｂの外部に出力し、記憶部１２０ａの記憶部１７７に書込みを行う。
【０１１４】
書込みが行なわれた後は第５の被暗号化機密情報ＥＤＫ３（ＭＫ３）／Ｃｏｎｓｔと、第６の被暗号化機密情報ＥＭＫ３（ＣＫ３）／Ｃｏｎｓｔは消去されても良い。この段階でセット上での実装が完了し最終動作の検査（通常時動作）として第7の被暗号化機密情報EDK3(IDfuse)をLSI１２０ｂに入力する。ここで第7の被暗号化機密情報EDK3(IDfuse)は第3の復号回路YY３６に入力され第１の定数ＩＤｆｕｓｅを鍵として復号化され、最終機密情報DK３を出力する。ここで最終機密情報ＤＫ３は最終機密情報として機密処理回路C１４１ｃにセットされ、通常動作の検査が実施される。
【０１１５】
本実施形態によれば、最終機密情報ＤＫ３をIDfuseで再暗号化して出力することも出来るようにすることで、各被暗号化機密情報の実装に柔軟性の向上を図ることができる。
【０１１６】
また、本実施形態では、記憶部１２０ａへ機密情報を追加する場合に、実装処理の効率化の観点から、取り敢えず定数constで機密情報を実装し、その後、ＬＳＩに実装されているIDfuseを使用して暗号化し、暗号化機密情報EDK3(IDfuse)１７７を実装する。その後、定数constで実装した機密情報EDK3(MK3)/const１７５、EMK3(CK3)/const１７６を記憶部１２０ａから削除する。
【０１１７】
これにより柔軟に機密情報を実装することができる。その理由は、最初から唯一鍵で実装できれば良いが、その場合は追加機密情報に割り当てる鍵を選択できるように鍵管理が必要となる。そのような管理は困難であるから、取り敢えず定数constで実装しておき、ＬＳＩに実装されている唯一鍵IDfuseで暗号化したうえで、記憶部１２０ａに書き込むことにより、機密情報の実装の柔軟性を向上させることができる。
【実施例４】
【０１１８】
図２０は、本実施形態の機密情報実装システム１２０において、ＬＳＩ１２０ｂに、図１８の鍵実装システム７と同様に第1の定数IDfuseを鍵として第３の定数Ｃｏｎｓｔを入力として変換種の生成に用いた第２の一方向関数回路Ｂ７５を設けた構成を示す。
また図2１、図2２は本実施例における，暗号化された機密情報を生成する暗号化機密情報生成機２００、２１０を説明するためのブロック図である。
【０１１９】
図２１では、暗号化機密情報生成機２００により、ＬＳＩベンダーＡ２３０に提供する暗号化機密情報を生成する。すなわち、暗号回路２０１により、開発用機密情報ＤＫｔｓｔを、テスト用内部機密情報ＭＫｔｓｔを鍵として用いて暗号化し、第１の開発用被暗号化情報ＥＤＫｔｓｔ（ＭＫｔｓｔ）を生成する。
【０１２０】
次に、セレクタ２０３は第1のモード設定値により、選択されたテスト用定数ＩＤｔｓｔを鍵としてLSIメーカー鍵ｃｏｎｓｔを入力として変換種を出力する。ここでLSIメーカー鍵constの値を検査するためにセレクタ２０３はLSIメーカー鍵constを出力するように第1のモード設定値を設定しても良い。さらにその変換結果を、一方向関数回路２０４により、暗号回路２０１によって生成された第１の開発用被暗号化情報ＥＤＫｔｓｔ（ＭＫｔｓｔ）を鍵として用いて一方向関数によって変換し、テスト用変換鍵ＣＫｔｓｔを生成する。
【０１２１】
その後、暗号回路２０５により、テスト用内部機密情報ＭＫｔｓｔを、一方向関数回路２０４から出力されるテスト用変換鍵ＣＫｔｓｔを鍵として用いて暗号化し、第２の開発用被暗号化情報ＥＭＫｔｓｔ（ＣＫｔｓｔ）を生成する。また、ＣＲＣ生成回路２０２により、テスト用定数ＩＤｔｓｔに対して冗長演算（例えばＣＲＣ１６）を行い、検証テスト用定数ＣＲＣｔｓｔを生成する。
【０１２２】
図２２では、暗号回路２１１により、最終機密情報ＤＫを、アドレス(address)に対応した内部機密情報ＭＫを鍵として用いて暗号化し、アドレスに関連付けられた第１の被暗号化機密情報ＥＤＫ（ＭＫ）／ａｄｄｒｅｓｓを生成する。
【０１２３】
次に、セレクタ２１３は第1のモード設定値により、選択されたアドレスに対応した定数ＩＤｆｕｓｅ／ａｄｄｒｅｓｓを鍵としてLSIメーカー鍵ｃｏｎｓｔを入力として変換種を出力する。さらにその結果を、一方向関数回路２１４により、暗号回路２１１によって生成された第１の被暗号化機密情報ＥＤＫ（ＭＫ）／ａｄｄｒｅｓｓを鍵として用いて一方向関数によって変換し、変換鍵ＣＫを生成する。
【０１２４】
その後、内部機密情報ＭＫを、一方向関数回路２１４により生成された変換機密情報ＣＫ及びアドレスを鍵として用いて暗号化し、第２の被暗号化機密情報ＥＭＫ（ＣＫ）／ａｄｄｒｅｓｓを生成する。また、ＣＲＣ生成回路２１２により、アドレスに対応した定数ＩＤｆｕｓｅ／ａｄｄｒｅｓｓに対して冗長演算（例えばＣＲＣ１６）を行い、アドレスに対応した検証定数ＣＲＣｆｕｓｅ／ａｄｄｒｅｓｓを生成する。更に暗号化機密情報生成機２１０により第１の被暗号化機密情報ＥＤＫ（ＭＫ）／ａｄｄｒｅｓｓ及び第２の被暗号化機密情報ＥＭＫ（ＣＫ）／ａｄｄｒｅｓｓと検証定数ＣＲＣｆｕｓｅ／ａｄｄｒｅｓｓをａｄｄｒｅｓｓ変換(mask)により変換された変換アドレスａｄｄｒｅｓｓ’を出力しこれに基づきａｄｄｒｅｓｓに対応したａｄｄｒｅｓｓ’に関連付けられた第１の被暗号化機密情報ＥＤＫ（ＭＫ）／ａｄｄｒｅｓｓ’及び第２の被暗号化機密情報ＥＭＫ（ＣＫ）／ａｄｄｒｅｓｓ’と検証定数ＣＲＣｆｕｓｅ／ａｄｄｒｅｓｓ’を生成する。更にこれらの情報をａｄｄｒｅｓｓ’の数字の順に並び変えてデータベースを生成する。
【０１２５】
更に暗号化機密情報生成機２１０は第1のモード設定値によりセレクタ２１３がLSIメーカー鍵ｃｏｎｓｔを選択するように切り替え上記と同様の処理を行ない、第３の被暗号化機密情報ＥＤＫ２（ＭＫ２）／ｃｏｎｓｔ及び第４の被暗号化機密情報ＥＭＫ２（ＣＫ２）／ｃｏｎｓｔを生成する。
【０１２６】
これらで生成された各情報を実施例１と同様にLSIメーカー、fuse実装ベンダー、セットメーカーに提供し各々実装を行う。ここでセットメーカーでの検査段階以外は実施例１と同じなので割愛し、図２０を基にするセットメーカーでの検査段階（通常時動作）での動作について以下に説明する。
【０１２７】
セット動作の検査においては第１のセレクタ１３３は、テスト信号ＴＥＳＴとして“０”を受けて、第１の定数記憶部１３２に記憶された第１の定数ＩＤｆｕｓｅ／ａｄｄｒｅｓｓを選択出力する。そして第２の一方向関数回路Ｂ７５は、第３の定数Ｃｏｎｓｔを、第１のセレクタ１３３の出力すなわち第１の定数ＩＤｆｕｓｅを鍵として用いて一方向関数によって変換しIDconstを出力する。
【０１２８】
そして第１の被暗号化機密情報ＥＤＫ（ＭＫ）／ａｄｄｒｅｓｓ’と、第２の被暗号化機密情報ＥＭＫ（ＣＫ）／ａｄｄｒｅｓｓ’の情報を使用する場合には第1のモード設定値を“１”に設定する。これにより第2のセレクタ１３５は第２の一方向関数回路Ｂ７５から出力されたIDconstが選択出力されこれにより、種生成部１３１から、変換種ＩＤｆｕｓｅ１が出力される。
【０１２９】
そして、第１の一方向関数回路Ａ３２は、種生成部１３１から出力された変換種ＩＤｆｕｓｅ１を、第１の被暗号化機密情報ＥＤＫ（ＭＫ）／ａｄｄｒｅｓｓ’を用いて、変換機密情報ＣＫの生成に用いたものに相当する一方向関数によって変換する。これにより、第１の一方向関数回路Ａ３２から、変換機密情報ＣＫが生成出力される。
【０１３０】
第１の復号回路Ｘ３３は、第２の被暗号化機密情報ＥＭＫ（ＣＫ）／ａｄｄｒｅｓｓ’を、第１の一方向関数回路Ａ３２の出力すなわち変換機密情報ＣＫを鍵として用いて復号化する。これにより、第１の復号回路Ｘ３３から、内部機密情報ＭＫが生成出力される。第２の復号回路Ｙ３４は、第１の入力ＩＮ１すなわち第１の被暗号化機密情報ＥＤＫ（ＭＫ）／ａｄｄｒｅｓｓ’を、第１の復号回路Ｘ３３の出力すなわち内部機密情報ＭＫを鍵として用いて復号化する。これにより、第２の復号回路Ｙ３４から、最終機密情報ＤＫが生成される。
【０１３１】
次に第３の被暗号化機密情報ＥＤＫ２（ＭＫ２）／Ｃｏｎｓｔと、第４の被暗号化機密情報ＥＭＫ２（ＣＫ２）／Ｃｏｎｓｔの情報を使用する場合には第1のモード設定値を“０”に設定する。これにより第2のセレクタ１３５は第３のセレクタ１３６からテスト信号ＴＥＳＴとして“０”により選択されたＣｏｎｓｔが選択出力され、種生成部１３１から、変換種Const1が出力される。
【０１３２】
そして、第１の一方向関数回路Ａ３２は、種生成部１３１から出力された変換種Const1を、第３の被暗号化機密情報ＥＤＫ２（ＭＫ２）／Constを用いて、変換機密情報ＣＫ２の生成に用いたものに相当する一方向関数によって変換する。これにより、第１の一方向関数回路Ａ３２から、変換機密情報ＣＫ２が生成出力される。
【０１３３】
第１の復号回路Ｘ３３は、第４の被暗号化機密情報ＥＭＫ２（ＣＫ２）／Constを、第１の一方向関数回路Ａ３２の出力すなわち変換機密情報ＣＫ２を鍵として用いて復号化する。これにより、第１の復号回路Ｘ３３から、内部機密情報ＭＫ２が生成出力される。第２の復号回路Ｙ３４は、第１の入力ＩＮ１すなわち第３の被暗号化機密情報ＥＤＫ２（ＭＫ２）／Constを、第１の復号回路Ｘ３３の出力すなわち内部機密情報ＭＫ２を鍵として用いて復号化する。これにより、第２の復号回路Ｙ３４から、最終機密情報ＤＫ２が生成される。
【０１３４】
ここで最終機密情報ＤＫ及び最終機密情報ＤＫ２は最終機密情報として機密処理回路A１４１ａ又は機密処理回路B１４１ｂにセットされる。
【０１３５】
またこのとき、第５のセレクタ１６７は、テスト信号ＴＥＳＴとして“０”を受けて、第３の定数記憶部１６６に記憶された検証用定数ＣＲＣｆｕｓｅ／ａｄｄｒｅｓｓを選択出力する。第５のセレクタ１６７の出力は、比較回路１６８に入力される。第１のセレクタ１３３の出力も、検証回路１６５内の比較回路１６８に入力される。比較回路１６８によって比較検査を行い、結果が不一致の場合は、第２の復号回路３４の動作を停止する。これにより、種生成部１３１に記憶された第１の定数ＩＤｆｕｓｅ／ａｄｄｒｅｓｓの正当性を検証することができる。
【０１３６】
本実施形態によれば、実施例１に基づく実装方法に対してIDfuseとconstを一方向関数により変換を行うことで、実体解析に対する機密情報の秘匿性をさらに向上することができる。
【産業上の利用可能性】
【０１３７】
本発明の機密情報実装システム及びＬＳＩは、暗号化機密情報にアドレス情報を関連付けることにより、不正に流出してしまった端末装置、システムＬＳＩあるいは記憶部から、その端末装置、システムＬＳＩあるいは記憶部を製造した製造者等の特定が可能となり、機密情報の厳格な管理を行うことができるという効果を有し、機密情報実装システム及びこれを実現するためのＬＳＩ等として有用である。
【図面の簡単な説明】
【０１３８】
【図１】本実施形態の機密情報実装システムを、端末装置に実装するまでの全工程を説明するためのフローチャート
【図２】本実施形態の機密情報実装システムに内蔵されるシステムＬＳＩの開発工程を説明するためのフローチャート
【図３】本実施形態の機密情報実装システムのヒューズ（ｆｕｓｅ）実装工程を説明するためのフローチャート
【図４】本実施形態の機密情報実装システムが内蔵される端末装置等へのセット実装工程を説明するためのフローチャート
【図５】機密情報ライセンス会社２２０から、システムＬＳＩの開発及び製造を担当するＬＳＩベンダーＡ２３０にライセンスを提供する場合のライセンススキームを説明するための図
【図６】暗号化された機密情報を生成する暗号化機密情報生成機２００を説明するためのブロック図
【図７】暗号化された機密情報を生成する暗号化機密情報生成機２１０を説明するためのブロック図
【図８】機密情報ライセンス会社２２０から、システムＬＳＩのｆｕｓｅ実装を担当するＦｕｓｅ実装ベンダーＣ２４０にライセンスを提供する場合のライセンススキームを説明するための図
【図９】機密情報ライセンス会社２２０から、システムＬＳＩのセット実装を担当するセットメーカーＢ２５０にライセンスを提供する場合のライセンススキームを説明するための図
【図１０】本実施形態の機密情報実装システムを端末装置に実装する全工程のライセンススキームを説明するための図
【図１１】本実施形態の機密情報実装システム１２０のＬＳＩ開発段階における概略構成を説明するための回路図
【図１２】本実施形態の機密情報実装システム１２０のヒューズ実装段階における概略構成を説明するための回路図
【図１３】本実施形態の機密情報実装システム１２０において、セットへの機密情報実装段階における概略構成を説明するための回路図
【図１４】本実施形態の変換アドレス情報１を生成する第６の定数aaaを外部から設定する場合の機密情報実装システムを端末装置に実装する全工程のライセンススキームを説明するための図
【図１５】本実施形態の変換アドレス情報１を生成する第６の定数aaaを外部から設定する場合の機密情報実装システム１２０のＬＳＩ開発段階における概略構成を説明するための回路図
【図１６】本実施形態の変換アドレス情報１を生成する第６の定数aaaを外部から設定する場合の機密情報実装システム１２０において、セットへの機密情報実装段階における概略構成を説明するための回路図
【図１７】本実施形態の固有毎のIDfuse情報に基づく機密情報をＬＳＩ自体が生成する場合の機密情報実装システム１２０において、セットへの機密情報実装段階における概略構成を説明するための回路図
【図１８】鍵実装システム７を説明するための概略構成を示すブロック図
【図１９】対称暗号の特性を説明するための図
【図２０】IDfuse情報に基づく種生成方法を鍵実装システム７（図１８）と等価な構成の場合を説明するための図
【図２１】図20の実施例における暗号化された機密情報を生成する暗号化機密情報生成機２００を説明するためのブロック図
【図２２】図20の実施例における暗号化された機密情報を生成する暗号化機密情報生成機２１０を説明するためのブロック図
【符号の説明】
【０１３９】
３２  第１の一方向関数回路Ａ
３３  第１の復号回路Ｘ
３４  第２の復号回路Ｙ
３５  第１の暗号回路ＸＸ
３６  第３の復号回路ＹＹ
３９  第２のモード設定値
５０  暗号回路
５１  復号回路
６５  検証回路
６６  定数記憶部
６７  比較回路
７１  種生成部
７２  第１の定数設定部
７３  第２のセレクタ
７４  第２の定数記憶部
７５  第２の一方向関数回路Ｂ
１２０  機密情報実装システム
１２０ａ  記憶部
１２０ｂ  ＬＳＩ
１３１  種生成部
１３２  第１の定数記憶部
１３３  第１のセレクタ
１３４  第２の定数記憶部
１３５  第２のセレクタ
１３６  第３のセレクタ
１３７  第1のモード設定値
１４１  機密処理回路
１４２  機密情報設定部
１５１  アドレス変換回路
１５３  第1の演算回路
１５４  第４のセレクタ
１５２  第７の定数
１５５  第6の定数
１６５  検証回路
１６６  第３の定数記憶部
１６７  第５のセレクタ
１６８  比較回路
１７１  第１の被暗号化機密情報記憶部
１７２  第２の被暗号化機密情報記憶部
１７３  第３の被暗号化機密情報記憶部
１７４  第４の被暗号化機密情報記憶部
１７５  第５の被暗号化機密情報記憶部
１７６  第６の被暗号化機密情報記憶部
１７７  第７の被暗号化機密情報記憶部
２００，２１０  暗号化機密情報生成機
２０１，２０５，２１１，２１５  暗号回路
２０２，２１２  ＣＲＣ生成回路
２０３，２０４，２０６，２１３，２１４，２１６  一方向関数回路
２２０  機密情報ライセンス会社
２３０  ＬＳＩベンダーＡ
２４０  Ｆｕｓｅ実装ベンダーＣ
２５０  セットメーカーＢ
３００  Ｉｄｆｕｓｅ実装装置
３０１  暗号化機密情報実装装置
【図１】
2007011871.tif 000003
【図２】
2007011871.tif 000004
【図３】
2007011871.tif 000005
【図４】
2007011871.tif 000006
【図５】
2007011871.tif 000007
【図６】
2007011871.tif 000008
【図７】
2007011871.tif 000009
【図８】
2007011871.tif 000010
【図９】
2007011871.tif 000011
【図１０】
2007011871.tif 000012
【図１１】
2007011871.tif 000013
【図１２】
2007011871.tif 000014
【図１３】
2007011871.tif 000015
【図１４】
2007011871.tif 000016
【図１５】
2007011871.tif 000017
【図１６】
2007011871.tif 000018
【図１７】
2007011871.tif 000019
【図１８】
2007011871.tif 000020
【図１９】
2007011871.tif 000021
【図２０】
2007011871.tif 000022
【図２１】
2007011871.tif 000023
【図２２】
2007011871.tif 000024