(57)【要約】  【課題】  必要最低限の者のみが秘密情報を知り、残りのものは秘密情報を知ることが困難な半導体チップなどを提供すること。  【解決手段】  セキュリティチップ２において、スクランブル回路２３は、ＥＥＰＲＯＭ２２からスクランブル鍵Ｋｓｃを取得する。そして、これを用いて暗号鍵ＲＯＭ２４に記憶されているスクランブルドダウンロードファームウェア暗号鍵Ｋｆｗをデスクランブルし、ダウンロードファームウェア暗号鍵Ｋｆｗを復元する。暗号エンジン２８は、スクランブル回路２３からダウンロードファームウェア暗号鍵Ｋｆｗを取得し、ＣＥ機器が備えたハードディスク１２に記憶されている暗号化ダウンロードファームウェアを復号化してＲＡＭ２６に展開する。  【選択図】  図１
2005303370.tif 000002
【特許請求の範囲】
【請求項１】
スクランブルされた情報のデスクランブルに使用されるスクランブル鍵情報が記憶されるスクランブル鍵情報記憶手段と、
スクランブルされた暗号鍵情報を記憶する暗号鍵記憶手段と、
前記スクランブル鍵情報を用いてスクランブルされた前記暗号鍵情報をデスクランブルするスクランブル回路と、
外部から暗号化された暗号化情報を取得する暗号化情報取得手段と、
デスクランブルされた前記暗号鍵情報を用いて前記取得した暗号化情報を復号化する暗号処理手段と、
を具備したことを特徴とする半導体チップ。
【請求項２】
コンピュータプログラムを実行するプログラム実行手段と、
前記暗号処理手段で復号化した復号化情報を記憶する復号化情報記憶手段と、
を具備し、
前記プログラム実行手段は、前記復号化情報がコンピュータプログラムである場合に、前記復号化情報記憶手段に記憶したコンピュータプログラムを実行することを特徴とする請求項１に記載の半導体チップ。
【請求項３】
当該半導体チップに固有の第２の暗号鍵情報を生成する第２の暗号鍵情報生成手段と、
前記生成した第２の暗号鍵情報を記憶する第２の暗号鍵記憶手段と、
を具備し、
前記暗号処理手段は、前記記憶した第２の暗号鍵情報を用いて暗号処理を行うことを特徴とする請求項１に記載の半導体チップ。
【請求項４】
前記スクランブル鍵情報を前記スクランブル回路に入力するスクランブル鍵情報入力機能と、
スクランブルされた前記暗号鍵情報を前記スクランブル回路に入力する暗号鍵入力機能と、
前記入力されたスクランブル鍵情報とスクランブルされた暗号鍵情報により前記スクランブル回路でデスクランブルされた前記暗号鍵情報を前記暗号処理手段に入力する暗号鍵入力機能と、
を前記プログラム実行手段で実現する起動プログラムを記憶した起動プログラム記憶手段を具備したことを特徴とする請求項２に記載の半導体チップ。
【請求項５】
請求項２に記載の半導体チップにおいて、
前記スクランブル鍵情報を前記スクランブル回路に入力するスクランブル鍵情報入力機能と、
スクランブルされた前記暗号鍵情報を前記スクランブル回路に入力する暗号鍵入力機能と、
前記入力されたスクランブル鍵情報とスクランブルされた暗号鍵情報により前記スクランブル回路でデスクランブルされた前記暗号鍵情報を前記暗号処理手段に入力する暗号鍵入力機能と、
を前記プログラム実行手段で実現する起動プログラム。
【請求項６】
請求項２に記載の半導体チップにおいて、前記暗号処理手段で復号化され、前記プログラム実行手段で実行されるコンピュータプログラムであって、
第２のスクランブル鍵情報を取得する第２のスクランブル鍵情報取得機能と、
前記取得した第２のスクランブル鍵情報を前記スクランブル鍵情報記憶手段に記憶させる第２のスクランブル鍵情報記憶機能と、
を前記プログラム実行手段で実現する半導体チッププログラム。
【請求項７】
請求項２に記載の半導体チップにおいて、前記暗号処理手段で復号化され、前記プログラム実行手段で実行されるコンピュータプログラムであって、
当該半導体チップに固有の第２の暗号鍵情報を取得する第２の暗号鍵情報取得機能と、
前記取得した第２の暗号鍵情報を記憶させる第２の暗号鍵情報記憶機能と、
を前記プログラム実行手段で実現する半導体チッププログラム。
【請求項８】
請求項３に記載の半導体チップにおいて、前記暗号処理手段で復号化され、前記プログラム実行手段で実行されるコンピュータプログラムであって、
要求に応じて所定のサーバから送信されるサービス秘密情報を受信して復号化する復号化機能と、
前記復号化したサービス秘密情報を、前記第２の暗号鍵記憶手段で記憶した第２の暗号鍵情報を用いて前記暗号処理手段に暗号化させるサービス秘密情報暗号化機能と、
暗号化した前記サービス秘密情報をサービス秘密情報記憶手段に記憶させる記憶機能と、
を前記プログラム実行手段で実現する半導体チッププログラム。
【請求項９】
前記記憶機能で記憶されたサービス秘密情報を取得し、これを前記第２の暗号鍵情報を用いて前記暗号処理手段に復号化させるサービス秘密情報復号化機能と、
前記暗号化情報取得手段にサービス電子情報を取得させ、前記取得したサービス電子情報を前記復号化したサービス秘密情報を用いて前記暗号処理手段に復号化させるサービス電子情報復号化機能と、
を前記プログラム実行手段で実現する請求項８に記載の半導体チッププログラム。
【請求項１０】
乱数を取得する乱数取得機能と、
前記取得した乱数を、前記サービス秘密情報の要求と共に前記所定のサーバに送信する乱数送信機能と、
前記所定のサーバから、前記要求したサービス秘密情報と共に乱数を受信する乱数受信機能と、
を前記プログラム実行手段で実現させ、
前記記憶機能は、前記生成した乱数と前記受信した乱数が同一である場合に、前記サービス秘密情報の記憶を行うことを特徴とす請求項８に記載の半導体チッププログラム。
【請求項１１】
前記所定のサーバから送信されてくるサービス秘密情報は電子署名されており、
前記電子署名を確認する電子署名確認機能を前記プログラム実行手段で実現させ、
前記記憶機能は、前記電子署名が確認できた場合に前記サービス秘密情報の記憶を行わせることを特徴とする請求項８に記載の半導体チッププログラム。
【請求項１２】
請求項６、請求項７、請求項８、請求項９、請求項１０、請求項１１に記載の半導体チッププログラムを記憶したコンピュータが読み取り可能な記憶媒体。
【請求項１３】
請求項１に記載の半導体チップを搭載した端末装置であって、
前記暗号化情報が記憶された暗号化情報記憶手段と、
前記記憶した暗号化情報を復号化するために前記半導体チップに入力する暗号化情報入力手段と、
を具備したことを特徴とする端末装置。
【請求項１４】
請求項３に記載の半導体チップを搭載した端末装置であって、
サービスサーバから送信されるサービス電子情報を利用するサービス利用手段と、
前記第２の暗号鍵情報を用いて暗号化され、前記サービス電子情報を復号化するのに使用するサービス秘密情報を記憶したサービス秘密情報記憶手段と、
前記サービスサーバからサービス電子情報を受信するサービス電子情報受信手段と、
前記記憶したサービス秘密情報とを前記半導体チップに入力し、前記受信したサービス電子情報を前記半導体チップで復号化するサービス電子情報復号化処理手段と、
前記復号化したサービス電子情報を利用する利用手段と、
を具備したことを特徴とする端末装置。
【請求項１５】
スクランブルされた情報のデスクランブルに使用されるスクランブル鍵情報が記憶されるスクランブル鍵情報記憶手段と、スクランブルされた暗号鍵情報を記憶する暗号鍵記憶手段と、スクランブル回路と、暗号化情報取得手段と、暗号処理手段と、を備えた半導体チップにおいて、
前記スクランブル回路で、前記スクランブル鍵情報を用いてスクランブルされた前記暗号鍵情報をデスクランブルするスクランブルステップと、
前記暗号情報取得手段で、外部から暗号化された暗号化情報を取得する暗号化情報取得ステップと、
前記暗号処理手段で、前記デスクランブルされた暗号鍵情報を用いて前記取得した暗号化情報を復号化する暗号処理ステップと、
から構成されたことを特徴とする情報処理方法。
【請求項１６】
前記半導体チップは、プログラム実行手段と、復号化情報記憶手段と、を備え、
前記復号化情報記憶手段で、前記暗号処理手段で復号化した復号化情報を記憶する復号化情報記憶ステップと、
前記記憶した復号化情報がコンピュータプログラムである場合に、前記プログラム実行手段で当該コンピュータプログラムを実行するプログラム実行ステップと、
を備えたことを特徴とする請求項１５に記載の情報処理方法。
【請求項１７】
前記半導体チップは、第２の暗号鍵情報取得手段と、第２の暗号鍵記憶手段を備え、
前記第２の暗号鍵情報取得手段で、当該半導体チップに固有の第２の暗号鍵情報を取得する第２の暗号鍵情報取得ステップと、
前記第２の暗号鍵記憶手段で、前記生成した第２の暗号鍵情報を記憶する第２の暗号鍵情報記憶ステップと、
を備え、
前記暗号処理ステップは、前記記憶した第２の暗号鍵情報を用いて暗号処理を行うことを特徴とする請求項１５に記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体チップ、起動プログラム、半導体チッププログラム、記憶媒体、端末装置、及び情報処理方法に関する。詳しくは、スクランブル回路を用いることにより、セキュリティチップに組み込む情報を知り得る者を限定するものである。
【背景技術】
【０００２】
近年、ネットワークを介してユーザにサービスを提供する事業が盛んになってきた。
このような事業では、如何に正当なユーザにのみサービスを提供し、不正なユーザの利用を防止するかが重要な課題となっている。
このような課題に対処するため、暗号鍵などの秘密情報を備えたセキュリティチップをクライアント機器（端末装置）に内蔵するものがある。
この場合、サーバは暗号化したコンテンツをクライアント機器に送信し、クライアント端末では、これをセキュリティチップで復号化してユーザが利用できるようにする。
【０００３】
ところで、セキュリティチップに記憶されている秘密情報を知っている者は、これを用いて所謂なりすましができる可能性がある。
そのため、通常セキュリティチップは、例えば耐タンパ機能やアクセス制限機能などの保護機能が組み込まれており、セキュリティチップを解析することによってその秘密情報を読み出したり、不正に利用したりすることは困難になるように設計される。
近年、デジタルデータで構成された音楽やビデオなど（デジタルコンテンツ）の著作権の保護（ＤＲＭ：Ｄｉｇｉｔａｌ  Ｒｉｇｈｔｓ  Ｍａｎａｇｅｍｅｎｔ）が重要視されており、セキュリティチップによるコンテンツの不正利用防止技術はネットワークを介したコンテンツ配信サービス事業の存立に関わるものである。
【０００４】
このように秘密情報を有するクライアント機器のセキュリティを高める技術は各種提案されているが、その中にスクランブル回路を用いるものがある。
後述するように、本実施の形態では、セキュリティチップにスクランブル回路を組み込んでセキュリティレベルを高める技術について説明するため、ここではスクランブル回路を用いた文献を挙げておく。
【０００５】
【特許文献１】特開２００１−２２３６８７
【０００６】
この技術は、スクランブルした秘密情報、スクランブル回路、及び秘密情報をデスクランブルするためのスクランブル鍵を内蔵したクライアント機器を製造する際に、例えば仕向先毎にスクランブル鍵を異ならせておくことによりセキュリティを高めるものである。スクランブルした秘密情報は、スクランブル鍵をセットしたスクランブル回路にて復元（デスクランブル）することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
一般に、ＣＥ機器にセキュリティチップを用いたサービスシステムは、例えば以下のような人や組織が関わって構築される。
（１）セキュリティチップの回路設計者、（２）セキュリティチップのＲＯＭファーム（プログラム）開発者、（３）セキュリティチップ製造者、（４）セキュリティチップの書き換え可能メモリ用ファーム開発者、（５）セキュリティチップの組み込まれるクライアント機器設計者、（６）クライアント機器製造者、（７）コンテンツなどを配信するサーバ開発者、（８）サーバ運営者、（９）サーバより配信される暗号化コンテンツやその鍵などのデータ作成者、（１０）コンテンツ提供者。
【０００８】
このように、ＣＥ機器にセキュリティチップを用いたサービスシステムでは、セキュリティチップ設計や製造に多くの人材や組織が関わるため、多くの者が、セキュリティチップのＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）などに書かれた機密性を要する情報を知ることができてしまう。
従来、このような問題は秘密保持契約（ＮＤＡ：Ｎｏｎ−Ｄｉｓｃｌｏｓｕｒｅ  Ａｇｒｅｅｍｅｎｔ）で対処するより方法がなかった。
【０００９】
そこで、本発明の目的は、半導体チップに機密性を要する情報を組み込む場合に、その情報を知り得る者を最小限に限定することができる構成を有する半導体チップを提供することである。
これにより例えば、先に例示した（９）サーバより配信される暗号化コンテンツやその鍵などのデータ作成者のみが秘密情報を知るようにすることができる。
【課題を解決するための手段】
【００１０】
本発明は、前記目的を達成するために、スクランブルされた情報のデスクランブルに使用されるスクランブル鍵情報が記憶されるスクランブル鍵情報記憶手段と、スクランブルされた暗号鍵情報を記憶する暗号鍵記憶手段と、前記スクランブル鍵情報を用いてスクランブルされた前記暗号鍵情報をデスクランブルするスクランブル回路と、外部から暗号化された暗号化情報を取得する暗号化情報取得手段と、デスクランブルされた前記暗号鍵情報を用いて前記取得した暗号化情報を復号化する暗号処理手段と、を具備したことを特徴とする半導体チップを提供する（第１の構成）。
また、第１の構成の半導体チップは、コンピュータプログラムを実行するプログラム実行手段と、前記暗号処理手段で復号化した復号化情報を記憶する復号化情報記憶手段と、を具備し、前記プログラム実行手段は、前記復号化情報がコンピュータプログラムである場合に、前記復号化情報記憶手段に記憶したコンピュータプログラムを実行するように構成することもできる（第２の構成）。
更に、第１の構成の半導体チップは、当該半導体チップに固有の第２の暗号鍵情報を生成する第２の暗号鍵情報生成手段と、前記生成した第２の暗号鍵情報を記憶する第２の暗号鍵記憶手段と、を具備し、前記暗号処理手段は、前記記憶した第２の暗号鍵情報を用いて暗号処理を行うように構成することもできる（第３の構成）。
また、第２の構成の半導体チップは、前記スクランブル鍵情報を前記スクランブル回路に入力するスクランブル鍵情報入力機能と、スクランブルされた前記暗号鍵情報を前記スクランブル回路に入力する暗号鍵入力機能と、前記入力されたスクランブル鍵情報とスクランブルされた暗号鍵情報により前記スクランブル回路でデスクランブルされた前記暗号鍵情報を前記暗号処理手段に入力する暗号鍵入力機能と、を前記プログラム実行手段で実現する起動プログラムを記憶した起動プログラム記憶手段を具備するように構成することもできる（第４の構成）。
また、本発明は、第２の構成の半導体チップにおいて、前記スクランブル鍵情報を前記スクランブル回路に入力するスクランブル鍵情報入力機能と、スクランブルされた前記暗号鍵情報を前記スクランブル回路に入力する暗号鍵入力機能と、前記入力されたスクランブル鍵情報とスクランブルされた暗号鍵情報により前記スクランブル回路でデスクランブルされた前記暗号鍵情報を前記暗号処理手段に入力する暗号鍵入力機能と、を前記プログラム実行手段で実現する起動プログラムを提供する（第５の構成）。
また、第２の構成の半導体チップにおいて、前記暗号処理手段で復号化され、前記プログラム実行手段で実行されるコンピュータプログラムであって、第２のスクランブル鍵情報を取得する第２のスクランブル鍵情報取得機能と、前記取得した第２のスクランブル鍵情報を前記スクランブル鍵情報記憶手段に記憶させる第２のスクランブル鍵情報記憶機能と、を前記プログラム実行手段で実現する半導体チッププログラムを提供する（第６の構成）。
更に、第２の構成の半導体チップにおいて、前記暗号処理手段で復号化され、前記プログラム実行手段で実行されるコンピュータプログラムであって、当該半導体チップに固有の第２の暗号鍵情報を取得する第２の暗号鍵情報取得機能と、前記取得した第２の暗号鍵情報を記憶させる第２の暗号鍵情報記憶機能と、を前記プログラム実行手段で実現する半導体チッププログラムを提供する（第７の構成）。
また、第３の構成の半導体チップにおいて、前記暗号処理手段で復号化され、前記プログラム実行手段で実行されるコンピュータプログラムであって、要求に応じて所定のサーバから送信されるサービス秘密情報を受信して復号化する復号化機能と、前記復号化したサービス秘密情報を、前記第２の暗号鍵記憶手段で記憶した第２の暗号鍵情報を用いて前記暗号処理手段に暗号化させるサービス秘密情報暗号化機能と、暗号化した前記サービス秘密情報をサービス秘密情報記憶手段に記憶させる記憶機能と、を前記プログラム実行手段で実現する半導体チッププログラムを提供する。
また、第８の半導体チッププログラムは、前記記憶機能で記憶されたサービス秘密情報を取得し、これを前記第２の暗号鍵情報を用いて前記暗号処理手段に復号化させるサービス秘密情報復号化機能と、前記暗号化情報取得手段にサービス電子情報を取得させ、前記取得したサービス電子情報を前記復号化したサービス秘密情報を用いて前記暗号処理手段に復号化させるサービス電子情報復号化機能と、を前記プログラム実行手段で実現するように構成することもできる（第９の構成）。
また、第８の半導体チッププログラムは、乱数を取得する乱数取得機能と、前記取得した乱数を、前記サービス秘密情報の要求と共に前記所定のサーバに送信する乱数送信機能と、前記所定のサーバから、前記要求したサービス秘密情報と共に乱数を受信する乱数受信機能と、を前記プログラム実行手段で実現させ、前記記憶機能は、前記生成した乱数と前記受信した乱数が同一である場合に、前記サービス秘密情報の記憶を行うように構成することもできる（第１０の構成）。
更に、第８の半導体チッププログラムは、前記所定のサーバから送信されてくるサービス秘密情報は電子署名されており、前記電子署名を確認する電子署名確認機能を前記プログラム実行手段で実現させ、前記記憶機能は、前記電子署名が確認できた場合に前記サービス秘密情報の記憶を行わせるように構成することもできる（第１１の構成）。
また、本発明は、第６の構成、第７の構成、第８の構成、第９の構成、第１０の構成、及び第１１の構成の半導体チッププログラムを記憶したコンピュータが読み取り可能な記憶媒体を提供する（第１２の構成）。
また、本発明は、第１の構成の半導体チップを搭載した端末装置であって、前記暗号化情報が記憶された暗号化情報記憶手段と、前記記憶した暗号化情報を復号化するために前記半導体チップに入力する暗号化情報入力手段と、を具備したことを特徴とする端末装置を提供する（第１３の構成）。
更に、本発明は、第３の構成の半導体チップを搭載した端末装置であって、サービスサーバから送信されるサービス電子情報を利用するサービス利用手段と、前記第２の暗号鍵情報を用いて暗号化され、前記サービス電子情報を復号化するのに使用するサービス秘密情報を記憶したサービス秘密情報記憶手段と、前記サービスサーバからサービス電子情報を受信するサービス電子情報受信手段と、前記記憶したサービス秘密情報とを前記半導体チップに入力し、前記受信したサービス電子情報を前記半導体チップで復号化するサービス電子情報復号化処理手段と、前記復号化したサービス電子情報を利用する利用手段と、を具備したことを特徴とする端末装置を提供する（第１４の構成）。
また、本発明は、スクランブルされた情報のデスクランブルに使用されるスクランブル鍵情報が記憶されるスクランブル鍵情報記憶手段と、スクランブルされた暗号鍵情報を記憶する暗号鍵記憶手段と、スクランブル回路と、暗号化情報取得手段と、暗号処理手段と、を備えた半導体チップにおいて、前記スクランブル回路で、前記スクランブル鍵情報を用いてスクランブルされた前記暗号鍵情報をデスクランブルするスクランブルステップと、前記暗号情報取得手段で、外部から暗号化された暗号化情報を取得する暗号化情報取得ステップと、前記暗号処理手段で、前記デスクランブルされた暗号鍵情報を用いて前記取得した暗号化情報を復号化する暗号処理ステップと、から構成されたことを特徴とする情報処理方法を提供する。
更に、本発明は、第１５の構成の情報処理方法において、前記半導体チップは、プログラム実行手段と、復号化情報記憶手段と、を備え、前記復号化情報記憶手段で、前記暗号処理手段で復号化した復号化情報を記憶する復号化情報記憶ステップと、前記記憶した復号化情報がコンピュータプログラムである場合に、前記プログラム実行手段で当該コンピュータプログラムを実行するプログラム実行ステップと、を備えるように構成することもできる（第１６の構成）。
更に、本発明は、第１５の構成の情報処理方法において、前記半導体チップは、第２の暗号鍵情報取得手段と、第２の暗号鍵記憶手段を備え、前記第２の暗号鍵情報取得手段で、当該半導体チップに固有の第２の暗号鍵情報を取得する第２の暗号鍵情報取得ステップと、前記第２の暗号鍵記憶手段で、前記生成した第２の暗号鍵情報を記憶する第２の暗号鍵情報記憶ステップと、を備え、前記暗号処理ステップは、前記記憶した第２の暗号鍵情報を用いて暗号処理を行うように構成することもできる（第１７の構成）。
【発明の効果】
【００１１】
本発明により、半導体チップ内に秘匿する情報を知り得る関係者を最小限にしながらこれを組み込むことができる。
【発明を実施するための最良の形態】
【００１２】
本実実施の形態では、クライアント端末としてＣＥ（ＣＥ：Ｃｏｎｓｕｍｅｒ  Ｅｌｅｃｔｒｏｎｉｃｓ）機器を例にとり説明する。
ＣＥ機器には、例えばビデオ装置、ステレオ装置、テレビジョン装置などといったオーディオビジュアル機器で構成され、インターネット接続機能を有し、サーバが提供するサービスを利用できるものである。
【００１３】
例えば、ビデオ装置やステレオ装置にサーバからビデオコンテンツや音楽コンテンツをダウンロードできるほか、携帯電話を用いて外部からビデオ装置に録画予約を行ったりなど、ネットワークを介した各種のサービスを利用することができる。
また、ＣＥ機器としては、上記のオーディオビジュアル機器のほかに、例えば、風呂釜、冷蔵庫、エアコン装置、暖房装置といった家電装置もある。
これらの家電品をネットワークに接続することにより、例えば、外部から風呂を沸かしたり、エアコンを動作させたりすることができる。
【００１４】
本実施の形態のＣＥ機器は、各種の秘密情報が格納され、これを用いてコンテンツの復号化などのセキュリティ関係の情報処理を行うセキュリティチップ（半導体チップ）が内蔵されている。
【００１５】
（実施の形態の概要）
図１は、本実施の形態の概要を説明するための図である。
セキュリティチップ２において、スクランブル回路２３は、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）２２からスクランブル鍵Ｋｓｃを取得する。そして、これを用いて暗号鍵ＲＯＭ２４に記憶されているスクランブルドダウンロードファームウェア暗号鍵Ｋｆｗ（スクランブルされている）をデスクランブルし、ダウンロードファームウェア暗号鍵Ｋｆｗを復元する。
【００１６】
暗号エンジン２８は、スクランブル回路２３からダウンロードファームウェア暗号鍵Ｋｆｗを取得し、ＣＥ機器が備えたハードディスク１２に記憶されている暗号化ダウンロードファームウェアを復号化してＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２６に展開する。
これによりダウンロードファームウェアが利用可能となる。
【００１７】
暗号鍵ＲＯＭ２４に記憶したスクランブルドダウンロードファームウェア暗号鍵Ｋｆｗを復元するにはスクランブル回路２３の回路構成と、スクランブル鍵Ｋｓｃの双方を知る必要がある。
そこで、ＥＥＰＲＯＭ２２に何も記憶されていないセキュリティチップ２を製造し、ＣＥ機器の出荷までの間の何れかのときにＥＥＰＲＯＭ２２にスクランブル鍵Ｋｓｃを書き込むようにすれば、セキュリティチップ２の設計者、及び製造者には、スクランブル回路２３の回路構成を知ることは可能であるが、ＥＥＰＲＯＭ２２に記憶されたスクランブル鍵Ｋｓｃを知ることはできない。
【００１８】
また、ＥＥＰＲＯＭ２２にスクランブル鍵Ｋｓｃを書き込む者は、スクランブル鍵Ｋｓｃを知ることができるかも知れないが、スクランブル回路２３の回路構成を知ることはできない。
ダウンロードファームウェア暗号鍵Ｋｆｗを得るには、スクランブル鍵Ｋｓｃ、スクランブル回路２３の回路構成、及びスクランブルドダウンロードファムウェア暗号鍵Ｋｆｗの全てを知る必要がある。
そこで、セキュリティチップ２の設計・製造と、スクランブル鍵Ｋｓｃの書き込みを別の事業者に委託することにより、何れも有効な秘密情報を知り得ることなくセキュリティチップ２をＣＥ機器に組み込むことができる。
【００１９】
（実施の形態の詳細）
図２は、本実施の形態のネットワーク構成を説明するための図である。
サービス提供システム１００は、インターネットなどで構成されたネットワーク３、ネットワーク３に接続可能に配設されたＣＥ機器１、１、１、…、サービスデータ登録サーバ５、及びサービス提供サーバ７などから構成されている。
ＣＥ機器１は、ネットワーク３を介してサービスデータ登録サーバ５とサービス提供サーバ７に接続可能に配設されている。
【００２０】
ネットワーク３は、例えばインターネットで構成されるが、この他に、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、電話回線網、無線通信網、通信衛星を介した通信網など、何らかの方法でサーバとクライアント機器間の通信を媒介するものであればよい。
【００２１】
ＣＥ機器１は、利用目的に応じた機能を発揮する（例えば、ステレオであれば光ディスクなどの記憶媒体に録音された音楽を再生するなど）ほか、ネットワーク３を介してサービスデータ登録サーバ５やサービス提供サーバ７、図示しないその他のサーバと通信する通信機能を有しており、クライアント機器（クライアント端末）を構成している。
ＣＥ機器１は、半導体チップ（セキュリティチップ２）を搭載した端末装置を構成している。
【００２２】
ＣＥ機器１は、ネットワーク３を介してサービス提供サーバ７が提供するコンテンツを受信し、利用することができる。
なお、コンテンツの不正利用を防ぐため、これを利用するためにはサービスデータ登録サーバ５が提供するサービスデータが必要となっている。
サービスデータには、例えば暗号化されたコンテンツを復号化するための暗号鍵（コンテンツ暗号鍵Ｋｃ）が含まれている。
サービスデータは、サーバ装置から送信されてくるサービス電子情報（コンテンツなど）を復号化するなどして利用するためのサービス秘密情報を構成している。
【００２３】
そのため、ユーザはＣＥ機器１の購入後サービスデータ登録サーバ５に接続し、サービスデータをサービスデータ登録サーバ５からダウンロードしておく。ＣＥ機器１は、サービスデータ登録サーバ５からサービスデータを取得する処理にセキュリティチップ２の機能を利用するが、これについては後ほど詳細に説明する。
【００２４】
サービスデータ登録サーバ５は、新規に購入されたＣＥ機器１に対してサービスデータを提供するサーバ装置である。
サービスデータ登録サーバ５は、新規購入のＣＥ機器１から接続を受け付けて、サービスデータの送信要求を受信すると、当該ＣＥ機器１に対してサービスデータを送信する。
【００２５】
サービス提供サーバ７は、ＣＥ機器１にコンテンツを提供するサーバである。
一般に、ＣＥ機器１は、固有の機器ＩＤやパスフレーズ（パスワードと同じであるが、パスワードより文字列の長さが長い）など、機器固有の情報を記憶している。
サービス提供サーバ７は、コンテンツの提供に際し、これら機器固有の情報（機器固有情報）をＣＥ機器１から受信して機器認証し、ＣＥ機器１が正当に登録されているものであることを確認した後、暗号化したコンテンツを送信する。
【００２６】
本実施の形態では、機器認証とコンテンツの提供をサービス提供サーバ７で行うこととするが、サービス提供サーバ７とは別に機器認証専用のサーバ（機器認証サーバ）を設け、機器認証を機器認証サーバにて一括して行うように構成することもできる。
この場合、サービス提供サーバ７はＣＥ機器１からコンテンツ提供の要求を受けると、機器認証サーバにＣＥ機器１の機器認証を依頼する。そして、サービス提供サーバ７は機器認証サーバから機器認証結果を受信し、ＣＥ機器１が認証された場合にコンテンツを提供する。
機器固有情報は秘匿性の高い情報であるので、機器認証を機器認証サーバで一括して行うことによりセキュリティを高めることができる。
【００２７】
図３は、ＣＥ機器１の機能的な構成を模式的に表したブロック図である。
ＣＥ機器１は、セキュリティチップ２、ホストＣＰＵ１１、ネットワークインターフェース（Ｉ／Ｆ）１３、及びハードディスク１２などがホストバスにて接続されて構成されている。
なお、図３は、セキュリティチップ２の機能を説明するために必要な構成を示しており、その他の機能（例えばＣＥ機器１がステレオであれば、音楽を再生するために必要な光ディスクドライブやアンプなど）は省略してある。
【００２８】
ホストＣＰＵ１１は、所定のプログラムに従って動作し、ＣＥ機器１全体の制御や各種の情報処理を行う中央処理装置（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
より具体的には、ホストＣＰＵ１１は、例えば、サービスデータ登録サーバ５と通信し、サービスデータ登録サーバ５からサービスデータをダウンロードしたり、あるいは、サービス提供サーバ７からコンテンツをダウンロードしたりなど、各種サーバとの通信処理を行う。
【００２９】
更に、ホストＣＰＵ１１は、ハードディスク１２にアクセスして、ハードディスク１２に対し情報を読み書きする入出力処理を行うことができる。
また、セキュリティチップ２に対して、各種のコマンドを入力してセキュリティチップ２に所望の動作を行わせたり、あるいは、ハードディスク１２内の情報をセキュリティチップ２に入力したり、セキュリティチップ２が出力した情報をハードディスク１２に書き込んだりなどする。
【００３０】
セキュリティチップ２は、内部に中央処理装置、記憶媒体、更に当該中央処理装置に実行させるプログラムなどが組み込まれた半導体チップ（半導体装置）であり、一種のコンピュータを構成している。
セキュリティチップ２は、コンテンツの不正受信や不正利用などの不正行為を防ぐための処理を行い、これらの処理を行うための暗号情報や回路が組み込まれている。
【００３１】
セキュリティチップ２は、例えば、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）チップなどの形で樹脂にてモールドされて提供されており、第三者による内部構造の解析は困難である。更に、例えば、耐タンパ構造（内部情報への不正アクセスなどに対する防御機能を備えた構造）を採用するなどして内部構造の解析をいっそう困難にすることができる。
【００３２】
ハードディスク１２は、大容量の記憶媒体である。ハードディスク１２は、ホストＣＰＵ１１にて情報の読み書きを行えるように構成されており、例えば、サービス提供サーバ７からダウンロードしたコンテンツを記憶するのに用いられる。
更に、ハードディスク１２は、セキュリティチップ２で実行させるための暗号化ダウンロードファームウェア（セキュリティチップ２に実行させるプログラムで暗号化されたもの）を記憶しており、ホストＣＰＵ１１がこれをセキュリティチップ２に入力して実行させることができるようになっている。
【００３３】
ダウンロードファームウェアは、各種のものが可能であるが、ＣＥ機器１の場合は、出荷前初期化用ダウンロードファームウェアとサービスデータ登録用ダウンロードファームウェアが暗号化されて記憶されている。
詳細は後述するが、出荷前初期化用ダウンロードファームウェアは、ＣＥ機器１を出荷する前に実行するプログラムであって、セキュリティチップ２を初期化するためのものである。
【００３４】
サービスデータ登録用ダウンロードファームウェアは、ユーザがＣＥ機器１を購入後に実行するプログラムであり、サービス提供サーバ７からサービスデータをダウンロードしてハードディスク１２に記憶させるのに用いる。これにより、サービスデータを使用できるようになり、ユーザはＣＥ機器１でコンテンツを利用できるようになる。
【００３５】
ネットワークインターフェース（Ｉ／Ｆ）１３は、ＣＥ機器１をネットワーク３に接続するためのインターフェースである。
【００３６】
図４は、セキュリティチップ２の内部構成を模式的に表したブロック図である。
セキュリティチップ２には、ＣＰＵ２１、ＥＥＰＲＯＭ２２、スクランブル回路２３、暗号鍵ＲＯＭ２４、プログラムＲＯＭ２５、ＲＡＭ２６、ホストバスインターフェース（Ｉ／Ｆ）２７、暗号エンジン２８、及び乱数発生器２９などが内部バスにて接続可能に形成されている。これらの構成要素は、何れも半導体チップ上に構成されているものである。
【００３７】
ＣＰＵ２１は、中央処理装置であり、所定のプログラムを読み込んでこれを実行し、各種の情報処理やセキュリティチップ２全体の制御を行う。
また、ＣＰＵ２１は、ホストＣＰＵ１１から各種のコマンドの入力を受け付け、コマンドで指定された動作を行う。
ＣＰＵ２１は、プログラム実行手段を構成している。
【００３８】
暗号エンジン２８は、各種の暗号鍵を用いて情報の暗号化、及び復号化を行う暗号処理手段である。暗号方式は各種のものが可能であるが、本実施の形態では一例としてＡＥＳ１２８（Ａｄｖａｎｃｅｄ  Ｓｔａｎｄａｒｄ  １２８ｂｉｔ  Ｋｅｙ  Ｖｅｒｓｉｏｎ）というアルゴリズムを用いる。
【００３９】
ＥＥＰＲＯＭ２２は、ＣＰＵ２１によって、情報の読み書きが可能なＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）である。ＥＥＰＲＯＭ２２は、不揮発性のメモリであって、電力の供給がなくても記憶内容を保持することができる。
ＥＥＰＲＯＭ２２には、後述するスクランブル回路２３を動作させるためのスクランブル鍵Ｋｓｃなどの鍵情報が書き込まれている。
【００４０】
セキュリティチップ２の製造時には、ＥＥＰＲＯＭ２２の値は、初期値（例えば、Ａｌｌ  Ｆ）に設定されており、後に出荷前初期化用ダウンロードファームウェアを実行することによりスクランブル鍵Ｋｓｃが書き込まれる。そのため、セキュリティチップ２の設計者や製造者はスクランブル鍵Ｋｓｃの値を知ることはできない。
【００４１】
ＥＥＰＲＯＭ２２は、後述するようにストレージ鍵Ｋｓｔ（セキュリティチップ２に固有な第２の暗号鍵情報である）を記憶する第２の暗号鍵記憶手段や、スクランブル鍵Ｋｓｃを記憶するスクランブル鍵情報記憶手段などを構成している。
【００４２】
スクランブル回路２３は、鍵情報を用いて対象となるデータをスクランブルしたりデスクランブルする回路であり、一種の暗号エンジンを構成している。
スクランブルとは、所定のアルゴリズムに従ってデータを並べ替えたり、数学的な処理を行うことなどを言い、デスクランブルとは、スクランブルされたデータに逆の処理を行って元のデータを復元することを言う。
【００４３】
スクランブルを行うアルゴリズムは電子回路的に実現されており、鍵情報により決まるスクランブル（変換）・デスクランブル（逆変換）を行う。
なお、本実施の形態では、スクランブル回路２３は、スクランブルドダウンロードファームウェア暗号鍵Ｋｆｗをデスクランブルする機能だけ有してれば足りるので、必ずしもスクランブルする機能を備える必要はない。
なお、本実施の形態では、スクランブル鍵Ｋｓｃをスクランブル回路２３に入力するが、これに限定せず、スクランブル鍵Ｋｓｃを用いて生成した情報をスクランブル回路２３に入力するように構成することもできる。
【００４４】
暗号鍵ＲＯＭ２４は、スクランブルドダウンロードファームウェア暗号鍵Ｋｆｗを記憶した読み出し専用メモリである。
スクランブルドダウンロードファームウェア暗号鍵Ｋｆｗは、ダウンロードファームウェア暗号鍵Ｋｆｗをスクランブルしたものである。このようにスクランブルした情報の名称には、元の情報名の前に「スクランブルド」の語を付して表すことにする。
【００４５】
なお、ダウンロードファームウェア暗号鍵Ｋｆｗは、暗号エンジン２８にて暗号化ダウンロードファームウェアを復号化し、利用する鍵情報である。
暗号鍵ＲＯＭ２４は、スクランブルされた暗号鍵情報（ダウンロードファームウェア暗号鍵Ｋｆｗ）を記憶する暗号鍵記憶手段を構成している。
【００４６】
暗号鍵ＲＯＭ２４は、スクランブル回路２３と回路的に接続されており、暗号鍵ＲＯＭ２４に記憶されているスクランブルドダウンロードファームウェア暗号鍵Ｋｆｗは、スクランブル回路２３にてデスクランブルされてダウンロードファームウェア暗号鍵Ｋｆｗに復元される。そして、復元されたダウンロードファームウェア暗号鍵Ｋｆｗは暗号エンジン２８に提供される。
【００４７】
このように、暗号鍵ＲＯＭ２４からダウンロードファームウェア暗号鍵Ｋｆｗを復元するには、ＥＥＰＲＯＭ２２に記憶されているスクランブル鍵Ｋｓｃとスクランブル回路２３の回路構成の両方を知る必要がある。セキュリティチップ２の回路設計者はスクランブル回路２３の回路構成を知ることはできるが、スクランブル鍵Ｋｓｃは、後ほどＥＥＰＲＯＭ２２に書き込まれるため、これを知ることはできない。
【００４８】
プログラムＲＯＭ２５は、ＣＰＵ２１が実行する各種のプログラムを記憶した読み取り専用メモリである。
このようなプログラムとしては、例えばセキュリティチップ２を動作させるための基本的なプログラムであるＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）や、セキュリティチップ２を立ち上げるブートプログラムなどがある。
詳細は後述するが、ブートプログラムは、ＥＥＰＲＯＭ２２のスクランブル鍵Ｋｓｃをスクランブル回路２３にセットして、スクランブル回路２３に暗号鍵ＲＯＭ２４のスクランブルドダウンロードファームウェア暗号鍵Ｋｆｗを復元させ、これを暗号エンジン２８にセットするなどの機能をＣＰＵ２１に発揮させる起動プログラムである。
このようにプログラムＲＯＭ２５は起動プログラム記憶手段を構成している。
【００４９】
ＲＡＭ２６は、プログラムやデータを一時的に保存するための読み書き可能な揮発性のメモリである。本実施の形態では、暗号エンジン２８が復号化したダウンロードファームウェアを展開すると共に、ＣＰＵ２１がダウンロードファームウェアを実行するためのワーキングエリアを提供する。
このように、暗号エンジン２８で復号化した復号化情報（ダウンロードファームウェアなど）情報はＲＡＭ２６に記憶され、そのためＲＡＭ２６は復号化情報記憶手段を構成している。
【００５０】
乱数発生器２９は、乱数を発生させることによりストレージ鍵Ｋｓｔを生成する。ストレージ鍵Ｋｓｔは、当該セキュリティチップ２に固有の鍵情報となる。
このように乱数発生器２９はセキュリティチップ２に固有の第２の暗号鍵情報（ストレージ鍵Ｋｓｔ）を生成する第２の暗号鍵生成手段を構成している。
生成したストレージ鍵Ｋｓｔは、ＣＰＵ２１によりＥＥＰＲＯＭ２２に書き込まれ記憶される。
【００５１】
このようにして、セキュリティチップ２は固有の鍵情報を持つことができる。  ストレージ鍵Ｋｓｔは、サービスデータ登録サーバ５からダウンロードしたサービスデータを暗号化するのに利用され、暗号化されたサービスデータはハードディスク１２に保存される。
なお、本実施の形態では乱数発生器２９により乱数を発生させるが、このほかに例えばＣＰＵ２１に乱数を発生させることも可能である。
【００５２】
ホストバスインターフェース２７は、ＣＥ機器１のホストバスに接続するためのインターフェースである。
ＣＰＵ２１は、ホストバスを介してホストＣＰＵ１１と情報の送受信を行うことができ、これによってＣＰＵ２１とホストＣＰＵ１１は共同して動作することができる。
【００５３】
即ち、セキュリティチップ２は、ホストバスインターフェース２７を介して外部の情報を受信したり、あるいは送信したりすることができる。
セキュリティチップ２は、ホストバスインターフェース２７を介してホストＣＰＵ１１と送受信を行うほか、後述のサービスデータ登録サーバ５からサービスデータを受信する場合のように、ホストバスインターフェース２７とホストＣＰＵ１１を介して外部のサーバ装置と送受信を行うこともできる。
セキュリティチップ２は、ホストバスインターフェース２７を介して外部から暗号化された暗号化情報（ダウンロードファームウェアなど）を取得することができ、ホストバスインターフェース２７は暗号化情報取得手段を構成している。
【００５４】
次に、以上のように構成されたセキュリティチップ２の動作について説明する。
（１）ブート処理
ブート処理は、セキュリティチップ２の使用時にこれを立ち上げる処理であり、ハードディスク１２に記憶されたファームウェアを復号化して実行できる状態にする。
【００５５】
以下に、図５のフローチャートを用いてブート処理について説明する。
ここでは説明を簡潔化するためにフローチャート中でＣＰＵ２１を省略しているが、セキュリティチップ２の動作は、プログラムＲＯＭ２５に記憶されたブートプログラムに従ってＣＰＵ２１が行うものである。
【００５６】
まず、ホストＣＰＵ１１がセキュリティチップ２をブートするためにＣＰＵ２１にリセット信号を送信する（ステップ２）。
ＣＰＵ２１は、リセット信号を受信すると、プログラムＲＯＭ２５からブートプログラムを読み込み、これの実行を開始する。
【００５７】
ブートプログラムに従い、ＣＰＵ２１は、まず、ＥＥＰＲＯＭ２２からスクランブル鍵Ｋｓｃを読み出してスクランブル回路２３に入力してこれを提供する（ステップ４）。
スクランブル回路２３は、ＣＰＵ２１からスクランブル鍵Ｋｓｃの入力を受けてこれを利用可能にセットする（ステップ６）。
【００５８】
スクランブル鍵Ｋｓｃのセットが完了すると、ＣＰＵ２１はホストＣＰＵ１１にスクランブル回路２３にスクランブル鍵Ｋｓｃがセットされたことを通知する信号を送信する。
ホストＣＰＵ１１は、ホストＣＰＵ１１からスクランブル鍵Ｋｓｃのセットが完了した旨の通知を受けると、ＣＰＵ２１に対してファームウェアダウンロードコマンドを送信する（ステップ８）。
【００５９】
ＣＰＵ２１は、ホストＣＰＵ１１からファームウェアダウンロードコマンドを受信すると、スクランブル回路２３を起動する。すると、スクランブル回路２３は、暗号鍵ＲＯＭ２４からスクランブルドダウンロードファームウェア暗号鍵Ｋｆｗを読み込んで（ステップ１０）、これをデスクランブルし、ダウンロードファームウェア暗号鍵Ｋｆｗを復元する（ステップ１２）。
【００６０】
ＣＰＵ２１は、スクランブル回路２３からダウンロードファームウェア暗号鍵Ｋｆｗを取得し、これを暗号エンジン２８の鍵レジスタにセットする（ステップ１４）。そして、ＣＰＵ２１はホストＣＰＵ１１に暗号エンジン２８にダウンロードファームウェア暗号鍵Ｋｆｗがセットされたことを通知する信号を送信する。
【００６１】
ホストＣＰＵ１１はＣＰＵ２１からこの信号を受信して暗号エンジン２８にダウンロードファームウェア暗号鍵Ｋｆｗがセットされたことを認識し、ハードディスク１２から暗号化ダウンロードファームウェアを取得してＣＰＵ２１に送信する（ステップ１６）。
ＣＰＵ２１は、ホストＣＰＵ１１から暗号化ダウンロードファームウェアを取得してこれを暗号エンジン２８に入力する。
【００６２】
暗号エンジン２８は、ダウンロードファームウェア暗号鍵Ｋｆｗを用いて暗号化ダウンロードファームウェアからダウンロードファームウェアを復号化する（ステップ１８）。
ＣＰＵ２１は、暗号エンジン２８から復号化されたダウンロードファームウェアを取得してＲＡＭ２６に記憶させる（ステップ２０）。
【００６３】
ＣＰＵ２１は、ダウンロードファームウェアのＲＡＭ２６への展開を終了するとその旨をホストＣＰＵ１１に通知する。
ホストＣＰＵ１１はこれを受け、ＣＰＵ２１にダウンロードファームウェア実行コマンドを送信する（ステップ２２）。
ＣＰＵ２１は、ホストＣＰＵ１１からダウンロードファームウェア実行コマンドを受信してＲＡＭ２６に展開したダウンロードファームウェアの実行を開始する。
【００６４】
以上のようにして、ホストＣＰＵ１１は、暗号化ダウンロードファームウェアをセキュリティチップ２に入力して実行させることができる。
ダウンロードファームウェアは暗号化された状態でセキュリティチップ２に入力され、そしてセキュリティチップ２内で処理される。
そのため、ダウンロードファームウェアがどのような機能を発揮させるプログラムであるのか、また、セキュリティチップ２でどのような処理をしているのかを外部から知ることはできない。
【００６５】
このようにセキュリティに関する処理をセキュリティチップ２内で行うように構成する（即ち、セキュリティ関係の処理をセキュリティチップ２に封じ込める）ことにより、セキュリティに関する処理をブラックボックス化することができ、サービス提供システム１００のセキュリティレベルを高めることができる。
【００６６】
また、ダウンロードファームウェアは、ダウンロードファームウェア暗号鍵Ｋｆｗで暗号化するだけでなく、ダウンロードファームウェアに署名をつけて対応する公開鍵をＥＥＰＲＯＭ２２、又はプログラムＲＯＭ２５に書き込んでおき、ダウンロードファームウェアをハードディスク１２からダウンロードした際に署名検証も行うように構成するとよりセキュリティレベルを高めることができる。
【００６７】
以上に説明した手順にてホストＣＰＵ１１は、セキュリティチップ２にブート処理を行わせ、ダウンロードファームウェアを実行させることができる。そして、ＣＥ機器１は、このようなダウンロードファームウェアとして出荷前初期化用ダウンロードファームウェアとサービスデータ登録用ダウンロードファームウェアを有している。
以下に、これらのダウンロードファームウェアがセキュリティチップ２で実行される態様について説明する。
【００６８】
出荷前初期化用ダウンロードファームウェアは、ＥＥＰＲＯＭ２２にスクランブル鍵Ｋｓｃを書き込むと共に、ＣＥ機器１に固有の暗号鍵であるストレージ鍵Ｋｓｔを生成するプログラムである。
出荷前初期化用ダウンロードファームウェアはＣＥ機器１の出荷前に実行されるが、ＣＥ機器１の出荷後にユーザが実行させることも可能である。
【００６９】
図６のフローチャートを用いてセキュリティチップ２で出荷前初期化用ダウンロードファームウェアを実行する場合の動作を説明する。
なお、セキュリティチップ２の製造完了時には、ＥＥＰＲＯＭ２２には、スクランブル鍵の初期値であるＫｓｃ０が記憶されており、暗号鍵ＲＯＭ２４には、スクランブル鍵Ｋｓｃ０を用いてデスクランブルされるスクランブルドダウンロードファームウェア鍵Ｋｆｗ０が記憶されている。
そして、ハードディスク１２に記憶されている暗号化出荷前初期化用ダウンロードファームウェアは、ダウンロードファームウェア鍵Ｋｆｗ０にて復号化されるように構成されている。
【００７０】
まず、ホストＣＰＵ１１がセキュリティチップ２をブートするためにＣＰＵ２１にリセット信号を送信する（ステップ３０）。
ＣＰＵ２１は、リセット信号を受信してプログラムＲＯＭ２５からブートプログラムを読み込み、これの実行を開始する。
【００７１】
まず、ＣＰＵ２１は、ＥＥＰＲＯＭ２２からスクランブル鍵Ｋｓｃ０を読み出してスクランブル回路２３に提供する（ステップ３２）。
スクランブル回路２３は、ＣＰＵ２１からスクランブル鍵Ｋｓｃ０を取得してこれをセットする（ステップ３４）。
【００７２】
スクランブル鍵Ｋｓｃのセットが完了すると、ＣＰＵ２１はホストＣＰＵ１１にスクランブル回路２３にスクランブル鍵Ｋｓｃ０がセットされたことを通知する信号を送信する。
ホストＣＰＵ１１は、ＣＰＵ２１からスクランブル鍵Ｋｓｃ０のセットが完了した旨の通知を受けると、ＣＰＵ２１に対して出荷前初期化用ファームウェアダウンロードコマンドを送信する（ステップ３６）。
【００７３】
ＣＰＵ２１は、ホストＣＰＵ１１から出荷前初期化用ファームウェアダウンロードコマンドを受信すると、スクランブル回路２３を起動する。すると、スクランブル回路２３は、暗号鍵ＲＯＭ２４からスクランブルドダウンロードファームウェア暗号鍵Ｋｆｗ０を読み込んで（ステップ３８）、ダウンロードファームウェア暗号鍵Ｋｆｗ０を復元する（ステップ４０）。
【００７４】
ＣＰＵ２１は、スクランブル回路２３からダウンロードファームウェア暗号鍵Ｋｆｗ０を取得し、これを暗号エンジン２８の鍵レジスタにセットする（ステップ４２）。そして、ＣＰＵ２１はホストＣＰＵ１１に暗号エンジン２８にダウンロードファームウェア暗号鍵Ｋｆｗがセットされたことを通知する信号を送信する。
【００７５】
ホストＣＰＵ１１はＣＰＵ２１からこの信号を受信して暗号エンジン２８にダウンロードファームウェア暗号鍵Ｋｆｗ０がセットされたことを認識し、ハードディスク１２から暗号化出荷前初期化用ダウンロードファームウェアを取得してＣＰＵ２１に送信する（ステップ４４）。
ＣＰＵ２１は、ホストＣＰＵ１１から暗号化出荷前初期化用ダウンロードファームウェアを取得するとこれを暗号エンジン２８に入力する。
【００７６】
暗号エンジン２８は、ダウンロードファームウェア暗号鍵Ｋｆｗ０を用いて暗号化出荷前初期化用ダウンロードファームウェアから出荷前初期化用ダウンロードファームウェアを復号化する（ステップ４６）。
ＣＰＵ２１は、暗号エンジン２８から復号化された出荷前初期化用ダウンロードファームウェアを取得してＲＡＭ２６に記憶させる（ステップ４８）。
【００７７】
ＣＰＵ２１は、ダウンロードファームウェアのＲＡＭ２６への展開を終了するとその旨をホストＣＰＵ１１に通知する。
ホストＣＰＵ１１はこれを受け、ＣＰＵ２１に出荷前初期化用ダウンロードファームウェア実行コマンドを送信する（ステップ５０）。
ＣＰＵ２１は、ホストＣＰＵ１１からこれを受信してＲＡＭ２６に展開した出荷前初期化用ダウンロードファームウェアの実行を開始する。
以下の処理は、ＣＰＵ２１が出荷前初期化用ダウンロードファームウェアに従って行うものである。
【００７８】
出荷前初期化用ダウンロードファームウェアは、スクランブル鍵Ｋｓｃを暗号化して有しており、まず、ＣＰＵ２１はこれからスクランブル鍵Ｋｓｃを復号化する（ステップ５２）。
この復号化は、例えば、暗号鍵をプログラムＲＯＭ２５などに予め記憶させておき、これを用いて暗号エンジン２８で行うことができる。
ＣＰＵ２１は、復号化したスクランブル鍵ＫｓｃをＥＥＰＲＯＭ２２に記憶させる（ステップ５４）。
【００７９】
ここで、出荷前初期化用ダウンロードファームウェアは、半導体チッププログラムを構成している。
出荷前初期化用ダウンロードファームウェアにより生成されるスクランブル鍵Ｋｓｃは、スクランブル鍵Ｋｓｃ０に対して第２のスクランブル鍵情報にあたり、ホストＣＰＵ１１はこれを生成してＥＥＰＲＯＭ２２に記憶している。
更に、ホストＣＰＵ１１は、出荷前初期化用ダウンロードファームウェアを実行することにより第２の暗号鍵情報（ストレージ鍵Ｋｓｔ）を生成し、ＥＥＰＲＯＭ２２に記憶している。
【００８０】
なお、出荷前初期化用ダウンロードファームウェアは、ダウンロードファームウェア暗号鍵Ｋｆｗ０で暗号化されているので、スクランブル鍵Ｋｓｃなどの秘密情報をファームウェア中にそのまま持たせてもよいが、本実施の形態では、セキュリティレベルを高めるため、これら秘密情報を暗号化してダウンロードファームウェアに持たせることにした。
【００８１】
このように、ダウンロードファームウェアに秘密情報を持たせる場合に、これらを暗号化して持たせることにより、万が一ダウンロードファームウェアから秘密情報が漏洩した場合でも秘密を守ることができる。
なお、ダウンロードファームウェアに持たせておいた秘密情報は、例えば、プログラムＲＯＭ２５やＥＥＰＲＯＭ２２に書き込んでおいた公開鍵、又はそれで検証可能な公開鍵で暗号化して持たせたり、あるいは、暗号鍵ＲＯＭ２４にスクランブル鍵を用意し、その鍵でデスクランブル可能な形で（例えばスクランブル鍵とのＥＸＯＲ（排他的論理和）により得られる値を秘密情報とする）持たせることができる。
【００８２】
次に、ＣＰＵ２１は、乱数発生器２９で所定の桁数の乱数を発生させ、これによってストレージ鍵Ｋｓｔを生成する（ステップ５６）。ここでは、発生した乱数をそのままストレージ鍵Ｋｓｔとして利用するが、発生した乱数を利用してストレージ鍵Ｋｓｔを生成するように構成してもよい。
ＣＰＵ２１は、生成したストレージ鍵ＫｓｔをＥＥＰＲＯＭ２２に記憶させる（ステップ５８）。
以上によりセキュリティチップ２の初期化が完了する。
【００８３】
このように、セキュリティチップ２の初期化処理により、セキュリティチップ２にスクランブル鍵Ｋｓｃとストレージ鍵Ｋｓｔを持たせることができる。
しかもストレージ鍵Ｋｓｔはセキュリティチップ２で発生してセキュリティチップ２の内部で保持するものであり、セキュリティチップ２だけが知っている固有の情報である。このため、ＣＥ機器１の出荷時に各ＣＥ機器１に固有の暗号鍵を用意する必要がなく、ＣＥ機器１の製造コストが低減される。
ストレージ鍵Ｋｓｔは、秘匿性が極めて高い情報であるため、サービスデータを暗号化するのに好適である。
【００８４】
図７のフローチャートを用いてセキュリティチップ２でサービスデータ登録用ダウンロードファームウェアを実行する場合の動作を説明する。
この処理は、ユーザがＣＥ機器１の購入後に行うものであり、これによりＣＥ機器１はサービスデータ登録サーバ５からサービスデータを取得し、これをストレージ鍵Ｋｓｔで暗号化して記憶することができる。
【００８５】
まず、ホストＣＰＵ１１は、ハードディスク１２から暗号化サービスデータ登録用ダウンロードファームウェアを読み出してセキュリティチップ２に入力する（ステップ６０）。
セキュリティチップ２は、これからサービスデータ登録用ダウンロードファームウェアを復号化して実行可能な状態にする。
次に、ホストＣＰＵ１１は、セキュリティチップ２にサービスデータ登録処理コマンドを入力する（ステップ６２）。
【００８６】
すると、セキュリティチップ２は、サービスデータ登録用ダウンロードファームウェアを実行し、乱数Ｎ１を生成してホストＣＰＵ１１に出力する（ステップ６４）。この第２の乱数は乱数発生器２９により発生させられる。また、乱数発生プログラムを用いてＣＰＵ２１により発生させることも可能である。
ホストＣＰＵ１１は、セキュリティチップ２から乱数Ｎ１を取得し、これをホストバスインターフェース２７を介してサービスデータ登録サーバ５に送信してサービスデータの送信を要求する（ステップ６６）。
即ち、セキュリティチップ２は、ホストＣＰＵ１１を介してサービスデータ登録サーバ５と通信し、サービスデータ登録サーバ５に乱数Ｎ１を送信してサービスデータの送信を要求している。
【００８７】
サービスデータ登録サーバ５は、ＣＥ機器１から乱数Ｎ１を受信すると、サービスデータ暗号鍵Ｋｓｄで暗号化した暗号化サービスデータと乱数Ｎ１に署名をつけてＣＥ機器１に送信する（ステップ６８）。
なお、サービスデータ鍵Ｋｓｄは、サービスデータ登録用ダウンロードファームウェアが暗号化して持っており、先のダウンロードファームウェア暗号鍵Ｋｆｗと同様にセキュリティチップ２で復号化され、暗号化サービスデータを復号化するのに用いられる。
【００８８】
ＣＥ機器１では、サービスデータ登録サーバ５から送信されてきた暗号化サービスデータと乱数Ｎ１をＣＰＵ２１が受信し、セキュリティチップ２に入力する（ステップ７０）。
セキュリティチップ２は、これらの情報を受け取り、署名（例えば、後述のように公開鍵を用いる）及び乱数Ｎ１を確認した後、暗号化サービスデータをサービスデータ暗号鍵Ｋｓｄを用いて復号化し、更にストレージ鍵Ｋｓｔで再暗号化する（ステップ７２）。即ち、サービスデータをセキュリティチップ２に固有な暗号鍵で再暗号化する。ステップ７２の処理については後に詳細に説明する。
【００８９】
セキュリティチップ２は、再暗号化サービスデータをホストＣＰＵ１１に出力し、ホストＣＰＵ１１は、これをハードディスク１２に記憶する（ステップ７４）。
以上の処理により、ＣＥ機器１はサービスデータをセキュリティチップ２に固有の暗号鍵で暗号化してハードディスク１２に記憶することができる。
【００９０】
次に、図７のステップ７２のサービスデータ復号・再暗号化処理について図８のフローチャートを用いて説明する。
以下の処理は、セキュリティチップ２のＣＰＵ２１がサービスデータ登録用ダウンロードファームウェアに従って行うものである。
【００９１】
まず、ＣＰＵ２１は、サービスデータ登録サーバ５が送信してきたデータをホストＣＰＵ１１から受け取る。
ここでサービスデータ登録サーバ５が送信してくるデータは、次の式（１）で示したように構成されている。
【００９２】
Ｓｉｇ（ＰｒｉｖＫｅｙＳＰ，Ｎ１｜｜Ｅｎｃ（Ｋｓｄ，ＳｅｒｖｉｃｅＤａｔａ））…式（１）
【００９３】
記号の表す意味は次の通りである。
まず、暗号鍵ＡでデータＢを暗号化した暗号化データＢをＥｎｃ（Ａ，Ｂ）と表す。即ち、式（１）中のＥｎｃ（Ｋｓｄ，ＳｅｒｖｉｃｅＤａｔａ）は、サービスデータ鍵Ｋｓｄでサービスデータ（ＳｅｒｖｉｃｅＤａｔａはサービスデータを表す）を暗号化したものである。
【００９４】
また、２つのデータＣ、Ｄを秘密鍵Ｅで署名したデータをＳｉｇ（Ｅ，Ｃ｜｜Ｄ）と表す。即ち、式（１）は、乱数Ｎ１とＥｎｃ（Ｋｓｄ，ＳｅｒｖｉｃｅＤａｔａ）を秘密鍵ＰｒｉｖＫｅｙＳＰで暗号化したものである。セキュリティチップ２は、この秘密鍵に対応する公開鍵を例えばＥＥＰＲＯＭ２２などに持っており、これを用いてサービスデータ登録サーバ５から送信されてきたデータを復号化する。復号化が成功したことにより、このデータの送信元が当該公開鍵に対応する秘密鍵を有していること、即ちサービスデータ登録サーバ５であることを確認することができる。
【００９５】
ＣＰＵ２１は、このデータを秘密鍵ＰｒｉｖＫｅｙＳＰに対応する公開鍵で復号化し、これによって署名を確認する（ステップ８２）。
次に、復号化したデータに含まれる乱数Ｎ１と先に生成した乱数Ｎ１の同一性を確認する（ステップ８４）。同一でない場合はアラームを発っして処理を中止する。同一性が確認できた場合は処理を続行する。
【００９６】
次に、ＣＰＵ２１は、サービスデータ暗号鍵Ｋｓｄを用いてサービスデータを復号化する（ステップ８６）。
そして、ＣＰＵ２１は、復号化したサービスデータをストレージ鍵Ｋｓｔを用いて再度暗号化し（ステップ８８）、ホストＣＰＵ１１に出力する。ホストＣＰＵ１１は、これをハードディスク１２に記憶させる。
【００９７】
ここで、サービスデータ登録ダウンロードファームウェアは、半導体チッププログラムを構成しており、サービスデータ登録サーバ５にサービスデータ（秘密情報）の送信を要求して取得し、これを復号化した後再度暗号化してハードディスク１２に記憶している。また、乱数を生成してサービスデータ登録サーバ５に送信し、サービスデータ登録サーバ５が返信してきた乱数の同一性を確認したり、サービスデータ登録サーバ５が行った電子署名を確認したりしている。
【００９８】
以上のようにして、セキュリティチップ２は、出荷前初期化用ダウンロードファームウェアを用いてダウンロードファームウェア暗号鍵とストレージ鍵を取得し、サービスデータ登録用ダウンロードファームウェアによりサービスデータをストレージ鍵で暗号化してハードディスク１２に記憶することができた。
【００９９】
次に、このようにして記憶したサービスデータの利用方法について説明する。
ここでは、一例としてサービスデータをコンテンツ暗号鍵Ｋｃとし、サービス提供サーバ７からコンテンツ暗号鍵Ｋｃで暗号化された暗号化コンテンツを受信する場合を例にとる。
【０１００】
まず、ＣＥ機器１は、サービス提供サーバ７に機器認証情報を送信すると共に暗号化コンテンツ（電子情報）の送信を要求する。
サービス提供サーバ７は、機器認証情報を用いてＣＥ機器１を機器認証した後、要求された暗号化コンテンツをＣＥ機器１に送信する。ＣＥ機器１は、この暗号化コンテンツを受信する。
【０１０１】
ＣＥ機器１では、ホストＣＰＵ１１が暗号化サービスデータをハードディスク１２から読み取ってセキュリティチップ２に入力すると共に、サービス提供サーバ７から受信した暗号化コンテンツをセキュリティチップ２に入力する。
セキュリティチップ２では、ストレージ鍵Ｋｓｔを用いてサービスデータ（コンテンツ暗号鍵Ｋｃ）を復号化して復元する。そして、ホストＣＰＵ１１からコンテンツを取得する。更に、復号化したサービスデータを用いて暗号化コンテンツを復号化し、ホストＣＰＵ１１に出力する。これにより、ホストＣＰＵ１１は、復号化したコンテンツを利用することができる。このように、ＣＥ機器１は、コンテンツを利用手段を備えており、この場合、ホストＣＰＵ１１は、暗号化したコンテンツを復号化のためにセキュリティチップ２に入力する入力手段を構成している。
以上の処理は、所定のプログラム（半導体チッププログラム）に従ってＣＰＵ２１が行うものである。
【０１０２】
次に、スクランブル回路２３について補足説明を行う。
先に説明したように、スクランブル回路２３は、一種の暗号回路であり、スクランブル鍵で決まる変換を行う。暗号アルゴリズム（下記例では秘密パラメータやＡＥＳの鍵、入力値、出力値）を秘密にすることにより、攻撃者は仮にスクランブル鍵や暗号鍵ＲＯＭ２４に記憶されているデータの値がわかっても読み出される値を知ることはできない。
【０１０３】
ここでは、スクランブル回路の一例として、ＡＥＳを用いて、秘密パラメータ鍵とスクランブル鍵のＥＸＯＲを鍵として、暗号鍵ＲＯＭ２４のアドレスとデータを３２ビットずつ並べた値を復号し、対応するビットの値を読み出されたデータとする場合を図９を参照しながら説明する。
【０１０４】
前提としてスクランブル鍵を（０ｘ１１１１  ００００  ３３３３  ００００  ５５５５  ００００  ７７７７  ００００）とし、秘密パラメータ鍵（スクランブルドダウンロードファームウェア暗号鍵に対応）を（０ｘ００００  ２２２２  ００００  ４４４４  ００００  ６６６６  ００００  ８８８８）とする。
まず、スクランブル回路２３は、スクランブル鍵と秘密パラメータ鍵の排他的論理和（ＥＸＯＲ）をとり、鍵（０ｘ１１１１  ２２２２  ３３３３  ４４４４  ５５５５  ６６６６  ７７７７  ８８８８）を生成する。
【０１０５】
ここで、暗号鍵ＲＯＭ２４のアドレス（０ｘａａｂｂｃｃ００）、（０ｘａａｂｂｃｃ０４）を対象とし、これらのアドレスに記憶されているデータを（アドレス    データ）として、（０ｘａａｂｂｃｃ００    ０ｘ０１２３  ４５６７）、（０ｘａａｂｂｃｃ０４    ０ｘ８９ａｂ  ｃｄｅｆ）とするときに、これらから（０ｘａａｂｂ  ｃｃ００  ０１２３  ４５６７  ａａｂｂ  ｃｃ０４  ８９ａｂ  ｃｄｅｆ）を生成する。
【０１０６】
そして、これを先に生成した鍵にてＡＥＳ復号し、その値が（０ｘ２ｃ９ｃ  ７ｆｆ２  ４４１ｂ  ０ｃ０２  ｆ７ｄ５  ９０８６  ａ５５ｃ  ｅａ７ｄ）であったとする。
この場合、スクランブル回路２３を介してＲＯＭ２４のアドレス（０ｘａａｂｂ  ｃｃ００）を読み出した値は、（０ｘ４４１ｂ  ０ｃ０２）となる。この値がダウンロードファームウェア暗号鍵となる。
【０１０７】
以上に説明した本実施の形態により次のような効果を得ることができる。
（１）スクランブル回路２３を用いて暗号鍵ＲＯＭ２４内のデータを秘匿するため、スクランブル鍵をセキュリティチップ２製造後にチップ内の不揮発性メモリに書き込むことができ、これにより、セキュリティチップ２の設計者、製造者からも暗号鍵ＲＯＭ２４内のデータを秘匿することができる。
即ち、セキュリティチップ２の設計者、製造者には、暗号鍵ＲＯＭ２４内のデータを教えずに設計、製造を依頼することができる。
【０１０８】
（２）セキュリティチップ２に固有な情報であるストレージ鍵ＫｓｔをＣＥ機器１で発生させることができるため、出荷時にＣＥ機器１に固有な情報を持たせる必要がなく、ＣＥ機器１の製造コストを低減することができる。
（３）ＣＥ機器１は、サービスデータをサービスデータ登録サーバ５から取得し、これをストレージ鍵Ｋｓｔで暗号化してこれを保持することができる。
（４）暗号化・復号化に関する処理をセキュリティチップ２の内部で行うことができるため、外部からの解析が困難であり、セキュリティレベルを高めることができる。
【０１０９】
（５）セキュリティチップ２内の秘密情報を知るには、スクランブル回路２３の回路情報、暗号鍵ＲＯＭ２４に書き込まれたデータ、スクランブル鍵の全ての情報が必要であるが、これらの情報は、関係者がお互いに供託しない限り入手することはできず、秘密情報を知ることは、非常に困難である。
（６）スクランブル鍵Ｋｓｃは、暗号化されたファームによって書き込まれるので、限られた関係者以外はスクランブル鍵Ｋｓｃを知ることは困難である。
（７）セキュリティチップ２にスクランブル回路２３を組み込むことによりＲＯＭデータ（暗号鍵ＲＯＭ２４内のデータ）を秘匿することができる。
これにより、スクランブル鍵をセキュリティチップ２の製造後にチップ内の不揮発性メモリ（ＥＥＰＲＯＭ２２）に書き込むことができ、セキュリティチップ２の設計者、製造者からもＲＯＭデータを秘匿することができる。
【図面の簡単な説明】
【０１１０】
【図１】本実施の形態の概要を説明するための図である。
【図２】本実施の形態のネットワーク構成を説明するための図である。
【図３】ＣＥ機器の機能的な構成を模式的に表したブロック図である。
【図４】セキュリティチップの内部構成を模式的に表したブロック図である。
【図５】セキュリティチップのブート処理を説明するためのフローチャートである。
【図６】出荷前初期化用ダウンロードファームウェアを実行した場合のセキュリティチップの動作を説明するためのフローチャートである。
【図７】サービスデータ登録用ダウンロードファームウェアを実行した場合のセキュリティチップの動作を説明するためのフローチャートである。
【図８】サービスデータ復号・再暗号化処理を説明するためのフローチャートである。
【図９】スクランブル回路の一例を説明するための図である。
【符号の説明】
【０１１１】
１  ＣＥ機器                        ２  セキュリティチップ
５  サービスデータ登録サーバ        ７  サービス提供サーバ
１１  ホストＣＰＵ                  １２  ハードディスク
１３  ネットワークインターフェース  ２１  ＣＰＵ
２２  ＥＥＰＲＯＭ                  ２３  スクランブル回路
２４  暗号鍵ＲＯＭ                  ２５  プログラムＲＯＭ
２６  ＲＡＭ                        ２７  ホストバスインターフェース
２８  暗号エンジン                  ２９  乱数発生器
【図１】
2005303370.tif 000003
【図２】
2005303370.tif 000004
【図３】
2005303370.tif 000005
【図４】
2005303370.tif 000006
【図５】
2005303370.tif 000007
【図６】
2005303370.tif 000008
【図７】
2005303370.tif 000009
【図８】
2005303370.tif 000010
【図９】
2005303370.tif 000011