JP5601382B2 - 組み込み機器における情報処理装置、情報処理方法及び情報処理プログラム - Google Patents

組み込み機器における情報処理装置、情報処理方法及び情報処理プログラム Download PDF

Info

Publication number
JP5601382B2
JP5601382B2 JP2012556699A JP2012556699A JP5601382B2 JP 5601382 B2 JP5601382 B2 JP 5601382B2 JP 2012556699 A JP2012556699 A JP 2012556699A JP 2012556699 A JP2012556699 A JP 2012556699A JP 5601382 B2 JP5601382 B2 JP 5601382B2
Authority
JP
Japan
Prior art keywords
value
unit
encryption
encryption key
encrypted
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 - Fee Related
Application number
JP2012556699A
Other languages
English (en)
Other versions
JPWO2012108016A1 (ja
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2012108016A1 publication Critical patent/JPWO2012108016A1/ja
Application granted granted Critical
Publication of JP5601382B2 publication Critical patent/JP5601382B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/633Control signals issued by server directed to the network components or client
    • H04N21/6332Control signals issued by server directed to the network components or client directed to client
    • H04N21/6334Control signals issued by server directed to the network components or client directed to client for authorisation, e.g. by transmitting a key
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2347Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving video stream encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4405Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video stream decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/835Generation of protective data, e.g. certificates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/101Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities
    • G06F21/1014Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to tokens
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

本発明は、組み込み機器における情報処理装置、情報処理方法及び情報処理プログラムに関する。特に秘匿データを管理する小規模な管理ユニットであって、MPUとフラッシュメモリを有するものに関する。またこのような暗号化方法を内蔵したMPUに関する。
従来、秘匿するべき情報をフラッシュメモリ等の不揮発性メモリに格納する際、これを暗号化し、暗号化した情報を格納することで、不揮発性メモリに格納された情報の悪意による解析を困難にする技術が知られている。このような技術の一例として、著作権によって保護される動画などのAV(Audio Video)データの管理ユニットにおいて、暗号鍵や複製可能な回数等の管理情報を暗号化し、暗号化した管理情報を不揮発性メモリに格納する技術が知られている。
図10は、暗号化した管理情報を不揮発性メモリに格納するMPUを説明するための図である。図10に示す例では、管理ユニットのMPUは、管理ユニット固有の暗号鍵を用いて情報を暗号化する暗号化部と、暗号化された情報を復号化する復号部とを有する。なお、これらの暗号化部や復号部は、論理回路またはプログラムによりMPU内部に構成するものとする。また、MPUは、管理情報を格納するためのフラッシュメモリと接続されている。
このようなMPUは、管理情報をフラッシュメモリに格納する場合には、暗号化部を用いて、管理情報を暗号化し、暗号化した管理情報をフラッシュメモリに格納する。また、MPUは、復号部を用いて、フラッシュメモリに格納された管理情報を復号化する。また、MPUは、復号化した管理情報から暗号鍵(復号鍵)を取得し、この鍵を使って、別に取得した暗号化済AVデータを復号する。その後、MPUは、通信I/F(Interface)を介して、復号化したAVデータをPC(Personal Computer)やSTB(Set Top Box)等の本体に送信する。
特開2000−341632号公報 特開平07−225551号公報
しかし、上述した暗号化した管理情報をフラッシュメモリ等の不揮発性メモリに格納する技術では、暗号化した管理情報をそのまま不揮発性メモリに格納する。このため、暗号化前の管理情報を容易に推定することができる場合には、攻撃者は、暗号化前の管理情報と、暗号化後の管理情報とを用いて、全数攻撃により暗号鍵を取得することができる。結果として、耐タンパー性を満たせないという問題があった。
図11は、AVデータの管理情報の一例を説明するための図である。図11に示す例では、管理情報は、複数の格納領域を有し、各格納領域には、2byteの管理番号、4byteの管理ID、2byteの許可フラグ、1byteのコピー回数、3byteの有効期限、36byteの名前、16byteの暗号鍵が格納される。ここで、管理情報に格納される暗号鍵とは、管理対象であるAVデータを復号化するための復号(暗号)鍵である。
例えば、MPUは、不揮発性メモリのデータを初期化する場合には、管理情報の各格納領域に「0」を格納した初期値を生成する。そして、MPUは、生成した初期データを暗号化し、暗号化した初期データをそのまま不揮発性メモリに格納する。このため、不揮発性メモリに格納された管理情報を解析しようとする攻撃者は、不揮発性メモリのデータを初期化し、不揮発性メモリのデータを解析した場合には、全ての格納領域に「0」が格納された初期値を暗号化した値を取得することができる。
ここで、攻撃者は、不揮発性メモリのデータを初期化した際に、各格納領域に「0」が格納された管理情報が初期値として生成されることを容易に推定できる。このため、攻撃者は、推定された初期値と、初期値を暗号化した値とを用いて、暗号鍵を解析するための全数攻撃を行うことができる。つまり、攻撃者は、初期値のように推定が容易な管理情報を暗号化した値が不揮発性メモリに格納されていた場合には、管理情報を暗号化する暗号鍵の解析を容易に行う事ができる。
このように、MPUが暗号化した管理情報をそのまま不揮発性メモリに格納した場合には、管理情報を暗号化するための暗号鍵の解析が容易となるので、耐タンパー性を悪化させてしまう。結果として、管理情報を暗号化する暗号鍵の解析を容易にし、耐タンパー性を悪化させてしまう。
本願に開示の技術は、一側面では、暗号鍵の解析を困難にし、耐タンパー性を改善する。
一側面では、本発明の情報処理装置は、外部から入力された秘匿する値、または、暗号化された値を格納する記憶装置の初期化時に書込まれる初期値を所定の暗号鍵を用いて暗号化する暗号化部と、前記暗号化部が用いる暗号鍵と同一の暗号鍵を用いて前記初期値を暗号化した値と、前記暗号化部によって暗号化された値との排他的論理和を算出する算出部と、前記算出部によって変換された値を前記記憶装置に格納する格納部と、前記記憶装置に格納された値を読出し、前記暗号化部が用いる暗号鍵と同一の暗号鍵を用いて前記初期値を暗号化した値と、前記記憶装置から読出した値との排他的論理和を算出し、前記暗号化部によって用いられた暗号鍵と同一の暗号鍵を用いて、該算出した排他的論理和の値を復号する復号部と、を有する。
本願に開示の技術は、一つの態様によれば、暗号鍵の解析を困難にし、耐タンパー性を改善する。
図1は、実施例1に係るMPUを説明するための図である。 図2は、実施例1に係るフラッシュメモリに格納されるデータの一例を説明するための図である。 図3は、従来のフラッシュメモリに格納される初期データを説明するための図である。 図4は、従来のMPUが管理情報を操作する単位を説明するための図である。 図5は、従来のフラッシュメモリに格納されるデータの一例を説明するための図である。 図6は、従来のセキュアユニットの一例を説明するためのシーケンス図である。 図7は、従来のセキュアユニットがフラッシュメモリに格納した管理情報の一例を説明するための図である。 図8は、実施例2に係るMPUを説明するための図である。 図9は、情報処理プログラムを実行するLSIの一例を説明するための図である。 図10は、暗号化した管理情報を不揮発性メモリに格納するMPUを説明するための図である。 図11は、AVデータの管理情報の一例を説明するための図である。
以下に添付図面を参照して本願に係る情報処理装置、情報処理方法及び情報処理プログラムについて説明する。
以下の実施例1では、図1を用いて、著作権で保護された動画等のAVデータに係る管理情報を管理するMPUの一例を説明する。図1は、実施例1に係るMPUを説明するための図である。なおMPU1は、例えば、暗号化されたAVデータの復号化を行うセキュアユニットや小さな組み込みユニット等に設置されるMPUであるものとする。
また、フラッシュメモリに保存される管理情報には、AVデータの暗号化や復号化を行うための暗号鍵、AVデータの名称、AVデータを複製することができる許可回数等の情報が格納されているものとする。例えば、管理情報は、AVデータに係る管理番号、AVデータに係る管理ID、複製許可フラグ、AVデータを複製することができる許可回数、有効期限、AVデータの名前、AVデータを復号化するための暗号鍵等をレコードとして有する。
図1に示すように、MPU1は、CPU(Central Processing Unit)処理ユニット2、通信I/F(Interface)3、レジスタ4、メモリ5、ROM(Read Only Memory)6を有する。また、MPU1は、第1暗号化部7、初期データ生成部8、第2暗号化部9、第1XOR算出部10、第2XOR算出部11、復号部12を有する。また、MPU1は、外部のフラッシュメモリ20と接続される。
通信I/F3は、AVデータの再生を行うPC(Personal Computer)やSTB(Set Top Box)とAVデータの送受信を行うインターフェースであり、PCI(Peripheral Component Interconnect)バスやUSB(Universal Serial Bus)等が適用される。また、通信I/F3は、公開鍵暗号方式等を用いて、AVデータに係る管理情報を管理するサーバと通信し、AVデータに係る管理情報を受信する。
レジスタ4は、CPU処理ユニット2が用いる一時記憶装置である。また、メモリ5は、CPU処理ユニット2が用いるメモリである。また、ROM6は、CPU処理ユニット2が実行する処理のプログラムが格納されている。
CPU処理ユニット2は、AVデータの管理情報を管理する。具体的には、CPU処理ユニット2は、通信I/F3を介して、AVデータを復号するための暗号鍵等の管理情報を取得した場合には、取得した管理情報を第1暗号化部7へ送信する。また、CPU処理ユニット2は、取得した管理情報を格納するフラッシュメモリ20のメモリアドレスを第1暗号化部7に送信する。また、CPU処理ユニット2は、初期データを生成させるトリガ信号を初期データ生成部8に送信する。
また、CPU処理ユニット2は、通信I/F3を介して、STB等からコンテンツIDと暗号化されたコンテンツとを受信した場合には、管理情報の取得要求と受信したコンテンツIDが示す管理情報が格納されたメモリアドレスを復号部12へ送信する。また、CPU処理ユニット2は、初期データを生成させるトリガ信号を初期データ生成部8へ送信する。その後、CPU処理ユニット2は、第2XOR算出部11および復号部12を介して、復号された管理情報を受信した場合には、受信した管理情報を用いて、受信したコンテンツを復号化する。その後、CPU処理ユニット2は、通信I/F3を介して、複合化したコンテンツをPCやSTBへ送信する。
また、CPU処理ユニット2は、通信I/F3を介して、初期化する管理情報が通知された場合には、管理情報の初期値である初期データを生成する。また、CPU処理ユニット2は、通知された情報が示す管理情報が格納されたフラッシュメモリ20のメモリアドレスを判別する。そして、CPU処理ユニット2は、生成した初期データと判別したメモリアドレスとを第1暗号化部7へ送信する。また、CPU処理ユニット2は、初期データを生成させるトリガ信号を初期データ生成部8に送信する。
例えば、CPU処理ユニット2は、初期化する管理情報が格納されたメモリアドレスとして「0x00」、「0x8」、「0x10」を判別する。また、CPU処理ユニット2は、フラッシュメモリ20のメモリアドレス「0x00」に格納する初期データとして、16進数のデータ「E0、00、00、00、00、00、00、00」を生成する。
また、CPU処理ユニット2は、フラッシュメモリ20のメモリアドレス「0x08」と「0x10」に格納する初期データとして、16進数のデータ「00、00、00、00、00、00、00、00」を生成する。そして、CPU処理ユニット2は、判別したメモリアドレスと、各メモリアドレスに格納される初期データとを第1暗号化部7へ送信する。
第1暗号化部7は、秘匿する情報を所定の暗号鍵を用いて暗号化する。具体的には、第1暗号化部7は、CPU処理ユニット2からAVデータの管理情報とフラッシュメモリ20のメモリアドレスとを取得する。すると、第1暗号化部7は、所定の暗号鍵を用いて、取得したAVデータの管理情報を暗号化する。その後、第1暗号化部7は、暗号化した管理情報と取得したメモリアドレスとを第1XOR算出部10へ送信する。
同様に、第1暗号化部7は、CPU処理ユニット2から初期データを受信した場合には、所定の暗号鍵を用いて、受信した初期データを暗号化する。そして、第1暗号化部7は、暗号化した初期データを第1XOR算出部10へ送信する。
ここで、第1暗号化部7が用いる暗号鍵については、任意の方式および任意の長さの暗号鍵が適用される。以下の説明では、第1暗号化部7は、MULTI2やCAST−128などの8バイトをブロック長とする暗号方式を用いて、ECB(Electronic CodeBook)モードで管理情報および初期データの暗号化を行うものとする。なお、暗号鍵の方式及び暗号鍵の長さ、処理モードについては、これに限定されるものではない。
例えば、第1暗号化部7は、CPU処理ユニット2から、メモリアドレス「0x00」に格納する初期データとして、「E0、00、00、00、00、00、00、00」を取得する。このような場合には、第1暗号化部7は、取得した初期データ「E0、00、00、00、00、00、00、00」をECBモードで8byteごとに暗号化したデータ「1201、04AF、98A3、31B3」を算出する。
また、第1暗号化部7は、メモリアドレス「0x08」、「0x10」に格納する初期データ「00、00、00、00、00、00、00、00」を取得する。このような場合には、第1暗号化部7は、取得した「00、00、00、00、00、00、00、00」を暗号化したデータ「1934、A41C、1298、B013」を算出する。
その後、第1暗号化部7は、取得したメモリアドレス「0x00」、「0x08」、「0x10」と、算出したデータ「1201、04AF、98A3、31B3」、「1934、A41C、1298、B013」を第1XOR算出部10へ送信する。
初期データ生成部8は、初期データを生成し、生成した初期データを第2暗号化部9へ送信する。具体的には、初期データ生成部8は、CPU処理ユニット2から初期データを生成させるトリガ信号を受信した場合には、初期データを生成し、生成した初期データを第2暗号化部9へ送信する。
例えば、初期データ生成部8は、フラッシュメモリの各メモリアドレスに格納する初期データとして、16進数のデータ「00、00、00、00、00、00、00、00」を作成する。そして、初期データ生成部8は、生成した初期データと受信したメモリアドレスとを第2暗号化部9へ送信する。
第2暗号化部9は、第1暗号化部7が用いる暗号鍵と同一の暗号鍵を用いて、初期データを暗号化し、暗号化した初期データを第1XOR算出部10および第2XOR算出部11へ送信する。具体的には、第2暗号化部9は、初期データ生成部8から初期データを受信した場合には、第1暗号化部7が用いる暗号鍵と同一の暗号鍵を用いて、受信した初期データを暗号化する。その後、第2暗号化部9は、暗号化した初期データを第1XOR算出部10および第2XOR算出部11に送信する。
例えば、第2暗号化部9は、初期データ生成部8から、初期データとして、「00、00、00、00、00、00、00、00」を受信する。このような場合には、第2暗号化部9は、第1暗号化部7と同一の暗号鍵を用いて、受信した各初期データを暗号化する。
つまり、第2暗号化部9は、取得した「00、00、00、00、00、00、00、00」を暗号化したデータ「1934、A41C、1298、B013」を算出する。その後、第2暗号化部9は、算出したデータ「1934、A41C、1298、B013」を第1XOR算出部10および第2XOR算出部11へ送信する。
第1XOR算出部10は、第1暗号化部7によって暗号化された情報を加工し、第1暗号化部7が用いた暗号鍵に依存しない情報であって、かかる暗号鍵に依存しない情報から第1暗号化部7によって暗号化された情報に逆変換可能な情報に変換する。そして、第1XOR算出部10は、変換した情報をフラッシュメモリ20に格納する。
具体的には、第1XOR算出部10は、第1暗号化部7から暗号化された管理情報と管理情報を格納するメモリアドレスとを取得する。また、第1XOR算出部10は、第2暗号化部9から暗号化された初期データを取得する。そして、第1XOR算出部10は、暗号化された管理情報と暗号化された初期データとの排他的論理和を取った情報を算出する。その後、第1XOR算出部10は、フラッシュメモリ20が有する記憶領域のうち、取得したメモリアドレスに算出した値を格納する。
図2は、実施例1に係るフラッシュメモリに格納されるデータの一例を説明するための図である。例えば、図2に示す例では、第1XOR算出部10は、第1暗号化部7の暗号結果として、メモリアドレス「0x00」に格納する管理情報の暗号結果「1201、04AF、98A3、31B3」を受信する。また、第1XOR算出部10は、第1暗号化部7の暗号結果として、メモリアドレス「0x08」、「0x10」に格納する管理情報の暗号結果「1934、A41C、1298、B013」を受信する。
また、第1XOR算出部10は、第2暗号化部9から、暗号化された初期データ「1934、A41C、1298、B013」を受信する。そして、第1XOR算出部10は、第1暗号化部7によって暗号化された各メモリアドレスに格納する管理情報と、第2暗号化部9によって暗号化された初期データとの排他的論理和をビットごとに取った情報を算出する。
この結果、第1XOR算出部10は、メモリアドレス「0x00」に格納するメモリデータとして、「0B35、A0B3、8A3B、81A0」を算出する。そして、第1XOR算出部10は、算出したデータ「0B35、A0B3、8A3B、81A0」をフラッシュメモリ20のメモリアドレス「0x00」に格納する。
また、第1XOR算出部10は、メモリアドレス「0x08」、「0x10」に格納するメモリデータとして、「0000、0000、0000、0000」を算出する。そして、第1XOR算出部10は、算出したデータ「0000、0000、0000、0000」をフラッシュメモリ20のメモリアドレス「0x08」、「0x10」に格納する。
このように、第1XOR算出部10は、MPU1が管理情報の初期化を行う場合には、第1暗号化部7が初期データを所定の暗号鍵で暗号化した値を取得する。また、第1XOR算出部10は、MPU1が管理情報の初期化を行う場合には、第2暗号化部9が初期データを第1暗号化部7が用いる暗号鍵と同一の暗号鍵を用いて暗号化した値を取得する。そして、第1XOR算出部10は、第1暗号化部7および第2暗号化部9から取得した情報の排他的論理和を取った情報を算出し、算出した値をフラッシュメモリ20に格納する。
この結果、第1XOR算出部10は、第1暗号化部7および第2暗号化部9から取得した情報同士の排他的論理和を取った場合には、管理情報と同じビット数の情報であって、全てのビットが「0」の情報を算出することとなる。つまり、第1XOR算出部10は、同じ暗号鍵を用いて暗号化した初期データ同士の排他的論理和を算出することによって、暗号鍵に依存しない情報を算出する。このため、第1XOR算出部10は、初期データを暗号化した値ではなく、管理情報と同じビット数の情報であって、全てのビットが「0」の情報をフラッシュメモリ20の初期化するメモリアドレスに格納する。
このような場合には、攻撃者は、フラッシュメモリ20を解析した際に、従来技術における暗号化された初期データを取得することができない。このため、攻撃者は、暗号化する前の初期データを容易に推定できる場合であっても、それに対応する暗号化された初期データを取得することができないので、管理情報を暗号化する暗号鍵を全数攻撃により解析することがきわめて困難である。
また、初期データ以外の部分については、暗号化前の情報を推定することは難しい。このため、攻撃者は、初期データ以外の部分について暗号化された情報を用いて、暗号鍵を全数攻撃により解析できないと考えられる。結果として、MPU1は、フラッシュメモリ20に格納された管理情報の解析を困難にし、耐タンパー性を向上させることができる。
一方、従来技術を実装したMPU(以下、従来のMPUと称する)は、暗号化した値をそのままフラッシュメモリに格納する。このため、従来のMPUは、物理的に厳密にタンパーフリーに構成しない限り、外付けされたフラッシュメモリから攻撃者が暗号化後の値を取得することを防ぐことができない。
以下、このような従来のMPUについての詳細を説明する。例えば、図3は、従来のフラッシュメモリに格納される初期データを説明するための図である。図3に示す例では、初期データとして、全ての格納領域に「all_0」を示す情報が格納されている。従来のMPUは、このような管理情報を十分に秘匿するため、各管理情報の「all_0」を暗号化した値をフラッシュメモリに格納する。
ここで、上記の説明では、従来のMPUが便宜上ECBモードを使う例を説明したが、暗号技術においては、特に初期データのような典型的なデータに対する暗号の強度を高める方法としてECBでなくCBC(Cipher Block Chaining)などのモードを使うことが知られている。これは、あるブロックの暗号結果が直前のブロックのデータや暗号結果に依存するようにするものである。
図4は、従来のMPUが管理情報を操作する単位を説明するための図である。図4に示す例では、管理情報2の暗号は、CBCモードを適用した場合には、直前のデータである管理情報1に依存することになる。
実際には、AVデータの再生や複製に伴って、複製許可回数を減らすなど管理情報を更新することがある。たとえば管理情報1に対応するAVデータをダビングしたとき、ダビング許可回数を1だけ減じるごとくである。この場合、管理情報1を更新する必要があり、その結果管理情報2、したがって管理情報3も再暗号化しなくてはならなくなる。これは好ましくない実装である。
そこで、管理情報の暗号鍵を、管理番号ごとに異なるようにする方法がある。例えば、MPUがもつ暗号鍵に管理情報を書き込むメモリアドレスを組み合わせるなどである。図4に示す例では、管理番号ごとに個別の暗号鍵を用いる例を示した。この方法によれば、「all_0」のような初期データに対する暗号結果は管理番号により変化する。
しかしながら、特定の管理番号ないしメモリアドレスについては、特定の暗号鍵を使っていることは同様である。特定の管理番号に注目して攻撃する場合には、その初期データ(「all_0」など)と、その管理番号に対する暗号鍵で暗号化した結果が得られるので、これを用いてその管理番号に対する暗号鍵を推定する全数攻撃が可能となる。
このように従来のMPUは、管理情報を暗号化してフラッシュメモリに格納するものの、物理的に厳密にタンパーフリーに構成しない限り、外付けされたフラッシュメモリから攻撃者が暗号化後の値を取得することを防ぐことができない。結果、容易に推定できる値を暗号化してフラッシュメモリに格納した場合には、攻撃者は、推定し易い値に係る暗号化前の値と暗号化後の値とを取得することができ、容易に全数攻撃を行う事ができる。
例えば、従来のMPUは、図5に示すように、CPUからみた値のデータとして、初期データ「E5、00、00、00、00、00、00、00」を暗号化した値「1201、04AF、98A3、31B3」をメモリアドレス「0x00」に格納する。また、従来のMPUは、CPUからみた値のデータとして、初期データ「00、00、00、00、00、00、00、00」を暗号化した値「1934、A41C、1298、B013」をメモリアドレス「0x08」、「0x10」に格納する。図5は、従来のフラッシュメモリに格納されるデータの一例を説明するための図である。
このため、攻撃者は、フラッシュメモリを解析することによって、「1934、A41C、1298、B013」が初期データ「00、00、00、00、00、00、00、00」を暗号化した値であると推定することができる。結果として、攻撃者は、推定される初期データ「00、00、00、00、00、00、00、00」と取得した値「1934、A41C、1298、B013」から、暗号鍵の全数攻撃を容易に行う事ができる。結果、従来の技術は、耐タンパー性の問題がある。
また、従来の技術は、暗号化した初期データをそのままフラッシュメモリに格納するので、長い鍵長を有する暗号鍵や、強固な暗号方式を採用したとしても、暗号化された初期データが攻撃者に取得された場合には、暗号鍵の全数攻撃を可能としてしまう。つまり、従来のMPUは、暗号鍵方式等によらず、全数攻撃を防げないという問題があった。
一方、本発明のMPU1は、暗号方式や暗号鍵の長さによらず、暗号化後に保存した初期データを暗号鍵によらない値とすることができる。このため、全数攻撃によっても、攻撃者による暗号鍵の推定をきわめて困難とする。これにより耐タンパー性を向上させることができる。
図1に戻って、第2XOR算出部11は、第1暗号化部7が用いる暗号鍵と同一の暗号鍵を用いて暗号化した値と、第1XOR算出部10によってフラッシュメモリ20に格納された情報との排他的論理和を取った情報を算出する。そして、第2XOR算出部11は、算出した値を復号部12へ送信する。
具体的には、第2XOR算出部11は、復号部12からフラッシュメモリ20のメモリアドレスを取得した場合には、フラッシュメモリ20に格納された情報のうち、取得したメモリアドレスに格納された情報を取得する。つまり、第2XOR算出部11は、第1暗号化部7によって暗号化された管理情報と、第2暗号化部9によって暗号化された初期データとの排他的論理和を取った情報を取得する。
また、第2XOR算出部11は、第2暗号化部9が第1暗号化部7が用いた暗号鍵と同一の暗号鍵で暗号化された初期データを取得する。そして、第2XOR算出部11は、フラッシュメモリ20から取得した情報と第2暗号化部9から取得した情報との排他的論理和を取った情報を算出する。
つまり、第2XOR算出部11は、暗号化された管理情報と暗号化された初期データとの排他的論理和に対して、さらに暗号化された初期データとの排他的論理和を取った情報を算出する。この結果、第2XOR算出部11は、第1暗号化部7によって暗号化された管理情報を算出する。その後、第2XOR算出部11は、算出した値、つまり、第1暗号化部7によって暗号化された管理情報と同じ情報を復号部12へ送信する。
復号部12は、第1暗号化部7が用いた暗号鍵と同一の暗号鍵を用いて、第2XOR算出部11によって算出された情報を復号する。具体的には、復号部12は、CPU処理ユニット2からフラッシュメモリ20のメモリアドレスを受信した場合には、受信したメモリアドレスを第2XOR算出部11に通知する。そして、復号部12は、第2XOR算出部11から、通知したメモリアドレスに格納された情報と第2暗号化部9によって暗号化された初期データとの排他的論理和を取った情報を受信する。
つまり、復号部12は、第2XOR算出部11から、第1暗号化部7によって暗号化された管理情報を取得する。そして、復号部12は、第1暗号化部7によって用いられた暗号鍵を用いて、暗号化された管理情報を復号する。
例えば、復号部12は、第2XOR算出部11によって算出された情報「1201、04AF、98A3、31B3」を復号した場合には、「E5、00、00、00、00、00、00、00」を取得する。そして、復号部12は、取得した「E5、00、00、00、00、00、00、00」をCPU処理ユニット2に送信する。
また、復号部12は、第2XOR算出部11によって算出された情報「1934、A41C、1298、B013」を復号した場合には、「00、00、00、00、00、00、00、00」を取得する。そして、復号部12は、取得した「00、00、00、00、00、00、00、00」をCPU処理ユニット2に送信する。
このように、第2XOR算出部11は、フラッシュメモリ20に格納された管理情報を取得する場合には、フラッシュメモリ20に格納された情報と初期データを暗号化した値との排他的論理和を取った情報を算出する。そして、復号部12は、第2XOR算出部11によって算出された情報を復号する。このため、MPU1は、フラッシュメモリ20に格納された情報を、正確に復号することができる。
また、MPU1は、CPU処理ユニット2とフラッシュメモリ20とを接続する回路上に各部7〜12を有する。このため、MPU1は、フラッシュメモリ20に暗号化された情報が格納されていることを考慮したプログラムをCPU処理ユニット2に実行させずとも、適切に動作することができる。
例えば、通信I/F3、CPU処理ユニット2、第1暗号化部7、初期データ生成部8、第2暗号化部9、第1XOR算出部10、第2XOR算出部11、復号部12とは、電子回路である。ここで、電子回路の例として、ASIC(Application Specific Integrated Circuit)やFPGA (Field Programmable Gate Array)などの集積回路、またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)などを適用する。また、各部7〜12は、PLA(Programmable Logic Array)やゲートアレイなどの論理回路を適用してもよい。
このように、MPU1は、フラッシュメモリ20に暗号化された情報を格納する場合には、情報を暗号化した暗号鍵と同一の暗号鍵で暗号化した初期データとの排他的論理和を算出し、算出した排他的論理和をフラッシュメモリ20に格納する。このため、MPU1は、フラッシュメモリ20に初期データを格納する場合には、すべてのビットが「0」の情報をフラッシュメモリ20に格納するので、攻撃者に初期データに対応する暗号結果を秘匿することができる。これにより、この方式では攻撃者が全数攻撃を用いて、情報を暗号化する暗号鍵を算出することを防ぎ、高タンパー性を改善することができる。
次に、図を用いて、著作権によって保護されるAVデータを暗号化して配信するサーバから、AVデータを復号するための暗号鍵を受信し、受信した暗号鍵を管理するセキュアユニットにMPU1を適用する例について説明する。
図6は、セキュアユニットの一例を説明するためのシーケンス図である。図6に示す例では、サーバ30は、公開鍵暗号方式に基づく秘密鍵KHSと公開鍵KPSを有する。また、セキュアニット50は、ユニットごとに固有の秘密鍵KH1と公開鍵KP1を有する。また、図6に示す例では、セキュアユニット50は、MPU1を有し、MPU1を用いて、暗号化した値をフラッシュメモリに格納するものとする。
図6に示す例では、AVデータをサーバ30から受信する受信機40が、購入するAVデータをコンテンツIDにより指定する(ステップS1)。すると、サーバ30は、ユーザの認証や課金処理を行うとともに、自己の公開鍵であるKPSとセキュアユニット50が有する認証データの要求とをセキュアユニット50に要求する(ステップS2)。
次に、セキュアユニット50は、KP1と認証データとをKPSで暗号化し、暗号化したKP1と認証データとをサーバ30へ送信する(ステップS3)。サーバ30は、暗号化した認証データを復号化し、認証データを検証する(ステップS4)。次に、サーバ30は、コンテンツの暗号鍵CKを生成し、要求されたコンテンツのコンテンツIDとともに生成したCKをKP1で暗号化してセキュアユニット50へ送信する(ステップS5)。
次に、セキュアユニット50は、コンテンツIDとCKとを取得した場合には、MPU1を用いて、取得したコンテンツIDとCKとを暗号化する(ステップS6)。そして、セキュアユニット50は、MPU1を用いて、セキュアユニットごとに固有の暗号鍵で暗号化したコンテンツIDと暗号化したCKとを含む管理情報をフラッシュメモリに格納する(ステップS7)。ここでは管理情報の暗号方式としてAES(128ビット)を用いており、そのことが知られているとする。
また、サーバ30は、CKで暗号化したコンテンツを受信機40に送信する(ステップS8)。すると、受信機40は、受信したコンテンツを自装置のHDD(Hard Disk Drive)等に保存する(ステップS9)。なお、受信機40が受信したコンテンツは、セキュアユニット50に送信されたCKによって暗号化されており、CKはセキュアユニット50のみに存在するため、セキュアユニット50なしではコンテンツを復号できない。
受信機40は、受信したコンテンツを再生する場合には、CKによって暗号化されたコンテンツを読み出すとともに(ステップS10)、セキュアユニット50にコンテンツIDを指定して、暗号化されたコンテンツの復号を要求する(ステップS11)。すると、セキュアユニット50は、コンテンツIDを手掛かりに用いて、フラッシュメモリに格納されたCKを読み出して復号し、このCKを用いて、暗号化されたコンテンツを復号する。
また、セキュアユニット50は、ランダムな乱数EKを生成し、生成したEKを用いてコンテンツを暗号化し、暗号化したコンテンツと受信機40のAV出力部が持つ公開鍵KPDで暗号化したEKを受信機40へ返信する(ステップS12)。その後、受信機40のAV出力部分は秘密鍵KHDによって、EKを復号し、生成したEKを用いて受信したコンテンツを復号し、内部解析を困難にしつつ、復号したコンテンツの映像出力を行う(ステップS13)。
このようなシステムにおいて、攻撃者は、コンテンツの複製や不正利用を行おうとする場合には、セキュアユニット50によってフラッシュメモリに格納された情報を解析し、CKを解読しようとする。例えば、セキュアユニット50がMPU1ではなく、従来のMPUを用いてコンテンツを暗号化したCKを一つだけ保存した場合には、フラッシュメモリに、図7に示すデータを格納する。なお、図7は、従来のセキュアユニットがフラッシュメモリに格納した管理情報の一例を説明するための図である。
ここで、図7に示すデータにおいて「12、C1、D9、11、02、A0、98、99、25、C1、8C、93、43、12、47、10」という情報が反復している。このため、攻撃者は、この反復している情報が、初期データとしてよく使われる「all 0」を16byteの暗号鍵で暗号化したものだと容易に仮定することができる。
すると、攻撃者は、「all 0」をAES−128bitで暗号化した際に、この反復したデータを算出する暗号鍵を検索するだけで、フラッシュメモリに格納されたCKを取得することができると考えられる。また、攻撃者は、「all 0」を様々な暗号鍵で暗号化した辞書を用いることによって、容易に暗号鍵を算出することができると考えられる。
一方、図6に示したシステムにおいて、セキュアユニット50に実施例1に係るMPU1を適用した場合には、図7中の反復する情報、つまり、初期データを暗号化した値の部分には、暗号鍵に依存しない情報、つまり「0」が格納される。このため、攻撃者は、初期データの推定が容易な場合にも、暗号化された初期データを取得することができず、CKを暗号化した暗号鍵を全数攻撃により算出することができない。結果として、MPU1は、耐タンパー性を向上させることができる。
[実施例1の効果]
上述したように、MPU1は、管理情報を所定の暗号鍵を用いて暗号化する。そして、MPU1は、秘匿する値がフラッシュメモリ20の初期化時に書込まれる初期データである場合には、暗号化された管理情報を、逆変換可能であって、暗号鍵に依存しない情報になるように変換する。その後、MPU1は、変換した情報をフラッシュメモリ20に格納する。つまり、MPU1は、管理情報を暗号化した際に用いた暗号鍵と一対一で対応しない情報をフラッシュメモリ20に格納する。
このため、MPU1は、暗号化した管理情報の初期データを攻撃者から秘匿することができる。結果として、MPU1は、攻撃者が全数攻撃を用いて暗号鍵を解析する処理を事実上不可能にし、僅かなコストで耐タンパー性を向上させることができる。
また、MPU1は、第1暗号化部7が所定の暗号鍵を用いて暗号化した管理情報と、第2暗号化部9が第1暗号化部7と同一の暗号鍵を用いて暗号化した所定の情報との排他的論理和を取った情報をフラッシュメモリ20に格納する。このため、MPU1は、暗号化された管理情報を容易に秘匿することができる。
つまり、暗号化された管理情報を秘匿する方法として、第1暗号化部7が管理情報を暗号化した値を監視し、推定が容易な管理情報を暗号化した値を検出し、検出された情報のビットを「0」や所定の情報に置き換える処理等を行ってもよい。しかし、第1暗号化部7が管理情報を暗号化した値を全て監視する処理は、計算コストが大きくなる。
一方、MPU1は、暗号化した管理情報と、暗号化した初期データとの排他的論理和を取るだけで暗号化された管理情報の初期データを容易に秘匿することができる。この結果、MPU1は、第1暗号化部7が暗号化した値を監視せずともよく、暗号化された管理情報を容易に秘匿することができる。
このように、MPU1は、管理情報の初期データをフラッシュメモリ20に格納する場合には、初期データを暗号化した値を攻撃者から秘匿することができる。結果として、MPU1は、攻撃者が暗号化された初期データと推定される初期データとから暗号鍵を解析する処理を困難にし、耐タンパー性を向上させることができる。
また、MPU1は、初期データをフラッシュメモリ20に格納する場合には、典型的には、対応するフラッシュメモリ20の格納領域すべてのビットに「0」を格納することとなる。従来技術であれば「0」を暗号化した結果をフラッシュメモリに書き込むことになるが、これは暗号鍵に依存する。本発明を適用すると暗号鍵によらず「0」を書き込めばよいので、フラッシュメモリ単体であらかじめ書き込んでおくことができる。このため、MPU1を組み込んだ製品を製造する際に、フラッシュメモリ20をクリアする処理を省略することができる。
つまり、従来のMPUを組み込んだ製品は、製造時に初期データを暗号化した値をフラッシュメモリに書込む処理を行う。しかし、従来のMPUを組み込んだ製品は、MPUが用いる暗号鍵が製品ごとに異なるため、同一の値をフラッシュメモリに格納できない。このため、製造時に全ての製品においてフラッシュメモリの初期化をおこなうこととなり、製造時のコストが上がってしまう。
しかし、MPU1を組み込んだ製品は、MPUが用いる暗号鍵が製品ごとに異なった場合でも、フラッシュメモリ20のビットをすべて「0」にするだけでよい。この結果、ビットをすべて「0」にしたフラッシュメモリを全ての製品に適用すれば初期化を行う必要がなくなるので、製造コストを下げることができる。
また、MPU1は、第2暗号化部9によって暗号化された情報と、フラッシュメモリ20に格納された情報との排他的論理和を取った情報を算出する。そして、MPU1は、第1暗号化部7が用いた暗号鍵と同一の暗号鍵を用いて、算出した値を復号する。このため、MPU1は、攻撃者から秘匿した情報を適切に読み出すことができる。
これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例2として本発明に含まれる他の実施例を説明する。
(1)初期データ生成部8および第2暗号化部9について
上述したMPU1の初期データ生成部8は、初期データとしてオールゼロのデータを生成していた。しかし、実施例はこれに限定されるものではなく、初期データ生成部8は、他の値を有する初期データを生成してもよい。
また、MPU1は、第1暗号化部7と同じ暗号鍵を用いて、初期データを暗号化する第2暗号化部9を有していた。しかし、実施例は、これに限定されるものではなく、例えば、MPU1は、初期データ生成部8と第2暗号化部9との代わりに、第1暗号化部7と同じ暗号鍵を用いて初期データを暗号化した値を記憶するレジスタを有してもよい。以下、このようなレジスタを有するMPU1aについて説明する。
図8は、実施例2に係るMPUを説明するための図である。図8に示す例では、実施例2に係るMPU1aは、MPU1と同様に、通信I/F3、レジスタ4、メモリ5、ROM6、第1暗号化部7、第1XOR算出部10、第2XOR算出部11、復号部12を有する。また、MPU1aは、初期データ生成部8と第2暗号化部9との代わりに、レジスタ13を有する。なお、MPU1aが有する各部3〜7、10〜12は、MPU1が有する各部3〜7、10〜12と同様の機能を発揮するものとする。
CPU処理ユニット2aは、実施例1に係るCPU処理ユニット2と同様の機能を有する。さらに、CPU処理ユニット2aは、初期データを第1暗号化部7に送信した場合には、暗号化された初期データをラッチするトリガ信号をレジスタ13に送信する。また、CPU処理ユニット2aは、初期データを生成させるトリガ信号に変えて、暗号化された初期データを出力されるトリガ信号をレジスタ13へ送信する。
レジスタ13は、揮発性のメモリである。また、レジスタ13は、第1暗号化部7と同じ暗号鍵を用いて、所定の情報を暗号化した値をあらかじめ記憶する。具体的には、レジスタ13は、暗号化された初期データをラッチするトリガ信号をCPU処理ユニット2aから受信した場合には、第1暗号化部7が出力した情報をラッチする。つまり、レジスタ13は、第1暗号化部7によって暗号化された初期データをラッチする。
そして、レジスタ13は、暗号化された初期データを出力させるトリガ信号をCPU処理ユニット2aから受信した場合には、初期データを暗号化した値を第1XOR算出部10と第2XOR算出部11へ送信する。
このように、MPU1aは、第1暗号化部7と同一の暗号鍵を用いて初期データを暗号化した値をあらかじめ記憶するレジスタ13を有する。そして、MPU1aは、第1暗号化部7よって暗号化された管理情報と、レジスタ13に格納された情報との排他的論理和を取った情報をフラッシュメモリ20に格納する。
このため、MPU1aは、初期データ生成部8と第2暗号化部9を不要とすることができる。このため、MPU1aをFPGA(Field-Programmable Gate Array)で作成した場合には、MPU1と比較して暗号化ユニットの数を減らすことができる。また、MPU1aは、MPU1と比較して、回路規模を小さくすることができる。
また、MPU1aは、初期データを暗号化した値を揮発性のメモリであるレジスタ13に格納する。このため、MPU1aは、攻撃者によって分解等された場合にも、レジスタ13に暗号化された初期データが自然に消去されるため、攻撃者に暗号化された初期データを秘匿することができる。
(2)排他的論理和を取る情報について
上述したMPU1は、第1暗号化部7が所定の暗号鍵を用いて暗号化した管理情報と、第2暗号化部9が第1暗号化部7と同じ暗号鍵を用いて暗号化した初期データとの排他的論理和を取った情報を算出した。また、MPU1aは、第1暗号化部7が所定の暗号鍵を用いて暗号化した管理情報と、レジスタ13に格納された情報、つまり、第1暗号化部7が暗号化した初期データとの排他的論理和を取った情報を算出した。
しかし、実施例は、これに限定されるものではない。つまり、MPUは、所定の暗号鍵を用いて暗号化した管理情報と排他的論理和を取る情報として、初期データ以外の情報を第1暗号化部7と同じ暗号鍵を用いて暗号化した値を用いてもよい。
このようなMPUの一例として、管理情報を初期化する場合には、初期化する管理情報が格納されたメモリアドレスに応じた情報をフラッシュメモリ2に格納するMPU1bについて説明する。例えば、MPU1bが有するCPU処理ユニット2bは、初期化する管理情報を示す情報が通知された場合には、初期化する管理情報が格納されたフラッシュメモリ20のメモリアドレスに応じた情報を生成する。
また、CPU処理ユニット2bは、初期データ生成部8aに対して、初期データを生成させるトリガ信号を送信するとともに、初期化する管理情報が格納されたメモリアドレスを初期データ生成部8へ送信する。つまり、CPU処理ユニット2bは、初期データ生成部8aに対して、初期データを生成させるトリガ信号を送信するとともに、アクセスするフラッシュメモリ20のメモリアドレスを初期データ生成部8aに送信する。
初期データ生成部8aは、初期データを生成させるトリガ信号とメモリアドレスとを受信した場合には、CPU処理ユニット2bと同様に、受信したメモリアドレスに応じた情報を生成する。そして、初期データ生成部8aは、生成した初期データを第2暗号化部9へ送信する。
この結果、MPU1bは、所定の暗号鍵を用いて管理情報を暗号化するとともに、管理情報を暗号化した暗号鍵と同じ暗号鍵を用いて、管理情報を格納するメモリアドレスに応じた情報を暗号化する。そして、MPU1bは、管理情報を暗号化した値と、メモリアドレスに応じた情報を暗号化した値との排他的論理和を取った情報をフラッシュメモリ20に格納する。このため、MPU1bは、管理情報を初期化する際に、管理情報が格納されたメモリアドレスごとに異なる初期データが格納される場合にも、適切に暗号化された初期データを攻撃者から秘匿することができる。
なお、CPU処理ユニット2bおよび初期データ生成部8aがメモリアドレスに応じた情報を生成する方法の一例としては、メモリアドレスと16ワードの情報とを対応付けたテーブルメモリをMPU1b内に設置する。そして、CPU処理ユニット2bおよび初期データ生成部8は、アクセスするメモリアドレスと対応付けられた16ワードの情報を出力する。
また、管理情報には、初期データ以外にも、攻撃者が容易に推定することができる情報が含まれる場合がある。このような情報を暗号化した値をそのままフラッシュメモリ20に格納した場合には、攻撃者に暗号鍵を容易に解析されてしまう。このような問題を解決するため、MPUは、管理情報に含まれる情報であって、推定が容易な情報を暗号化した値と管理情報を暗号化した値との排他的論理和を取ってもよい。以下、このような処理を行うMPU1cについて説明する。
例えば、MPU1cは、管理情報を所定の暗号鍵で暗号化するとともに、管理情報を暗号化した暗号鍵を用いて、管理情報の一部であって推定が容易な情報を暗号化する。そして、MPU1cは、管理情報を暗号化いた情報と、管理情報の一部であって推定が容易な情報を暗号化した値との排他的論理和を取った情報をフラッシュメモリ20に格納する。
このため、MPU1cは、フラッシュメモリ20に格納される暗号化された管理情報のうち、暗号化前の情報を攻撃者が容易に推定することができる部分については、「0」を格納することとなる。結果として、MPU1cは、暗号化された管理情報のうち、暗号化前の情報を攻撃者が容易に推定することができる部分を攻撃者から秘匿することができ、耐タンパー性を高めることができる。
(3)暗号鍵について
上述したMPU1は、AES暗号方式の128bit長の暗号鍵を用いて、管理情報と初期データとをECBモードで暗号化していた。しかし、実施例はこれに限定されるものではなく、例えば、CBCモードやカウンタモードで暗号化してもよい。また、MPU1は、DES(Data Encryption Standard)暗号方式やトリプルDES暗号方式等、任意の暗号方式および鍵長を用いて暗号化を行うことができる。つまり、MPU1は、任意の暗号化方式を用いて暗号化を行う事ができる。なお、本願に開示された暗号化装置、暗号化方法および暗号化プログラムは、暗号そのものを強化する手法を否定するものではなく、強化された任意の暗号アルゴリズムと併用することができる。
(4)管理情報について
上述したMPU1は、管理情報の一例として、著作権で保護されるAVデータの管理情報を暗号化した。しかし、実施例はこれに限定されるものではなく、他の情報についても適用可能である。また、MPU1は、管理情報を暗号化する前に推定困難な秘密の値と排他的論理和をとった情報を算出し、算出した値を暗号化した値と初期データを暗号化した値との排他的論理和を取ることで、初期データ以外の管理情報の推定を困難にしてもよい。また、MPU1は、PCやSTB以外にも、秘匿する情報を扱う多様の装置に接続、設置してよい。
(5)プログラム
ところで、実施例1に係るMPU1、および実施例2に係るMPU1a〜1cは、ハードウェアを利用して各種の処理を実現する場合を説明した。しかし、実施例はこれに限定されるものではなく、あらかじめ用意されたプログラムをLSI(Large Scale Integration)が実行することによって実現するようにしてもよい。そこで、以下では、図9を用いて、暗号化された初期値を逆変換可能であって、暗号鍵に依存しない値に変換し、変換した値をメモリに格納する情報格納プログラムを実行するLSIの一例を説明する。図9は、情報処理プログラムを実行するLSIの一例を説明するための図である。
図9に例示されたLSI100は、ROM(Read Only Memory)130、CPU(Central Processing Unit)140、がバス170で接続される。また、LSI100は、外部の半導体メモリ、PC、STBと情報の送受信を行うI/O(Input Output)160がバス170で接続される。
ROM130には、取得プログラム131、変換プログラム132、格納プログラム133があらかじめ保持される。CPU140が各プログラム131〜133をROM130から読み出して実行することによって、図9に示す例では、各プログラム131〜133は、暗号化プロセス141、変換プロセス142、格納プロセス143として機能するようになる。なお、各プロセス141〜143は、図1に示した各部7〜10と同様の機能を発揮する。また、各プロセス141〜143は、実施例2に係るMPU1a〜1cと同等の機能を発揮するようにすることも可能である。
1 MPU
2 CPU処理ユニット
3 通信I/F
4 レジスタ
5 メモリ
6 ROM
7 第1暗号化部
8 初期データ生成部
9 第2暗号化部
10 第1XOR算出部
11 第2XOR算出部
12 復号部
20 フラッシュメモリ
30 サーバ
40 受信機
50 セキュアユニット

Claims (7)

  1. 外部から入力された秘匿する値、または、暗号化された値を格納する記憶装置の初期化時に書込まれる初期値を所定の暗号鍵を用いて暗号化する暗号化部と、
    記暗号化部が用いる暗号鍵と同一の暗号鍵を用いて前記初期値を暗号化した値と、前記暗号化部によって暗号化された値との排他的論理和を算出する算出部と、
    前記算出部によって変換された値を前記記憶装置に格納する格納部と、
    前記記憶装置に格納された値を読出し、前記暗号化部が用いる暗号鍵と同一の暗号鍵を用いて前記初期値を暗号化した値と、前記記憶装置から読出した値との排他的論理和を算出し、前記暗号化部によって用いられた暗号鍵と同一の暗号鍵を用いて、該算出した排他的論理和の値を復号する復号部と、
    を有することを特徴とする情報処理装置。
  2. 前記算出部は、前記初期値を前記暗号化部が用いる暗号鍵と同一の暗号鍵を用いて暗号化した値を揮発性のメモリにあらかじめ格納し、当該揮発性のメモリに格納された値と前記暗号化部によって暗号化された値との排他的論理和を算出することを特徴とする請求項1に記載の情報処理装置。
  3. 前記算出部は、前記格納部が値を格納する記憶装置のメモリアドレスに応じた初期値を生成するブロックを有し、このブロックが生成した値を前記暗号化部が用いる暗号鍵と同一の暗号鍵を用いて暗号化した値と、前記暗号化部によって暗号化された値との排他的論理和を算出することを特徴とする請求項1に記載の情報処理装置。
  4. 外部から入力された秘匿する値を所定の暗号鍵を用いて暗号化する暗号化部と、
    前記暗号化部が用いる暗号鍵と同一の暗号鍵を用いて推定が容易な値を暗号化した値と、前記暗号化部によって暗号化された値との排他的論理和を算出する算出部と、
    前記算出部によって変換された値を、前記暗号化部によって暗号化された値を格納する記憶装置に格納する格納部と、
    前記記憶装置に格納された値を読出し、前記暗号化部が用いる暗号鍵と同一の暗号鍵を用いて前記推定が容易な値を暗号化した値と、前記記憶装置から読出した値との排他的論理和を算出し、前記暗号化部によって用いられた暗号鍵と同一の暗号鍵を用いて、該算出した排他的論理和の値を復号する復号部と、
    を有することを特徴とする情報処理装置。
  5. 前記算出部は、前記暗号化部が用いる暗号鍵と同一の暗号鍵を用いて、前記推定が容易な値を暗号化した値を揮発性のメモリにあらかじめ格納し、当該揮発性のメモリに格納された値と前記暗号化部によって暗号化された値との排他的論理和を算出することを特徴とする請求項に記載の情報処理装置。
  6. 秘匿する値を格納する記憶装置に、所定の暗号鍵を用いて暗号化された値を格納する情報処理装置が実行する情報処理方法であって、
    外部から入力された秘匿する値、または、暗号化された値を格納する記憶装置の初期化時に書込まれる初期値を前記所定の暗号鍵を用いて暗号化した値を取得し、
    記所定の暗号鍵と同一の暗号鍵を用いて前記初期値を暗号化した値と、暗号化された前記秘匿する値との排他的論理和を算出し、
    前記算出した値を前記記憶装置に格納し
    前記記憶装置に格納された値を読出し、前記所定の暗号鍵を用いて前記初期値を暗号化した値と、前記記憶装置から読出した値との排他的論理和を算出し、前記所定の暗号鍵とを用いて、該算出した排他的論理和の値を復号する
    ことを特徴とする情報処理方法。
  7. 秘匿する値を格納する記憶装置に、所定の暗号鍵を用いて暗号化された値を格納する情報処理装置に
    外部から入力された秘匿する値、または、暗号化された値を格納する記憶装置の初期化時に書込まれる初期値を前記所定の暗号鍵を用いて暗号化した値を取得し、
    記所定の暗号鍵と同一の暗号鍵を用いて前記初期値を暗号化した値と、暗号化された前記秘匿する値との排他的論理和を算出し、
    前記算出した値を前記記憶装置に格納し
    前記記憶装置に格納された値を読出し、前記所定の暗号鍵を用いて前記初期値を暗号化した値と、前記記憶装置から読出した値との排他的論理和を算出し、前記所定の暗号鍵とを用いて、該算出した排他的論理和の値を復号する
    処理を実行させることを特徴とする情報処理プログラム。
JP2012556699A 2011-02-09 2011-02-09 組み込み機器における情報処理装置、情報処理方法及び情報処理プログラム Expired - Fee Related JP5601382B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/052782 WO2012108016A1 (ja) 2011-02-09 2011-02-09 組み込み機器における情報処理装置、情報処理方法及び情報処理プログラム

Publications (2)

Publication Number Publication Date
JPWO2012108016A1 JPWO2012108016A1 (ja) 2014-07-03
JP5601382B2 true JP5601382B2 (ja) 2014-10-08

Family

ID=46638259

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012556699A Expired - Fee Related JP5601382B2 (ja) 2011-02-09 2011-02-09 組み込み機器における情報処理装置、情報処理方法及び情報処理プログラム

Country Status (5)

Country Link
US (1) US9031239B2 (ja)
JP (1) JP5601382B2 (ja)
KR (1) KR101517312B1 (ja)
CN (1) CN103348672A (ja)
WO (1) WO2012108016A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9294266B2 (en) * 2013-06-27 2016-03-22 Qualcomm Incorporated Method and apparatus to encrypt plaintext data
EP3119031A1 (en) * 2015-07-16 2017-01-18 ABB Schweiz AG Encryption scheme using multiple parties
US9514841B1 (en) * 2015-11-23 2016-12-06 International Business Machines Corporation Implementing eFuse visual security of stored data using EDRAM
US11397834B2 (en) * 2020-07-31 2022-07-26 EMC IP Holding Company LLC Methods and systems for data backup and recovery on power failure

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05130098A (ja) * 1991-10-31 1993-05-25 Hitachi Ltd 暗号化データの伝送方法及び暗号化データが記録されたカード
JPH10164049A (ja) * 1996-11-29 1998-06-19 Sony Corp データ送信方法、データ送信装置、プログラム記録伝送媒体、データ受信方法、データ受信装置、データ送受信方法及びデータ送受信装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2727955B2 (ja) 1994-02-14 1998-03-18 日本電気株式会社 公開鍵暗号装置
US6073236A (en) * 1996-06-28 2000-06-06 Sony Corporation Authentication method, communication method, and information processing apparatus
US6333983B1 (en) * 1997-12-16 2001-12-25 International Business Machines Corporation Method and apparatus for performing strong encryption or decryption data using special encryption functions
JP3550509B2 (ja) 1999-05-26 2004-08-04 松下電器産業株式会社 画像記録再生装置と画像再生装置と不正利用防止方法
JP2001274786A (ja) * 2000-01-21 2001-10-05 Victor Co Of Japan Ltd コンテンツ情報伝送方法、コンテンツ情報記録方法、コンテンツ情報伝送装置、コンテンツ情報記録装置、伝送媒体、及び記録媒体
JP2003115831A (ja) 2001-10-02 2003-04-18 Open Technology Kk 共通鍵生成方法並びにその共通鍵を用いる暗号方法、そのプログラム、そのプログラムを記録した記録媒体および暗号装置並びに復号方法および復号装置
CN100531028C (zh) * 2005-09-12 2009-08-19 西安交通大学 基于混沌特性的图像防伪方法
JP2008035305A (ja) 2006-07-31 2008-02-14 Nec Engineering Ltd 暗号化方法及びデータ秘匿方法
US7907670B2 (en) * 2006-08-23 2011-03-15 Panasonic Corporation Data transmitting apparatus and data receiving apparatus
US8036377B1 (en) * 2006-12-12 2011-10-11 Marvell International Ltd. Method and apparatus of high speed encryption and decryption
JP5328186B2 (ja) * 2008-03-21 2013-10-30 ルネサスエレクトロニクス株式会社 データ処理システム及びデータ処理方法
US8112634B2 (en) * 2008-06-04 2012-02-07 Samsung Electronics Co., Ltd. Security-enhanced storage devices using media location factor in encryption of hidden and non-hidden partitions
JP5988554B2 (ja) * 2011-08-04 2016-09-07 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05130098A (ja) * 1991-10-31 1993-05-25 Hitachi Ltd 暗号化データの伝送方法及び暗号化データが記録されたカード
JPH10164049A (ja) * 1996-11-29 1998-06-19 Sony Corp データ送信方法、データ送信装置、プログラム記録伝送媒体、データ受信方法、データ受信装置、データ送受信方法及びデータ送受信装置

Also Published As

Publication number Publication date
US9031239B2 (en) 2015-05-12
US20140161259A1 (en) 2014-06-12
WO2012108016A1 (ja) 2012-08-16
CN103348672A (zh) 2013-10-09
JPWO2012108016A1 (ja) 2014-07-03
KR20130097814A (ko) 2013-09-03
KR101517312B1 (ko) 2015-05-04

Similar Documents

Publication Publication Date Title
JP6998435B2 (ja) メモリ動作の暗号化
US8745411B2 (en) Protecting external volatile memories using low latency encryption/decryption
US10970366B2 (en) Method for securing a multimedia content record in a storage medium
CA2537299A1 (en) On-chip storage, creation, and manipulation of an encryption key
JPH09270785A (ja) 情報処理装置
WO2006124564A9 (en) Apparatus for secure digital content distribution and methods therefor
JP2001060945A (ja) デジタルデータ書込装置、デジタルデータ記録装置、デジタルデータ利用装置
JP2010063105A (ja) 暗号化属性を用いて高速化された暗号法
JP4964945B2 (ja) 共通プライベートキーセットを利用した複数のキーラダーのサポート
TW201031166A (en) Method and module for renewing the code of a cryptographic algorithm, method and module for generating a seed, security processor and recording carrier for these methods
US9654279B2 (en) Security module for secure function execution on untrusted platform
CN103237010B (zh) 以加密方式提供数字内容的服务器端
JP2002319934A (ja) 著作権保護システム及びその方法
EP2990953B1 (en) Periodic memory refresh in a secure computing system
JP5601382B2 (ja) 組み込み機器における情報処理装置、情報処理方法及び情報処理プログラム
WO2006033347A1 (ja) 機密情報処理方法、機密情報処理装置、およびコンテンツデータ再生装置
CN103237011B (zh) 数字内容加密传送方法以及服务器端
EP3317798B1 (en) Decrypting and decoding media assets through a secure data path
US7975141B2 (en) Method of sharing bus key and apparatus therefor
JP2004208088A (ja) デバイス鍵復号化装置、デバイス鍵暗号化装置、デバイス鍵暗号復号化装置、デバイス鍵復号化方法、デバイス鍵暗号化方法、デバイス鍵暗号復号化方法、及びそのプログラム
JP4713745B2 (ja) 認証通信装置及び認証通信システム
JP4665159B2 (ja) 電子メディア通信装置
KR101790948B1 (ko) Drm 서비스 제공 장치 및 방법, drm 서비스를 이용한 콘텐츠 재생 장치 및 방법
JP2003229846A (ja) 著作権保護システム、デジタル情報処理装置および著作権保護方法
US20100031057A1 (en) Traffic analysis resistant storage encryption using implicit and explicit data

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140414

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140513

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140630

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: 20140722

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140804

R150 Certificate of patent or registration of utility model

Ref document number: 5601382

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees