[go: up one dir, main page]

JP2018093352A - Information processing system, function incorporation method, information processing unit, information processing method, and information processing program - Google Patents

Information processing system, function incorporation method, information processing unit, information processing method, and information processing program Download PDF

Info

Publication number
JP2018093352A
JP2018093352A JP2016234544A JP2016234544A JP2018093352A JP 2018093352 A JP2018093352 A JP 2018093352A JP 2016234544 A JP2016234544 A JP 2016234544A JP 2016234544 A JP2016234544 A JP 2016234544A JP 2018093352 A JP2018093352 A JP 2018093352A
Authority
JP
Japan
Prior art keywords
information processing
hardware
secure
application
encryption
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
JP2016234544A
Other languages
Japanese (ja)
Inventor
英徳 馬場
Hidenori Baba
英徳 馬場
健太郎 島田
Kentaro Shimada
健太郎 島田
荒井 直人
Naoto Arai
直人 荒井
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.)
Ubiquitous Corp
Original Assignee
Ubiquitous Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ubiquitous Corp filed Critical Ubiquitous Corp
Priority to JP2016234544A priority Critical patent/JP2018093352A/en
Publication of JP2018093352A publication Critical patent/JP2018093352A/en
Pending legal-status Critical Current

Links

Images

Abstract

PROBLEM TO BE SOLVED: To utilize a function including desired encryption and decryption from an application performing multiple data exchanges, according to a common sequence.SOLUTION: An information processing system includes a first interface where a data exchange is possible by a common processing procedure with multiple applications realizing the data exchange confidentially, a second interface where the data exchange is possible with individual ones of multiple pieces of hardware realizing an encryption function and a decryption function, and control means for controlling the data exchange with at least any one of the multiple applications and at least any one of the multiple pieces of hardware, via the first and second interfaces.SELECTED DRAWING: Figure 1

Description

本発明は、データ交換を行なうアプリケーション中の暗号化および復号を含む機能を実行する技術に関する。   The present invention relates to a technique for executing functions including encryption and decryption in an application for exchanging data.

上記技術分野において、特許文献1には、デバイスが複数タイプのコンテンツ保護技術を選択して処理する技術が開示されている。また、引用文献2には、ノーマル実行環境とセキュア実行環境とが分離されて、セキュア処理する技術が開示されている。   In the above technical field, Patent Document 1 discloses a technology in which a device selects and processes a plurality of types of content protection technologies. Also, cited document 2 discloses a technique for performing secure processing by separating a normal execution environment and a secure execution environment.

特開2005-304000号公報JP 2005-304000 再表WO2013/038592号公報Reissue WO2013 / 038592

しかしながら、上記文献に記載の技術では、データ交換を行なうアプリケーションごとに所望の暗号化および復号に対応する必要があり、所望の暗号化および復号を含む機能を複数のデータ交換を行なうアプリケーションから共通のシーケンスに従って利用することができなかった。   However, in the technique described in the above document, it is necessary to cope with desired encryption and decryption for each application that exchanges data, and functions including desired encryption and decryption are common to applications that exchange data. It was not possible to use it according to the sequence.

本発明の目的は、上述の課題を解決する技術を提供することにある。   The objective of this invention is providing the technique which solves the above-mentioned subject.

上記目的を達成するため、本発明に係る情報処理装置は、
機密にデータ交換を実現する複数のアプリケーションと共通の処理手順でデータ交換が可能な第1インタフェースと、
暗号化機能および復号機能を実現する複数のハードウェアのそれぞれとデータ交換が可能な第2インタフェースと、
前記第1インタフェースと前記第2インタフェースとを介して、前記複数のアプリケーションの少なくともいずれか1つと前記複数のハードウェアの少なくともいずれか1つとのデータ交換を制御する制御手段と、
を備える。
In order to achieve the above object, an information processing apparatus according to the present invention provides:
A first interface capable of exchanging data in a common processing procedure with a plurality of applications for realizing confidential data exchange;
A second interface capable of exchanging data with each of a plurality of hardware realizing the encryption function and the decryption function;
Control means for controlling data exchange between at least one of the plurality of applications and at least one of the plurality of hardware via the first interface and the second interface;
Is provided.

上記目的を達成するため、本発明に係る情報処理方法は、
機密にデータ交換を実現する複数のアプリケーションと共通の処理手順でデータ交換が可能な第1インタフェースと、
暗号化機能および復号機能を実現する複数のハードウェアのそれぞれとデータ交換が可能な第2インタフェースと、
前記第1インタフェースと前記第2インタフェースとを介して、前記複数のアプリケーションと前記複数のハードウェアとのデータ交換を制御する制御手段と、
を備える情報処理装置の情報処理方法であって、
前記アプリケーションから初期化指示を受けて、ライブラリとして準備されたソフトウェアモジュール群および使用するハードウェアを初期化する初期化処理ステップと、
前記アプリケーションから、暗号化および復号を含む機密情報処理の実行指示を受けて、前記初期化されたソフトウェアモジュール群およびハードウェアを用いて前記機密情報処理を実行する機密情報処理ステップと、
前記アプリケーションから処理の終了指示を受けて、前記初期化され用いられたソフトウェアモジュール群およびハードウェアに対して終了処理をする終了処理ステップと、
を含む。
In order to achieve the above object, an information processing method according to the present invention includes:
A first interface capable of exchanging data in a common processing procedure with a plurality of applications for realizing confidential data exchange;
A second interface capable of exchanging data with each of a plurality of hardware realizing the encryption function and the decryption function;
Control means for controlling data exchange between the plurality of applications and the plurality of hardware via the first interface and the second interface;
An information processing method for an information processing apparatus comprising:
An initialization process step of initializing a software module group prepared as a library and hardware to be used in response to an initialization instruction from the application;
A confidential information processing step of receiving an instruction to execute confidential information processing including encryption and decryption from the application, and executing the confidential information processing using the initialized software module group and hardware;
In response to an instruction to end processing from the application, an end processing step for performing end processing on the software module group and hardware that has been initialized and used,
including.

上記目的を達成するため、本発明に係る情報処理プログラムは、
機密にデータ交換を実現する複数のアプリケーションと共通の処理手順でデータ交換が可能な第1インタフェースと、
暗号化機能および復号機能を実現する複数のハードウェアのそれぞれとデータ交換が可能な第2インタフェースと、
前記第1インタフェースと前記第2インタフェースとを介して、前記複数のアプリケーションと前記複数のハードウェアとのデータ交換を制御する制御手段と、
を備える情報処理装置の情報処理プログラムであって、
前記アプリケーションから初期化指示を受けて、ライブラリとして準備されたソフトウェアモジュール群および使用するハードウェアを初期化する初期化処理ステップと、
前記アプリケーションから、暗号化および復号を含む機密情報処理の実行指示を受けて、前記初期化されたソフトウェアモジュール群およびハードウェアを用いて前記機密情報処理を実行する機密情報処理ステップと、
前記アプリケーションから処理の終了指示を受けて、前記初期化され用いられたソフトウェアモジュール群およびハードウェアに対して終了処理をする終了処理ステップと、
をコンピュータに実行させる。
In order to achieve the above object, an information processing program according to the present invention provides:
A first interface capable of exchanging data in a common processing procedure with a plurality of applications for realizing confidential data exchange;
A second interface capable of exchanging data with each of a plurality of hardware realizing the encryption function and the decryption function;
Control means for controlling data exchange between the plurality of applications and the plurality of hardware via the first interface and the second interface;
An information processing program for an information processing apparatus comprising:
An initialization process step of initializing a software module group prepared as a library and hardware to be used in response to an initialization instruction from the application;
A confidential information processing step of receiving an instruction to execute confidential information processing including encryption and decryption from the application, and executing the confidential information processing using the initialized software module group and hardware;
In response to an instruction to end processing from the application, an end processing step for performing end processing on the software module group and hardware that has been initialized and used,
Is executed on the computer.

上記目的を達成するため、本発明に係る情報処理システムは、
アプリケーションと、
暗号化および復号に使用するハードウェアと、
前記アプリケーションからの指示を、前記アプリケーションのプロトコルに従って、初期化手段または機密情報処理手段または終了処理手段への指示に変換する指示変換手段と、
前記指示変換手段から初期化指示を受けて、ライブラリとして準備されたソフトウェアモジュール群および前記ハードウェアを初期化する前記初期化処理手段と、
前記指示変換手段から、暗号化および復号を含む機密情報処理の実行指示を受けて、前記初期化されたソフトウェアモジュール群およびハードウェアを用いて前記機密情報処理を実行する前記機密情報処理手段と、
前記指示変換手段から処理の終了指示を受けて、前記初期化され用いられたソフトウェアモジュール群およびハードウェアに対して終了処理をする前記終了処理手段と、
を備える。
In order to achieve the above object, an information processing system according to the present invention provides:
Application,
Hardware used for encryption and decryption;
An instruction conversion unit that converts an instruction from the application into an instruction to an initialization unit, a confidential information processing unit, or a termination processing unit according to the protocol of the application;
The initialization processing means for receiving the initialization instruction from the instruction converting means and initializing the software module group and the hardware prepared as a library;
The confidential information processing means that receives an instruction to execute confidential information processing including encryption and decryption from the instruction conversion means, and executes the confidential information processing using the initialized software module group and hardware;
In response to an instruction to end processing from the instruction conversion unit, the termination processing unit that performs termination processing on the software module group and hardware that are initialized and used,
Is provided.

上記目的を達成するため、本発明に係る機能組込方法は、
アプリケーションと、暗号化および復号に使用するハードウェアと、を備える情報処理装置への機能組込方法であって、
前記アプリケーションから初期化指示を受けて、ライブラリとして準備されたソフトウェアモジュール群および使用するハードウェアを初期化する初期化処理手段と、
前記アプリケーションから、暗号化および復号を含む機密情報処理の実行指示を受けて、前記初期化されたソフトウェアモジュール群およびハードウェアを用いて前記機密情報処理を実行する機密情報処理手段と、
前記アプリケーションから処理の終了指示を受けて、前記初期化され用いられたソフトウェアモジュール群およびハードウェアに対して終了処理をする終了処理手段と、
を有するソフトウェアモジュール群を組み込んで、前記アプリケーションと前記ハードウェアとを結び付ける工程を含む。
In order to achieve the above object, the function incorporation method according to the present invention includes:
A method for incorporating a function into an information processing apparatus comprising an application and hardware used for encryption and decryption,
Initialization processing means for initializing a software module group prepared as a library and hardware to be used in response to an initialization instruction from the application;
A confidential information processing unit that receives an instruction to execute confidential information processing including encryption and decryption from the application, and executes the confidential information processing using the initialized software module group and hardware;
A termination processing means for receiving a termination command of processing from the application and performing termination processing on the initialized and used software module group and hardware;
And incorporating the software module group including: linking the application and the hardware.

本発明によれば、所望の暗号化および復号を含む機能を複数のデータ交換を行なうアプリケーションから共通のシーケンスに従って利用することができる。   According to the present invention, functions including desired encryption and decryption can be used in accordance with a common sequence from applications that exchange data.

本発明の第1実施形態に係る情報処理装置の構成を示すブロック図である。It is a block diagram which shows the structure of the information processing apparatus which concerns on 1st Embodiment of this invention. 本発明の第2実施形態に係る情報処理装置を含むシステムの構成を示すブロック図である。It is a block diagram which shows the structure of the system containing the information processing apparatus which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係るシステムおけるリンクプロテクション機能を有する通信アプリケーションの一例を示すシーケンス図である。It is a sequence diagram which shows an example of the communication application which has a link protection function in the system which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る情報処理装置のソフトウェア階層を示す図である。It is a figure which shows the software hierarchy of the information processing apparatus which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る情報処理装置のソフトウェア階層のミドルウェア部分を示す図である。It is a figure which shows the middleware part of the software hierarchy of the information processing apparatus which concerns on 2nd Embodiment of this invention. 本発明の全実施形態に共通の情報処理装置のマクロな動作手順を示すシーケンス図である。It is a sequence diagram which shows the macro operation | movement procedure of the information processing apparatus common to all embodiment of this invention. 本発明の第2実施形態に係る暗号処理のマクロな動作手順を示すシーケンス図である。It is a sequence diagram which shows the macro operation | movement procedure of the encryption process which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係るミドルウェアのエンジン初期化処理の手順を示すシーケンス図である。It is a sequence diagram which shows the procedure of the engine initialization process of the middleware which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る暗号初期化処理の手順を示すシーケンス図である。It is a sequence diagram which shows the procedure of the encryption initialization process which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る暗号化処理の手順を示すシーケンス図である。It is a sequence diagram which shows the procedure of the encryption process which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係る暗号終了処理の手順を示すシーケンス図である。It is a sequence diagram which shows the procedure of the encryption completion | finish process which concerns on 2nd Embodiment of this invention. 本発明の第2実施形態に係るミドルウェアのエンジン終了処理の手順を示すシーケンス図である。It is a sequence diagram which shows the procedure of the engine end process of the middleware which concerns on 2nd Embodiment of this invention. 本発明のSecure Worldを有しない実施形態に共通の情報処理装置のハードウェア構成を示すブロック図である。It is a block diagram which shows the hardware constitutions of the information processing apparatus common to embodiment which does not have Secure World of this invention. 本発明のSecure Worldを有しない実施形態に共通のスタック領域の構成を示す図である。It is a figure which shows the structure of a stack area | region common to embodiment which does not have Secure World of this invention. 本発明の全実施形態に共通のストレージにおける格納データの構成を示す図である。It is a figure which shows the structure of the storage data in the storage common to all embodiment of this invention. 本発明の全実施形態に共通のストレージにおける格納データの構成を示す図である。It is a figure which shows the structure of the storage data in the storage common to all embodiment of this invention. 本発明のSecure Worldを有しない実施形態に共通のストレージにおける格納データの構成を示す図である。It is a figure which shows the structure of the storage data in the storage common to embodiment which does not have Secure World of this invention. 本発明の全実施形態に共通の情報処理装置の処理手順を示すフローチャートである。It is a flowchart which shows the process sequence of the information processing apparatus common to all embodiment of this invention. 本発明の全実施形態に共通のミドルウェアエンジン処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the middleware engine process common to all the embodiment of this invention. 本発明のSecure Worldを有しない実施形態に共通の各機能処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of each function process common to embodiment which does not have Secure World of this invention. 本発明のSecure Worldを有しない実施形態に共通の暗号化処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the encryption process common to embodiment which does not have Secure World of this invention. 本発明のSecure Worldを有しない実施形態に共通のSST処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of the SST process common to embodiment which does not have Secure World of this invention. 本発明の第3実施形態に係る秘密記憶処理のマクロな動作手順を示すシーケンス図である。It is a sequence diagram which shows the macro operation | movement procedure of the secret memory process which concerns on 3rd Embodiment of this invention. 本発明の第3実施形態に係る秘密記憶部(Secure Storage)の初期化処理の手順を示すシーケンス図である。It is a sequence diagram which shows the procedure of the initialization process of the secret memory | storage part (Secure Storage) concerning 3rd Embodiment of this invention. 本発明の第3実施形態に係るWrite準備処理の手順を示すシーケンス図である。It is a sequence diagram which shows the procedure of the Write preparation process which concerns on 3rd Embodiment of this invention. 本発明の第3実施形態に係るWrite処理の手順を示すシーケンス図である。It is a sequence diagram which shows the procedure of the Write process which concerns on 3rd Embodiment of this invention. 本発明の第3実施形態に係るRead処理の手順を示すシーケンス図である。It is a sequence diagram which shows the procedure of the Read process which concerns on 3rd Embodiment of this invention. 本発明の第3実施形態に係る秘密記憶部(Secure Storage)の終了処理の手順を示すシーケンス図である。It is a sequence diagram which shows the procedure of the completion | finish process of the secret memory | storage part (Secure Storage) which concerns on 3rd Embodiment of this invention. 本発明の第4実施形態に係る情報処理装置のソフトウェア階層を示す図である。It is a figure which shows the software hierarchy of the information processing apparatus which concerns on 4th Embodiment of this invention. 本発明の第4実施形態に係る機密分離処理のマクロな動作手順を示すシーケンス図である。It is a sequence diagram which shows the macro operation | movement procedure of the security separation process which concerns on 4th Embodiment of this invention. 本発明の第4実施形態に係る他の機密分離処理のマクロな動作手順を示すシーケンス図である。It is a sequence diagram which shows the macro operation | movement procedure of the other secret separation processing which concerns on 4th Embodiment of this invention. 本発明の第4実施形態に係るHDCPシンク(Sink)の初期化処理の手順を示すシーケンス図である。It is a sequence diagram which shows the procedure of the initialization process of the HDCP sink (Sink) which concerns on 4th Embodiment of this invention. 本発明の第4実施形態に係るHDCPの認証および鍵交換処理の手順を示すシーケンス図である。It is a sequence diagram which shows the procedure of the authentication and key exchange process of HDCP which concern on 4th Embodiment of this invention. 本発明の第4実施形態に係るHDCPの認証および鍵交換処理の手順を示すシーケンス図である。It is a sequence diagram which shows the procedure of the authentication and key exchange process of HDCP which concern on 4th Embodiment of this invention. 本発明の第4実施形態に係るHDCPの認証および鍵交換処理の手順を示すシーケンス図である。It is a sequence diagram which shows the procedure of the authentication and key exchange process of HDCP which concern on 4th Embodiment of this invention. 本発明の第4実施形態に係る暗号化コンテンツ伝送処理の手順を示すシーケンス図である。It is a sequence diagram which shows the procedure of the encryption content transmission process which concerns on 4th Embodiment of this invention. 本発明の第4実施形態に係るHDCPシンク(Sink)の終了処理の手順を示すシーケンス図である。It is a sequence diagram which shows the procedure of the completion | finish process of the HDCP sink (Sink) which concerns on 4th Embodiment of this invention. 本発明のSecure Worldを有する実施形態に共通の情報処理装置のハードウェア構成を示すブロック図である。It is a block diagram which shows the hardware constitutions of the information processing apparatus common to embodiment which has Secure World of this invention. 本発明のSecure Worldを有する実施形態に共通のスタック領域の構成を示す図である。It is a figure which shows the structure of a stack area | region common to embodiment which has Secure World of this invention. 本発明のSecure Worldを有する実施形態に共通のストレージにおける格納データの構成を示す図である。It is a figure which shows the structure of the storage data in the storage common to embodiment which has Secure World of this invention. 本発明のSecure Worldを有する実施形態に共通の各機能処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of each function process common to embodiment which has Secure World of this invention. 本発明のSecure Worldを有する実施形態に共通のHDCP Sink処理の手順を示すフローチャートである。It is a flowchart which shows the procedure of HDCP Sink processing common to embodiment which has Secure World of this invention. 本発明の第5実施形態に係る情報処理装置のソフトウェア階層を示す図である。It is a figure which shows the software hierarchy of the information processing apparatus which concerns on 5th Embodiment of this invention. 本発明の第5実施形態に係る情報処理装置の他のソフトウェア階層を示す図である。It is a figure which shows the other software hierarchy of the information processing apparatus which concerns on 5th Embodiment of this invention. 本発明の第5実施形態に係る情報処理装置の他のソフトウェア階層を示す図である。It is a figure which shows the other software hierarchy of the information processing apparatus which concerns on 5th Embodiment of this invention. 本発明の第5実施形態に係る情報処理装置の他のソフトウェア階層を示す図である。It is a figure which shows the other software hierarchy of the information processing apparatus which concerns on 5th Embodiment of this invention. 本発明の第6実施形態に係る情報処理装置のソフトウェア階層を示す図である。It is a figure which shows the software hierarchy of the information processing apparatus which concerns on 6th Embodiment of this invention. 本発明の第6実施形態に係る情報処理装置の他のソフトウェア階層を示す図である。It is a figure which shows the other software hierarchy of the information processing apparatus which concerns on 6th Embodiment of this invention. 本発明の第7実施形態に係る記憶媒体を経由してデータ交換を行なうシステムの機密保護機能を説明する図である。It is a figure explaining the security protection function of the system which exchanges data via the storage medium concerning 7th Embodiment of this invention.

以下に、図面を参照して、本発明の実施の形態について例示的に詳しく説明する。ただし、以下の実施の形態に記載されている構成要素は単なる例示であり、本発明の技術範囲をそれらのみに限定する趣旨のものではない。なお、本明細書におけるデータ交換を行なうアプリケーションには、リンクプロテクション機能を有するデータ交換のアプリケーションやコピーガード機能を有するデータ交換のアプリケーション、あるいは、記憶媒体を経由するデータ交換のためのアプリケーションが含まれる。   Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the drawings. However, the constituent elements described in the following embodiments are merely examples, and are not intended to limit the technical scope of the present invention only to them. Note that the data exchange application in this specification includes a data exchange application having a link protection function, a data exchange application having a copy guard function, or an application for data exchange via a storage medium. .

[第1実施形態]
本発明の第1実施形態としての情報処理装置100について、図1を用いて説明する。情報処理装置100は、データ交換を行なうアプリケーション中の暗号化および復号を含む機能を実行する装置である。
[First Embodiment]
An information processing apparatus 100 as a first embodiment of the present invention will be described with reference to FIG. The information processing device 100 is a device that executes functions including encryption and decryption in an application that exchanges data.

図1に示すように、情報処理装置100は、第1インタフェース部101と、第2インタフェース部102と、制御部103と、を含む。第1インタフェース部101は、機密にデータ交換を実現する複数のアプリケーション110と共通の処理手順でデータ交換が可能である。第2インタフェース部102は、暗号化機能および復号機能を実現する複数のハードウェア120のそれぞれとデータ交換が可能である。制御部103は、第1インタフェース部101と第2インタフェース部102とを介して、複数のアプリケーション110の少なくともいずれか1つと複数のハードウェア120の少なくともいずれか1つとのデータ交換を制御する。   As illustrated in FIG. 1, the information processing apparatus 100 includes a first interface unit 101, a second interface unit 102, and a control unit 103. The first interface unit 101 can exchange data in a common processing procedure with a plurality of applications 110 that realize secret data exchange. The second interface unit 102 can exchange data with each of the plurality of hardware 120 that realizes the encryption function and the decryption function. The control unit 103 controls data exchange between at least one of the plurality of applications 110 and at least one of the plurality of hardware 120 via the first interface unit 101 and the second interface unit 102.

さらに、制御部103は、アプリケーションから初期化指示を受けて、ライブラリとして準備されたソフトウェアモジュール群および使用するハードウェアを初期化する第1初期化処理部104と、アプリケーションから、暗号化および復号を含む機密情報処理の実行指示を受けて、初期化されたソフトウェアモジュール群およびハードウェアを用いて機密情報処理を実行する機密情報処理部105と、アプリケーションから処理の終了指示を受けて、前記初期化され用いられたソフトウェアモジュール群およびハードウェアに対して終了処理をする第1終了処理部106と、を有する。   Further, the control unit 103 receives an initialization instruction from the application, initializes a software module group prepared as a library and hardware to be used, and performs encryption and decryption from the application. A confidential information processing unit 105 that executes confidential information processing using an initialized software module group and hardware in response to an instruction to execute confidential information processing, and the initialization that receives an instruction to end processing from an application. And a first end processing unit 106 that performs end processing on the software module group and hardware used.

本実施形態によれば、初期化処理と機密情報処理と終了処理とからなるシーケンスで処理することにより、所望の暗号化および復号を含む機能を複数のデータ交換を行なうアプリケーションから共通のシーケンスに従って利用することができる。   According to the present embodiment, processing including a desired encryption and decryption function is used in accordance with a common sequence from a plurality of data exchange applications by performing processing in a sequence including initialization processing, confidential information processing, and termination processing. can do.

[第2実施形態]
次に、本発明の第2実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、複数の通信アプリケーションから、初期化処理と機密情報処理と終了処理とからなる共通のシーケンスに従って所望の暗号化および復号を含む機能を利用できる。なお、本実施形態においては、通信アプリケーションはリンクプロテクション(Link Protection)機能を実現するために使用する通信アプリケーションである。また、使用するハードウェアが接続されていない場合、ライブラリとして準備されたモジュールによりハードウェアを代替する。また、通信アプリケーションからの指示を、通信アプリケーションのプロトコルに従って、初期化処理または機密情報処理または終了処理への指示に変換する指示変換部をさらに備える。また、初期化処理は、共通のミドルウェアエンジンの初期化処理、および、暗号化の初期化処理を含み、終了処理は、共通のミドルウェアエンジンの終了処理、および、暗号化の終了処理を含む。
[Second Embodiment]
Next, an information processing apparatus according to the second embodiment of the present invention will be described. The information processing apparatus according to the present embodiment can use functions including desired encryption and decryption from a plurality of communication applications according to a common sequence including initialization processing, confidential information processing, and termination processing. In the present embodiment, the communication application is a communication application used for realizing a link protection function. If the hardware to be used is not connected, the hardware is replaced by a module prepared as a library. Further, the information processing apparatus further includes an instruction conversion unit that converts an instruction from the communication application into an instruction for initialization processing, confidential information processing, or termination processing according to the protocol of the communication application. The initialization process includes a common middleware engine initialization process and an encryption initialization process, and the termination process includes a common middleware engine termination process and an encryption termination process.

《システム》
図2は、本実施形態に係る情報処理装置を含むシステム200の構成を示すブロック図である。
"system"
FIG. 2 is a block diagram illustrating a configuration of a system 200 including the information processing apparatus according to the present embodiment.

図2のシステム200には、ネットワーク270により接続された、車内ネットワーク210と、宅内ネットワーク220と、SSL(Secure Sockets Layer)などで接続される工場内ネットワーク230と、センサネットワーク240と、クラウドサーバ250と、コンテンツサーバ260と、が図示されている。   The system 200 of FIG. 2 includes an in-vehicle network 210, a home network 220, an in-factory network 230 connected by SSL (Secure Sockets Layer), a sensor network 240, and a cloud server 250. And a content server 260 are illustrated.

車内ネットワーク210は、本例ではMOST(Media Oriented Systems Transport)による車載器やマルチメディア機器のネットワークを形成し、クラウドサーバ250に対してはIoT(Internet of Things)の情報収集機器として、コンテンツサーバ260に対してはコンテンツ配信のシンク機器として接続される。また、同様に、宅内ネットワーク220は、本例ではDTCP−IP(Digital Transmission Content Protection over Internet Protocol)を使用するDLNA(登録商標)(Digital Living Network Alliance)やHDCP(High-bandwidth Digital Content Protection system)を使用するMiracastによる家電機器やマルチメディア機器のネットワークを形成し、クラウドサーバ250に対してはIoTの情報収集機器として、コンテンツサーバ260に対してはコンテンツ配信のシンク機器として接続される。   The in-vehicle network 210 forms a network of in-vehicle devices and multimedia devices by MOST (Media Oriented Systems Transport) in this example, and the content server 260 serves as an IoT (Internet of Things) information collecting device for the cloud server 250. Is connected as a sink device for content distribution. Similarly, the home network 220 includes a DLNA (registered trademark) (Digital Living Network Alliance) or HDCP (High-bandwidth Digital Content Protection system) using DTCP-IP (Digital Transmission Content Protection over Internet Protocol) in this example. A network of home appliances and multimedia devices using Miracast is formed, and is connected to the cloud server 250 as an IoT information collection device and to the content server 260 as a content distribution sink device.

また、SSLネットワークなどで接続される工場内ネットワーク230が接続される。また、センサネットワーク240のように、ゲートウェイを介して、コンテンツサーバ260からの動作制御やファームウェア提供と共に、クラウドサーバ250に対してIoTの情報収集機器として接続される。センサネットワーク240の場合には、通信プロトコル/通信経路の保護技術としては、SSL/TLSなどが主に使用される。   In addition, a factory network 230 connected by an SSL network or the like is connected. Further, like the sensor network 240, the operation is controlled from the content server 260 and the firmware is provided via the gateway, and is connected to the cloud server 250 as an IoT information collection device. In the case of the sensor network 240, SSL / TLS is mainly used as a communication protocol / communication path protection technique.

クラウドサーバ250は、複数のサーバ群から構成され、それぞれのネットワーク接続機器を制御すると共に、IoTの情報収集機器から収集した情報を分析あるいは解析して、その結果をユーザに提供したりシステム制御に利用したりする。コンテンツサーバ260は、車内ネットワーク210や宅内ネットワーク220のマルチメディア機器に対してコンテンツを提供する。   The cloud server 250 includes a plurality of server groups, controls each network connection device, analyzes or analyzes information collected from the IoT information collection device, and provides the result to the user or system control. Or use it. The content server 260 provides content to multimedia devices in the in-vehicle network 210 and the home network 220.

本実施形態のシステム200においては、各ネットワークに接続された機器への情報提供時や機器からの情報収集時における、機密情報(例えば、各種の鍵情報など)や個人情報などの漏洩、あるいは、コンテンツの不正コピーなどを防止するため、異なる通信アプリケーションを使用する異なる種類の機器に対して、共通の機密処理用ミドルウェア(図中は、Middleware)201を組み込んでいる。この本実施形態の機密処理用ミドルウェア201は、異なる通信アプリケーションと、異なる種類の機器が備える異なる暗号化/復号用ハードウェアと、を共通のシーケンスに従って結び付けることができる。   In the system 200 of the present embodiment, leakage of confidential information (for example, various key information) and personal information at the time of providing information to devices connected to each network and collecting information from the devices, or In order to prevent unauthorized copying of content, common confidential processing middleware (Middleware in the figure) 201 is incorporated into different types of devices using different communication applications. The confidential processing middleware 201 according to the present embodiment can link different communication applications and different encryption / decryption hardware provided in different types of devices according to a common sequence.

(通信アプリケーションのシーケンス)
図3は、本実施形態に係るシステム200おけるリンクプロテクション機能を有する通信アプリケーションの一例を示すシーケンス図である。
(Communication application sequence)
FIG. 3 is a sequence diagram illustrating an example of a communication application having a link protection function in the system 200 according to the present embodiment.

図3には、ソース機器からシンク機器にコンテンツを提供する場合のリンクプロテクション機能を有する通信アプリケーションを示すが、本実施形態の機密処理用ミドルウェア201は、他のあらゆる通信アプリケーションにおける暗号化や復号を含む機密処理の各シーケンスにおいて、通信アプリケーションからの共通のシーケンスに従って動作することができる。   FIG. 3 shows a communication application having a link protection function when content is provided from a source device to a sink device. The confidential processing middleware 201 of this embodiment performs encryption and decryption in all other communication applications. In each of the confidential processing sequences that it includes, it can operate according to a common sequence from the communication application.

例えば、図3の通信アプリケーションにおいては、ステップS301における、認証と鍵共有(AKE)と所在確認(Locality Check)において交換されたコンテンツ鍵や共通鍵、秘密鍵などの機密情報を、機密処理用ミドルウェア201によってハードウェア的に分離された機密領域(Secure World)の機密データ記憶部(Secure Data Part)に保持する。また、ステップS303におけるコンテンツの暗号化、および、ステップS305におけるコンテンツ復号において、機密処理用ミドルウェア201によって機密データ記憶部に保持された鍵を用いて、各機器に準備されたハードウェアにより暗号化や復号を実行する。また、機密処理用ミドルウェア201によって暗号化されたコンテンツを秘密記憶部(Secure Storage)に保持する。なお、各機器に所望のハードウェアが準備されてない場合は、機密処理用ミドルウェア201が備えるソフトウェアにより代替する。   For example, in the communication application shown in FIG. 3, confidential information such as a content key, a common key, and a secret key exchanged in authentication, key sharing (AKE), and location check (Locality Check) in step S301 is stored in the middleware for confidential processing. The data is held in a confidential data storage unit (Secure Data Part) in a confidential area (Secure World) separated by hardware by 201. In addition, in the content encryption in step S303 and the content decryption in step S305, the key stored in the confidential data storage unit by the confidential processing middleware 201 is used for encryption by hardware prepared for each device. Perform decryption. Further, the content encrypted by the confidential processing middleware 201 is held in a secret storage unit (Secure Storage). If desired hardware is not prepared for each device, it is replaced with software included in the confidential processing middleware 201.

このように、本実施形態の機密処理用ミドルウェア201は、通信アプリケーションのプロトコルにおける機密性を求めるシーケンスにおいて、通信アプリケーションからの要求に応えて共通のシーケンスにしたがって異なる処理に対応する。   As described above, the confidential processing middleware 201 according to the present embodiment corresponds to different processes according to a common sequence in response to a request from the communication application in a sequence for determining confidentiality in the protocol of the communication application.

《情報処理装置のソフトウェア階層》
図4Aおよび図4Bは、本実施形態に係る情報処理装置400のソフトウェア階層を示す図である。図4Bは、ミドルウェア部分を詳細に示す図である。すなわち、図4Bのミドルウェア部分は、図4Aの情報処理装置400のソフトウェア階層の一部に機能組込されている。その場合、情報処理装置400のソフトウェア階層全体を、ミドルウェア部分が組み込まれた情報処理システムとしても表現できる。
<< Software hierarchy of information processing equipment >>
4A and 4B are diagrams showing a software hierarchy of the information processing apparatus 400 according to the present embodiment. FIG. 4B is a diagram illustrating the middleware part in detail. That is, the middleware part of FIG. 4B is incorporated into a part of the software hierarchy of the information processing apparatus 400 of FIG. 4A. In that case, the entire software hierarchy of the information processing apparatus 400 can be expressed as an information processing system in which the middleware part is incorporated.

情報処理装置400のソフトウェア階層は、Application層401および402と、Middlewareとして提供されるHDCP SDK層410と、Middlewareとして提供される本実施形態の暗号化/復号層のMiddleware201と、OSとの接続層431および432と、OS層440と、ハードウェア層450、451および452とを有する。   The software hierarchy of the information processing apparatus 400 includes Application layers 401 and 402, an HDCP SDK layer 410 provided as Middleware, a middleware 201 of the encryption / decryption layer of this embodiment provided as Middleware, and a connection layer with the OS 431 and 432, an OS layer 440, and hardware layers 450, 451, and 452.

(Application層)
User Application401は、暗復号化処理とセキュアに扱うべきデータを読み書きの機能が必要なユーザが独自に開発するアプリケーションを示す。一方、User Application402は、HDCP SDK410のAPIを使用してHDCP対向機とのAKE(Authentication and Key Exchange)開始の指示や、検出したトポロジーチェンジに対する具体的な動作の制御を行うアプリケーションを示す。ソース機器の場合は、AKEの完了後、送信するストリーミングデータを生成してHDCP SDK410に入力する。一方、シンク機器の場合、AKE完了後、HDCP SDK410が復号化したストリーミングデータの描画処理を行う。なお、Applicationは上記例に限定されない。種々の暗号化や復号に関連するハードウェアを利用するApplicationが接続可能である。
(Application layer)
A User Application 401 indicates an application uniquely developed by a user who needs a function for reading and writing data that should be handled securely with encryption / decryption processing. On the other hand, the User Application 402 indicates an application that uses the API of the HDCP SDK 410 to instruct to start AKE (Authentication and Key Exchange) with the HDCP counterpart device and to control specific operations for the detected topology change. In the case of the source device, after the AKE is completed, the streaming data to be transmitted is generated and input to the HDCP SDK 410. On the other hand, in the case of a sink device, after the completion of AKE, rendering processing of the streaming data decoded by HDCP SDK 410 is performed. Note that Application is not limited to the above example. Various applications that use hardware related to encryption and decryption can be connected.

(HDCP SDK層:通信プロトコルのMiddleware)
HDCP SDK410は、例えば、HDCP 2.2 の仕様(HDCP Specification Rev. 2.2 Interface Independent Adaptation)に基づき、以下の機能を提供する。
(1) DCP(Digital Content Protection, LLC) が発行するデバイス鍵を使用して、対向となるHDCP機器とAKEを実行してセッションキーを共有する。
(2) セッションキーを使用したストリーミングデータの暗号化/復号化を行なう。
(3) 接続されているHDCP機器のトポロジーチェンジの検出と通知を行なう。
(4) HDCPソース機器の場合、SRM(System Renewability Message)リストに基づいた無効機器の検出を行なう。
(HDCP SDK layer: Middleware for communication protocol)
The HDCP SDK 410 provides the following functions based on, for example, the HDCP 2.2 Specification (HDCP Specification Rev. 2.2 Interface Independent Adaptation).
(1) Using the device key issued by DCP (Digital Content Protection, LLC), execute AKE with the opposite HDCP device to share the session key.
(2) Encrypt / decrypt streaming data using a session key.
(3) Detect and notify topology changes of connected HDCP devices.
(4) In the case of an HDCP source device, an invalid device is detected based on an SRM (System Renewability Message) list.

HDCP SDK410のSecure Data Partは、AKEのシーケンスで扱うデータのうち、HDCPの仕様によりセキュアに扱うことが定められているデータを扱う箇所であり、例えば、セッションキーやDCPが発行するデバイス鍵などを保持する。一方、HDCP SDK410のNon Secure Data Partは、AKEのシーケンスで扱うデータのうち、ネットワーク上に非暗号データとして流れるなど、HDCPの仕様によりセキュアに扱うことが定められていないデータを扱う箇所であり、例えば、DCPが発行する公開鍵やHDCP機器の機能を示すフラグなどを保持する。また、HDCP SDK410のCommunication Partは、AKEを行う際に使用するネットワーク通信セッションの確立や、AKE完了後、セッションキーにより暗復号化されたストリーミングデータのやり取りを行う。   The Secure Data Part of the HDCP SDK 410 is a part that handles data that is stipulated to be handled securely by the HDCP specification among the data handled by the AKE sequence. For example, the session key and the device key issued by the DCP Hold. On the other hand, the Non Secure Data Part of the HDCP SDK 410 is a part that handles data that is not stipulated to be handled securely by the HDCP specification, such as flowing as non-encrypted data on the network among the data handled by the AKE sequence. For example, it holds a public key issued by DCP, a flag indicating the function of the HDCP device, and the like. The Communication Part of the HDCP SDK 410 establishes a network communication session used when performing AKE, and exchanges streaming data encrypted / decrypted with a session key after AKE is completed.

(暗号化/復号層のMiddleware)
暗号化/復号層のMiddleware201は、User Application401または402から直接、あるいは、HDCP SDK層410を介してインタフェースするPublic API421と、ハードウェアとの接続を管理するPrivate Layer422と、各ハードウェアとの接続を行なうPorting Layer423と、を有する。Public API421としては、Cryptography APIsとSecure Storage APIsとSecure Data Interfaceとを含む。また、Private Layer422としては、Cryptography Module用Private Layerと、Secure Storage Module用Private Layerと、Secure Data Interface Module用Private Layerと、を含む。また、Porting Layer423としては、Cryptography Module用Porting Layerと、Secure Storage Module用Porting Layerと、Secure Data Interface Module用Porting Layerと、を含む。なお、本実施形態においては、暗号化処理を行なうので、Secure StorageおよびSecure Data Interface用のモジュールは使用されない。
(Middleware for encryption / decryption layer)
The middleware 201 of the encryption / decryption layer connects the public API 421 that interfaces directly from the user application 401 or 402 or via the HDCP SDK layer 410, the private layer 422 that manages the connection with the hardware, and the connection with each hardware. Porting Layer 423 to perform. The Public API 421 includes Cryptography APIs, Secure Storage APIs, and Secure Data Interface. The private layer 422 includes a private layer for a cryptography module, a private layer for a secure storage module, and a private layer for a secure data interface module. The porting layer 423 includes a porting layer for a cryptography module, a porting layer for a secure storage module, and a porting layer for a secure data interface module. In the present embodiment, since encryption processing is performed, modules for Secure Storage and Secure Data Interface are not used.

(OSとの接続層)
OSとの接続層は、アプリケーション層401または402とOS層440とを直接、接続する接続層(Middleware of OS)431と、暗号化/復号層のMiddleware201とOS層440とを接続するSoC depended Secure Middleware for Non Secure OS432と、を有する。
(Connection layer with OS)
The OS connection layer is a connection layer (Middleware of OS) 431 that directly connects the application layer 401 or 402 and the OS layer 440, and the SoC depended Secure that connects the middleware 201 of the encryption / decryption layer and the OS layer 440. Middleware for Non Secure OS432.

(OS層)
OS層440は、OS driverとOSとを有する。
(OS layer)
The OS layer 440 includes an OS driver and an OS.

(ハードウェア層)
ハードウェア層は、SoC450と、各ハードウェア451あるいは452と、を有する。図4Aにおいては、Hardware Accelerated451とSecure Storage Feature452とを示すが、これらに限定されない。他の機密保護の暗号化や復号に関連する機能を有するハードウェアが接続可能である。
(Hardware layer)
The hardware layer includes the SoC 450 and each piece of hardware 451 or 452. Although FIG. 4A shows Hardware Accelerated 451 and Secure Storage Feature 452, it is not limited to these. Hardware having functions related to encryption and decryption of other security can be connected.

(Secure World)
Secure WorldとHDCP SDK410を組み合わせた場合、図12のように、HDCP SDK410のSecure Data PartがSecure OS内に入り、Non Secure OS上で動作するHDCP SDKは、Secure Data Interfaceを使用してSecure OS内で動作するSecure Data Partとやり取りを行うことになる。
(Secure World)
When Secure World and HDCP SDK 410 are combined, Secure Data Part of HDCP SDK 410 enters Secure OS as shown in Fig. 12, and HDCP SDK running on Non Secure OS uses Secure Data Interface in Secure OS. You will interact with Secure Data Part that runs on.

《マクロシーケンス》
図5は、全実施形態に共通の情報処理装置のマクロな動作手順を示すシーケンス図である。なお、図5において、図4Aおよび図4Bと同様の構成要素には同じ参照番号を付している。
《Macro sequence》
FIG. 5 is a sequence diagram illustrating a macro operation procedure of the information processing apparatus common to all the embodiments. In FIG. 5, the same components as those in FIGS. 4A and 4B are denoted by the same reference numerals.

Customer Application401、402からMiddleware201に初期化の要求(呼び出し)があると、Middleware201は、ステップS501において、使用するMiddlewareのモジュールおよびハードウェアの起動処理(初期化処理)を行なう。   When there is an initialization request (call) from the Customer Applications 401 and 402 to the Middleware 201, the Middleware 201 performs a startup process (initialization process) of the Middleware module and hardware to be used in step S501.

次に、Customer Application401、402からMiddleware201に暗号化や復号を含む機密情報処理の要求(呼び出し)があると、Middleware201は、ステップS503において、初期化されたMiddlewareのモジュールおよびハードウェアを用いて、機密情報処理を行なう。本実施形態においては、機密情報処理として、Cryptography APIs(暗号化処理)と、Secure Storage(暗号データ記憶処理)と、Secure Data Interface(機密データ保護処理)とを示すが、これに限定されることなく、暗号化や復号をそのシーケンス中に含むあらゆるアプリケーションへの共通の対応が可能である。   Next, when there is a request (call) of confidential information processing including encryption and decryption from the Customer Application 401, 402 to the Middleware 201, the Middleware 201 uses the initialized Middleware module and hardware in Step S503 to perform confidential information processing. Perform information processing. In the present embodiment, Cryptography APIs (encryption processing), Secure Storage (encrypted data storage processing), and Secure Data Interface (confidential data protection processing) are shown as confidential information processing. Rather, a common response to any application that includes encryption and decryption in its sequence is possible.

暗号化や復号を含む各機密情報処理が完了すると、Customer Application401、402からMiddleware201に終了の要求(呼び出し)があり、Middleware201は、ステップS505において、初期化され使用されたMiddlewareのモジュールおよびハードウェアの終了処理を行なう。   When each confidential information processing including encryption and decryption is completed, the customer application 401, 402 issues a termination request (call) to the middleware 201. The middleware 201 initializes and uses the middleware module and hardware that are initialized and used in step S505. Perform termination processing.

《暗号処理シーケンス》
図6は、本実施形態に係る暗号処理のマクロな動作手順を示すシーケンス図である。暗号処理は、アプリケーションからの要請を受けてそれぞれのデータの暗号化あるいは復号を行なう処理である。
<Cryptographic processing sequence>
FIG. 6 is a sequence diagram showing a macro operation procedure of encryption processing according to the present embodiment. The encryption process is a process for encrypting or decrypting each data in response to a request from an application.

Customer Application401、402からMiddleware201に初期化の要求(呼び出し)があると、Middleware201は、ステップS501において、起動処理を行なう。起動処理において、Middleware201は、ステップS611において、Secureエンジンモジュールの初期化処理を行なう。   When there is an initialization request (call) from the customer application 401, 402 to the middleware 201, the middleware 201 performs an activation process in step S501. In the startup process, the middleware 201 initializes the secure engine module in step S611.

次に、Middleware201は、ステップS503において、機密情報処理を行なう。本暗号化処理においては、まず、Customer Application401、402からMiddleware201にデータの暗号初期化処理の要求(呼び出し)がある。Middleware201は、ステップS631において、暗号化ハードウェアおよび暗号化モジュールの初期化を行なう。そして、Customer Application401、402からMiddleware201にデータの暗号化処理の要求(呼び出し)があり、Middleware201は、ステップS633において、暗号化ハードウェアを用いて暗号化モジュールによる暗号化処理を行なう。暗号化や復号を含む各機密情報処理が完了すると、Customer Application401、402からMiddleware201に暗号終了処理の要求(呼び出し)があり、Middleware201は、ステップS635において、機密情報処理における暗号化モジュールと暗号化ハードウェアの終了処理を行なう。   Next, the middleware 201 performs confidential information processing in step S503. In this encryption processing, first, a request (call) of data encryption initialization processing is sent from the Customer Applications 401 and 402 to the Middleware 201. In step S631, the Middleware 201 initializes the encryption hardware and the encryption module. Then, there is a request (call) of data encryption processing from the customer applications 401 and 402 to the middleware 201. In step S633, the middleware 201 performs encryption processing by the encryption module using the encryption hardware. When each confidential information processing including encryption and decryption is completed, the customer application 401, 402 issues a request (call) of encryption termination processing to the middleware 201. In step S635, the middleware 201 executes the encryption module and the encryption hardware in the confidential information processing. The end processing of the wear is performed.

Customer Application401、402からMiddleware201に処理終了の要求(呼び出し)があり、Middleware201は、ステップS505において、終了処理を行なう。すなわち、Middleware201は、ステップS651において、Secureエンジンモジュールの終了処理を行なう。   There is a request for termination of processing (call) from the customer applications 401 and 402 to the middleware 201, and the middleware 201 performs a termination process in step S505. That is, the middleware 201 performs a secure engine module termination process in step S651.

(エンジン初期化処理)
図7Aは、本実施形態に係るミドルウェアのエンジン初期化処理(S611:Initializing)の手順を示すシーケンス図である。ミドルウェアのエンジン初期化処理(S611)においては、本実施形態に係るミドルウェアが動作するための基礎環境を整備する。例えば、Private Layer422が使用するデータ構造体の初期化処理、および、初期値設定処理などを実施、以降の処理のための記憶領域の確保(スタックの形成)などの準備をする。その後、Porting Layer423の初期化処理として、本情報処理装置に接続されているハードウェアの初期化と正常動作判定を実施する。また、本情報処理装置にハードウェアが接続されていないセキュリティ機能に対しては、ライブラリ中の該当ソフトウェア機能を代替えの機能として設定し、ソフトウェア動作メモリ領域の確保、初期設定値の設定処理などの初期化処理を行う。
(Engine initialization process)
FIG. 7A is a sequence diagram illustrating a procedure of middleware engine initialization processing (S611: Initializing) according to the present embodiment. In the engine initialization process (S611) of middleware, a basic environment for operating the middleware according to the present embodiment is prepared. For example, initialization processing and initial value setting processing of the data structure used by the private layer 422 are performed, and preparations such as securing a storage area (forming a stack) for subsequent processing are performed. Thereafter, initialization of the hardware connected to the information processing apparatus and normal operation determination are performed as initialization processing of the Porting Layer 423. For security functions that do not have hardware connected to this information processing device, the corresponding software functions in the library are set as alternative functions, such as securing the software operation memory area and initial setting value setting processing. Perform initialization processing.

また、ハードウェアの動作判定によりハードウェアが正常動作を行っていないと判定された場合、もしくは、ライブラリ中のソフトウェア機能の動作に必要なメモリ領域などのリソースの確保ができないと判定された場合、ミドルウェアの初期化処理を中止する。また、Porting Layer423におけるハードウェア、および、ソフトウェアによるセキュリティ機能の処理が完了後、Private Layer422で管理するミドルウェアの動作状態を動作可能状態に遷移する。また、記憶領域に以降の処理のため、前述のセキュリティ機能初期化の際、オペレーティングシステムなどから取得するハンドル値、ミドルウェアのステータス、暗号化機能への参照件数を示す参照カウンタ値などをコアコンテキスト情報として確保する。すなわち、以降の「暗号初期化処理(S631)」や「Secure Storage初期化処理(S1031)」や「HDCPSink初期化処理(S1333)」などのための準備をする。そして、ミドルウェアのエンジン初期化の完了とコアコンテキスト情報をアプリケーションに通知する。   Also, when it is determined by hardware operation determination that the hardware is not operating normally, or when it is determined that resources such as a memory area necessary for the operation of the software function in the library cannot be secured, Cancel the middleware initialization process. Further, after the security function processing by the hardware and software in the Porting Layer 423 is completed, the operation state of the middleware managed by the Private Layer 422 is changed to an operable state. In addition, for the subsequent processing in the storage area, the core context information includes the handle value acquired from the operating system, the status of the middleware, the reference counter value indicating the number of references to the encryption function, etc. To secure as. That is, preparations for the subsequent “encryption initialization process (S631)”, “Secure Storage initialization process (S1031)”, “HDCPSink initialization process (S1333)”, and the like are made. Then, the completion of middleware engine initialization and core context information are notified to the application.

Customer Application401、402に対して、ステップS701において、アプリケーションの開始が指示されると、Customer Application401、402は、ステップS702において、Secure Public API421のSecure Engineの初期化を呼び出す。Secure Public API421は、Customer Application401、402からのSecure Engineの初期化の呼び出しを受けて、ステップS703において、Secure Private Layer422にSecure Engineの初期化を指示する。Secure Private Layer422は、ステップS704において、Platform independent PartのSecure Engineの初期化を実行する。   When the customer applications 401 and 402 are instructed to start the application in step S701, the customer applications 401 and 402 call initialization of the Secure Engine of the Secure Public API 421 in step S702. The Secure Public API 421 receives a call to initialize the Secure Engine from the customer applications 401 and 402, and instructs the Secure Private Layer 422 to initialize the Secure Engine in step S703. In step S704, the secure private layer 422 executes initialization of the platform independent part secure engine.

Platform independent PartのSecure Engineの初期化が終了すると、Secure Private Layer422は、ステップS705において、Secure Porting Layer423に対して、Secure Engineの初期化を指示する。Secure Porting Layer423は、ステップS706において、Platform dependent PartのSecure Engineの初期化を実行する。   When the initialization of the Platform-independent Part Secure Engine is completed, the Secure Private Layer 422 instructs the Secure Porting Layer 423 to initialize the Secure Engine in step S705. In step S706, the Secure Porting Layer 423 executes initialization of the Secure Engine of the Platform dependent Part.

Platform dependent PartのSecure Engineの初期化が終了すると、Secure Porting Layer423は、SoC450のHardware Secure Engineが動作可能かを判定し、動作可能であれば、ステップS707において、Hardware Secure Engineを初期化する。一方、Hardware Secure Engineが搭載されていない場合、もしくは、利用できない場合、ステップS709において、ライブラリ中のSoftware Secure Engineを初期化する。   When the initialization of the Platform dependent Part Secure Engine is completed, the Secure Porting Layer 423 determines whether the Hardware Secure Engine of the SoC 450 is operable, and if it is operable, initializes the Hardware Secure Engine in Step S707. On the other hand, if the Hardware Secure Engine is not installed or cannot be used, the Software Secure Engine in the library is initialized in Step S709.

ステップS708において、Hardware Secure Engineの初期化が完了するか、ステップS709において、ライブラリ中のSoftware Secure Engineの初期化が完了すれば、ステップS710〜S712において、Secure Porting Layer423からSecure Private Layer422およびSecure Public API421を介して、Customer Application401、402に対して、OKの初期化完了を返して、Secure Engineの初期化が終了する。   If the initialization of the hardware secure engine is completed in step S708 or the initialization of the software secure engine in the library is completed in step S709, the secure private layer 422 and the secure public API 421 are transferred from the secure porting layer 423 in steps S710 to S712. Then, the initialization completion of OK is returned to the customer applications 401 and 402, and the initialization of the Secure Engine is completed.

(暗号初期化処理)
図7Bは、本実施形態に係る暗号初期化処理(S631)の手順を示すシーケンス図である。暗号初期化処理(S631)においては、ミドルウェアのエンジン初期化処理(S611)において準備された基礎環境を用いながら、本実施形態に係る暗号化処理のための環境を整備する。例えば、本情報処理装置で提供する指定の暗号化機能に対して、対象となる暗号化方式のハードウェアが接続されている場合、ハードウェアを使用した暗号化を準備し、対象となる暗号化方式のハードウェアが接続されていない場合、ライブラリ中のソフトウェアで代替するよう設定する。また、記憶領域に以降の「暗号化処理(S633)」で使用するため、コアコンテキストへのポインタ、暗号化機能のステータスなどを含む暗号化コンテキスト情報を確保、コアコンテキスト情報の参照カウントを更新する。そして、暗号初期化処理の完了と暗号化コンテキスト情報をアプリケーションに通知する。
(Cryptographic initialization process)
FIG. 7B is a sequence diagram showing a procedure of encryption initialization processing (S631) according to the present embodiment. In the encryption initialization process (S631), the environment for the encryption process according to the present embodiment is prepared using the basic environment prepared in the engine initialization process (S611) of the middleware. For example, if the hardware of the target encryption method is connected to the specified encryption function provided by this information processing device, prepare encryption using the hardware and perform the target encryption If the system hardware is not connected, set the software in the library to substitute. Further, in order to be used in the subsequent “encryption process (S633)” in the storage area, the encryption context information including the pointer to the core context and the status of the encryption function is secured, and the reference count of the core context information is updated. . Then, the completion of the encryption initialization process and the encryption context information are notified to the application.

Customer Application401、402は、ステップS724において、Secure Public API421のCryptography APIsの初期化を呼び出す。Secure Public API421は、Customer Application401、402からのCryptography APIsの初期化の呼び出しを受けて、ステップS725において、Secure Private Layer422にCryptography Functionの初期化を指示する。Secure Private Layer422は、ステップS726において、Secure Engine statusをチェックする。   In step S724, the customer applications 401 and 402 call initialization of Cryptography APIs of the Secure Public API 421. The Secure Public API 421 receives the Cryptography APIs initialization call from the customer applications 401 and 402, and instructs the Secure Private Layer 422 to initialize the Cryptography Function in step S725. In step S726, the Secure Private Layer 422 checks the Secure Engine status.

Secure Engine statusのチェックが終了すると、Secure Private Layer422は、ステップS727において、Secure Porting Layer423に対して、サポートしているoperation modeのチェックを指示する。Secure Porting Layer423は、ステップS728において、サポートされているFunction Tableをチェックする。operation modeがサポートされている場合、Secure Porting Layer423は、ステップS729において、MODE OKをSecure Private Layer422に返す。   When the Secure Engine status check is completed, the Secure Private Layer 422 instructs the Secure Porting Layer 423 to check the supported operation mode in Step S727. In step S728, the Secure Porting Layer 423 checks the supported function table. If the operation mode is supported, the Secure Porting Layer 423 returns MODE OK to the Secure Private Layer 422 in step S729.

Secure Private Layer422は、ステップS730において、暗号化コンテキストを再構築する。そして、Secure Private Layer422は、ステップS731において、Cryptography Functionの初期化をSecure Porting Layer423に指示する。Secure Porting Layer423は、Hardware Cryptography Engine451が動作可能かを判定し、動作可能であれば、ステップS732において、Hardware Cryptography Engine451を初期化する。一方、Hardware Cryptography Engine451が動作可能でなければ、ステップS734において、ライブラリ中のSoftware Cryptography Engineを初期化する。   In step S730, the Secure Private Layer 422 reconstructs the encryption context. In step S731, the Secure Private Layer 422 instructs the Secure Porting Layer 423 to initialize the Cryptography Function. The Secure Porting Layer 423 determines whether or not the Hardware Cryptography Engine 451 is operable. If it is operable, the Secure Porting Layer 423 initializes the Hardware Cryptography Engine 451 in Step S732. On the other hand, if the Hardware Cryptography Engine 451 is not operable, in Step S734, the Software Cryptography Engine in the library is initialized.

ステップS733において、Hardware Cryptography Engine451の初期化が完了するか、ステップS734において、ライブラリ中のSoftware Cryptography Engineの初期化が完了すれば、ステップS735〜S737において、Secure Porting Layer423からSecure Private Layer422およびSecure Public API421を介して、Customer Application401、402に対して、初期化OKを返して、Cryptography Functionの初期化が終了する。   If initialization of the Hardware Cryptography Engine 451 is completed in Step S733 or initialization of the Software Cryptography Engine in the library is completed in Step S734, the Secure Private Layer 422 and the Secure Public API 421 are transferred from the Secure Porting Layer 423 in Steps S735 to S737. Then, initialization OK is returned to the customer applications 401 and 402, and the initialization of the Cryptography Function is completed.

(暗号化処理)
図7Cは、本実施形態に係る暗号化処理(S633)の手順を示すシーケンス図である。暗号化処理(S633)においては、暗号初期化処理(S631)において準備された環境を用いながら、本実施形態に係る暗号化処理を実行する。例えば、本情報処理装置で提供する指定の暗号化機能に対して、対象となる暗号化方式のハードウェアが接続されている場合、ハードウェアを使用した暗号化を実行し、対象となる暗号化方式のハードウェアが接続されていない場合、ライブラリ中のソフトウェアで代替して実行する。そして、暗号化結果をアプリケーションに返すと共に、暗号化コンテキスト情報のステータスを更新する。
(Encryption processing)
FIG. 7C is a sequence diagram showing the procedure of the encryption process (S633) according to the present embodiment. In the encryption process (S633), the encryption process according to the present embodiment is executed using the environment prepared in the encryption initialization process (S631). For example, if the hardware of the target encryption method is connected to the specified encryption function provided by this information processing device, the encryption using the hardware is executed and the target encryption If no system hardware is connected, the software in the library is used instead. Then, the encryption result is returned to the application, and the status of the encryption context information is updated.

Customer Application401、402は、ステップS738において、暗号化する入力データを準備する。Customer Application401、402は、ステップS739において、Secure Public API421のCryptography Operationを呼び出す。Secure Public API421は、Customer Application401、402からのCryptography Functionの呼び出しを受けて、ステップS740において、Secure Private Layer422のCryptography Functionを呼び出す。Secure Private Layer422は、ステップS741において、Secure Porting Layer423のCryptography Functionを呼び出す。   In step S738, the customer applications 401 and 402 prepare input data to be encrypted. In step S739, the customer applications 401 and 402 call the Cryptography Operation of the Secure Public API 421. The Secure Public API 421 receives the Cryptography Function call from the Customer Applications 401 and 402, and calls the Cryptography Function of the Secure Private Layer 422 in Step S740. In step S741, the Secure Private Layer 422 calls the Secure Porting Layer 423 Cryptography Function.

Secure Porting Layer423は、Hardware Cryptography Engine451が動作可能かを判定し、動作可能であれば、ステップS742において、Hardware Cryptography Engine451による暗号化を実行させる。一方、Hardware Cryptography Engine451が動作可能でなければ、ステップS744において、ライブラリ中のSoftware Cryptography Engineにより暗号化を実行する。   The Secure Porting Layer 423 determines whether the Hardware Cryptography Engine 451 is operable, and if it is operable, in Step S742, the Secure Porting Layer 423 performs encryption by the Hardware Cryptography Engine 451. On the other hand, if the Hardware Cryptography Engine 451 is not operable, encryption is executed by the Software Cryptography Engine in the library in Step S744.

ステップS743において、Hardware Cryptography Engine451による入力データの暗号化処理が完了するか、ステップS744において、ライブラリ中のSoftware Cryptography Engineによる入力データの暗号化が完了すれば、ステップS745〜S747において、Secure Porting Layer423からSecure Private Layer422およびSecure Public API421を介して、Customer Application401、402に対して、入力データの暗号化OKを返して、Cryptography Operationの実行が終了する。   If the encryption process of the input data by the Hardware Cryptography Engine 451 is completed in Step S743, or if the encryption of the input data by the Software Cryptography Engine in the library is completed in Step S744, the process from the Secure Porting Layer 423 is performed in Steps S745 to S747. The encryption of input data is returned to the customer applications 401 and 402 via the secure private layer 422 and the secure public API 421, and the execution of the cryptography operation is completed.

なお、図7Cの暗号化処理は、暗号化する入力データが無くなるまで繰り返される。   Note that the encryption process of FIG. 7C is repeated until there is no input data to be encrypted.

(暗号終了処理)
図7Dは、本実施形態に係る暗号終了処理(S635:Finalizing)の手順を示すシーケンス図である。暗号終了処理(S635)においては、暗号化処理(S633)において使用された資源の終了処理を行ない、資源を解放する。暗号化処理の状態を蓄積してもよい。本情報処理装置で提供する指定の暗号化機能に対して、対象となる暗号化方式のハードウェアが接続されている場合、ハードウェアを解放し、対象となる暗号化方式のハードウェアが接続されていない場合、ライブラリ中のソフトウェアを解放する。そして、コアコンテキスト情報の参照カウントを更新、記憶領域に確保されていた暗号化コンテキスト情報を解放し、暗号化の終了処理の完了をアプリケーションに通知する。
(Cryptographic termination process)
FIG. 7D is a sequence diagram illustrating a procedure of encryption termination processing (S635: Finalizing) according to the present embodiment. In the encryption termination process (S635), the resource used in the encryption process (S633) is terminated, and the resources are released. The state of the encryption process may be accumulated. If the hardware of the target encryption method is connected to the specified encryption function provided by this information processing device, the hardware is released and the hardware of the target encryption method is connected. If not, release the software in the library. Then, the reference count of the core context information is updated, the encryption context information secured in the storage area is released, and the completion of the encryption end process is notified to the application.

なお、図7Dのシーケンスは、図7Bのシーケンスにおける「初期化処理」を「終了処理」に置き換えたものであるので、詳細な繰り返しは省略する。ただし、図7Dにおいては、Secure Private Layer422が、ステップS756において、暗号化コンテキスト情報を解放する。   The sequence in FIG. 7D is obtained by replacing the “initialization process” in the sequence in FIG. However, in FIG. 7D, the Secure Private Layer 422 releases the encryption context information in step S756.

(エンジン終了処理)
図7Eは、本実施形態に係るミドルウェアのエンジン終了処理(S651)の手順を示すシーケンス図である。ミドルウェアのエンジン終了処理(S651)においては、エンジンの初期処理(S611)で準備された資源の終了処理を行ない、資源を解放する。処理の状態を蓄積してもよい。ミドルウェアのエンジンの動作に必要なハードウェアが接続されている場合、ハードウェアを解放し、ハードウェアが接続されていない場合、ライブラリ中のソフトウェアを解放する。そして、記憶領域に確保されていたコアコンテキスト情報を解放し、ミドルウェアによる処理の完了をアプリケーションに通知する。
(Engine termination processing)
FIG. 7E is a sequence diagram illustrating a procedure of middleware engine termination processing (S651) according to the present embodiment. In the middleware engine termination process (S651), the resource prepared in the engine initial process (S611) is terminated, and the resources are released. Processing status may be accumulated. When the hardware necessary for the operation of the middleware engine is connected, the hardware is released. When the hardware is not connected, the software in the library is released. Then, the core context information secured in the storage area is released, and the completion of processing by the middleware is notified to the application.

なお、図7Eのシーケンスは、図7Aのシーケンスにおける「初期化処理」を「終了処理」に置き換えたものであるので、詳細な繰り返しは省略する。ただし、図7Eにおいては、Secure Porting Layer423が、ステップS773において、Platform dependent PartのSecure Engineを終了させる。また、Secure Private Layer422が、ステップS775において、Platform independent PartのSecure Engineを終了させる。そして、Customer Application401、402は、ステップS778において、暗号化アプリケーションの終了を通知する。   The sequence in FIG. 7E is obtained by replacing the “initialization process” in the sequence in FIG. However, in FIG. 7E, the Secure Porting Layer 423 terminates the Platform dependent Part Secure Engine in step S773. In step S775, the Secure Private Layer 422 terminates the Platform independent Part Secure Engine. In step S778, the customer applications 401 and 402 notify the end of the encrypted application.

《情報処理装置のハードウェア構成》
図8は、全実施形態に共通の情報処理装置400のハードウェア構成を示すブロック図である。
<< Hardware configuration of information processing equipment >>
FIG. 8 is a block diagram showing a hardware configuration of the information processing apparatus 400 common to all the embodiments.

図8で、CPU(Central Processing Unit)810は演算制御用のプロセッサであり、プログラムを実行することで図4Aおよび図12の機能を実現する。なお、CPU810は、それぞれの機能に対応して複数あってもよく、例えば、Non Secure WorldとSecure Worldとは、異なるCPUで実現してもよい。ROM(Read Only Memory)820は、初期データおよびプログラムなどの固定データおよびプログラムを記憶する。通信制御部830は、ネットワークを介して、他の装置との通信を制御する。   In FIG. 8, a CPU (Central Processing Unit) 810 is a processor for arithmetic control, and implements the functions of FIGS. 4A and 12 by executing a program. There may be a plurality of CPUs 810 corresponding to the respective functions. For example, Non Secure World and Secure World may be realized by different CPUs. A ROM (Read Only Memory) 820 stores fixed data and programs such as initial data and programs. The communication control unit 830 controls communication with other devices via the network.

また、暗号化ハードウェア870は、1つまたは複数の本情報処理装置400に必要な暗号化ハードウェアである。なお、暗号化ハードウェア870が無い場合は、ミドルウェアライブラリに準備された暗号化ソフトウェアが代替するため、暗号化ハードウェア870が1つも接続されてなくてもよい。   The encryption hardware 870 is encryption hardware necessary for one or a plurality of information processing apparatuses 400. If there is no encryption hardware 870, the encryption software prepared in the middleware library substitutes, and therefore, no encryption hardware 870 need be connected.

RAM(Random Access Memory)840は、CPU810が一時記憶のワークエリアとして使用するランダムアクセスメモリである。RAM840には、本実施形態の実現に必要なデータを記憶する領域が確保されている。使用通信方式841は、通信アプリケーションが使用する通信方式である。使用暗号化/復号方式842は、使用通信方式841のプロトコル中に必要となる暗号化/復号方式である。暗号鍵/復号鍵843は、使用暗号化/復号方式842で使用される鍵であり、秘密鍵、公開鍵あるいは共通鍵を含む。暗号データ/署名データ844は、使用通信方式841のプロトコルに従って生成されたデータである。ハードウェア存否845は、暗号化/復号ハードウェアが接続されているか否かの判定結果であり、ハードウェアが存在しない場合は、ライブラリ中のソフトウェアで代替する。セッションキー846は、外部機器とのセッション開始時に交換される鍵であり、各セッションを特定する。Function Table847は、Porting Layerに配置されて、Secure Data PartとFunction Numberとの関係を記憶する。SRMリスト848は、無効機器との通信を禁止するための無効機器のリストである。スタック領域849は、ソフトウェア階層における動作、あるいは、組み込みソフトウェアの動作における使用データとその引渡を実現する。   A RAM (Random Access Memory) 840 is a random access memory used by the CPU 810 as a work area for temporary storage. The RAM 840 has an area for storing data necessary for realizing the present embodiment. The used communication method 841 is a communication method used by a communication application. The used encryption / decryption method 842 is an encryption / decryption method required in the protocol of the used communication method 841. The encryption key / decryption key 843 is a key used in the used encryption / decryption method 842, and includes a secret key, a public key, or a common key. The encrypted data / signature data 844 is data generated according to the protocol of the used communication method 841. The hardware presence / absence 845 is a determination result of whether or not the encryption / decryption hardware is connected. If the hardware does not exist, it is replaced with software in the library. A session key 846 is a key exchanged at the start of a session with an external device, and identifies each session. The Function Table 847 is arranged in the Porting Layer and stores the relationship between Secure Data Part and Function Number. The SRM list 848 is a list of invalid devices for prohibiting communication with invalid devices. The stack area 849 realizes the operation in the software hierarchy, or the use data and the delivery in the operation of the embedded software.

ストレージ850は、データベースや各種のパラメータ、あるいは本実施形態の実現に必要な以下のデータまたはプログラムが記憶さる不揮発メモリである。通信方式格納部851は、各通信方式におけるプロトコルを格納する。暗号化/復号方式格納部852は、各通信方式に対応する暗号化/復号方式を格納する。メッセージフォーマット格納部853は、モジュール間のメッセージのフォーマットを格納する。SST領域854は、SSTに使用される領域である。Secure Data領域855は、Secure Data Partとして使用される領域である。ストレージ850には、以下のプログラムが格納される。Non Secure OSおよびSecure OS856は、それぞれNon Secure WorldとSecure Worldとに対応するOSである。組み込みソフトウェアとしてのMiddlewareは、通信制御ライブラリ857と本実施形態の機密制御ライブラリ858とを有する。アプリケーション859は、本情報処理装置400が使用する通信アプリケーションを含むアプリケーションプログラムである。   The storage 850 is a non-volatile memory that stores a database, various parameters, or the following data or programs necessary for realizing the present embodiment. The communication method storage unit 851 stores a protocol for each communication method. The encryption / decryption method storage unit 852 stores an encryption / decryption method corresponding to each communication method. The message format storage unit 853 stores a message format between modules. The SST area 854 is an area used for SST. The Secure Data area 855 is an area used as a Secure Data Part. The storage 850 stores the following programs. Non Secure OS and Secure OS 856 are OSs corresponding to Non Secure World and Secure World, respectively. Middleware as embedded software has a communication control library 857 and the confidential control library 858 of this embodiment. The application 859 is an application program that includes a communication application used by the information processing apparatus 400.

入出力インタフェース860は、入出力デバイスとのデータ入出力を制御するためのインタフェースを行なう。本実施形態においては、入出力インタフェース860には、表示部861と、操作部862と、音声入出力部863と、が接続される。入出力インタフェース1260には、さらに、撮像部1261やGPS位置算出部1262、などが接続されてもよい。   The input / output interface 860 provides an interface for controlling data input / output with the input / output device. In the present embodiment, a display unit 861, an operation unit 862, and a voice input / output unit 863 are connected to the input / output interface 860. The input / output interface 1260 may further be connected to an imaging unit 1261, a GPS position calculation unit 1262, and the like.

なお、図8のRAM840やストレージ850には、情報処理装置400が有する汎用の機能や他の実現可能な機能に関連するプログラムやデータは図示されていない。   Note that the RAM 840 and the storage 850 in FIG. 8 do not show programs and data related to general-purpose functions and other realizable functions that the information processing apparatus 400 has.

(スタック領域)
図9Aは、全実施形態に共通のスタック領域849の構成を示す図である。本実施形態において、スタック領域849はNon Secureスタック910とSecureスタック920とを有する。
(Stack area)
FIG. 9A is a diagram showing a configuration of a stack area 849 common to all the embodiments. In the present embodiment, the stack area 849 includes a non-secure stack 910 and a secure stack 920.

Non Secureスタック910は、Non Secure OSによるスタック911と、Applicationによるスタック912と、通信プロトコルに対応するMiddlewareスタック913と、本実施形態の暗号化/復号に対応するMiddlewareスタック914と、を有する。本実施形態のMiddlewareスタック914は、Secureエンジン用スタック915と、暗号化用スタック916と、Secure Storage用スタック917と、通信プロトコル用スタック918と、を含む。なお、Middlewareスタック914内におけるスタック順は図9Aに限定されない。   The non-secure stack 910 includes a non-secure OS stack 911, an application stack 912, a middleware stack 913 corresponding to the communication protocol, and a middleware stack 914 corresponding to the encryption / decryption of the present embodiment. The middleware stack 914 of the present embodiment includes a secure engine stack 915, an encryption stack 916, a secure storage stack 917, and a communication protocol stack 918. Note that the stack order in the Middleware stack 914 is not limited to FIG. 9A.

(ストレージの格納データ)
図9B乃至図9Dは、実施形態に共通のストレージ850における格納データの構成を示す図である。
(Storage data)
9B to 9D are diagrams illustrating a configuration of stored data in the storage 850 common to the embodiments.

図9Bに示す通信方式格納部851は、例えば、Miracast通信方式931と、HDCP通信方式932と、DLNA(登録商標)通信方式933と、DTCP−IP通信方式934と、DTCP−MOST通信方式935と、Secure Data Mgmt通信方式936と、Customer通信方式937と、を含む。   The communication method storage unit 851 illustrated in FIG. 9B includes, for example, a Miracast communication method 931, an HDCP communication method 932, a DLNA (registered trademark) communication method 933, a DTCP-IP communication method 934, and a DTCP-MOST communication method 935. , Secure Data Mgmt communication method 936 and Customer communication method 937.

図9Bに示す暗号化/復号方式格納部852は、例えば、RAS方式941と、HASH方式942と、AES方式943と、M6方式944と、を含む、なお、複数の暗号方式が1つの通信プロトコルで使用されることもある。   The encryption / decryption method storage unit 852 illustrated in FIG. 9B includes, for example, the RAS method 941, the HASH method 942, the AES method 943, and the M6 method 944, and a plurality of encryption methods have one communication protocol. Sometimes used in.

図9Cに示す本実施形態の暗号化/復号に対応するMiddlewareのSecure Public API1221およびSecure Data Interface1321が送受信するメッセージのメッセージフォーマット格納部853は、Invoke APIメッセージ961として、各処理対象962に対応つけて、処理963と、生成されるコンテキスト964と、応答メッセージ965と、を記憶する。   The message format storage unit 853 of messages sent and received by the Secure Public API 1221 and Secure Data Interface 1321 of the middleware corresponding to the encryption / decryption of this embodiment shown in FIG. 9C is associated with each processing target 962 as an Invoke API message 961. , Process 963, generated context 964, and response message 965 are stored.

処理対象962は、例えば、Secure Engineと、Cryptography Functionと、Secure Storage Featureと、HDCP Sinkなどと、を含む。そして、各処理対象962は、初期化処理(Initialize)で開始され、終了処理(Finalize)で終了される。かかる構成と生成されたコンテキストにより、処理対象962への起動は、複数の処理対象に対して同時並行して、かつ、1つの処理対象に対して複数が同時並行して、実行される。すなわち、各処理対象962を初期化処理(Initialize)と終了処理(Finalize)とで囲うことにより、データ交換を行なうアプリケーシュンからの自在な処理が簡単に設計できる。なお、図9Cは、本実施形態の特徴を表わす一部を示したものであり、図9Cに限定されない。   The processing target 962 includes, for example, Secure Engine, Cryptography Function, Secure Storage Feature, HDCP Sink, and the like. Each processing target 962 is started by an initialization process (Initialize) and is ended by an end process (Finalize). With such a configuration and the generated context, the activation to the processing target 962 is executed concurrently for a plurality of processing targets and simultaneously for a single processing target. That is, by enclosing each processing object 962 with an initialization process (Initialize) and an end process (Finalize), it is possible to easily design a free process from an application that exchanges data. FIG. 9C shows a part of the features of the present embodiment, and is not limited to FIG. 9C.

図9Bに示す通信プロトコルに対応するMiddlewareを実現する通信制御ライブラリ857は、例えば、Miracast Sinkモジュール951と、HDCP SDKモジュール952と、DLNA(登録商標) SDKモジュール953と、DTCP−IP SDKモジュール954と、DTCP−MOST SDKモジュール955と、を含む。   The communication control library 857 that realizes the middleware corresponding to the communication protocol illustrated in FIG. 9B includes, for example, the Miracast Sink module 951, the HDCP SDK module 952, the DLNA (registered trademark) SDK module 953, and the DTCP-IP SDK module 954. , DTCP-MOST SDK module 955.

図9Dに示す本実施形態の暗号化/復号に対応するMiddlewareを実現する機密制御ライブラリ858は、Secure Public API群971と、Secure Private Layerモジュール群972と、Secure Porting Layerモジュール群973と、仮想ハードウェアモジュール群974と、を有する。Secure Public API群971は、Cryptography APIモジュールと、Secure Storage APIモジュールと、Secure Data Interfaceモジュールと、を含む。Secure Private Layerモジュール群972は、Non SecureのCryptographyモジュールと、Non SecureのSecure Storageモジュールと、Non SecureのSecure Data Interfaceモジュールと、を含む。Secure Porting Layerモジュール群973は、Cryptographyモジュールと、Secure Storageモジュールと、Non SecureのSecure Data Interfaceモジュールと、を含む。仮想ハードウェアモジュール群974は、RASモジュールと、HASHモジュールと、AESモジュールと、M6モジュールと、SSTモジュールと、を含む。なお、図示しないが、ECCやDH等の他の暗号アルゴリズムが含まれてもよい。   The security control library 858 for realizing the middleware corresponding to the encryption / decryption of this embodiment shown in FIG. 9D includes a Secure Public API group 971, a Secure Private Layer module group 972, a Secure Porting Layer module group 973, a virtual hardware Wear module group 974. The Secure Public API group 971 includes a Cryptography API module, a Secure Storage API module, and a Secure Data Interface module. The Secure Private Layer module group 972 includes a Non Secure Cryptography module, a Non Secure Secure Storage module, and a Non Secure Secure Data Interface module. The Secure Porting Layer module group 973 includes a Cryptography module, a Secure Storage module, and a Non Secure Secure Data Interface module. The virtual hardware module group 974 includes a RAS module, a HASH module, an AES module, an M6 module, and an SST module. Although not shown, other encryption algorithms such as ECC and DH may be included.

《情報処理装置の処理手順》
図9Eは、全実施形態に共通の情報処理装置400の処理手順を示すフローチャートである。図9Eのフローチャートは、図8のCPU810がRAM840を使用して実行し、図4Aのソフトウェア階層における機密処理用ミドルウェア201の処理を実現する。
<< Processing procedure of information processing device >>
FIG. 9E is a flowchart illustrating a processing procedure of the information processing apparatus 400 common to all the embodiments. The flowchart of FIG. 9E is executed by the CPU 810 of FIG. 8 using the RAM 840, and realizes the process of the confidential processing middleware 201 in the software hierarchy of FIG. 4A.

情報処理装置400は、ステップS911において、アプリケーションからの処理指示の対象がミドルウェアエンジンであるか否かを判定する。処理指示の対象がミドルウェアエンジンである場合、情報処理装置400は、ステップS913において、ミドルウェアエンジン処理を実行する。処理指示の対象がミドルウェアエンジンでない場合、情報処理装置400は、ステップS915において、各機密情報処理が対象であるか否かを判定する。各機密情報処理が対象である場合、情報処理装置400は、ステップS917において、各機密処理を実行する。   In step S911, the information processing apparatus 400 determines whether the target of the processing instruction from the application is a middleware engine. If the processing instruction target is a middleware engine, the information processing apparatus 400 executes middleware engine processing in step S913. If the target of the processing instruction is not a middleware engine, the information processing apparatus 400 determines whether or not each confidential information process is the target in step S915. If each confidential information process is targeted, the information processing apparatus 400 executes each confidential process in step S917.

(ミドルウェアエンジン処理)
図9Fは、全実施形態に共通のミドルウェアエンジン処理(S913)の手順を示すフローチャートである。
(Middleware engine processing)
FIG. 9F is a flowchart illustrating a procedure of middleware engine processing (S913) common to all the embodiments.

情報処理装置400は、ステップS921において、ミドルウェアエンジンの初期化(Initialize)であるか否かを判定する。ミドルウェアエンジンの初期化である場合、情報処理装置400は、ステップS922において、ミドルウェアの基本モジュールを呼び出し、ステップS923において、基本コンテキストを生成して保持する。   In step S921, the information processing apparatus 400 determines whether or not the middleware engine is initialized. In the case of initialization of the middleware engine, the information processing apparatus 400 calls a middleware basic module in step S922, and generates and holds a basic context in step S923.

ミドルウェアエンジンの初期化でない場合、情報処理装置400は、ステップS924において、ミドルウェアエンジンの終了処理か否かを判定する。ドルウェアエンジンの終了処理であれば、情報処理装置400は、ステップS925において、ミドルウェアの基本モジュールを呼び出し、ステップS926において、基本コンテキストを消去して記憶領域を解放する。   If the middleware engine is not initialized, the information processing apparatus 400 determines in step S924 whether or not the middleware engine is ending. If the process is the termination process of the dollarware engine, the information processing apparatus 400 calls the middleware basic module in step S925, and erases the basic context and releases the storage area in step S926.

(各機能処理)
図9Gは、Secure Worldを有しない実施形態に共通の各機能処理(S917)の手順を示すフローチャートである。
(Each function processing)
FIG. 9G is a flowchart showing the procedure of each function process (S917) common to the embodiment having no Secure World.

情報処理装置400は、ステップS931において、ミドルウェアエンジンが初期化済みかを判定し、ミドルウェアエンジンの初期化済みでない場合は、エラー処理を行なう。ミドルウェアエンジンの初期化済みである場合、情報処理装置400は、ステップS932において、対象とする機能処理が暗号化機能であるか否かを判定する。対象とする機能処理が暗号化機能である場合、情報処理装置400は、ステップS933において、暗号化処理を実行する。   In step S931, the information processing apparatus 400 determines whether or not the middleware engine has been initialized. If the middleware engine has not been initialized, the information processing apparatus 400 performs error processing. If the middleware engine has been initialized, the information processing apparatus 400 determines in step S932 whether the target functional process is an encryption function. If the target function process is an encryption function, the information processing apparatus 400 executes the encryption process in step S933.

対象とする機能処理が暗号化機能でない場合、情報処理装置400は、ステップS934において、対象とする機能処理がSST機能であるか否かを判定する。対象とする機能処理がSST機能である場合、情報処理装置400は、ステップS935において、SST処理を実行する。   If the target function process is not an encryption function, the information processing apparatus 400 determines in step S934 whether the target function process is an SST function. When the target function process is the SST function, the information processing apparatus 400 executes the SST process in step S935.

対象とする機能処理が暗号化機能でなくSST機能でない場合、情報処理装置400は、ステップS936において、対象とする機能処理が他の機能であるか否かを判定する。対象とする機能処理が他の機能である場合、情報処理装置400は、ステップS937において、他機能処理を実行する。暗号化機能でなくSST機能でなく他機能でもない場合、情報処理装置400は、エラー処理を行なう。   If the target function process is not an encryption function and not an SST function, the information processing apparatus 400 determines in step S936 whether the target function process is another function. If the target function process is another function, the information processing apparatus 400 executes the other function process in step S937. If the function is not an encryption function, an SST function, or another function, the information processing apparatus 400 performs error processing.

(暗号化処理)
図9Hは、Secure Worldを有しない実施形態に共通の暗号化処理(S933)の手順を示すフローチャートである。
(Encryption processing)
FIG. 9H is a flowchart showing the procedure of the encryption process (S933) common to the embodiment having no Secure World.

情報処理装置400は、ステップS941において、暗号初期化処理であるか否かを判定する。暗号初期化処理である場合、情報処理装置400は、ステップS942において、暗号化ハードウェアが有るか否かを判定する。暗号化ハードウェアが有れば、情報処理装置400は、ステップS943において、暗号化ハードウェアを初期化して、暗号化コンテキストを生成する。一方、暗号化ハードウェアが無ければ、情報処理装置400は、ステップS944において、暗号化ソフトウェアを初期化して、暗号化コンテキストを生成する。   In step S941, the information processing apparatus 400 determines whether or not the encryption initialization process is being performed. In the case of encryption initialization processing, the information processing apparatus 400 determines in step S942 whether or not there is encryption hardware. If there is encryption hardware, the information processing apparatus 400 initializes the encryption hardware and generates an encryption context in step S943. On the other hand, if there is no encryption hardware, the information processing apparatus 400 initializes encryption software and generates an encryption context in step S944.

暗号初期化処理でない場合、情報処理装置400は、ステップS945において、暗号化処理の実行か否かを判定する。暗号化処理の実行であれば、情報処理装置400は、ステップS946において、暗号初期化済みであるか否かを判定する。暗号初期化済みでなければ、情報処理装置400はエラー処理を行なう。暗号初期化済みであれば、情報処理装置400は、ステップS947において、アプリケーションから暗号化する対象データを取得する。そして、情報処理装置400は、ステップS948において、暗号化ハードウェアが有るか否かを判定する。暗号化ハードウェアが有れば、情報処理装置400は、ステップS949において、取得データを暗号化ハードウェアで暗号化して、暗号化データをアプリケーションに返す。一方、暗号化ハードウェアが無ければ、情報処理装置400は、ステップS950において、取得データを暗号化ソフトウェアで暗号化して、暗号化データをアプリケーションに返す。情報処理装置400は、ステップS951において、対象データが無くなったか否かを判定し、対象データがまだあれば、ステップS947に戻って次の対象データを取得する。   If it is not the encryption initialization process, the information processing apparatus 400 determines in step S945 whether or not the encryption process is to be executed. If the encryption process is to be executed, the information processing apparatus 400 determines in step S946 whether or not the encryption has been initialized. If the encryption has not been initialized, the information processing apparatus 400 performs error processing. If the encryption initialization has been completed, the information processing apparatus 400 acquires target data to be encrypted from the application in step S947. In step S948, the information processing apparatus 400 determines whether there is encryption hardware. If there is encryption hardware, the information processing apparatus 400 encrypts the acquired data with the encryption hardware in step S949 and returns the encrypted data to the application. On the other hand, if there is no encryption hardware, the information processing apparatus 400 encrypts the acquired data with encryption software in step S950 and returns the encrypted data to the application. In step S951, the information processing apparatus 400 determines whether or not there is no target data. If there is still target data, the information processing apparatus 400 returns to step S947 to acquire the next target data.

暗号初期化でなく暗号化処理でもない場合、情報処理装置400は、ステップS952において、暗号終了処理(Finalize)であるか否かを判定する。暗号終了処理である場合、情報処理装置400は、ステップS953において、暗号初期化済みであるか否かを判定する。暗号初期化済みでなければ、情報処理装置400はエラー処理を行なう。暗号初期化済みであれば、情報処理装置400は、ステップS954において、暗号化ハードウェアが有るか否かを判定する。暗号化ハードウェアが有れば、情報処理装置400は、ステップS955において、暗号化ハードウェアと対応する暗号化コンテキストとを解放する。一方、暗号化ハードウェアが無ければ、情報処理装置400は、ステップS956において、暗号化ソフトウェアと対応する暗号化コンテキストとを解放する。   If neither encryption initialization nor encryption processing is performed, the information processing apparatus 400 determines in step S952 whether encryption termination processing (Finalize) is being performed. In the case of encryption end processing, the information processing apparatus 400 determines whether or not encryption initialization has been completed in step S953. If the encryption has not been initialized, the information processing apparatus 400 performs error processing. If the encryption initialization has been completed, the information processing apparatus 400 determines in step S954 whether there is encryption hardware. If there is encryption hardware, the information processing apparatus 400 releases the encryption hardware and the corresponding encryption context in step S955. On the other hand, if there is no encryption hardware, the information processing apparatus 400 releases the encryption software and the corresponding encryption context in step S956.

(SST処理)
図9Iは、Secure Worldを有しない実施形態に共通のSST処理(S935)の手順を示すフローチャートである。
(SST processing)
FIG. 9I is a flowchart showing a procedure of SST processing (S935) common to the embodiment having no Secure World.

情報処理装置400は、ステップS961において、SST初期化処理であるか否かを判定する。SST初期化処理である場合、情報処理装置400は、ステップS962において、SSTハードウェアが有るか否かを判定する。SSTハードウェアが有れば、情報処理装置400は、ステップS963において、SSTハードウェアを初期化して、SSTコンテキストを生成する。一方、SSTハードウェアが無ければ、情報処理装置400は、ステップS964において、SSTソフトウェアを初期化して、SSTコンテキストを生成する。   In step S961, the information processing apparatus 400 determines whether it is SST initialization processing. In the case of the SST initialization process, the information processing apparatus 400 determines whether or not SST hardware is present in step S962. If there is SST hardware, the information processing apparatus 400 initializes the SST hardware and generates an SST context in step S963. On the other hand, if there is no SST hardware, in step S964, the information processing apparatus 400 initializes the SST software and generates an SST context.

SST初期化処理でなければ、情報処理装置400は、ステップS965において、Write準備処理であるか否かを判定する。Write準備処理であれば、情報処理装置400は、ステップS966において、SST初期化済みであるか否かを判定する。SST初期化済みでなければ、情報処理装置400はエラー処理を行なう。SST初期化済みであれば、情報処理装置400は、ステップS967において、Writeデータを取得して、所定の暗号化を行なった後、暗号データをアプリケーションに返す。   If it is not the SST initialization process, the information processing apparatus 400 determines in step S965 whether it is a write preparation process. If it is the write preparation process, the information processing apparatus 400 determines in step S966 whether the SST has been initialized. If the SST has not been initialized, the information processing apparatus 400 performs error processing. If the SST initialization has been completed, the information processing apparatus 400 acquires the write data in step S967, performs predetermined encryption, and then returns the encrypted data to the application.

SST初期化処理でもWrite準備処理でもない場合、情報処理装置400は、ステップS968において、Write処理の実行か否かを判定する。Write処理の実行であれば、情報処理装置400は、ステップS969において、Write準備済みであるか否かを判定する。Write準備済みでなければ、情報処理装置400はエラー処理を行なう。Write準備済みであれば、情報処理装置400は、ステップS970において、Writeパラメータを生成し、アプリケーションの暗号データを復号する。そして、情報処理装置400は、ステップS971において、SSTハードウェアが有るか否かを判定する。SSTハードウェアが有れば、情報処理装置400は、ステップS972において、復号データをSSTハードウェアに記憶する。一方、SSTハードウェアが無ければ、情報処理装置400は、ステップS973において、復号データをSSTソフトウェアに記憶する。情報処理装置400は、ステップS974において、Writeが正常に終了したか否かを判定し、Write OKでなければエラー処理を行なう。   If neither the SST initialization process nor the write preparation process is performed, the information processing apparatus 400 determines in step S968 whether or not to execute the write process. If the write process is to be executed, the information processing apparatus 400 determines in step S969 whether or not write preparation has been completed. If the write preparation has not been completed, the information processing apparatus 400 performs error processing. If the write preparation has been completed, the information processing apparatus 400 generates a write parameter and decrypts the encrypted data of the application in step S970. In step S971, the information processing apparatus 400 determines whether there is SST hardware. If there is SST hardware, the information processing apparatus 400 stores the decoded data in the SST hardware in step S972. On the other hand, if there is no SST hardware, the information processing apparatus 400 stores the decoded data in the SST software in step S973. In step S974, the information processing apparatus 400 determines whether or not the writing has been normally completed, and performs error processing if the writing is not OK.

SST初期化処理でもWrite準備処理でもWrite処理でもない場合、情報処理装置400は、ステップS975において、Read処理の実行か否かを判定する。Read処理の実行であれば、情報処理装置400は、ステップS976において、SST初期化済みであるか否かを判定する。SST初期化済みでなければ、情報処理装置400はエラー処理を行なう。SST初期化済みであれば、情報処理装置400は、ステップS977において、Readパラメータを生成する。そして、情報処理装置400は、ステップS978において、SSTハードウェアが有るか否かを判定する。SSTハードウェアが有れば、情報処理装置400は、ステップS979において、SSTハードウェアからデータを読み出す。一方、SSTハードウェアが無ければ、情報処理装置400は、ステップS980において、SSTソフトウェアからデータを読み出す。情報処理装置400は、ステップS981において、Readが正常に終了したか否かを判定し、Read OKでなければエラー処理を行なう。   When neither the SST initialization process, the write preparation process nor the write process is performed, the information processing apparatus 400 determines in step S975 whether or not to execute the read process. If the read process is to be executed, the information processing apparatus 400 determines in step S976 whether or not SST has been initialized. If the SST has not been initialized, the information processing apparatus 400 performs error processing. If SST initialization has been completed, the information processing apparatus 400 generates a Read parameter in step S977. In step S978, the information processing apparatus 400 determines whether there is SST hardware. If there is SST hardware, the information processing apparatus 400 reads data from the SST hardware in step S979. On the other hand, if there is no SST hardware, the information processing apparatus 400 reads data from the SST software in step S980. In step S981, the information processing apparatus 400 determines whether or not the Read has been normally completed. If the Read is not OK, the information processing apparatus 400 performs error processing.

SST初期化処理でもWrite準備処理でもWrite処理でもRead処理でもない場合、情報処理装置400は、ステップS982において、SST終了処理(Finalize)であるか否かを判定する。SST終了処理である場合、情報処理装置400は、ステップS983において、SST初期化済みであるか否かを判定する。SST初期化済みでなければ、情報処理装置400はエラー処理を行なう。SST初期化済みであれば、情報処理装置400は、ステップS984において、SSTハードウェアが有るか否かを判定する。SSTハードウェアが有れば、情報処理装置400は、ステップS985において、SSTハードウェアと対応するSSTコンテキストとを解放する。一方、SSTハードウェアが無ければ、情報処理装置400は、ステップS986において、SSTソフトウェアと対応するSSTコンテキストとを解放する。   When neither the SST initialization process, the write preparation process, the write process nor the read process is performed, the information processing apparatus 400 determines in step S982 whether the process is an SST end process (Finalize). If it is the SST end process, the information processing apparatus 400 determines in step S983 whether or not the SST has been initialized. If the SST has not been initialized, the information processing apparatus 400 performs error processing. If SST initialization has been completed, the information processing apparatus 400 determines in step S984 whether or not SST hardware is present. If there is SST hardware, the information processing apparatus 400 releases the SST context corresponding to the SST hardware in step S985. On the other hand, if there is no SST hardware, the information processing apparatus 400 releases the SST context corresponding to the SST software in step S986.

本実施形態によれば、暗号化処理を複数の通信アプリケーションから共通のシーケンスに従って利用することができる。   According to this embodiment, encryption processing can be used from a plurality of communication applications according to a common sequence.

[第3実施形態]
次に、本発明の第3実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、上記第2実施形態と比べると、秘密記憶部(Secure Storage)に暗号化データをWriteおよびReadする点で異なる。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。本実施形態において、初期化処理は、共通のミドルウェアエンジンの初期化処理、および、暗号化データを格納する格納部の初期化処理を含み、終了処理は、共通のミドルウェアエンジンの終了処理、および、暗号化データを格納する格納部の終了処理含む。
[Third Embodiment]
Next, an information processing apparatus according to the third embodiment of the present invention will be described. The information processing apparatus according to the present embodiment is different from the second embodiment in that the encrypted data is written to and read from the secret storage unit (Secure Storage). Since other configurations and operations are the same as those of the second embodiment, the same configurations and operations are denoted by the same reference numerals, and detailed description thereof is omitted. In the present embodiment, the initialization process includes a common middleware engine initialization process and a storage unit initialization process for storing encrypted data, and the termination process includes a common middleware engine termination process, and Includes termination processing of the storage unit for storing the encrypted data.

《秘密記憶処理シーケンス》
図10は、本実施形態に係る秘密記憶処理のマクロな動作手順を示すシーケンス図である。秘密記憶処理(Secure Storage)は、アプリケーションからの要請を受けて暗号化したデータを機密保持し、機密保持された暗号化データを読み出し復号を行なう処理である。なお、図10において、図6と同様の構成要素には同じ参照番号、図6と同様のステップには同じステップ番号を付して、重複する説明は省略する。
《Secret memory processing sequence》
FIG. 10 is a sequence diagram showing a macro operation procedure of the secret storage process according to the present embodiment. The secret storage process (Secure Storage) is a process that keeps encrypted data confidential in response to a request from an application, and reads and decrypts the encrypted data kept confidential. In FIG. 10, the same reference numerals are assigned to the same components as in FIG. 6, and the same step numbers are assigned to the same steps as in FIG.

Customer Application401、402からMiddleware201に初期化の要求(呼び出し)があると、Middleware201は、ステップS501において、初期化処理を行なう。すなわち、図6と同様に、Middleware201は、ステップS611において、Secureエンジンモジュールの初期化処理を行なう。   When there is an initialization request (call) from the Customer Application 401, 402 to the Middleware 201, the Middleware 201 performs an initialization process in Step S501. That is, as in FIG. 6, the middleware 201 initializes the secure engine module in step S611.

次に、Middleware201は、ステップS503において、機密情報処理を行なう。まず、Customer Application401、402からMiddleware201に機密情報処理としてのSST初期化処理の要求(呼び出し)があると、Middleware201は、ステップS1031において、SST初期化処理を行なう。そして、秘密記憶処理においてSSTへのWriteが必要であれば、Middleware201は、ステップS1033において、SSTへのWrite準備処理を行なう。そして、Middleware201は、ステップS1035において、SSTへのWrite処理を行なう。一方、秘密記憶処理においてSSTからのReadが必要であれば、Middleware201は、ステップS1037において、SSTからのRead処理を行なう。暗号化や復号を含む各機密情報処理が完了すると、Customer Application401、402からMiddleware201にSST終了処理の要求(呼び出し)があり、Middleware201は、ステップS1039において、SSTハードウェアおよびSecure Storageモジュールの終了処理を行なう。   Next, the middleware 201 performs confidential information processing in step S503. First, when there is a request (call) of SST initialization processing as confidential information processing from the customer applications 401 and 402 to the middleware 201, the middleware 201 performs SST initialization processing in step S1031. If write to the SST is necessary in the secret storage process, the middleware 201 performs a write preparation process for the SST in step S1033. Then, the middleware 201 performs a write process to the SST in step S1035. On the other hand, if the read from the SST is necessary in the secret storage process, the middleware 201 performs the read process from the SST in step S1037. When each confidential information processing including encryption and decryption is completed, there is a request (call) for SST termination processing from the customer applications 401 and 402 to the middleware 201. In step S1039, the middleware 201 performs termination processing for the SST hardware and the Secure Storage module. Do.

Middleware201は、ステップS505において、終了処理を行なう。すなわち、Middleware201は、ステップS651において、Secureエンジンモジュールの終了処理を行なう。   The Middleware 201 performs a termination process in Step S505. That is, the middleware 201 performs a secure engine module termination process in step S651.

(秘密記憶部の初期化処理)
図11Aは、本実施形態に係る秘密記憶部(Secure Storage)の初期化処理(S1031)の手順を示すシーケンス図である。秘密記憶部(Secure Storage)の初期化処理(S1031)においては、ミドルウェアのエンジン初期化処理(S611)において準備された基礎環境を用いながら、本実施形態に係るSecure StorageのWrite処理またはRead処理のための環境を整備する。例えば、パラメータで指定する Secure Storage のフォーマット情報を基にPrivate Layer422のSecure Storage機能で使用するデータ構造体などの初期化、および、不揮発メモリ上に配置するSecure Storage Management Databaseの初期化・初期値設定処理などを実施、以降の処理のための記憶領域の確保(スタックの形成)などの準備をする。その後、Porting Layer423の初期化処理として、本情報処理装置に接続されているSecure Storageとなるハードウェア(Secure Storage Feature452)の初期化と正常動作判定を実施する。また、本情報処理装置にSecure Storageとなるハードウェアが接続されていない場合、ライブラリ中の Secure Storage ソフトウェア機能を代替えの機能として設定し、ソフトウェア動作メモリ領域の確保、初期設定値の設定処理などの初期化処理を行う。
(Secret memory initialization process)
FIG. 11A is a sequence diagram illustrating a procedure of initialization processing (S1031) of the secret storage unit (Secure Storage) according to the present embodiment. In the initialization process (S1031) of the secret storage unit (Secure Storage), while using the basic environment prepared in the engine initialization process (S611) of the middleware, the Secure Storage Write process or Read process according to this embodiment is performed. Prepare an environment for For example, initialization of data structures used by the Secure Storage function of Private Layer 422 based on Secure Storage format information specified by parameters, and initialization and initial value setting of Secure Storage Management Database placed in nonvolatile memory Prepare the storage area (formation of stack) for subsequent processing. After that, as initialization processing of the Porting Layer 423, initialization and normal operation determination of hardware (Secure Storage Feature 452) serving as Secure Storage connected to the information processing apparatus are performed. If Secure Storage hardware is not connected to this information processing device, the Secure Storage software function in the library is set as an alternative function to secure the software operating memory area, set the initial settings, etc. Perform initialization processing.

また、ハードウェアの動作判定によりハードウェアが正常動作を行っていないと判定された場合、もしくは、ライブラリ中のソフトウェア機能の動作に必要なメモリ領域などのリソースの確保ができないと判定された場合、ミドルウェアの初期化処理を中止する。また、Porting Layer423におけるハードウェア、および、ソフトウェアによるセキュリティ機能の処理が完了後、Private Layer422で管理するミドルウェアのSecure Storageの動作状態を動作可能状態に遷移する。また、記憶領域に以降の「Write準備処理(S1033)」や「Read処理(S1037)」のため、コアコンテキス情報へのポインタ、前述のPorting Layer初期化の際、オペレーティングシステムなどから取得するハンドル値、Secure Storage Management Database のハンドル値、Secure Storage機能のステータスなどを含む秘密記憶部コンテキスト情報を確保する。そして、秘密記憶部の初期化処理の完了と秘密記憶部コンテキスト情報をアプリケーションに通知する。   Also, when it is determined by hardware operation determination that the hardware is not operating normally, or when it is determined that resources such as a memory area necessary for the operation of the software function in the library cannot be secured, Cancel the middleware initialization process. In addition, after the security function processing by the hardware and software in the Porting Layer 423 is completed, the operation state of the Secure Storage of the middleware managed by the Private Layer 422 is changed to an operable state. In addition, for subsequent “Write preparation processing (S1033)” and “Read processing (S1037)” in the storage area, a pointer to the core context information, and a handle value acquired from the operating system or the like at the time of the above-mentioned Porting Layer initialization Secure storage section context information including the Secure Storage Management Database handle value and Secure Storage function status. Then, the completion of the initialization process of the secret storage unit and the secret storage unit context information are notified to the application.

なお、図11Aは、図7Aの「Secure Engine」を「Secure Storage」や「Secure Storage Engine」に置き換えたものと同様であり、詳細な繰り返しは省略する。   Note that FIG. 11A is similar to the one in which “Secure Engine” in FIG. 7A is replaced with “Secure Storage” or “Secure Storage Engine”, and the detailed repetition is omitted.

(Write準備処理)
図11Bは、本実施形態に係るWrite準備処理(S1033)の手順を示すシーケンス図である。Write準備処理(S1033)においては、秘密記憶部の初期化処理(S1031)において準備された環境を用いながら、本実施形態に係るSecure StorageへのWrite準備処理を実行する。例えば、Writeする秘密データを取得し、取得した秘密データを所定の方式で暗号化を行なった暗号化秘密データを生成する。そして、生成された暗号化秘密データをアプリケーションに返すと共に、Secure StorageへのWrite準備の完了をアプリケーションに通知する。
(Write preparation process)
FIG. 11B is a sequence diagram showing the procedure of the write preparation process (S1033) according to the present embodiment. In the write preparation process (S1033), the write preparation process to the secure storage according to the present embodiment is executed using the environment prepared in the initialization process (S1031) of the secret storage unit. For example, the secret data to be written is acquired, and encrypted secret data is generated by encrypting the acquired secret data by a predetermined method. Then, the generated encrypted secret data is returned to the application and at the same time, the application is notified of the completion of the write preparation to the Secure Storage.

Customer Application401、402は、ステップS1131において、オリジナルの秘密データを準備する。Customer Application401、402は、ステップS1132において、Secure Public API421の秘密データの書き込みの準備を呼び出す。Secure Public API421は、Customer Application401、402からの秘密データの書き込み準備の呼び出しを受けて、ステップS1133において、Secure Private Layer422に暗号化された秘密データを生成させる。Secure Private Layer422は、ステップS1134において、暗号化された秘密データを生成する。   In step S1131, the customer applications 401 and 402 prepare original secret data. In step S1132, the customer applications 401 and 402 call for preparation for writing the secret data of the secure public API 421. The Secure Public API 421 receives a call for writing private data from the Customer Applications 401 and 402 and causes the Secure Private Layer 422 to generate encrypted private data in Step S1133. In step S1134, the secure private layer 422 generates encrypted secret data.

暗号化された秘密データの生成が終了すると、Secure Public API421を介して、Customer Application401、402に暗号化された秘密データの生成を通知する。Customer Application401、402は、ステップS1137において、対象機器のために、生成された暗号化秘密データを保存する。   When the generation of the encrypted secret data is completed, the generation of the encrypted secret data is notified to the customer applications 401 and 402 via the Secure Public API 421. In step S1137, the customer applications 401 and 402 store the generated encrypted secret data for the target device.

(Write処理)
図11Cは、本実施形態に係るWrite処理(S1035)の手順を示すシーケンス図である。Write処理(S1035)においては、Write準備処理(S1033)において準備された暗号化秘密データのSecure StorageへのWrite処理を実行する。例えば、パラメータとして与えられた暗号化秘密データを所定の方式で復号化後、本情報処理装置のSecure Storageとなるハードウェア(Secure Storage Feature452)が接続されている場合、ハードウェアに対するWrite処理を実行し、Secure Storageとなるハードウェアが接続されていない場合、ライブラリ中のソフトウェアにより確保された仮想Secure Storageで代替する。また、ハードウェア、もしくは、ソフトウェアによる Write処理が完了後、Private Layer422で管理する Secure Storage Management Database を更新する。そして、Write処理の完了をアプリケーションに通知する。
(Write processing)
FIG. 11C is a sequence diagram illustrating the procedure of the write process (S1035) according to the present embodiment. In the write process (S1035), the process of writing the encrypted secret data prepared in the write preparation process (S1033) to the Secure Storage is executed. For example, after the encrypted secret data given as a parameter is decrypted by a predetermined method, if the hardware (Secure Storage Feature 452) that is the secure storage of this information processing apparatus is connected, the hardware write processing is executed. If the hardware that becomes Secure Storage is not connected, it is replaced with virtual Secure Storage secured by software in the library. In addition, after the write processing by hardware or software is completed, the Secure Storage Management Database managed by the Private Layer 422 is updated. Then, the completion of the write process is notified to the application.

Customer Application401、402は、ステップS1141において、生成されて保存された暗号化秘密データを読み出す。   In step S1141, the customer applications 401 and 402 read out the encrypted secret data generated and stored.

Customer Application401、402は、ステップS1142において、Secure Public API421の秘密データ書込を呼び出す。Secure Public API421は、Customer Application401、402からの秘密データ書込の呼び出しを受けて、ステップS1143において、Secure Private Layer422にSecure Storageへの暗号化秘密データのWriteを指示する。   In step S1142, the customer applications 401 and 402 call up the secret data writing of the Secure Public API 421. The Secure Public API 421 receives a call for writing secret data from the customer applications 401 and 402, and instructs the Secure Private Layer 422 to write the encrypted secret data to the Secure Storage in step S1143.

Secure Private Layer422は、ステップS1144において、Secure EngineおよびSecure Storageのstatusをチェックする。Secure Private Layer422は、ステップS1145において、Secure Porting Layer423に入力パラメータおよび/またはランダム数を用いて書込パラメータの生成を指示して、Secure Porting Layer423は、ステップS1146において、書込パラメータの生成OKを返す。   In step S1144, the secure private layer 422 checks the status of the secure engine and secure storage. In step S1145, the secure private layer 422 instructs the secure porting layer 423 to generate a write parameter using the input parameter and / or a random number, and the secure porting layer 423 returns a write parameter generation OK in step S1146. .

Secure Private Layer422は、ステップS1147において、Secure Storageに書き込むために入力された暗号化データを復号する。そして、Secure Private Layer422は、ステップS1148において、秘密データのWriteをSecure Porting Layer423に指示する。   In step S1147, the secure private layer 422 decrypts the encrypted data input for writing to the secure storage. In step S1148, the Secure Private Layer 422 instructs the Secure Porting Layer 423 to write the secret data.

Secure Porting Layer423は、Hardware Secure Storage Engine452が動作可能かを判定し、動作可能であれば、ステップS1149において、Hardware Secure Storage Engine452により秘密データをWriteする。Hardware Secure Storage Engine452が動作可能でなければ、ステップS1151において、ライブラリ中のSoftware Secure Storage Engineにより秘密データをWriteする。   The Secure Porting Layer 423 determines whether or not the Hardware Secure Storage Engine 452 is operable. If it is operable, the Secure Porting Layer 423 writes secret data by the Hardware Secure Storage Engine 452 in Step S1149. If the hardware secure storage engine 452 is not operable, secret data is written by the software secure storage engine in the library in step S1151.

ステップS1150において、Hardware Secure Storage Engine452による秘密データのWriteが完了するか、ステップS1151において、ライブラリ中のSoftware Secure Storage Engineによる秘密データのWriteが完了すれば、ステップS1152〜S1154において、Secure Porting Layer423からSecure Private Layer422およびSecure Public API421を介して、Customer Application401、402に対して、WriteOKを返して、Secure StorageへのWrite処理が終了する。   If the writing of the secret data by the Hardware Secure Storage Engine 452 is completed in Step S1150, or if the writing of the secret data by the Software Secure Storage Engine in the library is completed in Step S1151, the Secure Porting Layer 423 performs secure processing in Steps S1152 to S1154. WriteOK is returned to the customer applications 401 and 402 via the private layer 422 and the secure public API 421, and the write processing to the secure storage is completed.

(Read処理)
図11Dは、本実施形態に係るRead処理(S1037)の手順を示すシーケンス図である。Read処理(S1037)においては、Secure Storage初期化処理(S1031)において準備されたSecure StorageからのRead処理を実行する。例えば、パラメータとして指定する情報とPrivate Layer422で管理する Secure Storage Management Database を基に、本情報処理装置のSecure Storageとなるハードウェア(Secure Storage Feature452)が接続されている場合、ハードウェアからのRead処理を実行し、Secure Storageとなるハードウェアが接続されていない場合、ライブラリ中のソフトウェアにより代替えされる仮想Secure StorageからのRead処理を実行する。そして、Read処理の完了をアプリケーションに通知する。
(Read processing)
FIG. 11D is a sequence diagram illustrating the procedure of the Read process (S1037) according to the present embodiment. In the Read process (S1037), the Read process from Secure Storage prepared in the Secure Storage initialization process (S1031) is executed. For example, when hardware (Secure Storage Feature 452) that is Secure Storage of this information processing apparatus is connected based on information specified as parameters and Secure Storage Management Database managed by Private Layer 422, read processing from hardware If the hardware that becomes the Secure Storage is not connected, the Read processing from the virtual Secure Storage replaced by the software in the library is executed. Then, the completion of the Read process is notified to the application.

Customer Application401、402は、ステップS1161において、Secure Public API421の秘密データ読み出しを呼び出す。Secure Public API421は、Customer Application401、402からの秘密データ読出の呼び出しを受けて、ステップS1162において、Secure Private Layer422にSecure Storageからの秘密データのReadを指示する。   In step S1161, the customer applications 401 and 402 call for reading the secret data of the Secure Public API 421. The Secure Public API 421 receives a call for reading secret data from the customer applications 401 and 402, and instructs the Secure Private Layer 422 to read the secret data from the Secure Storage in step S1162.

Secure Private Layer422は、ステップS1163において、Secure EngineおよびSecure Storageのstatusをチェックする。Secure Private Layer422は、ステップS1164において、Secure Porting Layer423に入力パラメータを用いて読出パラメータの生成を指示して、Secure Porting Layer423は、ステップS1165において、読出パラメータの生成OKを返す。   In step S1163, the Secure Private Layer 422 checks the status of the Secure Engine and Secure Storage. In step S1164, the secure private layer 422 instructs the secure porting layer 423 to generate read parameters using the input parameters, and the secure porting layer 423 returns read parameter generation OK in step S1165.

Secure Private Layer422は、ステップS1166において、秘密データのReadをSecure Porting Layer423に指示する。   In step S1166, the Secure Private Layer 422 instructs the Secure Porting Layer 423 to read the secret data.

Secure Porting Layer423は、Hardware Secure Storage Engine452が動作可能かを判定し、動作可能であれば、ステップS1167において、Hardware Secure Storage Engine452により秘密データをReadする。Hardware Secure Storage Engine452が動作可能でなければ、ステップS1169において、ライブラリ中のSoftware Secure Storage Engineにより秘密データをReadする。   The Secure Porting Layer 423 determines whether the Hardware Secure Storage Engine 452 is operable, and if it is operable, reads the secret data by the Hardware Secure Storage Engine 452 in Step S1167. If the hardware secure storage engine 452 is not operable, secret data is read by the software secure storage engine in the library in step S1169.

ステップS1168において、Hardware Secure Storage Engine452による秘密データのReadが完了するか、ステップS1169において、ライブラリ中のSoftware Secure Storage Engineによる秘密データのReadが完了すれば、ステップS1170〜S1172において、Secure Porting Layer423からSecure Private Layer422およびSecure Public API421を介して、Customer Application401、402に対して、ReadOKを返して、Secure StorageからのRead処理が終了する。   If the reading of the secret data by the Hardware Secure Storage Engine 452 is completed in step S1168, or if the reading of the secret data by the Software Secure Storage Engine in the library is completed in step S1169, the Secure Porting Layer 423 performs secure processing in steps S1170 to S1172. ReadOK is returned to the customer applications 401 and 402 via the private layer 422 and the secure public API 421, and the read processing from the secure storage is completed.

(秘密記憶部の終了処理)
図11Eは、本実施形態に係る秘密記憶部(Secure Storage)の終了処理(S1039)の手順を示すシーケンス図である。秘密記憶部の終了処理(S1039)においては、Secure Storageに対するWrite処理(S1035)やRead処理(S1037)において使用された資源の終了処理を行ない、資源を解放する。秘密記憶処理の状態を蓄積してもよい。本情報処理装置のSecure Storageとなるハードウェアが接続されている場合、ハードウェアを解放し、Secure Storageとなるハードウェアが接続されていない場合、ライブラリ中のソフトウェアおよび確保されていた記憶領域を解放する。また、Private Layer422で管理するSecure Storage Management Databaseを更新する。そして、確保されていた秘密記憶部コンテキスト情報を解放し、秘密記憶処理の完了をアプリケーションに通知する。
(End processing of secret memory)
FIG. 11E is a sequence diagram illustrating a procedure of the end process (S1039) of the secret storage unit (Secure Storage) according to the present embodiment. In the secret storage unit termination processing (S1039), the resources used in the Write processing (S1035) and the Read processing (S1037) for Secure Storage are terminated, and the resources are released. The state of the secret storage process may be accumulated. If the Secure Storage hardware of this information processing device is connected, the hardware is released. If the Secure Storage hardware is not connected, the software in the library and the reserved storage area are released. To do. In addition, the Secure Storage Management Database managed by the Private Layer 422 is updated. Then, the secured secret storage unit context information is released, and the completion of the secret storage process is notified to the application.

なお、図11Eのシーケンスは、図7Eのシーケンスにおける「Secure Engineの終了処理」を「Secure Storageの終了処理」に置き換えたものであるので、詳細な繰り返しは省略する。なお、図10に示すように、図11EのSecure Storageの終了処理で秘密記憶部(Secure Storage)の記憶処理が完了した後、図7Eのシーケンスに従ったSecure Engineの終了処理を実行する。   Note that the sequence of FIG. 11E is obtained by replacing “Secure Engine termination process” with “Secure Storage termination process” in the sequence of FIG. As shown in FIG. 10, after the storage process of the secret storage unit (Secure Storage) is completed in the Secure Storage termination process of FIG. 11E, the Secure Engine termination process according to the sequence of FIG. 7E is executed.

本実施形態によれば、秘密記憶部(Secure Storage)の記憶処理を複数の通信アプリケーションから共通のシーケンスに従って利用することができる。   According to the present embodiment, the storage process of the secret storage unit (Secure Storage) can be used from a plurality of communication applications according to a common sequence.

[第4実施形態]
次に、本発明の第4実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、上記第2実施形態および第3実施形態と比べると、ハードウェア的に分離された、ノーマル実行環境である非機密部とセキュア実行環境である機密部とを生成し、機密部に秘匿性のより高い暗号化鍵、復号鍵およびセッション鍵を格納する点で異なる。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
[Fourth Embodiment]
Next, an information processing apparatus according to the fourth embodiment of the present invention will be described. The information processing apparatus according to this embodiment includes a non-confidential part that is a normal execution environment and a secret part that is a secure execution environment, separated from each other in hardware, as compared with the second and third embodiments. It is different in that the encryption key, the decryption key, and the session key with higher confidentiality are generated and stored in the confidential part. Since other configurations and operations are the same as those of the second embodiment, the same configurations and operations are denoted by the same reference numerals, and detailed description thereof is omitted.

本実施形態における初期化処理は、共通のミドルウェアエンジンの初期化処理、暗号化の初期化処理、および、通信アプリケーションのプロトコルに従う初期化処理を含み、終了処理は、共通のミドルウェアエンジンの終了処理、暗号化の終了処理、および、通信アプリケーションのプロトコルに従う終了処理を含む。   The initialization process in the present embodiment includes a common middleware engine initialization process, an encryption initialization process, and an initialization process according to the protocol of the communication application, and the termination process includes a common middleware engine termination process, It includes encryption termination processing and termination processing according to the communication application protocol.

《情報処理装置のソフトウェア階層》
図12は、本実施形態に係る情報処理装置1200のソフトウェア階層を示す図である。なお、図12において、図4Aおよび図4Bと同様の構成要素には同じ参照番号を付して、重複する説明は省略する。
<< Software hierarchy of information processing equipment >>
FIG. 12 is a diagram showing a software hierarchy of the information processing apparatus 1200 according to the present embodiment. In FIG. 12, the same components as those in FIGS. 4A and 4B are denoted by the same reference numerals, and redundant description is omitted.

情報処理装置1200のソフトウェア階層は、Application層401および402と、Middlewareとして提供されるHDCP SDK層1210と、Middlewareとして提供される本実施形態の暗号化/復号層Middleware1201と、OSとの接続層431、432および1232と、OS層1241および1242と、ファームウェア(Firmware)層1260と、ハードウェア層450、451および452とを有する。   The software hierarchy of the information processing apparatus 1200 includes Application layers 401 and 402, an HDCP SDK layer 1210 provided as Middleware, an encryption / decryption layer Middleware 1201 of this embodiment provided as Middleware, and an OS connection layer 431. 432 and 1232, OS layers 1241 and 1242, a firmware layer 1260, and hardware layers 450, 451, and 452.

(HDCP SDK層:通信プロトコルのMiddleware)
本実施形態において、HDCP SDK1210は、AKEのシーケンスで扱うデータのうち、HDCPの仕様によりセキュアに扱うことが定められているデータ以外を扱う箇所であり、例えば、セッションキーやDCPが発行するデバイス鍵などを保持するためのSecure Data Partを有さない。Secure Data Partは、ハードウェア的に分離されたSecure World1225内に、Middleware's Secure Data Part1226として確保される。
(HDCP SDK layer: Middleware for communication protocol)
In the present embodiment, the HDCP SDK 1210 is a part that handles data other than the data that is determined to be securely handled by the HDCP specification among the data handled in the AKE sequence. For example, the session key or the device key issued by the DCP It does not have a Secure Data Part to hold etc. The Secure Data Part is secured as Middleware's Secure Data Part 1226 in the Secure World 1225 separated by hardware.

(暗号化/復号層のMiddleware)
暗号化/復号層Middleware1201は、Non Secure OS上のNon Secure OS Part(Non Secure World)1224と、Secure OS上のSecure OS Part(Secure World)1225と、に分離されている。
(Middleware for encryption / decryption layer)
The encryption / decryption layer Middleware 1201 is separated into a Non Secure OS Part (Non Secure World) 1224 on the Non Secure OS and a Secure OS Part (Secure World) 1225 on the Secure OS.

Non Secure World1224は、User Application401または402から直接、あるいは、HDCP SDK層410を介してインタフェースするPublic API1221と、ハードウェアとの接続を管理するPrivate Layer1222と、Secure World1225とのハードウェア的に分離されたデータ転送を行なうためのPorting Layer1227と、を有する。   The non-secure world 1224 is separated from the user application 401 or 402 directly or via the HDCP SDK layer 410, the private API 1221, the private layer 1222 that manages the connection with the hardware, and the secure world 1225 are separated in hardware. And a Porting Layer 1227 for performing data transfer.

一方、Secure World1225は、Non Secure World1224とのハードウェア的に分離されたデータ転送を行なうためのPorting Layer1228と、Secure World1225内でハードウェアとの接続を管理するPrivate Layer1222と、Secure World1225内でハードウェア層451および452を各々制御するPorting Layer1223と、Middleware's Secure Data Part1226と、を有する。   On the other hand, the Secure World 1225 includes a Porting Layer 1228 for performing data transfer separated from the Non Secure World 1224 in hardware, a Private Layer 1222 for managing connection with hardware in the Secure World 1225, and hardware in the Secure World 1225. A Porting Layer 1223 for controlling each of the layers 451 and 452 and a Middleware's Secure Data Part 1226 are included.

なお、Porting Layer1227とPorting Layer1228との間のデータ転送1229は、ファームウェア(Firmware)層1260まで戻ることによって、ハードウェア的に分離される。   Note that the data transfer 1229 between the porting layer 1227 and the porting layer 1228 is separated in hardware by returning to the firmware layer 1260.

(OSとの接続層)
OSとの接続層は、新たに、Secure World1225をSecureOS層1242と接続するSoC depended Secure Middleware for Secure OS1233、を有する。
(Connection layer with OS)
The connection layer with the OS newly includes SoC depended Secure Middleware for Secure OS 1233 that connects the Secure World 1225 with the Secure OS layer 1242.

(OS層)
OS層は、Non Secure World1224に対応するNon Secure OS driverおよびNon Secure OS1241と、Secure World1225に対応するSecure OS driverおよびSecure OS1242と、を有する。
(OS layer)
The OS layer has a Non Secure OS driver and Non Secure OS 1241 corresponding to Non Secure World 1224, and a Secure OS driver and Secure OS 1242 corresponding to Secure World 1225.

(ファームウェア層)
ファームウェア層1260は、Non Secure World1224とSecure World1225とをハードウェア的に分離する。
(Firmware layer)
The firmware layer 1260 separates the Non Secure World 1224 and the Secure World 1225 in terms of hardware.

《機密分離処理シーケンス》
(HDCPにおける機密分離処理)
図13Aは、本実施形態に係る機密分離処理のマクロな動作手順を示すシーケンス図である。図13Aは、HDCP SDK1210とSecure Worldを組み合わせてHDCP sink deviceを実現する場合のシーケンス図である。なお、図13Aにおいて、図6および図10と同様の構成要素には同じ参照番号、図6と同様のステップには同じステップ番号を付して、重複する説明は省略する。
《Secret separation processing sequence》
(Separation processing in HDCP)
FIG. 13A is a sequence diagram illustrating a macro operation procedure of the security separation process according to the present embodiment. FIG. 13A is a sequence diagram when an HDCP sink device is realized by combining HDCP SDK 1210 and Secure World. In FIG. 13A, the same components as those in FIGS. 6 and 10 are denoted by the same reference numerals, the same steps as those in FIG.

HDCPSinkのCustomer Application401、402からMiddleware201に初期化の要求(呼び出し)があると、Middleware201は、ステップS501において、初期化処理を行なう。すなわち、Middleware201は、ステップS611において、Secureエンジンモジュールの初期化処理を行なう。ステップS1013において、SSTハードウェアおよびSecure Storageモジュールの初期化処理を行ない、ステップS1315において、MiddlewareのHDCP SDK層1210と協働して、HDCPSinkの初期化処理を行なう。   When there is an initialization request (call) from the Customer Application 401, 402 of HDCPSink to the Middleware 201, the Middleware 201 performs an initialization process in Step S501. That is, the Middleware 201 performs initialization processing of the Secure engine module in step S611. In step S1013, the SST hardware and the Secure Storage module are initialized. In step S1315, the HDCPSink is initialized in cooperation with the HDCP SDK layer 1210 of the middleware.

次に、Middleware201は、ステップS503において、機密情報処理を行なう。まず、Customer Application401、402からMiddleware201に機密情報処理としてSST初期化処理の要求(呼び出し)があると、Middleware201は、ステップS1031において、SSTハードウェアおよびSecure Storageモジュールの初期化処理を行ない、Secure Storageを使用可能とする。次に、Customer Application401、402からMiddleware201に機密情報処理としてHDCP Sink初期化処理の要求(呼び出し)があると、Middleware201は、ステップS1333において、MiddlewareのHDCP SDK層1210と協働して、HDCPSinkの初期化処理を行なう。機密分離処理において、HDCPSource1301からHDCPSink402にセッション開始のトリガがあると、HDCP SDK1210を含むMiddleware201は、ステップS1335において、HDCPの認証および鍵交換処理を行なう。そして、Middleware201は、ステップS1337において、暗号化コンテンツ伝送処理を行なう。本例では、シンク機器につき説明するが、ソース機器においても、セッションのトリガやデータ伝送方向が異なるのみで同様である。暗号化や復号を含む各機密情報処理が完了すると、Customer Application401、402からMiddleware201にHDCP Sink処理終了の要求(呼び出し)があり、Middleware201は、ステップS1339において、終了処理を行なう。次に、Middleware201は、ステップS1039において、SSTハードウェアおよびSecure Storageモジュールの終了処理を行なう。   Next, the middleware 201 performs confidential information processing in step S503. First, when there is a request (call) of SST initialization processing as confidential information processing from the customer applications 401 and 402 to the middleware 201, the middleware 201 performs initialization processing of the SST hardware and the secure storage module in step S1031, and secure storage is executed. Can be used. Next, when there is a request (call) of HDCP Sink initialization processing as confidential information from the Customer Application 401, 402 to the Middleware 201, the Middleware 201 cooperates with the HDCP SDK layer 1210 of the Middleware in step S1333 to initialize the HDCP Sink. The process is performed. In the secret separation process, when there is a session start trigger from the HDCP Source 1301 to the HDCP Sink 402, the Middleware 201 including the HDCP SDK 1210 performs HDCP authentication and key exchange processing in step S1335. Then, the middleware 201 performs encrypted content transmission processing in step S1337. In this example, the sink device will be described, but the same applies to the source device except that the session trigger and the data transmission direction are different. When each confidential information processing including encryption and decryption is completed, a request (call) of HDCP Sink processing termination is issued from the customer applications 401 and 402 to the middleware 201, and the middleware 201 performs termination processing in step S1339. Next, the middleware 201 performs the termination process of the SST hardware and the Secure Storage module in step S1039.

Customer Application401、402からMiddleware201に処理終了の要求(呼び出し)があり、Middleware201は、ステップS505において、終了処理を行なう。すなわち、Middleware201は、ステップS653において、Secureエンジンモジュールの終了処理を行なう。   There is a request for termination of processing (call) from the customer applications 401 and 402 to the middleware 201, and the middleware 201 performs a termination process in step S505. That is, the middleware 201 performs a secure engine module termination process in step S653.

(DTCPにおける機密分離処理)
図13Bは、本実施形態に係る他の機密分離処理のマクロな動作手順を示すシーケンス図である。図13Bは、DTCP SDK1310とSecure Worldを組み合わせてDTCP sink deviceを実現する場合のシーケンス図である。なお、図13Bにおいて、図6、図10および図13Aと同様の構成要素には同じ参照番号、図6および図13Aと同様のステップには同じステップ番号を付して、重複する説明は省略する。
(Separation separation process in DTCP)
FIG. 13B is a sequence diagram illustrating a macro operation procedure of another secret separation process according to the present embodiment. FIG. 13B is a sequence diagram when the DTCP sink device is realized by combining the DTCP SDK 1310 and Secure World. In FIG. 13B, the same components as those in FIGS. 6, 10 and 13A are denoted by the same reference numerals, the same steps as those in FIGS. .

DTCP sink deviceのCustomer Application1302からMiddleware201に初期化の要求(呼び出し)があると、Middleware201は、ステップS501において、初期化処理を行なう。すなわち、Middleware201は、ステップS611において、Secureエンジンモジュールの初期化処理を行なう。   When there is an initialization request (call) from the Customer Application 1302 of the DTCP sink device to the Middleware 201, the Middleware 201 performs an initialization process in Step S501. That is, the Middleware 201 performs initialization processing of the Secure engine module in step S611.

次に、Middleware201は、ステップS503において、機密情報処理を行なう。まず、Customer Application1302からMiddleware201に機密情報処理の準備として、SST初期化処理の要求(呼び出し)があると、Middleware201は、ステップS1031において、SSTハードウェアおよびSecure Storageモジュールの初期化処理を行なう。次に、DTCPSinkの初期化処理の要求(呼び出し)があると、ステップS1341において、MiddlewareのDTCP SDK層と協働して、DTCPSinkの初期化処理を行なう。機密分離処理において、DTCPSource1311からDTCPSink1302にセッション開始のトリガがあると、DTCP SDK1310を含むMiddleware201は、ステップS1335において、DTCPの認証および鍵交換処理を行なう。そして、Middleware201は、ステップS1345において、暗号化コンテンツ伝送処理を行なう。本例では、シンク機器につき説明するが、ソース機器においても同様である。暗号化や復号を含む各機密情報処理が完了すると、Customer Application1302からMiddleware201にDTCP Sink処理終了の要求(呼び出し)があり、Middleware201は、ステップS1347において、DTCPSinkの終了処理を行ない、ステップS1039において、SSTハードウェアおよびSecure Storageモジュールの終了処理を行なう。   Next, the middleware 201 performs confidential information processing in step S503. First, in response to a request (call) of SST initialization processing as preparation for confidential information processing from the Customer Application 1302 to the Middleware 201, the Middleware 201 performs initialization processing of the SST hardware and the Secure Storage module in Step S1031. Next, when there is a request (call) for DTCPSink initialization processing, in step S1341, DTCPSink initialization processing is performed in cooperation with the DTCP SDK layer of Middleware. In the security separation process, when there is a session start trigger from the DTCP Source 1311 to the DTCP Sink 1302, the Middleware 201 including the DTCP SDK 1310 performs DTCP authentication and key exchange processing in step S1335. Then, the middleware 201 performs encrypted content transmission processing in step S1345. In this example, the sink device will be described, but the same applies to the source device. When each confidential information processing including encryption and decryption is completed, the Customer Application 1302 issues a request (call) to end DTCP sink processing from the middleware 201, and the middleware 201 performs DTCP sink end processing in step S1347, and in step S1039, performs SST. Terminates hardware and Secure Storage modules.

暗号化や復号を含む各機密情報処理が完了すると、Customer Application401、402からMiddleware201に処理終了の要求(呼び出し)があり、Middleware201は、ステップS505において、終了処理を行なう。すなわち、Middleware201は、ステップS651において、Secureエンジンモジュールの終了処理を行なう。   When each confidential information process including encryption and decryption is completed, the customer application 401, 402 issues a request (call) to the middleware 201 to terminate the process, and the middleware 201 performs a termination process in step S505. That is, the middleware 201 performs a secure engine module termination process in step S651.

《HDCPにおける機密分離処理の詳細》
以下、HDCPにおける機密分離処理を代表として、機密分離処理の詳細なシーケンスを示すが、DTCPにおける機密分離処理あるいは他のリンクプロテクション機能やコピーガード機能を有する機密分離処理においても、プロトコルに対応した同様のシーケンスにより実現される。
<< Details of security separation processing in HDCP >>
In the following, a detailed sequence of the security separation process will be shown with the security separation process in HDCP as a representative, but the security separation process in DTCP or the security separation process having other link protection functions and copy guard functions is also similar to the protocol. This sequence is realized.

(HDCPシンクの初期化処理)
図14Aは、本実施形態に係るHDCPシンク(Sink)の初期化処理(S1333)の手順を示すシーケンス図である。HDCPシンク(Sink)の初期化処理(S1333)においては、ミドルウェアのエンジン初期化処理(S611)において準備された基礎環境を用い、前述のSecureエンジン処理化処理(S611)およびSecure Storage初期化処理(S1031)を実行した後、本実施形態に係るHDCPシンク(Sink)の初期化処理のための環境を整備する。例えば、HDCPのAKE シーケンスにおいて使用するデバイス鍵セットなどの機密データをSecure Storageなどから取得して、Secure Worldに確保されたSecure Data Part1226に接続し、Secure Dataを保持する。あるいは、読み出して使用するための準備をする。また、以降の「HDCP認証および鍵交換処理(S1335)」や「暗号化コンテンツ伝送処理(S1337)」のため、コアコンテキスト情報へのポインタ、HDCP ライブラリのステータスなどを含むHDCPコンテキスト情報を確保する。そして、HDCPシンク(Sink)の初期化処理の完了とHDCPコンテキスト情報をアプリケーションに通知する。
(HDCP sync initialization process)
FIG. 14A is a sequence diagram showing a procedure of HDCP sink (Sink) initialization processing (S 1333) according to the present embodiment. In the initialization process (S1333) of the HDCP sink (Sink), using the basic environment prepared in the engine initialization process (S611) of the middleware, the Secure engine process (S611) and the Secure Storage initialization process (S611) are performed. After executing S1031), an environment for initialization processing of the HDCP sink (Sink) according to the present embodiment is prepared. For example, confidential data such as a device key set used in the HDCP AKE sequence is acquired from Secure Storage or the like, connected to Secure Data Part 1226 secured in Secure World, and holds Secure Data. Alternatively, read out and prepare for use. Further, HDCP context information including a pointer to the core context information, the HDCP library status, etc. is secured for the subsequent “HDCP authentication and key exchange processing (S1335)” and “encrypted content transmission processing (S1337)”. Then, the completion of HDCP sink initialization processing and HDCP context information are notified to the application.

なお、図14Aにおいて、ステップS611およびS1013は、図7Aのミドルウェアのエンジン初期化処理および図11Aの秘密記憶部(Secure Storage)の初期化処理であるので、重複を避けて説明を省略する。なお、以下の図14Aから図14Fにおいて、OKなどの応答信号については煩雑さを避けるため図示および説明を省略する。   In FIG. 14A, steps S611 and S1013 are middleware engine initialization processing of FIG. 7A and initialization processing of the secure storage unit (Secure Storage) of FIG. In FIGS. 14A to 14F below, illustration and description of response signals such as OK are omitted to avoid complication.

HDCPSink Application402は、ステップS1401において、HDCP SDK1210のHDCPSink初期化を呼び出す。HDCP SDK1210は、HDCPSink Application402からのHDCPSink初期化の呼び出しを受けて、ステップS1402において、HDCPコンテキスト情報を確保しHDCPの機能(featureとも言う)とHDCPコンテキスト情報とを初期化する。   In step S1401, the HDCP Sink Application 402 calls HDCP Sink initialization of the HDCP SDK 1210. In response to the HDCPSink initialization call from the HDCPSink Application 402, the HDCP SDK 1210 secures HDCP context information and initializes an HDCP function (also referred to as a feature) and HDCP context information in step S1402.

HDCP SDK1210は、ステップS1403において、HDCPシンク機器のデバイス鍵としてSecure Storage DataをSecure Public API1221に与える。Secure Public API1221は、ステップS1404において、Secure Storage DataをSecure Private Layer1222に与える。Secure Private Layer1222は、ステップS1405において、Secure Storage DataをSecure Porting Layer1223に与える。   In step S1403, the HDCP SDK 1210 provides Secure Storage Data to the Secure Public API 1221 as the device key of the HDCP sink device. In step S1404, the secure public API 1221 gives the secure storage data to the secure private layer 1222. The secure private layer 1222 gives the secure storage data to the secure porting layer 1223 in step S1405.

また、HDCP SDK1210は、ステップS1406において、Secure Data Interface1321に対し、HDCP Secure Data Partの初期化を指示する。Secure Data Interface1321は、ステップS1407において、Secure Porting Layer1227を介してSecure Porting Layer1228に対し、HDCP Secure Data Partの初期化を指示する。Secure Porting Layer1227、1228は、ステップS1408において、function numberを実際のfunction nameに変換し、ステップS1409において、HDCP Secure Data Part1226に対して初期化を指示する。   In step S1406, the HDCP SDK 1210 instructs the Secure Data Interface 1321 to initialize HDCP Secure Data Part. In step S1407, the secure data interface 1321 instructs the secure porting layer 1228 to initialize the HDCP secure data part via the secure porting layer 1227. The Secure Porting Layers 1227 and 1228 convert the function number into an actual function name in step S1408, and instructs the HDCP Secure Data Part 1226 to initialize in step S1409.

なお、Secure Data Interface経由でアクセスするSecure Data Partは、Function Numberで識別する。ここで、Secure Data PartとFunction Numberとの関係は、Porting Layerに配置するFunction Tableで管理される。このFunction Tableは、Function Numberと、該当するFunction NumberのSecure Data Partのプログラムの呼び出しアドレス、および、呼び出しで使用する引数の個数を持つ。Secure Data Partのプログラムの呼び出しで使用する引数は、可変長のデータである。   The Secure Data Part accessed via the Secure Data Interface is identified by Function Number. Here, the relationship between Secure Data Part and Function Number is managed by a Function Table placed in the Porting Layer. This Function Table has the Function Number, the calling address of the program of the Secure Data Part corresponding to the Function Number, and the number of arguments used in the calling. The argument used for calling the Secure Data Part program is variable length data.

(HDCPの認証および鍵交換処理)
図14B乃至図14Dは、本実施形態に係るHDCPの認証および鍵交換処理(S1335)の手順を示すシーケンス図である。HDCPの認証および鍵交換処理(S1335)においては、HDCPシンク(Sink)の初期化処理(S1333)で整備された環境を用いて、まず、本例では、HDCPソース機器からのセッション開始の指示を受けて、HDCPシンク機器とHDCPソース機器との間での、認証および鍵交換のプロトコルに従ったメッセージ交換を実現する。同時に、通信相手から取得したAKEシーケンス上の機密データkmを暗号化したデータであるEkmなどをSecure Data Part1226内に保持している HDCPシンク機器の機密データであるプライベート鍵kprivrxで復号化後、Secure Data Part1226内に保持する。また、HDCPシンク機器の機密データであるプライベート鍵kprivrxを基に生成されるkhと、Secure Data Part1226で保持する機密データkm用いて通信相手に送信する機密データであるEkhなどを生成することにより、HDCPシンク機器とHDCPソース機器との間での認証および鍵交換を実現し、HDCPソース機器からセッション鍵を取得、Secure Data Partに保持する。そして、セッション鍵取得後、HDCPコンテキスト情報のステータスを更新し、認証、および、鍵交換シーケンスの完了とHDCPコンテキスト情報をアプリケーションに通知する。
(HDCP authentication and key exchange processing)
14B to 14D are sequence diagrams showing the procedure of HDCP authentication and key exchange processing (S1335) according to this embodiment. In the HDCP authentication and key exchange process (S1335), using the environment prepared in the HDCP sink initialization process (S1333), first, in this example, an instruction to start a session from the HDCP source device is issued. In response, the message exchange according to the authentication and key exchange protocol is realized between the HDCP sink device and the HDCP source device. At the same time, Ekm, which is the encrypted data KM in the AKE sequence obtained from the communication partner, is stored in Secure Data Part 1226 and decrypted with the private key kprivrx, which is the confidential data of the HDCP sink device. Stored in Data Part 1226. Also, by generating kh generated based on the private key kprivrx that is the confidential data of the HDCP sink device, Ekh that is the confidential data transmitted to the communication partner using the confidential data km held in the Secure Data Part 1226, It realizes authentication and key exchange between the HDCP sink device and the HDCP source device, acquires a session key from the HDCP source device, and holds it in the Secure Data Part. Then, after acquiring the session key, the status of the HDCP context information is updated, and the completion of the authentication and key exchange sequence and the HDCP context information are notified to the application.

なお、図14B乃至図14Dにおいて、ステップS1415〜S1416とステップS1422〜S1423、ステップS1424とステップS1430〜S1432、ステップS1433とステップS1436とステップS1439〜S1440、ステップS1441の、HDCPソースApplication1301とHDCP SDK1210間のシーケンスは、HDCP 2.2 の仕様で規定されるAKEに関連する認証および鍵交換処理のメッセージの交換である。   14B to 14D, between steps S1415 to S1416 and steps S1422 to S1423, step S1424 and steps S1430 to S1432, step S1433, steps S1436, steps S1439 to S1440, and step S1441, between the HDCP source Application 1301 and HDCP SDK 1210. The sequence is an exchange of authentication and key exchange messages related to the AKE specified in the HDCP 2.2 specification.

コンテンツの送信者から、ステップS1411において、ネットワークセッションの生成要求が、HDCP SDK1210に送られると、HDCP SDK1210は、ステップS1412において、HDCP認証開始のイベントをHDCPSink Application402に伝える。それに応えて、HDCPSink Application402は、ステップS1413において、HDCP SDK1210のHDCPSink認証を呼び出す。   When a network session generation request is sent from the content sender to the HDCP SDK 1210 in step S1411, the HDCP SDK 1210 transmits an HDCP authentication start event to the HDCP Sink Application 402 in step S1412. In response, the HDCP Sink Application 402 calls HDCP Sink authentication of the HDCP SDK 1210 in step S1413.

コンテンツの送信者から、ステップS1414において、HDCPSource Application1301にHDCPSource認証が初期化されて、HDCPSource Application1301が、ステップS1415において、HDCP SDK1210にAKE Initを送信することで、HDCPの認証および鍵交換処理におけるソース機器とシンク機器間のメッセージ交換が開始される。以下、シンク機器から見た各メッセージ交換の概略を示し、各ステップの処理についての詳細な説明は省略する。   In step S1414, HDCPSource authentication is initialized to the HDCPSource Application 1301 from the content sender, and the HDCPSource Application 1301 transmits AKE Init to the HDCP SDK 1210 in Step S1415, so that the source device in the HDCP authentication and key exchange processing is transmitted. And message exchange between the sink devices is started. Hereinafter, an outline of each message exchange as seen from the sink device is shown, and a detailed description of the processing of each step is omitted.

ステップS1415〜S1423においては、HDCPシンク機器がHDCPソース機器から受信したAKE InitメッセージとAKE Transmitter Infoメッセージに含まれている情報を基に、Non Secure Data Partにおける処理を行い、Secure Data Interface1321を使用して、Function Numberで示すSecure Data Part1226における処理を実行し、実行結果を基にAKE Send CertメッセージおよびAKE Receiver Infoメッセージを生成して、HDCPソース機器側に戻していることを示している。   In steps S1415 to S1423, the HDCP sink device performs processing in the Non Secure Data Part based on the information included in the AKE Init message and the AKE Transmitter Info message received from the HDCP source device, and uses the Secure Data Interface 1321. Thus, the process in Secure Data Part 1226 indicated by Function Number is executed, the AKE Send Cert message and the AKE Receiver Info message are generated based on the execution result, and returned to the HDCP source device side.

なお、HDCPの仕様に基づくメッセージとFunction Numberとは1対1に対応せず、メッセージの1つが複数のFunction Numberにマッピングされたり、複数のメッセージが1つのFunction Numberにマップされたりする場合がある。したがって、ステップS1415〜S1323で1つのSecure Data Partにおける処理の実行を説明しているが、実際の実装では、複数のSecure Data Partに分けて呼び出す。かかる、Secure Data Partの分け方は、実現する機能のシーケンスと該当シーケンスで扱う機密データに対するアクセスのタイミングを判断して決定する。   Note that messages based on HDCP specifications and Function Numbers do not correspond one-to-one, and one message may be mapped to a plurality of Function Numbers, or a plurality of messages may be mapped to one Function Number. . Therefore, although execution of processing in one Secure Data Part has been described in Steps S1415 to S1323, in actual implementation, it is divided into a plurality of Secure Data Parts and called. Such a method of dividing Secure Data Part is determined by judging the sequence of functions to be realized and the timing of access to confidential data handled in the corresponding sequence.

また、ステップS1424〜S1432においては、HDCPシンク機器がHDCPソース機器から受信したAKE No Stored kmメッセージに含まれている情報を基に、Non Secure Data Partにおける処理を行い、Secure Data Interface1321を使用して、Function Numberで示すSecure Data Part1226における処理を実行し、実行結果を基にAKE Send rrxメッセージ、AKE Send H primeメッセージおよびAKE Send Painting Infoメッセージを生成して、HDCPソース機器側に戻していることを示している。   In steps S1424 to S1432, the HDCP sink device performs processing in the Non Secure Data Part based on the information included in the AKE No Stored km message received from the HDCP source device, and uses the Secure Data Interface 1321. Execute the process in Secure Data Part 1226 indicated by Function Number, generate AKE Send rrx message, AKE Send H prime message and AKE Send Painting Info message based on the execution result, and return to HDCP source device side Show.

また、ステップS1433〜S1440においては、HDCPシンク機器がHDCPソース機器から受信したLC initメッセージに含まれている情報を基に、Non Secure Data Partにおける処理を行い、Secure Data Interface1321を使用して、Function Numberで示すSecure Data Part1226における処理を実行し、HDCPシンク機器からHDCPソース機器へのRRT Readyメッセージに対してRRT Challengeメッセージの応答があれば、実行結果を基にLC Send L primeメッセージを生成して、HDCPソース機器側に戻していることを示している。   In steps S1433 to S1440, the HDCP sink device performs processing in the Non Secure Data Part based on the information included in the LC init message received from the HDCP source device, and uses the Secure Data Interface 1321 to If the process in Secure Data Part 1226 indicated by Number is executed and there is an RRT Challenge message response to the RRT Ready message from the HDCP sink device to the HDCP source device, an LC Send L prime message is generated based on the execution result. , Indicating that it has returned to the HDCP source device side.

HDCPSource Application1301は、LC Send L primeメッセージを受信して、ステップS1441において、send EksメッセージをHDCP SDK1210に送る。そして、コンテンツの送信者にネットワークセッションの確立を通知する。   The HDCPSource Application 1301 receives the LC Send L prime message, and sends a send Eks message to the HDCP SDK 1210 in step S1441. Then, the establishment of the network session is notified to the content sender.

HDCP SDK1210は、ステップS1442〜S1446において、受信したsend Eksメッセージに含まれている情報を基に、Non Secure Data Partにおける処理を行い、Secure Data Interface1321を使用して、Function Numberで示すSecure Data Part1226における処理を実行すると共に、ステップS1447において、HDCP認証の完了イベントをHDCPSink Application402に送る。   In steps S1442 to S1446, the HDCP SDK 1210 performs processing in the Non Secure Data Part based on the information included in the received send Eks message, and uses the Secure Data Interface 1321 to use the Secure Data Part 1226 indicated by Function Number. At the same time as executing the process, an HDCP authentication completion event is sent to the HDCP Sink Application 402 in step S1447.

HDCPSink Application402は、HDCP認証の完了イベントを受けて、HDCP SDK1210のHDCPSinkの復号処理で使用するパラメータの取得処理を呼び出す。HDCP SDK1210は、ステップS1449〜S1453において、パラメータの取得処理の呼び出しを受けて、Non Secure Data Partにおける処理を行い、Secure Data Interface1321を使用して、Function Numberで示すSecure Data Part1226における処理を実行する。   In response to the HDCP authentication completion event, the HDCP Sink Application 402 calls a parameter acquisition process used in the HDCP Sink decryption process of the HDCP SDK 1210. In steps S1449 to S1453, the HDCP SDK 1210 receives a call for parameter acquisition processing, performs processing in the Non Secure Data Part, and executes processing in the Secure Data Part 1226 indicated by Function Number using the Secure Data Interface 1321.

(暗号化コンテンツ伝送処理)
図14Eは、本実施形態に係る暗号化コンテンツ伝送処理(S1337)の手順を示すシーケンス図である。暗号化コンテンツ伝送処理(S1337)においては、HDCPの認証および鍵交換処理(S1335)で交換された鍵を用いて、暗号化コンテンツの伝送を行なう。本例では、アプリケーションがHDCPソース機器から暗号化コンテンツを受信、受信データをHDCPミドルウェアへ渡し、Secure Data Part1226に保持された交換鍵を用いて復号後、復号結果をアプリケーションに渡す。そして、アプリケーションは、復号結果を基に描画等の処理を行う。また、HDCPソース機器からのセッション終了の指示を受けて、暗号化コンテンツの復号化処理を終了し、HDCPコンテキスト情報のステータスを更新、暗号化コンテンツ伝送処理の完了とHDCP コンテキスト情報をアプリケーションに通知する。
(Encrypted content transmission processing)
FIG. 14E is a sequence diagram showing a procedure of the encrypted content transmission process (S1337) according to the present embodiment. In the encrypted content transmission process (S1337), the encrypted content is transmitted using the key exchanged in the HDCP authentication and key exchange process (S1335). In this example, the application receives the encrypted content from the HDCP source device, passes the received data to the HDCP middleware, decrypts it using the exchange key held in the Secure Data Part 1226, and passes the decryption result to the application. Then, the application performs processing such as drawing based on the decoding result. Also, upon receiving a session termination instruction from the HDCP source device, the decryption process of the encrypted content is terminated, the status of the HDCP context information is updated, the completion of the encrypted content transmission process and the HDCP context information are notified to the application. .

コンテンツの送信者が、ステップS1461において、HDCPのソース機器のアプリケーション1301に対し、ストリームコンテンツの配信を指示する。ソース機器のアプリケーション1301は、ステップS1462において、ストリームコンテンツを暗号化する。そして、ソース機器のアプリケーション1301は、ステップS1463において、暗号化されたストリームコンテンツをシンク機器のHDCPSink Application402に配信する。   In step S 1461, the content sender instructs the HDCP source device application 1301 to distribute the stream content. In step S1462, the application 1301 of the source device encrypts the stream content. In step S 1463, the application 1301 of the source device distributes the encrypted stream content to the HDCP Sink Application 402 of the sink device.

HDCPSink Application402は、ステップS1464において、暗号化されたストリームコンテンツを受信する。そして、HDCPSink Application402は、ステップS1465において、HDCP SDK1210に対して受信したストリームコンテンツの復号を指示する。HDCP SDK1210は、ステップS1466において、Secure Public API1221のCTRモード(Counter Mode)でのAES復号を呼び出す。Secure Public API1221は、ステップS1467において、Secure Private Layer1222にAES復号の実施を指示する。Secure Private Layer1222は、ステップS1468において、Secure Porting Layer1227、1228にAES復号を実施させる。   In step S1464, the HDCP Sink Application 402 receives the encrypted stream content. In step S1465, the HDCP Sink Application 402 instructs the HDCP SDK 1210 to decode the received stream content. In step S1466, the HDCP SDK 1210 calls AES decryption in the CTR mode (Counter Mode) of the Secure Public API 1221. In step S1467, the secure public API 1221 instructs the secure private layer 1222 to perform AES decryption. In step S1468, the secure private layer 1222 causes the secure porting layers 1227 and 1228 to perform AES decryption.

HDCPSink Application402は、ステップS1469において、ストリームコンテンツをデコードする。   The HDCP Sink Application 402 decodes the stream content in step S1469.

コンテンツの送信者が、ストリームコンテンツの配信が完了するまで、ステップS1461〜S1469が繰り返される。   Steps S1461 to S1469 are repeated until the content sender completes the distribution of the stream content.

コンテンツの送信者は、ストリームコンテンツの配信が完了すると、ステップS1470において、ネットワークセッションの切断を、HDCP SDK1210に通知する。HDCP SDK1210は、ステップS1471において、HDCPのセッション切断イベントをHDCPSink Application402に通知する。   When the distribution of the stream content is completed, the content sender notifies the HDCP SDK 1210 of disconnection of the network session in step S1470. In step S1471, the HDCP SDK 1210 notifies the HDCP Sink Application 402 of an HDCP session disconnection event.

(HDCPシンクの終了処理)
図14Fは、本実施形態に係るHDCPシンク(Sink)の終了処理(S1339)の手順を示すシーケンス図である。HDCPシンク(Sink)の終了処理(S1339)においては、HDCPシンク(Sink)の初期化処理(S1333)において整備された環境を解放する。例えば、Secure WorldのSecure Data Part1226に確保された記憶領域の解放、あるいは、「HDCP認証および鍵交換処理(S1335)」や「暗号化コンテンツ伝送処理(S1337)」のための確保された記憶領域を解放する。そして、HDCPコンテキスト情報を解放後、HDCPシンク(Sink)の終了処理の完了をアプリケーションに通知する。
(End processing of HDCP sync)
FIG. 14F is a sequence diagram illustrating a procedure of HDCP sink (Sink) termination processing (S1339) according to the present embodiment. In the HDCP sink (Sink) termination process (S1339), the environment prepared in the HDCP sink (Sink) initialization process (S1333) is released. For example, a storage area reserved for Secure World Secure Data Part 1226 is released, or a storage area reserved for “HDCP authentication and key exchange processing (S1335)” or “encrypted content transmission processing (S1337)” is used. release. Then, after releasing the HDCP context information, the application is notified of completion of HDCP sink (Sink) termination processing.

HDCPシンク(Sink)のステップS1481〜S1486の終了処理は、図14AにおけるステップS1401、S1402およびS1406〜S1409の「初期化処理」を「終了処理」に置き換えたものなので、詳細な説明は省略する。なお、HDCP SDK1210は、ステップS1486において、ステップS1402で初期化したHDCPの機能とHDCPコンテキスト情報とを解放する。   The HDCP sink (Sink) end processing in steps S1481 to S1486 is obtained by replacing “initialization processing” in steps S1401, S1402 and S1406 to S1409 in FIG. In step S1486, the HDCP SDK 1210 releases the HDCP function and HDCP context information initialized in step S1402.

以下、図11EのSecure Storage終了処理と図7のESecureエンジン終了処理とを実行して、HDCP SDKとSecure Worldを組み合わせたHDCP sink deviceの実現が完了する。   Thereafter, the Secure Storage termination process of FIG. 11E and the ESecure engine termination process of FIG. 7 are executed, and the realization of the HDCP sink device combining HDCP SDK and Secure World is completed.

《情報処理装置のハードウェア構成》
図15Aは、全実施形態に共通の情報処理装置1200のハードウェア構成を示すブロック図である。なお、図15Aにおいて、図8と同様の構成要素には同じ参照番号を付して、重複する説明は省略する。
<< Hardware configuration of information processing equipment >>
FIG. 15A is a block diagram illustrating a hardware configuration of an information processing apparatus 1200 common to all the embodiments. In FIG. 15A, the same reference numerals are given to the same components as those in FIG. 8, and duplicate descriptions are omitted.

図15AのRAM1540において、スタック領域1549は、Non Secure OS856によるNon Secure World内のスタック910と、Secure OS1556によるSecure World内のスタック1520と、に分離される。また、ストレージ1550において、本例では、SST領域1554およびSecure Data領域1555は、Secure OS1556によるSecure World内に配置させる。また、ストレージ1550は、Secure OS1556を有し、機密制御ライブラリ1558は、Non Secure OS856によるNon Secure World内で実行されるモジュールと、Secure OS1556によるSecure World内で実行されるモジュールと、に分離される。情報処理装置1200において、Non Secure WorldからSecure Worldが見えないようにハードウェア的に分離されている以外、その他の構成は、図8と同様であるため詳細な説明は省略する。   In the RAM 1540 of FIG. 15A, the stack area 1549 is separated into a stack 910 in the Non Secure World by the Non Secure OS 856 and a stack 1520 in the Secure World by the Secure OS 1556. In the storage 1550, in this example, the SST area 1554 and the Secure Data area 1555 are arranged in the Secure World by the Secure OS 1556. The storage 1550 has a Secure OS 1556, and the confidential control library 1558 is separated into a module executed in the Non Secure World by the Non Secure OS 856 and a module executed in the Secure World by the Secure OS 1556. . Since the information processing apparatus 1200 is the same as that shown in FIG. 8 except for hardware separation so that the Secure World cannot be seen from the Non Secure World, a detailed description thereof will be omitted.

(スタック領域)
図15Bは、Secure Worldを有する実施形態に共通のスタック領域1549の構成を示す図である。本実施形態において、スタック領域1549はNon Secureスタック910とSecureスタック1520とを有する。Non Secureスタック910は図9Aと同様なので、重複する説明は省略する。
(Stack area)
FIG. 15B is a diagram showing a configuration of a stack area 1549 common to embodiments having Secure World. In the present embodiment, the stack area 1549 includes a non-secure stack 910 and a secure stack 1520. Since the non-secure stack 910 is the same as that in FIG. 9A, a duplicate description is omitted.

Secureスタック1520は、Secure OSによるスタック1521と、Applicationによるスタック1522と、通信プロトコルに対応するMiddlewareスタック1523と、本実施形態の暗号化/復号に対応するMiddlewareスタック1524と、を有する。本実施形態のMiddlewareスタック1524は、Secureエンジン用スタック1525と、暗号化用スタック1526と、Secure Storage用スタック1527と、通信プロトコル用スタック1528と、を含む。Middlewareスタック1524内の各スタック1525〜1528との間のデータ共有やデータ交換は、互いにリンクされたコンテキストにより実現される。なお、Middlewareスタック1524内におけるスタック順は、図15Bに限定されない。   The Secure stack 1520 includes a stack 1521 based on Secure OS, a stack 1522 based on Application, a Middleware stack 1523 corresponding to the communication protocol, and a Middleware stack 1524 corresponding to encryption / decryption of the present embodiment. The middleware stack 1524 of this embodiment includes a secure engine stack 1525, an encryption stack 1526, a secure storage stack 1527, and a communication protocol stack 1528. Data sharing and data exchange with each of the stacks 1525 to 1528 in the Middleware stack 1524 are realized by contexts linked to each other. Note that the stacking order in the Middleware stack 1524 is not limited to FIG. 15B.

(ストレージの格納データ)
図15Cは、Secure Worldを有する実施形態に共通のストレージ1550における格納データの構成を示す図である。
(Storage data)
FIG. 15C is a diagram showing a configuration of stored data in the storage 1550 common to the embodiment having Secure World.

図15Cに示す本実施形態の暗号化/復号に対応するMiddlewareを実現する機密制御ライブラリ1558は、Secure Public API群971と、Secure Private Layerモジュール群1572と、Secure Porting Layerモジュール群1573と、仮想ハードウェアモジュール群974と、を有する。   The confidential control library 1558 that implements the middleware corresponding to encryption / decryption shown in FIG. 15C includes a Secure Public API group 971, a Secure Private Layer module group 1572, a Secure Porting Layer module group 1573, a virtual hardware Wear module group 974.

以下、図9Dと異なるSecure Private Layerモジュール群1572と、Secure Porting Layerモジュール群1573と、の追加または変更モジュールを説明する。Secure Private Layerモジュール群1572は、SecureのCryptographyモジュールと、SecureのSecure Storageモジュールと、を含む。Secure Porting Layerモジュール群1573は、SecureのCryptographyモジュールと、SecureのSecure Storageモジュールと、SecureのSecure Data Interfaceモジュールと、を含む。   Hereinafter, a module for adding or changing a Secure Private Layer module group 1572 and a Secure Porting Layer module group 1573 different from those in FIG. 9D will be described. The Secure Private Layer module group 1572 includes a Secure Cryptography module and a Secure Secure Storage module. The Secure Porting Layer module group 1573 includes a Secure Cryptography module, a Secure Secure Storage module, and a Secure Secure Data Interface module.

なお、Secure Private Layerモジュール群1572のCryptographyモジュールとSecure Storageモジュールとは、図9Dとは異なり、Secure Porting Layerモジュール群1573のNon SecureのSecure Data Interfaceモジュールを呼び出すように構成される。   Note that the Cryptography module and the Secure Storage module of the Secure Private Layer module group 1572 are configured to call the Non Secure Secure Data Interface module of the Secure Porting Layer module group 1573 unlike FIG. 9D.

(各機能処理)
図15Dは、Secure Worldを有する実施形態に共通の各機能処理(S917)の手順を示すフローチャートである。なお、図15Dにおいて、図9Gと同様のステップには同じステップ番号を付して、重複する説明を省略する。
(Each function processing)
FIG. 15D is a flowchart illustrating a procedure of each function process (S917) common to the embodiment having Secure World. In FIG. 15D, steps similar to those in FIG. 9G are denoted by the same step numbers, and redundant description is omitted.

情報処理装置1200は、ステップS932で暗号化機能であると判定された場合、ステップS1501において、Secure Worldを有する場合の暗号化処理を実行する。なお、ステップS1501の処理は、図9Hの処理と暗号化ハードウェアや暗号化ソフトウェアがSecure Worldに有って、Porting Layer1227とPorting Layer1228との間のデータ転送1229が行なわれることが相違するのみで、他は同様であるので重複する説明は省略する。   If it is determined in step S932 that the information processing apparatus 1200 has the encryption function, the information processing apparatus 1200 performs encryption processing in the case where the Secure World is included in step S1501. Note that the processing in step S1501 is different from the processing in FIG. 9H only in that the encryption hardware and encryption software are in Secure World, and data transfer 1229 between Porting Layer 1227 and Porting Layer 1228 is performed. Since the others are the same, redundant description is omitted.

情報処理装置1200は、ステップS934でSST機能であると判定された場合、ステップS1503において、Secure Worldを有する場合のSST処理を実行する。なお、ステップS1503の処理は、図9Iの処理とSSTハードウェアやSSTソフトウェアがSecure Worldに有って、Porting Layer1227とPorting Layer1228との間のデータ転送1229が行なわれることが相違するのみで、他は同様であるので重複する説明は省略する。   If it is determined in step S934 that the information processing apparatus 1200 has the SST function, in step S1503, the information processing apparatus 1200 performs SST processing in the case of having Secure World. The process of step S1503 is different from the process of FIG. 9I only in that the SST hardware and SST software are in Secure World and the data transfer 1229 between the Porting Layer 1227 and the Porting Layer 1228 is performed. Are the same, and redundant description is omitted.

暗号化機能でのSST機能でもない場合、情報処理装置1200は、ステップS1505において、HDCP Sink処理であるか否かを判定する。HDCP Sink処理であれば、情報処理装置1200は、ステップS1507において、HDCP Sink処理を実行する。   If the SST function is not an encryption function, the information processing apparatus 1200 determines whether or not the HDCP sink process is performed in step S1505. If it is the HDCP sink process, the information processing apparatus 1200 executes the HDCP sink process in step S1507.

(HDCP Sink処理)
図15Eは、Secure Worldを有する実施形態に共通のHDCP Sink処理(S1533)の手順を示すフローチャートである。
(HDCP Sink processing)
FIG. 15E is a flowchart showing a procedure of HDCP sink processing (S1533) common to the embodiment having Secure World.

情報処理装置1200は、ステップS1511において、SST初期化済みか否かを判定する。SST初期化済みでなければ、情報処理装置1200はエラー処理を行なう。SST初期化済みであれば、情報処理装置1200は、ステップS1512において、HDCP Sink初期化処理であるか否かを判定する。HDCP Sink初期化処理であれば、情報処理装置1200は、ステップS1513において、HDCP Sinkの機能(feature)の起動とコンテキストの生成を行なう。次に、HDCPレシーバである本情報処理装置1200のデバイス鍵をSSTから取得する。そして、Secure WorldのSecure Data Part1226に接続してHDCP用領域を確保し、デバイス鍵を保持する。   In step S1511, the information processing apparatus 1200 determines whether SST initialization has been completed. If the SST has not been initialized, the information processing apparatus 1200 performs error processing. If SST initialization has been completed, the information processing apparatus 1200 determines in step S1512 whether or not it is HDCP sink initialization processing. If it is HDCP Sink initialization processing, the information processing apparatus 1200 activates the HDCP Sink feature and generates a context in step S1513. Next, the device key of the information processing apparatus 1200 that is an HDCP receiver is acquired from the SST. The HDCP area is secured by connecting to Secure World Secure Data Part 1226 and the device key is held.

HDCP Sink初期化処理でない場合、情報処理装置1200は、ステップS1516において、HDCP Sink認証処理であるか否かを判定する。HDCP Sink認証処理であれば、情報処理装置1200は、ステップS1517において、HDCP Sink初期化処理済みか否かを判定する。HDCP Sink初期化処理済みで無ければ、情報処理装置1200はエラー処理を行なう。HDCP Sink初期化処理済みであれば、情報処理装置1200は、ステップS1518において、Secure Data Partを使用しながら、HDCPソースとの相互認証と鍵交換処理を実行する。なお、ステップS1518のHDCPソースとの相互認証と鍵交換処理は、HDCPの標準プロトコルに従う処理であり、詳細な説明は省略する。   If it is not the HDCP sink initialization process, the information processing apparatus 1200 determines in step S1516 whether it is an HDCP sink authentication process. If it is the HDCP sink authentication process, the information processing apparatus 1200 determines in step S1517 whether the HDCP sink initialization process has been completed. If the HDCP sink initialization processing has not been completed, the information processing apparatus 1200 performs error processing. If the HDCP sink initialization processing has been completed, the information processing apparatus 1200 executes mutual authentication and key exchange processing with the HDCP source in step S1518 while using the Secure Data Part. Note that the mutual authentication and key exchange processing with the HDCP source in step S1518 is processing according to the HDCP standard protocol, and detailed description thereof is omitted.

HDCP Sink初期化処理でなくHDCP Sink認証処理でもない場合、情報処理装置1200は、ステップS1519において、HDCPソースからの暗号コンテンツの受信処理であるか否かを判定する。暗号コンテンツの受信処理であれば、情報処理装置1200は、ステップS1520において、HDCP Sink初期化処理済みか否かを判定する。HDCP Sink初期化処理済みで無ければ、情報処理装置1200はエラー処理を行なう。HDCP Sink初期化処理済みであれば、情報処理装置1200は、ステップS1521において、HDCPソースからの暗号コンテンツを受信する。そして、情報処理装置1200は、ステップS1522において、受信した暗号コンテンツをAES方式で復号して、SSTに保存する。   If neither the HDCP sink initialization process nor the HDCP sink authentication process is performed, the information processing apparatus 1200 determines in step S1519 whether the process is a process for receiving encrypted content from an HDCP source. If it is the reception process of the encrypted content, the information processing apparatus 1200 determines in step S1520 whether or not the HDCP sink initialization process has been completed. If the HDCP sink initialization processing has not been completed, the information processing apparatus 1200 performs error processing. If the HDCP sink initialization processing has been completed, the information processing device 1200 receives encrypted content from the HDCP source in step S1521. In step S1522, the information processing apparatus 1200 decrypts the received encrypted content using the AES method and stores the decrypted content in the SST.

HDCP Sink初期化処理でなくHDCP Sink認証処理でも暗号化コンテンツの受信処理でもない場合、情報処理装置1200は、ステップS1523において、HDCP Sink終了処理であるか否かを判定する。HDCP Sink終了処理であれば、情報処理装置1200は、ステップS1524において、HDCP Sink初期化処理済みか否かを判定する。HDCP Sink初期化処理済みで無ければ、情報処理装置1200はエラー処理を行なう。HDCP Sink初期化処理済みであれば、情報処理装置1200は、ステップS1525において、Secure Data Partの終了処理を行なう。そして、情報処理装置1200は、ステップS1526において、HDCPの機能の終了と、HDCPコンテキストの解放を行なう。   If the HDCP sink initialization process is not an HDCP sink authentication process or an encrypted content reception process, the information processing apparatus 1200 determines in step S1523 whether it is an HDCP sink end process. If it is HDCP Sink end processing, the information processing apparatus 1200 determines whether or not HDCP Sink initialization processing has been completed in Step S1524. If the HDCP sink initialization processing has not been completed, the information processing apparatus 1200 performs error processing. If the HDCP sink initialization processing has been completed, the information processing apparatus 1200 performs secure data part termination processing in step S1525. In step S1526, the information processing apparatus 1200 ends the HDCP function and releases the HDCP context.

本実施形態によれば、ハードウェア的に分離されたノーマル実行環境である非機密部とセキュア実行環境である機密部とを通信アプリケーションに従って使い分けながら、複数の通信アプリケーションから共通のシーケンスに従って利用することができる。   According to the present embodiment, the non-confidential part, which is a normal execution environment separated from the hardware, and the secret part, which is a secure execution environment, are used according to a common sequence from a plurality of communication applications while being selectively used according to the communication application. Can do.

[第5実施形態]
次に、本発明の第5実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、上記第2実施形態乃至第4実施形態と比べると、通信アプリケーションとして「HDCP」以外のプロトコルにおいても、また、ハードウェアとして多種の方式が共通のシーケンスを用いる点で異なる。通信アプリケーションは、Miracast使用アプリケーション、HDCP使用アプリケーション、DLNA(登録商標)使用アプリケーション、DTCP-IP使用アプリケーション、DTCP-MOST使用アプリケーションを含む。また、ハードウェアは、煩雑となるため図示しないが、例えば、SST(Secure Storage)、RSA、HASH、AES、M6を含む。なお、ECCやDH等の他の暗号アルゴリズムも含まれてよい。その他の構成および動作は、第2実施形態から第4実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
[Fifth Embodiment]
Next, an information processing apparatus according to the fifth embodiment of the present invention will be described. Compared with the second to fourth embodiments, the information processing apparatus according to the present embodiment uses a sequence in which a variety of methods are used as a hardware in a protocol other than “HDCP” as a communication application. It is different in point. The communication application includes an application using Miracast, an application using HDCP, an application using DLNA (registered trademark), an application using DTCP-IP, and an application using DTCP-MOST. The hardware is not illustrated because it is complicated, but includes, for example, SST (Secure Storage), RSA, HASH, AES, and M6. Other cryptographic algorithms such as ECC and DH may also be included. Since other configurations and operations are the same as those in the second to fourth embodiments, the same configurations and operations are denoted by the same reference numerals, and detailed description thereof is omitted.

《情報処理装置のソフトウェア階層》
図16Aは、図4Aを拡張した、本実施形態に係る情報処理装置のソフトウェア階層1610を示す図である。なお、図16Aにおいて、図4Aおよび図4Bと同様の機能要素には同じ参照番号を付して、重複する説明を省略する。
<< Software hierarchy of information processing equipment >>
FIG. 16A is a diagram showing a software hierarchy 1610 of the information processing apparatus according to the present embodiment, which is an extension of FIG. 4A. In FIG. 16A, functional elements similar to those in FIGS. 4A and 4B are denoted by the same reference numerals, and redundant description is omitted.

図16Aにおいて、本実施形態に係る暗号化/復号層のMiddleware201の構成は第2実施形態および第3実施形態と同様である。図16Aにおいては、Application401〜40nとして、Miracast使用アプリケーション、HDCP使用アプリケーション、EthernetEVBでのHDCP使用アプリケーション、HDCP-MOST使用アプリケーション、DLNA(登録商標)使用アプリケーション、DTCP-IP使用アプリケーション、DTCP-MOST使用アプリケーションや、Secure Data Mgmt(Management)使用アプリケーション、ユーザ仕様のアプリケーションなどの多様な通信アプリケーションと共通のシーケンスで接続ができる。また、Hardwareとして、図示しないが、SST(Secure Storage)、RSA、HASH、AES、M6などの多様なハードウェアに共通のシーケンスで接続ができる。また、ECCやDH等の他の暗号アルゴリズムが接続されてもよい。   In FIG. 16A, the configuration of the middleware 201 of the encryption / decryption layer according to this embodiment is the same as that of the second embodiment and the third embodiment. In FIG. 16A, as applications 401 to 40n, applications using Miracast, applications using HDCP, applications using HDCP on EthernetEVB, applications using HDCP-MOST, applications using DLNA (registered trademark), applications using DTCP-IP, applications using DTCP-MOST It can be connected with various communication applications such as Secure Data Mgmt (Management) application and user-specific applications in the same sequence. As hardware, although not shown, it is possible to connect to various hardware such as SST (Secure Storage), RSA, HASH, AES, and M6 in a common sequence. In addition, other encryption algorithms such as ECC and DH may be connected.

図16Bは、図12を拡張した、本実施形態に係る情報処理装置の他のソフトウェア階層1620を示す図である。なお、図16Bにおいて、図4A、図12および図16Aと同様の機能要素には同じ参照番号を付して、重複する説明を省略する。   FIG. 16B is a diagram showing another software hierarchy 1620 of the information processing apparatus according to the present embodiment, which is an extension of FIG. In FIG. 16B, functional elements similar to those in FIGS. 4A, 12 and 16A are denoted by the same reference numerals, and redundant description is omitted.

図16Bは、本実施形態に係る暗号化/復号層のMiddleware1201の構成は第4実施形態と同様である。図16BにおいてもApplication401〜40nとして、Miracast使用アプリケーション、HDCP使用アプリケーション、EthernetEVBでのHDCP使用アプリケーション、HDCP-MOST使用アプリケーション、DLNA(登録商標)使用アプリケーション、DTCP-IP使用アプリケーション、DTCP-MOST使用アプリケーションや、Secure Data Mgmt(Management)使用アプリケーション、ユーザ仕様のアプリケーションなどの多様な通信アプリケーションと共通のシーケンスで接続ができる。また、Hardwareとして、図示しないが、SST(Secure Storage)、RSA、HASH、AES、M6などの多様なハードウェアに共通のシーケンスで接続ができる。また、ECCやDH等の他の暗号アルゴリズムが接続されてもよい。   In FIG. 16B, the configuration of the encryption / decryption layer Middleware 1201 according to this embodiment is the same as that of the fourth embodiment. Also in FIG. 16B, as applications 401 to 40n, applications using Miracast, applications using HDCP, applications using HDCP on EthernetEVB, applications using HDCP-MOST, applications using DLNA (registered trademark), applications using DTCP-IP, applications using DTCP-MOST, It can be connected with various communication applications such as Secure Data Mgmt (Management) application and user-specific applications in the same sequence. As hardware, although not shown, it is possible to connect to various hardware such as SST (Secure Storage), RSA, HASH, AES, and M6 in a common sequence. In addition, other encryption algorithms such as ECC and DH may be connected.

図16Cは、図12を拡張し図16Bを変更した、本実施形態に係る他の情報処理装置のソフトウェア階層1630を示す図である。なお、図16Cにおいて、図4A、図12、図16Aおよび図16Bと同様の機能要素には同じ参照番号を付して、重複する説明を省略する。   FIG. 16C is a diagram showing a software hierarchy 1630 of another information processing apparatus according to the present embodiment, which is an extension of FIG. 12 and changes FIG. 16B. In FIG. 16C, functional elements similar to those in FIGS. 4A, 12, 16A, and 16B are assigned the same reference numerals, and redundant descriptions are omitted.

図16Cは、本実施形態に係る暗号化/復号層のMiddleware1201の構成は第4実施形態と同様である。図16Cにおいては、Linux(登録商標)のTEE(Trusted Execution Environment)を用いたNon Secure WorldとSecure Worldとのハードウェア的分離の構成を示している。TEEクライアントアプリケーションによるNon Secure OS Part1624と、TEEトラステッドアプリケーションによるSecure OS Part1625とは、ハードウェア的に分離されて外部から遮断され、Secure OS Part1625の機密が守られる。   In FIG. 16C, the configuration of the encryption / decryption layer Middleware 1201 according to the present embodiment is the same as that of the fourth embodiment. FIG. 16C shows a hardware separation configuration of Non Secure World and Secure World using Linux (registered trademark) TEE (Trusted Execution Environment). The Non Secure OS Part 1624 by the TEE client application and the Secure OS Part 1625 by the TEE trusted application are separated from each other by hardware and blocked from the outside, and the security of the Secure OS Part 1625 is protected.

Non Secure OS Part1624は、各Application401〜40nから直接、あるいは、各通信アプリケーションのSDK層410〜41mを介してインタフェースするPublic API1621と、ハードウェアとの接続を管理するPrivate Layer1622と、Secure OS Part1625とのハードウェア的に分離されたデータ転送を行なうためのPorting LayerのTEEクライアントAPI1627と、を有する。   The Non Secure OS Part 1624 includes a Public API 1621 that interfaces directly from each Application 401 to 40n or through the SDK layers 410 to 41m of each communication application, a Private Layer 1622 that manages connection with hardware, and a Secure OS Part 1625. And a Porting Layer TEE client API 1627 for performing hardware separated data transfer.

一方、Secure OS Part1625は、Non Secure OS Part1624とのハードウェア的に分離されたデータ転送を行なうためのPorting Layer1628と、Secure OS Part1625内でハードウェアとの接続を管理するPrivate Layer1622と、Secure OS Part1625内でハードウェア層451および452を各々制御するPorting Layer1623と、Middleware's Secure Data Part1226と、を有する。   On the other hand, the Secure OS Part 1625 includes a Porting Layer 1628 for transferring data separated from the Non Secure OS Part 1624 in terms of hardware, a Private Layer 1622 for managing connection with hardware in the Secure OS Part 1625, and a Secure OS Part 1625. Porting Layer 1623 for controlling hardware layers 451 and 452 and Middleware's Secure Data Part 1226, respectively.

なお、TEEクライアントAPI1627とPorting Layer1628との間のデータ転送1629は、ファームウェア(Firmware)層1260まで戻ることによって、ハードウェア的に分離される。   The data transfer 1629 between the TEE client API 1627 and the porting layer 1628 is separated in hardware by returning to the firmware layer 1260.

図16CにおいてもApplication401〜40nとして、Miracast使用アプリケーション、HDCP使用アプリケーション、EthernetEVBでのHDCP使用アプリケーション、HDCP-MOST使用アプリケーション、DLNA(登録商標)使用アプリケーション、DTCP-IP使用アプリケーション、DTCP-MOST使用アプリケーションや、Secure Data Mgmt(Management)使用アプリケーション、ユーザ仕様のアプリケーションなどの多様な通信アプリケーションと共通のシーケンスで接続ができる。また、Hardwareとして、図示しないが、SST(Secure Storage)、RSA、HASH、AES、M6などの多様なハードウェアに共通のシーケンスで接続ができる。また、ECCやDH等の他の暗号アルゴリズムが接続されてもよい。   Also in FIG. 16C, as applications 401 to 40n, applications using Miracast, applications using HDCP, applications using HDCP on EthernetEVB, applications using HDCP-MOST, applications using DLNA (registered trademark), applications using DTCP-IP, applications using DTCP-MOST, etc. It can be connected with various communication applications such as Secure Data Mgmt (Management) application and user-specific applications in the same sequence. As hardware, although not shown, it is possible to connect to various hardware such as SST (Secure Storage), RSA, HASH, AES, and M6 in a common sequence. In addition, other encryption algorithms such as ECC and DH may be connected.

図16Dは、図12を拡張し図16Bや図16Cを変更した、本実施形態に係る他の情報処理装置のソフトウェア階層1640を示す図である。なお、図16Dにおいて、図4A、図12、図16A〜図16Cと同様の機能要素には同じ参照番号を付して、重複する説明を省略する。   FIG. 16D is a diagram showing a software hierarchy 1640 of another information processing apparatus according to the present embodiment, which is an extension of FIG. 12 and changes FIG. 16B and FIG. 16C. In FIG. 16D, functional elements similar to those in FIGS. 4A, 12, and 16A to 16C are denoted by the same reference numerals, and redundant description is omitted.

図16Dは、Secure OS Partを有する構成の変形であり、暗号化/復号層のMiddleware1601のSecure Data Part1626を、SoCと共有メモリ(Shared Memory)1650で接続した専用ハードウェアのファームウェアとして実装した場合の構成になる。   FIG. 16D is a modification of the configuration having the Secure OS Part, in the case where the Secure Data Part 1626 of the middleware 1601 of the encryption / decryption layer is implemented as firmware of dedicated hardware connected to the SoC with a shared memory 1650. It becomes a composition.

Non Secure OS Part1624は、Secure OS Part1625とのハードウェア的に分離されたデータ転送を行なうためのPorting Layer1657を有する。一方、Secure OS Part1625は、Non Secure OS Part1624とのハードウェア的に分離されたデータ転送を行なうためのPorting Layer1658と、Secure OS Part1625内に、Middleware's Secure Data Part1626を有する。なお、Porting Layer1657とPorting Layer1658との間のデータ転送1651は、共有メモリ(Shared Memory)1650とCustom Hardware1652とのハードウェアまで戻ることによって、ハードウェア的に分離される。   The Non Secure OS Part 1624 has a Porting Layer 1657 for performing data transfer separated from the Secure OS Part 1625 in terms of hardware. On the other hand, the Secure OS Part 1625 has a Porting Layer 1658 for transferring data separated from the Non Secure OS Part 1624 in terms of hardware, and a Middleware OS's Secure Data Part 1626 in the Secure OS Part 1625. Note that the data transfer 1651 between the porting layer 1657 and the porting layer 1658 is separated by hardware by returning to the hardware of the shared memory 1650 and the custom hardware 1652.

図16DにおいてもApplication401〜40nとして、Miracast使用アプリケーション、HDCP使用アプリケーション、EthernetEVBでのHDCP使用アプリケーション、HDCP-MOST使用アプリケーション、DLNA(登録商標)使用アプリケーション、DTCP-IP使用アプリケーション、DTCP-MOST使用アプリケーションや、Secure Data Mgmt(Management)使用アプリケーション、ユーザ仕様のアプリケーションなどの多様な通信アプリケーションと共通のシーケンスで接続ができる。また、Hardwareとして、図示しないが、SST(Secure Storage)、RSA、HASH、AES、M6などの多様なハードウェアに共通のシーケンスで接続ができる。また、ECCやDH等の他の暗号アルゴリズムが接続されてもよい。   Also in FIG. 16D, as applications 401 to 40n, applications using Miracast, applications using HDCP, applications using HDCP on EthernetEVB, applications using HDCP-MOST, applications using DLNA (registered trademark), applications using DTCP-IP, applications using DTCP-MOST, It can be connected with various communication applications such as Secure Data Mgmt (Management) application and user-specific applications in the same sequence. As hardware, although not shown, it is possible to connect to various hardware such as SST (Secure Storage), RSA, HASH, AES, and M6 in a common sequence. In addition, other encryption algorithms such as ECC and DH may be connected.

本実施形態によれば、通信アプリケーションの相違、あるいは、準備されたハードウェアの相違を吸収して、複数の通信アプリケーションから共通のシーケンスに従って準備されたハードウェアを利用することができる。   According to the present embodiment, it is possible to absorb differences between communication applications or prepared hardware and use hardware prepared according to a common sequence from a plurality of communication applications.

[第6実施形態]
次に、本発明の第6実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、上記第2実施形態乃至第5実施形態と比べると、本実施形態のミドルウェアが、HDCPなどの通信アプリケーションの代行処理を含まず、ユーザアプリケーションがHDCPなどの通信アプリケーションを実行する中に依頼された機密関連処理を実行する構成である点で異なる。その他の構成および動作は、第2実施形態と同様であるため、同じ構成および動作については同じ符号を付してその詳しい説明を省略する。
[Sixth Embodiment]
Next, an information processing apparatus according to the sixth embodiment of the present invention will be described. In the information processing apparatus according to the present embodiment, the middleware of the present embodiment does not include proxy processing for communication applications such as HDCP and the user application is communication such as HDCP, as compared with the second to fifth embodiments. It is different in that it is a configuration that executes a security related process requested during execution of an application. Since other configurations and operations are the same as those of the second embodiment, the same configurations and operations are denoted by the same reference numerals, and detailed description thereof is omitted.

《情報処理装置のソフトウェア階層》
図17Aは、本実施形態に係る情報処理装置のソフトウェア階層1710を示す図である。図17Aは、Secure Worldを有しない図4Aに対応する。なお、図17Aにおいて、図4Aと同様の構成要素には同じ参照番号を付して、重複する説明を省略する。
<< Software hierarchy of information processing equipment >>
FIG. 17A is a diagram showing a software hierarchy 1710 of the information processing apparatus according to the present embodiment. FIG. 17A corresponds to FIG. 4A without Secure World. In FIG. 17A, the same components as those in FIG. 4A are denoted by the same reference numerals, and redundant description is omitted.

図17Aは、図4Aのミドルウェアの構成からHDCP Sinkの処理部分410を削除し、HDCP Sink処理をUser Application1712のHDCP application1712aで実行する場合の構成である。かかる構成の場合には、HDCP application1712aの実行中の暗号化処理やSecure Storage処理をミドルウェアに依頼して、本実施形態のMiddleware201に実行させることになる。   FIG. 17A shows a configuration when the HDCP Sink processing part 410 is deleted from the middleware configuration of FIG. 4A and the HDCP Sink processing is executed by the HDCP application 1712a of the User Application 1712. In such a configuration, the middleware 201 of the present embodiment is made to request the middleware to perform encryption processing and Secure Storage processing during execution of the HDCP application 1712a.

図17Bは、本実施形態に係る情報処理装置の他のソフトウェア階層1720を示す図である。図17Bは、Secure Worldを有する図12に対応する。なお、図17Bにおいて、図4Aおよび図12と同様の構成要素には同じ参照番号を付して、重複する説明を省略する。   FIG. 17B is a diagram showing another software layer 1720 of the information processing apparatus according to the present embodiment. FIG. 17B corresponds to FIG. 12 having Secure World. In FIG. 17B, the same components as those in FIGS. 4A and 12 are denoted by the same reference numerals, and redundant description is omitted.

図17Bは、図12のミドルウェアの構成からHDCP Sinkの処理部分1210を削除し、HDCP Sink処理をUser Application1712のHDCP application1712aで実行する場合の構成である。かかる構成の場合には、HDCP application1712aの実行中の暗号化処理やSecure Storage処理をミドルウェアに依頼して、本実施形態のMiddleware1201に実行させることになる。   FIG. 17B is a configuration when the HDCP Sink processing portion 1210 is deleted from the middleware configuration of FIG. 12 and the HDCP Sink processing is executed by the HDCP application 1712 a of the User Application 1712. In the case of such a configuration, the middleware 1201 of the present embodiment is made to request the middleware to perform encryption processing and Secure Storage processing during execution of the HDCP application 1712a.

本実施形態によれば、ユーザのアプリケーションが通信アプリケーションのプロトコルを実行できる場合であっても、そのプロトコル中の機密関連処理の部分を、複数のデータ交換を行なうアプリケーションから共通のシーケンスに従って利用することができる。   According to the present embodiment, even when the user application can execute the protocol of the communication application, the secret-related processing portion in the protocol is used from the applications that exchange data in accordance with a common sequence. Can do.

[第7実施形態]
次に、本発明の第7実施形態に係る情報処理装置について説明する。本実施形態に係る情報処理装置は、上記第2実施形態乃至第6実施形態と比べると、データ交換を行なうアプリケーションとして、通信アプリケーション以外にも記憶媒体を経由するデータ交換においても、機密保護を実現するために共通のシーケンスを用いる点で異なる。記憶媒体には、DVDやメモリチップなどが含まれる。
[Seventh Embodiment]
Next, an information processing apparatus according to the seventh embodiment of the present invention will be described. Compared with the second to sixth embodiments, the information processing apparatus according to the present embodiment realizes security protection in data exchange via a storage medium as well as communication applications as data exchange applications. This is different in that a common sequence is used. The storage medium includes a DVD, a memory chip, and the like.

《記憶媒体経由の機密保護》
図18は、本実施形態に係る記憶媒体を経由してデータ交換を行なうシステム1800の機密保護機能を説明する図である。
<< Security via storage medium >>
FIG. 18 is a diagram for explaining the security protection function of the system 1800 that exchanges data via the storage medium according to the present embodiment.

システム1800には、記憶媒体1810を経由してデータ交換が可能な種々の機器が図示されている。かかる種々の機器に本実施形態のMiddleware201を組み込むことによって、記憶媒体1810を経由したデータ交換においても、ネットワークを介した通信によるデータ交換と同様に、所望の暗号化および復号を含む機能を共通のシーケンスに従って利用することができる。   The system 1800 illustrates various devices that can exchange data via a storage medium 1810. By incorporating the middleware 201 of the present embodiment into such various devices, even in data exchange via the storage medium 1810, the functions including desired encryption and decryption are shared in the same manner as data exchange by communication via the network. It can be used according to the sequence.

[他の実施形態]
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。また、それぞれの実施形態に含まれる別々の特徴を如何様に組み合わせたシステムまたは装置も、本発明の範疇に含まれる。
[Other Embodiments]
While the present invention has been described with reference to the embodiments, the present invention is not limited to the above embodiments. Various changes that can be understood by those skilled in the art can be made to the configuration and details of the present invention within the scope of the present invention. In addition, a system or an apparatus in which different features included in each embodiment are combined in any way is also included in the scope of the present invention.

また、本発明は、複数の機器から構成されるシステムに適用されてもよいし、単体の装置に適用されてもよい。さらに、本発明は、実施形態の機能を実現する情報処理プログラムが、システムあるいは装置に直接あるいは遠隔から供給される場合にも適用可能である。したがって、本発明の機能をコンピュータで実現するために、コンピュータにインストールされるプログラム、あるいはそのプログラムを格納した媒体、そのプログラムをダウンロードさせるWWW(World Wide Web)サーバも、本発明の範疇に含まれる。特に、少なくとも、上述した実施形態に含まれる処理ステップをコンピュータに実行させるプログラムを格納した非一時的コンピュータ可読媒体(non-transitory computer readable medium)は本発明の範疇に含まれる。   In addition, the present invention may be applied to a system composed of a plurality of devices, or may be applied to a single device. Furthermore, the present invention can also be applied to a case where an information processing program that implements the functions of the embodiments is supplied directly or remotely to a system or apparatus. Therefore, in order to realize the functions of the present invention on a computer, a program installed in the computer, a medium storing the program, and a WWW (World Wide Web) server that downloads the program are also included in the scope of the present invention. . In particular, at least a non-transitory computer readable medium storing a program for causing a computer to execute the processing steps included in the above-described embodiments is included in the scope of the present invention.

Claims (13)

機密にデータ交換を実現する複数のアプリケーションと共通の処理手順でデータ交換が可能な第1インタフェースと、
暗号化機能および復号機能を実現する複数のハードウェアのそれぞれとデータ交換が可能な第2インタフェースと、
前記第1インタフェースと前記第2インタフェースとを介して、前記複数のアプリケーションの少なくともいずれか1つと前記複数のハードウェアの少なくともいずれか1つとのデータ交換を制御する制御手段と、
を備える情報処理装置。
A first interface capable of exchanging data in a common processing procedure with a plurality of applications for realizing confidential data exchange;
A second interface capable of exchanging data with each of a plurality of hardware realizing the encryption function and the decryption function;
Control means for controlling data exchange between at least one of the plurality of applications and at least one of the plurality of hardware via the first interface and the second interface;
An information processing apparatus comprising:
前記制御手段は、
前記アプリケーションから初期化指示を受けて、ライブラリとして準備されたソフトウェアモジュール群および使用するハードウェアを初期化する第1初期化処理手段と、
前記アプリケーションから、暗号化および復号を含む機密情報処理の実行指示を受けて、前記初期化されたソフトウェアモジュール群およびハードウェアを用いて前記機密情報処理を実行する機密情報処理手段と、
前記アプリケーションから処理の終了指示を受けて、前記初期化され用いられたソフトウェアモジュール群およびハードウェアに対して終了処理をする第1終了処理手段と、
を有する請求項1に記載の情報処理装置。
The control means includes
First initialization processing means for initializing a software module group prepared as a library and hardware to be used in response to an initialization instruction from the application;
A confidential information processing unit that receives an instruction to execute confidential information processing including encryption and decryption from the application, and executes the confidential information processing using the initialized software module group and hardware;
First termination processing means for receiving a termination command of processing from the application and performing termination processing on the initialized and used software module group and hardware;
The information processing apparatus according to claim 1.
前記機密情報処理手段は、
前記アプリケーションから初期化指示を受けて、前記機密情報処理のライブラリとして準備されたソフトウェアモジュール群および使用するハードウェアを初期化する第2初期化処理手段と、
前記アプリケーションから、前記機密情報処理の実行指示を受けて、前記初期化されたソフトウェアモジュール群およびハードウェアを用いて前記機密情報処理を実行する機密情報処理手段と、
前記アプリケーションから処理の終了指示を受けて、前記初期化され用いられたソフトウェアモジュール群およびハードウェアに対して終了処理をする第2終了処理手段と、
を有する請求項2に記載の情報処理装置。
The confidential information processing means includes
A second initialization processing unit that receives an initialization instruction from the application and initializes a software module group prepared as a library for the confidential information processing and hardware to be used;
A confidential information processing unit that receives the execution instruction of the confidential information processing from the application and executes the confidential information processing using the initialized software module group and hardware;
Second termination processing means for receiving a termination command of processing from the application and performing termination processing on the initialized and used software module group and hardware;
The information processing apparatus according to claim 2.
前記データ交換を行なうアプリケーションは、リンクプロテクション機能またはコピーガード機能を実現するために使用するアプリケーションを含む、請求項1乃至3のいずれか1項に記載の情報処理装置。   The information processing apparatus according to any one of claims 1 to 3, wherein the application that exchanges data includes an application that is used to realize a link protection function or a copy guard function. 前記ハードウェアが接続されていない場合、ライブラリとして準備されたソフトウェアモジュールによりハードウェアを代替する、請求項1乃至4のいずれか1項に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein when the hardware is not connected, the hardware is replaced by a software module prepared as a library. 前記情報処理装置はハードウェア的に分離された、ノーマル実行環境である非機密部とセキュア実行環境である機密部とを備え、
前記制御手段は、前記機密部に秘匿性のより高い暗号化鍵、復号鍵およびセッション鍵を格納する格納手段を備える、請求項1乃至5のいずれか1項に記載の情報処理装置。
The information processing apparatus includes a non-confidential part that is a normal execution environment and a secret part that is a secure execution environment, separated by hardware,
The information processing apparatus according to claim 1, wherein the control unit includes a storage unit that stores an encryption key, a decryption key, and a session key with higher confidentiality in the confidential unit.
前記アプリケーションからの指示を、前記アプリケーションの通信プロトコルに従って、前記制御手段への指示に変換する指示変換手段をさらに備える、請求項1乃至6のいずれか1項に記載の情報処理装置。   The information processing apparatus according to claim 1, further comprising: an instruction conversion unit that converts an instruction from the application into an instruction to the control unit in accordance with a communication protocol of the application. 前記アプリケーションは、Miracast使用アプリケーション、HDCP使用アプリケーション、DLNA(登録商標)使用アプリケーション、DTCP-IP使用アプリケーション、DTCP-MOST使用アプリケーションを含む、請求項1乃至7のいずれか1項に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the application includes an application using Miracast, an application using HDCP, an application using DLNA (registered trademark), an application using DTCP-IP, and an application using DTCP-MOST. . 前記ハードウェアは、SST(Secure Storage)、RSA、HASH、AES、M6を含む、請求項1乃至8のいずれか1項に記載の情報処理装置。   The information processing apparatus according to claim 1, wherein the hardware includes SST (Secure Storage), RSA, HASH, AES, and M6. 機密にデータ交換を実現する複数のアプリケーションと共通の処理手順でデータ交換が可能な第1インタフェースと、
暗号化機能および復号機能を実現する複数のハードウェアのそれぞれとデータ交換が可能な第2インタフェースと、
前記第1インタフェースと前記第2インタフェースとを介して、前記複数のアプリケーションと前記複数のハードウェアとのデータ交換を制御する制御手段と、
を備える情報処理装置の情報処理方法であって、
前記アプリケーションから初期化指示を受けて、ライブラリとして準備されたソフトウェアモジュール群および使用するハードウェアを初期化する初期化処理ステップと、
前記アプリケーションから、暗号化および復号を含む機密情報処理の実行指示を受けて、前記初期化されたソフトウェアモジュール群およびハードウェアを用いて前記機密情報処理を実行する機密情報処理ステップと、
前記アプリケーションから処理の終了指示を受けて、前記初期化され用いられたソフトウェアモジュール群およびハードウェアに対して終了処理をする終了処理ステップと、
を含む情報処理方法。
A first interface capable of exchanging data in a common processing procedure with a plurality of applications for realizing confidential data exchange;
A second interface capable of exchanging data with each of a plurality of hardware realizing the encryption function and the decryption function;
Control means for controlling data exchange between the plurality of applications and the plurality of hardware via the first interface and the second interface;
An information processing method for an information processing apparatus comprising:
An initialization process step of initializing a software module group prepared as a library and hardware to be used in response to an initialization instruction from the application;
A confidential information processing step of receiving an instruction to execute confidential information processing including encryption and decryption from the application, and executing the confidential information processing using the initialized software module group and hardware;
In response to an instruction to end processing from the application, an end processing step for performing end processing on the software module group and hardware that has been initialized and used,
An information processing method including:
機密にデータ交換を実現する複数のアプリケーションと共通の処理手順でデータ交換が可能な第1インタフェースと、
暗号化機能および復号機能を実現する複数のハードウェアのそれぞれとデータ交換が可能な第2インタフェースと、
前記第1インタフェースと前記第2インタフェースとを介して、前記複数のアプリケーションと前記複数のハードウェアとのデータ交換を制御する制御手段と、
を備える情報処理装置の情報処理プログラムであって、
前記アプリケーションから初期化指示を受けて、ライブラリとして準備されたソフトウェアモジュール群および使用するハードウェアを初期化する初期化処理ステップと、
前記アプリケーションから、暗号化および復号を含む機密情報処理の実行指示を受けて、前記初期化されたソフトウェアモジュール群およびハードウェアを用いて前記機密情報処理を実行する機密情報処理ステップと、
前記アプリケーションから処理の終了指示を受けて、前記初期化され用いられたソフトウェアモジュール群およびハードウェアに対して終了処理をする終了処理ステップと、
をコンピュータに実行させる情報処理プログラム。
A first interface capable of exchanging data in a common processing procedure with a plurality of applications for realizing confidential data exchange;
A second interface capable of exchanging data with each of a plurality of hardware realizing the encryption function and the decryption function;
Control means for controlling data exchange between the plurality of applications and the plurality of hardware via the first interface and the second interface;
An information processing program for an information processing apparatus comprising:
An initialization process step of initializing a software module group prepared as a library and hardware to be used in response to an initialization instruction from the application;
A confidential information processing step of receiving an instruction to execute confidential information processing including encryption and decryption from the application, and executing the confidential information processing using the initialized software module group and hardware;
In response to an instruction to end processing from the application, an end processing step for performing end processing on the software module group and hardware that has been initialized and used,
An information processing program that causes a computer to execute.
アプリケーションと、
暗号化および復号に使用するハードウェアと、
前記アプリケーションからの指示を、前記アプリケーションのプロトコルに従って、初期化手段または機密情報処理手段または終了処理手段への指示に変換する指示変換手段と、
前記指示変換手段から初期化指示を受けて、ライブラリとして準備されたソフトウェアモジュール群および前記ハードウェアを初期化する前記初期化処理手段と、
前記指示変換手段から、暗号化および復号を含む機密情報処理の実行指示を受けて、前記初期化されたソフトウェアモジュール群およびハードウェアを用いて前記機密情報処理を実行する前記機密情報処理手段と、
前記指示変換手段から処理の終了指示を受けて、前記初期化され用いられたソフトウェアモジュール群およびハードウェアに対して終了処理をする前記終了処理手段と、
を備える情報処理システム。
Application,
Hardware used for encryption and decryption;
An instruction conversion unit that converts an instruction from the application into an instruction to an initialization unit, a confidential information processing unit, or a termination processing unit according to the protocol of the application;
The initialization processing means for receiving the initialization instruction from the instruction converting means and initializing the software module group and the hardware prepared as a library;
The confidential information processing means that receives an instruction to execute confidential information processing including encryption and decryption from the instruction conversion means, and executes the confidential information processing using the initialized software module group and hardware;
In response to an instruction to end processing from the instruction conversion unit, the termination processing unit that performs termination processing on the software module group and hardware that are initialized and used,
An information processing system comprising:
アプリケーションと、暗号化および復号に使用するハードウェアと、を備える情報処理装置への機能組込方法であって、
前記アプリケーションから初期化指示を受けて、ライブラリとして準備されたソフトウェアモジュール群および使用するハードウェアを初期化する初期化処理手段と、
前記アプリケーションから、暗号化および復号を含む機密情報処理の実行指示を受けて、前記初期化されたソフトウェアモジュール群およびハードウェアを用いて前記機密情報処理を実行する機密情報処理手段と、
前記アプリケーションから処理の終了指示を受けて、前記初期化され用いられたソフトウェアモジュール群およびハードウェアに対して終了処理をする終了処理手段と、
を有するソフトウェアモジュール群を組み込んで、前記アプリケーションと前記ハードウェアとを結び付ける工程を含む、機能組込方法。
A method for incorporating a function into an information processing apparatus comprising an application and hardware used for encryption and decryption,
Initialization processing means for initializing a software module group prepared as a library and hardware to be used in response to an initialization instruction from the application;
A confidential information processing unit that receives an instruction to execute confidential information processing including encryption and decryption from the application, and executes the confidential information processing using the initialized software module group and hardware;
A termination processing means for receiving a termination command of processing from the application and performing termination processing on the initialized and used software module group and hardware;
A function embedding method including the step of incorporating a software module group including: and linking the application and the hardware.
JP2016234544A 2016-12-01 2016-12-01 Information processing system, function incorporation method, information processing unit, information processing method, and information processing program Pending JP2018093352A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016234544A JP2018093352A (en) 2016-12-01 2016-12-01 Information processing system, function incorporation method, information processing unit, information processing method, and information processing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016234544A JP2018093352A (en) 2016-12-01 2016-12-01 Information processing system, function incorporation method, information processing unit, information processing method, and information processing program

Publications (1)

Publication Number Publication Date
JP2018093352A true JP2018093352A (en) 2018-06-14

Family

ID=62566515

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016234544A Pending JP2018093352A (en) 2016-12-01 2016-12-01 Information processing system, function incorporation method, information processing unit, information processing method, and information processing program

Country Status (1)

Country Link
JP (1) JP2018093352A (en)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5614280A (en) * 1979-07-17 1981-02-12 Fujitsu Ltd Coder
JP2002141897A (en) * 2000-10-31 2002-05-17 Advanced Mobile Telecommunications Security Technology Research Lab Co Ltd Cryptographic circuit with tamper-resistant function
JP2003032240A (en) * 2001-07-13 2003-01-31 Sony Corp Information processing system
JP2004362516A (en) * 2003-05-30 2004-12-24 Hagiwara Sys-Com:Kk Usb encryption device and program
JP2005039351A (en) * 2003-07-15 2005-02-10 Ricoh Co Ltd Image processing apparatus, transmission / reception data processing method, transmission / reception data processing program, and recording medium
JP2005301550A (en) * 2004-04-09 2005-10-27 Internatl Business Mach Corp <Ibm> Device, program and method for measuring platform configuration, device, program and method for authenticating platform configuration, device, program and method for verifying platform configuration, and device, program and method for disclosing platform configuration
JP2007524293A (en) * 2004-01-16 2007-08-23 サムスン エレクトロニクス カンパニー リミテッド Data retransmission apparatus and method
WO2008117554A1 (en) * 2007-03-28 2008-10-02 Nec Corporation Time information distribution system, time distribution station, terminal, time information distribution method, and program
US20100031325A1 (en) * 2006-12-22 2010-02-04 Virtuallogix Sa System for enabling multiple execution environments to share a device
JP2011086155A (en) * 2009-10-16 2011-04-28 Felica Networks Inc Ic chip, information processing apparatus, and program
US20140095890A1 (en) * 2012-10-02 2014-04-03 Motorola Mobility Llc Systems and methods for manipulating sensitive information in a secure mobile environment

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5614280A (en) * 1979-07-17 1981-02-12 Fujitsu Ltd Coder
JP2002141897A (en) * 2000-10-31 2002-05-17 Advanced Mobile Telecommunications Security Technology Research Lab Co Ltd Cryptographic circuit with tamper-resistant function
JP2003032240A (en) * 2001-07-13 2003-01-31 Sony Corp Information processing system
JP2004362516A (en) * 2003-05-30 2004-12-24 Hagiwara Sys-Com:Kk Usb encryption device and program
JP2005039351A (en) * 2003-07-15 2005-02-10 Ricoh Co Ltd Image processing apparatus, transmission / reception data processing method, transmission / reception data processing program, and recording medium
JP2007524293A (en) * 2004-01-16 2007-08-23 サムスン エレクトロニクス カンパニー リミテッド Data retransmission apparatus and method
JP2005301550A (en) * 2004-04-09 2005-10-27 Internatl Business Mach Corp <Ibm> Device, program and method for measuring platform configuration, device, program and method for authenticating platform configuration, device, program and method for verifying platform configuration, and device, program and method for disclosing platform configuration
US20100031325A1 (en) * 2006-12-22 2010-02-04 Virtuallogix Sa System for enabling multiple execution environments to share a device
WO2008117554A1 (en) * 2007-03-28 2008-10-02 Nec Corporation Time information distribution system, time distribution station, terminal, time information distribution method, and program
JP2011086155A (en) * 2009-10-16 2011-04-28 Felica Networks Inc Ic chip, information processing apparatus, and program
US20140095890A1 (en) * 2012-10-02 2014-04-03 Motorola Mobility Llc Systems and methods for manipulating sensitive information in a secure mobile environment

Similar Documents

Publication Publication Date Title
CN102946440B (en) Automatic cloud synchronization and recovery system based on cloud storage technology
JP5570664B2 (en) Clipboard protection system in DRM environment and program for causing computer to execute the method
US9189060B2 (en) Method of controlling information processing apparatus and information processing apparatus
US20140096145A1 (en) Hardware message queues for intra-cluster communication
CN103294961A (en) Method and device for file encrypting/decrypting
TW201734875A (en) Computing device and data processing method
US11201729B2 (en) Devices and methods for enabling portable secure communication using random cipher pad cryptography by enabling communications to be passed to the device from a host, encrypted and/or decrypted, and passed back to the host
EP2869232A1 (en) Security key device for secure cloud services, and system and method of providing security cloud services
CN104378649A (en) Method and system for encrypting video streams in real time through SM1 cryptographic algorithm
CN104967591A (en) Cloud storage data read-write method and device, and read-write control method and device
CN111611606B (en) File encryption and decryption method and device
WO2014078104A1 (en) Method and system for secure access to data files copied onto a second storage device from a first storage device
CN113449347B (en) Microprocessor, data processing method, electronic device and storage medium
US9282083B2 (en) Encryption system and method
JP2016046799A (en) Agent for providing security cloud service, security key device for security cloud service
CN107425959A (en) A kind of method for realizing encryption, system, client and service end
US20130297718A1 (en) Server device, client device, data sharing system and method for sharing data between client device and server device thereof
CN105743935A (en) Resource sharing apparatus and resource sharing method
KR20240117407A (en) Apparatus and method for providing quantum security communication for smart devices
CN103077018A (en) Control method and system for device interface based on Android system
JP2018093352A (en) Information processing system, function incorporation method, information processing unit, information processing method, and information processing program
US9571272B2 (en) Image forming apparatus, information processing method, and control method
CN103218580B (en) A kind of USB xegregating unit and partition method thereof
JP2010087610A (en) Data transmitting device, data receiving device, data transmitting and receiving system, data transmitting and receiving method, and data transmitting and receiving program
CN113449331A (en) Microprocessor, data processing method, electronic device, and storage medium

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180219

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20180219

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20180227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180705

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181004

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190507

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190806