JP6720558B2 - Information processing system and encryption communication method - Google Patents
Information processing system and encryption communication method Download PDFInfo
- Publication number
- JP6720558B2 JP6720558B2 JP2016020825A JP2016020825A JP6720558B2 JP 6720558 B2 JP6720558 B2 JP 6720558B2 JP 2016020825 A JP2016020825 A JP 2016020825A JP 2016020825 A JP2016020825 A JP 2016020825A JP 6720558 B2 JP6720558 B2 JP 6720558B2
- Authority
- JP
- Japan
- Prior art keywords
- encryption
- information processing
- cryptographic
- key
- communication path
- 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.)
- Active
Links
Images
Description
本発明は、2組の情報処理装置の間で所定の暗号化プロトコルに基づいた暗号通信を行う情報処理システムおよび暗号通信方法に関し、特に、ICカードと別な装置との間で暗号通信を行うのに適した暗号通信技術に関する。 The present invention relates to an information processing system and a cryptographic communication method for performing cryptographic communication based on a predetermined encryption protocol between two sets of information processing devices, and particularly to cryptographic communication between an IC card and another device. The present invention relates to a cryptographic communication technology suitable for.
2組の情報処理装置間の通信の安全性を確保するためには、両者間にセキュアな暗号通信路を開設し、この暗号通信路を介して暗号通信を行うことが欠かせない。特に、スマートフォンやICカードなどの携帯型の情報処理装置では、紛失によって悪意をもった者の手に渡る可能性があるため、十分なセキュリティ対策を講じておく必要がある。 In order to ensure the safety of communication between the two sets of information processing devices, it is essential to establish a secure encrypted communication path between them and perform encrypted communication via this encrypted communication path. Particularly, in a portable information processing device such as a smart phone or an IC card, there is a possibility that it may fall into the hands of a malicious person due to loss, so it is necessary to take sufficient security measures.
最近は、スマートフォンをはじめとする携帯型端末装置が普及しており、これらの端末装置には、通常、SIMカードやUIMカードと呼ばれているICカードが装着されている。現在、このようなICカードとして、Java Card(商標)やGlobalPlatform (登録商標)などの国際的な仕様に準拠したものが広く普及している。このICカードと端末装置、あるいは、このICカードと外部のサーバ装置との間では、所定の通信路を介して情報のやりとりが行われる。このとき、当該情報が機密性を有するものである場合には、セキュアな通信路を開設して暗号化された情報のやりとりを行う必要がある。 Recently, mobile terminal devices such as smartphones have become widespread, and these terminal devices are usually equipped with IC cards called SIM cards and UIM cards. At present, as such an IC card, one that complies with international specifications such as Java Card (trademark) and GlobalPlatform (registered trademark) is widely used. Information is exchanged between this IC card and a terminal device, or between this IC card and an external server device via a predetermined communication path. At this time, if the information is confidential, it is necessary to establish a secure communication path and exchange encrypted information.
このような事情から、ICカードと外部装置との間にセキュアな通信路を開設して暗号通信を行う様々な方法が提案されている。たとえば、下記の特許文献1には、所定の変換アルゴリズムに基づくデータ変換処理機能を有するプロキシ装置を介した通信を行うことにより、機密情報の漏洩を防止する技術が開示されている。また、特許文献2には、インターネットを介してICカードとサーバ装置との間で情報のやりとりを行う際に、公開鍵暗号方式を利用した暗号化通信を行う技術が開示されており、特許文献3には、そのような暗号化通信の最中に、セキュリティに関わる異常発生が検知された場合に、速やかにシステム復旧処理を行う技術が開示されている。
Under such circumstances, various methods have been proposed for establishing a secure communication path between the IC card and the external device and performing encrypted communication. For example,
一方、特許文献4には、サーバ装置側に、ICカードと1対1に対応するICカード対応領域を設け、このICカード対応領域と利用者端末装置との間にセキュアな通信路を設定してサーバ装置とICカードとを一体化する技術が開示されている。
On the other hand, in
2組の情報処理装置の間にセキュアな暗号通信路を開設するためには、両方の装置に、共通の暗号化プロトコルに基づいた暗号通信処理機能をもたせる必要がある。すなわち、送信側では所定の暗号鍵および所定の暗号化プロトコルを用いて、送信対象となる情報を暗号化して送り出し、受信側では、受信した暗号化情報を、送信側と同じ暗号鍵および暗号化プロトコルを用いて復号することになる。このため、2組の情報処理装置には、予め、特定の暗号鍵および暗号化プロトコルを用いた暗号通信処理機能が組み込まれることになる。 In order to open a secure cryptographic communication path between two sets of information processing devices, both devices must have a cryptographic communication processing function based on a common encryption protocol. That is, the sending side encrypts and sends out the information to be sent using a predetermined encryption key and a predetermined encryption protocol, and the receiving side uses the same encryption key and encryption as the sending side for the received encrypted information. It will be decrypted using the protocol. For this reason, the two sets of information processing apparatuses have a built-in encryption communication processing function using a specific encryption key and encryption protocol in advance.
また、同じ暗号化プロトロルを採用した場合であっても、暗号通信処理の細かな手順を定めた暗号処理細則の設定を変えると、両者間で行われる具体的な暗号通信形態も変わってくる。このため、従来の一般的な情報処理システムの場合、暗号通信処理を行うためのプログラムを組み込む際に、特定の暗号化プロトコルを指定するとともに、特定の暗号処理細則の設定を行い、暗号化プロトコルとともに暗号処理細則を指定する作業が行われる。特に、ICカードと別な装置との間で暗号通信を行う情報処理システムの場合、ICカード側に管理プログラム(通常、SD(Security Domain)と呼ばれるプログラム)をインストールする際に、特定の暗号化プロトコルの指定および特定の暗号処理細則の設定が行われる。 Even when the same encryption protocol is adopted, if the setting of the detailed encryption processing rule that defines the detailed procedure of the encrypted communication processing is changed, the specific encrypted communication mode performed between the two also changes. Therefore, in the case of a conventional general information processing system, when a program for performing encrypted communication processing is installed, a specific encryption protocol is specified, and specific encryption processing detailed rules are set, and the encryption protocol is set. At the same time, the work of specifying the cryptographic processing rules is performed. In particular, in the case of an information processing system that performs encrypted communication between an IC card and another device, when a management program (usually a program called SD (Security Domain)) is installed on the IC card side, specific encryption is performed. Protocol specification and specific cryptographic processing rules are set.
しかしながら、近年、情報処理装置の通信相手は多様化してきており、1つのICカードが、種々の状況に応じて、複数の相手と通信するケースも少なくない。たとえば、スマートフォンに装着されたICカード(SIMカードやUIMカード)の場合、スマートフォン内の複数のアプリケーションプログラムとの間で情報のやりとりを行うケースも少なくない。この場合、ハードウェア上は、ICカードとスマートフォンとの間の二者通信ということになるが、ソフトウェア上は、ICカード側の管理プログラム(上述したSD(Security Domain)プログラム)とスマートフォン側の個々のアプリケーションプログラムとの間の個別の通信が行われることになる。 However, in recent years, communication partners of information processing apparatuses have been diversified, and there are many cases where one IC card communicates with a plurality of partners according to various situations. For example, in the case of an IC card (SIM card or UIM card) attached to a smartphone, there are many cases where information is exchanged with a plurality of application programs in the smartphone. In this case, on the hardware, it means two-way communication between the IC card and the smartphone, but on the software, the management program on the IC card side (the SD (Security Domain) program described above) and the individual smartphone side. Individual communication with each application program will be performed.
したがって、実用上は、同じ暗号化プロトロルを用いて暗号通信を行う場合であっても、当該暗号化プロトコルによる暗号通信処理の細かな手順を示す暗号処理細則を、その都度、通信相手に応じて設定できるようにするのが好ましい。たとえば、ICカードがスマートフォンと通信する場合、スマートフォン内の各アプリケーションプログラムに応じて、その都度、任意の暗号処理細則を設定して暗号通信を行うことができるようにするのが好ましい。 Therefore, in practice, even when performing the encrypted communication using the same encryption protocol, the detailed cryptographic processing rule indicating the detailed procedure of the encrypted communication processing according to the encryption protocol should be provided in accordance with the communication partner. It is preferable to be able to set. For example, when the IC card communicates with a smartphone, it is preferable to set an arbitrary cryptographic processing rule for each application program in the smartphone so that the encrypted communication can be performed.
しかしながら、従来の一般的なシステム、特にICカードに対して通信を行うシステムでは、暗号通信を行う都度、任意の暗号処理細則を設定することは困難である。これは、現在普及しているICカードが、国際的な仕様に準拠して設計されており、この仕様上、暗号通信処理の細かな手順を定めた暗号処理細則は、暗号通信処理を行うプログラムを組み込む際に初期設定することになっており、外部装置と通信を行う際にその都度設定することが想定されていなかったためである。 However, in a conventional general system, particularly in a system that communicates with an IC card, it is difficult to set arbitrary cryptographic processing rules every time cryptographic communication is performed. This is because the currently popular IC cards are designed in accordance with international specifications, and in this specification, the detailed rules for cryptographic processing that define detailed procedures for cryptographic communication processing are programs that perform cryptographic communication processing. This is because it is supposed to be initialized at the time of assembling, and it was not supposed to be set each time when communicating with an external device.
そこで本発明は、2組の情報処理装置の間に、所定の暗号化プロトコルに基づく暗号通信路を開設して、両者間でセキュアな通信を行う際に、暗号通信路開設の都度、暗号通信処理の細かな手順を定めた暗号処理細則を設定することを可能にする情報処理システムおよび暗号通信方法を提供することを目的とする。また、本発明は、特に、相互に通信を行う2組の情報処理装置のうちの一方がICカードである場合に、ICカードについての国際的な仕様に準拠した方法で、暗号通信路を開設するたびに、暗号処理細則の設定を可能にする具体的な方法を提供することを目的とする。 Therefore, the present invention establishes an encrypted communication path based on a predetermined encryption protocol between two sets of information processing devices, and when secure communication is performed between the two, the encrypted communication path is opened each time. An object of the present invention is to provide an information processing system and a cryptographic communication method capable of setting a cryptographic processing detailed rule that defines a detailed processing procedure. In addition, the present invention establishes a cryptographic communication path by a method that complies with international specifications for IC cards, particularly when one of the two sets of information processing apparatuses that communicate with each other is an IC card. Each time, the purpose is to provide a concrete method that enables the setting of cryptographic processing rules.
(1) 本発明の第1の態様は、第1の情報処理装置と第2の情報処理装置とを備え、両者間で所定の暗号化プロトコルに基づいた暗号通信が可能な情報処理システムにおいて、
第1の情報処理装置には、
所定の暗号化プロトコルに基づき、当該暗号化プロトコルによる暗号通信処理の細かな手順を定めた所定の暗号処理細則に従って、暗号通信を行うための暗号通信路を開設し、開設された暗号通信路を介して第2の情報処理装置との間で暗号通信を行う第1の暗号通信処理部と、
複数の格納場所にそれぞれ上記暗号化プロトコルに用いられる暗号鍵を格納した鍵テーブルを保持する第1の暗号鍵格納部と、
この鍵テーブルについて複数の格納ゾーンを設定し、個々の格納ゾーンと個々の暗号処理細則との対応関係を示すゾーンテーブルを保持する暗号処理細則格納部と、
を設け、
第2の情報処理装置には、
上記暗号化プロトコルに基づく暗号通信を行う機能を有し、第1の暗号通信処理部によって開設された暗号通信路を介して第1の情報処理装置との間で暗号通信を行う第2の暗号通信処理部と、
上記暗号化プロトコルに用いられる暗号鍵を格納した第2の暗号鍵格納部と、
第1の情報処理装置に対して、暗号通信を行うための暗号通信路の開設を指示する暗号通信路開設コマンドを与える暗号通信路開設指示部と、
を設けるようにし、
暗号通信路開設コマンドには、第2の暗号鍵格納部に格納されている暗号鍵に対応する特定の暗号鍵についての鍵テーブル内の格納場所を示す格納場所指定情報を含ませるようにし、
第1の暗号通信処理部が、暗号通信路開設コマンドを受けて、暗号通信路開設コマンドに含まれている格納場所指定情報によって指定された指定格納場所に格納されている暗号鍵を指定暗号鍵として読み出し、ゾーンテーブルを参照して指定格納場所が所属する格納ゾーンに対応づけられている暗号処理細則を指定暗号処理細則として認識し、指定暗号鍵を用いて、指定暗号処理細則に従った手順を実行することにより、暗号通信を行うための暗号通信路を開設するようにしたものである。
(1) A first aspect of the present invention is an information processing system that includes a first information processing device and a second information processing device, and is capable of encrypted communication between them based on a predetermined encryption protocol.
The first information processing device includes
Based on a predetermined encryption protocol, in accordance with a predetermined encryption processing detailed rule that defines the detailed procedure of encryption communication processing by the encryption protocol, open an encryption communication path for performing encrypted communication, A first cryptographic communication processing unit that performs cryptographic communication with the second information processing apparatus via the
A first encryption key storage unit that holds a key table that stores encryption keys used in the encryption protocol in a plurality of storage locations,
A plurality of storage zones are set for this key table, and a cryptographic processing rule storage unit that holds a zone table indicating the correspondence between each storage zone and each cryptographic processing rule,
Is provided
The second information processing device includes
A second cipher that has a function of performing cipher communication based on the encryption protocol and that performs cipher communication with the first information processing device via the cipher communication path established by the first cipher communication processing unit. A communication processing unit,
A second encryption key storage unit that stores an encryption key used in the encryption protocol;
An encrypted communication path opening instruction unit for giving an encrypted communication path opening command for instructing the first information processing apparatus to open an encrypted communication path for performing encrypted communication;
To provide
The encryption communication path opening command includes storage location designation information indicating a storage location in the key table for a specific encryption key corresponding to the encryption key stored in the second encryption key storage unit,
The first cryptographic communication processing unit receives the cryptographic communication channel opening command, and designates the cryptographic key stored in the designated storage location designated by the storage location designating information included in the cryptographic communication channel opening command as the designated cryptographic key. As a specified encryption processing rule by referring to the zone table and referring to the zone table and corresponding to the storage zone to which the specified storage location belongs, and using the specified encryption key, follow the specified encryption processing rules. Is executed to open an encrypted communication path for performing encrypted communication.
(2) 本発明の第2の態様は、上述した第1の態様に係る情報処理システムにおいて、
鍵テーブルには、それぞれがキーバージョン番号によって特定される複数の格納場所を用意しておき、個々の格納ゾーンは、1つもしくは複数の格納場所によって構成されるようにし、
暗号通信路開設コマンドには、格納場所指定情報として特定のキーバージョン番号を含ませるようにし、
第1の暗号通信処理部が、キーバージョン番号によって特定される格納場所を指定格納場所として、指定暗号鍵の読出処理および指定暗号処理細則の認識処理を行うようにしたものである。
(2) A second aspect of the present invention is the information processing system according to the above-mentioned first aspect,
In the key table, a plurality of storage locations each specified by a key version number are prepared, and each storage zone is configured by one or a plurality of storage locations.
In the encryption communication path opening command, include a specific key version number as storage location specifying information,
The first cryptographic communication processing unit is configured to perform the reading process of the designated cryptographic key and the recognition process of the designated cryptographic processing rules by using the storage location specified by the key version number as the designated storage location.
(3) 本発明の第3の態様は、上述した第2の態様に係る情報処理システムにおいて、
個々の格納ゾーンが、1つの格納場所もしくは連続するキーバージョン番号を有する複数の格納場所によって構成され、個々の格納ゾーンがキーバージョン番号の固有の数値範囲に対応づけられているようにしたものである。
(3) A third aspect of the present invention is the information processing system according to the above second aspect,
Each storage zone consists of a storage location or multiple storage locations with consecutive key version numbers, each storage zone being associated with a unique numerical range of key version numbers. is there.
(4) 本発明の第4の態様は、上述した第2または第3の態様に係る情報処理システムにおいて、
鍵テーブル内の各格納場所には、それぞれキーIDによって特定される複数の格納庫が用意されており、これら複数の格納庫の全部もしくは一部に、それぞれ別個の暗号鍵が格納されており、
第1の暗号通信処理部が、暗号通信路開設コマンドに含まれるキーバージョン番号によって特定される格納場所内の複数の格納庫に格納されている暗号鍵を利用して暗号通信路を開設するようにしたものである。
(4) A fourth aspect of the present invention is the information processing system according to the above second or third aspect,
Each storage location in the key table is provided with a plurality of storages specified by the respective key IDs, and separate encryption keys are stored in all or some of the storages.
The first cryptographic communication processing unit opens the cryptographic communication channel using the cryptographic keys stored in the plurality of storages in the storage location specified by the key version number included in the cryptographic communication channel opening command. It was done.
(5) 本発明の第5の態様は、上述した第1〜第4の態様に係る情報処理システムにおいて、
ゾーンテーブルによって示される暗号処理細則に、暗号通信路開設前に実行すべき第1の情報処理装置と第2の情報処理装置との間の相互認証処理の手順を定めた細則が含まれているようにしたものである。
(5) A fifth aspect of the present invention is the information processing system according to the first to fourth aspects,
The cryptographic processing detailed rule indicated by the zone table includes the detailed rule that defines the procedure of the mutual authentication processing between the first information processing apparatus and the second information processing apparatus that should be executed before the cryptographic communication path is opened. It was done like this.
(6) 本発明の第6の態様は、上述した第5の態様に係る情報処理システムにおいて、
ゾーンテーブルによって示される暗号処理細則に、相互認証処理のために第1の情報処理装置が生成する乱数として、真性乱数を用いるか、擬似乱数を用いるか、を定めた細則が含まれているようにしたものである。
(6) A sixth aspect of the present invention is the information processing system according to the fifth aspect,
It appears that the cryptographic processing rules indicated by the zone table include a rule that determines whether to use a true random number or a pseudo random number as the random number generated by the first information processing device for the mutual authentication process. It is the one.
(7) 本発明の第7の態様は、上述した第5の態様に係る情報処理システムにおいて、
ゾーンテーブルによって示される暗号処理細則に、相互認証処理および暗号通信処理に用いられる暗号鍵の数を定めた細則が含まれているようにしたものである。
(7) A seventh aspect of the present invention is the information processing system according to the fifth aspect,
The detailed rules for encryption processing indicated by the zone table include detailed rules for defining the number of encryption keys used for mutual authentication processing and encrypted communication processing.
(8) 本発明の第8の態様は、上述した第5の態様に係る情報処理システムにおいて、
ゾーンテーブルによって示される暗号処理細則に、相互認証処理を、認証用コマンドを用いて明示的に実施するか、認証用コマンドを用いずに暗黙的に実施するか、を定めた細則が含まれているようにしたものである。
(8) An eighth aspect of the present invention is the information processing system according to the above fifth aspect,
The cryptographic processing detailed rules indicated by the zone table include detailed rules that specify whether mutual authentication processing is performed explicitly using the authentication command or implicitly without using the authentication command. It was made to exist.
(9) 本発明の第9の態様は、上述した第1〜第4の態様に係る情報処理システムにおいて、
ゾーンテーブルによって示される暗号処理細則に、開設された暗号通信路を介して第1の情報処理装置から第2の情報処理装置にレスポンスを送信する手順を定めた細則が含まれているようにしたものである。
(9) A ninth aspect of the present invention is the information processing system according to the first to fourth aspects,
The cryptographic processing detailed rule indicated by the zone table includes a detailed rule that defines a procedure for transmitting a response from the first information processing apparatus to the second information processing apparatus via the established cryptographic communication path. It is a thing.
(10) 本発明の第10の態様は、上述した第9の態様に係る情報処理システムにおいて、
ゾーンテーブルによって示される暗号処理細則に、レスポンスデータを暗号化するか否かを定めた細則が含まれているようにしたものである。
(10) A tenth aspect of the present invention is the information processing system according to the ninth aspect described above,
The detailed rules for encryption processing indicated by the zone table include detailed rules that determine whether to encrypt response data.
(11) 本発明の第11の態様は、上述した第9の態様に係る情報処理システムにおいて、
ゾーンテーブルによって示される暗号処理細則に、レスポンスデータにチェックコードを付与するか否かを定めた細則が含まれているようにしたものである。
(11) An eleventh aspect of the present invention is the information processing system according to the ninth aspect described above,
The detailed rules for encryption processing indicated by the zone table include detailed rules that determine whether or not to add a check code to response data.
(12) 本発明の第12の態様は、上述した第1〜第4の態様に係る情報処理システムにおいて、
ゾーンテーブルによって示される暗号処理細則に、開設された暗号通信路を介して第2の情報処理装置から第1の情報処理装置にコマンドを送信する手順を定めた細則が含まれているようにしたものである。
(12) A twelfth aspect of the present invention is the information processing system according to any of the above-described first to fourth aspects,
The cryptographic processing detailed rule indicated by the zone table includes a detailed rule that defines a procedure for transmitting a command from the second information processing apparatus to the first information processing apparatus via the established cryptographic communication path. It is a thing.
(13) 本発明の第13の態様は、上述した第12の態様に係る情報処理システムにおいて、
ゾーンテーブルによって示される暗号処理細則に、送信コマンドへのチェックコード付与に関する事項を定めた細則が含まれているようにしたものである。
(13) A thirteenth aspect of the present invention is the information processing system according to the twelfth aspect described above,
The detailed rules for encryption processing indicated by the zone table include detailed rules defining matters concerning the addition of the check code to the transmission command.
(14) 本発明の第14の態様は、上述した第1〜第13の態様に係る情報処理システムにおいて、
第1の暗号通信処理部が、複数N通り(N≧2)の暗号化プロトコルに基づく暗号通信を行う機能を有し、N通りの暗号化プロトコルのうち、第2の情報処理装置から指定された指定暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設し、
鍵テーブルには、複数N通りの暗号化プロトコルのそれぞれに用いられる暗号鍵が格納されており、
第2の暗号通信処理部が、複数N通りの暗号化プロトコルのうちの少なくとも1つの特定の暗号化プロトコルに基づく暗号通信を行う機能を有し、当該特定の暗号化プロトコルに基づく暗号通信を行うために開設された暗号通信路を介して第1の情報処理装置との間で暗号通信を行い、
ゾーンテーブルは、個々の格納ゾーンと個々の暗号処理細則との対応関係に加えて、更に、個々の格納ゾーンと個々の暗号化プロトコルとの対応関係を示しており、
第1の暗号通信処理部は、ゾーンテーブルを参照して、指定暗号処理細則を認識するとともに、指定格納場所が所属する格納ゾーンに対応づけられている暗号化プロトコルを指定暗号化プロトコルとして認識し、指定暗号化プロトコルに基づき、指定暗号鍵を用いて、指定暗号処理細則に従った手順を実行することにより、暗号通信を行うための暗号通信路を開設するようにしたものである
(14) A fourteenth aspect of the present invention is the information processing system according to the first to thirteenth aspects described above,
The first cryptographic communication processing unit has a function of performing cryptographic communication based on a plurality of N (N≧2) encryption protocols, and is designated by the second information processing device among the N encryption protocols. Open a cryptographic communication path for cryptographic communication based on the specified encryption protocol,
The key table stores an encryption key used for each of a plurality N of encryption protocols,
The second cryptographic communication processing unit has a function of performing cryptographic communication based on at least one specific cryptographic protocol among a plurality of N cryptographic protocols, and performs cryptographic communication based on the specific cryptographic protocol. To perform encrypted communication with the first information processing device via an encrypted communication path established for
The zone table shows the correspondence between individual storage zones and individual cryptographic processing rules, as well as the correspondence between individual storage zones and individual encryption protocols.
The first cryptographic communication processing unit refers to the zone table to recognize the designated cryptographic processing rules, and also recognizes the encryption protocol associated with the storage zone to which the designated storage location belongs as the designated encryption protocol. By performing a procedure in accordance with the designated cryptographic processing detailed rules using a designated encryption key based on a designated encryption protocol, an encrypted communication path for performing encrypted communication is opened.
(15) 本発明の第15の態様は、上述した第1〜第14の態様に係る情報処理システムにおいて、
第1の情報処理装置を、ICカードに、GlobalPlatform (登録商標)の仕様に準拠した管理プログラムを組み込むことにより構成し、
ゾーンテーブルとして、個々の格納ゾーンに対して、それぞれ上記仕様に基づくパラメータ「i」の特定の値を対応づけたテーブルを用いるようにしたものである。
(15) A fifteenth aspect of the present invention is the information processing system according to the first to fourteenth aspects described above,
The first information processing apparatus is configured by incorporating a management program compliant with GlobalPlatform (registered trademark) specifications in an IC card,
As the zone table, a table in which a specific value of the parameter “i” based on the above specifications is associated with each storage zone is used.
(16) 本発明の第16の態様は、上述した第1〜第15の態様に係る情報処理システムにおける第1の情報処理装置を構成したものである。 (16) According to a sixteenth aspect of the present invention is one in which the first information processing apparatus in the information processing system according to the first to fifteenth aspect described above have configured.
(17) 本発明の第17の態様は、上述した第1〜第15の態様に係る情報処理システムにおける第2の情報処理装置を構成したものである。 (17) The seventeenth feature of the present invention is one in which the second information processing apparatus in the information processing system according to the first to fifteenth aspect described above have configured.
(18) 本発明の第18の態様は、上述した第1〜第15の態様に係る情報処理システムにおける第1の情報処理装置を、コンピュータにプログラムを組み込むことにより構成したものである。
(19) 本発明の第19の態様は、上述した第1〜第15の態様に係る情報処理システムにおける第2の情報処理装置を、コンピュータにプログラムを組み込むことにより構成したものである。
(18) The eighteenth aspect of the present invention is one in which the first information processing equipment in the information processing system according to the first to fifteenth aspect described above, was constructed by incorporating the program into a computer.
(19) According to a nineteenth aspect of the present invention, the second information processing apparatus in the above-described information processing system according to the first to fifteenth aspects is configured by incorporating a program into a computer.
(20) 本発明の第20の態様は、第1の情報処理装置と第2の情報処理装置との間で、所定の暗号化プロトコルに基づいた暗号通信を行う暗号通信方法において、
第1の情報処理装置が、所定の暗号化プロトコルに基づく暗号通信を行うプログラムを実行可能な状態に準備するプログラム準備段階と、
第1の情報処理装置が、複数の格納場所にそれぞれ上記暗号化プロトコルに用いられる暗号鍵を格納した鍵テーブルを準備する鍵テーブル準備段階と、
第1の情報処理装置が、鍵テーブル上に、1つもしくは複数の格納場所を含む格納ゾーンを複数組設定し、個々の格納ゾーンと個々の暗号処理細則との対応関係を示すゾーンテーブルを準備するゾーンテーブル準備段階と、
第2の情報処理装置が、第1の情報処理装置に対して、暗号通信を行うための暗号通信路の開設を指示する暗号通信路開設コマンドを与える暗号通信路開設指示段階と、
第1の情報処理装置が、受信した暗号通信路開設コマンドに基づいて、上記所定の暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設する暗号通信路開設段階と、
第1の情報処理装置および第2の情報処理装置が、開設された暗号通信路を介して暗号通信を行う暗号通信段階と、
を実行するようにし、
暗号通信路開設コマンドには、鍵テーブル内の特定の格納場所を示す格納場所指定情報を含ませておき、
暗号通信路開設段階では、暗号通信路開設コマンドに含まれている格納場所指定情報によって指定された指定格納場所に格納されている暗号鍵を指定暗号鍵として読み出し、ゾーンテーブルを参照して指定格納場所が所属する格納ゾーンに対応づけられている暗号処理細則を指定暗号処理細則として認識し、指定暗号鍵を用いて、指定暗号処理細則に従った手順を実行することにより、暗号通信を行うための暗号通信路を開設するようにしたものである。
( 20 ) A twentieth aspect of the present invention is a cryptographic communication method for performing cryptographic communication based on a predetermined encryption protocol between a first information processing device and a second information processing device,
A program preparation step in which the first information processing apparatus prepares a program for performing encrypted communication based on a predetermined encryption protocol in an executable state;
A first information processing device, which prepares a key table in which a plurality of storage locations respectively store the encryption keys used in the above encryption protocol;
The first information processing device sets a plurality of sets of storage zones including one or a plurality of storage locations on the key table, and prepares a zone table showing a correspondence relationship between each storage zone and each cryptographic processing rule. Zone table preparation stage
The second information processing apparatus gives the first information processing apparatus a cryptographic communication channel establishment command for instructing the establishment of a cryptographic communication channel for performing cryptographic communication;
A first information processing device, based on the received encrypted communication path opening command, an encrypted communication path opening step of opening an encrypted communication path for performing encrypted communication based on the predetermined encryption protocol;
A cryptographic communication stage in which the first information processing apparatus and the second information processing apparatus perform cryptographic communication via the established cryptographic communication path;
To run
The encryption communication path opening command includes storage location designation information indicating a specific storage location in the key table,
At the stage of opening the encrypted communication path, the encryption key stored in the specified storage location specified by the storage location specification information included in the encrypted communication path opening command is read as the specified encryption key, and the specified storage is performed by referring to the zone table. To perform cryptographic communication by recognizing the detailed cryptographic processing rules associated with the storage zone to which the location belongs as the designated detailed cryptographic processing rules and executing the procedure according to the designated detailed cryptographic processing rules using the designated encryption key. The cryptographic communication path is established.
本発明によれば、第1の情報処理装置内に、複数の格納場所に暗号鍵を格納した鍵テーブルと、この鍵テーブル上に定義された格納ゾーンと暗号処理細則との対応関係を示すゾーンテーブルと、が用意される。そして、第2の情報処理装置から第1の情報処理装置に対して、特定の格納場所を指定する格納場所指定情報を含む暗号通信路開設コマンドが与えられると、第1の情報処理装置は、指定格納場所に格納されている暗号鍵を用いて、指定格納場所が所属する格納ゾーンに対応づけられている暗号処理細則に従った手順を実行することにより、暗号通信路を開設することができる。すなわち、第2の情報処理装置は、暗号通信路開設コマンドに含ませた格納場所指定情報によって、その都度、特定の暗号処理細則を指定することが可能になる。このように、本発明によれば、2組の情報処理装置の間に、所定の暗号化プロトコルに基づく暗号通信路を開設して、両者間でセキュアな通信を行う際に、暗号通信路開設の都度、暗号通信処理の細かな手順を定めた暗号処理細則を設定することが可能になる。 According to the present invention, in the first information processing apparatus, a key table storing encryption keys in a plurality of storage locations, and a zone indicating a correspondence relationship between the storage zones defined on the key table and the cryptographic processing rules. A table and are prepared. Then, when the second information processing apparatus gives the first information processing apparatus an encryption communication path opening command including storage location designating information designating a specific storage location, the first information processing apparatus By using the encryption key stored in the designated storage location and executing the procedure according to the detailed cryptographic processing rules associated with the storage zone to which the designated storage location belongs, the encryption communication path can be opened. .. That is, the second information processing apparatus can specify the specific cryptographic processing rule each time by the storage location specifying information included in the encryption communication path opening command. As described above, according to the present invention, an encryption communication path based on a predetermined encryption protocol is established between two sets of information processing devices, and an encryption communication path is established when performing secure communication between them. Each time, it becomes possible to set a cryptographic processing detailed rule that defines the detailed procedure of the cryptographic communication processing.
特に、本発明は、2組の情報処理装置のうちの一方がICカードである場合に適しており、暗号通信路開設コマンドに暗号鍵の格納場所を示す格納場所指定情報を含ませ、当該格納場所が所属する格納ゾーンによって暗号処理細則を指定する方法を採用しているため、ICカードについての国際的な仕様に準拠した暗号通信路開設コマンドを用いて、暗号通信路の開設指示を与える際に、特定の暗号処理細則の設定をICカード側に伝達することが可能になる。 In particular, the present invention is suitable when one of the two sets of information processing devices is an IC card, and the storage location designation information indicating the storage location of the encryption key is included in the encryption communication path opening command, and the storage location is specified. Since the method of designating the detailed encryption processing rules is adopted according to the storage zone to which the location belongs, when the encryption communication path opening command is given using the encryption communication path opening command that complies with the international specifications for IC cards. Moreover, it becomes possible to transmit the setting of the specific cryptographic processing rule to the IC card side.
以下、本発明を図示する実施形態に基づいて説明する。 Hereinafter, the present invention will be described based on illustrated embodiments.
<<< §1. ICカードに対する従来の一般的な通信形態 >>>
本発明は、2組の情報処理装置の間で所定の暗号化プロトコルに基づく暗号通信を行う技術に係り、特に、ICカードと別な装置との間で暗号通信を行うのに適した暗号通信技術に関するものである。そこで、ここでは、まず、ICカードに対する従来の一般的な通信形態を簡単に説明しておくことにする。
<<<<§1. Conventional general communication form for IC card >>>
The present invention relates to a technique for performing encrypted communication between two sets of information processing devices based on a predetermined encryption protocol, and particularly to encrypted communication suitable for performing encrypted communication between an IC card and another device. It is about technology. Therefore, here, first, a conventional general communication mode for an IC card will be briefly described.
図1は、一般的なスマートフォン10,SIMカード11,外部サーバ20の間の情報通信の態様を示すブロック図である。通常、スマートフォン10は、内部にSIMカード11を装着した状態で利用され、必要に応じて、外部サーバ20と所定の通信路(インターネットや電話回線)を介して交信することになる。ここで、SIMカード11(UIMカードとも呼ばれる)は、Java Card(商標)やGlobalPlatform (登録商標)など、事実上の標準となっている国際的な仕様に準拠したICカードであり、外部装置との交信は、当該外部装置から与えられるコマンドと、これに対する応答(レスポンス)という形式で行われる。
FIG. 1 is a block diagram showing an aspect of information communication between a
SIMカード11に着目すると、スマートフォン10も外部サーバ20も、いずれも外部装置ということになり、これら外部装置との間の交信は、所定の通信路を介して行われる。図1には、スマートフォン10と外部サーバ20との間の通信路しか示されていないが、実際には、SIMカード11とスマートフォン10との間やSIMカード11と外部サーバ20との間にも通信路が形成される。そして、SIMカード11に対して、これらの通信路を介してコマンドおよびレスポンスのやりとりが行われることになる。
Focusing on the
図2は、図1に示すSIMカード11と、スマートフォン10もしくは外部サーバ20と、の間で暗号通信を行うためのプログラム構成の一例を示すブロック図である。本発明は、ICカードに限らず、一般的な2組の情報処理装置の間で暗号通信を行う場合に広く適用できる技術であり、一般論として、任意の情報処理装置間での通信に利用可能である。したがって、図2には、第1の情報処理装置100と第2の情報処理装置200との間に通信路を開設して相互に交信を行う例が示されている。
FIG. 2 is a block diagram showing an example of a program configuration for performing encrypted communication between the
ただ、上述したとおり、本発明は、ICカードに対する暗号通信を行うのに特に適した技術であり、ここでは、第1の情報処理装置100がスマートフォン10に装着されたSIMカード11であり、第2の情報処理装置200が当該スマートフォン10(もしくは、外部サーバ20でもよい)である場合について、以下の説明を行うことにする。
However, as described above, the present invention is a technology particularly suitable for performing encrypted communication with an IC card, and here, the first
SIMカード11をはじめとするICカードには、通常、複数のアプリケーションプログラムが組み込まれる。図2に示す第1の情報処理装置100(SIMカード11)には、2組の一般アプリケーションプログラムAP1,AP2が組み込まれた状態が示されている。また、ICカードには、通常、少なくとも1組の管理プログラムSD(Security Domain プログラム)が組み込まれている。この管理プログラムSDは、分類上はアプリケーションプログラムの一種であるが、OSプログラムと協働して、ICカード全体の動作や、管理下にある他のアプリケーションプログラムを管理する役割を果たす。そこで、本願では、情報処理装置100(SIMカード11)に組み込まれるアプリケーションプログラムのうち、Security Domain プログラムを「管理プログラム」と呼び、それ以外のアプリケーションプログラムを「一般アプリケーションプログラム(略称:一般アプリ)」と呼ぶことにする。
IC cards such as the
管理プログラムSDには、管理下となるアプリケーションプログラムについてのロード機能、インストール機能、削除機能などの様々な機能が備わっているが、本発明に直接関連する機能は、暗号通信路開設機能である。図2に示す管理プログラムSDには、暗号通信路開設機能に必要な暗号通信路開設ルーチンR1および鍵テーブルT1が組み込まれている。鍵テーブルT1には、暗号通信路開設に用いる暗号鍵が格納されている。ICカードからなる情報処理装置100の場合、通常、「SCP:Secure Channel Protocol」と呼ばれる所定の暗号化プロトコルに基づいて、第2の情報処理装置200との間にセキュアな暗号通信路を開設して暗号通信が行われる。このような機能を実現するため、管理プログラムSD内には、暗号通信路開設ルーチンR1と鍵テーブルT1とが組み込まれている。
The management program SD has various functions such as a loading function, an installing function, and a deleting function for the application program under management. The function directly related to the present invention is the encryption communication path opening function. The management program SD shown in FIG. 2 incorporates an encryption communication path opening routine R1 and a key table T1 necessary for the encryption communication path opening function. The key table T1 stores the encryption key used to open the encryption communication path. In the case of the
一方、第2の情報処理装置200にも、これに応じた暗号通信を行う機能をもったアプリケーションプログラムAP3が用意されており、暗号通信路開設ルーチンR2と鍵テーブルT2とが組み込まれている。たとえば、第2の情報処理装置200がスマートフォン10の場合、アプリケーションプログラムAP3は、このスマートフォン10にインストールされたアプリケーションプログラムの1つである。
On the other hand, the second
第1の情報処理装置100側の暗号通信路開設ルーチンR1と、第2の情報処理装置200側の暗号通信路開設ルーチンR2とは、両装置間にセキュアな暗号通信路を開設し、同一の暗号化プロトコルに基づいた暗号通信を行うためのルーチンであり、鍵テーブルT1と鍵テーブルT2には、同一の暗号鍵が収容されている。したがって、図示の例の場合、管理プログラムSDとアプリケーションプログラムAP3とによって、第1の情報処理装置100と第2の情報処理装置200との間に、同一の暗号鍵を用いた同一の暗号化プロトコルに基づく暗号通信を行うための暗号通信路が開設されることになる。
The cryptographic communication path opening routine R1 on the first
ICカードに対する暗号通信に利用される暗号化プロトコルとしては、SCP01,SCP02などのプロトコルが古くから利用されてきている。ただ、これらのプロトコルで用いられている「Triple-DES」という暗号アルゴリズムには危殆化の問題が指摘されており、近年は、AES(Advanced Encryption Standard)なる規格に基づく暗号アルゴリズムを利用したSCP03なるプロトコルも、GlobalPlatform (登録商標)に準拠した仕様として普及し始めている。また、3GPP/ETSIなどの標準化団体を中心に策定されたSCP80,SCP81などのプロトコルの利用も普及してきている。 As an encryption protocol used for encrypted communication with an IC card, protocols such as SCP01 and SCP02 have long been used. However, the problem of compromise has been pointed out in the encryption algorithm called "Triple-DES" used in these protocols, and in recent years, SCP03 that uses an encryption algorithm based on the standard called AES (Advanced Encryption Standard) has become available. The protocol is also becoming popular as a specification compliant with Global Platform (registered trademark). In addition, the use of protocols such as SCP80 and SCP81, which are established mainly by standardization organizations such as 3GPP/ETSI, has become widespread.
また、ICカードに組み込まれる管理プログラムSD用の鍵テーブルTとしては、図3に例示するような鍵空間を用いる仕様が一般化している。図示の鍵テーブルTは、縦方向にキーバージョン番号(key version number)、横方向にキーID(key ID)を定義したマトリックスによって構成されており、キーバージョン番号については、0x01〜0x7Fの範囲内のアドレス空間が割り当てられ、キーIDについては、0x00〜0x7Fの範囲内のアドレス空間が割り当てられている(アドレス先頭の0xは、以下の数値が16進数であることを示す)。 Further, as the key table T for the management program SD incorporated in the IC card, a specification using a key space as illustrated in FIG. 3 is generalized. The illustrated key table T is composed of a matrix that defines a key version number in the vertical direction and a key ID (key ID) in the horizontal direction, and the key version number is in the range of 0x01 to 0x7F. Is allocated, and an address space within the range of 0x00 to 0x7F is allocated to the key ID (0x at the beginning of the address indicates that the following numerical values are hexadecimal numbers).
個々の暗号鍵は、この鍵テーブルTのいずれかのセルに格納されることになり、キーバージョン番号とキーIDとの組み合わせにより特定される。たとえば、キーバージョン番号「0x01」とキーID「0x01」との組み合わせにより、暗号鍵KeyAが特定されることになる。図には、個々の暗号鍵の格納例として、KeyA〜KeyUが特定のセルに格納された状態が示されている。もちろん、暗号鍵はすべてのセルに格納する必要はなく、必要な暗号鍵が所定のセルに格納されていれば足りる。また、必要に応じて、後に、新たな暗号鍵を空いているセルに書き込むこともできる。 Each encryption key will be stored in any cell of this key table T, and is specified by the combination of the key version number and the key ID. For example, the encryption key KeyA is specified by the combination of the key version number “0x01” and the key ID “0x01”. As a storage example of each encryption key, the figure shows a state in which KeyA to KeyU are stored in a specific cell. Of course, the encryption key does not have to be stored in all cells, and it is sufficient if the required encryption key is stored in a predetermined cell. In addition, if necessary, a new encryption key can be written in an empty cell later.
ある1つの暗号化プロトコルでは、ある1つのキーバージョン番号が指定され、当該キーバージョン番号をもったセルに格納されている1つもしくは複数組の暗号鍵を利用した暗号化処理もしくは復号処理が実行される。図示の例の場合、キーバージョン番号「0x01」,「0x02」,「0x20」,「0x21」,「0x22」,「0x7E」,「0x7F」の各行に何らかの暗号鍵が格納されている状態が示されている。また、図示の例の場合、いずれのキーバージョン番号についても、キーID「0x01」,「0x02」,「0x03」の3箇所のセルにそれぞれ暗号鍵が格納されている。 In a certain encryption protocol, a certain key version number is specified, and an encryption process or a decryption process is executed using one or a plurality of sets of encryption keys stored in the cell having the key version number. To be done. In the case of the example shown in the figure, a state in which some encryption keys are stored in each row of key version numbers “0x01”, “0x02”, “0x20”, “0x21”, “0x22”, “0x7E”, “0x7F” is shown. Has been done. Further, in the case of the illustrated example, the encryption keys are stored in the cells at the three key IDs “0x01”, “0x02”, and “0x03” for each key version number.
これは、いずれのキーバージョン番号も、3つの異なる暗号鍵を用いる暗号化プロトコル(たとえば、上述したSCP01,SCP02,SCP03など)に対応したものになっているためである。たとえば、キーバージョン番号「0x20」が指定された場合、キーID「0x01」,「0x02」,「0x03」の各セルに格納されている3つの暗号鍵KeyG,KeyH,KeyIが暗号化処理もしくは復号処理に利用されることになる。別言すれば、特定の暗号化プロトコルに基づく暗号化処理もしくは復号処理には、同一のキーバージョン番号をもつ1つもしくは複数組の暗号鍵が利用されることになる。もちろん、合計5個の暗号鍵を必要とする暗号化プロトコルのためには、同一のキーバージョン番号をもつ5個のセルにそれぞれ暗号鍵を用意することになる。要するに、図3に示す鍵テーブルTでは、常に、同一行のセルに収容されている1組もしくは複数組の暗号鍵が、特定の暗号化プロトコルに基づく暗号化処理もしくは復号処理に利用されることになる。 This is because each of the key version numbers corresponds to the encryption protocol (for example, SCP01, SCP02, SCP03 described above) using three different encryption keys. For example, when the key version number “0x20” is specified, the three encryption keys KeyG, KeyH, and KeyI stored in the cells with the key IDs “0x01”, “0x02”, and “0x03” are encrypted or decrypted. It will be used for processing. In other words, one or a plurality of sets of encryption keys having the same key version number will be used for the encryption process or the decryption process based on the specific encryption protocol. Of course, for an encryption protocol that requires a total of 5 encryption keys, the encryption keys are prepared in 5 cells having the same key version number. In short, in the key table T shown in FIG. 3, one set or a plurality of sets of encryption keys accommodated in cells in the same row are always used for the encryption process or the decryption process based on a specific encryption protocol. become.
一方、図4(a) は、図3に示す鍵テーブルTの個々のセルに格納されている暗号鍵KeyA〜KeyUの一般的なデータ構造を示す図である。図示された暗号鍵Keyのデータ構造は、上述したICカードについての国際的な標準仕様として定められた暗号鍵Keyの標準フォーマットを示すものであり、先頭から順に、種別情報(key type)A,鍵長(key length)L,鍵値データ(key value)Vを並べたものになっている。ここで、種別情報(key type)Aは、「AES」,「Triple-DES」,「RSA」など、当該暗号鍵Keyを用いることを想定している暗号化プロトコルが採用する暗号アルゴリズムの種別を含む情報であり、鍵長(key length)Lは、後続する鍵値データ(key value)Vのデータ長(byte)を示す情報であり、最後の鍵値データ(key value)Vは、暗号化および復号の演算に用いられる鍵値データそのものである。 On the other hand, FIG. 4A is a diagram showing a general data structure of the encryption keys KeyA to KeyU stored in the individual cells of the key table T shown in FIG. The data structure of the encryption key Key shown in the figure shows the standard format of the encryption key Key defined as the international standard specifications for the above-mentioned IC card, and the type information (key type) A, The key length L and the key value data V are arranged side by side. Here, the type information (key type) A is the type of the encryption algorithm adopted by the encryption protocol that is supposed to use the encryption key Key, such as “AES”, “Triple-DES”, and “RSA”. The key length L is information indicating the data length (byte) of the subsequent key value data (key value) V, and the last key value data (key value) V is encrypted. And the key value data itself used for the decryption operation.
前述したとおり、図3に示す鍵テーブルTでは、同一行のセルに収容されている複数組の暗号鍵は、ある1つの暗号化プロトコルに基づく暗号化処理もしくは復号処理に利用される。したがって、同一行のセルに収容されている複数組の暗号鍵に含まれている種別情報Aは、必ず同一の情報になる。たとえば、図3に示す鍵テーブルTの第1行目に収容されている3組の暗号鍵「KeyA,KeyB,KeyC」は、互いに同一の種別情報Aを有し、これら3組の暗号鍵は、当該種別情報Aで示される特定の暗号アルゴリズムを採用した暗号化プロトコルにおいて利用される暗号鍵ということになる。暗号鍵「KeyD,KeyE,KeyF」や「KeyG,KeyH,KeyI」等についても同様である。 As described above, in the key table T shown in FIG. 3, a plurality of sets of encryption keys contained in cells in the same row are used for encryption processing or decryption processing based on a certain encryption protocol. Therefore, the type information A included in the plurality of sets of encryption keys contained in the cells in the same row is always the same information. For example, the three sets of encryption keys “KeyA, KeyB, and KeyC” stored in the first row of the key table T shown in FIG. 3 have the same type information A, and these three sets of encryption keys are , Which is an encryption key used in an encryption protocol that adopts the specific encryption algorithm indicated by the type information A. The same applies to the encryption keys “KeyD, KeyE, KeyF” and “KeyG, KeyH, KeyI”.
図4(b) は、暗号通信路開設コマンドCMDのデータ構造の概要を示す図である。実際のコマンドは、ISOなどの規格(たとえば、ISO7816-4)に準拠した、より複雑なデータ構造を有するものになるが、便宜上、図4(b) には、説明に必要な情報のみを抽出した概念的なデータ構造を示すことにする。図示の例は、上述した暗号化プロトコルSCP01,SCP02,SCP03を採用する場合に用いられている暗号通信路の開設コマンドを示しており、暗号通信路の開設を指示する文字列「INITIALIZE UPDATE」なるコマンド文字列情報(実際には、コマンド「INITIALIZE UPDATE」を意味するインストラクションバイト情報であるが、以下、便宜上、「INITIALIZE UPDATE」なる文字列として説明する)と、特定の暗号鍵の格納場所を示す格納場所指定情報(実際には、特定のキーバージョン番号)と、所定の乱数とによって構成されている。 FIG. 4B is a diagram showing an outline of the data structure of the encrypted communication path opening command CMD. The actual command will have a more complicated data structure that complies with standards such as ISO (eg, ISO7816-4), but for convenience, only the information necessary for explanation is extracted in Fig. 4(b). I will show the conceptual data structure that I did. The illustrated example shows an encryption communication path opening command used when the above-described encryption protocols SCP01, SCP02, SCP03 are adopted, and is a character string "INITIALIZE UPDATE" for instructing the opening of the encryption communication path. Indicates the command character string information (actually, it is instruction byte information that means the command "INITIALIZE UPDATE", but for the sake of convenience, it will be described as a character string "INITIALIZE UPDATE") and the storage location of a specific encryption key. The storage location designation information (actually, a specific key version number) and a predetermined random number are used.
たとえば、図3に示す鍵テーブルTに格納されている3組の暗号鍵「KeyG,KeyH,KeyI」を用いて暗号通信路を開設する場合には、文字列「INITIALIZE UPDATE」に「0x20」なるキーバージョン番号を後続させ、更にその後ろに所定の乱数を後続させた暗号通信路開設コマンドCMDをICカードに与えればよい。暗号通信路開設コマンドCMDの最後に付加される乱数は、外部装置(第2の情報処理装置200)がICカード(第1の情報処理装置100)を正規の交信相手であることを認証するために利用される。別言すれば、暗号通信路開設コマンドCMDは、ICカードに対して、暗号通信路の開設処理を実行する指示コマンドとしての役割とともに、所定の乱数に応じた認証コードを返信するよう求める認証コマンドとしての役割も果たす。 For example, when an encryption communication path is opened using three pairs of encryption keys “KeyG, KeyH, KeyI” stored in the key table T shown in FIG. 3, the character string “INITIALIZE UPDATE” becomes “0x20”. It is only necessary to give the IC card an encrypted communication path opening command CMD in which the key version number is followed by a predetermined random number. The random number added at the end of the encrypted communication path opening command CMD is used to authenticate that the external device (second information processing device 200) uses the IC card (first information processing device 100) as a regular communication partner. Used for. In other words, the cryptographic communication channel opening command CMD serves as an instruction command for executing the cryptographic communication channel opening processing with respect to the IC card, and an authentication command requesting that an authentication code corresponding to a predetermined random number be returned. Also plays a role as.
図5は、図2に示すSIMカード11(第1の情報処理装置100)に組み込まれた管理プログラムSDと、スマートフォン10(第2の情報処理装置200)に組み込まれたアプリケーションプログラムAP3と、の間でやりとりされる種々のコマンドおよびこれに対するレスポンスの具体例を示すダイアグラムである。ステップS1〜S6に示すとおり、いずれもスマートフォン10側からSIMカード11側に所定のコマンドを送信し、当該コマンドに対するレスポンスをSIMカード11側からスマートフォン10側へと返信する、という形態で、両者間の情報のやりとりが行われる。この例の場合、ステップS1〜S4までの情報のやりとりは、暗号化されていない通常の通信路を介して行われるが、ステップS5,S6の情報のやりとりは、管理プログラムSDによって開設された暗号通信路を介して行われる。
FIG. 5 shows a management program SD installed in the SIM card 11 (first information processing device 100) shown in FIG. 2 and an application program AP3 installed in the smartphone 10 (second information processing device 200). It is a diagram which shows the specific example of various commands exchanged between them, and the response to this. As shown in steps S1 to S6, in both cases, a predetermined command is transmitted from the
まず、ステップS1は、スマートフォン10側からSIMカード11側に「SELECTコマンド」を送信するプロセスである。この「SELECTコマンド」は、「アプリケーション選択コマンド」と呼ぶべきコマンドであり、特定のチャネル番号を指定して、SIMカード11側の特定のアプリケーションプログラム(この場合は、管理プログラムSD)を選択するコマンドである。SIMカード11側では、当該チャネル番号と当該管理プログラムSDとが対応づけられ、以後、同じチャネル番号をもつコマンドが与えられると、当該管理プログラムSDによって処理されることになる。「SELECTコマンド」が正常に受理されると、SIMカード11側からスマートフォン10側にレスポンスが返される。
First, step S1 is a process of transmitting a "SELECT command" from the
続く、ステップS2は、「GET DATAコマンド」を送信するプロセスである。なお、ステップS2以降のコマンドには、ステップS1と同じチャネル番号が付与されており、SIMカード11側では、管理プログラムSDによって処理される。この「GET DATAコマンド」は、管理プログラムSDの「データの読出機能」に基づいて、所定のデータをSIMカード11側からスマートフォン10側に読み出すためのコマンドであり、読出対象となるデータを特定する情報が付加されている。管理プログラムSDは、当該コマンドに応じて、SIMカード11内のメモリから指定されたデータを読み出し、これを当該コマンドに対するレスポンスとしてスマートフォン10側へと返信する。
The following step S2 is a process of transmitting a "GET DATA command". The commands after step S2 are given the same channel numbers as in step S1, and are processed by the management program SD on the
GlobalPlatform (登録商標)の仕様では、管理プログラムSDが「データの読出機能」を実行する場合は、暗号通信路を介した情報のやりとりが必須にはなっていない。図5のステップS2のプロセスは、暗号通信路の開設前に暗号通信路を介すことなく情報の読み出しが可能なデータの読出処理が行われた例を示すものである。このデータの読出処理は、本発明に直接関連する処理ではないが、ここでは、暗号通信路を介さずに行われる通信処理の一例として挙げておく。 According to the specifications of GlobalPlatform (registered trademark), when the management program SD executes the "data reading function", the exchange of information via the encrypted communication path is not essential. The process of step S2 in FIG. 5 shows an example in which the data read processing capable of reading information without performing the encrypted communication path is performed before the encrypted communication path is opened. Although this data reading process is not directly related to the present invention, it will be described here as an example of the communication process performed without passing through the encrypted communication path.
続く、ステップS3,S4は、暗号通信路の開設準備を行うプロセスであり、後述するように、本発明に直接関連する処理である。まず、ステップS3では、「INITIALIZE UPDATEコマンド」の送信が行われる。このコマンドは、図4(b) に示すデータ構造をもつ「暗号通信路開設コマンドCMD」であり、前述したとおり、「INITIALIZE UPDATE」なるコマンド文字列情報に、キーバージョン番号および乱数を付加した形態をもつ。このコマンドは、スマートフォン10(第2の情報処理装置100)が、SIMカード11(第1の情報処理装置100)を正規の交信相手として認証するための認証コマンドとしての役割も果たす。 Succeeding steps S3 and S4 are processes for preparing to open the encrypted communication path, and are processes directly related to the present invention, as will be described later. First, in step S3, an "INITIALIZE UPDATE command" is transmitted. This command is the "encryption communication path opening command CMD" having the data structure shown in Fig. 4(b), and as mentioned above, the form in which the key version number and random number are added to the command character string information "INITIALIZE UPDATE". With. This command also serves as an authentication command for the smartphone 10 (second information processing device 100) to authenticate the SIM card 11 (first information processing device 100) as a legitimate contact.
このような認証を行うため、スマートフォン10側では、認証用の乱数Raを発生させ、発生させた乱数を暗号通信路開設コマンドCMDに含ませて送信する。具体的には、たとえば、「INITIALIZE UPDATE,0x20,Ra」のような書式をもったコマンドが送信されることになる。ここで、「0x20」は、図3に示す鍵テーブルTのキーバージョン番号であり、「Ra」は発生させた乱数である。
In order to perform such authentication, the
一方、「INITIALIZE UPDATE,0x20,Ra」なる暗号通信路開設コマンドCMDを受信したSIMカード11は、図3に示す鍵テーブルTから、指定されたキーバージョン番号「0x20」に対応する3組の暗号鍵「KeyG,KeyH,KeyI」を取り出し、暗号通信路の設定処理(暗号化処理および復号処理の準備)を行うとともに、与えられた乱数Raに対して、これらの暗号鍵を利用した所定のアルゴリズムに基づく演算を施し、演算結果Ra′を得る(カード認証コード)。図5のステップS3に示す「Ra→Ra′」なる表記は、このような演算を示している。続いて、SIMカード11は、別な乱数Rbを発生させ、暗号通信路開設コマンドCMDに対するレスポンスとして、カード認証コードRa′と乱数Rbとをスマートフォン10側へと返信する。
On the other hand, the
一方、スマートフォン10は、返信されてきたレスポンスに含まれているカード認証コードRa′が、先ほど発生させた乱数Raに基づく正しい演算結果であるか否かを検証し、正しい演算結果であった場合に、現在交信中のSIMカード11を正規の交信相手と認証する。具体的には、乱数Raに対して、SIMカード11側で行われた演算に用いられた暗号鍵と同一の暗号鍵を用いて同一のアルゴリズムに基づく演算を実行して演算結果Ra′を算出し、算出したRa′とレスポンスに含まれていたカード認証コードRa′との一致を確認する。このように、乱数Raは、スマートフォン10が、SIMカード11を正規の交信相手として認証するために用いられる。
On the other hand, the
続くステップS4では、「EXTERNAL AUTHENTICATEコマンド」の送信が行われる。このコマンドは、「外部認証コマンド」であり、SIMカード11(第1の情報処理装置100)がスマートフォン10(外部装置である第2の情報処理装置200)を正規の交信相手として認証するための認証コマンドである。スマートフォン10は、ステップS3のレスポンスにより返信されてきた乱数Rbに対して、所定の暗号鍵を利用した所定のアルゴリズムに基づく演算を実行し、演算結果Rb′(ホスト認証コード)を得る。図5のステップS4に示す「Rb→Rb′」なる表記は、このような演算を示している。続いて、スマートフォン10は、このホスト認証コードRb′を含む「EXTERNAL AUTHENTICATEコマンド」をSIMカード11に送信する。
In the subsequent step S4, the "EXTERNAL AUTHENTICATE command" is transmitted. This command is an “external authentication command”, and is used by the SIM card 11 (first information processing device 100) to authenticate the smartphone 10 (second
この「EXTERNAL AUTHENTICATEコマンド」を受信したSIMカード11は、コマンドに含まれていたホスト認証コードRb′が、先ほど発生させた乱数Rbに基づく正しい演算結果であるか否かを検証し、正しい演算結果であった場合に、現在交信中のスマートフォン10を正規の交信相手と認証する。具体的には、先ほど発生させた乱数Rbに対して、スマートフォン10側で行われた演算に用いられた暗号鍵と同一の暗号鍵を用いて同一のアルゴリズムに基づく演算を実行して演算結果Rb′を算出し、算出したRb′とコマンドに含まれていたホスト認証コードRb′との一致を確認する。このように、乱数Rbは、SIMカード11が、スマートフォン10を正規の交信相手として認証するために用いられる。
The
このステップS3,S4による相互認証処理は、暗号通信路を開設する準備段階の処理として実行される。SIMカード11とスマートフォン10との間で暗号通信を行うためには、両者が、同一の暗号鍵を保持しており、同一の暗号アルゴリズムに基づく暗号化処理および復号処理を行う機能を有していることが前提となる。上記相互認証処理は、このような前提において、それぞれが発生させた乱数に対して同一の暗号鍵を用いた同一の暗号アルゴリズムに基づく演算処理を実行させ、演算結果が一致することをもって、相手方を正規の交信相手として認証する処理ということができる。
The mutual authentication process in steps S3 and S4 is executed as a process at the preparatory stage for opening the encryption communication path. In order to perform encrypted communication between the
この暗号化や復号の具体的なプロセスは、一般に利用されている公知の技術であるため、ここでは詳しい説明は省略する。こうして、SIMカード11とスマートフォン10との間での相互認証が完了すると、両者間に暗号通信路が開設される。図の破線より下に示されたステップS5以降のコマンドは、この暗号通信路を介して与えられることになる。すなわち、ステップS5以降のコマンドの実質的な内容部分は、所定の暗号化プロトコルに基づいて暗号化され、「SCP:Secure Channel Protocol」により保護されたコマンドとして送信される。
The specific process of this encryption and decryption is a well-known technique that is generally used, and therefore a detailed description thereof is omitted here. In this way, when the mutual authentication between the
なお、図5のステップS5,S6には、スマートフォン10からSIMカード11に対して与えるコマンドについては、実線の円筒として示す暗号通信路を介して送信される例が示されているが、SIMカード11からスマートフォン10に対して返信されるレスポンスについては、破線の円筒として示す通信路を介して返信される例が示されている。これは、レスポンスデータについては、暗号化して返信するか、暗号化せずに平文のまま返信するか、を暗号処理細則として設定することができるためである。レスポンスを暗号化する旨の暗号処理細則が設定されている場合は、レスポンスデータも暗号通信路を介して返信されることになるが、レスポンスを暗号化しない旨の暗号処理細則が設定されている場合は、レスポンスデータは平文のまま通常の通信路を介して返信されることになる。
Note that, in steps S5 and S6 of FIG. 5, an example in which the command given from the
<<< §2. 従来のICカードにおける暗号処理細則の設定方法 >>>
図2に示す例の場合、第1の情報処理装置100(SIMカード11)に組み込まれた管理プログラムSDが実行する暗号通信路開設ルーチンR1と、第2の情報処理装置200(たとえば、スマートフォン10)に組み込まれたアプリAP3が実行する暗号通信路開設ルーチンR2と、が協働することにより、両者間で所定の暗号化プロトコルに基づく暗号通信が行われることになる。暗号化プロトコルとしては、現在、SCP01,SCP02,SCP03,SCP80,SCP81など、様々な様式が定められているが、暗号通信を行う両者では、同一の暗号化プロトコルに基づいて、暗号化処理や復号処理を行う必要がある。
<<<<§2. How to set detailed rules for cryptographic processing in conventional IC cards >>>
In the case of the example shown in FIG. 2, the encrypted communication path opening routine R1 executed by the management program SD incorporated in the first information processing apparatus 100 (SIM card 11) and the second information processing apparatus 200 (for example, the smartphone 10). By cooperating with the encryption communication path opening routine R2 executed by the application AP3 incorporated in (1), encryption communication based on a predetermined encryption protocol is performed between the two. As the encryption protocol, various formats such as SCP01, SCP02, SCP03, SCP80, and SCP81 are currently defined, but both parties performing encrypted communication perform encryption processing and decryption based on the same encryption protocol. It needs to be processed.
そこで、GlobalPlatform (登録商標)の仕様に準拠したICカードの場合、管理プログラムSDをインストールする際に、当該管理プログラムSDがサポートする暗号化プロトコルを指定する方法が採用されている。たとえば、図2に示す例の場合、SIMカード11に管理プログラムSDをインストールする際に、特定の暗号化プロトコルを指定することにより、当該指定された特定の暗号化プロトコルによる暗号処理機能をもったルーチンR1が組み込まれることになる。インストール時に指定するプロトコルとしては、通信相手となる予定のスマートフォン10のアプリAP3に組み込まれているルーチンR2が採用しているプロトロルを選択すればよい。
Therefore, in the case of an IC card that conforms to the GlobalPlatform (registered trademark) specifications, when the management program SD is installed, a method of designating an encryption protocol supported by the management program SD is adopted. For example, in the case of the example shown in FIG. 2, when the management program SD is installed in the
ただ、同じ暗号化プロトロルを採用した場合であっても、暗号通信処理の細かな手順を定めた暗号処理細則の設定を変えると、両者間で行われる具体的な暗号通信形態も変わってくる。たとえば、図5のステップS5,S6に示す暗号通信の例で述べたように、SIMカード11からスマートフォン10にレスポンスを返信する際に、レスポンスデータを暗号化するか否か、といった細かな手順は、暗号処理細則によって設定される事項になる。同様に、図5のステップS3において発生する乱数Rbを、真性乱数にするか、擬似乱数にするか、といった細かな手順も、暗号処理細則によって設定される事項になる。その他、レスポンスデータにチェックコードを付与するか否か、送信コマンドへのチェックコード付与方法、暗号処理に用いる暗号鍵の数、など、個々の暗号化プロトコルごとに、それぞれ暗号通信処理の細かな手順を定めた暗号処理細則の設定が行われている。
However, even when the same encryption protocol is adopted, if the setting of the detailed cryptographic processing rule that defines the detailed procedure of the cryptographic communication processing is changed, the specific cryptographic communication mode performed between the two also changes. For example, as described in the example of the encrypted communication shown in steps S5 and S6 of FIG. 5, when the response is returned from the
要するに、暗号化プロトロルが暗号通信処理の大まかな手順を定める規則であるのに対して、ここでいう「暗号処理細則」とは、同一の暗号化プロトロルの範疇に入る細かな手順を定める規則、ということになる。GlobalPlatform (登録商標)の仕様に準拠したICカードの場合、この暗号処理細則についても、管理プログラムSDをインストールする際に、細かな指定を行う方法が採用されている。具体的には、パラメータ「i」と呼ばれている1バイトのデータの個々のビットフラグによって、いくつかの暗号処理細則が設定される。このパラメータ「i」の具体的内容については、後に詳述する。 In short, the encryption protocol is a rule that defines a rough procedure of cryptographic communication processing, whereas the "detailed rules of cryptographic processing" here is a rule that defines a detailed procedure that falls within the same encryption protocol. It turns out that. In the case of an IC card that conforms to the GlobalPlatform (registered trademark) specifications, a method of making detailed designations when installing the management program SD is also adopted for this cryptographic processing detailed rule. Specifically, some bit rules for encryption are set by the individual bit flags of the 1-byte data called the parameter “i”. The specific content of this parameter "i" will be described later in detail.
結局、GlobalPlatform (登録商標)の仕様に準拠したICカードの場合、外部装置との間の暗号通信処理を担う管理プログラムSDをインストールする際に、特定の暗号化プロトロルを指定するとともに、当該特定の暗号化プロトロルに関する特定の暗号処理細則を指定する作業を行うことになる。そして、インストールされた管理プログラムSDは、指定された特定の暗号化プロトロルに基づき、指定された特定の暗号処理細則に従って、暗号通信を行うための暗号通信路を開設し、開設された暗号通信路を介して外部装置との間で暗号通信を行うことになる。そこで、ここでは便宜上、従来のICカードにおける管理プログラムSDのインストール手順を、関連するコマンドを例示しながら簡単に説明しておく。 After all, in the case of an IC card that conforms to the GlobalPlatform (registered trademark) specifications, a specific encryption protocol is specified and a specific encryption protocol is specified when the management program SD that carries out encrypted communication processing with an external device is installed. You will be working to specify specific cryptographic rules for cryptographic protocols. Then, the installed management program SD opens an encrypted communication path for performing encrypted communication according to the specified specific cryptographic processing rule based on the specified specified encryption protocol, and the established encrypted communication path. The encrypted communication is performed with the external device via the. Therefore, here, for convenience, the installation procedure of the management program SD in the conventional IC card will be briefly described with reference to related commands.
図6は、GlobalPlatform (登録商標)の仕様に準拠したICカードに与える具体的なコマンドの書式例を示す図である。ICカード用のコマンドとしては、この他にも様々なものが用いられているが、図6(a) 〜(e) には、本発明に関連するいくつかのコマンドのみを抽出して示した。以下、これら各コマンドの書式および当該コマンドに応じてICカード側で実行される処理内容について簡単に説明を行う。なお、図6に示す各コマンド書式のデータ構造は、一部の情報のみを抽出した概念的なデータ構造であり、実際のデータ構造それ自体を示すものではない。 FIG. 6 is a diagram showing a format example of a specific command given to an IC card conforming to the GlobalPlatform (registered trademark) specifications. Although various other commands are used as IC card commands, only some commands relevant to the present invention are shown in FIGS. 6(a) to 6(e). .. Hereinafter, the format of each of these commands and the processing contents executed on the IC card side according to the command will be briefly described. The data structure of each command format shown in FIG. 6 is a conceptual data structure in which only a part of information is extracted, and does not show the actual data structure itself.
(a) アプリケーション選択コマンド
まず、図6(a) に示す「アプリケーション選択コマンド」について説明する。このコマンドは、図5のダイアグラムのステップS1で説明したコマンドであり、特定のチャネル番号を指定して、ICカード(第1の情報処理装置100)側の特定のアプリケーションプログラムを選択するコマンドである。図示のとおり、「SELECT (#n)+アプリ名」というデータ構造を有し、チャネル番号#nを指定して、「アプリ名」で特定されるアプリケーションプログラムを選択する指示である。
(a) Application Selection Command First, the “application selection command” shown in FIG. 6(a) will be described. This command is the command described in step S1 of the diagram of FIG. 5, and is a command for designating a specific channel number and selecting a specific application program on the IC card (first information processing device 100) side. .. As shown in the figure, the instruction has a data structure of “SELECT (#n)+application name”, specifies the channel number #n, and selects an application program specified by the “application name”.
チャネル番号#nは、外部装置(第2の情報処理装置200)からICカードに対してコマンドを与える際に、当該コマンドがどのアプリケーションプログラム宛のコマンドであるかを識別させるために用いられる。ICカードには、複数のアプリケーションプログラムが格納されているため、外部装置から与えるコマンドのそれぞれにチャネル番号#nを付加して識別できるようにする必要がある。「アプリケーション選択コマンド」は、特定のアプリケーションプログラムに特定のチャネル番号#nを対応づけるための初期設定を行う役割を果たす。 The channel number #n is used when the external device (second information processing device 200) gives a command to the IC card to identify which application program the command is directed to. Since a plurality of application programs are stored in the IC card, it is necessary to add the channel number #n to each command given from the external device so that the command can be identified. The "application selection command" plays a role of making an initial setting for associating a specific channel number #n with a specific application program.
たとえば、「SELECT (#3)+SD」というアプリケーション選択コマンドをICカードに与えると、管理プログラムSDがチャネル番号#3に対応づけられる。具体的には、当該コマンドを受信したICカード内のOSプログラムが、管理プログラムSDがチャネル番号#3に対応づけられた旨の記録を行うことになる。以後、チャネル番号#3が付与されたコマンドは、すべて管理プログラムSD宛のコマンドとして取り扱われ、管理プログラムSDによって実行されることになる。
For example, when the application selection command “SELECT (#3)+SD” is given to the IC card, the management program SD is associated with the
(b) アプリケーションロードコマンド
次に、図6(b) に示す「アプリケーションロードコマンド」について説明する。このコマンドは、新たなアプリケーションプログラムを組み込む際の最初のステップとして実行されるコマンドである。実際には、図示のとおり、2つのコマンドによって構成される。
(b) Application Load Command Next, the “application load command” shown in FIG. 6B will be described. This command is a command executed as the first step when incorporating a new application program. Actually, as shown, it is composed of two commands.
第1段階のロードコマンドは、「INSTALL for load (#n)+パッケージ名」というデータ構造を有し、チャネル番号#nを指定して、「パッケージ名」で特定されるパッケージをロードする旨の指示を伝えるコマンドになる。第2段階のロードコマンドは、「LOAD (#n)+バイナリデータ」というデータ構造を有し、チャネル番号#nを指定して、後続するバイナリデータのパッケージを、メモリにそのまま格納する旨の指示を伝えるコマンドになる。 The load command in the first stage has a data structure of "INSTALL for load (#n) + package name", and specifies the channel number #n to load the package specified by "package name". It becomes a command that conveys instructions. The load command of the second stage has a data structure of "LOAD (#n) + binary data", specifies the channel number #n, and instructs to store the subsequent binary data package in the memory as it is. Will be a command to convey.
ここでは、新たなアプリケーションプログラムとして、管理プログラムSDを組み込む場合の手順を例にとって、この「アプリケーションロードコマンド」を説明する。この新たなアプリケーションプログラムの組込処理は、ICカードに既に組み込まれている管理プログラムISDによって実行される。したがって、「管理プログラムSD」を新たに組み込む作業は、既に組み込み済みの別な「管理プログラムISD」によって実行されることになる。ICカードには、複数組の「管理プログラム」を相互に階層構造をもたせて組み込むことが可能であり、既に組み込み済みの「上位管理プログラム」の下に、新たに「下位管理プログラム」を組み込むことが可能である。ここで、最上位の管理プログラムは、ISD(Issuer Security Domain)と呼ばれ、ICカードの工場出荷時に既に組み込まれている。 Here, the "application load command" will be described by taking the procedure of incorporating the management program SD as a new application program as an example. This new application program incorporation process is executed by the management program ISD already incorporated in the IC card. Therefore, the work of newly incorporating the “management program SD” is executed by another “management program ISD” that has already been incorporated. It is possible to embed multiple sets of "management programs" in a hierarchical structure to each other in the IC card, and to newly install the "lower management program" under the already installed "upper management program". Is possible. Here, the highest-level management program is called ISD (Issuer Security Domain), and is already installed at the time of factory shipment of the IC card.
以下、便宜上、図6(a) に例示した「SELECT (#3)+ISD」というアプリケーション選択コマンドによって、既に、上位管理プログラムISDがチャネル番号#3に対応づけられている状態において、その下に、新たに下位管理プログラムSDを組み込む作業を行う場合を例にとって説明を行う。この場合、図6(b) に示す第1段階のロードコマンドとしては「INSTALL for load (#3)+PackSD」のようなコマンドを与え、第2段階のロードコマンドとしては「LOAD (#3)+バイナリデータ」のようなコマンドを与えることになる。
Hereinafter, for convenience, in the state where the upper management program ISD is already associated with the
上記2段階からなるアプリケーションロードコマンドは、いずれもチャネル番号「#3」が付与されたコマンドなので、「#3」への対応づけがなされている上位管理プログラムISDによって処理されることになる。上位管理プログラムISDは、第2段階のロードコマンドに含まれていた「バイナリデータ」の部分をそのままメモリの所定箇所に格納し、当該「バイナリデータ」が「PackSD」なるパッケージ名であるかの確認を行う。ここで、「バイナリデータ」の実体は、新たに組み込まれる下位管理プログラムSD用のプログラムデータである。 Since the application load command consisting of the above two steps is a command to which the channel number “#3” is added, it is processed by the higher-level management program ISD associated with “#3”. The upper-level management program ISD stores the "binary data" part included in the load command of the second stage as it is in a predetermined location in the memory, and confirms whether the "binary data" is the package name "PackSD" I do. Here, the substance of the “binary data” is the program data for the newly incorporated lower management program SD.
このように、「アプリケーションロードコマンド」は、特定のアプリケーションプログラムのパッケージをICカード内のメモリに格納するためのコマンドであり、上例の場合、当該コマンドの実行によって、新たに組み込むべき下位管理プログラムSDのバイナリデータがICカード内のメモリに格納されることになる。 As described above, the “application load command” is a command for storing a package of a specific application program in the memory of the IC card, and in the above example, by executing the command, the lower management program to be newly incorporated. The binary data of SD will be stored in the memory in the IC card.
(c) アプリケーションプログラムのインストールコマンド
続いて、図6(c) に示す「アプリケーションプログラムのインストールコマンド」について説明する。このコマンドは、特定の管理プログラムの管理下に、新たなアプリケーションプログラムを組み込む際の第2段階のステップとして実行されるコマンドである。したがって、ここで言うアプリケーションプログラムのインストールとは、アプリケーションのロードによってメモリ上に格納された状態になっているアプリケーションプログラムのパッケージを、メモリ上にアプリケーションインスタンスとして展開し、CPUが実行できる状態にする処理である。別言すれば、アプリケーションプログラムのインストールとは、既にロードされているパッケージをメモリ上に展開して、アプリケーションインスタンスを生成する処理ということになる。
(c) Application Program Installation Command Next, the “application program installation command” shown in FIG. 6C will be described. This command is a command executed as a step of the second stage when incorporating a new application program under the control of a specific management program. Therefore, the installation of the application program mentioned here is a process of expanding the package of the application program stored in the memory by loading the application as an application instance in the memory and making it executable by the CPU. Is. In other words, the installation of the application program is a process of expanding the already loaded package on the memory and generating an application instance.
このアプリケーションプログラムのインストールコマンドは、図示のとおり、「INSTALL for install (#n)+パッケージ名+アプリ名+パラメータ」というデータ構造を有し、チャネル番号#nを指定して、「パッケージ名」で特定されるパッケージを展開して、アプリケーションインスタンスを生成し、当該アプリケーションインスタンスに「アプリ名」で指定される名称を付与する旨の指示を伝えるコマンドになる。なお、GlobalPlatform(登録商標)の仕様に準拠したインストールコマンドでは、「パッケージ名」の後に「クラス名」なるデータを配置し、当該「クラス名」で特定されるアプリケーションインスタンスが生成されることになるが、本願では便宜上、「クラス名」の説明については省略する。 As shown in the figure, the installation command of this application program has a data structure of "INSTALL for install (#n) + package name + application name + parameter". It is a command that transmits an instruction to expand the specified package, generate an application instance, and give the application instance a name specified by the “app name”. In the installation command that conforms to the GlobalPlatform (registered trademark) specifications, the data "class name" is placed after the "package name", and the application instance specified by the "class name" is generated. However, in the present application, description of the “class name” is omitted for convenience.
上例の場合、図6(b) に示す「アプリケーションロードコマンド」の実行により、既に、新たに組み込むべき下位管理プログラムSDのバイナリデータが、「PackSD」なるパッケージ名でICカード内のメモリに格納されているので、図6(c) に示す「インストールコマンド」としては、「INSTALL for install (#3)+PackSD+SD+パラメータ」のようなコマンドを与えればよい。このコマンドにもチャネル番号「#3」が付与されているため、「#3」に対応づけられた上位管理プログラムISDによって、当該コマンドが処理される。 In the case of the above example, by executing the “application load command” shown in FIG. 6(b), the binary data of the lower management program SD to be newly incorporated is already stored in the memory in the IC card with the package name “PackSD”. Therefore, as the “install command” shown in FIG. 6C, a command such as “INSTALL for install (#3)+PackSD+SD+parameter” may be given. Since the channel number “#3” is also assigned to this command, the command is processed by the higher-level management program ISD associated with “#3”.
すなわち、上位管理プログラムISDは、「PackSD」なるパッケージ名で既にロードされているアプリケーションプログラムパッケージをメモリ上に展開してアプリケーションインスタンスを作成するインストール処理を実行する。こうして新たにインストールされた下位管理プログラムには、指定されたアプリ名「SD」が付与され、階層構造上、上位管理プログラムISDの管理下におかれることになる。 That is, the higher-level management program ISD executes an installation process of creating an application instance by expanding an application program package already loaded under the package name “PackSD” on the memory. The newly-installed lower-level management program is given the designated application name "SD", and is placed under the control of the higher-level management program ISD in the hierarchical structure.
なお、図6(c) に示されているように、アプリケーションプログラムのインストールコマンドの末尾には、パラメータが付加されている。図示のとおり、このパラメータには、「暗号化プロトコル指定パラメータ」と「暗号処理細則指定パラメータ」とが含まれている。実際には、この他にもいくつかの個別パラメータが含まれているが、本発明に直接関連しないため、ここでは説明は省略する。 As shown in FIG. 6C, a parameter is added to the end of the installation command of the application program. As shown in the figure, this parameter includes an “encryption protocol designation parameter” and a “cryptographic processing detailed rule designation parameter”. Actually, some other individual parameters are also included, but they are not directly related to the present invention, and thus the description thereof is omitted here.
ここで、暗号化プロトコル指定パラメータは、新たに組み込まれる管理プログラムSDの暗号通信路開設機能が採用する暗号化プロトコルを指定するパラメータであり、図には、「SCP03」を指定した例が示されている。一方、暗号処理細則指定パラメータは、一般にパラメータ「i」と呼ばれているパラメータであり、図には、「擬似乱数使用/レスポンス暗号化せず/チェックコード付与」という細則を指定した例が示されている。 Here, the encryption protocol designation parameter is a parameter that designates the encryption protocol adopted by the encryption communication path opening function of the newly incorporated management program SD, and an example in which "SCP03" is designated is shown in the figure. ing. On the other hand, the cryptographic process detailed rule specifying parameter is a parameter generally called a parameter "i", and the figure shows an example in which the detailed rule "use pseudo random number/do not encrypt response/add check code" is specified. Has been done.
上述したとおり、この図6(c) に示すインストールコマンドは、上位管理プログラムISDによって実行される。上位管理プログラムISDは、当該コマンドに応じて、下位管理プログラムSDとして機能するアプリケーションインスタンスを作成するインストール処理を実行することになるが、このとき、インストール後の下位管理プログラムSDが、上記パラメータの指定に応じた態様で動作するような設定を行う。したがって、上例の場合、インストール後の下位管理プログラムSDは、指定された暗号化プロトコル「SCP03」に基づき、指定された暗号処理細則「擬似乱数使用/レスポンス暗号化せず/チェックコード付与」に従った暗号通信を行うことになる。 As described above, the install command shown in FIG. 6(c) is executed by the upper management program ISD. The higher-level management program ISD executes an installation process for creating an application instance functioning as the lower-level management program SD according to the command. At this time, the lower-level management program SD after the installation specifies the above parameters. The setting is made so that it operates in a mode according to. Therefore, in the case of the above example, the lower-level management program SD after installation is based on the specified encryption protocol “SCP03” and the specified detailed encryption processing rule “use pseudo random number/do not encrypt response/add check code” The encrypted communication is followed.
このように、管理プログラムSDについてのアプリケーションプログラムのインストールコマンドには、パラメータの部分に、当該管理プログラムSDが将来利用することになる暗号化プロトコルおよび当該プロトコルによる暗号通信処理の細かな手順を定めた暗号処理細則を指定する情報が含まれており、インストールされた管理プログラムSDは、外部装置から暗号通信路開設コマンドが与えられた場合、このインストール時に指定された暗号化プロトコルおよび暗号処理細則に従った暗号通信路を開設することになる。 As described above, in the installation command of the application program for the management program SD, an encryption protocol to be used by the management program SD in the future and a detailed procedure of encrypted communication processing by the protocol are defined in the parameter part. The installed management program SD includes the information specifying the detailed cryptographic processing rules, and when an external device gives an encrypted communication path opening command, the installed management program SD follows the encryption protocol and the detailed cryptographic processing rules specified at the time of installation. A cryptographic communication path will be opened.
(d) 暗号通信路開設コマンド
続いて、図6(d) に示す「暗号通信路開設コマンド」について説明する。このコマンドは、既に説明したとおり、ICカードに対して暗号通信路の開設を指示するためのコマンドである。すなわち、この暗号通信路開設コマンドは、図6(d) に示すとおり、「INITIALIZE UPDATE (#n)+パラメータ」というデータ構造を有し、チャネル番号#nで指定される管理プログラムSDに対して、暗号通信路を開設する指示を与えるとともに、外部装置が、ICカードを正規の交信相手として認証するために用いるレスポンスを要求するコマンドである。
(d) Cryptographic Communication Path Opening Command Next, the "cryptographic communication path opening command" shown in FIG. 6(d) will be described. As described above, this command is a command for instructing the IC card to open the encryption communication path. That is, this encrypted communication path opening command has a data structure of "INITIALIZE UPDATE (#n)+parameter" as shown in FIG. 6(d), and corresponds to the management program SD specified by the channel number #n. , Is a command that gives an instruction to open an encrypted communication path and requests a response that the external device uses to authenticate the IC card as a regular communication partner.
この暗号通信路開設コマンドには、パラメータとして、キーバージョン番号および乱数が付加されている。既に述べたとおり、当該コマンドを受けた管理プログラムSDは、図3に示す鍵テーブルTからコマンドに付加されているキーバージョン番号で特定される暗号鍵を取り出し、取り出した暗号鍵と所定の暗号化プロトコルを用いて、外部装置との間に暗号通信路を開設する処理を行い、更に、コマンドに付加されている乱数Raに対して所定のアルゴリズムに基づく演算を施し、演算結果Ra′を当該コマンドに対するレスポンスとして返信する。このような処理は、既に、図5のダイアグラムのステップS3で述べたとおりである。 A key version number and a random number are added as parameters to this encryption communication path opening command. As described above, the management program SD that has received the command extracts the encryption key specified by the key version number added to the command from the key table T shown in FIG. 3, and extracts the encryption key and the predetermined encryption. A protocol is used to open a cryptographic communication path with an external device, and a random number Ra added to the command is calculated according to a predetermined algorithm. Reply as a response to. Such processing has already been described in step S3 of the diagram of FIG.
(e) 外部認証コマンド
続いて、図6(e) に示す「外部認証コマンド」について説明する。このコマンドは、チャネル番号#nで指定される管理プログラムSDが、現在通信を行っている外部装置を正規の交信相手として認証するためのコマンドであり、図示のとおり、「EXTERNAL AUTHENTICATE (#n)+ホスト認証コード」というデータ構造を有する。当該コマンドを受けたICカード側では、チャネル番号#nで指定された管理プログラムSDが、コマンドに付加されていたホスト認証コードを認証し、正当なものであれば、外部装置を正規の交信相手と判断する。
(e) External Authentication Command Next, the “external authentication command” shown in FIG. 6(e) will be described. This command is a command for the management program SD specified by the channel number #n to authenticate the external device that is currently communicating as a regular communication partner, and as shown in the figure, "EXTERNAL AUTHENTICATE (#n)" + Host authentication code". On the IC card side receiving the command, the management program SD specified by the channel number #n authenticates the host authentication code added to the command, and if it is legitimate, the external device is made a regular communication partner. To judge.
具体的には、既に、図5のダイアグラムのステップS4で説明を行った認証処理が行われる。すなわち、このコマンドに付加されているホスト認証コードは、図5において、スマートフォン10(外部装置)においてRb→Rb′なる演算処理によって得た演算結果Rb′であり、管理プログラムSDは、同じくRb→Rb′なる演算処理を行い、得られた演算結果がホスト認証コードRb′に一致することを確認することにより、スマートフォン10(外部装置)を正規の交信相手として認証することになる。 Specifically, the authentication process already described in step S4 of the diagram of FIG. 5 is performed. That is, the host authentication code added to this command is the calculation result Rb′ obtained by the calculation process of Rb→Rb′ in the smartphone 10 (external device) in FIG. 5, and the management program SD is also the same as Rb→Rb→ By performing a calculation process of Rb′ and confirming that the obtained calculation result matches the host authentication code Rb′, the smartphone 10 (external device) is authenticated as a regular communication partner.
こうして、図5のダイアグラムのステップS3,S4の相互認証処理が完了すると、暗号通信路が開設され、ステップS5,S6の暗号通信が実行されることになる。上例の場合、前述したとおり、インストール時に指定された暗号化プロトコル「SCP03」に基づき、インストール時に指定された暗号処理細則「擬似乱数使用/レスポンス暗号化せず/チェックコード付与」に従った暗号通信が実行される。 In this way, when the mutual authentication processing in steps S3 and S4 in the diagram of FIG. 5 is completed, the encrypted communication path is opened and the encrypted communication in steps S5 and S6 is executed. In the case of the above example, as described above, based on the encryption protocol "SCP03" specified at the time of installation, the encryption according to the encryption processing detailed rule "Use pseudo random number/No response encryption/Check code addition" specified at installation Communication is performed.
<<< §3. 暗号処理細則指定パラメータの実例 >>>
図6(c) に示す「アプリケーションプログラムのインストールコマンド」の末尾には、パラメータが付加されており、このパラメータには、「暗号化プロトコル指定パラメータ」と「暗号処理細則指定パラメータ」とが含まれていることは、既に§2で述べたとおりである。ここで、「暗号処理細則指定パラメータ」は、一般にパラメータ「i」と呼ばれている1バイトの数値であり、「暗号化プロトコル指定パラメータ」によって指定された特定の暗号化プロトコルによる暗号通信処理の細かな手順を定めた細則を定めるものである。ここでは、現在利用されている暗号処理細則指定パラメータ(パラメータ「i」)の実例をいくつか例示しておく。
<<<< §3. Examples of cryptographic processing detailed specification parameters >>>
A parameter is added to the end of the “application program installation command” shown in FIG. 6C, and this parameter includes the “encryption protocol specification parameter” and the “encryption processing detailed specification parameter”. What has already been done is as described in §2. Here, the “encryption processing detailed specification parameter” is a 1-byte numerical value generally called the parameter “i”, and indicates the encryption communication processing of the specific encryption protocol specified by the “encryption protocol specification parameter”. It defines detailed rules that define detailed procedures. Here, some actual examples of currently used cryptographic process detailed rule specifying parameters (parameter “i”) will be illustrated.
(a) 暗号化プロトコルSCP03についてのパラメータ「i」
図7(a) は、暗号化プロトコルSCP03についてのパラメータ「i」によって定められる暗号処理細則の実例を示す表であり、図7(b) は、各暗号処理細則の具体的な内容を示す表である。前述したとおり、パラメータ「i」は1バイトの値からなるデータであり、図7(a) におけるb1〜b8は、このパラメータ「i」の各ビット(b1がLSB,b8がMSB)を示している。
(a) Parameter "i" for encryption protocol SCP03
FIG. 7(a) is a table showing an example of the detailed cryptographic processing rules defined by the parameter “i” for the encryption protocol SCP03, and FIG. 7(b) is a table showing the specific contents of each cryptographic processing detailed rule. Is. As described above, the parameter “i” is data consisting of a 1-byte value, and b1 to b8 in FIG. 7A indicate each bit (b1 is LSB, b8 is MSB) of the parameter “i”. There is.
図7(a) の表における項目(1) は、パラメータ「i」のビットb1〜b4(X印のビット)が、RFU(Reserved for Future Use:将来のための予約ビット)であることを示しており、現時点では、いずれもビット値を「0」に設定することが決められている。なお、図7(a) の表において、各項目の行に「−」が記入されたビットは、当該項目には当該ビットは無関係であることを示す。 Item (1) in the table of FIG. 7A indicates that the bits b1 to b4 (bits marked with X) of the parameter “i” are RFU (Reserved for Future Use). Therefore, at present, it is decided to set the bit value to "0". In the table of FIG. 7(a), the bit with "-" written in the line of each item indicates that the bit is irrelevant to the item.
項目(2) ,(3) は、パラメータ「i」のビットb5(図において、0もしくは1のビット)が、相互認証時に、ICカードが生成する乱数に真正乱数を用いるか、擬似乱数を用いるか、を示すビットであることを定めている。パラメータ「i」のビットb5のビット値が「0」の場合、ICカードは図5のステップ3において真正乱数を用いて乱数Rbを発生し、パラメータ「i」のビットb5のビット値が「1」の場合、ICカードは図5のステップS3において擬似乱数を用いて乱数Rbを発生することになる。擬似乱数の具体的な発生方法については、GlobalPlatform (登録商標)に定義されているため、ここでは説明は省略する。
Items (2) and (3) indicate that bit b5 (0 or 1 bit in the figure) of parameter “i” uses a true random number as a random number generated by the IC card at the time of mutual authentication, or uses a pseudo random number. It is a bit indicating whether or not. When the bit value of the bit b5 of the parameter “i” is “0”, the IC card generates a random number Rb using a true random number in
項目(4) 〜(6) は、パラメータ「i」のビットb6およびb7(図において、00,01,11のいずれか)が、暗号通信路開設後に返信するレスポンスデータに関する処理細則を定めるデータであることを示している。具体的には、パラメータ「i」のビットb7は、図5のステップS5,S6におけるレスポンスデータを暗号化するか否かを定めており、ICカードは、ビットb7のビット値が「0」の場合は暗号化せずに返信し、ビットb7のビット値が「1」の場合は暗号化して返信することになる。一方、パラメータ「i」のビットb6は、図5のステップS5,S6におけるレスポンスデータにチェックコードを付与するか否かを定めており、ICカードは、ビットb6のビット値が「0」の場合はチェックコードを付与しないで返信し、ビットb6のビット値が「1」の場合はチェックコードを付与して返信することになる。 Items (4) to (6) are data in which bits b6 and b7 (one of 00, 01, and 11 in the figure) of the parameter "i" define the processing rules regarding the response data to be returned after the encrypted communication path is opened. It shows that there is. Specifically, the bit b7 of the parameter “i” defines whether or not the response data in steps S5 and S6 of FIG. 5 is encrypted, and the IC card sets the bit value of the bit b7 to “0”. If the bit value of the bit b7 is "1", the reply is made without encryption. On the other hand, the bit b6 of the parameter "i" determines whether or not a check code is added to the response data in steps S5 and S6 of FIG. 5, and the IC card determines that the bit value of the bit b6 is "0". Replies without adding a check code, and when the bit value of bit b6 is "1", it replies with a check code.
項目(7) は、パラメータ「i」のビットb8(X印のビット)が、予約済ビットであることを示している。このビットb8は、暗号処理細則の指定には利用することができない。以下、このビットb8のビット値が「0」に固定されているものとして説明を行う。 Item (7) indicates that the bit b8 (the X-marked bit) of the parameter “i” is a reserved bit. This bit b8 cannot be used for designating the detailed cryptographic processing rule. Hereinafter, the description will be given assuming that the bit value of the bit b8 is fixed to "0".
以上説明した図7(a) の各項目(1) 〜(7) に示す暗号処理細則の内容は、図7(b) の表にまとめてある。図6(c) に示すインストールコマンドにおいて、暗号化プロトコル指定パラメータによって「SCP03」を指定した場合、暗号処理細則指定パラメータ(パラメータ「i」)の値は、図7の各項目に示す暗号処理細則を定めるパラメータとして機能する。パラメータ「i」は、必ず特定の暗号化プロトコルに対応させて設定され、たとえば、「SCP03 i=10h」のように表記される。ここで、末尾のhは、値「10」が16進数であることを示す(以下、同様)。「10h」はビット列「00010000」に対応する(ビットb5の値が「1」)。よって、「SCP03 i=10h」は、図7(a) の項目(3) に対応し、ICカードが生成する乱数に擬似乱数を用いることを示す暗号処理細則指定パラメータということになる。 The details of the cryptographic processing detailed rules shown in the items (1) to (7) of FIG. 7A described above are summarized in the table of FIG. 7B. When "SCP03" is specified by the encryption protocol specification parameter in the install command shown in FIG. 6C, the value of the encryption process detailed rule specification parameter (parameter "i") is the encryption process detailed rule shown in each item of FIG. Function as a parameter that determines The parameter “i” is always set in correspondence with a specific encryption protocol, and is written as, for example, “SCP03 i=10h”. Here, h at the end indicates that the value “10” is a hexadecimal number (the same applies hereinafter). "10h" corresponds to the bit string "00010000" (the value of bit b5 is "1"). Therefore, “SCP03 i=10h” corresponds to the item (3) in FIG. 7A, and is a cryptographic process detailed rule designation parameter indicating that a pseudo random number is used for the random number generated by the IC card.
(b) 暗号化プロトコルSCP02についてのパラメータ「i」
図8は、暗号化プロトコルSCP02についてのパラメータ「i」によって定められる暗号処理細則の実例を示す表であり、図9は、各暗号処理細則の具体的な内容を示す表である。図8の表においても、パラメータ「i」は1バイトの値からなるデータであり、b1〜b8は、このパラメータ「i」の各ビット(b1がLSB,b8がMSB)を示している。やはり、各項目の行に「−」が記入されたビットは、当該項目には当該ビットは無関係であることを示す。
(b) Parameter "i" for encryption protocol SCP02
FIG. 8 is a table showing an example of the detailed cryptographic processing rules defined by the parameter “i” for the encryption protocol SCP02, and FIG. 9 is a table showing the specific contents of the respective detailed cryptographic processing rules. Also in the table of FIG. 8, the parameter “i” is data consisting of a 1-byte value, and b1 to b8 indicate each bit (b1 is LSB, b8 is MSB) of this parameter “i”. Again, the bit with "-" written in the line of each item indicates that the bit is irrelevant to the item.
図8の表における項目(1) ,(2) は、パラメータ「i」のビットb1(図において、0もしくは1のビット)が、相互認証処理および暗号通信処理に用いられる暗号鍵の数が、1組か3組かのいずれであるかを示すビットであることを定めている。図3に示す鍵テーブルTの場合、各キーバージョン番号で指定される1行には、キーID「0x01」,「0x02」,「0x03」で指定される3つのセルに各暗号鍵が収容されており、1つのキーバージョン番号を指定することにより、3組の暗号鍵を特定することができる。パラメータ「i」のビットb1のビット値が「1」の場合、これら3組の暗号鍵が相互認証処理および暗号通信処理に用いられる(項目(1) )。一方、パラメータ「i」のビットb1のビット値が「0」の場合、1組の暗号鍵(たとえば、キーID「0x01」のセルに収容された暗号鍵のみ)が相互認証処理および暗号通信処理に用いられる。 Items (1) and (2) in the table of FIG. 8 indicate that the bit b1 (0 or 1 bit in the figure) of the parameter “i” indicates that the number of encryption keys used for the mutual authentication process and the encrypted communication process is It is defined that the bit is one set or three sets. In the case of the key table T shown in FIG. 3, in one row designated by each key version number, each encryption key is stored in three cells designated by the key IDs “0x01”, “0x02”, and “0x03”. By specifying one key version number, three sets of encryption keys can be specified. When the bit value of the bit b1 of the parameter "i" is "1", these three sets of encryption keys are used for the mutual authentication process and the encrypted communication process (item (1)). On the other hand, when the bit value of the bit b1 of the parameter “i” is “0”, a pair of encryption keys (for example, only the encryption key stored in the cell with the key ID “0x01”) is subjected to the mutual authentication process and the encrypted communication process. Used for.
項目(3) ,(4) は、パラメータ「i」のビットb2(図において、0もしくは1のビット)が、外部装置がICカードに対してコマンドを送信する際、送信コマンドを修正せずにチェックコード演算の材料とするか、送信コマンドを修正した上でチェックコード演算の材料とするか、のいずれであるかを示すビットであることを定めている。外部装置は、暗号通信路を介したコマンド送信時に、チェックコードを付与する処理を行うことになるが、パラメータ「i」のビットb2のビット値が「1」の場合、修正せずにチェックコード演算の材料とし、パラメータ「i」のビットb2のビット値が「0」の場合、修正した上でチェックコード演算の材料とすることになる。 Items (3) and (4) indicate that the bit b2 (0 or 1 bit in the figure) of the parameter “i” does not modify the transmission command when the external device transmits the command to the IC card. It is specified that the bit is used as the material for the check code operation or as the material for the check code operation after the transmission command is modified. The external device will perform a process of adding a check code when a command is transmitted via the encrypted communication path. However, if the bit value of the bit b2 of the parameter “i” is “1”, the check code is not corrected. When the bit value of the bit b2 of the parameter "i" is "0" as the material for the calculation, the data is corrected and used as the material for the check code calculation.
具体的には、図6に例示したとおり、各コマンドには、チャネル番号#nが含まれており、チェックコードを作成する際には、このチャネル番号も演算の材料になるが、ビットb2が「1」の場合は、チャネル番号を修正せずにそのまま演算し、ビットb2が「0」の場合は、チェックコードの演算を行うときにのみ、チャネル番号を「#0」に修正して演算することになる。詳細については、GlobalPlatform (登録商標)に定義されているため、ここでは説明は省略する。 Specifically, as illustrated in FIG. 6, each command includes a channel number #n, and when the check code is created, this channel number is also a material for calculation, but the bit b2 is When the bit number is "1", the channel number is not modified and the calculation is performed as it is. When the bit b2 is "0", the channel number is modified to "#0" only when the check code is calculated. Will be done. Since the details are defined in GlobalPlatform (registered trademark), the description is omitted here.
なお、この項目(3) ,(4) によって定められる暗号処理細則は、ICカード側ではなく、外部装置側で実行される処理(送信コマンドのチェックコード演算処理)であるが、チェックコード生成時の演算プロセスは、ICカード側で実行される処理(受信コマンドのチェックコード確認処理)の演算プロセスにも影響があるため、ICカード側にも上記修正の有無を伝達しておく必要がある。パラメータ「i」のビットb2は、この伝達の役割を果たすことになる。 Note that the detailed cryptographic processing rules defined by these items (3) and (4) are the processing executed by the external device side (check code calculation processing of the transmission command), not by the IC card side. Since the calculation process of (1) also affects the calculation process of the process (check code confirmation process of the received command) executed on the IC card side, it is necessary to also notify the IC card side of the above correction. Bit b2 of parameter "i" will play a role in this transfer.
項目(5) ,(6) は、パラメータ「i」のビットb3(図において、0もしくは1のビット)が、暗号通信路開設の準備段階で行われる相互認証処理を、コマンドを用いて明示的に実施するか、コマンドを用いずに暗黙的に実施するか、のいずれであるかを示すビットであることを定めている。パラメータ「i」のビットb3のビット値が「1」の場合、コマンドを用いて明示的に相互認証処理が実施され、パラメータ「i」のビットb3のビット値が「0」の場合、コマンドを用いずに暗黙的に相互認証処理が実施される。
Items (5) and (6) specify that the bit b3 (0 or 1 bit in the figure) of the parameter “i” indicates the mutual authentication process performed at the preparation stage for establishing the encrypted communication path by using a command. It is defined as a bit that indicates whether the bit is to be executed in
具体的には、パラメータ「i」のビットb3のビット値が「1」の場合、相互認証処理は、図5のステップS3,S4に示すように、「INITIALIZE UPDATE コマンド」および「EXTERNAL AUTHENTICATE コマンド」を用いて明示的に実施されることになる。これに対して、パラメータ「i」のビットb3のビット値が「0」の場合、相互認証処理は、このような明示的なコマンドを用いた形式ではなく、暗黙的な方法によって実施される。この暗黙的な方法による相互認証処理手順の詳細については、GlobalPlatform (登録商標)に定義されているため、ここでは説明は省略する。 Specifically, when the bit value of the bit b3 of the parameter "i" is "1", the mutual authentication process includes "INITIALIZE UPDATE command" and "EXTERNAL AUTHENTICATE command" as shown in steps S3 and S4 of FIG. Will be implemented explicitly. On the other hand, when the bit value of the bit b3 of the parameter "i" is "0", the mutual authentication process is performed by an implicit method instead of the format using the explicit command. Since the details of the mutual authentication processing procedure by this implicit method are defined in GlobalPlatform (registered trademark), description thereof is omitted here.
項目(7) ,(8) は、パラメータ「i」のビットb4(図において、0もしくは1のビット)が、最初に生成するチェックコードのICV(Initial Chaining Vector)として、どの値を用いるかを示すビットであることを定めている。パラメータ「i」のビットb4のビット値が「1」の場合、コマンドの送受信を行う対象アプリケーションのアプリケーション名を用いた暗号演算の結果がICVとして使用され、パラメータ「i」のビットb4のビット値が「0」の場合、8バイトの「00h」がICVとして使用される。ICVの役割や生成手順についての詳細については、GlobalPlatform (登録商標)に定義されているため、ここでは説明は省略する。 Items (7) and (8) indicate which value the bit b4 (0 or 1 bit in the figure) of the parameter “i” is used as the ICV (Initial Chaining Vector) of the check code generated first. It is defined as a bit to indicate. When the bit value of the bit b4 of the parameter “i” is “1”, the result of the cryptographic operation using the application name of the target application that transmits and receives the command is used as ICV, and the bit value of the bit b4 of the parameter “i” is used. When is 0, 8-byte “00h” is used as the ICV. The details of the role of ICV and the generation procedure are defined in GlobalPlatform (registered trademark), and thus the description thereof is omitted here.
項目(9) ,(10)は、パラメータ「i」のビットb5(図において、0もしくは1のビット)が、上記ICVを暗号化するか否かを示すビットであることを定めている。パラメータ「i」のビットb5のビット値が「1」の場合、ICVは暗号化して送信され、パラメータ「i」のビットb5のビット値が「0」の場合、ICVは暗号化せずに平文のまま送信される。
The items (9) and (10) define that the bit b5 (
項目(11),(12)は、パラメータ「i」のビットb6(図において、0もしくは1のビット)が、レスポンスデータにチェックコードを付与するか否かを示すビットであることを定めている。パラメータ「i」のビットb6のビット値が「1」の場合、レスポンスデータはチェックコードが付与された状態で返信され、パラメータ「i」のビットb6のビット値が「0」の場合、レスポンスデータはチェックコードが付与されない状態で返信される。 Items (11) and (12) define that the bit b6 (0 or 1 bit in the figure) of the parameter "i" is a bit indicating whether to add a check code to the response data. .. When the bit value of the bit b6 of the parameter "i" is "1", the response data is returned with the check code added, and when the bit value of the bit b6 of the parameter "i" is "0", the response data is returned. Is returned without a check code.
項目(13),(14)は、パラメータ「i」のビットb7(図において、0もしくは1のビット)が、相互認証時に、ICカードが生成する乱数に真正乱数を用いるか、擬似乱数を用いるか、を示すビットであることを定めている。パラメータ「i」のビットb7のビット値が「0」の場合、ICカードは図5のステップ3において真正乱数を用いて乱数Rbを発生し、パラメータ「i」のビットb7のビット値が「1」の場合、ICカードは図5のステップS3において擬似乱数を用いて乱数Rbを発生することになる。前述したとおり、擬似乱数の具体的な発生方法については、GlobalPlatform (登録商標)に定義されているため、ここでは説明は省略する。
Items (13) and (14) indicate that bit b7 (0 or 1 bit in the figure) of the parameter “i” uses a true random number as the random number generated by the IC card at the time of mutual authentication, or uses a pseudo random number. It is a bit indicating whether or not. When the bit value of the bit b7 of the parameter "i" is "0", the IC card generates a random number Rb using a true random number in
項目(15)は、パラメータ「i」のビットb8(X印のビット)が、予約済ビットであることを示している。このビットb8は、暗号処理細則の指定には利用することができない。以下、このビットb8のビット値が「0」に固定されているものとして説明を行う。 Item (15) indicates that the bit b8 (the X-marked bit) of the parameter “i” is a reserved bit. This bit b8 cannot be used for designating the detailed cryptographic processing rule. Hereinafter, the description will be given assuming that the bit value of the bit b8 is fixed to "0".
以上説明した図8の各項目(1) 〜(15)に示す暗号処理細則の内容は、図9の表にまとめてある。図6(c) に示すインストールコマンドにおいて、暗号化プロトコル指定パラメータによって「SCP02」を指定した場合、暗号処理細則指定パラメータ(パラメータ「i」)の値は、図8の各項目に示す暗号処理細則を定めるパラメータとして機能する。 The contents of the detailed cryptographic processing rules shown in the items (1) to (15) of FIG. 8 described above are summarized in the table of FIG. In the install command shown in FIG. 6C, when "SCP02" is specified by the encryption protocol specification parameter, the value of the encryption process detailed rule specification parameter (parameter "i") is the encryption process detailed rule shown in each item of FIG. Function as a parameter that determines
(c) その他の暗号化プロトコルについてのパラメータ「i」
以上、暗号化プロトコルSCP03およびSCP02についてのパラメータ「i」による暗号処理細則の内容を例示したが、パラメータ「i」で指定される暗号処理細則の内容は、個々の暗号化プロトコルごとに異なっている。
(c) Parameter "i" for other encryption protocols
Although the content of the detailed cryptographic processing rule by the parameter “i” for the encryption protocols SCP03 and SCP02 has been illustrated above, the content of the detailed cryptographic processing rule specified by the parameter “i” is different for each encryption protocol. ..
たとえば、図10は、暗号化プロトコルSCP81についてのパラメータ「i」によって定められる暗号処理細則の実例を示す表であるが、その内容は、これまで述べてきた暗号化プロトコルSCP03,SCP02の内容とはかなり性質が異なっている。すなわち、図10に示す実例の場合、パラメータ「i」は、通信に用いるTLS(Transport Layer Security)のプロトコルを指定するために使用されている。 For example, FIG. 10 is a table showing an example of the detailed cryptographic processing rules defined by the parameter “i” for the cryptographic protocol SCP81. The content thereof is the same as the content of the cryptographic protocols SCP03 and SCP02 described so far. The nature is quite different. That is, in the example shown in FIG. 10, the parameter “i” is used to specify the TLS (Transport Layer Security) protocol used for communication.
具体的には、図10の表における項目(1) 〜(3) は、パラメータ「i」のビットb1〜b3が、暗号化プロトコルSCP81に基づく暗号通信に用いるTLSのどのバージョンを用いるかを示すビットであることを定めている。ここでも、各項目の行に「−」が記入されたビットは、当該項目には当該ビットは無関係であることを示している。但し、ビットb1〜b3は、いずれか1つのみが値「1」をとるように設定されており、ビットb1が「1」の場合は「TLS v1.0」が用いられ、ビットb2が「1」の場合は「TLS v1.1」が用いられ、ビットb3が「1」の場合は「TLS v1.2」が用いられることを示している。 Specifically, items (1) to (3) in the table of FIG. 10 indicate which version of the TLS used for the encrypted communication based on the encryption protocol SCP81 is used for the bits b1 to b3 of the parameter “i”. It defines that it is a bit. Here again, the bit with "-" written in the line of each item indicates that the bit is irrelevant to the item. However, only one of the bits b1 to b3 is set to take the value "1". When the bit b1 is "1", "TLS v1.0" is used and the bit b2 is "1". It indicates that "TLS v1.1" is used in the case of "1" and "TLS v1.2" is used in the case of bit b3 being "1".
また、項目(4) は、パラメータ「i」のビットb4〜b7(X印のビット)が、RFU(Reserved for Future Use:将来のための予約ビット)であることを示しており、現時点では、いずれもビット値を「0」に設定することが決められている。一方、項目(5) は、パラメータ「i」のビットb8(X印のビット)が、予約済ビットであることを示している。このビットb8は、暗号処理細則の指定には利用することができない。 Item (4) indicates that bits b4 to b7 (bits marked with X) of the parameter "i" are RFU (Reserved for Future Use), and at present, In both cases, it is decided to set the bit value to "0". On the other hand, the item (5) indicates that the bit b8 (the X-marked bit) of the parameter “i” is a reserved bit. This bit b8 cannot be used for designating the detailed cryptographic processing rule.
なお、パラメータ「i」による暗号処理細則の指定方法を全く採用していない暗号化プロトコルも存在する。たとえば、暗号化プロトコルSCP80については、パラメータ「i」は存在しないため、便宜上、パラメータ「i」を収容するデータ領域には、「ALL RFU (set to 0) 」として「00h」を収容している。 Note that there is an encryption protocol that does not adopt the method for specifying the detailed encryption processing rule by the parameter "i". For example, for the encryption protocol SCP80, since the parameter "i" does not exist, "00h" is contained as "ALL RFU (set to 0)" in the data area containing the parameter "i" for convenience. ..
<<< §4. 本発明の基本概念 >>>
§2で述べたとおり、従来の一般的なICカードでは、外部装置との間の暗号通信処理を担う管理プログラムSDをインストールする際に、特定の暗号化プロトロルを指定するとともに、当該特定の暗号化プロトロルに関する特定の暗号処理細則を指定する作業が行われることになる。したがって、管理プログラムSDのインストールが完了した時点で、当該管理プログラムSDが暗号通信路を開設する際に用いられる暗号化プロトコルや、当該暗号化プロトロルを用いた通信処理の細かな手順を定めた暗号処理細則は定まる。
<<<<§4. Basic concept of the present invention >>>
As described in §2, in the conventional general IC card, a specific encryption protocol is specified and a specific encryption protocol is specified when installing the management program SD that handles the encrypted communication processing with an external device. The task will be to specify the specific cryptographic rules for the encrypted protocol. Therefore, when the installation of the management program SD is completed, the encryption protocol used when the management program SD opens the encrypted communication path and the encryption procedure defining the detailed procedure of the communication process using the encrypted protocol are defined. The processing rules are fixed.
こうして、管理プログラムSDのインストールが完了してしまうと、その後、当該管理プログラムSDが暗号通信路の開設処理を実行する際に、その都度、任意の暗号処理細則を指定することは困難である。これは、図6(d) に示すように、GlobalPlatform (登録商標)に準拠した暗号通信路開設コマンド「INITIALIZE UPDATE」に付加するパラメータには、キーバージョン番号と乱数を含める仕様が定められているものの、パラメータ「i」のような暗号処理細則を指定する情報を含める仕様にはなっていないためである。別言すれば、上記仕様に準拠した暗号通信路開設コマンド「INITIALIZE UPDATE」を用いる限り、当該暗号通信路開設コマンドには、暗号処理細則を直接指定するパラメータを付加することができない。 When the installation of the management program SD is completed in this way, it is difficult to specify an arbitrary cryptographic processing rule each time the management program SD subsequently executes the encryption communication path opening processing. As shown in FIG. 6(d), this is a specification that includes a key version number and a random number in the parameters added to the GlobalPlatform (registered trademark) compliant encrypted communication path opening command "INITIALIZE UPDATE". However, this is because the specification does not include the information such as the parameter “i” that specifies the detailed cryptographic processing rule. In other words, as long as the cryptographic communication channel opening command "INITIALIZE UPDATE" conforming to the above specifications is used, it is not possible to add a parameter that directly specifies the cryptographic processing rules to the cryptographic communication channel opening command.
その一方で、実用上は、ICカードに対して暗号通信路開設コマンド「INITIALIZE UPDATE」を与えて暗号通信路の開設を行う際に、その都度、暗号処理細則を指定できるようにすることが望まれている。これは、ICカードがスマートフォンなどの外部装置と通信する場合、外部装置内の各アプリケーションプログラムに応じて、その都度、任意の暗号処理細則を設定して暗号通信を行うことができる方が好ましいからである。 On the other hand, practically, it is desirable to be able to specify the detailed cryptographic processing rules each time when the cryptographic communication channel opening command "INITIALIZE UPDATE" is given to the IC card to open the cryptographic communication channel. It is rare. This is because, when the IC card communicates with an external device such as a smartphone, it is preferable that an arbitrary cryptographic processing rule can be set and encrypted communication can be performed each time according to each application program in the external device. Is.
たとえば、オンラインバンキング用のアプリであれば、セキュリティを重視する必要があるため、相互認証処理には真性乱数を用い、レスポンスデータを暗号化して受信するとともに、レスポンスデータにチェックコードを付与する運用が望まれるであろう。これに対して、時間潰しにプレイするゲームアプリの場合、セキュリティは重要ではないが、より簡便な処理が好ましいので、相互認証処理には擬似乱数を用い、レスポンスデータは暗号化せず、チェックコードなしで受信する運用が望まれるであろう。 For example, in the case of an application for online banking, since it is necessary to attach importance to security, it is necessary to use a true random number for mutual authentication processing, encrypt response data and receive it, and add a check code to the response data. Would be desired. On the other hand, in the case of a game application that plays in a time consuming manner, security is not important, but simpler processing is preferable, so pseudo-random numbers are used for mutual authentication processing, response data is not encrypted, and check code Operation without receiving would be desired.
本発明は、このような外部装置に組み込まれるアプリケーションプログラムの多様化に伴い、暗号通信路を開設するたびに、その場に適した暗号処理細則の設定を可能にする具体的な方法を提供することを目的とするものである。 With the diversification of application programs incorporated in such external devices, the present invention provides a specific method that enables setting of a cryptographic processing rule suitable for the occasion each time a cryptographic communication path is opened. It is intended for that.
§2で述べたとおり、従来の一般的なICカードでは、インストールコマンド「INSTALL for install」に、暗号処理細則指定パラメータ(パラメータ「i」)を付加し、インストール時に暗号処理細則を指定するという方法が採られていた。そして、§3では、このパラメータ「i」によって指定される暗号処理細則の実例をいくつか示した。したがって、このパラメータ「i」の値を、何らかの方法で、暗号通信路開設コマンド「INITIALIZE UPDATE」を利用してICカードに伝達することができれば、暗号通信路を開設するたびに、任意の暗号処理細則を設定することが可能になる。 As described in §2, in the conventional general IC card, the encryption command detailed rule specifying parameter (parameter "i") is added to the install command "INSTALL for install" to specify the cryptographic process detailed rules at the time of installation. Was taken. Then, in §3, some examples of the cryptographic processing rules specified by the parameter "i" are shown. Therefore, if the value of this parameter "i" can be transmitted to the IC card by using the encrypted communication path opening command "INITIALIZE UPDATE" by any method, an arbitrary encryption process is performed every time the encrypted communication path is opened. It becomes possible to set detailed rules.
前述したとおり、パラメータ「i」は1バイト、すなわち、8ビットのデータによって構成される。ただ、GlobalPlatform (登録商標)の仕様に定められていない以上、当該仕様に準拠したICカードに対しては、たかが1バイトのデータであっても、暗号通信路開設コマンド「INITIALIZE UPDATE」にパラメータとして付加して伝達することはできない。暗号通信路開設コマンド「INITIALIZE UPDATE」に付加可能なパラメータは、仕様上、図6(d) に示すとおり、「キーバージョン番号」と「乱数」だけである。 As described above, the parameter “i” is composed of 1-byte, that is, 8-bit data. However, since it is not specified in the GlobalPlatform (registered trademark) specifications, even if the data is only 1 byte for an IC card that complies with the specifications, it will be used as a parameter in the encrypted communication path opening command "INITIALIZE UPDATE". It cannot be added and transmitted. According to the specifications, the only parameters that can be added to the encrypted communication path opening command "INITIALIZE UPDATE" are "key version number" and "random number".
そこで、本願発明者は、「キーバージョン番号」を利用してパラメータ「i」の情報をICカードへ伝達できないか、という着想の下に、種々の方法を模索することにした。ただ、「キーバージョン番号」は、図3の鍵テーブルTに示されているとおり、「0x01〜0x7F」の範囲内のアドレス空間を示すデータであり、1バイトのデータによって構成すれば十分である。したがって、この「キーバージョン番号」に、更に1バイトのパラメータ「i」の情報を組み込むことはできない。 Therefore, the inventor of the present application decided to seek various methods based on the idea that the information of the parameter “i” could be transmitted to the IC card by using the “key version number”. However, as shown in the key table T of FIG. 3, the “key version number” is data indicating an address space within the range of “0x01 to 0x7F”, and it is sufficient to be configured by 1-byte data. .. Therefore, it is not possible to incorporate 1-byte parameter "i" information into this "key version number".
ただ、パラメータ「i」は1バイト、すなわち、0〜255まで256通りの値をもった情報であるものの、その一部のビットは予約ビットとなっており、実際には使用されておらず、また、暗号通信路開設時には、必ずしも、すべての暗号処理細則を任意に設定する必要もない。したがって、ICカード側に伝達する暗号処理細則の情報量は、1バイトである必要はない。 However, although the parameter "i" is information having 1 byte, that is, 256 kinds of values from 0 to 255, some of the bits are reserved bits and are not actually used, Further, it is not always necessary to arbitrarily set all the cryptographic processing rules when the cryptographic communication path is opened. Therefore, the amount of information of the detailed cryptographic processing transmitted to the IC card side does not need to be 1 byte.
たとえば、図11に示す表は、図7に示すSCP03についての暗号処理細則指定パラメータ(パラメータ「i」)を用いて、具体的な暗号処理細則を定めた表である。この表の「「i」の値」の欄には、パラメータ「i」の値として、「32」,「48」,「96」,「112」(いずれも10進表示)の4通りの例が示されている。また、「パラメータ「i」の各ビット」の欄には、これら4通りの値に対応する各ビットb1〜b8の構成(暗号処理細則指定パラメータ)が示されており、「暗号処理細則の内容」の欄には、これら4通りの値に対応して指定される暗号処理細則が示されている。各ビットの値を図7(a) ,(b) の表と対比すれば、このような結果が得られることは容易に理解できよう。 For example, the table shown in FIG. 11 is a table in which specific cryptographic processing rules are defined by using the cryptographic processing detailed rule specifying parameter (parameter “i”) for SCP03 shown in FIG. 7. In the "Value of "i"" column of this table, there are four examples of the value of the parameter "i": "32", "48", "96", "112" (each is displayed in decimal). It is shown. In addition, the configuration of each bit b1 to b8 (encryption processing detailed rule designating parameter) corresponding to these four values is shown in the “each bit of parameter “i”” column, In the column of “”, the detailed cryptographic processing rules designated corresponding to these four values are shown. It can be easily understood that such a result can be obtained by comparing the value of each bit with the tables of FIGS. 7(a) and 7(b).
具体的には、たとえば、「i」の値が「32」の場合は、「相互認証処理に用いる乱数として真性乱数を用い、レスポンスデータは暗号化しないがチェックコードは付与する」という暗号処理細則の内容を示すことになる。実際、暗号通信路開設時に、その都度、この図11に例示した4通りの暗号処理細則の内容のいずれかを選択して設定できるようにすれば、実用上はかなり自由度の高い運用が可能になる。しかも、この4通りの暗号処理細則の内容のいずれか1つを選択する旨の情報は、たかだか2ビットで表現することが可能である。 Specifically, for example, when the value of “i” is “32”, the encryption processing detailed rule is that “a true random number is used as a random number used for mutual authentication processing, response data is not encrypted but a check code is added”. Will show the contents of. In fact, if each time the cryptographic communication channel is opened, it is possible to select and set any one of the four types of cryptographic processing detailed rules illustrated in FIG. 11, it is possible to operate with a high degree of freedom in practical use. become. Moreover, the information indicating that any one of the contents of the four types of cryptographic processing rules can be selected can be represented by at most 2 bits.
本願発明者は、更に、数ビット程度の情報であれば、「キーバージョン番号」に対して格納ゾーンなるものを設定することにより、「キーバージョン番号」を利用して当該情報を間接的にICカードに伝達できるのではないか、との着想を得た。図3に示す鍵テーブルTにおける「キーバージョン番号」は、「0x01〜0x7F」の範囲内のアドレス空間を示すデータであるが、たとえば、この鍵テーブルT上の「キーバージョン番号」のアドレス空間において、「0x01〜0x1F」の範囲を格納ゾーンZ1、「0x20〜0x3F」の範囲を格納ゾーンZ2、「0x40〜0x5F」の範囲を格納ゾーンZ3、「0x60〜0x7F」の範囲を格納ゾーンZ4と定義する。 The inventor of the present application further indirectly sets the information by using the “key version number” by setting a storage zone for the “key version number” if the information is about several bits. I got the idea that it could be transmitted to the card. The “key version number” in the key table T shown in FIG. 3 is data indicating an address space within the range of “0x01 to 0x7F”. For example, in the address space of the “key version number” on the key table T , The range of "0x01-0x1F" is defined as storage zone Z1, the range of "0x20-0x3F" is defined as storage zone Z2, the range of "0x40-0x5F" is defined as storage zone Z3, and the range of "0x60-0x7F" is defined as storage zone Z4. To do.
一方、図11に示す4通りの暗号処理細則の内容を、上記各格納ゾーンZ1〜Z4に対応づける。具体的には、たとえば、「i」の値「32」を格納ゾーンZ1に対応づけ、「i」の値「48」を格納ゾーンZ2に対応づけ、「i」の値「96」を格納ゾーンZ3に対応づけ、「i」の値「112」を格納ゾーンZ4に対応づければよい。そうすれば、外部装置からICカードに対して、暗号通信路開設コマンド「INITIALIZE UPDATE」を送信する際に、パラメータとして付加した「キーバージョン番号」によって、4通りの暗号処理細則のうちから1つを選択する旨の情報をICカードに間接的に伝達することが可能になる。 On the other hand, the contents of the four types of detailed encryption processing rules shown in FIG. 11 are associated with each of the storage zones Z1 to Z4. Specifically, for example, the value "32" of "i" is associated with the storage zone Z1, the value "48" of "i" is associated with the storage zone Z2, and the value "96" of "i" is associated with the storage zone. The value "112" of "i" may be associated with the storage zone Z4 in association with Z3. By doing so, when sending the encryption communication path opening command "INITIALIZE UPDATE" from the external device to the IC card, one of the four rules of encryption processing will be specified by the "key version number" added as a parameter. It becomes possible to indirectly transmit information to the effect that the selection is made to the IC card.
具体的には、たとえば、暗号通信路開設コマンド「INITIALIZE UPDATE」に、「0x20」なるキーバージョン番号を付加して送信すれば、これを受信したICカードは、図3に示す鍵テーブルTから指定されたキーバージョン番号「0x20」に対応する暗号鍵KeyG,KeyH,KeyIを読み出して暗号通信路開設処理を行うことになるが、このとき、キーバージョン番号「0x20」が格納ゾーンZ2に所属することがわかるので、当該ゾーンZ2に対応づけられた「i」の値「48」が指定されたことを認識することができる。したがって、ICカードは、「相互認証処理に用いる乱数として擬似乱数を用い、レスポンスデータは暗号化しないがチェックコードは付与する」という暗号処理細則に従って、暗号通信処理を行うことになる。 Specifically, for example, if a key version number of "0x20" is added to the encrypted communication path opening command "INITIALIZE UPDATE" and transmitted, the IC card that receives this is designated from the key table T shown in FIG. The encryption key KeyG, KeyH, and KeyI corresponding to the generated key version number "0x20" is read out to perform the encryption communication path opening process. At this time, the key version number "0x20" belongs to the storage zone Z2. Therefore, it is possible to recognize that the value "48" of "i" associated with the zone Z2 is designated. Therefore, the IC card performs the cryptographic communication process in accordance with the cryptographic process detailed rule that "the pseudo random number is used as the random number used for the mutual authentication process and the response data is not encrypted but the check code is added".
もちろん、外部装置側のアプリケーションプログラムが、「相互認証処理に用いる乱数として真性乱数を用い、レスポンスデータは暗号化しないがチェックコードは付与する」という暗号処理細則に従った暗号通信処理を望むのであれば、暗号通信路開設コマンド「INITIALIZE UPDATE」に、たとえば「0x01」なるキーバージョン番号(格納ゾーンZ1に所属するキーバージョン番号)を付加して送信すればよいし、「相互認証処理に用いる乱数として擬似乱数を用い、レスポンスデータは暗号化してチェックコードも付与する」という暗号処理細則に従った暗号通信処理を望むのであれば、暗号通信路開設コマンド「INITIALIZE UPDATE」に、たとえば「0x7E」なるキーバージョン番号(格納ゾーンZ4に所属するキーバージョン番号)を付加して送信すればよい。 Of course, the application program on the external device side wants cryptographic communication processing in accordance with the cryptographic processing rule that "a true random number is used as a random number used for mutual authentication processing, response data is not encrypted but a check code is added". For example, a key version number such as "0x01" (key version number belonging to the storage zone Z1) may be added to the encrypted communication path opening command "INITIALIZE UPDATE" and transmitted. If you want encrypted communication processing in accordance with the detailed encryption processing rule that "uses pseudo-random numbers and encrypts the response data and also adds a check code", the encrypted communication path opening command "INITIALIZE UPDATE", for example, the key "0x7E" The version number (key version number belonging to the storage zone Z4) may be added and transmitted.
以上が本発明の基本概念である。この基本概念を導入すれば、2組の情報処理装置の間に暗号通信路を開設する際に、その都度、暗号通信路開設コマンドに含ませた暗号鍵の格納場所を示す格納場所指定情報によって、一方の装置から他方の装置に対して、暗号通信処理の細かな手順を定めた暗号処理細則を間接的に伝達することができるようになる。このため、暗号通信路を開設するたびに、暗号処理細則の設定が可能になる。以下、§5において、上記基本概念に基づいた本発明の基本的実施形態を説明する。 The above is the basic concept of the present invention. If this basic concept is introduced, each time a cryptographic communication path is established between two sets of information processing devices, the storage location designation information indicating the storage location of the cryptographic key included in the cryptographic communication path establishment command is used. It becomes possible to indirectly transmit the cryptographic processing detailed rule that defines the detailed procedure of the cryptographic communication processing from one device to the other device. Therefore, it is possible to set the cryptographic processing detailed rule every time the cryptographic communication path is opened. Hereinafter, in §5, a basic embodiment of the present invention based on the above basic concept will be described.
<<< §5. 本発明の基本的実施形態 >>>
図12は、本発明の基本的実施形態に係る情報処理システムの構成を示すブロック図である。この図12に示す情報処理システムは、第1の情報処理装置100と第2の情報処理装置200とを備え、両者間で所定の暗号化プロトコルに基づいた暗号通信が可能な情報処理システムである。ここでは、図2に示す例と同様に、第1の情報処理装置100として、SIMカード11に管理プログラムSDを組み込んだ装置を用い、第2の情報処理装置200として、当該SIMカード11を装着する相手となるスマートフォン10に所定のアプリケーションプログラム(アプリAP3)を組み込んだ装置を用いた例について、以下の説明を行うことにする。
<<<<§5. Basic embodiment of the present invention >>>
FIG. 12 is a block diagram showing the configuration of the information processing system according to the basic embodiment of the present invention. The information processing system shown in FIG. 12 includes the first
図示のとおり、第1の情報処理装置100には、暗号通信路を開設する処理を行う第1の暗号通信処理部110と、暗号鍵を格納する第1の暗号鍵格納部120と、暗号処理細則を格納する暗号処理細則格納部130と、が設けられており、第1の暗号通信処理部110は、第1の暗号鍵格納部120に格納されている暗号鍵を用いて、暗号処理細則格納部130に格納されている暗号処理細則に従って、暗号通信路を開設する処理を行う。
As shown in the figure, the first
ここに示す実施例の場合、第1の暗号通信処理部110は、実際には、SIMカード11にインストールされた管理プログラムSDの機能として実現されることになり、第1の暗号鍵格納部120および暗号処理細則格納部130は、この管理プログラムSDによって管理されるSIMカード11に内蔵されたメモリの一部分の領域として実現されることになる。
In the case of the embodiment shown here, the first cryptographic
一方、第2の情報処理装置200には、第1の暗号通信処理部110が開設した暗号通信路を利用して暗号通信を行う第2の暗号通信処理部210と、暗号鍵を格納する第2の暗号鍵格納部220と、第1の暗号通信処理部110に対して暗号通信路の開設を指示する暗号通信路開設指示部230とが設けられている。
On the other hand, in the second
ここに示す実施例の場合、第2の暗号通信処理部210および暗号通信路開設指示部230は、実際には、スマートフォン10にインストールされたアプリケーションプログラム(アプリAP3)の機能として実現されることになり、第2の暗号鍵格納部220は、スマートフォン10に内蔵されたメモリの一部分の領域として実現されることになる。
In the case of the embodiment shown here, the second encrypted
このように、実際には、本発明に係る第1の情報処理装置100は、ICカードもしくはその他の情報処理装置を構成するコンピュータに、管理プログラムSD等の専用プログラムを組み込むことによって実現でき、本発明に係る第2の情報処理装置200は、スマートフォンもしくはその他の情報処理装置を構成するコンピュータに、所定のプログラムを組み込むことによって実現できる。
As described above, in practice, the first
この図12に示す情報処理システムでは、後述するように、暗号通信路開設指示部230から第1の暗号通信処理部110に対して、暗号通信路開設コマンドCMDが送信されると、第1の暗号通信処理部110は、当該コマンドに基づき、第1の暗号鍵格納部120に格納されている所定の暗号鍵を用いて、暗号処理細則格納部130に格納されている所定の暗号処理細則に従って、暗号通信路を開設する処理を行う。その後、第2の暗号通信処理部210は、第2の暗号鍵格納部220に格納されている暗号鍵を用いて、当該暗号通信路を介した暗号通信を行うことになる。
In the information processing system shown in FIG. 12, when the encrypted communication path opening command CMD is transmitted from the encrypted communication path opening
続いて、上記各構成要素の機能について、更に詳しい説明を行う。まず、第1の暗号通信処理部110は、所定の暗号化プロトコルPに基づき、当該暗号化プロトコルPによる暗号通信処理の細かな手順を定めた所定の暗号処理細則に従って、暗号通信を行うための暗号通信路を開設し、開設された暗号通信路を介して第2の情報処理装置200との間で暗号通信を行う。ここで、暗号化プロトコルPは、§2で述べたとおり、管理プログラムSDをインストールする際に指定される。
Next, the function of each of the above components will be described in more detail. First, the first cryptographic
第1の暗号鍵格納部120は、鍵テーブルTkを保持する構成要素である。この鍵テーブルTkには、複数の格納場所が用意されており、個々の格納場所には、それぞれ暗号化プロトコルPに用いられる暗号鍵が格納されている。図12には、説明の便宜上、鍵テーブルTk内に4つの格納場所L11〜L14が用意され、各格納場所にそれぞれ暗号鍵Keys11〜Keys14が格納されている状態が示されている。
The first encryption
暗号処理細則格納部130は、上記鍵テーブルTkについて設定された複数の格納ゾーンについて、個々の格納ゾーンと個々の暗号処理細則との対応関係を示すゾーンテーブルTzを保持する構成要素である。図示の例の場合、鍵テーブルTk上には2組の格納ゾーンZ1,Z2が設定されており、各格納場所L11〜L14は、いずれかの格納ゾーンに所属する。そして、ゾーンテーブルTzには、個々の格納ゾーンZ1,Z2に対して、それぞれ暗号処理細則C1,C2が対応づけられている。
The cryptographic process detailed
なお、図12では、説明の便宜上、鍵テーブルTk上の4つの格納場所L11〜L14に、それぞれ1つの暗号鍵が格納されている例が示されているが、GlobalPlatform (登録商標)の仕様に基づく鍵テーブルTは、図3に示すように、「キーバージョン番号」を縦にとり、「キーID」を横にとったマトリックス状のセルのそれぞれに「個別の鍵」が格納されている。この場合、同じ「キーバージョン番号」をもつ1行のセル群が、1つの格納場所を構成することになる。したがって、図12に示す鍵テーブルTkとして、図3に示す鍵テーブルTを採用した場合、4つの格納場所L11〜L14は、それぞれが、図3に示す鍵テーブルTにおける1行のセル群に対応することになり、1つの格納場所には、3組の「個別の鍵」が格納されていることになる。 Note that FIG. 12 illustrates an example in which one encryption key is stored in each of the four storage locations L11 to L14 on the key table Tk for convenience of description, but the specifications of GlobalPlatform (registered trademark) are not included. In the base key table T, as shown in FIG. 3, the "individual key" is stored in each of the matrix cells in which the "key version number" is set vertically and the "key ID" is set horizontally. In this case, one row of cells having the same “key version number” constitutes one storage location. Therefore, when the key table T shown in FIG. 3 is adopted as the key table Tk shown in FIG. 12, each of the four storage locations L11 to L14 corresponds to one row of cell groups in the key table T shown in FIG. This means that three sets of "individual keys" are stored in one storage location.
このように、図12に示す鍵テーブルTkに格納されている暗号鍵Keys11〜Keys14は、それぞれが「個別の鍵」であってもよいが、図3に示す鍵テーブルTを採用した場合は、それぞれが「複数組の鍵からなる鍵群」であってもかまわない。具体的には、たとえば、図12に示す格納場所L11が、図3に示す鍵テーブルTの1行目(キーバージョン番号:0x01の行)に対応する場合、図12に示す「Keys11」は、図3に示す3組の個別の鍵「KeyA,KeyB,KeyC」に対応することになる。暗号鍵Keys11〜Keys14を「Keys」と複数形で表現しているのは、このような場合を想定したものである。
As described above, each of the encryption keys Keys11 to Keys14 stored in the key table Tk shown in FIG. 12 may be an “individual key”, but when the key table T shown in FIG. 3 is adopted, Each may be a “key group consisting of multiple sets of keys”. Specifically, for example, when the storage location L11 shown in FIG. 12 corresponds to the first row (row of key version number: 0x01) of the key table T shown in FIG. 3, “Keys11” shown in FIG. This corresponds to the three sets of individual keys “KeyA, KeyB, KeyC” shown in FIG. Such a case is assumed that the
なお、本願では便宜上、図3の「KeyA」のような「個別の鍵」も、図3の「KeyA,KeyB,KeyC」のような「複数組の鍵からなる鍵群」も、特に混同のない限り、単に「暗号鍵」と呼ぶことにする。 In the present application, for the sake of convenience, “individual keys” such as “KeyA” in FIG. 3 and “key groups consisting of a plurality of keys” such as “KeyA, KeyB, KeyC” in FIG. 3 are particularly confused. Unless otherwise noted, we will simply call it "encryption key".
続いて、第2の情報処理装置200の構成要素について説明する。まず、第2の暗号通信処理部210は、暗号化プロトコルP(第1の暗号通信処理部110が利用する暗号化プロトコルと同じもの)に基づく暗号通信を行う機能を有し、第1の暗号通信処理部110によって開設された暗号通信路を介して、第1の情報処理装置100との間で暗号通信を行う構成要素である。図には、両者間に暗号通信路が開設された状態が示されている。
Subsequently, components of the second
第2の暗号鍵格納部220は、暗号化プロトコルPに用いられる暗号鍵を格納する構成要素である。第1の暗号通信処理部110と第2の暗号通信処理部210との間で暗号通信を行うためには、両者が同じ暗号化プロトコルPを用い、同じ暗号鍵を利用した暗号処理が必要になる。したがって、第2の暗号鍵格納部220には、少なくとも、第1の暗号鍵格納部120内の鍵テーブルTkに格納されている暗号鍵のいずれかと同一の特定の暗号鍵が格納されており、暗号通信を行う際には、両者で同一の暗号鍵を利用した暗号処理が実行されることになる。図示の例では、第2の暗号鍵格納部220に、特定の暗号鍵Keys13が格納されている例が示されている。この特定の暗号鍵Keys13は、第1の暗号鍵格納部120に保持されている鍵テーブルTkの格納場所L13に格納されている暗号鍵と同じものである。
The second encryption
暗号通信路開設指示部230は、第1の情報処理装置100に対して、暗号通信を行うための暗号通信路の開設を指示する暗号通信路開設コマンドCMDを与える構成要素である。この暗号通信路開設コマンドCMDには、第2の暗号鍵格納部220に格納されている暗号鍵に対応する特定の暗号鍵についての鍵テーブルTk内の格納場所を示す格納場所指定情報が含まれている。図示の例の場合、第2の暗号鍵格納部220に格納されている暗号鍵はKeys13であるので、これに対応する特定の暗号鍵Keys13が格納されている鍵テーブルTk内の格納場所L13を示す格納場所指定情報が、暗号通信路開設コマンドCMDの一部として送信される。
The encrypted communication path opening
この暗号通信路開設コマンドCMDを受信した第1の暗号通信処理部110は、次のような方法で暗号通信路の開設処理を行う。まず、暗号通信路開設コマンドCMDに含まれている格納場所指定情報によって指定された指定格納場所L13を認識し、鍵テーブルTkの指定格納場所L13に格納されている暗号鍵Keys13を指定暗号鍵として読み出す。また、指定格納場所L13が所属する格納ゾーンZ2を認識し、ゾーンテーブルTzを参照して指定格納場所L13が所属する格納ゾーンZ2に対応づけられている暗号処理細則C2を指定暗号処理細則として認識する。そして、読み出した指定暗号鍵Keys13を用いて、認識した指定暗号処理細則C2に従った手順を実行することにより、暗号通信を行うための暗号通信路を開設する。
The first encrypted
なお、GlobalPlatform (登録商標)の仕様では、図6(c) に示すとおり、管理プログラムSDをインストールする際のインストールコマンドに付加されているパラメータに暗号処理細則指定パラメータ「i」が含まれており、当該パラメータ「i」は、インストール時のデフォルトの暗号処理細則として、管理プログラムSDの暗号処理ルーチンに組み込まれている。本発明では、上述したとおり、暗号通信路開設コマンドCMDを受信するたびに、新たな暗号処理細則(パラメータ「i」)が指定されるので、上記デフォルトの暗号処理細則に優先して、新たに指定された暗号処理細則が適用されることになる。 According to the GlobalPlatform (registered trademark) specifications, as shown in FIG. 6C, the parameter added to the installation command when the management program SD is installed includes the cryptographic process detailed specification parameter “i”. The parameter “i” is incorporated in the encryption processing routine of the management program SD as a default encryption processing detailed rule at the time of installation. According to the present invention, as described above, a new cryptographic processing rule (parameter “i”) is designated every time when the cryptographic communication channel opening command CMD is received, so that the default cryptographic processing rule is newly overridden. The specified cryptographic processing rules will be applied.
このような構成をもつ情報処理システムによれば、2組の情報処理装置100,200の間に暗号通信路を開設する際に、その都度、暗号通信路開設コマンドCMDに含ませた暗号鍵の格納場所を示す格納場所指定情報によって、第2の情報処理装置200から第1の情報処理装置100に対して、特定の暗号処理細則を指定する情報を伝達することができる。このため、暗号通信路を開設するたびに、暗号処理細則の設定が可能になる。
According to the information processing system having such a configuration, each time the encrypted communication path is opened between the two sets of
たとえば、図12に示す例の場合、スマートフォン10内のアプリAP3は、特定の暗号鍵Keys13を用いて、SIMカード11内の管理プログラムSDに対して暗号通信路の開設を指示することになるので、上述したとおり、指定暗号処理細則C2に従った暗号処理の手順が実行されることになる。これに対して、スマートフォン10内に別なアプリAP4(図示されていない)が組み込まれており、この別なアプリAP4が特定の暗号鍵Keys12を用いて、SIMカード11内の管理プログラムSDに対して暗号通信路の開設を指示する場合、暗号通信路開設コマンドCMDによって指定される格納場所はL12になるので、格納ゾーンZ1に対応する暗号処理細則C1に従った暗号処理の手順が実行されることになる。
For example, in the case of the example shown in FIG. 12, the application AP3 in the
このように、同じスマートフォン10が同じSIMカード11を相手に通信する場合であっても、アプリAP3が通信を行う場合は暗号処理細則C2に従った暗号処理の手順が実行され、アプリAP4が通信を行う場合は暗号処理細則C1に従った暗号処理の手順が実行されることになり、アプリケーションプログラムに応じて、異なる暗号処理細則を利用した暗号通信が可能になる。同様に、第2の情報処理装置200として、全く別なスマートフォン10′を用いた場合も、同じ手法によって、異なる暗号処理細則を利用した暗号通信が可能になる。
Thus, even when the
もちろん、鍵テーブルTkに格納される複数の暗号鍵には、同一のものが含まれていてもかまわない。たとえば、図12に示す例において、暗号鍵Keys12と暗号鍵Keys13とが、全く同じ暗号鍵であった場合を考えてみよう。この場合、暗号通信路開設コマンドCMDによって暗号鍵Keys12を指定したときと、暗号鍵Keys13を指定したときとを比べると、いずれも同一の暗号化プロトコルPに基づき、同一の暗号鍵を用いた暗号通信路が開設される点に変わりはないが、前者では、暗号処理細則C1に従った暗号処理の手順が実行され、後者では、暗号処理細則C2に従った暗号処理の手順が実行されることになる。したがって、この場合、暗号鍵Keys12の指定と暗号鍵Keys13の指定との差は、暗号処理細則C1を適用するか、暗号処理細則C2を適用するかの違いということになる。
Of course, the plurality of encryption keys stored in the key table Tk may include the same one. For example, consider the case where the encryption
<<< §6. 本発明のより具体的な実施形態 >>>
既に述べたとおり、GlobalPlatform (登録商標)の仕様では、図3に示すような鍵テーブルTが用いられる。そこで、ここでは、当該仕様に応じた鍵テーブルTkと§3で説明したパラメータ「i」を利用した本発明のより具体的な実施形態を説明する。
<<<<§6. More Specific Embodiments of the Present Invention >>>
As described above, the GlobalPlatform (registered trademark) specification uses a key table T as shown in FIG. Therefore, here, a more specific embodiment of the present invention using the key table Tk according to the specification and the parameter “i” described in §3 will be described.
図13は、図12に示す情報処理システムに用いる鍵テーブルTkおよびゾーンテーブルTzの具体例を示す表である。すなわち、図13(a) に示す鍵テーブルTkは、第1の暗号鍵格納部120内に保持されるテーブルであり、図13(b) に示すゾーンテーブルTzは、暗号処理細則格納部130内に保持されるテーブルである。いずれのテーブルも、SIMカード11に管理プログラムSDをインストールする際に併せて組み込むようにすればよい。もちろん、インストール後に、書込コマンドを与えてこれらのテーブルを書き込むようにしてもよいし、必要があれば、これらのテーブルの内容を適宜更新するようにしてもよい。
FIG. 13 is a table showing a specific example of the key table Tk and the zone table Tz used in the information processing system shown in FIG. That is, the key table Tk shown in FIG. 13A is a table held in the first encryption
図13(a) に示す鍵テーブルTkは、図3に示す鍵テーブルTに格納ゾーンを設定したものである。この鍵テーブルTkには、それぞれがキーバージョン番号によって特定される複数の格納場所が用意されており、個々の格納ゾーンは、1つもしくは複数の格納場所によって構成されている。 The key table Tk shown in FIG. 13(a) is obtained by setting a storage zone in the key table T shown in FIG. The key table Tk is provided with a plurality of storage locations each specified by a key version number, and each storage zone is configured by one or a plurality of storage locations.
より具体的には、この鍵テーブルTkには、キーバージョン番号「0x01」〜「0x7F」で特定される127個の格納場所が用意されており、各格納場所には、それぞれキーID「0x00」〜「0x7F」で特定される128個のセルが用意されている。個々のセルは、1つの「個別の鍵」を格納するための格納庫として機能する。 More specifically, this key table Tk has 127 storage locations specified by the key version numbers “0x01” to “0x7F”, and each storage location has a key ID “0x00”. ~ 128 cells specified by "0x7F" are prepared. Each cell functions as a storage for storing one "individual key".
図示の例の場合、鍵テーブルTkを構成する全セルのうち、実際に「個別の鍵」が格納されているセルは一部であり、多くのセルは空白になっている。そして、実際に暗号鍵が格納されている行について、合計4組の格納ゾーンZ1〜Z4が設定されている。すなわち、キーバージョン番号「0x01」に対応する1行が格納ゾーンZ1、キーバージョン番号「0x02」に対応する1行が格納ゾーンZ2、キーバージョン番号「0x20」,「0x21」,「0x22」に対応する3行が格納ゾーンZ3、キーバージョン番号「0x7E」,「0x7F」に対応する2行が格納ゾーンZ4に設定されている。 In the case of the example shown in the figure, among all the cells forming the key table Tk, some cells actually store the "individual key", and many cells are blank. Then, for the row in which the encryption key is actually stored, a total of four sets of storage zones Z1 to Z4 are set. That is, one line corresponding to the key version number “0x01” corresponds to the storage zone Z1, and one line corresponding to the key version number “0x02” corresponds to the storage zone Z2 and the key version numbers “0x20”, “0x21”, and “0x22”. 3 rows are set in the storage zone Z3, and 2 rows corresponding to the key version numbers "0x7E" and "0x7F" are set in the storage zone Z4.
このように、本発明において設定する格納ゾーンは、1つの格納場所(1つのキーバージョン番号で特定される行)のみしか含まないゾーンであってもよいし、複数の格納場所(複数のキーバージョン番号で特定される行)を含むゾーンであってもよい。また、鍵テーブルTkの全領域に格納ゾーンの設定を行う必要はなく、図示の例のように、一部に格納ゾーンが設定されていない領域が存在していてもかまわない。 As described above, the storage zone set in the present invention may be a zone that includes only one storage location (row specified by one key version number), or a plurality of storage locations (multiple key versions). It may be a zone including a line specified by a number). Further, it is not necessary to set the storage zone in the entire area of the key table Tk, and a part of the area in which the storage zone is not set may exist as in the illustrated example.
図13(a) に示す鍵テーブルTkでは、個々の格納場所は、キーバージョン番号で特定されるため、暗号通信路開設コマンドCMDには、格納場所指定情報として特定のキーバージョン番号を含ませるようにすればよい。第1の暗号通信処理部110は、このキーバージョン番号によって特定される格納場所を指定格納場所として、指定暗号鍵の読出処理および指定暗号処理細則の認識処理を行うことになる。
In the key table Tk shown in FIG. 13A, each storage location is specified by a key version number. Therefore, the encrypted communication path opening command CMD should include a specific key version number as storage location designation information. You can do this. The first cryptographic
一方、図13(b) に示すゾーンテーブルTzは、図11に例示した4組の暗号処理細則を対応づけたテーブルである。このゾーンテーブルTzでは、まず、4つの格納ゾーンZ1〜Z4について、それぞれ数値範囲が定義されている。この数値範囲は、キーバージョン番号の範囲を示すものであり、図13に示す格納ゾーンZ1〜Z4の設定を定義するものである。具体的には、格納ゾーンZ1は「0x01」、格納ゾーンZ2は「0x02」、格納ゾーンZ3は「0x20」〜「0x22」、格納ゾーンZ4は「0x7E」〜「0x7F」として、それぞれキーバージョン番号の数値範囲によって定義される。要するに、ここに示す例の場合、個々の格納ゾーンが、1つの格納場所もしくは連続するキーバージョン番号を有する複数の格納場所によって構成され、個々の格納ゾーンがキーバージョン番号の固有の数値範囲に対応づけられていることになる。 On the other hand, the zone table Tz shown in FIG. 13B is a table in which the four sets of cryptographic processing rules illustrated in FIG. 11 are associated with each other. In this zone table Tz, first, numerical ranges are defined for the four storage zones Z1 to Z4, respectively. This numerical range indicates the range of key version numbers and defines the settings of the storage zones Z1 to Z4 shown in FIG. Specifically, the storage zone Z1 is "0x01", the storage zone Z2 is "0x02", the storage zone Z3 is "0x20" to "0x22", and the storage zone Z4 is "0x7E" to "0x7F". Is defined by the numerical range of. In short, in the example shown here, each storage zone consists of one storage location or multiple storage locations with consecutive key version numbers, each storage zone corresponding to a unique numerical range of key version numbers. Will be attached.
図13(b) に示すゾーンテーブルTzでは、この4つの格納ゾーンZ1〜Z4に、パラメータ「i」の特定の値が対応づけられている。具体的には、格納ゾーンZ1〜Z4に対して、それぞれパラメータ「i」を構成する8ビットのデータが対応づけられている。図の表には、説明の便宜上、パラメータ「i」の値を10進で表示した「32」,「48」,「96」,「112」なるデータも記載されている。第1の暗号通信処理部110内の暗号化プロトコルPを実行するプログラムには、このパラメータ「i」の値によって示される暗号処理細則の内容を解釈するルーチンが備わっており、指定された暗号処理細則に従った暗号通信処理が実行される。
In the zone table Tz shown in FIG. 13B, the four storage zones Z1 to Z4 are associated with specific values of the parameter “i”. Specifically, the storage zones Z1 to Z4 are associated with 8-bit data forming the parameter “i”. In the table of the figure, for convenience of description, data "32", "48", "96", "112" in which the value of the parameter "i" is displayed in decimal is also described. The program that executes the encryption protocol P in the first encryption
前述したとおり、8ビットのデータからなるパラメータ「i」は、暗号処理細則指定パラメータとして機能し、ここに示す実施例の場合、図11に示すとおり、「相互認証処理に用いる乱数」の種別,「レスポンスデータの暗号化」の有無,「レスポンスデータへのチェックコードの付与」の有無、という3つの暗号処理細則を定めるパラメータになる。たとえば、「i」の値が「32」の場合は、「相互認証処理に用いる乱数として真性乱数を用い、レスポンスデータは暗号化しないがチェックコードは付与する」という暗号処理細則の内容を示すことになる。 As described above, the parameter “i” consisting of 8-bit data functions as a cryptographic process detailed rule specifying parameter, and in the case of the embodiment shown here, as shown in FIG. 11, the type of “random number used for mutual authentication process”, It is a parameter that determines the three detailed rules for encryption processing, that is, whether or not "response data is encrypted" and whether or not "check code is added to response data". For example, if the value of "i" is "32", indicate the details of the cryptographic processing rule that "a true random number is used as the random number used for mutual authentication processing, and the response data is not encrypted but a check code is added". become.
したがって、暗号通信路開設指示部230から第1の暗号通信処理部110に対して与える暗号通信路開設コマンドCMDに、格納場所指定情報としてキーバージョン番号「0x01」を含ませておけば、第1の暗号通信処理部110は、まず、図13(a) に示す鍵テーブルTkから、キーバージョン番号「0x01」に対応する暗号鍵を読み出すことができる。
Therefore, if the encrypted communication path opening command CMD given from the encrypted communication path opening
図13(a) に示す鍵テーブルTkの場合、各格納場所(テーブルの各行)には、それぞれキーIDによって特定される複数の格納庫(セル)が用意されており、これら複数の格納庫の全部もしくは一部に、それぞれ別個の暗号鍵が格納されている。したがって、第1の暗号通信処理部110は、暗号通信路開設コマンドCMDに含まれるキーバージョン番号によって特定される格納場所内の複数の格納庫に格納されている暗号鍵を利用して暗号通信路を開設することになる。具体的には、キーバージョン番号「0x01」が指定された場合、暗号鍵「KeyA,KeyB,KeyC」を利用して暗号通信路が開設される。
In the case of the key table Tk shown in FIG. 13(a), each storage location (each row of the table) is provided with a plurality of storages (cells) specified by a key ID. Part of each stores a different encryption key. Therefore, the first cryptographic
また、第1の暗号通信処理部110は、図13(b) に示すゾーンテーブルTzを参照して、キーバージョン番号「0x01」が所属する格納ゾーンZ1に対応づけられているパラメータ「i」(値「32」)を認識することができる。そこで、第1の暗号通信処理部110は、パラメータ「i」の各ビットに対応する暗号処理細則を解釈することにより、「相互認証処理に用いる乱数として真性乱数を用い、レスポンスデータは暗号化しないがチェックコードは付与する」という暗号処理細則の内容を把握することができる。その結果、暗号鍵「KeyA,KeyB,KeyC」を用い、把握した暗号処理細則に従って、暗号通信を行うための暗号通信路を開設し、開設された暗号通信路を介して第2の情報処理装置200との間で暗号通信を行うことになる。
Further, the first encrypted
なお、図11には、暗号処理細則として、「相互認証処理に用いる乱数」の種別,「レスポンスデータの暗号化」の有無,「レスポンスデータへのチェックコードの付与」の有無、という3つの規則を定めた例を示したが、暗号処理細則としては、この他にも任意の規則を定めることが可能である。§3では、暗号化プロトコルSCP03やSCP02で実際に定義されているパラメータ「i」の実例を示した。この実例を踏まえ、以下に、本発明を実施する上で利用可能な暗号処理細則のいくつかの例を列挙しておく。 It should be noted that FIG. 11 shows three rules as the cryptographic processing rules: the type of “random number used in mutual authentication processing”, the presence/absence of “encryption of response data”, and the presence/absence of “giving a check code to response data”. Although an example in which the above is defined is shown, as the cryptographic processing detailed rule, any other rule can be defined. In §3, an actual example of the parameter “i” actually defined in the encryption protocol SCP03 or SCP02 is shown. Based on this example, some examples of cryptographic processing rules that can be used in implementing the present invention will be listed below.
(1) 相互認証処理の手順に関する暗号処理細則
図5のダイアグラムに示すとおり、暗号通信路を開設する前には、その準備段階の処理として、第1の情報処理装置100と第2の情報処理装置200との間で相互認証処理を行う必要があり、この相互認証処理には様々な手順が実用化されている。したがって、この相互認証処理の手順を定める規則は、本発明を実施する上で利用可能な暗号処理細則のひとつである。
(1) Detailed Rules for Cryptographic Processing Related to Mutual Authentication Processing As shown in the diagram of FIG. 5, the first
具体的には、相互認証処理のために第1の情報処理装置100が生成する乱数Rbとして、真性乱数を用いるか、擬似乱数を用いるか、を定めた規則を、暗号処理細則として利用することができる。たとえば、暗号化プロトコルSCP03の場合、図7(a) の項目(2) ,(3) に示すように、パラメータ「i」のビットb5に上記規則が定められており、暗号化プロトコルSCP02の場合、図9の項目(13) ,(14) に示すように、パラメータ「i」のビットb7に上記規則が定められている。
Specifically, a rule that determines whether a true random number or a pseudo random number is used as the random number Rb generated by the first
また、相互認証処理および暗号通信処理に用いられる暗号鍵の数を定める規則を、暗号処理細則として利用することもできる。たとえば、暗号化プロトコルSCP02の場合、図8の項目(1) ,(2) に示すように、パラメータ「i」のビットb1に上記規則が定められている。 Further, a rule that determines the number of encryption keys used in the mutual authentication process and the cryptographic communication process can also be used as a cryptographic process detailed rule. For example, in the case of the encryption protocol SCP02, the above rule is defined in the bit b1 of the parameter "i" as shown in items (1) and (2) of FIG.
更に、相互認証処理を、認証用コマンドを用いて明示的に実施するか、認証用コマンドを用いずに暗黙的に実施するか、を定める規則を、暗号処理細則として利用することもできる。たとえば、暗号化プロトコルSCP02の場合、図8の項目(5) ,(6) に示すように、パラメータ「i」のビットb3に上記規則が定められている。 Furthermore, a rule that determines whether the mutual authentication process is explicitly performed by using the authentication command or implicitly without the authentication command can be used as the cryptographic processing rule. For example, in the case of the encryption protocol SCP02, the above rule is defined in the bit b3 of the parameter "i" as shown in items (5) and (6) of FIG.
したがって、ゾーンテーブルとして、パラメータ「i」の特定の値を各格納ゾーンに対応づけたテーブルを用いるようにすれば、上述したいくつかの相互認証処理の手順に関する暗号処理細則を、暗号通信路開設コマンドによって設定することが可能になる。 Therefore, if a table in which a specific value of the parameter “i” is associated with each storage zone is used as the zone table, the above-mentioned cryptographic processing rules relating to the procedures of the mutual authentication processing will be established. It can be set by command.
(2) レスポンスの送信手順に関する暗号処理細則
開設された暗号通信路を介して第1の情報処理装置から第2の情報処理装置にレスポンスを送信する方法にも、種々の異なる手順が定められており、このレスポンスの送信手順を定める規則も、本発明を実施する上で利用可能な暗号処理細則のひとつである。
(2) Detailed rules for cryptographic processing regarding response transmission procedure Various different procedures are also defined for the method of transmitting a response from the first information processing apparatus to the second information processing apparatus via the established cryptographic communication channel. Therefore, the rule that defines the procedure for transmitting this response is also one of the cryptographic processing rules that can be used in implementing the present invention.
具体的には、レスポンスデータを暗号化するか否かを定めた規則を、暗号処理細則として利用することができる。たとえば、暗号化プロトコルSCP03の場合、図7(a) の項目(4) 〜(6) に示すように、パラメータ「i」のビットb7に上記規則が定められている。同様に、レスポンスデータにチェックコードを付与するか否かを定めた細則を、暗号処理細則として利用することもできる。たとえば、暗号化プロトコルSCP03の場合、図7(a) の項目(4) 〜(6) に示すように、パラメータ「i」のビットb6に上記規則が定められており、暗号化プロトコルSCP02の場合、図8の項目(11) ,(12) に示すように、パラメータ「i」のビットb6に上記規則が定められている。 Specifically, a rule that defines whether to encrypt response data can be used as a detailed cryptographic process rule. For example, in the case of the encryption protocol SCP03, the above rule is defined in the bit b7 of the parameter "i" as shown in items (4) to (6) of FIG. 7(a). Similarly, the detailed rule that determines whether or not the check code is added to the response data can be used as the cryptographic process detailed rule. For example, in the case of the encryption protocol SCP03, as shown in items (4) to (6) of FIG. 7A, the above rule is defined in the bit b6 of the parameter "i", and the encryption protocol SCP02 is used. As shown in items (11) and (12) of FIG. 8, the above rule is defined in the bit b6 of the parameter "i".
したがって、ゾーンテーブルとして、パラメータ「i」の特定の値を各格納ゾーンに対応づけたテーブルを用いるようにすれば、上述したレスポンスの送信手順に関する暗号処理細則を、暗号通信路開設コマンドによって設定することが可能になる。 Therefore, if a table in which a specific value of the parameter “i” is associated with each storage zone is used as the zone table, the detailed encryption processing rules relating to the above-described response transmission procedure are set by the encryption communication path opening command. It will be possible.
(3) コマンドの送信手順に関する暗号処理細則
開設された暗号通信路を介して第2の情報処理装置から第1の情報処理装置にコマンドを送信する方法にも、種々の異なる手順が定められており、このコマンドの送信手順を定める規則も、本発明を実施する上で利用可能な暗号処理細則のひとつである。
(3) Cryptographic processing rules concerning command transmission procedure Various different procedures are also defined for the method of transmitting a command from the second information processing apparatus to the first information processing apparatus via the established cryptographic communication channel. Therefore, the rule that defines the transmission procedure of this command is also one of the cryptographic processing detailed rules that can be used in implementing the present invention.
具体的には、送信コマンドへのチェックコード付与に関する事項を定めた規則を、暗号処理細則として利用することができる。たとえば、暗号化プロトコルSCP02の場合、図8の項目(3) ,(4) に示すように、パラメータ「i」のビットb2に、チェックコード演算時に送信コマンドを修正するか否かの規則が定められており、また、図8の項目(7) 〜(10) に示すように、パラメータ「i」のビットb4,b5に、ICVに関する規則が定められている。 Specifically, a rule that defines matters relating to the addition of a check code to a transmission command can be used as a detailed cryptographic processing rule. For example, in the case of the encryption protocol SCP02, as shown in items (3) and (4) of FIG. 8, the rule "b2" of the parameter "i" determines whether or not the transmission command is corrected when the check code is calculated. In addition, as shown in items (7) to (10) of FIG. 8, rules regarding ICV are defined in bits b4 and b5 of the parameter "i".
したがって、ゾーンテーブルとして、パラメータ「i」の特定の値を各格納ゾーンに対応づけたテーブルを用いるようにすれば、上述したコマンドの送信手順に関する暗号処理細則を、暗号通信路開設コマンドによって設定することが可能になる。 Therefore, if a table in which a specific value of the parameter "i" is associated with each storage zone is used as the zone table, the detailed encryption processing rules relating to the command transmission procedure described above are set by the encryption communication path opening command. It will be possible.
<<< §7. 暗号化プロトコルを指定する変形例 >>>
本発明の特徴は、鍵テーブルTk上に複数の格納ゾーンを設定しておき、個々の格納ゾーンにそれぞれ所定の暗号処理細則を対応づけたゾーンテーブルTzを用意しておくことにより、暗号通信路開設コマンドCMDにより鍵テーブルTk上の特定の格納場所が指定されたときに、当該指定格納場所が所属する格納ゾーンに対応づけられた暗号処理細則を認識することができるようにし、暗号通信路の開設を行う都度、所望の暗号処理細則を指定できるようにした点にある。
<<<< §7. Modification to specify encryption protocol >>>
A feature of the present invention is that a plurality of storage zones are set on the key table Tk, and a zone table Tz in which a predetermined cryptographic processing rule is associated with each storage zone is prepared. When a specific storage location on the key table Tk is designated by the opening command CMD, it is possible to recognize the detailed cryptographic processing rules associated with the storage zone to which the designated storage location belongs, and The point is that a desired cryptographic processing rule can be designated each time opening is performed.
一方、特願2015−168868号には、同様の考え方に基づいて、暗号通信路の開設を行う都度、所望の暗号化プロトコルを指定できるようにした発明(以下、先願発明という)が開示されている。この先願発明の特徴は、鍵テーブルTk上に複数の格納ゾーンを設定しておき、個々の格納ゾーンにそれぞれ所定の暗号化プロトコルを対応づけたゾーンテーブルTzを用意しておくことにより、暗号通信路開設コマンドCMDにより鍵テーブルTk上の特定の格納場所が指定されたときに、当該指定格納場所が所属する格納ゾーンに対応づけられた暗号化プロトコルを認識することができるようにし、暗号通信路の開設を行う都度、所望の暗号化プロトコルを指定できるようにした点にある。 On the other hand, Japanese Patent Application No. 2015-168868 discloses an invention (hereinafter referred to as a prior invention) in which a desired encryption protocol can be designated every time an encrypted communication path is opened based on the same idea. ing. A feature of the invention of this prior application is that a plurality of storage zones are set on the key table Tk, and a zone table Tz in which a predetermined encryption protocol is associated with each storage zone is prepared. When a specific storage location on the key table Tk is designated by the path opening command CMD, the encryption protocol associated with the storage zone to which the designated storage location belongs can be recognized. The point is that the desired encryption protocol can be designated each time the opening of the.
このように、本発明と先願発明は、いずれも鍵テーブルTk上に複数の格納ゾーンを設定しておき、暗号通信路開設コマンドCMDにより鍵テーブルTk上の特定の格納場所が指定されたときに、当該指定格納場所が所属する格納ゾーンを認識することにより、各格納ゾーンに対応づけられていた「何らかの情報」を把握する、という技術思想を用いる点において共通する。ただ、先願発明の場合、「何らかの情報」として「暗号化プロトコルを指定する情報」を用いているのに対して、本発明の場合、「何らかの情報」として「暗号処理細則」を用いている点が相違する。 As described above, in both the present invention and the prior invention, a plurality of storage zones are set on the key table Tk, and a specific storage location on the key table Tk is designated by the encrypted communication path opening command CMD. In addition, it is common to use the technical idea of recognizing the storage zone to which the designated storage location belongs to grasp "some information" associated with each storage zone. However, in the case of the invention of the prior application, “information for specifying the encryption protocol” is used as “some information”, whereas in the present invention, the “rules of cryptographic processing” are used as “some information”. The points are different.
このように、本発明と先願発明とは、共通した技術思想を用いているため、両者を組み合わせて実施することが可能である。ここで述べる変形例は、このような組み合わせに係る実施形態に相当するものである。 As described above, since the present invention and the prior invention use the common technical idea, they can be implemented in combination. The modified example described here corresponds to the embodiment related to such a combination.
結局、この変形例の特徴は、鍵テーブルTk上に複数の格納ゾーンを設定しておき、個々の格納ゾーンにそれぞれ所定の暗号化プロトコルおよび暗号処理細則の双方を対応づけたゾーンテーブルTzを用意しておくことにより、暗号通信路開設コマンドCMDにより鍵テーブルTk上の特定の格納場所が指定されたときに、当該指定格納場所が所属する格納ゾーンに対応づけられた暗号化プロトコルおよび暗号処理細則の双方を認識することができるようにし、暗号通信路の開設を行う都度、所望の暗号化プロトコルおよび暗号処理細則の双方を指定できるようにした点にある。 In the end, the feature of this modified example is that a plurality of storage zones are set on the key table Tk, and a zone table Tz is prepared in which each storage zone is associated with both a predetermined encryption protocol and cryptographic processing rules. By doing so, when a specific storage location on the key table Tk is designated by the encryption communication path opening command CMD, the encryption protocol and the detailed cryptographic processing rule associated with the storage zone to which the designated storage location belongs. Both of them can be recognized, and a desired encryption protocol and a detailed cryptographic processing rule can be designated each time a cryptographic communication path is opened.
図14は、このような本発明の変形例に係る情報処理システムの構成を示すブロック図である。この図14に示す情報処理システムの基本構成は、図12に示す基本的実施形態に係る情報処理システムの基本構成とほぼ同じである。そこで、図14に示す情報処理システムの各構成要素については、図12に示す情報処理システムの対応する各構成要素の符号末尾に「A」を付した符号を用いて示してある。 FIG. 14 is a block diagram showing the configuration of such an information processing system according to a modification of the present invention. The basic configuration of the information processing system shown in FIG. 14 is almost the same as the basic configuration of the information processing system according to the basic embodiment shown in FIG. Therefore, each component of the information processing system shown in FIG. 14 is indicated by using a symbol with “A” added to the end of the symbol of the corresponding component of the information processing system shown in FIG.
具体的には、図14に示す情報処理システムは、第1の情報処理装置100Aと第2の情報処理装置200Aとを備え、両者間で所定の暗号化プロトコルに基づいた暗号通信が可能な情報処理システムである。ここでも、第1の情報処理装置100Aとして、SIMカード11に管理プログラムSDAを組み込んだ装置を用い、第2の情報処理装置200Aとして、当該SIMカード11を装着する相手となるスマートフォン10に所定のアプリケーションプログラム(アプリAP6)を組み込んだ装置を用いた例について、以下の説明を行うことにする。
Specifically, the information processing system shown in FIG. 14 includes a first
図示のとおり、第1の情報処理装置100Aには、暗号通信路を開設する処理を行う第1の暗号通信処理部110Aと、暗号鍵を格納する第1の暗号鍵格納部120Aと、暗号処理細則を格納する暗号処理細則格納部130Aと、が設けられており、第1の暗号通信処理部110Aは、第1の暗号鍵格納部120Aに格納されている暗号鍵を用いて、暗号処理細則格納部130Aに格納されている暗号処理細則に従って、暗号通信路を開設する処理を行う。
As shown in the figure, in the first
ここに示す変形例の場合も、第1の暗号通信処理部110Aは、実際には、SIMカード11にインストールされた管理プログラムSDAの機能として実現されることになり、第1の暗号鍵格納部120Aおよび暗号処理細則格納部130Aは、この管理プログラムSDAによって管理されるSIMカード11に内蔵されたメモリの一部分の領域として実現されることになる。
Also in the case of the modification shown here, the first cryptographic communication processing unit 110A is actually realized as a function of the management program SDA installed in the
一方、第2の情報処理装置200Aには、第1の暗号通信処理部110Aが開設した暗号通信路を利用して暗号通信を行う第2の暗号通信処理部210Aと、暗号鍵を格納する第2の暗号鍵格納部220Aと、第1の暗号通信処理部110Aに対して暗号通信路の開設を指示する暗号通信路開設指示部230Aとが設けられている。
On the other hand, the second
ここに示す変形例の場合、第2の暗号通信処理部210Aおよび暗号通信路開設指示部230Aは、実際には、スマートフォン10にインストールされたアプリケーションプログラム(アプリAP6)の機能として実現されることになり、第2の暗号鍵格納部220Aは、スマートフォン10に内蔵されたメモリの一部分の領域として実現されることになる。
In the case of the modified example shown here, the second encrypted
このように、図14に示す変形例の基本構成と図12に示す基本的実施形態の基本構成とは、ほぼ同じである。ただ、個々の構成要素の細かな処理動作に若干の相違がある。以下、この相違点を説明する。 Thus, the basic configuration of the modification shown in FIG. 14 and the basic configuration of the basic embodiment shown in FIG. 12 are almost the same. However, there are some differences in the detailed processing operation of each component. Hereinafter, this difference will be described.
第1の暗号通信処理部110Aは、所定の暗号化プロトコルに基づき、当該暗号化プロトコルによる暗号通信処理の細かな手順を定めた所定の暗号処理細則に従って、暗号通信を行うための暗号通信路を開設し、開設された暗号通信路を介して第2の情報処理装置200Aとの間で暗号通信を行う。ただ、第1の暗号通信処理部110Aには、複数N通り(N≧2)の暗号化プロトコルP1〜PNが用意されており、このN通りの暗号化プロトコルP1〜PNのうちの任意の暗号化プロトコルに基づいて暗号通信を行う機能を有している。そして、第2の情報処理装置200Aから暗号通信路開設コマンドCMDが与えられたときには、このN通りの暗号化プロトコルP1〜PNのうち、第2の情報処理装置200Aから指定された指定暗号化プロトコルに基づいて、暗号通信を行うための暗号通信路を開設する。
The first cryptographic communication processing unit 110A establishes a cryptographic communication path for performing cryptographic communication based on a predetermined cryptographic protocol and in accordance with a predetermined cryptographic processing detailed rule that defines a detailed procedure of cryptographic communication processing by the cryptographic protocol. It is opened and encrypted communication is performed with the second
一方、第1の暗号鍵格納部120Aは、鍵テーブルTkAを保持する構成要素である。この鍵テーブルTkAには、複数の格納場所が用意されており、個々の格納場所には、それぞれ上記N通りの暗号化プロトコルP1〜PNのそれぞれに用いられる暗号鍵が格納されている。そして、この鍵テーブルTkAには、複数の格納ゾーンが設定される。図14には、鍵テーブルTkA上に8つの格納ゾーンZ1〜Z8が設定されている状態が示されている。実際には、これら各格納ゾーンZ1〜Z8には、それぞれ1つもしくは複数の格納場所が含まれているが、ここでは、これら格納場所の図示は省略されている。もちろん、GlobalPlatform (登録商標)の仕様に基づく鍵テーブルは、図13に示すような形態をとるので、各格納ゾーンZ1〜Z8は、それぞれ「キーバージョン番号」の範囲によって定められることになる。
On the other hand, the first encryption
暗号処理細則格納部130Aには、この鍵テーブルTkA上に設定された個々の格納ゾーンZ1〜Z8に関するゾーンテーブルTzAが保持されている。これまで述べてきた実施例の場合、ゾーンテーブルは、個々の格納ゾーンと個々の暗号処理細則との対応関係を示すテーブルであったが、この変形例におけるゾーンテーブルTzAは、個々の格納ゾーンZ1〜Z8と個々の暗号処理細則との対応関係に加えて、更に、個々の格納ゾーンZ1〜Z8と個々の暗号化プロトコルとの対応関係を示している。すなわち、ゾーンテーブルTzAにおける特定の格納ゾーンの欄には、所定の暗号処理細則を特定する情報だけでなく、所定の暗号化プロトコルを特定する情報が含まれている。したがって、1つの格納ゾーンが決まると、1つの暗号処理細則が定まり、更に、1つの暗号化プロトコルが定まる。
The cryptographic processing
続いて、第2の情報処理装置200Aの構成要素について説明する。まず、第2の暗号通信処理部210Aは、前述した複数N通りの暗号化プロトコルP1〜PNのうちの少なくとも1つの特定の暗号化プロトコルに基づく暗号通信を行う機能を有し、当該特定の暗号化プロトコルに基づく暗号通信を行うために開設された暗号通信路を介して第1の情報処理装置100Aとの間で暗号通信を行う構成要素である。図示の例は、第2の暗号通信処理部210Aが、第1の暗号化プロトコルP1に基づく暗号通信を行う機能を有している例であり、2組の情報処理装置100A,200Aは、第1の暗号化プロトコルP1に基づいて暗号通信を行うことになる。図には、両者間に第1の暗号化プロトコルP1に基づく暗号通信路が開設された状態が示されている。
Subsequently, components of the second
第2の暗号鍵格納部220Aは、第2の暗号通信処理部210Aが利用する特定の暗号化プロトコル(図示の例の場合、第1の暗号化プロトコルP1)に用いられる暗号鍵を格納する構成要素である。第1の暗号通信処理部110Aと第2の暗号通信処理部210Aとの間で暗号通信を行うためには、両者が同じ暗号化プロトコルを用い、同じ暗号鍵を利用した暗号処理が必要になる。したがって、図示の例の場合、第2の暗号鍵格納部220Aには、第1の暗号鍵格納部120A内の鍵テーブルTkAに格納されている第1の暗号化プロトコルP1に用いる暗号鍵と同一の特定の暗号鍵KeysXが格納されている。そして、両者間の暗号通信は、この暗号鍵KeysXを用いた第1の暗号化プロトコルP1に基づいて実行される。
The second encryption
暗号通信路開設指示部230Aは、これまで述べてきた基本的実施形態と同様に、第1の情報処理装置100Aに対して、暗号通信を行うための暗号通信路の開設を指示する暗号通信路開設コマンドCMDを与える構成要素である。この暗号通信路開設コマンドCMDには、第2の暗号鍵格納部220Aに格納されている特定の暗号鍵KeysXに対応する暗号鍵についての鍵テーブルTkA内の格納場所を示す格納場所指定情報が含まれている。
The encrypted communication path opening
この暗号通信路開設コマンドCMDを受信した第1の暗号通信処理部110は、次のような方法で暗号通信路の開設処理を行う。まず、暗号通信路開設コマンドCMDに含まれている格納場所指定情報によって指定された指定格納場所を認識し、鍵テーブルTkAの当該指定格納場所に格納されている暗号鍵KeysXを指定暗号鍵として読み出す。また、この指定格納場所が所属する格納ゾーンを認識し、ゾーンテーブルTzAを参照して指定格納場所が所属する格納ゾーンに対応づけられている暗号処理細則を指定暗号処理細則として認識するとともに、当該格納ゾーンに対応づけられている暗号化プロトコルを指定暗号化プロトコルとして認識する。そして、認識した指定暗号化プロトコルに基づき、読み出した指定暗号鍵KeysXを用いて、認識した指定暗号処理細則に従った手順を実行することにより、暗号通信を行うための暗号通信路を開設する。
The first encrypted
たとえば、指定暗号鍵KeysXの格納場所が、第i番目の格納ゾーンZiに所属していた場合は、ゾーンテーブルTzAの格納ゾーンZiに対応づけられている情報が参照される。たとえば、格納ゾーンZiについて、暗号処理細則Cjおよび暗号化プロトコルPkが対応づけられていた場合、第1の暗号通信処理部110は、指定暗号化プロトコルPkに基づき、指定暗号鍵KeysXを用いて、指定暗号処理細則Cjに従った手順を実行することにより、暗号通信を行うための暗号通信路を開設することになる。
For example, when the storage location of the designated encryption key KeysX belongs to the i-th storage zone Zi, the information associated with the storage zone Zi of the zone table TzA is referred to. For example, when the storage zone Zi is associated with the detailed encryption processing rule Cj and the encryption protocol Pk, the first encrypted
このような構成をもつ情報処理システムによれば、2組の情報処理装置100A,200Aの間に暗号通信路を開設する際に、その都度、暗号通信路開設コマンドCMDに含ませた暗号鍵の格納場所を示す格納場所指定情報によって、第2の情報処理装置200から第1の情報処理装置100に対して、特定の暗号化プロトコルおよび特定の暗号処理細則を指定する情報を伝達することができる。このため、暗号通信路を開設するたびに、暗号化プロトコルおよび暗号処理細則の設定が可能になる。
According to the information processing system having such a configuration, each time the encryption communication path is opened between the two sets of
図14に示す例の場合、スマートフォン10内のアプリAP6は、特定の暗号化プロトコルP1および特定の暗号鍵KeysXを用いて、SIMカード11内の管理プログラムSDAに対して暗号通信路の開設を指示することになるが、スマートフォン10内に別なアプリAP7が組み込まれており、この別なアプリAP7が別な暗号化プロトコルを用いてSIMカード11内の管理プログラムSDAに対して暗号通信路の開設を指示する場合は、暗号通信路開設コマンドCMDに、当該別な暗号化プロトコルに対応した格納ゾーン内の格納場所指定情報を含ませておくようにすればよい。
In the case of the example shown in FIG. 14, the application AP6 in the
図15は、図14に示す情報処理システムに用いる鍵テーブルTkAおよびゾーンテーブルTzAの具体例を示す表である。図15(a) に示す鍵テーブルTkAの基本的な構成は、図13に示す鍵テーブルTkと同じである。ただ、ここでは、8つの格納ゾーンZ1〜Z8が設定されていることを示すため、テーブルの表示形式を変えて示す。図13に示す鍵テーブルTkと同様に、図15(a) に示す鍵テーブルTkAにも、キーバージョン番号として、「0x01〜0x7F」の範囲のアドレス空間が割り当てられているが、格納ゾーンの設定は、「0x01〜0x3F」の範囲についてのみ行われており、暗号鍵Keyも、この範囲内のアドレス空間にのみ格納されている。 FIG. 15 is a table showing a specific example of the key table TkA and the zone table TzA used in the information processing system shown in FIG. The basic configuration of the key table TkA shown in FIG. 15(a) is the same as that of the key table Tk shown in FIG. However, here, the display format of the table is changed to show that eight storage zones Z1 to Z8 are set. Similar to the key table Tk shown in FIG. 13, the key table TkA shown in FIG. 15(a) is also assigned an address space in the range of “0x01 to 0x7F” as the key version number, but the storage zone is set. Is performed only for the range of “0x01 to 0x3F”, and the encryption key Key is also stored only in the address space within this range.
図示の例の場合、各格納ゾーンZ1〜Z8は、それぞれ7個もしくは8個の格納場所(図13に示す鍵テーブルTkにおける7行分もしくは8行分の格納場所)によって構成されている。図13に示す鍵テーブルTkと同様に、1つの格納場所には、「0x00〜0x7F」の範囲のキーIDによって特定されるセル(格納庫)が配置されており、各セルには、それぞれ個々の暗号鍵Keyが格納されている(図示省略)。 In the case of the illustrated example, each of the storage zones Z1 to Z8 is configured by seven or eight storage locations (seven or eight storage locations in the key table Tk shown in FIG. 13). Similar to the key table Tk shown in FIG. 13, a cell (storage) specified by a key ID in the range of “0x00 to 0x7F” is arranged in one storage location, and each cell has an individual cell. The encryption key Key is stored (not shown).
一方、図15(b) には、図15(a) に示す鍵テーブルTkAのゾーン構成に対応したゾーンテーブルTzAの具体例が示されている。すなわち、8つの格納ゾーンZ1〜Z8のそれぞれについて、キーバージョン番号の数値範囲が示され、各格納ゾーンZ1〜Z8のそれぞれについて、所定の暗号化プロトコルとパラメータ「i」の値が対応づけられている。なお、説明の便宜上、パラメータ「i」については、「i」の各ビットの表示と、10進表現による「i」の値の表示とを行っているが、実際のゾーンテーブルTzAでは、数値範囲を示すデータと、暗号化プロトコルを示すデータと、「i」の各ビットと、が対応づけられていれば足りる。 On the other hand, FIG. 15(b) shows a specific example of the zone table TzA corresponding to the zone configuration of the key table TkA shown in FIG. 15(a). That is, the numerical range of the key version number is shown for each of the eight storage zones Z1 to Z8, and the predetermined encryption protocol and the value of the parameter “i” are associated with each of the storage zones Z1 to Z8. There is. Note that, for convenience of explanation, regarding the parameter "i", each bit of "i" is displayed and the value of "i" in decimal notation is displayed. However, in the actual zone table TzA, the numerical range is shown. It suffices that the data indicating "", the data indicating the encryption protocol, and each bit of "i" are associated with each other.
ここで、パラメータ「i」は、これまで述べてきた基本的実施形態と同様に、暗号処理細則指定パラメータであり、各暗号化プロトコルに応じて、特定の暗号処理細則を定める役割を果たす。図示の例は、2通りの暗号化プロトコルに対応した例であり(図14においてN=2に設定し、第1の暗号通信処理部110Aが、2通りの暗号化プロトコルP1およびP2に対応している例)、暗号通信路開設コマンドCMDによって、格納ゾーンZ1〜Z4に所属する格納場所が指定された場合は、第1の暗号化プロトコルP1(具体的には、プロトコルSCP03)を用いた暗号通信路が開設され、格納ゾーンZ5〜Z8に所属する格納場所が指定された場合は、第2の暗号化プロトコルP2(具体的には、プロトコルSCP02)を用いた暗号通信路が開設されることになる。 Here, the parameter “i” is a cryptographic process detailed rule designating parameter and plays a role of defining a specific cryptographic process detailed rule according to each encryption protocol, similarly to the basic embodiments described so far. The illustrated example is an example corresponding to two types of encryption protocols (N=2 is set in FIG. 14, and the first encrypted communication processing unit 110A corresponds to two types of encryption protocols P1 and P2. When the storage location belonging to the storage zones Z1 to Z4 is designated by the encrypted communication path opening command CMD, the encryption using the first encryption protocol P1 (specifically, the protocol SCP03) is performed. When the communication path is opened and the storage location belonging to the storage zones Z5 to Z8 is designated, the encrypted communication path using the second encryption protocol P2 (specifically, the protocol SCP02) is opened. become.
このように、暗号通信路開設コマンドCMDは、2通りの暗号化プロトコルのいずれか一方を指定する役割を果たすとともに、いずれの暗号化プロトコルを指定した場合も、4通りの暗号処理細則のいずれか1つを指定する役割も果たす。たとえば、格納ゾーンZ1に所属する格納場所が指定された場合は、暗号化プロトコルSCP03が指定されるとともに、「i」の値「32」に対応した暗号処理細則が指定されることになる。これは、図11の表の第1行目に示す暗号処理細則であり、「相互認証処理に用いる乱数として真性乱数を用い、レスポンスデータは暗号化しないがチェックコードは付与する」という内容の規則を示している。 In this way, the encryption communication path opening command CMD serves to specify either one of the two encryption protocols, and when any encryption protocol is specified, one of the four rules of encryption processing is specified. It also plays the role of specifying one. For example, when the storage location belonging to the storage zone Z1 is specified, the encryption protocol SCP03 is specified, and the encryption processing detailed rule corresponding to the value "32" of "i" is specified. This is a detailed rule of the cryptographic process shown in the first line of the table of FIG. 11, and a rule of the content that "a true random number is used as the random number used for the mutual authentication process and the response data is not encrypted but the check code is added". Is shown.
もちろん、パラメータ「i」の値によって示される個々の暗号処理細則は、個々の暗号化プロトコルごとに定義されているので、パラメータ「i」の値のもつ意味は、暗号化プロトコルSCP03と暗号化プロトコルSCP02とでは異なったものになる。個々の暗号化プロトコルを実行するプログラムには、このパラメータ「i」の値によって示される暗号処理細則の内容を解釈するルーチンが備わっており、指定された暗号処理細則に従った暗号通信処理が実行される。 Of course, since the individual cryptographic processing rules indicated by the value of the parameter "i" are defined for each individual encryption protocol, the meaning of the value of the parameter "i" is the encryption protocol SCP03 and the encryption protocol. It is different from SCP02. The program that executes each encryption protocol has a routine that interprets the details of the cryptographic processing rules indicated by the value of this parameter "i", and executes the cryptographic communication processing in accordance with the specified cryptographic processing rules. To be done.
最後に、図14に示す情報処理システムの更なる変形例を、図16のブロック図を参照しながら説明する。図16に示す情報処理システムの基本構成は、図14に示す情報処理システムの基本構成とほぼ同じである。すなわち、図16に示す情報処理システムは、第1の情報処理装置100Aと第2の情報処理装置200Bとを備え、両者間で所定の暗号化プロトコルに基づいた暗号通信が可能な情報処理システムである。ここで、第1の情報処理装置100Aは、図14に示す第1の情報処理装置100Aと全く同じものであるが、第2の情報処理装置200Bは、図14に示す第2の情報処理装置200Aに若干変更を加えたものである。
Finally, a further modification of the information processing system shown in FIG. 14 will be described with reference to the block diagram of FIG. The basic configuration of the information processing system shown in FIG. 16 is almost the same as the basic configuration of the information processing system shown in FIG. That is, the information processing system shown in FIG. 16 is an information processing system that includes the first
すなわち、図16に示す第2の情報処理装置200Bは、スマートフォン10に所定のアプリケーションプログラム(アプリAP8)を組み込むことにより構成され、第1の情報処理装置100Aとの間で暗号通信を行う第2の暗号通信処理部210Bと、第2の暗号通信処理部210Bが利用する暗号化プロトコルに用いられる暗号鍵を格納した第2の暗号鍵格納部220Bと、第1の情報処理装置100Aに対して、暗号通信を行うための暗号通信路の開設を指示する暗号通信路開設コマンドCMDを与える暗号通信路開設指示部230Aと、が設けられている。
That is, the second
ここで、暗号通信路開設指示部230Aは、図14に示す暗号通信路開設指示部230Aと全く同じ構成要素である。したがって、この図16に示す情報処理システムは、図14に示す情報処理システムにおける第2の暗号通信処理部210Aを第2の暗号通信処理部210Bに置き換え、第2の暗号鍵格納部220Aを第2の暗号鍵格納部220Bに置き換えたものである。
Here, the encrypted communication path
図14に示す情報処理システムにおける第2の情報処理装置210Aは、特定の暗号化プロトコルとして組み込まれた第1の暗号化プロトコルP1のみに基づいて暗号通信を行う構成要素であるが、図16に示す情報処理システムにおける第2の情報処理装置210Bは、複数の暗号化プロトコル(図示の例の場合は、第1の暗号化プロトコルP1と第2の暗号化プロトコルP2)に対応し、いずれか1つの暗号化プロトコルを選択して暗号通信を行うことができる。
The second
また、図14に示す情報処理システムにおける第2の暗号鍵格納部220Aは、特定の暗号鍵として、暗号鍵KeysXのみを格納する構成要素であるが、図16に示す情報処理システムにおける第2の暗号鍵格納部220Bは、複数の暗号鍵(図示の例の場合は、3組の暗号鍵KeysX,KeysY,KeysZ)を格納しており、いずれか1つの暗号鍵を選択して暗号通信に用いることができる。
The second encryption
要するに、図14に示す情報処理システムにおける第2の情報処理装置200Aでは、暗号通信に用いる暗号化プロトコルおよび暗号鍵が1つのみに限定されていたが、図16に示す情報処理システムにおける第2の情報処理装置200Bでは、暗号通信に用いる暗号化プロトコルおよび暗号鍵が複数用意されており、それぞれ任意のものを選択的に利用することができる。
In short, in the second
もっとも、第1の情報処理装置100Aとの間で暗号通信を行うためには、第1の情報処理装置100A側で用いる暗号化プロトコルおよび暗号鍵と、第2の情報処理装置200B側で用いる暗号化プロトコルおよび暗号鍵とが対応している必要があるので、暗号通信路開設指示部230Aによって暗号通信路開設コマンドCMDを送信する際には、両者で用いる暗号化プロトコルおよび暗号鍵が一致するように、格納場所指定情報を適切に指定する必要がある。
However, in order to perform the encrypted communication with the first
具体的には、たとえば、第2の情報処理装置200B側で、第2の暗号化プロトコルP2および暗号鍵KeysYを用いた暗号通信を意図している場合には、ゾーンテーブルTzA上において第2の暗号化プロトコルP2が対応づけられた特定のゾーンに所属する暗号鍵KeysYの格納場所を、格納場所指定情報として指定した暗号通信路開設コマンドCMDを送信すればよい。
Specifically, for example, in the case where the second
このように、本発明において、第2の情報処理装置の構成要素である第2の暗号通信処理部は、特定の暗号化プロトコルのみに対応した構成要素であってもよいし、複数の暗号化プロトコルに対応しこれを選択的に利用できる構成要素であってもよい。同様に、本発明において、第2の情報処理装置の構成要素である第2の暗号鍵格納部は、特定の暗号鍵のみを格納した構成要素であってもよいし、複数の暗号鍵を格納しこれを選択的に利用できる構成要素であってもよい。これは、§6までに述べた基本的実施形態についても同様である。 As described above, in the present invention, the second cryptographic communication processing unit, which is a component of the second information processing apparatus, may be a component that supports only a specific encryption protocol, or a plurality of encryption protocols. It may be a component that corresponds to the protocol and can selectively use it. Similarly, in the present invention, the second encryption key storage unit, which is a component of the second information processing apparatus, may be a component that stores only a specific encryption key, or may store a plurality of encryption keys. However, it may be a component that can selectively utilize this. This also applies to the basic embodiments described up to §6.
<<< §8. 方法発明としての実施形態 >>>
最後に、本発明を暗号通信方法という方法発明として把握した場合の実施形態を述べておく。図17は、本発明に係る暗号通信方法の基本手順を示す流れ図である。この暗号通信方法は、第1の情報処理装置と第2の情報処理装置との間で、所定の暗号化プロトコルに基づいた暗号通信を行う暗号通信方法であり、図示のとおり、プログラム準備段階S11,鍵テーブル準備段階S12,ゾーンテーブル準備段階S13,暗号通信路開設指示段階S14,暗号通信路開設段階S15,暗号通信段階S16という各段階によって構成される。なお、この図17の流れ図における各ステップを示すブロックの右側の記載は、当該ステップが、図12に示す第1の情報処理装置100によって実行される手順であるのか、第2の情報処理装置200によって実行される手順であるのかを示している。
<<<<§8. Embodiment as Method Invention >>>
Finally, an embodiment when the present invention is understood as a method invention called a cryptographic communication method will be described. FIG. 17 is a flowchart showing the basic procedure of the encrypted communication method according to the present invention. This cryptographic communication method is a cryptographic communication method for performing cryptographic communication between the first information processing apparatus and the second information processing apparatus based on a predetermined encryption protocol, and as shown in the figure, the program preparation step S11. The key table preparation step S12, the zone table preparation step S13, the encrypted communication path opening instruction step S14, the encrypted communication path opening step S15, and the encrypted communication step S16. Note that the description on the right side of the block showing each step in the flow chart of FIG. 17 indicates whether the step is a procedure executed by the first
ステップS11のプログラム準備段階は、第1の情報処理装置100が、所定の暗号化プロトコルに基づく暗号通信を行うプログラムを実行可能な状態に準備する段階である。具体的には、第1の情報処理装置100が、SIM11のようなICカードからなる場合、暗号通信機能は管理プログラムSDによって実現される。したがって、このステップS11のプログラム準備段階は、管理プログラムSDをインストールする処理によって行われる。図14に示す変形例を適用する場合は、複数N通り(N≧2)の暗号化プロトコルに基づく暗号通信を行うプログラムが実行可能な状態になる。
The program preparation step of step S11 is a step in which the first
ステップS12の鍵テーブル準備段階は、第1の情報処理装置100が、複数の格納場所にそれぞれ上記暗号化プロトコルに用いられる暗号鍵を格納した鍵テーブルTkを準備する段階である。具体的には、第1の暗号鍵格納部120に、図13(a) に示すような鍵テーブルTkが格納されることになる。この鍵テーブル準備段階は、第1の情報処理装置100に対して、外部装置からデータ書込コマンドを与えることにより実行することができる。
The key table preparation step of step S12 is a step in which the first
ステップS13のゾーンテーブル準備段階は、第1の情報処理装置100が、上記鍵テーブルTk上に、1つもしくは複数の格納場所を含む格納ゾーンを複数組設定し、個々の格納ゾーンと個々の暗号処理細則との対応関係を示すゾーンテーブルを準備する段階である。具体的には、暗号処理細則格納部130に、図13(b) に示すようなゾーンテーブルTzが格納されることになる。このゾーンテーブル準備段階も、第1の情報処理装置100に対して、外部装置からデータ書込コマンドを与えることにより実行することができる。図14に示す変形例を適用する場合は、図15(b) に示すように、個々の格納ゾーンと個々の暗号処理細則との対応関係を示すだけでなく、個々の格納ゾーンと個々の暗号化プロトコルとの対応関係を示すゾーンテーブルTzAが準備されることになる。
In the zone table preparation stage of step S13, the first
ステップS14の暗号通信路開設指示段階は、第2の情報処理装置200が、第1の情報処理装置100に対して、ステップS11のプログラム準備段階で準備された暗号化プロトコルに基づいて、ステップS12の暗号鍵格納段階で特定の格納場所に格納された特定の暗号鍵を用いた暗号通信を行うための暗号通信路の開設を指示する暗号通信路開設コマンドCMDを送信する段階である。この暗号通信路開設コマンドCMDには、鍵テーブルTk内の特定の格納場所を示す格納場所指定情報が含まれている。
In the encryption communication channel opening instruction step of step S14, the second
ステップS15の暗号通信路開設段階は、第1の情報処理装置100が、受信した暗号通信路開設コマンドCMDに基づいて、所定の暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設する段階である。すなわち、第1の情報処理装置100は、受信した暗号通信路開設コマンドCMDに含まれている格納場所指定情報によって指定された指定格納場所に格納されている暗号鍵を指定暗号鍵として読み出す。そして、ステップS13で準備したゾーンテーブルTzを参照して、この指定格納場所が所属する格納ゾーンに対応づけられている暗号処理細則を指定暗号処理細則として認識し、読み出した指定暗号鍵を用いて、上記指定暗号処理細則に従った手順を実行することにより、暗号通信を行うための暗号通信路を開設する。図14に示す変形例を適用する場合は、更に、ゾーンテーブルTzを参照して、指定格納場所が所属する格納ゾーンに対応づけられている暗号化プロトコルを指定暗号化プロトコルとして認識し、この指定暗号化プロトコルを用いて暗号通信を行うための暗号通信路を開設することになる。
In the cryptographic communication channel opening stage of step S15, the first
ステップS16の暗号通信段階は、第1の情報処理装置100および第2の情報処理装置200が、ステップS15で開設された暗号通信路を介して暗号通信を行う段階である。実際には、送信時には、送信データを暗号化して送信し、受信時には、受信データを復号して取り込む処理が行われる。
The encrypted communication step of step S16 is a step in which the first
10:スマートフォン
11:SIMカード
20:外部サーバ
100,100A:第1の情報処理装置
110,110A:第1の暗号通信処理部
120,120A:第1の暗号鍵格納部
130,130A:暗号処理細則格納部
200,200A,200B:第2の情報処理装置
210,210A,210B:第2の暗号通信処理部
220,220A,220B:第2の暗号鍵格納部
230,230A:暗号通信路開設指示部
A:種別情報
AP1〜AP5:一般アプリケーションプログラム
b1〜b8:パラメータ「i」の各ビット
C1,C2:暗号処理細則
CMD:暗号通信路開設コマンド
Key,KeyA〜KeyU:暗号鍵
Keys11〜Keys14,KeysX〜KeysZ:暗号鍵(群)
L:鍵長
L11〜L14:格納場所
P,P1,Pi,PN:暗号化プロトコル
R1,R2:暗号通信路開設ルーチン
Ra,Ra′,Rb,Rb′:認証用の乱数
S1〜S6:ダイアグラムの各ステップ
S11〜S16:流れ図の各ステップ
SD,SDA:管理プログラム
T,T1,T2:鍵テーブル
Tk,TkA:鍵テーブル
Tz,TzA:ゾーンテーブル
V:鍵値データ
Z1〜Z8:格納ゾーン
10: smartphone 11: SIM card 20:
L: Key length L11 to L14: Storage location P, P1, Pi, PN: Encryption protocol R1, R2: Cryptographic communication path opening routine Ra, Ra', Rb, Rb': Random number for authentication S1 to S6: Diagram Steps S11 to S16: Flow chart steps SD, SDA: Management programs T, T1, T2: Key table Tk, TkA: Key table Tz, TzA: Zone table V: Key value data Z1 to Z8: Storage zone
Claims (20)
前記第1の情報処理装置は、
所定の暗号化プロトコルに基づき、当該暗号化プロトコルによる暗号通信処理の細かな手順を定めた所定の暗号処理細則に従って、暗号通信を行うための暗号通信路を開設し、開設された暗号通信路を介して前記第2の情報処理装置との間で暗号通信を行う第1の暗号通信処理部と、
複数の格納場所にそれぞれ前記暗号化プロトコルに用いられる暗号鍵を格納した鍵テーブルを保持する第1の暗号鍵格納部と、
前記鍵テーブルについて複数の格納ゾーンを設定し、個々の格納ゾーンと個々の暗号処理細則との対応関係を示すゾーンテーブルを保持する暗号処理細則格納部と、
を有し、
前記第2の情報処理装置は、
前記暗号化プロトコルに基づく暗号通信を行う機能を有し、前記第1の暗号通信処理部によって開設された暗号通信路を介して前記第1の情報処理装置との間で暗号通信を行う第2の暗号通信処理部と、
前記暗号化プロトコルに用いられる暗号鍵を格納した第2の暗号鍵格納部と、
前記第1の情報処理装置に対して、暗号通信を行うための暗号通信路の開設を指示する暗号通信路開設コマンドを与える暗号通信路開設指示部と、
を有し、
前記暗号通信路開設コマンドには、前記第2の暗号鍵格納部に格納されている暗号鍵に対応する特定の暗号鍵についての前記鍵テーブル内の格納場所を示す格納場所指定情報が含まれており、
前記第1の暗号通信処理部は、前記暗号通信路開設コマンドを受けて、前記暗号通信路開設コマンドに含まれている前記格納場所指定情報によって指定された指定格納場所に格納されている暗号鍵を指定暗号鍵として読み出し、前記ゾーンテーブルを参照して前記指定格納場所が所属する格納ゾーンに対応づけられている暗号処理細則を指定暗号処理細則として認識し、前記指定暗号鍵を用いて、前記指定暗号処理細則に従った手順を実行することにより、暗号通信を行うための暗号通信路を開設することを特徴とする情報処理システム。 An information processing system comprising a first information processing device and a second information processing device, capable of performing encrypted communication between them based on a predetermined encryption protocol,
The first information processing device is
Based on a predetermined encryption protocol, in accordance with a predetermined encryption processing detailed rule that defines the detailed procedure of encryption communication processing by the encryption protocol, open an encryption communication path for performing encrypted communication, A first cryptographic communication processing unit that performs cryptographic communication with the second information processing apparatus via
A first encryption key storage unit that holds a key table storing encryption keys used for the encryption protocol in a plurality of storage locations,
A plurality of storage zones are set for the key table, and a cryptographic processing rule storage unit that holds a zone table indicating a correspondence relationship between each storage zone and each cryptographic processing rule,
Have
The second information processing device is
A second function having a function of performing encrypted communication based on the encryption protocol, and performing encrypted communication with the first information processing apparatus via an encrypted communication path established by the first encrypted communication processing unit. A cryptographic communication processing unit of
A second encryption key storage unit that stores an encryption key used in the encryption protocol;
An encrypted communication path opening instruction unit for giving an encrypted communication path opening command for instructing the first information processing apparatus to open an encrypted communication path for performing encrypted communication;
Have
The encryption communication path opening command includes storage location designation information indicating a storage location in the key table for a specific encryption key corresponding to the encryption key stored in the second encryption key storage unit. Cage,
The first cryptographic communication processing unit receives the cryptographic communication channel opening command and stores the cryptographic key stored in the designated storage location designated by the storage location designating information included in the cryptographic communication channel opening command. As the designated encryption key, refers to the zone table, recognizes the cryptographic processing detailed rule associated with the storage zone to which the designated storage location belongs as the designated cryptographic processing detailed rule, and uses the designated cryptographic key to An information processing system, wherein an encrypted communication path for performing encrypted communication is established by executing a procedure in accordance with specified cryptographic processing rules.
鍵テーブルには、それぞれがキーバージョン番号によって特定される複数の格納場所が用意されており、個々の格納ゾーンは、1つもしくは複数の格納場所によって構成され、
暗号通信路開設コマンドには、格納場所指定情報として特定のキーバージョン番号が含まれており、
第1の暗号通信処理部は、前記キーバージョン番号によって特定される格納場所を指定格納場所として、指定暗号鍵の読出処理および指定暗号処理細則の認識処理を行うことを特徴とする情報処理システム。 The information processing system according to claim 1,
The key table is provided with a plurality of storage locations each identified by a key version number, and each storage zone is composed of one or a plurality of storage locations.
The encryption communication path opening command includes a specific key version number as storage location specifying information.
An information processing system, wherein the first cryptographic communication processing unit performs a process of reading a designated cryptographic key and a process of recognizing a detailed rule of a designated cryptographic process, with a storage location specified by the key version number as a designated storage location.
個々の格納ゾーンが、1つの格納場所もしくは連続するキーバージョン番号を有する複数の格納場所によって構成され、個々の格納ゾーンがキーバージョン番号の固有の数値範囲に対応づけられていることを特徴とする情報処理システム。 The information processing system according to claim 2,
Each storage zone is constituted by one storage location or a plurality of storage locations having consecutive key version numbers, and each storage zone is associated with a unique numerical range of the key version number. Information processing system.
鍵テーブル内の各格納場所には、それぞれキーIDによって特定される複数の格納庫が用意されており、これら複数の格納庫の全部もしくは一部に、それぞれ別個の暗号鍵が格納されており、
第1の暗号通信処理部は、暗号通信路開設コマンドに含まれるキーバージョン番号によって特定される格納場所内の複数の格納庫に格納されている暗号鍵を利用して暗号通信路を開設することを特徴とする情報処理システム。 The information processing system according to claim 2 or 3,
Each storage location in the key table is provided with a plurality of storages specified by the respective key IDs, and separate encryption keys are stored in all or some of the storages.
The first cryptographic communication processing unit uses the cryptographic keys stored in the plurality of storages in the storage location specified by the key version number included in the cryptographic communication channel opening command to open the cryptographic communication channel. A characteristic information processing system.
ゾーンテーブルによって示される暗号処理細則に、暗号通信路開設前に実行すべき第1の情報処理装置と第2の情報処理装置との間の相互認証処理の手順を定めた細則が含まれていることを特徴とする情報処理システム。 The information processing system according to any one of claims 1 to 4,
The cryptographic processing detailed rule indicated by the zone table includes the detailed rule that defines the procedure of the mutual authentication processing between the first information processing apparatus and the second information processing apparatus that should be executed before the cryptographic communication path is opened. An information processing system characterized by the above.
ゾーンテーブルによって示される暗号処理細則に、相互認証処理のために第1の情報処理装置が生成する乱数として、真性乱数を用いるか、擬似乱数を用いるか、を定めた細則が含まれていることを特徴とする情報処理システム。 The information processing system according to claim 5,
The cryptographic processing detailed rule indicated by the zone table includes a detailed rule that determines whether a real random number or a pseudo random number is used as the random number generated by the first information processing device for the mutual authentication process. Information processing system characterized by.
ゾーンテーブルによって示される暗号処理細則に、相互認証処理および暗号通信処理に用いられる暗号鍵の数を定めた細則が含まれていることを特徴とする情報処理システム。 The information processing system according to claim 5,
An information processing system, characterized in that the detailed rules for encryption processing indicated by the zone table include detailed rules for defining the number of encryption keys used for mutual authentication processing and encrypted communication processing.
ゾーンテーブルによって示される暗号処理細則に、相互認証処理を、認証用コマンドを用いて明示的に実施するか、認証用コマンドを用いずに暗黙的に実施するか、を定めた細則が含まれていることを特徴とする情報処理システム。 The information processing system according to claim 5,
The cryptographic processing detailed rules indicated by the zone table include detailed rules that specify whether mutual authentication processing is performed explicitly using the authentication command or implicitly without using the authentication command. Information processing system characterized by being present.
ゾーンテーブルによって示される暗号処理細則に、開設された暗号通信路を介して第1の情報処理装置から第2の情報処理装置にレスポンスを送信する手順を定めた細則が含まれていることを特徴とする情報処理システム。 The information processing system according to any one of claims 1 to 4,
The detailed rules for the cryptographic processing indicated by the zone table include a detailed rule that defines a procedure for transmitting a response from the first information processing device to the second information processing device via the opened cryptographic communication path. Information processing system.
ゾーンテーブルによって示される暗号処理細則に、レスポンスデータを暗号化するか否かを定めた細則が含まれていることを特徴とする情報処理システム。 The information processing system according to claim 9,
An information processing system, characterized in that the detailed rules for encryption processing indicated by the zone table include detailed rules that determine whether or not to encrypt response data.
ゾーンテーブルによって示される暗号処理細則に、レスポンスデータにチェックコードを付与するか否かを定めた細則が含まれていることを特徴とする情報処理システム。 The information processing system according to claim 9,
An information processing system, characterized in that the detailed rules for encryption processing indicated by the zone table include detailed rules for determining whether or not to add a check code to response data.
ゾーンテーブルによって示される暗号処理細則に、開設された暗号通信路を介して第2の情報処理装置から第1の情報処理装置にコマンドを送信する手順を定めた細則が含まれていることを特徴とする情報処理システム。 The information processing system according to any one of claims 1 to 4,
The detailed rules for encryption processing indicated by the zone table include detailed rules defining a procedure for transmitting a command from the second information processing apparatus to the first information processing apparatus via the established encryption communication path. Information processing system.
ゾーンテーブルによって示される暗号処理細則に、送信コマンドへのチェックコード付与に関する事項を定めた細則が含まれていることを特徴とする情報処理システム。 The information processing system according to claim 12,
An information processing system characterized in that the detailed rules for encryption processing indicated by the zone table include detailed rules defining matters concerning the addition of a check code to a transmission command.
第1の暗号通信処理部が、複数N通り(N≧2)の暗号化プロトコルに基づく暗号通信を行う機能を有し、前記N通りの暗号化プロトコルのうち、第2の情報処理装置から指定された指定暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設し、
鍵テーブルには、前記複数N通りの暗号化プロトコルのそれぞれに用いられる暗号鍵が格納されており、
第2の暗号通信処理部が、前記複数N通りの暗号化プロトコルのうちの少なくとも1つの特定の暗号化プロトコルに基づく暗号通信を行う機能を有し、当該特定の暗号化プロトコルに基づく暗号通信を行うために開設された暗号通信路を介して第1の情報処理装置との間で暗号通信を行い、
ゾーンテーブルは、個々の格納ゾーンと個々の暗号処理細則との対応関係に加えて、更に、個々の格納ゾーンと個々の暗号化プロトコルとの対応関係を示しており、
第1の暗号通信処理部は、前記ゾーンテーブルを参照して、指定暗号処理細則を認識するとともに、指定格納場所が所属する格納ゾーンに対応づけられている暗号化プロトコルを指定暗号化プロトコルとして認識し、前記指定暗号化プロトコルに基づき、指定暗号鍵を用いて、指定暗号処理細則に従った手順を実行することにより、暗号通信を行うための暗号通信路を開設することを特徴とする情報処理システム。 The information processing system according to any one of claims 1 to 13,
The first cryptographic communication processing unit has a function of performing cryptographic communication based on a plurality of N (N≧2) encryption protocols, and is designated from the second information processing device among the N encryption protocols. Established an encrypted communication path for performing encrypted communication based on the specified specified encryption protocol,
The key table stores the encryption key used for each of the plurality N of encryption protocols,
The second cryptographic communication processing unit has a function of performing cryptographic communication based on at least one specific encryption protocol of the plurality of N types of encryption protocols, and performs the cryptographic communication based on the specific encryption protocol. To perform cryptographic communication with the first information processing device through the cryptographic communication channel established for performing
The zone table shows the correspondence between individual storage zones and individual cryptographic processing rules, as well as the correspondence between individual storage zones and individual encryption protocols.
The first cryptographic communication processing unit refers to the zone table, recognizes the designated cryptographic processing rules, and recognizes the encryption protocol associated with the storage zone to which the designated storage location belongs as the designated encryption protocol. Then, based on the specified encryption protocol, a specified encryption key is used to execute a procedure in accordance with detailed rules for specified encryption processing, thereby establishing an encrypted communication path for encrypted communication. system.
第1の情報処理装置が、ICカードに、GlobalPlatform (登録商標)の仕様に準拠した管理プログラムを組み込むことにより構成された装置であり、
ゾーンテーブルとして、個々の格納ゾーンに対して、それぞれ前記仕様に基づくパラメータ「i」の特定の値を対応づけたテーブルを用いることを特徴とする情報処理システム。 The information processing system according to any one of claims 1 to 14,
The first information processing device is a device configured by incorporating a management program compliant with GlobalPlatform (registered trademark) specifications into an IC card,
An information processing system characterized by using, as a zone table, a table in which a specific value of a parameter "i" based on the above specifications is associated with each storage zone.
前記第1の情報処理装置が、所定の暗号化プロトコルに基づく暗号通信を行うプログラムを実行可能な状態に準備するプログラム準備段階と、
前記第1の情報処理装置が、複数の格納場所にそれぞれ前記暗号化プロトコルに用いられる暗号鍵を格納した鍵テーブルを準備する鍵テーブル準備段階と、
前記第1の情報処理装置が、前記鍵テーブル上に、1つもしくは複数の格納場所を含む格納ゾーンを複数組設定し、個々の格納ゾーンと個々の暗号処理細則との対応関係を示すゾーンテーブルを準備するゾーンテーブル準備段階と、
前記第2の情報処理装置が、前記第1の情報処理装置に対して、暗号通信を行うための暗号通信路の開設を指示する暗号通信路開設コマンドを与える暗号通信路開設指示段階と、
前記第1の情報処理装置が、受信した前記暗号通信路開設コマンドに基づいて、前記所定の暗号化プロトコルに基づく暗号通信を行うための暗号通信路を開設する暗号通信路開設段階と、
前記第1の情報処理装置および前記第2の情報処理装置が、開設された暗号通信路を介して暗号通信を行う暗号通信段階と、
を有し、
前記暗号通信路開設コマンドには、前記鍵テーブル内の特定の格納場所を示す格納場所指定情報が含まれており、
前記暗号通信路開設段階では、前記暗号通信路開設コマンドに含まれている前記格納場所指定情報によって指定された指定格納場所に格納されている暗号鍵を指定暗号鍵として読み出し、前記ゾーンテーブルを参照して前記指定格納場所が所属する格納ゾーンに対応づけられている暗号処理細則を指定暗号処理細則として認識し、前記指定暗号鍵を用いて、前記指定暗号処理細則に従った手順を実行することにより、暗号通信を行うための暗号通信路を開設することを特徴とする暗号通信方法。 A cryptographic communication method for performing cryptographic communication between a first information processing device and a second information processing device based on a predetermined encryption protocol,
A program preparation step in which the first information processing apparatus prepares a program for performing encrypted communication based on a predetermined encryption protocol in an executable state;
A key table preparation step in which the first information processing apparatus prepares a key table in each of which a plurality of storage locations stores an encryption key used for the encryption protocol;
The first information processing device sets a plurality of sets of storage zones including one or a plurality of storage locations on the key table, and indicates a correspondence relationship between each storage zone and each cryptographic processing rule. Zone table preparation stage,
An encryption communication path opening instruction stage in which the second information processing apparatus gives to the first information processing apparatus an encryption communication path opening command instructing to open an encryption communication path for performing encrypted communication;
An encryption communication path opening step in which the first information processing apparatus opens an encryption communication path for performing encrypted communication based on the predetermined encryption protocol based on the received encryption communication path opening command;
A cryptographic communication step in which the first information processing apparatus and the second information processing apparatus perform cryptographic communication via an established cryptographic communication path;
Have
The encryption communication path opening command includes storage location designation information indicating a specific storage location in the key table,
In the encryption communication path opening step, the encryption key stored in the specified storage location specified by the storage location specification information included in the encryption communication path opening command is read as a specified encryption key, and the zone table is referred to. Then, the cryptographic processing detailed rule associated with the storage zone to which the specified storage location belongs is recognized as the specified cryptographic processing detailed rule, and the procedure according to the specified cryptographic processing detailed rule is executed using the specified cryptographic key. According to the above, a cryptographic communication method for opening a cryptographic communication path for performing cryptographic communication.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016020825A JP6720558B2 (en) | 2016-02-05 | 2016-02-05 | Information processing system and encryption communication method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016020825A JP6720558B2 (en) | 2016-02-05 | 2016-02-05 | Information processing system and encryption communication method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017139698A JP2017139698A (en) | 2017-08-10 |
JP6720558B2 true JP6720558B2 (en) | 2020-07-08 |
Family
ID=59566141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016020825A Active JP6720558B2 (en) | 2016-02-05 | 2016-02-05 | Information processing system and encryption communication method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6720558B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109410396A (en) * | 2018-10-14 | 2019-03-01 | 浙江鸿利锁业有限公司 | A kind of smart lock data encryption and transmission method and the leased equipment using it |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6675298B1 (en) * | 1999-08-18 | 2004-01-06 | Sun Microsystems, Inc. | Execution of instructions using op code lengths longer than standard op code lengths to encode data |
JP2004015667A (en) * | 2002-06-10 | 2004-01-15 | Takeshi Sakamura | Inter ic card encryption communication method, inter ic card encryption communication in electronic ticket distribution system, and ic card |
JP2010044602A (en) * | 2008-08-13 | 2010-02-25 | Hitachi Ltd | Protocol customize system of storage medium, storage medium, parameter generation device, and method and program of customizing protocol of storage medium |
US8934625B2 (en) * | 2009-03-25 | 2015-01-13 | Pacid Technologies, Llc | Method and system for securing communication |
-
2016
- 2016-02-05 JP JP2016020825A patent/JP6720558B2/en active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109410396A (en) * | 2018-10-14 | 2019-03-01 | 浙江鸿利锁业有限公司 | A kind of smart lock data encryption and transmission method and the leased equipment using it |
CN109410396B (en) * | 2018-10-14 | 2021-01-01 | 浙江鸿利锁业有限公司 | Intelligent lock data encryption transmission method and leasing equipment applying same |
Also Published As
Publication number | Publication date |
---|---|
JP2017139698A (en) | 2017-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11615411B2 (en) | POS system with white box encryption key sharing | |
US10757571B2 (en) | Internet of things device | |
RU2399087C2 (en) | Safe data storage with integrity protection | |
EP2698756B1 (en) | Local Trusted Service Manager | |
CN106464498B (en) | Method for authenticating a first electronic entity by a second electronic entity and electronic entity | |
CN101828357B (en) | Credential provisioning method and device | |
JP2017514421A (en) | Authentication apparatus and method | |
CN1910531B (en) | Method and system used for key control of data resource, related network | |
JP6930053B2 (en) | Data encryption method and system using device authentication key | |
KR101834504B1 (en) | Apparatus and method for encrypting and decrypting | |
CN107872315B (en) | Data processing method and intelligent terminal | |
JP6540381B2 (en) | Information processing system and encryption communication method | |
CN116455572B (en) | Data encryption method, device and equipment | |
CN111818492B (en) | Bluetooth beacon, data transmission method thereof, and readable storage medium | |
JP6720558B2 (en) | Information processing system and encryption communication method | |
KR101834522B1 (en) | Apparatus for confirming data and method for confirming data using the same | |
EP3337083A1 (en) | Method for secure management of secrets in a hierarchical multi-tenant environment | |
KR101829423B1 (en) | Apparatus for encrypting or decrypting and method for encrypting or decrypting using the same | |
KR101575992B1 (en) | A Machine Capable of Storing Firmware Event Log and Method of Storing Firmware Event Log Thereof | |
KR101834515B1 (en) | Apparatus for encrypting and decrypting including input unit | |
JP2007316865A (en) | Memory card | |
Baeten et al. | Improving smart grid security using smart cards | |
JP2018067795A (en) | Information processing unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20181226 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20190621 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20191030 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20191113 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20191203 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200130 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20200519 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200601 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6720558 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |