JP4580024B2 - Content playback method - Google Patents

Content playback method Download PDF

Info

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
Application number
JP2009112470A
Other languages
Japanese (ja)
Other versions
JP2009169986A (en
Inventor
睦 藤原
祐輔 根本
純一 安井
卓治 前田
孝幸 伊藤
泰司 山田
信治 井上
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.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2009112470A priority Critical patent/JP4580024B2/en
Publication of JP2009169986A publication Critical patent/JP2009169986A/en
Application granted granted Critical
Publication of JP4580024B2 publication Critical patent/JP4580024B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

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.

本発明の実施形態に係る半導体装置としてのセキュアLSIの構成を示すブロック図である。1 is a block diagram showing a configuration of a secure LSI as a semiconductor device according to an embodiment of the present invention. 図1のセキュアLSIを用いた開発および製品化の全体の流れを表す図である。It is a figure showing the whole flow of development and commercialization using the secure LSI of FIG. ブートプログラムの全体的な処理の流れを示すフローチャートである。It is a flowchart which shows the flow of the whole process of a boot program. 初期値設定処理SZ1のフローチャートである。It is a flowchart of initial value setting processing SZ1. 図1のセキュアLSIにおける暗号化部とその周辺の構成を示す図である。FIG. 2 is a diagram illustrating a configuration of an encryption unit and its periphery in the secure LSI of FIG. 1. 図1のセキュアLSIにおけるコモンバスとプライベートバスの設定方法を示す図である。It is a figure which shows the setting method of the common bus and private bus in the secure LSI of FIG. 図1のセキュアLSIにおける外部ホストI/Fとその周辺の構成を示す図である。FIG. 2 is a diagram illustrating a configuration of an external host I / F and its periphery in the secure LSI of FIG. 1. 商品動作モードにおける外部ホストI/Fの動作を示す図である。It is a figure which shows operation | movement of the external host I / F in goods operation mode. セキュアメモリのアクセス制御を示す図である。It is a figure which shows access control of a secure memory. 商品動作モードにおける通常ブート処理のデータフローその1である。It is the data flow 1 of the normal boot process in goods operation mode. 商品動作モードにおける通常ブート処理のデータフローその2である。It is the data flow 2 of the normal boot process in goods operation mode.

以下、本発明の実施の形態について、図面を参照して説明する。   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 (flash memory 101 and RAM 102) via an external bus 120. In addition, the operation mode can be set by giving the mode ID.

本実施形態に関わる主な構成要素について、簡単に説明する。   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 flag 12 is provided. The non-rewritable area write flag 12 changes its flag value from “permitted” to “done” once the mode ID is written in the secure memory 10 and disables subsequent writing to the non-rewritable area 11. In the present embodiment, the secure memory 10 is constituted by a flash memory. However, the present invention is not limited to this, and any type of non-volatile memory may be used.

また、暗号化部2はプログラムの暗号化や復号化を行うものであり、暗号化演算部としての秘密鍵演算処理部20と、暗号化制御部としての鍵生成・更新シーケンサ30と、プログラム暗号種を記憶する記憶部35とを備えている。秘密鍵演算処理部20は各種の鍵などを格納するレジスタを備えており、プログラムの暗号化処理または復号化処理を含む複数のシーケンスを実行可能である。鍵生成・更新シーケンサ30は秘密鍵演算処理部20が実行可能な各シーケンスについて実行の諾否を判断し、実行が許されないと判断したシーケンスについて秘密鍵演算処理部20の動作を禁止する。鍵生成・更新シーケンサ30はモードID格納レジスタ31を有しており、このモードID格納レジスタ31に格納されているモードIDの値に基づいて、各シーケンスの実行の諾否を判断する。また、鍵またはプログラムがどのようなアルゴリズムや鍵長で暗号化されているかを示す暗号種別識別子を格納する暗号種別識別子格納レジスタ32を備えている。暗号化部2の構成および動作の詳細については、後述する。   The encryption unit 2 encrypts and decrypts a program. The secret key calculation processing unit 20 as an encryption calculation unit, a key generation / update sequencer 30 as an encryption control unit, and a program encryption And a storage unit 35 for storing seeds. The secret key calculation processing unit 20 includes a register for storing various keys and the like, and can execute a plurality of sequences including program encryption processing or decryption processing. The key generation / update sequencer 30 determines whether to execute each sequence that can be executed by the secret key calculation processing unit 20, and prohibits the operation of the secret key calculation processing unit 20 for the sequence that is determined not to be executed. The key generation / update sequencer 30 has a mode ID storage register 31, and determines whether to execute each sequence based on the value of the mode ID stored in the mode ID storage register 31. Also, an encryption type identifier storage register 32 for storing an encryption type identifier indicating what algorithm and key length the key or program is encrypted with is provided. Details of the configuration and operation of the encryption unit 2 will be described later.

モードシーケンサ40も、モードID格納レジスタ41を備えており、モードID格納レジスタ41に格納されているモードIDと、ジャンパ43の値に応じて、外部インターフェース(I/F)50の動作、すなわち、外部メモリ100に格納されたプログラムやデータをどのI/Fを介して読み込むか、が制御される。これにより、外部メモリ100に格納された平文プログラムが実行できるか否かを制御することができる。さらに、モードシーケンサ40は、鍵がどの手法によって暗号化されているかを示す暗号種別識別子を格納する暗号種別識別子格納レジスタ42を備えている。   The mode sequencer 40 also includes a mode ID storage register 41, and the operation of the external interface (I / F) 50 according to the mode ID stored in the mode ID storage register 41 and the value of the jumper 43, that is, The I / F through which the program or data stored in the external memory 100 is read is controlled. Thereby, it is possible to control whether or not the plaintext program stored in the external memory 100 can be executed. Furthermore, the mode sequencer 40 includes an encryption type identifier storage register 42 that stores an encryption type identifier indicating which method is used to encrypt the key.

外部I/F50は、モードシーケンサ40の制御に従って、プログラム処理部51が有するスルー部52およびプログラム復号用暗号エンジン53、並びに、データ処理部55が有するスルー部56およびデータ暗復号用暗号エンジン58のうちのいずれかを介して、外部メモリ100との間でプログラムやデータの入出力を行う。   Under the control of the mode sequencer 40, the external I / F 50 includes a through unit 52 and a program decryption cryptographic engine 53 included in the program processing unit 51, and a through unit 56 and a data encryption / decryption cryptographic engine 58 included in the data processing unit 55. A program and data are input / output to / from the external memory 100 via any of them.

ここで、後述するアドミニストレータモードとアプリプログラム開発を除いては、スルー部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 unit 52 is not executed inside the secure LSI 1. In other words, the through unit 52 is effective when encrypting a plain text program or re-encrypting an already encrypted program using another key. The secure LSI 1 has an administrator mode described later. Except for application program development, the operation is not shifted to the program input via the through unit 52. Therefore, for example, even if the secure LSI 1 that has become a product takes in the plain text program via the through unit 52, it cannot be executed.

ブートROM60は、セキュアLSI1の起動動作を制御するブートプログラムを格納している。HASH演算部70は、セキュアLSI1に読み込まれたプログラムについてその正当性を検証するために、HASH値を演算する。   The boot ROM 60 stores a boot program that controls the startup operation of the secure LSI 1. The HASH calculation unit 70 calculates a HASH value in order to verify the validity of the program read into the secure LSI 1.

また、外部メモリ100では、プログラムがフラッシュメモリ101に格納され、データ(コンテンツ)がRAM102に格納されている。外部ツール110には、セキュアLSI1の最初の起動時にセキュアメモリ10に格納する各種の初期値が格納されている。この初期値の種類は、設定される動作モードに応じて、異なったものになる。   In the external memory 100, the program is stored in the flash memory 101, and the data (content) is stored in the RAM 102. The external tool 110 stores various initial values stored in the secure memory 10 when the secure LSI 1 is first activated. The type of the initial value varies depending on the set operation mode.

図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 boot ROM 60.

図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 boot ROM 60 is executed by the CPU 65. As shown in FIG. 3, first, each hardware is initialized (SZ0). Then, various initial values are read from the external tool 110 and set in the secure memory 10 (SZ1).

図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 jumper 44 determines whether or not the secure memory 10 is mounted in the LSI (SZ11). Next, it is determined whether or not the non-rewritable area write flag 12 is “completed” (SZ12). If it is “completed” (Yes in SZ12), an initial value has already been set in the secure memory 10. Then, the process SZ1 is terminated. When the non-rewritable area write flag 12 is “permitted” (No in SZ12), the initial value is written into the secure memory 10. In addition to the mode ID, the encrypted program unique key, address management information, and data unique key are written in the non-rewritable area 11 of the secure memory 10 (SZ13, SZ16 to SZ18). As a result of the initial determination, when it is determined that the secure memory 10 is outside the LSI (No in SZ14), the mode ID is overwritten with a value representing the product operation mode (SZ15). Thereby, a product in which the secure memory 10 is outside the LSI package can operate only in the product operation mode.

次に、書き込み不可領域書き込みフラグ12を“済”にセットする(SZ19)。これによって、以後の書き換え不可領域11の書き換えはできなくなる。さらに、通常領域13,14に暗号種別識別子および実装モードフラグを書き込む(SZ1A)。そして、モードIDがアドミニストレータモード以外のモードを示すときは(SZ1BでNo)、これらに加えて、暗号化された共有鍵/鍵生成鍵も通常領域13,14に書き込む(SZ1C)。   Next, the unwritable area write flag 12 is set to “completed” (SZ19). This makes it impossible to rewrite the non-rewritable area 11 thereafter. Further, the encryption type identifier and the implementation mode flag are written in the normal areas 13 and 14 (SZ1A). When the mode ID indicates a mode other than the administrator mode (No in SZ1B), in addition to these, the encrypted shared key / key generation key is also written in the normal areas 13 and 14 (SZ1C).

その後、図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 secure memory 10 is set in the mode ID storage register 31 of the key generation / update sequencer 30 and the mode ID storage register 41 of the mode sequencer 40. In addition, the encryption type identifier set in the first normal area 13 of the secure memory 10 is set in the encryption type identifier storage register 32 of the key generation / update sequencer 30 and the encryption type identifier storage register 42 of the mode sequencer 40. The Further, the address management information stored in the non-rewritable area 11 of the secure memory 10 is set in the address division storage register 81 of the MEMC 80. The operations so far correspond to the initial value setting phases PA0, PB0, PC0, PD0 in FIG.

その後は、モード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 encryption unit 2 and its surroundings. As shown in FIG. 5, in addition to the mode ID storage register 31 and the encryption type identifier storage register 32, the key generation / update sequencer 30 is provided corresponding to each sequence executed using the secret arithmetic processing unit 20, Referring to register 33 for storing the number of times of issuance and registers 31 and 33, whether or not each sequence can be executed (whether or not each program in boot ROM 60 and an external program can be executed) ) And a control unit 34 for controlling the operation of the secret key calculation processing unit 20. In the secure LSI 1, when each sequence is issued once, 1 is added to the register 33 corresponding thereto.

プログラム暗号種35は、鍵を復号するとき、または鍵を生成するときに用いられるものであり、共有鍵用と固有鍵用とがそれぞれ準備されている。   The program encryption type 35 is used when a key is decrypted or a key is generated, and a shared key and a unique key are prepared.

そして、上述の商品動作モードや開発モードにおいては、セキュアメモリ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 secure memory 10 in each register of the encryption unit 2 and a sequence for generating / decrypting a key (key sequencer) Are restricted by the control unit 34 so that each can be issued only once. For example, once the mode ID stored in the secure memory by the boot program is stored in the mode ID storage register 31 once the secure LSI 1 is started, the mode ID cannot be rewritten again. Also, if the shared key and the unique key are decrypted when the secure LSI is activated and stored in the register inside the secret key calculation processing unit 20, the key cannot be generated / decrypted again. Therefore, even if a key generation program is installed in the external memory 100, a key cannot be generated. The unique key once decrypted is stored in a unique key storage register in the external I / F 50, and the encryption program is executed using this unique key. The program is updated using a shared key or unique key stored in a register inside the secret key calculation processing unit 20.

なお、上述の鍵生成モードやアドミニストレータモードにおいては、鍵シーケンサに対する制限が外されるので、鍵を生成することができる。   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 count storage register 33, a program cipher type use count storage register that is provided corresponding to the program cipher type and stores the use count may be provided. Since the program encryption type is used when generating / decrypting the key, for example, if the number of uses is limited by the mode ID, the key generation / decryption is also limited by counting the number of times the program encryption type is used. can do.

また、プログラム暗号種は必ずしも共有鍵と固有鍵とをそれぞれ準備する必要はない。   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 / F 50. That is, a register or the like set as being connected to the private bus 91 cannot be read / written by external access.

セキュア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 address storage unit 82 stores addresses of registers and the like connected to the common bus 92 ("0X00000" to "0X10000" in FIG. 6). When there is an external access, the external access address determination unit 83 refers to the common bus address storage unit 82 to determine whether the access is to the common bus 92, and if so, accepts this. On the other hand, when the external access is not an access to the common bus 92, the access is denied because the access is to the private bus 91.

なお、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 / F 50 and its periphery. In FIG. 7, the address division storage register 81 stores address management information indicating the correspondence between each area in the external memory 100 and the address. Here, the external memory 100 includes a first area (program within the setting range), a second area (program outside the setting range), a third area (data within the setting range), and a fourth area (setting). The addresses are stored in four areas (data outside the range).

比較器85は、アドレス区分格納レジスタ81に格納されたアドレス管理情報を参照し、入出力しようとする情報のアドレスが上述の第1〜第4の領域のいずれに該当するかを判断し、その判断結果を入出力制御信号生成部84に送る。   The comparator 85 refers to the address management information stored in the address division storage register 81, determines which of the first to fourth areas the address of the information to be input / output corresponds to, and The determination result is sent to the input / output control signal generator 84.

入出力制御信号生成部84は、モードシーケンサ40から出力されたモードIDとジャンパ判定結果、および比較器85の出力に基づいて、外部I/F50が有するどのインターフェースを有効にするかを判定し、その判定結果を入出力制御信号として外部入出力モード制御部54に送る。外部入出力モード制御部54は受けた入出力制御信号に従って、いずれかのインターフェースを有効にする。なお、モードIDが商品動作モードを示すときは、実行スルー部52bは必ず有効にはしない。これにより、外部メモリ100に格納された平文プログラムは実行されないように制限される。   The input / output control signal generation unit 84 determines which interface of the external I / F 50 is enabled based on the mode ID and jumper determination result output from the mode sequencer 40 and the output of the comparator 85. The determination result is sent to the external input / output mode control unit 54 as an input / output control signal. The external input / output mode control unit 54 enables one of the interfaces according to the received input / output control signal. In addition, when the mode ID indicates the product operation mode, the execution through unit 52b is not necessarily enabled. As a result, the plaintext program stored in the external memory 100 is restricted from being executed.

第1の領域に格納されたプログラムは、アドミニストレータモードや開発モードのデバッグ時は、プログラム処理部51の実行用スルー部52bを介して取り込まれ、鍵生成モード、商品動作モード、または開発モードでデバッグ時以外のときは、プログラム復号用暗号エンジン53を介して取り込まれる。これらのプログラムは実行可能である。一方、第2の領域に格納されたプログラムは、プログラム処理部51の暗号化用スルー部52aを介して取り込まれ、暗号化部2に供給され、暗号化または再暗号化される。これらのプログラムは実行不可能である。   The program stored in the first area is fetched through the execution through unit 52b of the program processing unit 51 and debugged in the key generation mode, the product operation mode, or the development mode when debugging in the administrator mode or the development mode. At other times, the program is taken in via the program decryption cryptographic engine 53. These programs are executable. On the other hand, the program stored in the second area is taken in via the encryption through unit 52a of the program processing unit 51, supplied to the encryption unit 2, and encrypted or re-encrypted. These programs are not executable.

また、第3の領域に格納されたデータは、データ処理部55のデータ暗復号用暗号エンジン58を介して取り込まれ、第4の領域に格納されたデータは、データ処理部55のスルー部56を介して取り込まれる。   Further, the data stored in the third area is taken in via the data encryption / decryption encryption engine 58 of the data processing section 55, and the data stored in the fourth area is stored in the through section 56 of the data processing section 55. Is taken in through.

暗号化用スルー部52aを介して取り込まれたプログラムは、暗号化部2の秘密鍵演算処理部20において暗号化または再暗号化された後、再び暗号化スルー部52aを介して、外部メモリ100の第1の領域に書き込まれる。これにより、以降は実行可能なプログラムとなる。   The program taken in through the encryption through unit 52a is encrypted or re-encrypted in the secret key calculation processing unit 20 of the encryption unit 2, and then again in the external memory 100 through the encryption through unit 52a. Are written in the first area. As a result, the program is executable thereafter.

なお、アドレス区分格納レジスタ81およびモードID格納レジスタ41は、プライベートバス91を介して、データが設定される。すなわち、内部からのアクセスによってデータ設定がなされる。また、このデータ設定は、セキュアLSI1のリセット後、1回のみ実行可能である。   Note that data is set in the address classification storage register 81 and the mode ID storage register 41 via the private bus 91. That is, data is set by access from the inside. This data setting can be executed only once after the secure LSI 1 is reset.

図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 / F 50 and assumes a product operation mode. As shown in FIG. 8, before implementation, the application program encrypted with the shared key is stored in the second area (outside the setting range) of the external memory 100, and therefore cannot be executed as it is. . That is, the application program stored in the second area and encrypted with the shared key is taken into the secure LSI 1 through the encryption through unit 52a at the time of mounting, and is decrypted with the shared key and then unique. The data is re-encrypted with the key and stored again in the first area (within the set range) of the external memory 100 via the encryption through unit 52a. Then, the application program encrypted with the unique key stored in the first area is taken into the secure LSI 1 via the program decryption cryptographic engine 53 and executed.

なお、開発モードでは、次のような動作を行う。まずデバッグ時には、実行したいプログラムを第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 unit 52b. At the time of encryption, the program to be encrypted is written in the second area (outside the setting range). Thus, when the secure LSI 1 is activated, an encryption sequence is executed, encrypted with the shared key, and stored in the external memory 100. At the time of debugging, a program to be re-encrypted is written in the second area (outside the setting range). Furthermore, at the time of encryption debugging, the encryption program to be debugged is written in the first area (within the set range). Thereby, it is decoded and executed.

図9はセキュアメモリ10のアクセス制御を示す図である。図9に示すように、アクセス制御部95は、書き換え不可領域11のアドレスを格納するレジスタ96と、書き換え不可領域書き込みフラグ12のアドレスを記憶するレジスタ97と、書き込み可/不可判定部98とを備えている。レジスタ96,97は、データが一度書き込まれると、フラグ管理などによって、さらなる書き込みができないように構成されている。   FIG. 9 is a diagram showing access control of the secure memory 10. As shown in FIG. 9, the access control unit 95 includes a register 96 that stores the address of the non-rewritable area 11, a register 97 that stores the address of the non-rewritable area write flag 12, and a writable / unusable determination unit 98. I have. The registers 96 and 97 are configured such that once data is written, further writing cannot be performed by flag management or the like.

アクセス制御は、次のように行われる。CPU65からセキュアメモリ10へのアクセスは、必ず、アクセス制御部95を介して実行される。コマンドが「リード」のときは、アクセス先のアドレスが、書き換え不可領域または通常領域のいずれであっても、セキュアメモリ10のデータはプライベートバス91に出力される。一方、コマンドが「ライト」のときは、書き込み可/不可判定部98が、アクセス先のアドレスとレジスタ96に格納されたアドレス、および書き換え不可領域書き込みフラグ12の値を参照して、書き込みを行うか否かを判定する。具体的には、次のような判断を行う。
(フラグ“済” かつ 書き込み不可領域)… 書き込み不可
(フラグ“済” かつ 通常領域) … 書き込み可
(フラグ“未” かつ 書き込み不可領域)… 書き込み可
(フラグ“未” かつ 通常領域) … 書き込み可
Access control is performed as follows. Access from the CPU 65 to the secure memory 10 is always executed via the access control unit 95. When the command is “read”, the data in the secure memory 10 is output to the private bus 91 regardless of whether the access destination address is a non-rewritable area or a normal area. On the other hand, when the command is “write”, the write enable / disable determining unit 98 performs writing with reference to the access destination address, the address stored in the register 96, and the value of the non-rewritable area write flag 12. It is determined whether or not. Specifically, the following determination is made.
(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 secure memory 10. When the non-rewritable area write flag 12 is “completed”, “sector erase” is accepted for the normal area but not for the non-writable area. Also, “chip erase” is not accepted.

また、コンテンツ(データ)の再生においても、次のような方法を採用することによって、セキュリティを向上させている。   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 external RAM 102. When placed in the fourth area, the data is either encrypted with a data shared key (different from the program shared key) or in plain text. For this reason, there is a possibility of unauthorized use by other LSIs, and there is a problem in terms of security.

この問題を解決するために、不正利用を特に防止したい映像や音楽等のコンテンツについては、コンテンツを再生するプログラムを、外部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 external RAM 102 can be played back. Create as follows. The data placed in the third area is decrypted by the data encryption / decryption encryption engine 58 when taken into the secure LSI. Since the data unique key used in this decryption is created by a unique ID and a random number, it differs not only for each secure LSI 1 but also for each activation. Therefore, the data is less likely to be illegally used, and security is improved. Since the program for reproducing the content is also encrypted with the unique key, it is considered that the program is difficult to be tampered with.

図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 secure memory 10 is stored in the secret key calculation processing unit 20. Set in the encryption key storage register. Then, the encrypted program unique key is decrypted using the installed program encryption type to obtain the program unique key. The obtained program unique key is set in the program unique key storage register of the program decryption cryptographic engine 53 of the external I / F 50. Thereafter, the data unique ID stored in the unwritable area 11 of the secure memory 10 is set in the unique ID storage register of the secret key calculation processing unit 20. In addition, a random number is generated by the CPU 65 and set in a random number storage register of the secret key calculation processing unit 20. Then, the secret key calculation processing unit 20 generates a data unique key from the data unique ID and the random number. The generated data unique key is set in the data unique key storage register of the data encryption / decryption encryption engine 58 of the external I / F 50.

その後、図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 program processing unit 51 of the external I / F 50. The decryption is performed via the cryptographic engine 53, the data is taken into the HASH calculation unit 70, and the HASH value is calculated. Then, the calculated HASH value is compared with the HASH value stored in the normal area 13 of the secure memory 10 to check whether the application program has been tampered with. When the HASH values match, the process is shifted to the application program Enc (application program, program unique key) stored in the external memory 100, and the application is executed. If the HASH values do not match, it is estimated that some kind of fraud has been performed, and processing by the unauthorized access time control is executed.

アプリケーションプログラムは、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 CPU 65. That is, since the CPU 65 in the secure LSI 1 performs access control as a master, the subsequent operation is internal access, and therefore the external access address determination unit 83 is not involved. The content (original content) encrypted with the data sharing key is taken into the secure LSI 1 from the fourth area (non-reproducible area) of the external RAM 102 by the application program. The captured content is decrypted by the secret key calculation processing unit 20 using the data shared key written in the secure memory 10. Thereafter, the data is encrypted with the data unique key via the data encryption / decryption encryption engine 58 in the data processing unit 55 of the external I / F 50 and written to the third area (reproducible area) of the external RAM 102. Thereafter, the content encrypted with this data unique key can be played back, and when played back, it is decrypted with the data unique key via the data encryption / decryption encryption engine 58 in the data processing unit 55 of the external I / F 50. 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 Encryption unit 10 Secure memory 11 Non-rewritable area 20 Secret key operation processing unit (encryption operation unit)
30 Key generation / update sequencer (encryption controller)
31 Mode ID storage register 33 Sequence issue count storage register 35 Storage unit 40 Mode sequencer 41 Mode ID storage register 45 Jumper value determination unit 50 External interface 51 Program processing unit 52 Through unit 52a Execution through unit 52b Encryption through unit 53 Program Decryption encryption engine 55 Data processing unit 56 Through unit 58 Data encryption / decryption encryption engine 60 Boot ROM
81 Address division storage register 82 Common bus address storage unit 83 External access address determination unit 100 External memory

Claims (2)

外部メモリに格納されたコンテンツを、LSIを用いて再生するコンテンツ再生方法であって、
前記外部メモリは、平文のコンテンツを格納する第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.
外部メモリに格納されたコンテンツを、LSIを用いて再生するコンテンツ再生方法であって、A content playback method for playing back content stored in an external memory using an LSI,
前記外部メモリは、共有鍵を用いて暗号化されたコンテンツを格納する第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.
JP2009112470A 2009-05-07 2009-05-07 Content playback method Expired - Lifetime JP4580024B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6441947A (en) * 1987-08-07 1989-02-14 Hitachi Ltd Semiconductor integrated circuit

Patent Citations (5)

* Cited by examiner, † Cited by third party
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