JP2005303370A - 半導体チップ、起動プログラム、半導体チッププログラム、記憶媒体、端末装置、及び情報処理方法 - Google Patents

半導体チップ、起動プログラム、半導体チッププログラム、記憶媒体、端末装置、及び情報処理方法 Download PDF

Info

Publication number
JP2005303370A
JP2005303370A JP2004112408A JP2004112408A JP2005303370A JP 2005303370 A JP2005303370 A JP 2005303370A JP 2004112408 A JP2004112408 A JP 2004112408A JP 2004112408 A JP2004112408 A JP 2004112408A JP 2005303370 A JP2005303370 A JP 2005303370A
Authority
JP
Japan
Prior art keywords
information
encryption key
encryption
semiconductor chip
scramble
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2004112408A
Other languages
English (en)
Inventor
Takayoshi Kawaguchi
貴義 川口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2004112408A priority Critical patent/JP2005303370A/ja
Publication of JP2005303370A publication Critical patent/JP2005303370A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】 必要最低限の者のみが秘密情報を知り、残りのものは秘密情報を知ることが困難な半導体チップなどを提供すること。
【解決手段】
セキュリティチップ2において、スクランブル回路23は、EEPROM22からスクランブル鍵Kscを取得する。そして、これを用いて暗号鍵ROM24に記憶されているスクランブルドダウンロードファームウェア暗号鍵Kfwをデスクランブルし、ダウンロードファームウェア暗号鍵Kfwを復元する。暗号エンジン28は、スクランブル回路23からダウンロードファームウェア暗号鍵Kfwを取得し、CE機器が備えたハードディスク12に記憶されている暗号化ダウンロードファームウェアを復号化してRAM26に展開する。
【選択図】 図1

Description

本発明は、半導体チップ、起動プログラム、半導体チッププログラム、記憶媒体、端末装置、及び情報処理方法に関する。詳しくは、スクランブル回路を用いることにより、セキュリティチップに組み込む情報を知り得る者を限定するものである。
近年、ネットワークを介してユーザにサービスを提供する事業が盛んになってきた。
このような事業では、如何に正当なユーザにのみサービスを提供し、不正なユーザの利用を防止するかが重要な課題となっている。
このような課題に対処するため、暗号鍵などの秘密情報を備えたセキュリティチップをクライアント機器(端末装置)に内蔵するものがある。
この場合、サーバは暗号化したコンテンツをクライアント機器に送信し、クライアント端末では、これをセキュリティチップで復号化してユーザが利用できるようにする。
ところで、セキュリティチップに記憶されている秘密情報を知っている者は、これを用いて所謂なりすましができる可能性がある。
そのため、通常セキュリティチップは、例えば耐タンパ機能やアクセス制限機能などの保護機能が組み込まれており、セキュリティチップを解析することによってその秘密情報を読み出したり、不正に利用したりすることは困難になるように設計される。
近年、デジタルデータで構成された音楽やビデオなど(デジタルコンテンツ)の著作権の保護(DRM:Digital Rights Management)が重要視されており、セキュリティチップによるコンテンツの不正利用防止技術はネットワークを介したコンテンツ配信サービス事業の存立に関わるものである。
このように秘密情報を有するクライアント機器のセキュリティを高める技術は各種提案されているが、その中にスクランブル回路を用いるものがある。
後述するように、本実施の形態では、セキュリティチップにスクランブル回路を組み込んでセキュリティレベルを高める技術について説明するため、ここではスクランブル回路を用いた文献を挙げておく。
特開2001−223687
この技術は、スクランブルした秘密情報、スクランブル回路、及び秘密情報をデスクランブルするためのスクランブル鍵を内蔵したクライアント機器を製造する際に、例えば仕向先毎にスクランブル鍵を異ならせておくことによりセキュリティを高めるものである。スクランブルした秘密情報は、スクランブル鍵をセットしたスクランブル回路にて復元(デスクランブル)することができる。
一般に、CE機器にセキュリティチップを用いたサービスシステムは、例えば以下のような人や組織が関わって構築される。
(1)セキュリティチップの回路設計者、(2)セキュリティチップのROMファーム(プログラム)開発者、(3)セキュリティチップ製造者、(4)セキュリティチップの書き換え可能メモリ用ファーム開発者、(5)セキュリティチップの組み込まれるクライアント機器設計者、(6)クライアント機器製造者、(7)コンテンツなどを配信するサーバ開発者、(8)サーバ運営者、(9)サーバより配信される暗号化コンテンツやその鍵などのデータ作成者、(10)コンテンツ提供者。
このように、CE機器にセキュリティチップを用いたサービスシステムでは、セキュリティチップ設計や製造に多くの人材や組織が関わるため、多くの者が、セキュリティチップのROM(Read Only Memory)などに書かれた機密性を要する情報を知ることができてしまう。
従来、このような問題は秘密保持契約(NDA:Non−Disclosure Agreement)で対処するより方法がなかった。
そこで、本発明の目的は、半導体チップに機密性を要する情報を組み込む場合に、その情報を知り得る者を最小限に限定することができる構成を有する半導体チップを提供することである。
これにより例えば、先に例示した(9)サーバより配信される暗号化コンテンツやその鍵などのデータ作成者のみが秘密情報を知るようにすることができる。
本発明は、前記目的を達成するために、スクランブルされた情報のデスクランブルに使用されるスクランブル鍵情報が記憶されるスクランブル鍵情報記憶手段と、スクランブルされた暗号鍵情報を記憶する暗号鍵記憶手段と、前記スクランブル鍵情報を用いてスクランブルされた前記暗号鍵情報をデスクランブルするスクランブル回路と、外部から暗号化された暗号化情報を取得する暗号化情報取得手段と、デスクランブルされた前記暗号鍵情報を用いて前記取得した暗号化情報を復号化する暗号処理手段と、を具備したことを特徴とする半導体チップを提供する(第1の構成)。
また、第1の構成の半導体チップは、コンピュータプログラムを実行するプログラム実行手段と、前記暗号処理手段で復号化した復号化情報を記憶する復号化情報記憶手段と、を具備し、前記プログラム実行手段は、前記復号化情報がコンピュータプログラムである場合に、前記復号化情報記憶手段に記憶したコンピュータプログラムを実行するように構成することもできる(第2の構成)。
更に、第1の構成の半導体チップは、当該半導体チップに固有の第2の暗号鍵情報を生成する第2の暗号鍵情報生成手段と、前記生成した第2の暗号鍵情報を記憶する第2の暗号鍵記憶手段と、を具備し、前記暗号処理手段は、前記記憶した第2の暗号鍵情報を用いて暗号処理を行うように構成することもできる(第3の構成)。
また、第2の構成の半導体チップは、前記スクランブル鍵情報を前記スクランブル回路に入力するスクランブル鍵情報入力機能と、スクランブルされた前記暗号鍵情報を前記スクランブル回路に入力する暗号鍵入力機能と、前記入力されたスクランブル鍵情報とスクランブルされた暗号鍵情報により前記スクランブル回路でデスクランブルされた前記暗号鍵情報を前記暗号処理手段に入力する暗号鍵入力機能と、を前記プログラム実行手段で実現する起動プログラムを記憶した起動プログラム記憶手段を具備するように構成することもできる(第4の構成)。
また、本発明は、第2の構成の半導体チップにおいて、前記スクランブル鍵情報を前記スクランブル回路に入力するスクランブル鍵情報入力機能と、スクランブルされた前記暗号鍵情報を前記スクランブル回路に入力する暗号鍵入力機能と、前記入力されたスクランブル鍵情報とスクランブルされた暗号鍵情報により前記スクランブル回路でデスクランブルされた前記暗号鍵情報を前記暗号処理手段に入力する暗号鍵入力機能と、を前記プログラム実行手段で実現する起動プログラムを提供する(第5の構成)。
また、第2の構成の半導体チップにおいて、前記暗号処理手段で復号化され、前記プログラム実行手段で実行されるコンピュータプログラムであって、第2のスクランブル鍵情報を取得する第2のスクランブル鍵情報取得機能と、前記取得した第2のスクランブル鍵情報を前記スクランブル鍵情報記憶手段に記憶させる第2のスクランブル鍵情報記憶機能と、を前記プログラム実行手段で実現する半導体チッププログラムを提供する(第6の構成)。
更に、第2の構成の半導体チップにおいて、前記暗号処理手段で復号化され、前記プログラム実行手段で実行されるコンピュータプログラムであって、当該半導体チップに固有の第2の暗号鍵情報を取得する第2の暗号鍵情報取得機能と、前記取得した第2の暗号鍵情報を記憶させる第2の暗号鍵情報記憶機能と、を前記プログラム実行手段で実現する半導体チッププログラムを提供する(第7の構成)。
また、第3の構成の半導体チップにおいて、前記暗号処理手段で復号化され、前記プログラム実行手段で実行されるコンピュータプログラムであって、要求に応じて所定のサーバから送信されるサービス秘密情報を受信して復号化する復号化機能と、前記復号化したサービス秘密情報を、前記第2の暗号鍵記憶手段で記憶した第2の暗号鍵情報を用いて前記暗号処理手段に暗号化させるサービス秘密情報暗号化機能と、暗号化した前記サービス秘密情報をサービス秘密情報記憶手段に記憶させる記憶機能と、を前記プログラム実行手段で実現する半導体チッププログラムを提供する。
また、第8の半導体チッププログラムは、前記記憶機能で記憶されたサービス秘密情報を取得し、これを前記第2の暗号鍵情報を用いて前記暗号処理手段に復号化させるサービス秘密情報復号化機能と、前記暗号化情報取得手段にサービス電子情報を取得させ、前記取得したサービス電子情報を前記復号化したサービス秘密情報を用いて前記暗号処理手段に復号化させるサービス電子情報復号化機能と、を前記プログラム実行手段で実現するように構成することもできる(第9の構成)。
また、第8の半導体チッププログラムは、乱数を取得する乱数取得機能と、前記取得した乱数を、前記サービス秘密情報の要求と共に前記所定のサーバに送信する乱数送信機能と、前記所定のサーバから、前記要求したサービス秘密情報と共に乱数を受信する乱数受信機能と、を前記プログラム実行手段で実現させ、前記記憶機能は、前記生成した乱数と前記受信した乱数が同一である場合に、前記サービス秘密情報の記憶を行うように構成することもできる(第10の構成)。
更に、第8の半導体チッププログラムは、前記所定のサーバから送信されてくるサービス秘密情報は電子署名されており、前記電子署名を確認する電子署名確認機能を前記プログラム実行手段で実現させ、前記記憶機能は、前記電子署名が確認できた場合に前記サービス秘密情報の記憶を行わせるように構成することもできる(第11の構成)。
また、本発明は、第6の構成、第7の構成、第8の構成、第9の構成、第10の構成、及び第11の構成の半導体チッププログラムを記憶したコンピュータが読み取り可能な記憶媒体を提供する(第12の構成)。
また、本発明は、第1の構成の半導体チップを搭載した端末装置であって、前記暗号化情報が記憶された暗号化情報記憶手段と、前記記憶した暗号化情報を復号化するために前記半導体チップに入力する暗号化情報入力手段と、を具備したことを特徴とする端末装置を提供する(第13の構成)。
更に、本発明は、第3の構成の半導体チップを搭載した端末装置であって、サービスサーバから送信されるサービス電子情報を利用するサービス利用手段と、前記第2の暗号鍵情報を用いて暗号化され、前記サービス電子情報を復号化するのに使用するサービス秘密情報を記憶したサービス秘密情報記憶手段と、前記サービスサーバからサービス電子情報を受信するサービス電子情報受信手段と、前記記憶したサービス秘密情報とを前記半導体チップに入力し、前記受信したサービス電子情報を前記半導体チップで復号化するサービス電子情報復号化処理手段と、前記復号化したサービス電子情報を利用する利用手段と、を具備したことを特徴とする端末装置を提供する(第14の構成)。
また、本発明は、スクランブルされた情報のデスクランブルに使用されるスクランブル鍵情報が記憶されるスクランブル鍵情報記憶手段と、スクランブルされた暗号鍵情報を記憶する暗号鍵記憶手段と、スクランブル回路と、暗号化情報取得手段と、暗号処理手段と、を備えた半導体チップにおいて、前記スクランブル回路で、前記スクランブル鍵情報を用いてスクランブルされた前記暗号鍵情報をデスクランブルするスクランブルステップと、前記暗号情報取得手段で、外部から暗号化された暗号化情報を取得する暗号化情報取得ステップと、前記暗号処理手段で、前記デスクランブルされた暗号鍵情報を用いて前記取得した暗号化情報を復号化する暗号処理ステップと、から構成されたことを特徴とする情報処理方法を提供する。
更に、本発明は、第15の構成の情報処理方法において、前記半導体チップは、プログラム実行手段と、復号化情報記憶手段と、を備え、前記復号化情報記憶手段で、前記暗号処理手段で復号化した復号化情報を記憶する復号化情報記憶ステップと、前記記憶した復号化情報がコンピュータプログラムである場合に、前記プログラム実行手段で当該コンピュータプログラムを実行するプログラム実行ステップと、を備えるように構成することもできる(第16の構成)。
更に、本発明は、第15の構成の情報処理方法において、前記半導体チップは、第2の暗号鍵情報取得手段と、第2の暗号鍵記憶手段を備え、前記第2の暗号鍵情報取得手段で、当該半導体チップに固有の第2の暗号鍵情報を取得する第2の暗号鍵情報取得ステップと、前記第2の暗号鍵記憶手段で、前記生成した第2の暗号鍵情報を記憶する第2の暗号鍵情報記憶ステップと、を備え、前記暗号処理ステップは、前記記憶した第2の暗号鍵情報を用いて暗号処理を行うように構成することもできる(第17の構成)。
本発明により、半導体チップ内に秘匿する情報を知り得る関係者を最小限にしながらこれを組み込むことができる。
本実実施の形態では、クライアント端末としてCE(CE:Consumer Electronics)機器を例にとり説明する。
CE機器には、例えばビデオ装置、ステレオ装置、テレビジョン装置などといったオーディオビジュアル機器で構成され、インターネット接続機能を有し、サーバが提供するサービスを利用できるものである。
例えば、ビデオ装置やステレオ装置にサーバからビデオコンテンツや音楽コンテンツをダウンロードできるほか、携帯電話を用いて外部からビデオ装置に録画予約を行ったりなど、ネットワークを介した各種のサービスを利用することができる。
また、CE機器としては、上記のオーディオビジュアル機器のほかに、例えば、風呂釜、冷蔵庫、エアコン装置、暖房装置といった家電装置もある。
これらの家電品をネットワークに接続することにより、例えば、外部から風呂を沸かしたり、エアコンを動作させたりすることができる。
本実施の形態のCE機器は、各種の秘密情報が格納され、これを用いてコンテンツの復号化などのセキュリティ関係の情報処理を行うセキュリティチップ(半導体チップ)が内蔵されている。
(実施の形態の概要)
図1は、本実施の形態の概要を説明するための図である。
セキュリティチップ2において、スクランブル回路23は、EEPROM(Electrically Erasable and Programmable ROM)22からスクランブル鍵Kscを取得する。そして、これを用いて暗号鍵ROM24に記憶されているスクランブルドダウンロードファームウェア暗号鍵Kfw(スクランブルされている)をデスクランブルし、ダウンロードファームウェア暗号鍵Kfwを復元する。
暗号エンジン28は、スクランブル回路23からダウンロードファームウェア暗号鍵Kfwを取得し、CE機器が備えたハードディスク12に記憶されている暗号化ダウンロードファームウェアを復号化してRAM(Random Access Memory)26に展開する。
これによりダウンロードファームウェアが利用可能となる。
暗号鍵ROM24に記憶したスクランブルドダウンロードファームウェア暗号鍵Kfwを復元するにはスクランブル回路23の回路構成と、スクランブル鍵Kscの双方を知る必要がある。
そこで、EEPROM22に何も記憶されていないセキュリティチップ2を製造し、CE機器の出荷までの間の何れかのときにEEPROM22にスクランブル鍵Kscを書き込むようにすれば、セキュリティチップ2の設計者、及び製造者には、スクランブル回路23の回路構成を知ることは可能であるが、EEPROM22に記憶されたスクランブル鍵Kscを知ることはできない。
また、EEPROM22にスクランブル鍵Kscを書き込む者は、スクランブル鍵Kscを知ることができるかも知れないが、スクランブル回路23の回路構成を知ることはできない。
ダウンロードファームウェア暗号鍵Kfwを得るには、スクランブル鍵Ksc、スクランブル回路23の回路構成、及びスクランブルドダウンロードファムウェア暗号鍵Kfwの全てを知る必要がある。
そこで、セキュリティチップ2の設計・製造と、スクランブル鍵Kscの書き込みを別の事業者に委託することにより、何れも有効な秘密情報を知り得ることなくセキュリティチップ2をCE機器に組み込むことができる。
(実施の形態の詳細)
図2は、本実施の形態のネットワーク構成を説明するための図である。
サービス提供システム100は、インターネットなどで構成されたネットワーク3、ネットワーク3に接続可能に配設されたCE機器1、1、1、…、サービスデータ登録サーバ5、及びサービス提供サーバ7などから構成されている。
CE機器1は、ネットワーク3を介してサービスデータ登録サーバ5とサービス提供サーバ7に接続可能に配設されている。
ネットワーク3は、例えばインターネットで構成されるが、この他に、LAN(Local Area Network)、WAN(Wide Area Network)、電話回線網、無線通信網、通信衛星を介した通信網など、何らかの方法でサーバとクライアント機器間の通信を媒介するものであればよい。
CE機器1は、利用目的に応じた機能を発揮する(例えば、ステレオであれば光ディスクなどの記憶媒体に録音された音楽を再生するなど)ほか、ネットワーク3を介してサービスデータ登録サーバ5やサービス提供サーバ7、図示しないその他のサーバと通信する通信機能を有しており、クライアント機器(クライアント端末)を構成している。
CE機器1は、半導体チップ(セキュリティチップ2)を搭載した端末装置を構成している。
CE機器1は、ネットワーク3を介してサービス提供サーバ7が提供するコンテンツを受信し、利用することができる。
なお、コンテンツの不正利用を防ぐため、これを利用するためにはサービスデータ登録サーバ5が提供するサービスデータが必要となっている。
サービスデータには、例えば暗号化されたコンテンツを復号化するための暗号鍵(コンテンツ暗号鍵Kc)が含まれている。
サービスデータは、サーバ装置から送信されてくるサービス電子情報(コンテンツなど)を復号化するなどして利用するためのサービス秘密情報を構成している。
そのため、ユーザはCE機器1の購入後サービスデータ登録サーバ5に接続し、サービスデータをサービスデータ登録サーバ5からダウンロードしておく。CE機器1は、サービスデータ登録サーバ5からサービスデータを取得する処理にセキュリティチップ2の機能を利用するが、これについては後ほど詳細に説明する。
サービスデータ登録サーバ5は、新規に購入されたCE機器1に対してサービスデータを提供するサーバ装置である。
サービスデータ登録サーバ5は、新規購入のCE機器1から接続を受け付けて、サービスデータの送信要求を受信すると、当該CE機器1に対してサービスデータを送信する。
サービス提供サーバ7は、CE機器1にコンテンツを提供するサーバである。
一般に、CE機器1は、固有の機器IDやパスフレーズ(パスワードと同じであるが、パスワードより文字列の長さが長い)など、機器固有の情報を記憶している。
サービス提供サーバ7は、コンテンツの提供に際し、これら機器固有の情報(機器固有情報)をCE機器1から受信して機器認証し、CE機器1が正当に登録されているものであることを確認した後、暗号化したコンテンツを送信する。
本実施の形態では、機器認証とコンテンツの提供をサービス提供サーバ7で行うこととするが、サービス提供サーバ7とは別に機器認証専用のサーバ(機器認証サーバ)を設け、機器認証を機器認証サーバにて一括して行うように構成することもできる。
この場合、サービス提供サーバ7はCE機器1からコンテンツ提供の要求を受けると、機器認証サーバにCE機器1の機器認証を依頼する。そして、サービス提供サーバ7は機器認証サーバから機器認証結果を受信し、CE機器1が認証された場合にコンテンツを提供する。
機器固有情報は秘匿性の高い情報であるので、機器認証を機器認証サーバで一括して行うことによりセキュリティを高めることができる。
図3は、CE機器1の機能的な構成を模式的に表したブロック図である。
CE機器1は、セキュリティチップ2、ホストCPU11、ネットワークインターフェース(I/F)13、及びハードディスク12などがホストバスにて接続されて構成されている。
なお、図3は、セキュリティチップ2の機能を説明するために必要な構成を示しており、その他の機能(例えばCE機器1がステレオであれば、音楽を再生するために必要な光ディスクドライブやアンプなど)は省略してある。
ホストCPU11は、所定のプログラムに従って動作し、CE機器1全体の制御や各種の情報処理を行う中央処理装置(CPU:Central Processing Unit)である。
より具体的には、ホストCPU11は、例えば、サービスデータ登録サーバ5と通信し、サービスデータ登録サーバ5からサービスデータをダウンロードしたり、あるいは、サービス提供サーバ7からコンテンツをダウンロードしたりなど、各種サーバとの通信処理を行う。
更に、ホストCPU11は、ハードディスク12にアクセスして、ハードディスク12に対し情報を読み書きする入出力処理を行うことができる。
また、セキュリティチップ2に対して、各種のコマンドを入力してセキュリティチップ2に所望の動作を行わせたり、あるいは、ハードディスク12内の情報をセキュリティチップ2に入力したり、セキュリティチップ2が出力した情報をハードディスク12に書き込んだりなどする。
セキュリティチップ2は、内部に中央処理装置、記憶媒体、更に当該中央処理装置に実行させるプログラムなどが組み込まれた半導体チップ(半導体装置)であり、一種のコンピュータを構成している。
セキュリティチップ2は、コンテンツの不正受信や不正利用などの不正行為を防ぐための処理を行い、これらの処理を行うための暗号情報や回路が組み込まれている。
セキュリティチップ2は、例えば、LSI(Large Scale Integrated Circuit)チップなどの形で樹脂にてモールドされて提供されており、第三者による内部構造の解析は困難である。更に、例えば、耐タンパ構造(内部情報への不正アクセスなどに対する防御機能を備えた構造)を採用するなどして内部構造の解析をいっそう困難にすることができる。
ハードディスク12は、大容量の記憶媒体である。ハードディスク12は、ホストCPU11にて情報の読み書きを行えるように構成されており、例えば、サービス提供サーバ7からダウンロードしたコンテンツを記憶するのに用いられる。
更に、ハードディスク12は、セキュリティチップ2で実行させるための暗号化ダウンロードファームウェア(セキュリティチップ2に実行させるプログラムで暗号化されたもの)を記憶しており、ホストCPU11がこれをセキュリティチップ2に入力して実行させることができるようになっている。
ダウンロードファームウェアは、各種のものが可能であるが、CE機器1の場合は、出荷前初期化用ダウンロードファームウェアとサービスデータ登録用ダウンロードファームウェアが暗号化されて記憶されている。
詳細は後述するが、出荷前初期化用ダウンロードファームウェアは、CE機器1を出荷する前に実行するプログラムであって、セキュリティチップ2を初期化するためのものである。
サービスデータ登録用ダウンロードファームウェアは、ユーザがCE機器1を購入後に実行するプログラムであり、サービス提供サーバ7からサービスデータをダウンロードしてハードディスク12に記憶させるのに用いる。これにより、サービスデータを使用できるようになり、ユーザはCE機器1でコンテンツを利用できるようになる。
ネットワークインターフェース(I/F)13は、CE機器1をネットワーク3に接続するためのインターフェースである。
図4は、セキュリティチップ2の内部構成を模式的に表したブロック図である。
セキュリティチップ2には、CPU21、EEPROM22、スクランブル回路23、暗号鍵ROM24、プログラムROM25、RAM26、ホストバスインターフェース(I/F)27、暗号エンジン28、及び乱数発生器29などが内部バスにて接続可能に形成されている。これらの構成要素は、何れも半導体チップ上に構成されているものである。
CPU21は、中央処理装置であり、所定のプログラムを読み込んでこれを実行し、各種の情報処理やセキュリティチップ2全体の制御を行う。
また、CPU21は、ホストCPU11から各種のコマンドの入力を受け付け、コマンドで指定された動作を行う。
CPU21は、プログラム実行手段を構成している。
暗号エンジン28は、各種の暗号鍵を用いて情報の暗号化、及び復号化を行う暗号処理手段である。暗号方式は各種のものが可能であるが、本実施の形態では一例としてAES128(Advanced Standard 128bit Key Version)というアルゴリズムを用いる。
EEPROM22は、CPU21によって、情報の読み書きが可能なROM(Read Only Memory)である。EEPROM22は、不揮発性のメモリであって、電力の供給がなくても記憶内容を保持することができる。
EEPROM22には、後述するスクランブル回路23を動作させるためのスクランブル鍵Kscなどの鍵情報が書き込まれている。
セキュリティチップ2の製造時には、EEPROM22の値は、初期値(例えば、All F)に設定されており、後に出荷前初期化用ダウンロードファームウェアを実行することによりスクランブル鍵Kscが書き込まれる。そのため、セキュリティチップ2の設計者や製造者はスクランブル鍵Kscの値を知ることはできない。
EEPROM22は、後述するようにストレージ鍵Kst(セキュリティチップ2に固有な第2の暗号鍵情報である)を記憶する第2の暗号鍵記憶手段や、スクランブル鍵Kscを記憶するスクランブル鍵情報記憶手段などを構成している。
スクランブル回路23は、鍵情報を用いて対象となるデータをスクランブルしたりデスクランブルする回路であり、一種の暗号エンジンを構成している。
スクランブルとは、所定のアルゴリズムに従ってデータを並べ替えたり、数学的な処理を行うことなどを言い、デスクランブルとは、スクランブルされたデータに逆の処理を行って元のデータを復元することを言う。
スクランブルを行うアルゴリズムは電子回路的に実現されており、鍵情報により決まるスクランブル(変換)・デスクランブル(逆変換)を行う。
なお、本実施の形態では、スクランブル回路23は、スクランブルドダウンロードファームウェア暗号鍵Kfwをデスクランブルする機能だけ有してれば足りるので、必ずしもスクランブルする機能を備える必要はない。
なお、本実施の形態では、スクランブル鍵Kscをスクランブル回路23に入力するが、これに限定せず、スクランブル鍵Kscを用いて生成した情報をスクランブル回路23に入力するように構成することもできる。
暗号鍵ROM24は、スクランブルドダウンロードファームウェア暗号鍵Kfwを記憶した読み出し専用メモリである。
スクランブルドダウンロードファームウェア暗号鍵Kfwは、ダウンロードファームウェア暗号鍵Kfwをスクランブルしたものである。このようにスクランブルした情報の名称には、元の情報名の前に「スクランブルド」の語を付して表すことにする。
なお、ダウンロードファームウェア暗号鍵Kfwは、暗号エンジン28にて暗号化ダウンロードファームウェアを復号化し、利用する鍵情報である。
暗号鍵ROM24は、スクランブルされた暗号鍵情報(ダウンロードファームウェア暗号鍵Kfw)を記憶する暗号鍵記憶手段を構成している。
暗号鍵ROM24は、スクランブル回路23と回路的に接続されており、暗号鍵ROM24に記憶されているスクランブルドダウンロードファームウェア暗号鍵Kfwは、スクランブル回路23にてデスクランブルされてダウンロードファームウェア暗号鍵Kfwに復元される。そして、復元されたダウンロードファームウェア暗号鍵Kfwは暗号エンジン28に提供される。
このように、暗号鍵ROM24からダウンロードファームウェア暗号鍵Kfwを復元するには、EEPROM22に記憶されているスクランブル鍵Kscとスクランブル回路23の回路構成の両方を知る必要がある。セキュリティチップ2の回路設計者はスクランブル回路23の回路構成を知ることはできるが、スクランブル鍵Kscは、後ほどEEPROM22に書き込まれるため、これを知ることはできない。
プログラムROM25は、CPU21が実行する各種のプログラムを記憶した読み取り専用メモリである。
このようなプログラムとしては、例えばセキュリティチップ2を動作させるための基本的なプログラムであるOS(Operating System)や、セキュリティチップ2を立ち上げるブートプログラムなどがある。
詳細は後述するが、ブートプログラムは、EEPROM22のスクランブル鍵Kscをスクランブル回路23にセットして、スクランブル回路23に暗号鍵ROM24のスクランブルドダウンロードファームウェア暗号鍵Kfwを復元させ、これを暗号エンジン28にセットするなどの機能をCPU21に発揮させる起動プログラムである。
このようにプログラムROM25は起動プログラム記憶手段を構成している。
RAM26は、プログラムやデータを一時的に保存するための読み書き可能な揮発性のメモリである。本実施の形態では、暗号エンジン28が復号化したダウンロードファームウェアを展開すると共に、CPU21がダウンロードファームウェアを実行するためのワーキングエリアを提供する。
このように、暗号エンジン28で復号化した復号化情報(ダウンロードファームウェアなど)情報はRAM26に記憶され、そのためRAM26は復号化情報記憶手段を構成している。
乱数発生器29は、乱数を発生させることによりストレージ鍵Kstを生成する。ストレージ鍵Kstは、当該セキュリティチップ2に固有の鍵情報となる。
このように乱数発生器29はセキュリティチップ2に固有の第2の暗号鍵情報(ストレージ鍵Kst)を生成する第2の暗号鍵生成手段を構成している。
生成したストレージ鍵Kstは、CPU21によりEEPROM22に書き込まれ記憶される。
このようにして、セキュリティチップ2は固有の鍵情報を持つことができる。 ストレージ鍵Kstは、サービスデータ登録サーバ5からダウンロードしたサービスデータを暗号化するのに利用され、暗号化されたサービスデータはハードディスク12に保存される。
なお、本実施の形態では乱数発生器29により乱数を発生させるが、このほかに例えばCPU21に乱数を発生させることも可能である。
ホストバスインターフェース27は、CE機器1のホストバスに接続するためのインターフェースである。
CPU21は、ホストバスを介してホストCPU11と情報の送受信を行うことができ、これによってCPU21とホストCPU11は共同して動作することができる。
即ち、セキュリティチップ2は、ホストバスインターフェース27を介して外部の情報を受信したり、あるいは送信したりすることができる。
セキュリティチップ2は、ホストバスインターフェース27を介してホストCPU11と送受信を行うほか、後述のサービスデータ登録サーバ5からサービスデータを受信する場合のように、ホストバスインターフェース27とホストCPU11を介して外部のサーバ装置と送受信を行うこともできる。
セキュリティチップ2は、ホストバスインターフェース27を介して外部から暗号化された暗号化情報(ダウンロードファームウェアなど)を取得することができ、ホストバスインターフェース27は暗号化情報取得手段を構成している。
次に、以上のように構成されたセキュリティチップ2の動作について説明する。
(1)ブート処理
ブート処理は、セキュリティチップ2の使用時にこれを立ち上げる処理であり、ハードディスク12に記憶されたファームウェアを復号化して実行できる状態にする。
以下に、図5のフローチャートを用いてブート処理について説明する。
ここでは説明を簡潔化するためにフローチャート中でCPU21を省略しているが、セキュリティチップ2の動作は、プログラムROM25に記憶されたブートプログラムに従ってCPU21が行うものである。
まず、ホストCPU11がセキュリティチップ2をブートするためにCPU21にリセット信号を送信する(ステップ2)。
CPU21は、リセット信号を受信すると、プログラムROM25からブートプログラムを読み込み、これの実行を開始する。
ブートプログラムに従い、CPU21は、まず、EEPROM22からスクランブル鍵Kscを読み出してスクランブル回路23に入力してこれを提供する(ステップ4)。
スクランブル回路23は、CPU21からスクランブル鍵Kscの入力を受けてこれを利用可能にセットする(ステップ6)。
スクランブル鍵Kscのセットが完了すると、CPU21はホストCPU11にスクランブル回路23にスクランブル鍵Kscがセットされたことを通知する信号を送信する。
ホストCPU11は、ホストCPU11からスクランブル鍵Kscのセットが完了した旨の通知を受けると、CPU21に対してファームウェアダウンロードコマンドを送信する(ステップ8)。
CPU21は、ホストCPU11からファームウェアダウンロードコマンドを受信すると、スクランブル回路23を起動する。すると、スクランブル回路23は、暗号鍵ROM24からスクランブルドダウンロードファームウェア暗号鍵Kfwを読み込んで(ステップ10)、これをデスクランブルし、ダウンロードファームウェア暗号鍵Kfwを復元する(ステップ12)。
CPU21は、スクランブル回路23からダウンロードファームウェア暗号鍵Kfwを取得し、これを暗号エンジン28の鍵レジスタにセットする(ステップ14)。そして、CPU21はホストCPU11に暗号エンジン28にダウンロードファームウェア暗号鍵Kfwがセットされたことを通知する信号を送信する。
ホストCPU11はCPU21からこの信号を受信して暗号エンジン28にダウンロードファームウェア暗号鍵Kfwがセットされたことを認識し、ハードディスク12から暗号化ダウンロードファームウェアを取得してCPU21に送信する(ステップ16)。
CPU21は、ホストCPU11から暗号化ダウンロードファームウェアを取得してこれを暗号エンジン28に入力する。
暗号エンジン28は、ダウンロードファームウェア暗号鍵Kfwを用いて暗号化ダウンロードファームウェアからダウンロードファームウェアを復号化する(ステップ18)。
CPU21は、暗号エンジン28から復号化されたダウンロードファームウェアを取得してRAM26に記憶させる(ステップ20)。
CPU21は、ダウンロードファームウェアのRAM26への展開を終了するとその旨をホストCPU11に通知する。
ホストCPU11はこれを受け、CPU21にダウンロードファームウェア実行コマンドを送信する(ステップ22)。
CPU21は、ホストCPU11からダウンロードファームウェア実行コマンドを受信してRAM26に展開したダウンロードファームウェアの実行を開始する。
以上のようにして、ホストCPU11は、暗号化ダウンロードファームウェアをセキュリティチップ2に入力して実行させることができる。
ダウンロードファームウェアは暗号化された状態でセキュリティチップ2に入力され、そしてセキュリティチップ2内で処理される。
そのため、ダウンロードファームウェアがどのような機能を発揮させるプログラムであるのか、また、セキュリティチップ2でどのような処理をしているのかを外部から知ることはできない。
このようにセキュリティに関する処理をセキュリティチップ2内で行うように構成する(即ち、セキュリティ関係の処理をセキュリティチップ2に封じ込める)ことにより、セキュリティに関する処理をブラックボックス化することができ、サービス提供システム100のセキュリティレベルを高めることができる。
また、ダウンロードファームウェアは、ダウンロードファームウェア暗号鍵Kfwで暗号化するだけでなく、ダウンロードファームウェアに署名をつけて対応する公開鍵をEEPROM22、又はプログラムROM25に書き込んでおき、ダウンロードファームウェアをハードディスク12からダウンロードした際に署名検証も行うように構成するとよりセキュリティレベルを高めることができる。
以上に説明した手順にてホストCPU11は、セキュリティチップ2にブート処理を行わせ、ダウンロードファームウェアを実行させることができる。そして、CE機器1は、このようなダウンロードファームウェアとして出荷前初期化用ダウンロードファームウェアとサービスデータ登録用ダウンロードファームウェアを有している。
以下に、これらのダウンロードファームウェアがセキュリティチップ2で実行される態様について説明する。
出荷前初期化用ダウンロードファームウェアは、EEPROM22にスクランブル鍵Kscを書き込むと共に、CE機器1に固有の暗号鍵であるストレージ鍵Kstを生成するプログラムである。
出荷前初期化用ダウンロードファームウェアはCE機器1の出荷前に実行されるが、CE機器1の出荷後にユーザが実行させることも可能である。
図6のフローチャートを用いてセキュリティチップ2で出荷前初期化用ダウンロードファームウェアを実行する場合の動作を説明する。
なお、セキュリティチップ2の製造完了時には、EEPROM22には、スクランブル鍵の初期値であるKsc0が記憶されており、暗号鍵ROM24には、スクランブル鍵Ksc0を用いてデスクランブルされるスクランブルドダウンロードファームウェア鍵Kfw0が記憶されている。
そして、ハードディスク12に記憶されている暗号化出荷前初期化用ダウンロードファームウェアは、ダウンロードファームウェア鍵Kfw0にて復号化されるように構成されている。
まず、ホストCPU11がセキュリティチップ2をブートするためにCPU21にリセット信号を送信する(ステップ30)。
CPU21は、リセット信号を受信してプログラムROM25からブートプログラムを読み込み、これの実行を開始する。
まず、CPU21は、EEPROM22からスクランブル鍵Ksc0を読み出してスクランブル回路23に提供する(ステップ32)。
スクランブル回路23は、CPU21からスクランブル鍵Ksc0を取得してこれをセットする(ステップ34)。
スクランブル鍵Kscのセットが完了すると、CPU21はホストCPU11にスクランブル回路23にスクランブル鍵Ksc0がセットされたことを通知する信号を送信する。
ホストCPU11は、CPU21からスクランブル鍵Ksc0のセットが完了した旨の通知を受けると、CPU21に対して出荷前初期化用ファームウェアダウンロードコマンドを送信する(ステップ36)。
CPU21は、ホストCPU11から出荷前初期化用ファームウェアダウンロードコマンドを受信すると、スクランブル回路23を起動する。すると、スクランブル回路23は、暗号鍵ROM24からスクランブルドダウンロードファームウェア暗号鍵Kfw0を読み込んで(ステップ38)、ダウンロードファームウェア暗号鍵Kfw0を復元する(ステップ40)。
CPU21は、スクランブル回路23からダウンロードファームウェア暗号鍵Kfw0を取得し、これを暗号エンジン28の鍵レジスタにセットする(ステップ42)。そして、CPU21はホストCPU11に暗号エンジン28にダウンロードファームウェア暗号鍵Kfwがセットされたことを通知する信号を送信する。
ホストCPU11はCPU21からこの信号を受信して暗号エンジン28にダウンロードファームウェア暗号鍵Kfw0がセットされたことを認識し、ハードディスク12から暗号化出荷前初期化用ダウンロードファームウェアを取得してCPU21に送信する(ステップ44)。
CPU21は、ホストCPU11から暗号化出荷前初期化用ダウンロードファームウェアを取得するとこれを暗号エンジン28に入力する。
暗号エンジン28は、ダウンロードファームウェア暗号鍵Kfw0を用いて暗号化出荷前初期化用ダウンロードファームウェアから出荷前初期化用ダウンロードファームウェアを復号化する(ステップ46)。
CPU21は、暗号エンジン28から復号化された出荷前初期化用ダウンロードファームウェアを取得してRAM26に記憶させる(ステップ48)。
CPU21は、ダウンロードファームウェアのRAM26への展開を終了するとその旨をホストCPU11に通知する。
ホストCPU11はこれを受け、CPU21に出荷前初期化用ダウンロードファームウェア実行コマンドを送信する(ステップ50)。
CPU21は、ホストCPU11からこれを受信してRAM26に展開した出荷前初期化用ダウンロードファームウェアの実行を開始する。
以下の処理は、CPU21が出荷前初期化用ダウンロードファームウェアに従って行うものである。
出荷前初期化用ダウンロードファームウェアは、スクランブル鍵Kscを暗号化して有しており、まず、CPU21はこれからスクランブル鍵Kscを復号化する(ステップ52)。
この復号化は、例えば、暗号鍵をプログラムROM25などに予め記憶させておき、これを用いて暗号エンジン28で行うことができる。
CPU21は、復号化したスクランブル鍵KscをEEPROM22に記憶させる(ステップ54)。
ここで、出荷前初期化用ダウンロードファームウェアは、半導体チッププログラムを構成している。
出荷前初期化用ダウンロードファームウェアにより生成されるスクランブル鍵Kscは、スクランブル鍵Ksc0に対して第2のスクランブル鍵情報にあたり、ホストCPU11はこれを生成してEEPROM22に記憶している。
更に、ホストCPU11は、出荷前初期化用ダウンロードファームウェアを実行することにより第2の暗号鍵情報(ストレージ鍵Kst)を生成し、EEPROM22に記憶している。
なお、出荷前初期化用ダウンロードファームウェアは、ダウンロードファームウェア暗号鍵Kfw0で暗号化されているので、スクランブル鍵Kscなどの秘密情報をファームウェア中にそのまま持たせてもよいが、本実施の形態では、セキュリティレベルを高めるため、これら秘密情報を暗号化してダウンロードファームウェアに持たせることにした。
このように、ダウンロードファームウェアに秘密情報を持たせる場合に、これらを暗号化して持たせることにより、万が一ダウンロードファームウェアから秘密情報が漏洩した場合でも秘密を守ることができる。
なお、ダウンロードファームウェアに持たせておいた秘密情報は、例えば、プログラムROM25やEEPROM22に書き込んでおいた公開鍵、又はそれで検証可能な公開鍵で暗号化して持たせたり、あるいは、暗号鍵ROM24にスクランブル鍵を用意し、その鍵でデスクランブル可能な形で(例えばスクランブル鍵とのEXOR(排他的論理和)により得られる値を秘密情報とする)持たせることができる。
次に、CPU21は、乱数発生器29で所定の桁数の乱数を発生させ、これによってストレージ鍵Kstを生成する(ステップ56)。ここでは、発生した乱数をそのままストレージ鍵Kstとして利用するが、発生した乱数を利用してストレージ鍵Kstを生成するように構成してもよい。
CPU21は、生成したストレージ鍵KstをEEPROM22に記憶させる(ステップ58)。
以上によりセキュリティチップ2の初期化が完了する。
このように、セキュリティチップ2の初期化処理により、セキュリティチップ2にスクランブル鍵Kscとストレージ鍵Kstを持たせることができる。
しかもストレージ鍵Kstはセキュリティチップ2で発生してセキュリティチップ2の内部で保持するものであり、セキュリティチップ2だけが知っている固有の情報である。このため、CE機器1の出荷時に各CE機器1に固有の暗号鍵を用意する必要がなく、CE機器1の製造コストが低減される。
ストレージ鍵Kstは、秘匿性が極めて高い情報であるため、サービスデータを暗号化するのに好適である。
図7のフローチャートを用いてセキュリティチップ2でサービスデータ登録用ダウンロードファームウェアを実行する場合の動作を説明する。
この処理は、ユーザがCE機器1の購入後に行うものであり、これによりCE機器1はサービスデータ登録サーバ5からサービスデータを取得し、これをストレージ鍵Kstで暗号化して記憶することができる。
まず、ホストCPU11は、ハードディスク12から暗号化サービスデータ登録用ダウンロードファームウェアを読み出してセキュリティチップ2に入力する(ステップ60)。
セキュリティチップ2は、これからサービスデータ登録用ダウンロードファームウェアを復号化して実行可能な状態にする。
次に、ホストCPU11は、セキュリティチップ2にサービスデータ登録処理コマンドを入力する(ステップ62)。
すると、セキュリティチップ2は、サービスデータ登録用ダウンロードファームウェアを実行し、乱数N1を生成してホストCPU11に出力する(ステップ64)。この第2の乱数は乱数発生器29により発生させられる。また、乱数発生プログラムを用いてCPU21により発生させることも可能である。
ホストCPU11は、セキュリティチップ2から乱数N1を取得し、これをホストバスインターフェース27を介してサービスデータ登録サーバ5に送信してサービスデータの送信を要求する(ステップ66)。
即ち、セキュリティチップ2は、ホストCPU11を介してサービスデータ登録サーバ5と通信し、サービスデータ登録サーバ5に乱数N1を送信してサービスデータの送信を要求している。
サービスデータ登録サーバ5は、CE機器1から乱数N1を受信すると、サービスデータ暗号鍵Ksdで暗号化した暗号化サービスデータと乱数N1に署名をつけてCE機器1に送信する(ステップ68)。
なお、サービスデータ鍵Ksdは、サービスデータ登録用ダウンロードファームウェアが暗号化して持っており、先のダウンロードファームウェア暗号鍵Kfwと同様にセキュリティチップ2で復号化され、暗号化サービスデータを復号化するのに用いられる。
CE機器1では、サービスデータ登録サーバ5から送信されてきた暗号化サービスデータと乱数N1をCPU21が受信し、セキュリティチップ2に入力する(ステップ70)。
セキュリティチップ2は、これらの情報を受け取り、署名(例えば、後述のように公開鍵を用いる)及び乱数N1を確認した後、暗号化サービスデータをサービスデータ暗号鍵Ksdを用いて復号化し、更にストレージ鍵Kstで再暗号化する(ステップ72)。即ち、サービスデータをセキュリティチップ2に固有な暗号鍵で再暗号化する。ステップ72の処理については後に詳細に説明する。
セキュリティチップ2は、再暗号化サービスデータをホストCPU11に出力し、ホストCPU11は、これをハードディスク12に記憶する(ステップ74)。
以上の処理により、CE機器1はサービスデータをセキュリティチップ2に固有の暗号鍵で暗号化してハードディスク12に記憶することができる。
次に、図7のステップ72のサービスデータ復号・再暗号化処理について図8のフローチャートを用いて説明する。
以下の処理は、セキュリティチップ2のCPU21がサービスデータ登録用ダウンロードファームウェアに従って行うものである。
まず、CPU21は、サービスデータ登録サーバ5が送信してきたデータをホストCPU11から受け取る。
ここでサービスデータ登録サーバ5が送信してくるデータは、次の式(1)で示したように構成されている。
Sig(PrivKeySP,N1||Enc(Ksd,ServiceData))…式(1)
記号の表す意味は次の通りである。
まず、暗号鍵AでデータBを暗号化した暗号化データBをEnc(A,B)と表す。即ち、式(1)中のEnc(Ksd,ServiceData)は、サービスデータ鍵Ksdでサービスデータ(ServiceDataはサービスデータを表す)を暗号化したものである。
また、2つのデータC、Dを秘密鍵Eで署名したデータをSig(E,C||D)と表す。即ち、式(1)は、乱数N1とEnc(Ksd,ServiceData)を秘密鍵PrivKeySPで暗号化したものである。セキュリティチップ2は、この秘密鍵に対応する公開鍵を例えばEEPROM22などに持っており、これを用いてサービスデータ登録サーバ5から送信されてきたデータを復号化する。復号化が成功したことにより、このデータの送信元が当該公開鍵に対応する秘密鍵を有していること、即ちサービスデータ登録サーバ5であることを確認することができる。
CPU21は、このデータを秘密鍵PrivKeySPに対応する公開鍵で復号化し、これによって署名を確認する(ステップ82)。
次に、復号化したデータに含まれる乱数N1と先に生成した乱数N1の同一性を確認する(ステップ84)。同一でない場合はアラームを発っして処理を中止する。同一性が確認できた場合は処理を続行する。
次に、CPU21は、サービスデータ暗号鍵Ksdを用いてサービスデータを復号化する(ステップ86)。
そして、CPU21は、復号化したサービスデータをストレージ鍵Kstを用いて再度暗号化し(ステップ88)、ホストCPU11に出力する。ホストCPU11は、これをハードディスク12に記憶させる。
ここで、サービスデータ登録ダウンロードファームウェアは、半導体チッププログラムを構成しており、サービスデータ登録サーバ5にサービスデータ(秘密情報)の送信を要求して取得し、これを復号化した後再度暗号化してハードディスク12に記憶している。また、乱数を生成してサービスデータ登録サーバ5に送信し、サービスデータ登録サーバ5が返信してきた乱数の同一性を確認したり、サービスデータ登録サーバ5が行った電子署名を確認したりしている。
以上のようにして、セキュリティチップ2は、出荷前初期化用ダウンロードファームウェアを用いてダウンロードファームウェア暗号鍵とストレージ鍵を取得し、サービスデータ登録用ダウンロードファームウェアによりサービスデータをストレージ鍵で暗号化してハードディスク12に記憶することができた。
次に、このようにして記憶したサービスデータの利用方法について説明する。
ここでは、一例としてサービスデータをコンテンツ暗号鍵Kcとし、サービス提供サーバ7からコンテンツ暗号鍵Kcで暗号化された暗号化コンテンツを受信する場合を例にとる。
まず、CE機器1は、サービス提供サーバ7に機器認証情報を送信すると共に暗号化コンテンツ(電子情報)の送信を要求する。
サービス提供サーバ7は、機器認証情報を用いてCE機器1を機器認証した後、要求された暗号化コンテンツをCE機器1に送信する。CE機器1は、この暗号化コンテンツを受信する。
CE機器1では、ホストCPU11が暗号化サービスデータをハードディスク12から読み取ってセキュリティチップ2に入力すると共に、サービス提供サーバ7から受信した暗号化コンテンツをセキュリティチップ2に入力する。
セキュリティチップ2では、ストレージ鍵Kstを用いてサービスデータ(コンテンツ暗号鍵Kc)を復号化して復元する。そして、ホストCPU11からコンテンツを取得する。更に、復号化したサービスデータを用いて暗号化コンテンツを復号化し、ホストCPU11に出力する。これにより、ホストCPU11は、復号化したコンテンツを利用することができる。このように、CE機器1は、コンテンツを利用手段を備えており、この場合、ホストCPU11は、暗号化したコンテンツを復号化のためにセキュリティチップ2に入力する入力手段を構成している。
以上の処理は、所定のプログラム(半導体チッププログラム)に従ってCPU21が行うものである。
次に、スクランブル回路23について補足説明を行う。
先に説明したように、スクランブル回路23は、一種の暗号回路であり、スクランブル鍵で決まる変換を行う。暗号アルゴリズム(下記例では秘密パラメータやAESの鍵、入力値、出力値)を秘密にすることにより、攻撃者は仮にスクランブル鍵や暗号鍵ROM24に記憶されているデータの値がわかっても読み出される値を知ることはできない。
ここでは、スクランブル回路の一例として、AESを用いて、秘密パラメータ鍵とスクランブル鍵のEXORを鍵として、暗号鍵ROM24のアドレスとデータを32ビットずつ並べた値を復号し、対応するビットの値を読み出されたデータとする場合を図9を参照しながら説明する。
前提としてスクランブル鍵を(0x1111 0000 3333 0000 5555 0000 7777 0000)とし、秘密パラメータ鍵(スクランブルドダウンロードファームウェア暗号鍵に対応)を(0x0000 2222 0000 4444 0000 6666 0000 8888)とする。
まず、スクランブル回路23は、スクランブル鍵と秘密パラメータ鍵の排他的論理和(EXOR)をとり、鍵(0x1111 2222 3333 4444 5555 6666 7777 8888)を生成する。
ここで、暗号鍵ROM24のアドレス(0xaabbcc00)、(0xaabbcc04)を対象とし、これらのアドレスに記憶されているデータを(アドレス データ)として、(0xaabbcc00 0x0123 4567)、(0xaabbcc04 0x89ab cdef)とするときに、これらから(0xaabb cc00 0123 4567 aabb cc04 89ab cdef)を生成する。
そして、これを先に生成した鍵にてAES復号し、その値が(0x2c9c 7ff2 441b 0c02 f7d5 9086 a55c ea7d)であったとする。
この場合、スクランブル回路23を介してROM24のアドレス(0xaabb cc00)を読み出した値は、(0x441b 0c02)となる。この値がダウンロードファームウェア暗号鍵となる。
以上に説明した本実施の形態により次のような効果を得ることができる。
(1)スクランブル回路23を用いて暗号鍵ROM24内のデータを秘匿するため、スクランブル鍵をセキュリティチップ2製造後にチップ内の不揮発性メモリに書き込むことができ、これにより、セキュリティチップ2の設計者、製造者からも暗号鍵ROM24内のデータを秘匿することができる。
即ち、セキュリティチップ2の設計者、製造者には、暗号鍵ROM24内のデータを教えずに設計、製造を依頼することができる。
(2)セキュリティチップ2に固有な情報であるストレージ鍵KstをCE機器1で発生させることができるため、出荷時にCE機器1に固有な情報を持たせる必要がなく、CE機器1の製造コストを低減することができる。
(3)CE機器1は、サービスデータをサービスデータ登録サーバ5から取得し、これをストレージ鍵Kstで暗号化してこれを保持することができる。
(4)暗号化・復号化に関する処理をセキュリティチップ2の内部で行うことができるため、外部からの解析が困難であり、セキュリティレベルを高めることができる。
(5)セキュリティチップ2内の秘密情報を知るには、スクランブル回路23の回路情報、暗号鍵ROM24に書き込まれたデータ、スクランブル鍵の全ての情報が必要であるが、これらの情報は、関係者がお互いに供託しない限り入手することはできず、秘密情報を知ることは、非常に困難である。
(6)スクランブル鍵Kscは、暗号化されたファームによって書き込まれるので、限られた関係者以外はスクランブル鍵Kscを知ることは困難である。
(7)セキュリティチップ2にスクランブル回路23を組み込むことによりROMデータ(暗号鍵ROM24内のデータ)を秘匿することができる。
これにより、スクランブル鍵をセキュリティチップ2の製造後にチップ内の不揮発性メモリ(EEPROM22)に書き込むことができ、セキュリティチップ2の設計者、製造者からもROMデータを秘匿することができる。
本実施の形態の概要を説明するための図である。 本実施の形態のネットワーク構成を説明するための図である。 CE機器の機能的な構成を模式的に表したブロック図である。 セキュリティチップの内部構成を模式的に表したブロック図である。 セキュリティチップのブート処理を説明するためのフローチャートである。 出荷前初期化用ダウンロードファームウェアを実行した場合のセキュリティチップの動作を説明するためのフローチャートである。 サービスデータ登録用ダウンロードファームウェアを実行した場合のセキュリティチップの動作を説明するためのフローチャートである。 サービスデータ復号・再暗号化処理を説明するためのフローチャートである。 スクランブル回路の一例を説明するための図である。
符号の説明
1 CE機器 2 セキュリティチップ
5 サービスデータ登録サーバ 7 サービス提供サーバ
11 ホストCPU 12 ハードディスク
13 ネットワークインターフェース 21 CPU
22 EEPROM 23 スクランブル回路
24 暗号鍵ROM 25 プログラムROM
26 RAM 27 ホストバスインターフェース
28 暗号エンジン 29 乱数発生器

Claims (17)

  1. スクランブルされた情報のデスクランブルに使用されるスクランブル鍵情報が記憶されるスクランブル鍵情報記憶手段と、
    スクランブルされた暗号鍵情報を記憶する暗号鍵記憶手段と、
    前記スクランブル鍵情報を用いてスクランブルされた前記暗号鍵情報をデスクランブルするスクランブル回路と、
    外部から暗号化された暗号化情報を取得する暗号化情報取得手段と、
    デスクランブルされた前記暗号鍵情報を用いて前記取得した暗号化情報を復号化する暗号処理手段と、
    を具備したことを特徴とする半導体チップ。
  2. コンピュータプログラムを実行するプログラム実行手段と、
    前記暗号処理手段で復号化した復号化情報を記憶する復号化情報記憶手段と、
    を具備し、
    前記プログラム実行手段は、前記復号化情報がコンピュータプログラムである場合に、前記復号化情報記憶手段に記憶したコンピュータプログラムを実行することを特徴とする請求項1に記載の半導体チップ。
  3. 当該半導体チップに固有の第2の暗号鍵情報を生成する第2の暗号鍵情報生成手段と、
    前記生成した第2の暗号鍵情報を記憶する第2の暗号鍵記憶手段と、
    を具備し、
    前記暗号処理手段は、前記記憶した第2の暗号鍵情報を用いて暗号処理を行うことを特徴とする請求項1に記載の半導体チップ。
  4. 前記スクランブル鍵情報を前記スクランブル回路に入力するスクランブル鍵情報入力機能と、
    スクランブルされた前記暗号鍵情報を前記スクランブル回路に入力する暗号鍵入力機能と、
    前記入力されたスクランブル鍵情報とスクランブルされた暗号鍵情報により前記スクランブル回路でデスクランブルされた前記暗号鍵情報を前記暗号処理手段に入力する暗号鍵入力機能と、
    を前記プログラム実行手段で実現する起動プログラムを記憶した起動プログラム記憶手段を具備したことを特徴とする請求項2に記載の半導体チップ。
  5. 請求項2に記載の半導体チップにおいて、
    前記スクランブル鍵情報を前記スクランブル回路に入力するスクランブル鍵情報入力機能と、
    スクランブルされた前記暗号鍵情報を前記スクランブル回路に入力する暗号鍵入力機能と、
    前記入力されたスクランブル鍵情報とスクランブルされた暗号鍵情報により前記スクランブル回路でデスクランブルされた前記暗号鍵情報を前記暗号処理手段に入力する暗号鍵入力機能と、
    を前記プログラム実行手段で実現する起動プログラム。
  6. 請求項2に記載の半導体チップにおいて、前記暗号処理手段で復号化され、前記プログラム実行手段で実行されるコンピュータプログラムであって、
    第2のスクランブル鍵情報を取得する第2のスクランブル鍵情報取得機能と、
    前記取得した第2のスクランブル鍵情報を前記スクランブル鍵情報記憶手段に記憶させる第2のスクランブル鍵情報記憶機能と、
    を前記プログラム実行手段で実現する半導体チッププログラム。
  7. 請求項2に記載の半導体チップにおいて、前記暗号処理手段で復号化され、前記プログラム実行手段で実行されるコンピュータプログラムであって、
    当該半導体チップに固有の第2の暗号鍵情報を取得する第2の暗号鍵情報取得機能と、
    前記取得した第2の暗号鍵情報を記憶させる第2の暗号鍵情報記憶機能と、
    を前記プログラム実行手段で実現する半導体チッププログラム。
  8. 請求項3に記載の半導体チップにおいて、前記暗号処理手段で復号化され、前記プログラム実行手段で実行されるコンピュータプログラムであって、
    要求に応じて所定のサーバから送信されるサービス秘密情報を受信して復号化する復号化機能と、
    前記復号化したサービス秘密情報を、前記第2の暗号鍵記憶手段で記憶した第2の暗号鍵情報を用いて前記暗号処理手段に暗号化させるサービス秘密情報暗号化機能と、
    暗号化した前記サービス秘密情報をサービス秘密情報記憶手段に記憶させる記憶機能と、
    を前記プログラム実行手段で実現する半導体チッププログラム。
  9. 前記記憶機能で記憶されたサービス秘密情報を取得し、これを前記第2の暗号鍵情報を用いて前記暗号処理手段に復号化させるサービス秘密情報復号化機能と、
    前記暗号化情報取得手段にサービス電子情報を取得させ、前記取得したサービス電子情報を前記復号化したサービス秘密情報を用いて前記暗号処理手段に復号化させるサービス電子情報復号化機能と、
    を前記プログラム実行手段で実現する請求項8に記載の半導体チッププログラム。
  10. 乱数を取得する乱数取得機能と、
    前記取得した乱数を、前記サービス秘密情報の要求と共に前記所定のサーバに送信する乱数送信機能と、
    前記所定のサーバから、前記要求したサービス秘密情報と共に乱数を受信する乱数受信機能と、
    を前記プログラム実行手段で実現させ、
    前記記憶機能は、前記生成した乱数と前記受信した乱数が同一である場合に、前記サービス秘密情報の記憶を行うことを特徴とす請求項8に記載の半導体チッププログラム。
  11. 前記所定のサーバから送信されてくるサービス秘密情報は電子署名されており、
    前記電子署名を確認する電子署名確認機能を前記プログラム実行手段で実現させ、
    前記記憶機能は、前記電子署名が確認できた場合に前記サービス秘密情報の記憶を行わせることを特徴とする請求項8に記載の半導体チッププログラム。
  12. 請求項6、請求項7、請求項8、請求項9、請求項10、請求項11に記載の半導体チッププログラムを記憶したコンピュータが読み取り可能な記憶媒体。
  13. 請求項1に記載の半導体チップを搭載した端末装置であって、
    前記暗号化情報が記憶された暗号化情報記憶手段と、
    前記記憶した暗号化情報を復号化するために前記半導体チップに入力する暗号化情報入力手段と、
    を具備したことを特徴とする端末装置。
  14. 請求項3に記載の半導体チップを搭載した端末装置であって、
    サービスサーバから送信されるサービス電子情報を利用するサービス利用手段と、
    前記第2の暗号鍵情報を用いて暗号化され、前記サービス電子情報を復号化するのに使用するサービス秘密情報を記憶したサービス秘密情報記憶手段と、
    前記サービスサーバからサービス電子情報を受信するサービス電子情報受信手段と、
    前記記憶したサービス秘密情報とを前記半導体チップに入力し、前記受信したサービス電子情報を前記半導体チップで復号化するサービス電子情報復号化処理手段と、
    前記復号化したサービス電子情報を利用する利用手段と、
    を具備したことを特徴とする端末装置。
  15. スクランブルされた情報のデスクランブルに使用されるスクランブル鍵情報が記憶されるスクランブル鍵情報記憶手段と、スクランブルされた暗号鍵情報を記憶する暗号鍵記憶手段と、スクランブル回路と、暗号化情報取得手段と、暗号処理手段と、を備えた半導体チップにおいて、
    前記スクランブル回路で、前記スクランブル鍵情報を用いてスクランブルされた前記暗号鍵情報をデスクランブルするスクランブルステップと、
    前記暗号情報取得手段で、外部から暗号化された暗号化情報を取得する暗号化情報取得ステップと、
    前記暗号処理手段で、前記デスクランブルされた暗号鍵情報を用いて前記取得した暗号化情報を復号化する暗号処理ステップと、
    から構成されたことを特徴とする情報処理方法。
  16. 前記半導体チップは、プログラム実行手段と、復号化情報記憶手段と、を備え、
    前記復号化情報記憶手段で、前記暗号処理手段で復号化した復号化情報を記憶する復号化情報記憶ステップと、
    前記記憶した復号化情報がコンピュータプログラムである場合に、前記プログラム実行手段で当該コンピュータプログラムを実行するプログラム実行ステップと、
    を備えたことを特徴とする請求項15に記載の情報処理方法。
  17. 前記半導体チップは、第2の暗号鍵情報取得手段と、第2の暗号鍵記憶手段を備え、
    前記第2の暗号鍵情報取得手段で、当該半導体チップに固有の第2の暗号鍵情報を取得する第2の暗号鍵情報取得ステップと、
    前記第2の暗号鍵記憶手段で、前記生成した第2の暗号鍵情報を記憶する第2の暗号鍵情報記憶ステップと、
    を備え、
    前記暗号処理ステップは、前記記憶した第2の暗号鍵情報を用いて暗号処理を行うことを特徴とする請求項15に記載の情報処理方法。

JP2004112408A 2004-04-06 2004-04-06 半導体チップ、起動プログラム、半導体チッププログラム、記憶媒体、端末装置、及び情報処理方法 Pending JP2005303370A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004112408A JP2005303370A (ja) 2004-04-06 2004-04-06 半導体チップ、起動プログラム、半導体チッププログラム、記憶媒体、端末装置、及び情報処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004112408A JP2005303370A (ja) 2004-04-06 2004-04-06 半導体チップ、起動プログラム、半導体チッププログラム、記憶媒体、端末装置、及び情報処理方法

Publications (1)

Publication Number Publication Date
JP2005303370A true JP2005303370A (ja) 2005-10-27

Family

ID=35334423

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004112408A Pending JP2005303370A (ja) 2004-04-06 2004-04-06 半導体チップ、起動プログラム、半導体チッププログラム、記憶媒体、端末装置、及び情報処理方法

Country Status (1)

Country Link
JP (1) JP2005303370A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008113104A (ja) * 2006-10-30 2008-05-15 Hitachi Ltd コンテンツ復号鍵抽出方法およびコンテンツ受信装置
JP2010114682A (ja) * 2008-11-06 2010-05-20 Japan Science & Technology Agency ストレージノード用再暗号化システム及び方法
WO2010116618A1 (ja) * 2009-04-06 2010-10-14 パナソニック株式会社 鍵実装システム
US9166781B2 (en) 2012-09-28 2015-10-20 Kabushiki Kaisha Toshiba Key change management apparatus and key change management method
JP2019022073A (ja) * 2017-07-18 2019-02-07 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
JP2019057784A (ja) * 2017-09-20 2019-04-11 株式会社東芝 電子装置、及び情報通信システム
JP2019121955A (ja) * 2018-01-09 2019-07-22 ラピスセミコンダクタ株式会社 半導体装置及び暗号鍵の生成方法
JP2021163458A (ja) * 2020-03-30 2021-10-11 尚承科技股▲フン▼有限公司Eco−Luxury Technology Co., Ltd. ソフトウェア・ファームウェア又はデータの保護システム及び保護方法
CN115080473A (zh) * 2022-06-29 2022-09-20 海光信息技术股份有限公司 一种多芯片互连系统及基于其的安全启动方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11282667A (ja) * 1998-03-31 1999-10-15 Nakamichi Corp 多重鍵方式の暗号処理機能を有するマイクロプロセッサ
JP2000036808A (ja) * 1998-07-17 2000-02-02 Nec Corp 送受信データ暗号化/復号化システム
JP2004007260A (ja) * 2002-05-31 2004-01-08 Fujitsu Ltd 暗号装置、電子機器及び暗号方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11282667A (ja) * 1998-03-31 1999-10-15 Nakamichi Corp 多重鍵方式の暗号処理機能を有するマイクロプロセッサ
JP2000036808A (ja) * 1998-07-17 2000-02-02 Nec Corp 送受信データ暗号化/復号化システム
JP2004007260A (ja) * 2002-05-31 2004-01-08 Fujitsu Ltd 暗号装置、電子機器及び暗号方法

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008113104A (ja) * 2006-10-30 2008-05-15 Hitachi Ltd コンテンツ復号鍵抽出方法およびコンテンツ受信装置
JP2010114682A (ja) * 2008-11-06 2010-05-20 Japan Science & Technology Agency ストレージノード用再暗号化システム及び方法
WO2010116618A1 (ja) * 2009-04-06 2010-10-14 パナソニック株式会社 鍵実装システム
JP5335072B2 (ja) * 2009-04-06 2013-11-06 パナソニック株式会社 鍵実装システム
JP2013255261A (ja) * 2009-04-06 2013-12-19 Panasonic Corp 鍵実装システム
US8787582B2 (en) 2009-04-06 2014-07-22 Panasonic Corporation Key implementation system
US9172535B2 (en) 2009-04-06 2015-10-27 Panasonic Intellectual Property Management Co., Ltd. Key implementation system
US9166781B2 (en) 2012-09-28 2015-10-20 Kabushiki Kaisha Toshiba Key change management apparatus and key change management method
JP2019022073A (ja) * 2017-07-18 2019-02-07 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
JP2019057784A (ja) * 2017-09-20 2019-04-11 株式会社東芝 電子装置、及び情報通信システム
JP2019121955A (ja) * 2018-01-09 2019-07-22 ラピスセミコンダクタ株式会社 半導体装置及び暗号鍵の生成方法
JP7057675B2 (ja) 2018-01-09 2022-04-20 ラピスセミコンダクタ株式会社 半導体装置及び暗号鍵の生成方法
JP2021163458A (ja) * 2020-03-30 2021-10-11 尚承科技股▲フン▼有限公司Eco−Luxury Technology Co., Ltd. ソフトウェア・ファームウェア又はデータの保護システム及び保護方法
JP7141190B2 (ja) 2020-03-30 2022-09-22 尚承科技股▲フン▼有限公司 ソフトウェア・ファームウェア又はデータの保護システム及び保護方法
CN115080473A (zh) * 2022-06-29 2022-09-20 海光信息技术股份有限公司 一种多芯片互连系统及基于其的安全启动方法
CN115080473B (zh) * 2022-06-29 2023-11-21 海光信息技术股份有限公司 一种多芯片互连系统及基于其的安全启动方法

Similar Documents

Publication Publication Date Title
US7313828B2 (en) Method and apparatus for protecting software against unauthorized use
US8462955B2 (en) Key protectors based on online keys
CN103440436B (zh) 访问来自智能存储器的内容的数字版权管理系统和方法
JP4668619B2 (ja) 装置鍵
US9183357B2 (en) Recording/reproducing system, recording medium device, and recording/reproducing device
JP5200204B2 (ja) 高信頼性システムを含む連合型デジタル権限管理機構
US7877604B2 (en) Proof of execution using random function
US11929995B2 (en) Method and apparatus for protecting confidential data in an open software stack
US20080025503A1 (en) Security method using self-generated encryption key, and security apparatus using the same
KR20130053521A (ko) 컨텐츠를 보호하기 위한 방법 및 저장 매체
CN111401901B (zh) 生物支付设备的认证方法、装置、计算机设备和存储介质
JP6146476B2 (ja) 情報処理装置及び情報処理方法
JP6930053B2 (ja) 装置認証キーを利用したデータ暗号化方法およびシステム
JP2002319934A (ja) 著作権保護システム及びその方法
JP2021525030A (ja) ユーザ保護ライセンス
JP6796861B2 (ja) アプリケーションソフトウェアの提供及び認証方法並びにそのためのシステム
JP2000347566A (ja) コンテンツ管理装置、コンテンツ利用者端末及びプログラムを記録したコンピュータ読み取り可能な記録媒体
JP6199712B2 (ja) 通信端末装置、通信端末関連付け方法、及びコンピュータプログラム
EP4016921A1 (en) Certificate management method and apparatus
JP2005303370A (ja) 半導体チップ、起動プログラム、半導体チッププログラム、記憶媒体、端末装置、及び情報処理方法
KR20070059891A (ko) 어플리케이션 인증 보안 시스템 및 그 인증 보안 방법
JP6357091B2 (ja) 情報処理装置、及びコンピュータプログラム
JP2007515723A (ja) アクティブなエンティティを使用するソフトウェア実行保護
KR20080095499A (ko) 버스 키 공유 방법 및 그 장치
JP2020197832A (ja) データ処理方法、データ処理システム及びデータ処理管理媒体

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050803

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100608

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20101014