JPWO2014049830A1 - 情報処理装置および半導体装置 - Google Patents

情報処理装置および半導体装置 Download PDF

Info

Publication number
JPWO2014049830A1
JPWO2014049830A1 JP2014537997A JP2014537997A JPWO2014049830A1 JP WO2014049830 A1 JPWO2014049830 A1 JP WO2014049830A1 JP 2014537997 A JP2014537997 A JP 2014537997A JP 2014537997 A JP2014537997 A JP 2014537997A JP WO2014049830 A1 JPWO2014049830 A1 JP WO2014049830A1
Authority
JP
Japan
Prior art keywords
key
control circuit
encrypted
input
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2014537997A
Other languages
English (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.)
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 JPWO2014049830A1 publication Critical patent/JPWO2014049830A1/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • 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/1011Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM] by binding digital rights to specific entities to devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/72Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/062Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying encryption of the keys

Abstract

鍵の漏洩が防止された汎用性の高い情報処理装置および半導体装置を提供する。情報処理装置(1)は、セキュアモジュール(10)と、セキュアモジュール(10)の外部に設けられ、通信路(2)を通じて暗号化データ(4)をセキュアモジュール(10)に入力する制御回路(20)とを備える。セキュアモジュール(10)は、メモリ(12)、制御回路(13)および入力部(11)を有する。メモリ(12)は、制御回路(20)からの読み書きが不可能なメモリであって、暗号化データ(4)の復号に用いられる鍵(6)を格納する。制御回路(13)は、鍵(6)を用いて暗号化データ(4)を復号し、通信路(2)を通じて制御回路(20)に出力する。入力部(11)は、通信路(2)とは分離された通信路(3)を通じて入力された鍵(6)を、メモリ(12)に格納する。

Description

本発明は、情報処理装置および半導体装置に関する。
OS(Operating System)等のソフトウェアやインタフェースには、仕様が公開されているものと、そうでないものとがある。仕様が公開されている場合、その仕様に対応するソフトウェアの開発が促進され、結果として多くの良質なソフトウェアがユーザに提供されるようになる。しかし、このようなソフトウェアは、仕様が公開されているため、悪意ある第三者による改ざん、覗き見、成りすまし等の被害を受けやすい。
近年、このような被害を防止するための技術の1つとして、TRM(Tamper Resistant Module)構造を有する半導体が普及している。TRM構造とは、集積回路等の半導体において、内部に格納されている情報を外部から参照することができないようにした構造である。例えば、集積回路の内部に強固で粘着力の高いコーティングを施し、施したコーティングがはがされたとき内部の回路が破壊される等の構造になっている。これにより、半導体の内部の情報についての覗き見や改ざんを物理的に防止できる。このようなTRM構造を有する半導体は、セキュアモジュールまたはセキュアLSI(Large Scale Integration)等と呼ばれることがある。
なお、オープンアーキテクチャを有する情報処理装置の安全性を高めるための他の技術としては、次のようなものがある。例えば、セキュアモジュールが、直接アクセスによりメインメモリに格納されたセキュアソフトウェアのコード等を読み出し、読み出したコード等と予め格納された情報との比較結果に基づいてセキュアソフトウェアの改ざんをチェックするという技術がある。また、例えば、セキュアモジュールが、鍵を用いて暗号化処理を解除する解除手段に所定の情報を供給し、その返答を参照して解除手段が正当と判定された場合に解除手段に鍵を供給する一方、正当でない場合に鍵の供給を停止する技術がある。
特開2004−96666号公報 特開2004−129227号公報 特開2003−198527号公報
ところで、秘匿すべきデータをコンピュータ間で受け渡す方法としては、そのデータを暗号化した状態で流通させる方法が一般的である。この方法では、所定の鍵を用いて暗号化データを復号することで、秘匿されたデータが読み取り可能になる。
しかしながら、上記のように仕様が公開されたソフトウェアやインタフェースを用いた環境下で、暗号化データの復号に用いる鍵が取得されたり、あるいは記憶されたりすると、ソフトウェアの改ざん等によってその鍵が漏洩する危険性がある。一方、鍵の取得や記憶等、鍵を取り扱う一連の処理をセキュアモジュールが行う場合には、ソフトウェア開発の自由度が低下し、装置の汎用性が低下する。また、予め決められた鍵しか使用できなくなり、この点でも装置の汎用性が低下する。
一側面では、本発明は、鍵の漏洩が防止された汎用性の高い情報処理装置および半導体装置を提供することを目的とする。
一側面では、次のような情報処理装置が提供される。この情報処理装置は、セキュアモジュールと、セキュアモジュールの外部に設けられ、第1の通信路を通じて暗号化データをセキュアモジュールに入力する第1の制御回路とを備える。セキュアモジュールは、メモリ、第2の制御回路および入力部を有する。メモリは、第1の制御回路からの読み書きが不可能なメモリであって、暗号化データの復号に用いられる鍵が格納される。第2の制御回路は、鍵を用いて暗号化データを復号し、第1の通信路を通じて第1の制御回路に出力する。入力部は、第1の通信路とは分離された第2の通信路を通じて入力された鍵を、メモリに格納する。
一側面では、鍵の漏洩が防止された汎用性の高い情報処理装置および半導体装置を提供できる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
第1の実施の形態の情報処理装置について示す図である。 第2の実施の形態の情報処理システムについて示す図である。 端末装置のハードウェア例について示すブロック図である。 セキュア入力部のハードウェア例について示すブロック図である。 端末装置が備える機能の構成例について示すブロック図である。 配信コンテンツの再生処理のシーケンス例について示す図である。 配信コンテンツの再生処理のシーケンス例について示す図(続き)である。 ワーク鍵取得処理のシーケンス例について示す図である。 放送コンテンツ再生処理のシーケンス例について示す図である。 専用命令コードのリストの例について示す図である。 命令コードリストの置換え処理のシーケンス例について示す図である。 機密情報の外部保存処理の例について示すフローチャートである。 機密情報の読み出し処理の例について示すフローチャートである。 プログラムコードの再構成の例について示す図である。 プログラムとの相互認証の例について示す図である。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理装置について示す図である。情報処理装置1は、暗号化されたデータを、鍵を用いて復号する機能を有するコンピュータである。情報処理装置1は、例えば、タブレット型、ノートブック型、デスクトップ型等のPC(Personal Computer)でもよいし、携帯電話機能を備えた携帯型の情報端末装置でもよい。
情報処理装置1は、セキュアモジュール10と、このセキュアモジュール10の外部に設けられた制御回路20(第1の制御回路)とを有する。セキュアモジュール10および制御回路20は、例えば、同一基板上に実装された半導体装置として実現される。また、セキュアモジュール10には通信路2(第1の通信路)と通信路3(第2の通信路)とが設けられ、これらのうち通信路2が、制御回路20とセキュアモジュール10との間のデータ入出力に利用される。
制御回路20は、例えば、情報処理装置1全体を制御する回路であり、CPU(Central Processing Unit)等のプロセッサとして構成される。この場合、制御回路20は、ソフトウェア構造あるいはインタフェース等の仕様が公開されたOSを実行し、更に、そのOSの仕様に対応するアプリケーションプログラムを実行する。実行されるアプリケーションプログラムは、公開されたOSの仕様に従って自由に開発可能なものとなる。これにより、情報処理装置1の汎用性が向上する。
制御回路20は、暗号化されたデータ(以下、暗号化データ4とする)を、通信路2を介してセキュアモジュール10に入力し、また、復号されたデータ(以下、復号化データ5とする)を、通信路2を介してセキュアモジュール10から受信する。制御回路20によるこれらの処理は、例えば、制御回路20が上記のアプリケーションプログラムを実行することで実現される。
制御回路20は、例えば、暗号化データ4を、制御回路20に接続された図示しない記憶装置から読み込んで、セキュアモジュール10に入力する。あるいは、制御回路20は、情報処理装置1の外部に存在する送信装置から暗号化データ4を受信して、セキュアモジュール10に入力してもよい。
セキュアモジュール10は、TRM構造などにより、外部からの覗き見やデータ改ざんを防止する機能を有するハードウェアである。セキュアモジュール10は、入力部11、メモリ12および制御回路13(第2の制御回路)を有する。
メモリ12は、セキュアモジュール10の外部の制御回路20から読み書きが不可能な不揮発性記憶装置である。例えば、制御回路20は、予め決められたコマンドのみを用いて、セキュアモジュール10と通信することができる。この場合、制御回路20がメモリ12からのデータ読み出しやメモリ12へのデータ書き込みを要求するためのコマンドが用意されないことで、制御回路20からのメモリ12の読み書きが禁止される。
メモリ12は、セキュアモジュール10で取り扱われる機密情報等、セキュアモジュール10の処理で使用される各種のデータを記憶する。メモリ12は、機密情報の一例として、暗号化データ4の復号処理に用いられる鍵6を記憶する。
制御回路13は、制御回路20から通信路2を介して入力された暗号化データ4を、メモリ12に格納された鍵6を用いて復号する。制御回路13は、復号した復号化データ5を、通信路2を介して制御回路20へ出力する。ここで、鍵6の記憶とその鍵6を用いた復号処理とがセキュアモジュール10内で行われることで、鍵6が制御回路20に読み出されて情報処理装置1の外部に漏洩する確率が低くなり、鍵6の安全性が向上する。
なお、制御回路13は、例えば、CPUやDSP(Digital Signal Processor)等のプロセッサや、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等のその他の電子回路を用いて実現される。また、制御回路13は、プロセッサと復号回路等、複数の電子回路を用いて実現されてもよい。また、制御回路13がプロセッサを備える場合、例えば、そのプロセッサがセキュアモジュール10上でのみ実行可能な専用プログラムを実行するようにすることで、制御回路13の処理手順が改ざんされて鍵6が漏洩する確率を低下させることができる。
入力部11には、通信路3が接続されている。通信路3は、セキュアモジュール10に対して機密情報を入力するための経路であり、入力部11は、通信路3を介して入力された機密情報をメモリ12に格納する。通信路3から入力部11を介してメモリ12に入力される機密情報には、鍵6が含まれる。
通信路3は、制御回路20とセキュアモジュール10とを接続する通信路2とは分離して設けられている。これにより、入力部11は、改ざんされる可能性のある制御回路20の処理によらずに、鍵6を含む機密情報をメモリ12へ入力できる。したがって、少なくともメモリ12の製造段階より後に、制御回路20の処理によらない安全性の高い処理によって、メモリ12に機密情報を格納することが可能になる。
なお、入力部11は、所定の電子回路によって実現される。例えば、入力部11は、通信路3を介して入力された認証情報に基づいて認証する回路を備え、認証に成功した場合に、その後に入力される機密情報をメモリ12に格納することを許可することができる。
また、図1では、入力部11からメモリ12に対して機密情報が直接入力される構成を示しているが、例えば、通信路3を介して入力された機密情報を、入力部11から制御回路13を介してメモリ12に格納することも可能である。
次に、情報処理装置1における処理例について説明する。
まず、入力部11は、通信路3を介して入力された鍵6を、メモリ12に格納する(ステップS1)。鍵6の格納処理は、少なくともメモリ12の製造後の任意のタイミングで行うことが可能である。例えば、製造されたメモリ12をセキュアモジュール10に実装する時点から、セキュアモジュール10および制御回路20が搭載された情報処理装置1が工場から出荷される直前まで、あるいは情報処理装置1がユーザに販売される直前までの任意のタイミングで、メモリ12に鍵6を格納できる。これにより、販売された情報処理装置1のために提供されるサービスの形態に合わせた適切な鍵6をメモリ12に格納できるようになり、情報処理装置1の汎用性が向上する。
なお、通信路3は例えば取り外し可能であってもよい。この場合、通信路3を外すことにより、セキュアモジュール10への機密情報の入力を禁止してもよい。
次に、制御回路20は、通信路2を介して制御回路13に暗号化データ4を入力する(ステップS2)。
ここで、例えば、制御回路20は、画像データあるいは音声データを含む、暗号化されたコンテンツデータを復号して再生出力する機能を備えていてもよい。この場合、暗号化データ4は、暗号化されたコンテンツデータを復号するためのコンテンツ鍵であってもよい。例えば、情報処理装置1に対して複数のコンテンツデータを提供するサービスが提供される場合、コンテンツ鍵はコンテンツデータごとに用意される。この場合、メモリ12に格納される鍵6は、サービスが提供されるユーザ等に対応付けられた情報とすることができる。
次に、制御回路13は、メモリ12から鍵6を読み込み、読み込んだ鍵6を用いて、制御回路20から入力された暗号化データ4を復号する(ステップS3)。制御回路13は、復号によって得られた復号化データ5を、通信路2を介して制御回路20に出力する(ステップS4)。制御回路20は、受信した復号化データ5を用いて所定の処理を実行することができる。
ここで、「鍵6を用いて復号する処理」としては、例えば、鍵6自体を復号鍵として用いて復号する処理が含まれる。このようなケースとしては、例えば、鍵6が秘密鍵であり、暗号化データ4が秘密鍵に対応する公開鍵によって暗号化されているケースが含まれる。
また、制御回路20が、情報処理装置1の外部に存在する送信装置から暗号化データ4を受信する場合、「鍵6を用いて復号する処理」としては次のような処理を含むこともできる。制御回路13は、制御回路20を介して送信装置と通信し、鍵6を用いて送信装置との間で相互認証を行う。制御回路13は、相互認証に成功したとき、相互認証の過程で一時的に生成された一時鍵を用いて暗号化された暗号化データ4を、制御回路20を介して受信し、受信した暗号化データ4を、一時鍵を復号鍵として用いて復号する。
以上のステップS2〜S4において、制御回路20は、暗号化データ4を取得してセキュアモジュール10に供給する処理、および、復号によって得られた復号化データ5を受信して利用する処理を実行する。これらの処理は、例えば、公開されたOSの仕様に従って開発されたアプリケーションプログラムを用いて実現することが可能であるので、情報処理装置1の汎用性を向上させることができる。一方で、制御回路20は、鍵6を直接使用した処理を実行しないので、鍵6が外部に漏洩する確率が低下し、鍵6の安全性が向上する。そして、上記のように、入力部11は、制御回路20によらない処理によって鍵6をメモリ12に格納できる。したがって、鍵6の漏洩が防止された汎用性の高い情報処理装置1が実現される。
[第2の実施の形態]
次に、第2の実施の形態として、暗号化されたコンテンツ(以下、暗号化コンテンツ)を復号するためのコンテンツ鍵を、セキュアLSIを用いて管理するようにした端末装置について説明する。本実施の形態において、コンテンツとは、映像情報および音声情報を含む情報であり、例えば、テレビ番組、映画、ビデオゲーム等の情報である。第2の実施の形態において、コンテンツは、例えば、MPEG(Moving Picture Experts Group)方式やH.264方式等の方式により圧縮されている。
図2は、第2の実施の形態の情報処理システムについて示す図である。端末装置100は、ネットワーク40を介して配信センター31と接続されている。端末装置100は、配信センター31と双方向通信が可能である。また、端末装置100は、放送局32から送信された放送波を受信する。放送局32との通信は、放送波を用いるため、放送局32から情報を受信する単方向通信のみ可能となる。
端末装置100は、コンテンツを再生出力する機能を備える装置である。端末装置100は、タブレットPC等の携帯可能な携帯端末装置でもよい。端末装置100は、TRM構造を有するセキュアLSIを備える。端末装置100は、配信センター31および放送局32から暗号化された暗号化コンテンツを受信する。
端末装置100は、双方向通信が可能な配信センター31から受信した暗号化コンテンツを復号する場合、配信センター31から受信したコンテンツ鍵を用いる。コンテンツ鍵を受信する際、端末装置100は、端末装置100の機密情報(例えば、秘密鍵等)を用いて、配信センター31との間で相互認証する。端末装置100の機密情報は、外部からの覗き見や改ざんを防ぐため、セキュアLSI上に格納されている。端末装置100は、相互認証に成功した場合、配信センター31からコンテンツ鍵を受信できる。
一方、端末装置100は、単方向通信のみ可能な放送局32から受信した暗号化コンテンツを復号する場合、コンテンツ鍵、ワーク鍵およびマスタ鍵を用いる。
コンテンツ鍵は、放送局32により定期的(例えば、数秒間に1回)更新される。更新されたコンテンツ鍵は、放送局32で暗号化される。以下、暗号化されたコンテンツ鍵を暗号化コンテンツ鍵と記載する。暗号化コンテンツ鍵は、コンテンツ鍵に対応する暗号化コンテンツとともに、放送局32から放送波によって端末装置100へ定期的に送信される。
ワーク鍵は、暗号化コンテンツ鍵に対応する復号鍵である。ワーク鍵は、放送局ごとに異なり、放送局32により定期的に(例えば、毎月)更新される。更新されたワーク鍵は、放送局32により暗号化される。以下、暗号化されたワーク鍵を暗号化ワーク鍵と記載する。暗号化ワーク鍵は、放送局32から端末装置100へ放送波によって定期的に送信される。ただし、ワーク鍵の更新周期は、コンテンツ鍵の更新周期より長い。
マスタ鍵は、暗号化ワーク鍵に対応する復号鍵である。マスタ鍵は、各端末装置が個別に有する。マスタ鍵は、外部からの覗き見や改ざんを防止するため、端末装置100の有するセキュアLSI上の記憶装置に格納されている。マスタ鍵は、端末装置100の秘密鍵でもよいし、送信側装置と共有される共通鍵でもよい。
図3は、端末装置のハードウェア例について示すブロック図である。端末装置100は、RAM(Random Access Memory)101、フラッシュメモリ102、ディスプレイ103、タッチパネル104、通信インタフェース105、テレビ受信部106およびシステムLSI110を有する。RAM101、フラッシュメモリ102、ディスプレイ103、タッチパネル104、通信インタフェース105、テレビ受信部106、メインプロセッサ111、伸張回路112およびセキュアLSI120は、システムLSI110に設けられたバス113に接続されている。
システムLSI110は、端末装置100全体を制御する集積回路である。システムLSI110は、メインプロセッサ111、伸張回路112およびセキュアLSI120を有する。
メインプロセッサ111は、プログラムの命令を実行する演算器を含む装置である。メインプロセッサ111は、フラッシュメモリ102に記憶されているプログラムやデータの少なくとも一部をRAM101にロードしてプログラムを実行する。なお、メインプロセッサ111は、CPUやDSP等を用いてもよい。また、メインプロセッサ111は複数のプロセッサコアを備えてもよい。また、端末装置100は複数のプロセッサを備えてもよい。端末装置100は、複数のプロセッサまたは複数のプロセッサコアを用いて並列処理を行ってもよい。また、2以上のプロセッサの集合、FPGAやASIC等の専用回路、2以上の専用回路の集合、プロセッサと専用回路の組み合わせ等を「プロセッサ」と呼んでもよい。
伸張回路112は、圧縮されたデータを伸張し、メインプロセッサ111へ出力する。圧縮方式には、例えば、MPEG方式、H.264方式等があり、伸張回路112は、いずれの圧縮方式に対応してもよい。
例えば、伸張回路112により伸張された画像データは、メインプロセッサ111を介してディスプレイ103に出力される。なお、伸張された画像データが、伸張回路112からバス113やメインプロセッサ111を介さずに、ディスプレイ103に直接出力される構成としてもよい。また、伸張された画像データは、HDCP(High-bandwidth Digital Content Protection system)方式で暗号化された状態でディスプレイ103に供給されてもよい。また、HDCP方式で暗号化された画像データは、画像出力インタフェース(図示せず)を介して端末装置100の外部に出力されてもよい。
RAM101は、メインプロセッサ111が実行するプログラムやプログラムから参照されるデータを一時的に記憶する揮発性メモリである。なお、端末装置100は、RAM以外の種類のメモリを備えてもよく、複数個の揮発性メモリを備えてもよい。
フラッシュメモリ102は、OSやファームウェアやアプリケーションソフトウェア等のプログラムおよびデータを記憶する不揮発性の記憶装置である。なお、端末装置100は、HDD(Hard Disk Drive)やSSD(Solid State Drive)等の他の種類の記憶装置を備えてもよく、複数個の不揮発性の記憶装置を備えてもよい。
ディスプレイ103は、メインプロセッサ111からの命令に従って画像を表示する。ディスプレイ103としては、液晶ディスプレイ(LCD:Liquid Crystal Display)や有機EL(Electro Luminescence)ディスプレイ等を用いることができる。
タッチパネル104は、ディスプレイ103に重ねて設けられており、ディスプレイ103に対するユーザのタッチ操作を検出し、タッチ位置を入力信号としてメインプロセッサ111に通知する。タッチ操作には、タッチペン等のポインティングデバイスまたはユーザの指が用いられる。タッチ位置の検出方式には、例えば、マトリクススイッチ方式、抵抗膜方式、表面弾性波方式、赤外線方式、電磁誘導方式、静電容量方式等様々な検出方式があり、いずれの方式を採用してもよい。
通信インタフェース105は、ネットワーク40を介して他のコンピュータ(例えば、配信センター31)と通信を行うインタフェースである。通信インタフェース105は、有線網に接続する有線インタフェースでもよいし、無線網に接続する無線インタフェースでもよい。
テレビ受信部106は、チューナ、復調器等を有し、接続されているアンテナ41で受信した放送電波を取り込むことにより各放送チャンネルのコンテンツを示す情報を取得する。
なお、メインプロセッサ111に実行させるプログラムは、フラッシュメモリ102に他の記憶装置からコピーするようにしてもよい。また、メインプロセッサ111に実行させるプログラムは、通信インタフェース105がネットワーク40からダウンロードするようにしてもよい。
また、図3の端末装置100が備えるハードウェアのうち、システムLSI110の外部に搭載されてバス113に接続されているハードウェアの少なくとも1つは、システムLSI110の内部に搭載されてもよい。例えば、RAM101およびフラッシュメモリ102がシステムLSI110の内部に搭載されてもよい。
以上の構成において、メインプロセッサ111は、インタフェース等の仕様が公開されたOSプログラムを実行する。そして、メインプロセッサ111は、このようなOSプログラムの仕様に合わせて開発されたアプリケーションプログラムを実行する。このように、端末装置100を、公開された仕様に基づくプログラムを実行するメインプロセッサ111を備える構成としたことで、端末装置100の汎用性が向上する。
このような利点の反面、悪意のある者によって開発されたプログラムがメインプロセッサ111で実行されたり、あるいはメインプロセッサ111で実行されるプログラムが改ざんされる可能性もある。このことは、例えば、バス113を介してメインプロセッサ111に接続されたRAM101やフラッシュメモリ102の記憶領域の情報が、意図せずに外部に読み出されたり、あるいは改ざんされる可能性があることを意味する。
これに対して、セキュアLSI120は、TRM構造を有する集積回路である。セキュアLSI120は、バス113を介してメインプロセッサ111に接続されているが、セキュアLSI120とメインプロセッサ111との間でやりとりされる処理は、特定の処理だけに制限されている。これにより、セキュアLSI120の内部に格納された情報が意図せずに漏洩したり、あるいは改ざんされることが防止されている。
セキュアLSI120は、サブプロセッサ121、暗号演算回路122、セキュアRAM123、セキュアROM(Read Only Memory)124、外部入出力部125およびセキュア入力部130を有する。これらの各ユニットは、バス127に接続されている。また、外部入出力部125は、バス113,127に接続されている。
サブプロセッサ121は、セキュアLSI120内でプログラムの命令を実行する演算器を含む装置である。また、サブプロセッサ121は、セキュアLSI120の有する各ユニットを制御する。
暗号演算回路122は、データを暗号化する暗号回路、データを復号する復号回路等を含む回路である。暗号演算回路122は、サブプロセッサ121からの命令に応じて暗号化、復号等の処理を行い、処理結果をサブプロセッサ121に出力する。
セキュアRAM123は、サブプロセッサ121が実行するプログラムやプログラムから参照されるデータを一時的に記憶する揮発性メモリである。なお、セキュアLSI120は、RAM以外の種類の揮発性メモリを備えてもよく、複数個の揮発性メモリを備えてもよい。
セキュアROM124は、端末装置100の識別情報、秘密鍵、マスタ鍵等の機密情報を記憶する不揮発性の記憶装置である。端末装置100の識別情報には、例えば、端末装置100の識別番号が挙げられる。また、セキュアROM124には、セキュアLSI120上でのみ動作する専用プログラムが記憶されていてもよい。専用プログラムは、例えば、セキュアLSI120上でのみ実行可能な命令コードにより生成されたプログラムである。
なお、セキュアROM124は、フラッシュメモリなどの書き込み可能な不揮発性記憶装置であるものとする。また、セキュアLSI120は、このような不揮発性記憶装置を複数備えてもよい。
外部入出力部125は、バス113に接続され、バス113を介してメインプロセッサ111との間でデータを入出力する。外部入出力部125は、メインプロセッサ111から入力されたデータをサブプロセッサ121へ出力する。また、外部入出力部125は、サブプロセッサ121から入力されたデータをメインプロセッサ111へ出力する。
なお、サブプロセッサ121がセキュアLSI120内のデータを出力できる経路は、外部入出力部125を介した経路のみである。例えば、サブプロセッサ121が、端末装置100外の装置(例えば、配信センター31)にデータを送信したい場合、まず、サブプロセッサ121は、外部入出力部125を介して、送信するデータをメインプロセッサ111に出力する。そして、メインプロセッサ111は、出力されたデータを端末装置100外の装置に送信する。
ここで、メインプロセッサ111から外部入出力部125を介してサブプロセッサ121に入力される情報は、特定のコマンドなど、予め規定された情報のみに制限されている。そして、サブプロセッサ121は、外部入出力部125から規定されたもの以外の情報が入力された場合には、その情報を無視し、破棄する。これにより、セキュアLSI120の内部に格納された情報のセキュリティが高められている。
例えば、メインプロセッサ111がサブプロセッサ121に出力するコマンドとしては、セキュアRAM123やセキュアROM124等、セキュアLSI120の内部の記憶領域からのデータの読み出しや、その記憶領域へのデータの書き込みを直接要求するようなコマンドは含まれない。これにより、メインプロセッサ111からの命令によってセキュアRAM123やセキュアROM124に対する読み書きを行うことは不可能になる。
一方、セキュアLSI120のサブプロセッサ121が実行するプログラムには、セキュアLSI120の内部に格納された機密情報を外部入出力部125を介して出力するようなプログラムコードは含まれない。これにより、機密情報のセキュリティが高められている。更に、後述するように、サブプロセッサ121が実行するプログラムは、公開された仕様に基づくものではなく、セキュアLSI120のための専用の言語で記述されたプログラムとされる。これにより、サブプロセッサ121による処理自体の信頼性が高められ、その結果、セキュアLSI120内の機密情報のセキュリティが向上する。
乱数発生回路126は、サブプロセッサ121の命令に応じて乱数を発生させ、発生させた乱数をサブプロセッサ121に出力する。乱数は、例えば、配信センター31との相互認証に用いられる。
セキュア入力部130は、端末装置100の外部の入力装置42から入力された機密情報を、セキュアLSI120内のバス127に出力する。セキュア入力部130から出力された機密情報は、サブプロセッサ121によりセキュアROM124へ格納される。なお、セキュア入力部130から出力された機密情報は、サブプロセッサ121を介さずにセキュアROM124に直接格納されてもよい。
セキュア入力部130は、メインプロセッサ111を介在させずにセキュアLSI120の内部に情報を入力可能な入力経路を構成する。また、セキュア入力部130は、入力された情報をバス127に出力することはできるが、バス127から入力された情報をセキュアLSI120の外部に出力することはできない。
セキュア入力部130からの機密情報の入力処理は、少なくともセキュアLSI120の製造後の任意のタイミングで行うことが可能である。例えば、製造されたセキュアLSI120を端末装置100に実装する時点から、セキュアLSI120が搭載された端末装置100が工場から出荷される直前まで、あるいは端末装置100がユーザに販売される直前までの任意のタイミングで、セキュアROM124に機密情報を格納できる。
したがって、セキュア入力部130を設けたことにより、端末装置100の販売形態や端末装置100を用いたサービスの提供形態等に応じた適切な機密情報を、セキュアLSI120の内部に格納することが可能になる。その結果、端末装置100の汎用性を高めることができる。例えば、端末装置100が携帯電話機能を有する場合、携帯電話キャリアあるいは携帯電話の販売会社が生成した固有の機密情報を、セキュアROM124に格納することが可能になる。この場合、携帯電話キャリアや販売店は、生成した固有の機密情報を用いてサービスを提供できるようになり、独自のサービスを提供しやすくなる。
また、入力装置42がセキュア入力部130に接続するための接続部としては、例えば、システムLSI110が備える多数の外部ピンのうちの所定の外部ピンを用いることができる。また、他の例として、セキュア入力部130に接続するための専用コネクタが設けられてもよい。
セキュア入力部130への接続部としてシステムLSI110の外部ピンが用いられる場合、および、専用コネクタが端末装置100の筐体の内部に設けられる場合には、入力装置42からのセキュア入力部130への入力処理タイミングは、基本的に、端末装置100の製造段階に限定される。また、専用コネクタが端末装置100の筐体の外面に設けられた場合には、例えば、端末装置100の販売店において、入力装置42からセキュア入力部130に対して機密情報を入力することも可能になる。
ただし、端末装置100を購入した購入者が、セキュア入力部130への接続部に対して容易にアクセスできないような構造とされることが望ましい。例えば、セキュア入力部130を介した機密情報の入力が完了した後、その入力用の外部ピンまたは専用コネクタを取り外しできるようにする方法がある。これにより、セキュアLSI120上の機密情報を改ざんできなくなる。
また、セキュア入力部130は、入力装置42を認証する機能や、暗号解読機能等を有してもよい。この場合、認証用の情報や暗号解読用の情報を、端末装置100の製造者や販売者等の信頼できる者が管理することで、端末装置100の購入者はセキュアLSI120上の機密情報を改ざんできなくなる。
ここで、認証機能および暗号解読機能を備えたセキュア入力部130の構成例を挙げる。図4は、セキュア入力部のハードウェア例について示すブロック図である。
図4に示すセキュア入力部130は、入力レジスタ131、シフトレジスタ132、認証情報比較部133および機密情報復号部134を有する。また、セキュア入力部130には、認証鍵135および復号鍵136が記憶されている。認証鍵135および復号鍵136は、ともに固定値であり、読み出し専用のレジスタ等の不揮発性記憶装置(図示せず)に予め格納されている。なお、認証鍵135は認証情報比較部133からのみ読み出し可能であり、復号鍵136は機密情報復号部134からのみ読み出し可能である。
入力装置42からセキュア入力部130に対しては、入力信号Sinおよびクロック信号CKが入力される。入力信号Sinは、入力レジスタ131に入力される。クロック信号CKは、入力レジスタ131、シフトレジスタ132、認証情報比較部133および機密情報復号部134の各部に入力される。なお、クロック信号CKは、例えば、端末装置100の内部で発生されるものであってもよい。
入力信号Sinは、入力レジスタ131を介して、シフトレジスタ132および機密情報復号部134に出力される。
シフトレジスタ132は、入力レジスタ131からの入力信号Sinの値を、クロックタイミングごとにシフトすることで、所定ビット数の値を保持する。図4の例では、シフトレジスタ132は5ビットの値を保持する。
認証情報比較部133は、認証処理を行う回路であり、機密情報復号部134は、暗号解読処理を行う回路である。認証情報比較部133は、機密情報復号部134に対してイネーブル信号ENを出力する。イネーブル信号ENは、機密情報復号部134に対する入力レジスタ131からの入力信号Sinの入力可否を指示するための信号である。初期状態では、イネーブル信号ENの値は「0」であり、このとき、機密情報復号部134への入力情報Sinの入力は禁止された状態となる。
認証情報比較部133は、比較器およびカウンタを有する。認証情報比較部133は、シフトレジスタ132が保持する値と、認証鍵135の値とをビットごとに比較して、一致するかを判定する。認証鍵135のビット数はシフトレジスタ132が保持する信号のビット数と同じであり、図4の例では「5」である。
認証情報比較部133は、シフトレジスタ132が保持する値と、認証鍵135の値とが全ビットについて一致したとき、イネーブル信号ENを「0」から「1」にするとともに、クロック信号CKのカウント動作を開始する。カウント数の初期値は「0」であり、認証情報比較部133は、カウント数が一定値に達するまでの間、イネーブル信号ENを「1」のままにする。そして、認証情報比較部133は、カウント数が一定値に達したとき、イネーブル信号ENを「1」から「0」にするとともに、カウント数をリセットする。これにより、機密情報復号部134への入力信号Sinの入力が、一定時間のみ許可される。
機密情報復号部134は、イネーブル信号ENが「1」である期間に入力レジスタ131から入力された入力信号Sinの値を保持することが可能になっている。機密情報復号部134は、例えば、シフトレジスタを用いることで入力信号Sinを保持する。機密情報復号部134は、復号鍵136を用いて、保持した信号を復号し、復号された信号をバス127を介してサブプロセッサ121に出力する。
このようなセキュア入力部130は、次のような動作を行う。入力装置42からの入力信号Sinには、最初の5ビットに認証情報が含まれ、その後の所定ビットに、暗号化された機密情報が含まれる。認証情報比較部133は、入力信号Sinに含まれる認証情報と認証鍵135とが一致したと判定すると、イネーブル信号ENを「1」として、機密情報復号部134への入力情報Sinの入力を許可する。この時点から、機密情報復号部134には、暗号化された機密情報が入力されて保持される。
機密情報復号部134は、復号鍵136を用いて、保持している情報を復号し、復号された機密情報をサブプロセッサ121に出力する。このとき復号される機密情報には、例えば、情報の格納または更新を指示するためのコマンドや、格納または更新する鍵情報が含まれる。サブプロセッサ121は、復号されたコマンドを正しく解釈できたとき、復号された鍵情報をセキュアROM124の所定領域に格納する。
以上の構成を有するセキュア入力部130によれば、認証鍵135と一致する認証情報が入力された場合のみ、セキュアLSI120内のバス127への信号の入力が一定期間だけ許可される。これにより、秘匿された認証鍵135を知っている者のみが、セキュア入力部130を介して情報を入力することができるようになる。また、復号鍵136によって入力情報が正しく復号された場合のみ、入力された情報がセキュアROM124に格納される。これにより、認証鍵135を知っていたとしても、暗号化に使用する鍵情報を知らない者は、セキュアROM124に情報を格納することができない。このように、認証鍵135と復号鍵136による二重のセキュリティ機能を備えることにより、セキュア入力部130を介した情報入力のセキュリティが強固になる。
図5は、端末装置が備える機能の構成例について示すブロック図である。端末装置100は、配信コンテンツ再生部141、放送コンテンツ再生部142、機密情報処理部150および機密情報記憶部160を有する。
配信コンテンツ再生部141の処理は、メインプロセッサ111が所定のアプリケーションプログラム(例えば、配信コンテンツ再生プログラム)を実行することで実現される。配信コンテンツ再生部141は、配信センター31により提供される配信コンテンツの再生処理を制御する。
配信コンテンツ再生部141は、配信センター31から暗号化コンテンツを受信する。受信された暗号化コンテンツは、フラッシュメモリ102あるいはRAM101に格納される。配信コンテンツ再生部141は、暗号化コンテンツを復号するためのコンテンツ鍵の取得を、機密情報処理部150に依頼し、それ以後、機密情報処理部150と配信センター31との間のデータ転送を媒介する。そして、機密情報処理部150が配信センター31から暗号化コンテンツ鍵を受信し、受信した暗号化コンテンツ鍵を暗号演算回路122に復号させると、配信コンテンツ再生部141は、復号されたコンテンツ鍵を機密情報処理部150から受信する。配信コンテンツ再生部141は、機密情報処理部150から受信したコンテンツ鍵を用いて暗号化コンテンツを復号し、復号された配信コンテンツを伸張回路112に供給して、配信コンテンツを再生出力させる。
放送コンテンツ再生部142の処理は、メインプロセッサ111が所定のアプリケーションプログラム(例えば、放送コンテンツ再生プログラム)を実行することで実現される。放送コンテンツ再生部142は、放送局32から放送波を介して受信した放送コンテンツの再生処理を制御する。
放送コンテンツ再生部142は、放送波を介して受信した暗号化ワーク鍵および暗号化コンテンツ鍵の復号を、機密情報処理部150に依頼する。暗号化ワーク鍵は、セキュアLSI120に格納されたマスタ鍵によって暗号化されたワーク鍵であり、暗号化コンテンツ鍵は、ワーク鍵によって暗号化された、放送コンテンツを復号するためのコンテンツ鍵である。ワーク鍵およびコンテンツ鍵は、いずれも定期的に更新される。
放送コンテンツ再生部142は、復号されたコンテンツ鍵を機密情報処理部150から受信し、受信したコンテンツ鍵を用いて、放送波を介して受信した暗号化コンテンツを復号する。放送コンテンツ再生部142は、復号された放送コンテンツを伸張回路112に供給して、放送コンテンツを再生出力させる。
機密情報処理部150の処理は、サブプロセッサ121がセキュアLSI120用の専用プログラムを実行することで実現される。機密情報処理部150は、配信コンテンツ再生部141または放送コンテンツ再生部142からの依頼に応じて、コンテンツ再生に用いる鍵情報の取得や、鍵情報の復号制御を実行する。機密情報処理部150は、これらの処理の過程で、情報の暗号化や復号を暗号演算回路122に実行させ、また、乱数の発生を乱数発生回路126に実行させる。
機密情報記憶部160は、セキュアROM124の記憶領域によって構成される。機密情報記憶部160には、秘匿が必要な機密情報として、少なくとも、端末装置100の秘密鍵と、端末装置100のマスタ鍵とが格納されている。秘密鍵は、配信コンテンツの再生時に使用され、マスタ鍵は、放送コンテンツの再生時に使用される。また、秘密鍵およびマスタ鍵は、セキュア入力部130から入力されて、機密情報記憶部160に格納される。なお、秘密鍵とマスタ鍵とは、共通の鍵情報であってもよい。
また、機密情報記憶部160にはその他に、端末装置100の識別情報と、配信センター31の公開鍵とが格納される。これらの識別情報および公開鍵は、セキュア入力部130から入力されてもよいが、必ずしも秘匿が必要な情報ではないため、外部入出力部125から入力されてもよい。
次に、配信センター31が配信する配信コンテンツの再生処理について説明する。
端末装置100は、識別番号等の識別情報を有する。識別情報は、予めセキュアLSI120上のセキュアROM124に格納されている。ただし、この識別情報は、必ずしも秘匿が必要な情報ではない。なお、識別情報は、例えば、ユーザを識別するユーザIDであってもよい。
また、セキュアLSI120のサブプロセッサ121と配信センター31との間では、秘密鍵・公開鍵方式を用いた相互認証および暗号処理が行われる。セキュアLSI120上のセキュアROM124には、端末装置100の秘密鍵と、配信センター31の公開鍵とが格納されている。端末装置100の秘密鍵は秘匿が必要な情報であり、メインプロセッサ111からのアクセスが不可能な状態になっている。一方、配信センター31の公開鍵は、秘匿が必要な情報ではなく、例えば、端末装置100の外部から受信されて、外部入出力部125からセキュアLSI120に格納されてもよい。
配信センター31は、配信センター31の秘密鍵と、端末装置100の公開鍵とを管理している。公開鍵は端末装置ごとに用意されており、配信センター31は、端末装置から識別情報を受信することで、その端末装置に対応する公開鍵を判別することができる。
図6〜図7は、配信コンテンツの再生処理のシーケンス例について示す図である。図6〜図7において、メインプロセッサ111の処理は、図5の配信コンテンツ再生部141の処理に対応し、セキュアLSI120の処理のうちサブプロセッサ121の処理は、図5の機密情報処理部150の処理に対応する。
例えばユーザの入力操作により、配信コンテンツの再生処理が要求されたものとする。なお、配信コンテンツは、コンテンツ鍵によって暗号化された状態で、例えばフラッシュメモリ102に格納されているものとする。
メインプロセッサ111は、再生処理の要求操作に応じて、セキュアLSI120のサブプロセッサ121にコンテンツ鍵の取得を依頼する(ステップS11)。このとき、メインプロセッサ111は、再生対象のコンテンツを識別するコンテンツIDもサブプロセッサ121に通知する。
コンテンツ鍵の取得を依頼した後、メインプロセッサ111は、サブプロセッサ121からコンテンツ鍵が出力されて処理の終了を通知されるまでの間、サブプロセッサ121から出力される情報を配信センター31へ転送し、配信センター31から受信した情報をサブプロセッサ121に供給する処理を繰り返す。
サブプロセッサ121は、乱数発生回路126に乱数Aを生成させる(ステップS12)。サブプロセッサ121は、端末装置100の識別情報をセキュアROM124から読み出す(ステップS13)。なお、これらのステップS12,S13の処理順は逆でもよい。サブプロセッサ121は、生成された乱数Aおよび読み出した識別情報をメインプロセッサ111へ出力する(ステップS14)。メインプロセッサ111は、入力された乱数Aおよび識別情報を配信センター31へ送信する。配信センター31は、乱数Aと端末装置100の識別情報を受信する(ステップS15)。
配信センター31は、受信した乱数Aを配信センター31の秘密鍵で暗号化する(ステップS16)。配信センター31は、乱数Bを生成する(ステップS17)。配信センター31は、受信した識別情報を基に、端末装置100の公開鍵を検索する。そして、配信センター31は、ランダムにセッション鍵を生成する。セッション鍵は、端末装置100との間の共通鍵として使用される鍵情報である。配信センター31は、生成したセッション鍵を、検索した端末装置100の公開鍵で暗号化する(ステップS18)。なお、これらのステップS16〜S18の処理順は変更可能である。
配信センター31は、暗号化した乱数A、生成した乱数Bおよび暗号化したセッション鍵を含む情報を端末装置100に送信する。メインプロセッサ111は、配信センター31が送信した情報を受信する(ステップS19)。メインプロセッサ111は、受信した情報をセキュアLSI120に出力する(ステップS20)。
サブプロセッサ121は、入力された暗号化された乱数Aを配信センター31の公開鍵で暗号演算回路122に復号させる。サブプロセッサ121は、乱数Aが復号できたことで、配信センター31との認証に成功したことを確認する(ステップS21)。サブプロセッサ121は、入力された乱数Bを端末装置100の秘密鍵を用いて暗号演算回路122に暗号化させる(ステップS22)。サブプロセッサ121は、入力されたセッション鍵を端末装置100の秘密鍵を用いて暗号演算回路122に復号させる(ステップS23)。サブプロセッサ121は、暗号化された乱数Bを、配信センター31へ送信するためにメインプロセッサ111へ出力する(ステップS24)。メインプロセッサ111は、入力された乱数Bを配信センター31へ送信する。配信センター31は、乱数Bを受信する(ステップS25)。
配信センター31は、受信した乱数Bを端末装置100の公開鍵で復号する。配信センター31は、乱数Bが復号できたことで、端末装置100との認証に成功したことを確認する(ステップS31)。そして、配信センター31は、相互認証成功の旨を通知するための通知情報をセッション鍵で暗号化する(ステップS32)。配信センター31は、暗号化した通知情報を端末装置100へ送信する。メインプロセッサ111は、暗号化された通知情報を受信する(ステップS33)。メインプロセッサ111は、暗号化された通知情報をセキュアLSI120へ出力する(ステップS34)。
サブプロセッサ121は、入力された通知情報をステップS23で復号されたセッション鍵を用いて暗号演算回路122に復号させ、配信センター31との相互認証に成功したことを確認する(ステップS35)。なお、セッション鍵の復号(ステップS23)は、ステップS21の実行からステップS35の実行直前までの任意のタイミングで実行されればよい。
サブプロセッサ121は、コンテンツIDを、配信センター31へ送信するためにメインプロセッサ111へ出力する(ステップS36)。メインプロセッサ111は、入力されたコンテンツIDを配信センター31へ送信する(ステップS37)。なお、サブプロセッサ121から配信センター31へのコンテンツIDの送信は、例えば、ステップS14,S15の時点で行われてもよい。
配信センター31は、コンテンツIDを受信し、受信したコンテンツIDに対応するコンテンツ鍵を検索する。配信センター31は、検索されたコンテンツ鍵をセッション鍵で暗号化する(ステップS38)。配信センター31は、暗号化したコンテンツ鍵を端末装置100に送信する。メインプロセッサ111は、暗号化されたコンテンツ鍵を受信する(ステップS39)。メインプロセッサ111は、暗号化されたコンテンツ鍵をセキュアLSI120へ出力する(ステップS40)。
サブプロセッサ121は、入力されたコンテンツ鍵をステップS23で復号されたセッション鍵を用いて暗号演算回路122に復号させる(ステップS41)。サブプロセッサ121は、復号したコンテンツ鍵をメインプロセッサ111に出力して、コンテンツ鍵取得処理の終了を通知する(ステップS42)。
メインプロセッサ111は、コンテンツ鍵で暗号化コンテンツを復号する(ステップS43)。メインプロセッサ111は、復号したコンテンツを伸張回路112に出力して、再生出力させる(ステップS44)。
このように、端末装置100は、配信センター31と相互認証を行う際、セキュアLSI120の有する記憶領域に格納された秘密鍵を用いる。また、端末装置100は、相互認証に用いる暗号化データの復号をセキュアLSI120上で実行する。そして、端末装置100は、相互認証によって得られたセッション鍵を用いたコンテンツ鍵の復号をセキュアLSI120上で実行する。これにより、秘密鍵およびセッション鍵を外部から覗き見されたり、改ざんされたりすることを防止でき、コンテンツ鍵の取得の際のセキュリティを確保できる。
次に、放送局32が配信する放送コンテンツの再生処理について説明する。放送コンテンツは、コンテンツ鍵によって暗号化された状態で放送局32から放送波を介して送信される。また、コンテンツ鍵は、ワーク鍵によって暗号化された状態で、暗号化放送コンテンツとともに放送波を介して送信される。コンテンツ鍵は、例えば数秒に1回など、定期的に更新される。
また、ワーク鍵は、ユーザごとに個別のマスタ鍵によって暗号化された状態で、放送波を介して送信される。ワーク鍵は、コンテンツ鍵より長い周期で更新される。例えば、放送コンテンツ視聴サービスが1ヶ月単位で契約される場合には、月に1回、契約が更新される度にワーク鍵も更新される。
本実施の形態においては、マスタ鍵はセキュアLSI120のセキュアROM124に格納される。マスタ鍵は秘匿が必要な情報であり、メインプロセッサ111からのアクセスが不可能な状態になっている。
図8は、ワーク鍵取得処理のシーケンス例について示す図である。図8において、放送局32から送信される暗号化ワーク鍵には、更新番号が付加されている。更新番号は、放送局32により暗号化ワーク鍵とともに更新される。また、放送局32は、端末装置100の識別情報とマスタ鍵を対応付けて管理する。端末装置100の識別情報は、上記のユーザIDに対応する情報である。マスタ鍵は共通鍵とする。
なお、マスタ鍵は、端末装置100の秘密鍵でもよい。この場合、放送局32は、端末装置100のマスタ鍵に対応する公開鍵を、端末装置100の識別情報と対応付けて管理する。
メインプロセッサ111は、暗号化ワーク鍵が更新されたことを確認する。ワーク鍵の更新は、例えば、月1回行われる。端末装置100のフラッシュメモリ102には、以前に受信したものの中で最新の更新番号が記憶されており、メインプロセッサ111は、暗号化ワーク鍵に付加された更新番号と、フラッシュメモリ102に記憶された更新番号とを比較することで、更新の有無を判定する(ステップS51)。メインプロセッサ111は、暗号化ワーク鍵が放送局32により更新されていた場合、更新された暗号化ワーク鍵をセキュアLSI120へ出力する(ステップS52)。また、メインプロセッサ111は、フラッシュメモリ102に記憶されていた更新番号を、受信した更新番号に書き替える。
サブプロセッサ121は、入力された暗号化ワーク鍵をマスタ鍵を用いて暗号演算回路122に復号させる(ステップS53)。サブプロセッサ121は、復号したワーク鍵をセキュアROM124等のセキュアLSI120の有する記録媒体に格納する(ステップS54)。
図9は、放送コンテンツ再生処理のシーケンス例について示す図である。図9において、放送局32から送信される暗号化コンテンツ鍵には、更新番号が付加されている。更新番号は、放送局32により暗号化コンテンツ鍵とともに更新される。
メインプロセッサ111は、暗号化コンテンツ鍵が更新されたことを定期的に確認する。コンテンツ鍵は、例えば、数秒に1回更新され、コンテンツ更新情報が来る度に以下の方法で更新される。端末装置100のフラッシュメモリ102には、以前に受信したものの中で最新の更新番号が記憶されており、メインプロセッサ111は、コンテンツ更新情報に含まれる暗号化コンテンツ鍵に付加された更新番号と、フラッシュメモリ102に記憶された更新番号とを比較することで、更新の有無を判定する(ステップS61)。メインプロセッサ111は、暗号化コンテンツ鍵が更新されていれば、更新された暗号化コンテンツ鍵をセキュアLSI120へ出力する(ステップS62)。また、メインプロセッサ111は、フラッシュメモリ102に記憶されていた更新番号を、受信した更新番号に書き替える。
サブプロセッサ121は、暗号化コンテンツ鍵をステップS54で格納したワーク鍵を用いて暗号演算回路122に復号させる(ステップS63)。サブプロセッサ121は、復号したコンテンツ鍵をメインプロセッサ111へ出力する(ステップS64)。
メインプロセッサ111は、入力されたコンテンツ鍵で、テレビ受信部106から供給される暗号化放送コンテンツを復号する(ステップS65)。メインプロセッサ111は、ステップS42と同様に、復号した放送コンテンツを伸張回路112に出力する(ステップS66)。
図8〜図9で示すとおり、端末装置100は、セキュアLSI120上の記録装置に格納されたマスタ鍵を用いて、暗号化ワーク鍵をセキュアLSI120上で復号する。また、端末装置100は、復号されたワーク鍵を用いて、暗号化コンテンツ鍵をセキュアLSI120上で復号する。これにより、マスタ鍵およびワーク鍵を外部から改ざんされたり、覗き見されたりすることを防止でき、コンテンツ鍵の取得の際のセキュリティを確保できる。
次に、セキュアLSI120のサブプロセッサ121で実行されるプログラムについて説明する。セキュアLSI120においては、メインプロセッサ111とは異なり、仕様が公開されていない専用のプログラムが実行される。これにより、セキュアLSI120のサブプロセッサ121がハッキングされるリスクが低減し、セキュアLSI120における処理のセキュリティが向上する。例えば、もしサブプロセッサ121で実行されるプログラムのコードが漏洩した場合でも、そのプログラムの解析が容易ではないため、サブプロセッサ121がハッキングされるリスクが低くなる。専用プログラムは、例えば、図10に示すような専用命令コードを用いて記述される。
また、第2の実施の形態において、専用プログラムがセキュアLSI120上で実行される際、変換プログラムを用いて、専用命令コードがサブプロセッサ121に対応する命令コードに変換される。具体的には、まず、専用プログラムおよび変換プログラムが、セキュアROM124に格納されている。この状態で、専用プログラム実行時に、実行される専用プログラムを構成する専用命令コードは、サブプロセッサ121に対応する命令コード(例えば機械語)に変換プログラムにより変換される。そして、変換された命令コードは、サブプロセッサ121に実行される。このような変換プログラムを用いることで、サブプロセッサ121の種類に依存しない専用プログラムを使用することができるようになり、専用プログラムの開発が容易になる。
図10は、専用命令コードのリストの例について示す図である。命令コードリスト180は、セキュアLSI120における専用命令コードの一覧である。命令コードリスト180は、セキュアLSI120上のセキュアROM124に記憶されている。そして、変換プログラム実行の際、復号された命令コードリスト180はセキュアRAM123上に展開される。
命令コードリスト180は、命令およびコードの項目を有する。命令の項目には、サブプロセッサ121が実行可能な命令が設定される。コードの項目には、命令の項目に対応する専用命令コードが2進数で設定される。なお、実際に命令が発行される際には、コードに対してレジスタとアドレスとが指定される。以下の説明においては、指定されるレジスタの番号「x」、指定されるアドレスを「a」と記述する。
第2の実施の形態において、専用命令コードの命令には、例えば、「加算」、「減算」、「ロード」、「ストア」、「比較」、「分岐1」、「分岐2」、「設定」、「加算1」、「減算1」、「暗号化1」、「暗号化2」、「復号化1」、「復号化2」、「乱数発生1」、「乱数発生2」、「出力0」、「出力1」、「出力2」、「入力0」、「入力1」、「入力2」がある。
例えば、「加算」は、指定したレジスタxの内容と、指定したアドレスaの内容とを加算し、加算結果をレジスタxに格納する命令である。また、「加算」に対応する命令コードは、00000001となる。
「減算」は、指定したレジスタxの内容から、指定したアドレスaの内容を減算し、減算結果をレジスタxに格納する命令である。また、「減算」に対応する命令コードは、00000010となる。
「ロード」は、指定したアドレスaの内容を指定したレジスタxに格納する命令である。また、「ロード」に対応する命令コードは、00000011となる。
「ストア」は、指定したレジスタxの内容を指定したアドレスaに格納する命令である。また、「ストア」に対応する命令コードは、00000100となる。
「比較」は、指定したレジスタxの内容と指定したアドレスaの内容とを比較し、比較結果をステータスレジスタ等の所定のレジスタに格納する命令である。例えば、指定したレジスタxの内容と指定したアドレスaの内容が一致した場合、所定のレジスタには、「一致」を示す情報が格納される。また、「比較」に対応する命令コードは、00000101となる。
「分岐1」は、「比較」命令における上記所定のレジスタに格納された比較結果が「一致」を示す情報である場合、指定したアドレスaに命令を分岐させる命令である。また、「分岐1」に対応する命令コードは、00000110となる。
「分岐2」は、無条件に、指定したアドレスaに命令を分岐させる命令である。また、「分岐2」に対応する命令コードは、00000111となる。
「設定」は、指定したデータdを指定したレジスタxに格納する命令である。また、「設定」に対応する命令コードは、10000000となる。
「加算1」は、指定したデータdを指定したレジスタxの内容に加算し、加算結果を指定したレジスタxに格納する命令である。また、「加算1」に対応する命令コードは、10000001となる。
「減算1」は、指定したデータdを指定したレジスタxの内容から減算し、減算結果を指定したレジスタxに格納する命令である。また、「減算1」に対応する命令コードは、10000010となる。
「暗号化1」は、暗号演算回路122における暗号処理用の回路を初期化する命令である。暗号処理用回路の初期化には、例えば、暗号方式(例えば、AES(Advanced Encryption Standard)暗号やDES(Data Encryption Standard)暗号)や鍵の設定等がある。また、「暗号化1」に対応する命令コードは、10010000となる。
「暗号化2」は、指定したレジスタxの内容を暗号化し、暗号化した内容を指定したアドレスaに格納する命令である。また、「暗号化2」に対応する命令コードは、10010001となる。
「復号化1」は、暗号演算回路122における復号処理用の回路を初期化する命令である。また、「復号化1」に対応する命令コードは、10010010となる。
「復号化2」は、指定したレジスタxの内容を復号し、復号した内容を指定したアドレスaに格納する命令である。また、「復号化2」に対応する命令コードは、10010011となる。
「乱数発生1」は、乱数発生回路126を初期化する命令である。乱数発生回路126の初期化は、例えば、乱数発生に用いる初期値の設定がある。また、「乱数発生1」に対応する命令コードは、10010100となる。
「乱数発生2」は、乱数を生成し、生成した乱数を指定したレジスタxに設定し、設定したレジスタxの内容を指定したアドレスaに格納する命令である。また、「乱数発生2」に対応する命令コードは、10010101となる。
「出力0」は、外部入出力部125における出力回路を初期化する命令である。出力回路の初期化は、例えば、外部入出力部125の出力回路を有効にするための設定がある。また、「出力0」に対応する命令コードは、10010110となる。
「出力1」は、指定したレジスタxの内容の数のデータを、指定したアドレスaから出力回路へ順次出力する命令である。例えば、レジスタxの内容=2を指定して「出力1」の命令を実行したとき、アドレスa、アドレスa+1の内容が順に出力回路に出力される。また、「出力1」に対応する命令コードは、10010111となる。
「出力2」は、「出力1」により出力されたデータがメインプロセッサ111に読み出されたか否かを示す情報を、指定したレジスタxに格納する命令である。また、「出力2」に対応する命令コードは、10011000となる。
「入力0」は、外部入出力部125における入力回路を初期化する命令である。また、「入力0」に対応する命令コードは、10011001となる。
「入力1」は、指定したレジスタxの内容の数のデータを、指定したアドレスaから入力回路へ順次入力する命令である。また、「入力1」に対応する命令コードは、10011010となる。
「入力2」は、「入力1」により入力されたデータがサブプロセッサ121に読み込まれたか否かを示す情報を、指定したレジスタxに格納する命令である。また、「入力2」に対応する命令コードは、10011011となる。
セキュアLSI120上で専用プログラムを実行する際、まず、専用プログラムを構成する専用命令コードは、命令コードリスト180を参照した変換プログラムによりサブプロセッサ121に対応する命令コードに変換される。そして、変換された命令コードをサブプロセッサ121が実行する。
以上のように、セキュアLSI120のサブプロセッサ121が専用プログラムを実行することで、セキュアLSI120における処理や記憶情報のセキュリティを向上させることができる。
ただし、上記の命令コードリスト180が漏洩した場合、専用プログラムの内容が解析可能となってしまい、セキュリティ上問題が生じるおそれがある。そこで、端末装置100は、次のように専用プログラムの置換えが可能とされていてもよい。命令コードリスト180が漏洩した場合、セキュアLSI120において、命令コードリスト180および専用プログラムを別の内容に置換えることで、セキュリティを確保できる。
図11は、命令コードリストの置換え処理のシーケンス例について示す図である。図11では、命令コードリスト180が漏洩したときに、端末装置100が命令コードリスト180および専用プログラムを更新するシーケンス例について説明する。
なお、命令コードリストおよび命令プログラムは、暗号化された状態でセキュアROM124に格納され、実行時に所定の鍵によって復号されてセキュアRAM123に展開されるものとする。
また、図11の説明におけるサブプロセッサ121の処理は、例えば、サブプロセッサ121がプログラム置換え用の所定のプログラムに従って実現される。この置換え用プログラムが置換えの対象とするプログラムには、置換え用プログラム自身も含まれる。また、図11の説明におけるメインプロセッサ111の処理は、プログラム置換えをサブプロセッサ121に依頼するためのプログラムに従って実行される。
まず、メインプロセッサ111は、放送局32から送信される、更新後の命令コードリストを監視する(ステップS71)。放送局32が、更新後の暗号化された命令コードリスト(以下、暗号化命令コードリスト)を端末装置100へ送信すると、メインプロセッサ111は、暗号化命令コードリストを受信する(ステップS72)。メインプロセッサ111は、受信した暗号化命令コードリストをセキュアLSI120へ出力する(ステップS73)。
サブプロセッサ121は、入力された暗号化命令コードリストで、セキュアROM124に記憶された暗号化命令コードリストを更新する(ステップS74)。サブプロセッサ121は、更新後の暗号化命令コードリストを暗号演算回路122に復号させる。復号させるための鍵は、予めセキュア入力部130を経由してセキュアROM124に格納されている(ステップS75)。サブプロセッサ121は、復号された更新後の命令コードリストをセキュアRAM123に展開する(ステップS76)。サブプロセッサ121は、更新後の命令コードリストを展開した旨をメインプロセッサ111に出力する(ステップS77)。
次に、メインプロセッサ111は、放送局32から送信され、更新後の専用プログラムを監視する。更新後の専用プログラムは、更新後の命令コードリストに含まれる専用命令コードにより構成される(ステップS78)。放送局32は、暗号化された更新後の専用プログラム(以下、暗号化専用プログラム)を端末装置100へ送信し、メインプロセッサ111は、暗号化された専用プログラムを受信する(ステップS79)。メインプロセッサ111は、受信した暗号化専用プログラムをセキュアLSI120へ出力する(ステップS80)。
サブプロセッサ121は、入力された更新後の暗号化専用プログラムで、セキュアROM124に記憶された暗号化専用プログラムを更新する(ステップS81)。サブプロセッサ121は、更新した更新後の暗号化専用プログラムを暗号演算回路122に復号させる。復号させるための鍵は、予めセキュア入力部130を経由してセキュアROM124に格納されている(ステップS82)。サブプロセッサ121は、復号した更新後の専用プログラムをセキュアRAM123に展開する(ステップS83)。
このように、命令コードリストおよび専用プログラムを置換えることで、命令コードリスト180の内容が漏洩しても、専用プログラムの内容の覗き見・改ざんを防止できる。
以上の第2の実施の形態によれば、マスタ鍵等の機密情報は、セキュアLSI120にアクセスできるセキュア入力部130を介して格納される。これにより、機密情報をセキュアROM124に格納する際、外部からアクセスされる可能性のあるシステムLSI110等を介さないため、第三者に覗き見等される可能性が減少される。よって、端末装置100は、より安全にセキュアRAM123に機密情報を格納できる。
また、セキュア入力部130を介した機密情報の入力処理は、少なくともセキュアLSI120の製造後の任意のタイミングで行うことが可能である。これにより、販売された端末装置100のために提供されるサービスの形態に合わせた適切な機密情報をセキュアROM124に格納できるようになり、端末装置100の汎用性が向上する。
また、セキュアLSI120は、システムLSI110とデータを入出力できる外部入出力部125を介して、暗号化コンテンツ鍵等の暗号化データを取得する。そして、セキュアLSI120は、取得した暗号化データをセキュアROM124に格納された秘密鍵等を用いて復号し、復号したデータをシステムLSI110へ出力する。これにより、端末装置100は、秘密鍵等の機密情報を外部に知られることのないセキュアLSI120内で暗号化データを復号できるため、より安全に暗号化データを復号できる。
また、端末装置100は、配信センター31からコンテンツ鍵を取得する際、セキュアLSI120で乱数を発生させる。次に、端末装置100は、発生させた乱数と、予めセキュアROM124に格納されている識別情報および秘密鍵とを用いて配信センター31と相互認証する。相互認証に成功した場合、端末装置100は、配信センター31からコンテンツ鍵を取得できる。これにより、端末装置100は、機密情報が改ざんされたり覗き見されたりせずに、配信センター31と相互認証できる。
また、端末装置100は、セキュアLSI120上でのみ動作する専用プログラムを用いる。これにより、専用命令コードの覗き見により専用プログラムを解析することが困難となる。
また、端末装置100は、セキュアLSI120において、変換プログラムおよび命令コードリスト180を用いて、専用プログラムを構成する専用命令コードをサブプロセッサ121に対応する命令コードに変換する。そして、サブプロセッサ121は、変換した命令コードを実行する。これにより、専用プログラムは、セキュア入力部130上のサブプロセッサ121に対応する命令コードに依存せずにセキュアLSI120上で実行可能となる。
また、セキュアROM124上に記憶した命令コードリスト180および変換プログラムは、置換え可能である。これにより、何らかの理由で命令コードリスト180の内容が漏洩したとしても、専用プログラムの内容の解析を防止できる。
ところで、端末装置100においては、セキュアROM124の容量が小さくセキュアLSI120上に多くの機密情報を保存できない場合がある。この場合、端末装置100は、セキュアLSI120外の記憶装置(例えば、フラッシュメモリ102)に暗号化された機密情報を保存してもよい。図12〜図13では、機密情報をセキュアLSI120外の記憶装置であるRAM101やフラッシュメモリ102に入出力する方法について説明する。ここでは、放送コンテンツを再生する場合を例に機密情報の保存処理について説明する。また、マスタ鍵は、共通鍵であり、セキュアROM124に格納されている。
なお、図12〜図13において、サブプロセッサ121の処理は、図5の機密情報処理部150の処理に対応し、メインプロセッサ111の処理は、図5の放送コンテンツ再生部142の処理に対応する。
図12は、機密情報の外部保存処理の例について示すフローチャートである。この外部保存処理は、例えば、図8のステップS53で復号されたワーク鍵を再暗号化してセキュアLSI120の外部に保存する処理や、図9のステップS63で復号されたコンテンツ鍵を再暗号化してセキュアLSI120の外部に保存する処理などに適用できる。
(ステップS91)サブプロセッサ121は、機密情報のハッシュ値を計算する。
(ステップS92)サブプロセッサ121は、計算したハッシュ値をセキュアROM124に格納する。
(ステップS93)サブプロセッサ121は、機密情報をセキュアROM124に格納されたマスタ鍵等を用いて暗号演算回路122に暗号化させる。以下、暗号化した機密情報のことを、暗号化機密情報と記載する。
(ステップS94)サブプロセッサ121は、暗号化機密情報をセキュアLSI120外の記憶装置(例えば、RAM101やフラッシュメモリ102等)に格納するようメインプロセッサ111に要求する。
図13は、機密情報の読み出し処理の例について示すフローチャートである。図13では、図12の処理によってセキュアLSI120の外部の記憶領域に格納された機密情報を用いて所定の処理を実行する場合について説明する。
(ステップS101)サブプロセッサ121は、セキュアLSI120の外部の記憶領域からセキュアLSI120上に暗号化機密情報を出力するようメインプロセッサ111に要求する。要求を受けたメインプロセッサ111は、図12の処理によって外部の記憶領域に記憶された暗号化機密情報を、サブプロセッサ121に出力する。
(ステップS102)サブプロセッサ121は、取得した暗号化機密情報をマスタ鍵を用いて暗号演算回路122に復号させる。
(ステップS103)サブプロセッサ121は、復号された機密情報のハッシュ値を計算する。
(ステップS104)サブプロセッサ121は、計算したハッシュ値と、ステップS92で格納したハッシュ値が一致するか判定する。ハッシュ値が一致する場合、処理をステップS105へ進める。ハッシュ値が一致しない場合処理をステップS106へ進める。
(ステップS105)サブプロセッサ121は、機密情報を用いて所定の処理を実行する。
(ステップS106)サブプロセッサ121は、処理を中止し、メインプロセッサ111に、例えば機密情報が改ざんされたこと等を通知する通知情報を出力する。
図12〜図13で示すように、端末装置100は、機密情報をセキュアLSI120外の記憶装置に格納する場合、機密情報のハッシュ値をセキュアROM124等に格納する。次に、セキュアLSI120外の記憶装置に格納された機密情報を用いる場合、セキュアLSI120上で外部の記憶領域に格納された機密情報のハッシュ値を計算する。そして、計算したハッシュ値と、セキュアROM124上に格納されたハッシュ値と一致した場合、機密情報は改ざんされていないと判定する。これにより、セキュアLSI120外の記憶装置に格納された機密情報の改ざんの有無を確認できる。
次に、メインプロセッサ111がコンテンツ鍵を用いて配信コンテンツや放送コンテンツを復号する際のセキュリティを向上させることが可能な変形例について説明する。
第2の実施の形態の端末装置100が上記の方法によるコンテンツ鍵の取得後にコンテンツを出力する際、コンテンツを処理するコンテンツ処理プログラム(例えば、配信コンテンツ再生プログラムや放送コンテンツ再生プログラム)が、覗き見されたり改ざんされたりする場合がある。この場合、コンテンツ鍵が漏洩して、不特定多数が暗号化コンテンツを再生可能になってしまうことがあり得る。図14〜図15において、コンテンツ処理プログラムの覗き見や改ざんを防止する方法の例について説明する。
図14は、プログラムコードの再構成の例について示す図である。図14において、暗号化コンテンツ処理プログラム190は、フラッシュメモリ102に格納されている。暗号化コンテンツ処理プログラム190は、メインプロセッサ111がコンテンツを処理するためのコンテンツ処理プログラム191を暗号化したものである。また、暗号化コンテンツ処理プログラム190は、マスタ鍵等セキュアROM124に記憶された復号鍵により復号できるものとする。
まず、サブプロセッサ121は、メインプロセッサ111を介して、暗号化コンテンツ処理プログラム190をフラッシュメモリ102から読み込み、読み込んだ暗号化コンテンツ処理プログラム190を復号鍵で暗号演算回路122に復号させる。復号されたコンテンツ処理プログラム191は、命令コード群であるコード群#1,#2,#3を含む。各コード群は、コード群#1,#2,#3の順に並んでいる。
次に、サブプロセッサ121は、復号されたコンテンツ処理プログラム191を起動するごとに、コンテンツ処理プログラム191のコード群#1,#2,#3を並べ替えて、メインプロセッサ111を介してRAM101に展開する。そして、サブプロセッサ121は、展開されたコンテンツ処理プログラム191をメインプロセッサ111に実行させる。例えば、1回目の実行時において、コード群#3,#2,#1の順に並べ替えられたコンテンツ処理プログラム191aが、RAM101に展開される。また、2回目の実行時において、コード群#2,#1,#3の順に並べ替えられたコンテンツ処理プログラム191bが、RAM101に展開される。RAM101に配置されたコード群の配置順序などが違うのでハッカーのコード解析が困難になり、ハッキングを困難にできる。なお、コード群の配置が毎回異なるが、コード群の外から見た機能は同じである。
このように、サブプロセッサ121は、メインプロセッサ111がコンテンツ処理プログラム191を実行する度に、コンテンツ処理プログラム191のコード群#1,#2,#3を並べ替えてRAM101に展開する。これにより、コンテンツ処理プログラム191が実行される度に命令コードの並ぶ順番が変わっているため、第三者が覗き見によりコンテンツ処理プログラムを解析することが困難となる。
図15は、プログラムとの相互認証の例について示す図である。図15上段において、まず、暗号化コンテンツ処理プログラム190は、図14と同様に、セキュアLSI120によりコード群#1,#2,#3の命令コードを含むコンテンツ処理プログラム191に復号される(ステップS111)。
この状態で、サブプロセッサ121は、コード群#1,#2,#3および定数#1,#2を並べ替える。ここでは例として、コード群#3,#2、定数#1、コード群#1、定数#2の順に並べ替えられたコンテンツ処理プログラム191cが生成される。定数#1,#2は、セキュアLSI120の乱数発生回路126によってそれぞれランダムに生成され、サブプロセッサ121とコンテンツ処理プログラム191cとの相互認証に用いられる。定数#1,#2は、セキュアLSI120上の記憶領域(例えば、セキュアRAM123、セキュアROM124等)にも格納される。そして、サブプロセッサ121は、メインプロセッサ111に、並べ替えられたコンテンツ処理プログラム191cをRAM101に展開させる(ステップS112)。
次に、図15下段において、コンテンツ処理プログラム191cがメインプロセッサ111に実行された後、サブプロセッサ121は、乱数Cを生成し、生成した乱数Cをメインプロセッサ111に出力する(ステップS113)。メインプロセッサ111は、受信した乱数Cとコンテンツ処理プログラム191cに含まれる定数#1との和をサブプロセッサ121へ出力する(ステップS114)。
サブプロセッサ121は、サブプロセッサ121が出力した乱数CとセキュアLSI120上に格納されている定数#1との和と、メインプロセッサ111から入力された値とが一致した場合、コンテンツ処理プログラム191cの認証に成功したと判定する。サブプロセッサ121は、コンテンツ処理プログラム191cの認証に成功した場合、受信した値と定数#2との和をコンテンツ処理プログラム191cに出力する(ステップS115)。メインプロセッサ111は、メインプロセッサ111がステップS114で出力した値とコンテンツ処理プログラム191cに含まれる定数#2との和と、サブプロセッサ121から入力された値が一致した場合、サブプロセッサ121の認証に成功したと判定する。メインプロセッサ111は、以上のように相互認証が正常に完了すると、コンテンツ処理プログラム191cを実行する。
このように、サブプロセッサ121は、コンテンツ処理プログラム191をメインプロセッサ111が実行する際、コンテンツ処理プログラム191に含まれるコードと予めセキュアLSI120上の記憶領域に格納されている定数を並べ替えたコンテンツ処理プログラム191cをRAM101に展開する。そして、展開したコンテンツ処理プログラム191cに含まれる定数を用いて相互認証することで、コンテンツ処理プログラム191cの改ざんの有無を判定することができる。これにより、コンテンツ鍵等、コンテンツ処理プログラム191が取り扱う機密情報が漏洩する可能性を低下させることができる。
なお、前述のように、第1の実施の形態の情報処理は、情報処理装置1にプログラムを実行させることで実現でき、第2の実施の形態の情報処理は、端末装置100にプログラムを実行させることで実現できる。このようなプログラムは、コンピュータ読み取り可能な記録媒体に記録しておくことができる。記録媒体としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリ等を使用できる。磁気ディスクには、FD(Floppy Disk)およびHDDが含まれる。光ディスクには、CD(Compact Disc)、CD−R(Recordable)/RW(Rewritable)、DVD(Digital Versatile Disc)およびDVD−R/RWが含まれる。
プログラムを流通させる場合、例えば、プログラムを他のコンピュータの記憶装置に格納しておき、ネットワーク40経由でプログラムを配布することができる。コンピュータは、例えば、他のコンピュータから受信したプログラムを、記憶装置(例えば、フラッシュメモリ102)に格納し、当該記憶装置からプログラムを読み込んで実行する。ただし、他のコンピュータからネットワーク40を介して受信したプログラムを直接実行してもよい。また、上記の情報処理の少なくとも一部を、DSP、ASIC、PLD(Programmable Logic Device)等の電子回路で実現することも可能である。
上記については単に本発明の原理を示すものである。更に、多数の変形や変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応する全ての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
1 情報処理装置
2 第1の通信路
3 第2の通信路
4 暗号化データ
5 復号化データ
6 鍵
10 セキュアモジュール
11 入力部
12 メモリ
13 第2の制御回路
20 第1の制御回路
セキュアLSI120は、サブプロセッサ121、暗号演算回路122、セキュアRAM123、セキュアROM(Read Only Memory)124、外部入出力部125、乱数発生回路126およびセキュア入力部130を有する。これらの各ユニットは、バス127に接続されている。また、外部入出力部125は、バス113,127に接続されている。
認証情報比較部133は、認証処理を行う回路であり、機密情報復号部134は、暗号解読処理を行う回路である。認証情報比較部133は、機密情報復号部134に対してイネーブル信号ENを出力する。イネーブル信号ENは、機密情報復号部134に対する入力レジスタ131からの入力信号Sinの入力可否を指示するための信号である。初期状態では、イネーブル信号ENの値は「0」であり、このとき、機密情報復号部134への入力信号Sinの入力は禁止された状態となる。
このようなセキュア入力部130は、次のような動作を行う。入力装置42からの入力信号Sinには、最初の5ビットに認証情報が含まれ、その後の所定ビットに、暗号化された機密情報が含まれる。認証情報比較部133は、入力信号Sinに含まれる認証情報と認証鍵135とが一致したと判定すると、イネーブル信号ENを「1」として、機密情報復号部134への入力信号Sinの入力を許可する。この時点から、機密情報復号部134には、暗号化された機密情報が入力されて保持される。
なお、命令コードリストおよび専用プログラムは、暗号化された状態でセキュアROM124に格納され、実行時に所定の鍵によって復号されてセキュアRAM123に展開されるものとする。

Claims (14)

  1. セキュアモジュールと、
    前記セキュアモジュールの外部に設けられ、第1の通信路を通じて暗号化データを前記セキュアモジュールに入力する第1の制御回路と、
    を備え、
    前記セキュアモジュールは、
    前記第1の制御回路からの読み書きが不可能なメモリであって、前記暗号化データの復号に用いられる鍵が格納されたメモリと、
    前記鍵を用いて前記暗号化データを復号し、前記第1の通信路を通じて前記第1の制御回路に出力する第2の制御回路と、
    前記第1の通信路とは分離された第2の通信路を通じて入力された前記鍵を、前記メモリに格納する入力部と、
    を有することを特徴とする情報処理装置。
  2. 前記暗号化データは、画像データまたは音声データを少なくとも含む、暗号化されたコンテンツデータを復号するための復号鍵が暗号化されたデータであり、
    前記第1の制御回路は、前記暗号化データを復号して得られた前記復号鍵を前記第2の制御回路から受信し、受信した前記復号鍵を用いて前記暗号化されたコンテンツデータを復号する、
    ことを特徴とする請求の範囲第1項記載の情報処理装置。
  3. 前記メモリには、前記暗号化データの復号の制御を含む処理を実行するための専用プログラムが格納され、
    前記第2の制御回路は、前記専用プログラムを実行するプロセッサを有する、
    ことを特徴とする請求の範囲第1項または第2項記載の情報処理装置。
  4. 前記第2の制御回路は、暗号化された更新用の専用プログラムを前記第1の制御回路から受信し、暗号化された前記更新用の専用プログラムを前記鍵を用いて復号し、復号された前記更新用の専用プログラムによって前記メモリに格納された前記専用プログラムを書き替えることを特徴とする請求の範囲第3項記載の情報処理装置。
  5. 前記第2の制御回路は、乱数を出力する機能を有し、前記暗号化データを送信する前記情報処理装置外の送信装置との間で、前記第1の制御回路を介し、出力した乱数を用いて相互認証処理を行い、前記相互認証処理が成功すると、前記暗号化データを前記制御回路を介して受信する、
    ことを特徴とする請求の範囲第1項乃至第4項のいずれか1項に記載の情報処理装置。
  6. 前記入力部は、前記第2の通信路を通じて入力された認証情報を、前記セキュアモジュール内に予め格納された認証情報と比較し、入力された認証情報と格納された認証情報とが一致したとき、前記第2の通信路から入力された情報を当該入力部から前記メモリに出力することを一時的に許可する認証回路を有することを特徴とする請求の範囲第1項乃至第5項のいずれか1項に記載の情報処理装置。
  7. 前記入力部は、前記第2の通信路を通じて入力された情報を、前記セキュアモジュール内に予め格納された入力部用鍵情報を用いて復号する復号回路を有することを特徴とする請求の範囲第1項乃至第6項のいずれか1項に記載の情報処理装置。
  8. セキュアモジュールと、
    前記セキュアモジュールの外部に設けられ、第1の通信路を通じて暗号化データを前記セキュアモジュールに入力する第1の制御回路と、
    を備え、
    前記セキュアモジュールは、
    前記第1の制御回路からの読み書きが不可能なメモリであって、前記暗号化データの復号に用いられる鍵が格納されたメモリと、
    前記鍵を用いて前記暗号化データを復号し、前記第1の通信路を通じて前記第1の制御回路に出力する第2の制御回路と、
    前記第1の通信路とは分離された第2の通信路を通じて入力された前記鍵を、前記メモリに格納する入力部と、
    を有することを特徴とする半導体装置。
  9. 前記暗号化データは、画像データまたは音声データを少なくとも含む、暗号化されたコンテンツデータを復号するための復号鍵が暗号化されたデータであり、
    前記第1の制御回路は、前記暗号化データを復号して得られた前記復号鍵を前記第2の制御回路から受信し、受信した前記復号鍵を用いて前記暗号化されたコンテンツデータを復号する、
    ことを特徴とする請求の範囲第8項記載の半導体装置。
  10. 前記メモリには、前記暗号化データの復号の制御を含む処理を実行するための専用プログラムが格納され、
    前記第2の制御回路は、前記専用プログラムを実行するプロセッサを有する、
    ことを特徴とする請求の範囲第8項または第9項記載の半導体装置。
  11. 前記第2の制御回路は、暗号化された更新用の専用プログラムを前記第1の制御回路から受信し、暗号化された前記更新用の専用プログラムを前記鍵を用いて復号し、復号された前記更新用の専用プログラムによって前記メモリに格納された前記専用プログラムを書き替えることを特徴とする請求の範囲第10項記載の半導体装置。
  12. 前記第2の制御回路は、乱数を出力する機能を有し、前記暗号化データを送信する前記情報処理装置外の送信装置との間で、前記第1の制御回路を介し、出力した乱数を用いて相互認証処理を行い、前記相互認証処理が成功すると、前記暗号化データを前記制御回路を介して受信する、
    ことを特徴とする請求の範囲第8項乃至第11項のいずれか1項に記載の半導体装置。
  13. 前記入力部は、前記第2の通信路を通じて入力された認証情報を、前記セキュアモジュール内に予め格納された認証情報と比較し、入力された認証情報と格納された認証情報とが一致したとき、前記第2の通信路から入力された情報を当該入力部から前記メモリに出力することを一時的に許可する認証回路を有することを特徴とする請求の範囲第8項乃至第12項のいずれか1項に記載の半導体装置。
  14. 前記入力部は、前記第2の通信路を通じて入力された情報を、前記セキュアモジュール内に予め格納された入力部用鍵情報を用いて復号する復号回路を有することを特徴とする請求の範囲第8項乃至第13項のいずれか1項に記載の半導体装置。
JP2014537997A 2012-09-28 2012-09-28 情報処理装置および半導体装置 Pending JPWO2014049830A1 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/075081 WO2014049830A1 (ja) 2012-09-28 2012-09-28 情報処理装置および半導体装置

Publications (1)

Publication Number Publication Date
JPWO2014049830A1 true JPWO2014049830A1 (ja) 2016-08-22

Family

ID=50387292

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014537997A Pending JPWO2014049830A1 (ja) 2012-09-28 2012-09-28 情報処理装置および半導体装置

Country Status (4)

Country Link
US (1) US20150195258A1 (ja)
EP (1) EP2903202A4 (ja)
JP (1) JPWO2014049830A1 (ja)
WO (1) WO2014049830A1 (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016088273A1 (ja) * 2014-12-05 2016-06-09 富士通株式会社 セキュリティ装置および制御方法
JP6385842B2 (ja) * 2015-02-02 2018-09-05 株式会社東芝 情報処理端末、情報処理方法、及び情報処理システム
KR101977401B1 (ko) 2015-09-03 2019-05-13 엘에스산전 주식회사 동적 모드버스 프로토콜 매핑을 지원하는 통신 장치
WO2017096596A1 (zh) * 2015-12-10 2017-06-15 深圳市大疆创新科技有限公司 无人机认证方法,安全通信方法及对应系统
WO2017122361A1 (ja) * 2016-01-15 2017-07-20 富士通株式会社 セキュリティ装置および制御方法
US11177954B2 (en) * 2016-06-20 2021-11-16 Hewlett-Packard Development Company, L.P. Firmware-inaccessible key storage
JP6922329B2 (ja) * 2017-03-29 2021-08-18 大日本印刷株式会社 故障利用攻撃に対しての耐タンパー性を持たせたセキュリティデバイス
JP2019029933A (ja) * 2017-08-02 2019-02-21 富士通株式会社 コンテンツ配信装置、コンテンツ配信システム、コンテンツ配信プログラム、およびコンテンツ配信方法
US11362824B2 (en) * 2018-05-25 2022-06-14 Intertrust Technologies Corporation Content management systems and methods using proxy reencryption
US10659437B1 (en) * 2018-09-27 2020-05-19 Xilinx, Inc. Cryptographic system
US10902133B2 (en) * 2018-10-25 2021-01-26 Enveil, Inc. Computational operations in enclave computing environments
KR20210089486A (ko) * 2020-01-08 2021-07-16 삼성전자주식회사 키를 안전하게 관리하기 위한 장치 및 방법
TWI766327B (zh) * 2020-07-31 2022-06-01 建國工程股份有限公司 即時取得資訊方法及系統
US20220246110A1 (en) * 2021-02-01 2022-08-04 Qualcomm Incorporated Dpu enhancement for improved hdcp user experience
DE102021105402A1 (de) 2021-03-05 2022-09-08 Infineon Technologies Ag Datenverarbeitungsvorrichtung und verfahren zum übermitteln von daten über einen bus
JP7221462B1 (ja) * 2022-05-26 2023-02-13 三菱電機株式会社 プログラマブルロジックコントローラ、制御方法及びプログラム

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000285025A (ja) * 1999-03-31 2000-10-13 Nippon Computer:Kk セキュリティ管理用電子デバイス
JP2001127747A (ja) * 1999-10-25 2001-05-11 Toshiba Corp 情報暗号化復号化装置
JP2001211163A (ja) * 1999-11-09 2001-08-03 Bull Sa 性能損失がなく、様々なタイプの暗号化アルゴリズムを同時に実現する暗号化回路のアーキテクチャ
JP2001209580A (ja) * 2000-01-25 2001-08-03 Sony Corp データ記憶素子製造方法およびデータ記憶素子、並びにデータ処理装置
JP2004304600A (ja) * 2003-03-31 2004-10-28 Fujitsu Ltd 地上デジタル放送システムおよび地上デジタル放送権利保護装置
JP2011010218A (ja) * 2009-06-29 2011-01-13 Toshiba Corp 携帯可能電子装置、及び携帯可能電子装置の制御方法
JP2011091538A (ja) * 2009-10-21 2011-05-06 Fujitsu Ltd 受信装置及びコンテンツの再暗号化方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1055273A (ja) * 1996-06-05 1998-02-24 Matsushita Electric Ind Co Ltd ソフトウェア保護装置
JPH1079000A (ja) * 1996-09-03 1998-03-24 Hitachi Ltd プログラム書き込み可能なicカード
JP4219680B2 (ja) * 2000-12-07 2009-02-04 サンディスク コーポレイション 不揮発性メモリカード、コンパクトディスクまたはその他のメディアから記録済みのオーディオ、ビデオまたはその他のコンテンツを再生するためのシステム、方法およびデバイス
JP2002185447A (ja) * 2000-12-18 2002-06-28 Toshiba Corp 秘匿データ処理装置及びその電子部品
DE10137505B4 (de) * 2001-07-16 2005-06-23 Francotyp-Postalia Ag & Co. Kg Anordnung und Verfahren zum Ändern der Funktionalität eines Sicherheitsmoduls
JP4408601B2 (ja) 2001-12-27 2010-02-03 富士通株式会社 情報再生装置およびセキュアモジュール
JP4576100B2 (ja) 2002-07-30 2010-11-04 富士通株式会社 情報再生装置、セキュアモジュールおよび情報再生方法
EP1795993B1 (en) * 2002-07-30 2018-02-28 Fujitsu Limited Method and apparatus for reproducing information using a security module
JP3881942B2 (ja) 2002-09-04 2007-02-14 松下電器産業株式会社 暗号化部を有する半導体装置
US8639946B2 (en) * 2005-06-24 2014-01-28 Sigmatel, Inc. System and method of using a protected non-volatile memory
US20080141042A1 (en) * 2006-12-11 2008-06-12 Phison Electronics Corp. Memory card and security method therefor
EP2263359B1 (fr) * 2008-03-31 2014-09-03 Orange Procédé d'accès et de transfert de données liées à une application installée sur un module de sécurité associé à un terminal mobile, module de sécurité, serveur de gestion et système associés
US8826039B2 (en) * 2010-02-02 2014-09-02 Broadcom Corporation Apparatus and method for providing hardware security
JP5775738B2 (ja) * 2011-04-28 2015-09-09 富士通株式会社 情報処理装置、セキュアモジュール、情報処理方法、および情報処理プログラム

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000285025A (ja) * 1999-03-31 2000-10-13 Nippon Computer:Kk セキュリティ管理用電子デバイス
JP2001127747A (ja) * 1999-10-25 2001-05-11 Toshiba Corp 情報暗号化復号化装置
JP2001211163A (ja) * 1999-11-09 2001-08-03 Bull Sa 性能損失がなく、様々なタイプの暗号化アルゴリズムを同時に実現する暗号化回路のアーキテクチャ
JP2001209580A (ja) * 2000-01-25 2001-08-03 Sony Corp データ記憶素子製造方法およびデータ記憶素子、並びにデータ処理装置
JP2004304600A (ja) * 2003-03-31 2004-10-28 Fujitsu Ltd 地上デジタル放送システムおよび地上デジタル放送権利保護装置
JP2011010218A (ja) * 2009-06-29 2011-01-13 Toshiba Corp 携帯可能電子装置、及び携帯可能電子装置の制御方法
JP2011091538A (ja) * 2009-10-21 2011-05-06 Fujitsu Ltd 受信装置及びコンテンツの再暗号化方法

Also Published As

Publication number Publication date
EP2903202A4 (en) 2015-11-04
WO2014049830A1 (ja) 2014-04-03
US20150195258A1 (en) 2015-07-09
EP2903202A1 (en) 2015-08-05

Similar Documents

Publication Publication Date Title
WO2014049830A1 (ja) 情報処理装置および半導体装置
JP4687703B2 (ja) 記録システム、情報処理装置、記憶装置、記録方法及びプログラム
US9647992B2 (en) Secure transfer and tracking of data using removable nonvolatile memory devices
US7962713B2 (en) Memory device having secure non-volatile locking functionality
US9325505B2 (en) Apparatus and method for content encryption and decryption based on storage device ID
US8280818B2 (en) License source component, license destination component, and method thereof
JP5556895B2 (ja) コンテンツデータ再生装置、更新管理方法、及び更新管理プログラム
US20040236918A1 (en) Information storage device, memory access control system and method, and computer program
US20060059105A1 (en) Move component, program, and move method
US20040215910A1 (en) Information storage device, memory access control system and method, and computer program
US20060155651A1 (en) Device and method for digital rights management
JP4239747B2 (ja) 情報処理装置、およびコンテンツ情報管理方法、並びにコンピュータ・プログラム
US20060069652A1 (en) Copy component, program and method thereof
US20040236919A1 (en) Information storage device, memory access control method, and computer program
JP6146476B2 (ja) 情報処理装置及び情報処理方法
US20060059101A1 (en) Reproduction component, program and method thereof
US8438112B2 (en) Host device, portable storage device, and method for updating meta information regarding right objects stored in portable storage device
US20060059104A1 (en) Rent component, program, and rent component method
JP2009080772A (ja) ソフトウェア起動システム、ソフトウェア起動方法、及びソフトウェア起動プログラム
US20150269360A1 (en) Control method and system
JP2014197374A (ja) 携帯型記録媒体、携帯型記録媒体を含むシステム、携帯型記録媒体のデータ復旧方法
KR101711024B1 (ko) 부정조작방지 장치 접근 방법 및 그 방법을 채용한 단말 장치
US20080229094A1 (en) Method of transmitting contents between devices and system thereof
JP2012118805A (ja) 情報処理装置、リムーバブルストレージ装置、情報処理方法、及び情報処理システム
JP2008269179A (ja) 計算機システム及び管理端末と記憶装置並びに暗号管理方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160617

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20161108