JP4580024B2 - Content playback method - Google Patents
Content playback method Download PDFInfo
- Publication number
- JP4580024B2 JP4580024B2 JP2009112470A JP2009112470A JP4580024B2 JP 4580024 B2 JP4580024 B2 JP 4580024B2 JP 2009112470 A JP2009112470 A JP 2009112470A JP 2009112470 A JP2009112470 A JP 2009112470A JP 4580024 B2 JP4580024 B2 JP 4580024B2
- Authority
- JP
- Japan
- Prior art keywords
- key
- lsi
- program
- content
- area
- 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.)
- Expired - Lifetime
Links
Images
Landscapes
- Storage Device Security (AREA)
Description
本発明は、鍵実装システムに用いられるLSIのような半導体装置において、セキュリティを向上させる技術に属する。 The present invention belongs to a technique for improving security in a semiconductor device such as an LSI used in a key mounting system.
本願と同一の出願人による特願2001−286881では、鍵実装システムにおいて、鍵の機密性および秘匿性を、従来よりも向上させる技術が示されている。 In Japanese Patent Application No. 2001-286881 by the same applicant as the present application, a technique for improving the confidentiality and confidentiality of a key in a key mounting system is shown.
しかし、かかる先行技術は、文献公知発明に係るものではないため、記載すべき先行技術文献情報はない。 However, since this prior art does not relate to a known literature invention, there is no prior art document information to be described.
本発明は、セキュリティレベルの高い半導体装置を提供することを課題とする。また、セキュリティレベルの高いコンテンツ再生方法を提供することを課題とする。 An object of the present invention is to provide a semiconductor device with a high security level. It is another object of the present invention to provide a content reproduction method with a high security level.
本発明が講じた解決手段は、外部メモリに格納されたコンテンツを、LSIを用いて再生するコンテンツ再生方法として、前記外部メモリは、平文のコンテンツを格納する第1の領域と、前記LSIに固有のデータ固有鍵を用いて暗号化されたコンテンツを格納する第2の領域とを備え、当該コンテンツ再生方法は、前記LSIのCPUがアプリケーションプログラムを実行することによって、実行されるものであり、前記外部メモリの前記第1の領域に格納された平文コンテンツを前記LSIに入力するステップと、前記LSIの内部メモリに格納された固有IDを用いて、データ固有鍵を生成するステップと、前記LSIに入力された前記平文コンテンツを、前記データ固有鍵を用いて暗号化し、前記外部メモリの前記第2の領域に格納するステップと、前記第2の領域に格納された、前記データ固有鍵を用いて暗号化されたコンテンツを、前記LSIに入力し、前記データ固有鍵を用いて復号化して再生するステップとを備えたものである。 The solution provided by the present invention is a content playback method for playing back content stored in an external memory using an LSI. The external memory has a first area for storing plaintext content, and is unique to the LSI. And a second area for storing content encrypted using the data unique key, and the content reproduction method is executed when the CPU of the LSI executes an application program, Inputting plaintext content stored in the first area of the external memory to the LSI; generating a data unique key using a unique ID stored in the internal memory of the LSI; and storing input the plaintext content was, encrypted using the data inherent key, the second region of the external memory A step that was stored in the second area, the content encrypted using the data inherent key, the enter to the LSI, and a step of reproducing and decoding using the data inherent key It is a thing.
本発明によると、外部メモリの第1の領域に格納された平文コンテンツは、LSIにおいて、内部メモリに格納された固有IDを用いて生成されたデータ固有鍵を用いて、暗号化される。暗号化されたコンテンツは、外部メモリの第2の領域に格納され、再生のとき、データ固有鍵を用いて復号化される。このため、外部メモリの第2の領域には、固有IDから生成されたデータ固有鍵を用いて暗号化されたコンテンツが格納されるので、同一のデータ固有鍵を有しない他のLSIによっては、再生が不能となる。このため、コンテンツの不正実行が防止され、セキュリティレベルが向上する。 According to the present invention, the plaintext content stored in the first area of the external memory is encrypted in the LSI using the data unique key generated using the unique ID stored in the internal memory. The encrypted content is stored in a second area of the external memory, when the reproduction is decrypted using the data inherent key. For this reason, since the content encrypted using the data unique key generated from the unique ID is stored in the second area of the external memory, depending on other LSIs that do not have the same data unique key, Playback becomes impossible. This prevents unauthorized execution of the content and improves the security level.
また、本発明が講じた解決手段は、外部メモリに格納されたコンテンツを、LSIを用いて再生するコンテンツ再生方法として、前記外部メモリは、共有鍵を用いて暗号化されたコンテンツを格納する第1の領域と、前記LSIに固有のデータ固有鍵を用いて暗号化されたコンテンツを格納する第2の領域とを備え、当該コンテンツ再生方法は、前記LSIのCPUがアプリケーションプログラムを実行することによって、実行されるものであり、前記外部メモリの前記第1の領域に格納された、前記共有鍵によって暗号化されたコンテンツを、前記LSIに入力するステップと、前記LSIの内部メモリに格納された前記共有鍵を用いて、前記共有鍵によって暗号化されたコンテンツを復号化し、平文コンテンツを得るステップと、前記内部メモリに格納された固有IDを用いて、データ固有鍵を生成するステップと、復号化された前記平文コンテンツを、前記データ固有鍵を用いて暗号化し、前記外部メモリの前記第2の領域に格納するステップと、前記第2の領域に格納された、前記データ固有鍵を用いて暗号化されたコンテンツを、前記LSIに入力し、前記データ固有鍵を用いて復号化して再生するステップとを備えたものである。The solution provided by the present invention is a content playback method for playing back content stored in an external memory using an LSI. The external memory stores content encrypted using a shared key. 1 area and a second area for storing content encrypted using a data unique key unique to the LSI, and the content reproduction method is performed by the LSI CPU executing an application program. The content encrypted by the shared key stored in the first area of the external memory is input to the LSI, and stored in the internal memory of the LSI Decrypting the content encrypted with the shared key using the shared key to obtain plaintext content; Generating a data unique key using the unique ID stored in the memory; and encrypting the decrypted plaintext content using the data unique key and storing the encrypted data in the second area of the external memory And inputting the content stored in the second area and encrypted using the data unique key to the LSI, decrypting the content using the data unique key, and reproducing the content. It is a thing.
以上のように本発明によると、外部メモリの第2の領域には、固有IDから生成されたデータ固有鍵を用いて暗号化されたコンテンツが格納されるので、同一のデータ固有鍵を有しない他のLSIによっては再生が不能となる。このため、コンテンツの不正実行が防止される。したがって、セキュリティレベルが向上する。 As described above, according to the present invention, since the content encrypted using the data unique key generated from the unique ID is stored in the second area of the external memory, it does not have the same data unique key. Some other LSIs cannot be played back. For this reason, illegal execution of content is prevented. Therefore, the security level is improved.
以下、本発明の実施の形態について、図面を参照して説明する。 Embodiments of the present invention will be described below with reference to the drawings.
図1は本実施形態に係る半導体装置としてのセキュアLSIの内部構成を示すブロック図である。図1において、セキュアLSI1は外部バス120を介して、外部メモリ100(フラッシュメモリ101とRAM102)などと接続可能に構成されている。また、モードIDを与えることによって、その動作モードを設定することが可能になっている。
FIG. 1 is a block diagram showing an internal configuration of a secure LSI as a semiconductor device according to the present embodiment. In FIG. 1, the secure LSI 1 is configured to be connectable to an external memory 100 (
本実施形態に関わる主な構成要素について、簡単に説明する。 The main components related to this embodiment will be briefly described.
まず、セキュアLSI1は、書き換え不可領域11を含むセキュアメモリ(セキュアFlash)10を備えている。この書き換え不可領域11には、書き換え不可領域書き込みフラグ12が設けられている。書き換え不可領域書き込みフラグ12は、モードIDが一度セキュアメモリ10に書き込まれると、そのフラグ値が“可”から“済”になり、それ以降の書き換え不可領域11への書き込みを不能にする。なお、本実施形態では、セキュアメモリ10はフラッシュメモリによって構成されているが、もちろんこれに限定されるものではなく、不揮発性のメモリであればどのようなものであってもかまわない。
First, the secure LSI 1 includes a secure memory (secure flash) 10 including a non-rewritable area 11. In this non-rewritable area 11, a non-rewritable area write
また、暗号化部2はプログラムの暗号化や復号化を行うものであり、暗号化演算部としての秘密鍵演算処理部20と、暗号化制御部としての鍵生成・更新シーケンサ30と、プログラム暗号種を記憶する記憶部35とを備えている。秘密鍵演算処理部20は各種の鍵などを格納するレジスタを備えており、プログラムの暗号化処理または復号化処理を含む複数のシーケンスを実行可能である。鍵生成・更新シーケンサ30は秘密鍵演算処理部20が実行可能な各シーケンスについて実行の諾否を判断し、実行が許されないと判断したシーケンスについて秘密鍵演算処理部20の動作を禁止する。鍵生成・更新シーケンサ30はモードID格納レジスタ31を有しており、このモードID格納レジスタ31に格納されているモードIDの値に基づいて、各シーケンスの実行の諾否を判断する。また、鍵またはプログラムがどのようなアルゴリズムや鍵長で暗号化されているかを示す暗号種別識別子を格納する暗号種別識別子格納レジスタ32を備えている。暗号化部2の構成および動作の詳細については、後述する。
The
モードシーケンサ40も、モードID格納レジスタ41を備えており、モードID格納レジスタ41に格納されているモードIDと、ジャンパ43の値に応じて、外部インターフェース(I/F)50の動作、すなわち、外部メモリ100に格納されたプログラムやデータをどのI/Fを介して読み込むか、が制御される。これにより、外部メモリ100に格納された平文プログラムが実行できるか否かを制御することができる。さらに、モードシーケンサ40は、鍵がどの手法によって暗号化されているかを示す暗号種別識別子を格納する暗号種別識別子格納レジスタ42を備えている。
The
外部I/F50は、モードシーケンサ40の制御に従って、プログラム処理部51が有するスルー部52およびプログラム復号用暗号エンジン53、並びに、データ処理部55が有するスルー部56およびデータ暗復号用暗号エンジン58のうちのいずれかを介して、外部メモリ100との間でプログラムやデータの入出力を行う。
Under the control of the
ここで、後述するアドミニストレータモードとアプリプログラム開発を除いては、スルー部52を介して入力されたプログラムは、セキュアLSI1内部で実行されることはない。すなわち、スルー部52は、平文プログラムの暗号化、またはすでに暗号化されたプログラムを別の鍵を用いて再暗号化するときに有効とされるものであり、セキュアLSI1は、後述するアドミニストレータモードとアプリプログラム開発を除いては、スルー部52を介して入力されたプログラムへは動作を遷移しないように構成されている。したがって、例えば商品となったセキュアLSI1はスルー部52を介して平文プログラムを取り込んだとしても、これを実行することはできない。
Here, except for an administrator mode and application program development which will be described later, the program input via the through
ブートROM60は、セキュアLSI1の起動動作を制御するブートプログラムを格納している。HASH演算部70は、セキュアLSI1に読み込まれたプログラムについてその正当性を検証するために、HASH値を演算する。
The
また、外部メモリ100では、プログラムがフラッシュメモリ101に格納され、データ(コンテンツ)がRAM102に格納されている。外部ツール110には、セキュアLSI1の最初の起動時にセキュアメモリ10に格納する各種の初期値が格納されている。この初期値の種類は、設定される動作モードに応じて、異なったものになる。
In the external memory 100, the program is stored in the
図2は図1のセキュアLSI1を用いた開発および製品化の全体の流れを表す図である。図2に示すように、セキュアLSI1は、アドミニストレータモード(モードID:00)、鍵生成モード(モードID:01)、開発モード(モードID:10)および商品動作モード(モードID:11)の4種類の動作モードで、動作する。 FIG. 2 is a diagram showing the overall flow of development and commercialization using the secure LSI 1 of FIG. As shown in FIG. 2, the secure LSI 1 has four modes: an administrator mode (mode ID: 00), a key generation mode (mode ID: 01), a development mode (mode ID: 10), and a product operation mode (mode ID: 11). Operates in various operation modes.
まず、アドミニストレータモードに設定されたセキュアLSI1は、管理者用LSIとして、動作する。管理者用LSIでは、鍵生成プログラムが開発され(PA1)、また、その鍵生成プログラムが任意の鍵生成鍵を用いて暗号化される(PA2)。 First, the secure LSI 1 set to the administrator mode operates as an administrator LSI. In the administrator LSI, a key generation program is developed (PA1), and the key generation program is encrypted using an arbitrary key generation key (PA2).
鍵生成モードに設定されたセキュアLSI1は、鍵生成用LSIとして、動作する。鍵生成用LSIでは、管理者用LSIにおいて生成された、暗号化された鍵生成プログラムが実装され(PB1)、この鍵生成プログラムを実行することによって、各種の鍵が生成される(PB2)。 The secure LSI 1 set to the key generation mode operates as a key generation LSI. In the key generation LSI, an encrypted key generation program generated in the administrator LSI is mounted (PB1), and various keys are generated by executing this key generation program (PB2).
開発モードに設定されたセキュアLSI1は、開発用LSIとして、動作する。開発用LSIでは、実際の製品で実行されるアプリケーション用プログラムが開発される(PC1)。そして、このアプリケーション用プログラムが、プログラム共有鍵を用いて暗号化される(PC2)。 The secure LSI 1 set to the development mode operates as a development LSI. In the development LSI, an application program to be executed by an actual product is developed (PC1). Then, the application program is encrypted using the program shared key (PC2).
商品動作モードに設定されたセキュアLSI1は、実際の商品LSIとして、動作する。商品LSIでは、開発用LSIにおいて生成された、プログラム共有鍵で暗号化されたアプリケーション用プログラムが実装され、その内部で、プログラム固有鍵で暗号化されたアプリケーション用プログラムに、変換される(PD1)。プログラム固有鍵で暗号化されたアプリケーションプログラムは通常の商品動作において実行される。なお、この変換処理は、開発用LSIでも、アプリケーション用プログラムのデバッグ(PC4)のために、実行可能になっている(PC3)。 The secure LSI 1 set in the product operation mode operates as an actual product LSI. In the product LSI, the application program generated by the development LSI and encrypted with the program shared key is installed and converted into the application program encrypted with the program unique key (PD1). . The application program encrypted with the program unique key is executed in normal product operation. This conversion process can be executed in the development LSI (PC3) for debugging the application program (PC4).
セキュアLSI1は、ブートROM60に格納されたブートプログラムを実行することによって、以下のような動作を行う。
The secure LSI 1 performs the following operation by executing the boot program stored in the
図3はブートプログラムの全体的な処理の流れを示すフローチャートである。セキュアLSI1に電源が投入されると、ブートROM60に格納されたブートプログラムがCPU65によって実行される。図3に示すように、まず、各ハードウェアを初期化する(SZ0)。そして、外部ツール110からさまざまな初期値を読み込み、セキュアメモリ10に設定する(SZ1)。
FIG. 3 is a flowchart showing the overall processing flow of the boot program. When the secure LSI 1 is turned on, the boot program stored in the
図4は初期値設定処理SZ1のフローチャートである。まず、ジャンパ44で、セキュアメモリ10がLSI内に実装されているか否かの判定を行う(SZ11)。次に、書き換え不可領域書き込みフラグ12が“済”であるか否かを判定し(SZ12)、“済”であるときは(SZ12でYes)すでにセキュアメモリ10に初期値が設定されているので、処理SZ1を終了する。書き換え不可領域書き込みフラグ12が“可”であるときは(SZ12でNo)、セキュアメモリ10に初期値を書き込んでいく。モードIDに加えて、暗号化されたプログラム固有鍵、アドレス管理情報、データ固有鍵をセキュアメモリ10の書き換え不可領域11に書き込む(SZ13,SZ16〜SZ18)。なお、最初の判定の結果、セキュアメモリ10がLSIの外部にあると判定されたとき(SZ14でNo)は、モードIDは商品動作モードを表す値に上書きされる(SZ15)。これにより、セキュアメモリ10がLSIパッケージ外にあるような製品は、商品動作モードでしか動作できない。
FIG. 4 is a flowchart of the initial value setting process SZ1. First, the
次に、書き込み不可領域書き込みフラグ12を“済”にセットする(SZ19)。これによって、以後の書き換え不可領域11の書き換えはできなくなる。さらに、通常領域13,14に暗号種別識別子および実装モードフラグを書き込む(SZ1A)。そして、モードIDがアドミニストレータモード以外のモードを示すときは(SZ1BでNo)、これらに加えて、暗号化された共有鍵/鍵生成鍵も通常領域13,14に書き込む(SZ1C)。
Next, the unwritable area write
その後、図3にもどり、前処理SZ2を実行する。ここでは、セキュアメモリ10の書き込み不可領域11に設定されたモードIDが、鍵生成・更新シーケンサ30のモードID格納レジスタ31と、モードシーケンサ40のモードID格納レジスタ41とに設定される。また、セキュアメモリ10の第1の通常領域13に設定された暗号種別識別子が、鍵生成・更新シーケンサ30の暗号種別識別子格納レジスタ32と、モードシーケンサ40の暗号種別識別子格納レジスタ42とに設定される。さらに、セキュアメモリ10の書き換え不可領域11に格納されたアドレス管理情報が、MEMC80のアドレス区分格納レジスタ81に設定される。ここまでの動作は、図2における初期値設定フェーズPA0,PB0,PC0,PD0に対応している。
Thereafter, returning to FIG. 3, the preprocessing SZ2 is executed. Here, the mode ID set in the non-writable area 11 of the
その後は、モードIDの値に応じて、それぞれのモードにおける動作を行う(SZ3)。 Thereafter, the operation in each mode is performed according to the value of the mode ID (SZ3).
モードIDが「00」のとき、セキュアLSI1はアドミニストレータモードになり、ジャンパ43の値に応じて(SA0)、平文プログラム実行処理SA1、またはプログラム暗号化処理SA2を実行する。鍵生成プログラム開発フェーズPA1では、平文プログラム実行処理SA1が行われ、ここで、鍵生成プログラムが生成される。この鍵生成プログラムは外部メモリ100に格納される。鍵生成プログラム暗号化フェーズPA2では、鍵生成プログラムを任意の鍵生成鍵で暗号化する。 When the mode ID is “00”, the secure LSI 1 enters the administrator mode, and executes the plaintext program execution process SA1 or the program encryption process SA2 according to the value of the jumper 43 (SA0). In the key generation program development phase PA1, a plain text program execution process SA1 is performed, where a key generation program is generated. This key generation program is stored in the external memory 100. In the key generation program encryption phase PA2, the key generation program is encrypted with an arbitrary key generation key.
モードIDが「01」のとき、セキュアLSI1は鍵生成モードになり、実装モードフラグの値に応じて(SB0)、キージェネレータ製造処理SB1、または鍵管理・発行処理SB2を実行する。キージェネレータ製造フェーズPB1では、キージェネレータ製造処理SB1が実行され、任意の鍵生成鍵で暗号化された鍵生成プログラムをプログラム固有鍵で再暗号化する。鍵管理・発行フェーズPB2では、プログラム固有鍵で暗号化された鍵生成プログラムを実行させることによって、鍵管理・発行処理SB2が実行し、鍵を生成する。 When the mode ID is “01”, the secure LSI 1 enters the key generation mode, and executes the key generator manufacturing process SB1 or the key management / issue process SB2 according to the value of the mounting mode flag (SB0). In the key generator manufacturing phase PB1, the key generator manufacturing process SB1 is executed, and the key generation program encrypted with an arbitrary key generation key is re-encrypted with the program unique key. In the key management / issue phase PB2, by executing the key generation program encrypted with the program unique key, the key management / issue process SB2 executes to generate a key.
モードIDが「10」のとき、セキュアLSI1は開発モードになり、ジャンパ43の値に応じて(SC0)、プログラム暗号化処理SC1、平文プログラム実行処理SC2、プログラム実装処理SC3、または暗号化プログラム実行処理SC4を実行する。アプリケーションプログラム開発フェーズPC1では、平文プログラム実行処理SC2が行われ、アプリケーションプログラムが開発される。開発されたアプリケーションプログラムは、外部メモリ100に格納される。アプリケーションプログラム暗号化フェーズPC2では、プログラム暗号化処理SC1が実行される。また、アプリケーションプログラム実装フェーズPC3では、プログラム実装処理SC3が実行され、アプリケーションプログラムデバッグフェーズPC4では、暗号化プログラム実行処理SC4が実行される。これらの処理は、商品動作モードにおける各処理SD1,SD2と同様である
モードIDが「11」のとき、セキュアLSI1は商品動作モードになり、実装モードフラグの値に応じて(SD0)、プログラム実装処理SD1、または通常ブート処理SD2を実行する。商品実装フェーズPD1では、プログラム実装処理SD1が実行される。商品動作フェーズPD2では、通常ブート処理SD2が実行される。
When the mode ID is “10”, the secure LSI 1 is in the development mode, and depending on the value of the jumper 43 (SC0), the program encryption process SC1, the plaintext program execution process SC2, the program implementation process SC3, or the encryption program execution Process SC4 is executed. In the application program development phase PC1, a plain text program execution process SC2 is performed to develop an application program. The developed application program is stored in the external memory 100. In the application program encryption phase PC2, program encryption processing SC1 is executed. In the application program implementation phase PC3, the program implementation process SC3 is executed, and in the application program debug phase PC4, the encrypted program execution process SC4 is executed. These processes are the same as the processes SD1 and SD2 in the product operation mode. When the mode ID is “11”, the secure LSI 1 enters the product operation mode, and the program implementation is performed according to the value of the implementation mode flag (SD0). The process SD1 or the normal boot process SD2 is executed. In the product mounting phase PD1, program mounting processing SD1 is executed. In the product operation phase PD2, the normal boot process SD2 is executed.
図5は暗号化部2とその周辺の構成を示す図である。図5に示すように、鍵生成・更新シーケンサ30はモードID格納レジスタ31および暗号種別識別子格納レジスタ32の他に、秘密演算処理部20を用いて実行される各シーケンスに対応して設けられ、その発行回数を格納するためのレジスタ33と、レジスタ31,33を参照して、各シーケンスを実行してよいか否か(ブートROM60中の各プログラムおよび外部のプログラムを実行してよいか否か)を判断し、秘密鍵演算処理部20の動作を制御する制御部34とを備えている。セキュアLSI1において、各シーケンスが1回発行されると、これに対応したレジスタ33に1が加算される。
FIG. 5 is a diagram showing the configuration of the
プログラム暗号種35は、鍵を復号するとき、または鍵を生成するときに用いられるものであり、共有鍵用と固有鍵用とがそれぞれ準備されている。
The
そして、上述の商品動作モードや開発モードにおいては、セキュアメモリ10に格納された値を暗号化部2の各レジスタに設定するシーケンス(セキュアFlashローダー)や鍵を生成・復号するシーケンス(鍵シーケンサ)はそれぞれ1回ずつしか発行できないように、制御部34によって制限がかけられる。例えば、セキュアLSI1の起動時に一度、ブートプログラムによってセキュアメモリに記憶されたモードIDがモードID格納レジスタ31に格納されると、二度とモードIDを書き換えることができない。また、セキュアLSI起動時に共有鍵と固有鍵を復号し、秘密鍵演算処理部20内部のレジスタに格納すると、二度と鍵を生成・復号することはできない。したがって、外部メモリ100に鍵生成プログラムを実装したとしても、鍵は生成することはできない。一度復号された固有鍵は、外部I/F50内の固有鍵格納レジスタに格納され、暗号化プログラムの実行はこの固有鍵を用いて行われる。また、プログラムの更新は、秘密鍵演算処理部20内部のレジスタに格納された共有鍵や固有鍵を用いて行われる。
In the product operation mode and development mode described above, a sequence (secure flash loader) for setting values stored in the
なお、上述の鍵生成モードやアドミニストレータモードにおいては、鍵シーケンサに対する制限が外されるので、鍵を生成することができる。 In the key generation mode and the administrator mode described above, the key sequencer is not restricted, so that a key can be generated.
ここで、シーケンス発行回数格納レジスタ33の代わりに、プログラム暗号種に対応して設けられ、その使用回数を格納するプログラム暗号種使用回数格納レジスタを設けてもよい。鍵を生成・復号するときにはプログラム暗号種が用いられるので、例えば、モードIDによってその使用回数を制限しておけば、プログラム暗号種の使用回数を計数することによっても、鍵の生成・復号を制限することができる。
Here, instead of the sequence issuance
また、プログラム暗号種は必ずしも共有鍵と固有鍵とをそれぞれ準備する必要はない。 Further, it is not always necessary to prepare a shared key and a unique key for the program encryption type.
図6はコモンバスとプライベートバスの設定方法を示す図である。ここで、「プライベートバス」とは、外部からのアクセス(外部アクセス)ができないバスのことをいい、外部I/F50から必ずしも物理的に独立しているわけではない。すなわち、プライベートバス91につながっているとして設定されたレジスタ等は、外部アクセスでの読み出し・書き込みができない。
FIG. 6 is a diagram showing a method for setting a common bus and a private bus. Here, the “private bus” refers to a bus that cannot be accessed from the outside (external access), and is not necessarily physically independent from the external I /
セキュアLSI1の内部のレジスタ等には、アドレスがそれぞれ与えられている。コモンバスアドレス格納部82はそのアドレスのうち、コモンバス92につながったレジスタ等のアドレス(図6では“0X00000”〜“0X10000”)を記憶している。外部アクセスがあったときは、外部アクセスアドレス判定部83が、コモンバスアドレス格納部82を参照してコモンバス92へのアクセスか否かを判定し、そうであればこれを受け付ける。一方、外部アクセスがコモンバス92へのアクセスでないときは、プライベートバス91へのアクセスであるので、アクセスを拒否する。
An address is given to each register in the secure LSI 1. Among the addresses, the common bus
なお、CPU65からのアクセス(内部アクセス)のときは、このような判定は行われず、内部アクセスは受け付けられる。 In the case of access from the CPU 65 (internal access), such a determination is not performed and the internal access is accepted.
図7は外部I/F50とその周辺の構成を示す図である。図7において、アドレス区分格納レジスタ81は、外部メモリ100における各領域と、アドレスとの対応関係を表すアドレス管理情報を格納している。ここでは、外部メモリ100を、第1の領域(設定範囲内のプログラム)、第2の領域(設定範囲外のプログラム)、第3の領域(設定範囲内のデータ)および第4の領域(設定範囲外のデータ)という4つの領域に分けて、そのアドレスを記憶している。
FIG. 7 is a diagram showing the configuration of the external I /
比較器85は、アドレス区分格納レジスタ81に格納されたアドレス管理情報を参照し、入出力しようとする情報のアドレスが上述の第1〜第4の領域のいずれに該当するかを判断し、その判断結果を入出力制御信号生成部84に送る。
The
入出力制御信号生成部84は、モードシーケンサ40から出力されたモードIDとジャンパ判定結果、および比較器85の出力に基づいて、外部I/F50が有するどのインターフェースを有効にするかを判定し、その判定結果を入出力制御信号として外部入出力モード制御部54に送る。外部入出力モード制御部54は受けた入出力制御信号に従って、いずれかのインターフェースを有効にする。なお、モードIDが商品動作モードを示すときは、実行スルー部52bは必ず有効にはしない。これにより、外部メモリ100に格納された平文プログラムは実行されないように制限される。
The input / output control
第1の領域に格納されたプログラムは、アドミニストレータモードや開発モードのデバッグ時は、プログラム処理部51の実行用スルー部52bを介して取り込まれ、鍵生成モード、商品動作モード、または開発モードでデバッグ時以外のときは、プログラム復号用暗号エンジン53を介して取り込まれる。これらのプログラムは実行可能である。一方、第2の領域に格納されたプログラムは、プログラム処理部51の暗号化用スルー部52aを介して取り込まれ、暗号化部2に供給され、暗号化または再暗号化される。これらのプログラムは実行不可能である。
The program stored in the first area is fetched through the execution through
また、第3の領域に格納されたデータは、データ処理部55のデータ暗復号用暗号エンジン58を介して取り込まれ、第4の領域に格納されたデータは、データ処理部55のスルー部56を介して取り込まれる。
Further, the data stored in the third area is taken in via the data encryption /
暗号化用スルー部52aを介して取り込まれたプログラムは、暗号化部2の秘密鍵演算処理部20において暗号化または再暗号化された後、再び暗号化スルー部52aを介して、外部メモリ100の第1の領域に書き込まれる。これにより、以降は実行可能なプログラムとなる。
The program taken in through the encryption through
なお、アドレス区分格納レジスタ81およびモードID格納レジスタ41は、プライベートバス91を介して、データが設定される。すなわち、内部からのアクセスによってデータ設定がなされる。また、このデータ設定は、セキュアLSI1のリセット後、1回のみ実行可能である。
Note that data is set in the address
図8は外部I/F50の動作を示す図であり、商品動作モードを想定している。図8に示すとおり、実装前には、共有鍵で暗号化されたアプリケーションプログラムが外部メモリ100の第2の領域(設定範囲外)に格納されており、このため、このままでは実行することができない。すなわち、第2の領域に格納された,共有鍵で暗号化されたアプリケーションプログラムは、実装時に暗号化用スルー部52aを介してセキュアLSI1内部に取り込まれ、共有鍵で復号化された後、固有鍵で再暗号化され、再び暗号化用スルー部52aを介して、外部メモリ100の第1の領域(設定範囲内)に格納される。そして、この第1の領域に格納された,固有鍵で暗号化されたアプリケーションプログラムは、プログラム復号用暗号エンジン53を介してセキュアLSI1内部に取り込まれ、実行される。
FIG. 8 is a diagram showing the operation of the external I /
なお、開発モードでは、次のような動作を行う。まずデバッグ時には、実行したいプログラムを第1の領域(設定範囲内)に書き込んでおく。これにより、平文プログラムであっても、実行用スルー部52bを介して取り込まれ、実行される。暗号化時には、暗号化したいプログラムを第2の領域(設定範囲外)に書き込んでおく。これにより、セキュアLSI1を起動すると、暗号化シーケンスが実行され、共有鍵で暗号化されて外部メモリ100に格納される。デバッグ実装時には、再暗号化したいプログラムを第2の領域(設定範囲外)に書き込んでおく。さらには、暗号化デバッグ時には、デバッグしたい暗号化プログラムを第1の領域(設定範囲内)に書き込んでおく。これにより、復号されて実行される。
In the development mode, the following operation is performed. First, at the time of debugging, a program to be executed is written in the first area (within the set range). As a result, even a plain text program is fetched and executed through the execution through
図9はセキュアメモリ10のアクセス制御を示す図である。図9に示すように、アクセス制御部95は、書き換え不可領域11のアドレスを格納するレジスタ96と、書き換え不可領域書き込みフラグ12のアドレスを記憶するレジスタ97と、書き込み可/不可判定部98とを備えている。レジスタ96,97は、データが一度書き込まれると、フラグ管理などによって、さらなる書き込みができないように構成されている。
FIG. 9 is a diagram showing access control of the
アクセス制御は、次のように行われる。CPU65からセキュアメモリ10へのアクセスは、必ず、アクセス制御部95を介して実行される。コマンドが「リード」のときは、アクセス先のアドレスが、書き換え不可領域または通常領域のいずれであっても、セキュアメモリ10のデータはプライベートバス91に出力される。一方、コマンドが「ライト」のときは、書き込み可/不可判定部98が、アクセス先のアドレスとレジスタ96に格納されたアドレス、および書き換え不可領域書き込みフラグ12の値を参照して、書き込みを行うか否かを判定する。具体的には、次のような判断を行う。
(フラグ“済” かつ 書き込み不可領域)… 書き込み不可
(フラグ“済” かつ 通常領域) … 書き込み可
(フラグ“未” かつ 書き込み不可領域)… 書き込み可
(フラグ“未” かつ 通常領域) … 書き込み可
Access control is performed as follows. Access from the
(Flag “Done” and write-disabled area)… Writable (Flag “Done” and normal area)… Writable (Flag “Not” and write-disabled area)… Writable (Flag “Not” and normal area)… Writable
なお、セキュアメモリ10には、「セクタ消去」や「チップ消去」などのコマンドも準備されている。書き換え不可領域書き込みフラグ12が“済”のとき、「セクタ消去」は通常領域については受け付けるが、書き込み不可領域については受け付けない。また「チップ消去」は受け付けない。
Note that commands such as “sector erase” and “chip erase” are also prepared in the
また、コンテンツ(データ)の再生においても、次のような方法を採用することによって、セキュリティを向上させている。 Also in the reproduction of content (data), security is improved by adopting the following method.
データは当初、外部RAM102における第4の領域(設定範囲外)に置かれている。第4の領域に置かれているとき、データは、データ共有鍵(プログラム共有鍵と異なる)によって暗号化された状態か、または平文の状態である。このため、他のLSIによって不正利用される可能性があり、セキュリティの面で問題がある。
Data is initially placed in the fourth area (outside the set range) in the
この問題を解決するために、不正利用を特に防止したい映像や音楽等のコンテンツについては、コンテンツを再生するプログラムを、外部RAM102の第3の領域(設定範囲内)に記憶されたコンテンツしか再生できないように作成する。第3の領域内に置かれたデータは、セキュアLSIに取り込まれるとき、データ暗復号用暗号エンジン58において復号化される。この復号化において用いられるデータ固有鍵は、固有IDと乱数によって作成されるので、セキュアLSI1毎に異なるだけでなく、起動毎にも異なっている。したがって、データは不正利用されにくくなり、セキュリティが向上する。なお、コンテンツを再生するプログラムも固有鍵で暗号化されているので、改竄されにくいと考えられる。
In order to solve this problem, for content such as video and music for which unauthorized use is particularly prevented, only the content stored in the third area (within the setting range) of the
図10および図11は商品動作モードにおける通常ブート処理のデータフローである。図10において、まず、セキュアメモリ10の書き込み不可領域11に格納されている、暗号化されたプログラム固有鍵Enc(プログラム固有鍵、MK0),Enc(MK0,CK)を秘密鍵演算処理部20の暗号鍵格納レジスタに設定する。そして、この暗号化されたプログラム固有鍵を、実装されたプログラム暗号種を用いて復号し、プログラム固有鍵を得る。得たプログラム固有鍵は、外部I/F50のプログラム復号用暗号エンジン53のプログラム固有鍵格納レジスタに設定する。その後、セキュアメモリ10の書き込み不可領域11に格納されているデータ固有IDを秘密鍵演算処理部20の固有ID格納レジスタに設定する。また、CPU65によって乱数を生成し、秘密鍵演算処理部20の乱数格納レジスタに設定する。そして、秘密鍵演算処理部20によって、データ固有IDと乱数からデータ固有鍵を生成する。生成されたデータ固有鍵は、外部I/F50のデータ暗復号用暗号エンジン58のデータ固有鍵格納レジスタに設定される。
10 and 11 are data flows of the normal boot process in the product operation mode. In FIG. 10, first, the encrypted program unique key Enc (program unique key, MK0), Enc (MK0, CK) stored in the non-writable area 11 of the
その後、図11において、外部メモリ100に格納されていた,プログラム固有鍵で暗号化されたアプリケーションプログラムEnc(アプリケーションプログラム,プログラム固有鍵)を、外部I/F50が有するプログラム処理部51のプログラム復号用暗号エンジン53 を介して復号し、HASH演算部70に取り込み、HASH値を演算する。そして、この演算したHASH値と、セキュアメモリ10の通常領域13に格納されていたHASH値とを比較し、アプリケーションプログラムが改ざんされていないかどうかをチェックする。HASH値が一致していたとき、外部メモリ100に格納されていたアプリケーションプログラムEnc(アプリケーションプログラム,プログラム固有鍵)に処理を遷移し、アプリケーションを実行する。なお、HASH値が一致していないときは、何らかの不正が行われたものと推定して、不正アクセス時制御による処理を実行する。
Thereafter, in FIG. 11, the application program Enc (application program, program unique key) encrypted with the program unique key stored in the external memory 100 is decrypted by the
アプリケーションプログラムは、CPU65によって実行される。すなわち、セキュアLSI1内部のCPU65がマスターとなってアクセス制御を行うので、以降の動作は内部アクセスとなり、したがって、外部アクセスアドレス判定部83は関与しない。アプリケーションプログラムによって、外部RAM102の第4の領域(再生不可領域)から、データ共有鍵で暗号化されたコンテンツ(原コンテンツ)がセキュアLSI1に取り込まれる。取り込まれたコンテンツは、セキュアメモリ10に書き込まれたデータ共有鍵を用いて、秘密鍵演算処理部20において復号化される。その後、外部I/F50のデータ処理部55におけるデータ暗復号用暗号エンジン58を介してデータ固有鍵で暗号化され、外部RAM102の第3の領域(再生可能領域)に書き込まれる。以降、このデータ固有鍵で暗号化されたコンテンツは再生可能となり、再生されるとき、外部I/F50のデータ処理部55におけるデータ暗復号用暗号エンジン58を介して、データ固有鍵で復号化される。
The application program is executed by the
1 セキュアLSI(半導体装置)
2 暗号化部
10 セキュアメモリ
11 書き換え不可領域
20 秘密鍵演算処理部(暗号化演算部)
30 鍵生成・更新シーケンサ(暗号化制御部)
31 モードID格納レジスタ
33 シーケンス発行回数格納レジスタ
35 記憶部
40 モードシーケンサ
41 モードID格納レジスタ
45 ジャンパ値判定部
50 外部インターフェース
51 プログラム処理部
52 スルー部
52a 実行用スルー部
52b 暗号化用スルー部
53 プログラム復号用暗号エンジン
55 データ処理部
56 スルー部
58 データ暗復号用暗号エンジン
60 ブートROM
81 アドレス区分格納レジスタ
82 コモンバスアドレス格納部
83 外部アクセスアドレス判定部
100 外部メモリ
1 Secure LSI (semiconductor device)
2
30 Key generation / update sequencer (encryption controller)
31 Mode
81 Address
Claims (2)
前記外部メモリは、平文のコンテンツを格納する第1の領域と、前記LSIに固有のデータ固有鍵を用いて暗号化されたコンテンツを格納する第2の領域とを備え、
当該コンテンツ再生方法は、前記LSIのCPUがアプリケーションプログラムを実行することによって、実行されるものであり、
前記外部メモリの前記第1の領域に格納された平文コンテンツを、前記LSIに入力するステップと、
前記LSIの内部メモリに格納された固有IDを用いて、データ固有鍵を生成するステップと、
前記LSIに入力された前記平文コンテンツを、前記データ固有鍵を用いて暗号化し、前記外部メモリの前記第2の領域に格納するステップと、
前記第2の領域に格納された、前記データ固有鍵を用いて暗号化されたコンテンツを、前記LSIに入力し、前記データ固有鍵を用いて復号化して再生するステップとを備えた
ことを特徴とするコンテンツ再生方法。 A content playback method for playing back content stored in an external memory using an LSI,
The external memory includes a first area for storing plaintext content and a second area for storing content encrypted using a data unique key unique to the LSI,
The content reproduction method is executed by the CPU of the LSI executing an application program,
Inputting plaintext content stored in the first area of the external memory into the LSI;
Generating a data unique key using a unique ID stored in an internal memory of the LSI;
Encrypting the plaintext content input to the LSI using the data unique key and storing it in the second area of the external memory ;
The content encrypted using the data unique key stored in the second area is input to the LSI, decrypted using the data unique key, and reproduced. Content playback method.
前記外部メモリは、共有鍵を用いて暗号化されたコンテンツを格納する第1の領域と、前記LSIに固有のデータ固有鍵を用いて暗号化されたコンテンツを格納する第2の領域とを備え、The external memory includes a first area for storing content encrypted using a shared key and a second area for storing content encrypted using a data unique key unique to the LSI. ,
当該コンテンツ再生方法は、前記LSIのCPUがアプリケーションプログラムを実行することによって、実行されるものであり、The content reproduction method is executed by the CPU of the LSI executing an application program,
前記外部メモリの前記第1の領域に格納された、前記共有鍵によって暗号化されたコンテンツを、前記LSIに入力するステップと、Inputting the content encrypted by the shared key stored in the first area of the external memory into the LSI;
前記LSIの内部メモリに格納された前記共有鍵を用いて、前記共有鍵によって暗号化されたコンテンツを復号化し、平文コンテンツを得るステップと、Decrypting the content encrypted with the shared key using the shared key stored in the internal memory of the LSI to obtain plaintext content;
前記内部メモリに格納された固有IDを用いて、データ固有鍵を生成するステップと、Generating a data unique key using a unique ID stored in the internal memory;
復号化された前記平文コンテンツを、前記データ固有鍵を用いて暗号化し、前記外部メモリの前記第2の領域に格納するステップと、Encrypting the decrypted plaintext content using the data unique key and storing the encrypted content in the second area of the external memory;
前記第2の領域に格納された、前記データ固有鍵を用いて暗号化されたコンテンツを、前記LSIに入力し、前記データ固有鍵を用いて復号化して再生するステップとを備えたThe content encrypted using the data unique key stored in the second area is input to the LSI, decrypted using the data unique key, and reproduced.
ことを特徴とするコンテンツ再生方法。A content reproduction method characterized by the above.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009112470A JP4580024B2 (en) | 2009-05-07 | 2009-05-07 | Content playback method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009112470A JP4580024B2 (en) | 2009-05-07 | 2009-05-07 | Content playback method |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006070436A Division JP4336690B2 (en) | 2006-03-15 | 2006-03-15 | Semiconductor device having external interface |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009191595A Division JP4676547B2 (en) | 2009-08-21 | 2009-08-21 | Semiconductor device and boot method thereof |
JP2009258949A Division JP2010033613A (en) | 2009-11-12 | 2009-11-12 | Information processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009169986A JP2009169986A (en) | 2009-07-30 |
JP4580024B2 true JP4580024B2 (en) | 2010-11-10 |
Family
ID=40971005
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009112470A Expired - Lifetime JP4580024B2 (en) | 2009-05-07 | 2009-05-07 | Content playback method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4580024B2 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4702861B2 (en) * | 2009-09-30 | 2011-06-15 | 株式会社ソニー・コンピュータエンタテインメント | Content activation method and content reproduction apparatus |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11259330A (en) * | 1998-03-06 | 1999-09-24 | Hitachi Ltd | Module for evaluation, microcomputer chip for evaluation and debugging system |
JPH11282667A (en) * | 1998-03-31 | 1999-10-15 | Nakamichi Corp | Microprocessor having cipher processing function of multiple key system |
JP2000122931A (en) * | 1998-10-15 | 2000-04-28 | Toshiba Corp | Digital integrated circuit |
WO2000057278A1 (en) * | 1999-03-19 | 2000-09-28 | Hitachi, Ltd. | Information processing device |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6441947A (en) * | 1987-08-07 | 1989-02-14 | Hitachi Ltd | Semiconductor integrated circuit |
-
2009
- 2009-05-07 JP JP2009112470A patent/JP4580024B2/en not_active Expired - Lifetime
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11259330A (en) * | 1998-03-06 | 1999-09-24 | Hitachi Ltd | Module for evaluation, microcomputer chip for evaluation and debugging system |
JPH11282667A (en) * | 1998-03-31 | 1999-10-15 | Nakamichi Corp | Microprocessor having cipher processing function of multiple key system |
JP2000122931A (en) * | 1998-10-15 | 2000-04-28 | Toshiba Corp | Digital integrated circuit |
WO2000057278A1 (en) * | 1999-03-19 | 2000-09-28 | Hitachi, Ltd. | Information processing device |
WO2000057290A1 (en) * | 1999-03-19 | 2000-09-28 | Hitachi, Ltd. | Information processor |
Also Published As
Publication number | Publication date |
---|---|
JP2009169986A (en) | 2009-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3881942B2 (en) | Semiconductor device having encryption unit | |
JP4099039B2 (en) | Program update method | |
US8190912B2 (en) | Program development method, program development supporting system, and program installation method | |
TWI460604B (en) | Secure microcontroller,hardware cipher,and method for securing content within a microcontroller | |
US10880082B2 (en) | Rekeying keys for encrypted data in nonvolatile memories | |
JP2009025907A (en) | Semiconductor integrated circuit device and signal processing method therefor | |
JP4580024B2 (en) | Content playback method | |
JP4676547B2 (en) | Semiconductor device and boot method thereof | |
JP4336690B2 (en) | Semiconductor device having external interface | |
JP2010033613A (en) | Information processor | |
JP2010033603A (en) | Information processor | |
JP4580030B2 (en) | Secure device | |
JP2007249996A (en) | Program development support device and program installation method | |
JP2007272923A5 (en) | ||
JP2009169989A (en) | Program mounting method and information processing apparatus | |
JP2007272923A (en) | Server | |
JPH11282756A (en) | Secret data management method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20090507 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090915 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091112 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100302 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100427 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20100803 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100826 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130903 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4580024 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
EXPY | Cancellation because of completion of term |