[go: up one dir, main page]

JP2018037877A - IC card for one-time authentication - Google Patents

IC card for one-time authentication Download PDF

Info

Publication number
JP2018037877A
JP2018037877A JP2016169822A JP2016169822A JP2018037877A JP 2018037877 A JP2018037877 A JP 2018037877A JP 2016169822 A JP2016169822 A JP 2016169822A JP 2016169822 A JP2016169822 A JP 2016169822A JP 2018037877 A JP2018037877 A JP 2018037877A
Authority
JP
Japan
Prior art keywords
authentication
card
seed
server
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2016169822A
Other languages
Japanese (ja)
Inventor
大河 克好
Katsuyoshi Okawa
克好 大河
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fom Res & Institute LLC
Original Assignee
Fom Res & Institute LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fom Res & Institute LLC filed Critical Fom Res & Institute LLC
Priority to JP2016169822A priority Critical patent/JP2018037877A/en
Priority to PCT/JP2017/030973 priority patent/WO2018043498A1/en
Publication of JP2018037877A publication Critical patent/JP2018037877A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】1枚のICカードを、1以上のサービスの認証のために使用することができるようにする。【解決手段】ICカード1のFeRAM14の認証シード141には、1以上のサービスに共通の1組の認証シードと共通暗号鍵が記憶されている。1以上のサービスに共通の1組の認証シードと共通暗号鍵を、認証シード141から演算スタック131にコピーして、サーバ装置との間のワンタイム相互認証に使用する。認証シード141には、ICカード1からサーバ装置に送信されることのない隠蔽固定情報も含まれており、この隠蔽固定情報に基づいてワンタイム認証子を作成するので、クライアントまたはサーバに成りすましをされる恐れがない。【選択図】図4An IC card can be used for authentication of one or more services. An authentication seed 141 of an FeRAM 14 of an IC card 1 stores a set of authentication seeds common to one or more services and a common encryption key. A set of authentication seed and common encryption key common to one or more services is copied from the authentication seed 141 to the operation stack 131 and used for one-time mutual authentication with the server device. The authentication seed 141 includes concealment / fixed information that is not transmitted from the IC card 1 to the server device. A one-time authenticator is created based on the concealment / fixed information. There is no fear of being done. [Selection] Figure 4

Description

本発明は、ワンタイム認証子を用いて、サーバ装置の間で認証を行うワンタイム認証用ICカードに関する。   The present invention relates to a one-time authentication IC card that performs authentication between server devices using a one-time authenticator.

従来より、クライアントとサーバの間で認証を行うに際し、認証に成功するたびに、乱数などのシードを更新し、次回認証時に、それらのシードからワンタイム認証子を生成し、認証に使用するワンタイム相互認証システムが知られている(例えば、特許文献1参照)。   Conventionally, when authenticating between a client and a server, a seed such as a random number is updated each time authentication is successful, and a one-time authenticator is generated from the seed at the next authentication and used for authentication. A time mutual authentication system is known (see, for example, Patent Document 1).

特開2012−34292号公報JP 2012-34292 A

(1)特許文献1におけるクライアント装置は、端末装置であった。特許文献1でもICカードが使用されているが、それは、携帯型記憶装置として使用されており、クライアント装置として使用されているわけではない。したがって、特許文献1におけるワンタイム相互認証システムでは、クライアント装置として、ICカードとは別に、端末装置が必要であった。
(2)クライアント側認証子とサーバ側認証子の生成に使用されるサーバ側シードが共通である場合には、クライアント側認証子とサーバ側認証子により、クライアント側今回認証用乱数とクライアント側次回認証用乱数を求められる可能性がある。クライアント側次回認証用乱数が求められたならば、共通暗号鍵を導出することが可能となり、次回認証においてクライアントまたはサーバに成りすましをされる恐れがある。
(1) The client device in Patent Document 1 is a terminal device. Even in Patent Document 1, an IC card is used, but it is used as a portable storage device, not as a client device. Therefore, in the one-time mutual authentication system in Patent Document 1, a terminal device is required as a client device separately from the IC card.
(2) When the server-side seed used for generating the client-side authenticator and the server-side authenticator is common, the client-side authenticator and the server-side authenticator use the client-side current authentication random number and the client-side next time You may be asked for a random number for authentication. If the random number for the next authentication on the client side is obtained, a common encryption key can be derived, and there is a risk of impersonating the client or server in the next authentication.

(3)従来は、ICカードの不揮発性メモリに1組の認証シードしか記憶してなかったので、基本的に1つのサービスのための認証しかできなかった。
(4)カードに記憶されている情報を盗み取られ(スキミング)、カードを偽造して使用されることを防止する必要がある。
(3) Conventionally, since only one set of authentication seeds was stored in the non-volatile memory of the IC card, authentication for only one service was basically possible.
(4) It is necessary to prevent information stored in the card from being stolen (skimmed) and forged from being used.

本発明は、上記の問題に鑑みてなされたものであり、端末装置が不要であり、次回認証時においてクライアントまたはサーバに成りすましをされる恐れが少なく、且つ1枚のカードで1以上のサービスのための認証が可能なICカードを提供することを目的とする。   The present invention has been made in view of the above problems, does not require a terminal device, is less likely to be impersonated as a client or a server at the next authentication, and has one card with one or more services. An object of the present invention is to provide an IC card that can be authenticated.

(1)本発明に係るICカードは、不揮発性メモリとRAMを内蔵したICカードであって、
1以上のサービスに共通の1組の認証シードおよび共通暗号鍵を前記不揮発性メモリに記憶し、
前記1以上のサービスに共通の1組の認証シードおよび共通暗号鍵を、前記不揮発性メモリから前記RAM上の演算スタックにコピーして、前記RAM上の演算スタックにコピーされた1組の認証シードに基づいてワンタイム認証子を生成し、前記ICカードとサーバ装置との間の相互認証に使用し、前記RAM上の演算スタックにコピーされた1組の認証シードに基づいて、前記サーバ装置から受信したワンタイム認証子の正当性を判定することを特徴とする。
(1) An IC card according to the present invention is an IC card incorporating a nonvolatile memory and a RAM,
Storing a set of authentication seed and common encryption key common to one or more services in the non-volatile memory;
A set of authentication seeds and a common encryption key common to the one or more services are copied from the non-volatile memory to the operation stack on the RAM, and then copied to the operation stack on the RAM Based on a set of authentication seeds that are used for mutual authentication between the IC card and the server device and copied to the operation stack on the RAM, from the server device. The validity of the received one-time authenticator is determined.

(1)の構成によれば、端末装置は不要であり、1枚のICカードを1以上のサービスの認証のために使うことができる。また、認証シードおよび共通暗号鍵は、不揮発性メモリに記憶しているので、スキミングにより盗み取られることがない。   According to the configuration of (1), a terminal device is unnecessary, and one IC card can be used for authentication of one or more services. Moreover, since the authentication seed and the common encryption key are stored in the nonvolatile memory, they are not stolen by skimming.

(2)本発明に係るICカードは、前記認証シードが、前記ICカードから前記サーバ装置へ送信されず、また相互認証後に更新されない隠蔽固定情報を含むことを特徴とする。   (2) The IC card according to the present invention is characterized in that the authentication seed includes concealment fixing information that is not transmitted from the IC card to the server device and is not updated after mutual authentication.

(2)の構成によれば、ICカードからサーバ装置へ送信されない隠蔽固定情報に基づいてワンタイム認証子が生成されるので、たとえ共通暗号鍵が求められても、クライアントまたはサーバに成りすましをされる恐れがない。   According to the configuration of (2), since the one-time authenticator is generated based on the concealment fixed information that is not transmitted from the IC card to the server device, even if a common encryption key is requested, it is impersonated as a client or a server. There is no fear.

(3)本発明に係るICカードは、前記ICカードで送信データを暗号化する際に使用する共通暗号鍵が、前記サーバ装置で送信データを暗号化する際に使用する共通暗号鍵とは別の共通暗号鍵であることを特徴とする。   (3) In the IC card according to the present invention, the common encryption key used when the transmission data is encrypted by the IC card is different from the common encryption key used when the server device encrypts the transmission data. It is a common encryption key.

(3)の構成によれば、ICカードとサーバ装置とで、別々の暗号鍵により送信データを暗号化するので、セキュリティを強化することができる。   According to the configuration of (3), the transmission data is encrypted with different encryption keys in the IC card and the server device, so that security can be enhanced.

(4)本発明に係るICカードは、ICカード側認証子生成に使用されるICカード側認証シードは、サーバ装置側ワンタイム認証子生成に使用されるICカード側認証シードとは別のシードであることを特徴とする。   (4) In the IC card according to the present invention, the IC card side authentication seed used for generating the IC card side authenticator is a seed different from the IC card side authentication seed used for generating the server device side one-time authenticator. It is characterized by being.

(4)の構成によれば、ICカード側認証子生成に使用されるICカード側認証シードとサーバ装置側ワンタイム認証子生成に使用されるICカード側認証シードとの間に重複がないので、第三者にICカード側認証シードを求められ難い。   According to the configuration of (4), there is no overlap between the IC card side authentication seed used for IC card side authenticator generation and the IC card side authentication seed used for server device side one-time authenticator generation. It is difficult for a third party to ask for an IC card authentication seed.

(5)本発明に係るICカードは、前記サーバ装置において生成し、暗号化して送信されたICカード側認証シードを、ICカードが受信して復号してワンタイム認証子の作成に使用することを特徴とする。   (5) The IC card according to the present invention is generated by the server device, encrypted and transmitted, and the IC card side authentication seed is received by the IC card and decrypted and used to create a one-time authenticator. It is characterized by.

(5)の構成によれば、ICカードのICチップとして、乱数発生の機能を有しないチップを使用することが可能となる。また、悪意のある第三者がICカードをいくら調べても、発生する乱数を予測することが不可能なので、安全性が高まる。   According to the configuration of (5), it is possible to use a chip that does not have a random number generation function as the IC chip of the IC card. In addition, no matter how much a malicious third party examines the IC card, it is impossible to predict the generated random number, so safety is increased.

(6)本発明に係るICカードは、前回の認証の終了時に、今回の認証のためのクライアント側ワンタイム認証子を、前記不揮発性メモリに記憶させることを特徴とする。   (6) The IC card according to the present invention is characterized in that a client-side one-time authenticator for the current authentication is stored in the nonvolatile memory at the end of the previous authentication.

(6)の構成によれば、今回の認証処理に要する時間を短くすることができる。   According to the configuration of (6), the time required for the current authentication process can be shortened.

(7)本発明に係るICカードは、不揮発性メモリとRAMを内蔵したICカードであって、
1以上のサービス要求識別に対応した1以上の組の認証シードおよび共通暗号鍵を前記不揮発性メモリに記憶し、
特定のサービス要求識別に対応した1組の認証シードおよび共通暗号鍵を、前記不揮発性メモリから前記RAM上の演算スタックにコピーして、前記RAM上の演算スタックにコピーされた1組の認証シードに基づいてワンタイム認証子を生成し、前記ICカードとサーバ装置との間の相互認証に使用し、前記RAM上の演算スタックにコピーされた1組の認証シードに基づいて、前記サーバ装置から受信したワンタイム認証子の正当性を判定することを特徴とする。
(7) An IC card according to the present invention is an IC card incorporating a nonvolatile memory and a RAM,
Storing in the non-volatile memory one or more sets of authentication seeds and a common encryption key corresponding to one or more service request identifications;
A set of authentication seeds and a common encryption key corresponding to a specific service request identification are copied from the non-volatile memory to the operation stack on the RAM, and then copied to the operation stack on the RAM. Based on a set of authentication seeds that are used for mutual authentication between the IC card and the server device and copied to the operation stack on the RAM, from the server device. The validity of the received one-time authenticator is determined.

(7)の構成によれば、端末装置は不要であり、1枚のICカードを、1以上のサービスにおける認証のために使用することができる。   According to the configuration of (7), the terminal device is unnecessary, and one IC card can be used for authentication in one or more services.

本発明によれば、1枚のICカードを1以上のサービスの認証のために使うことができ、クライアントまたはサーバに成りすましをされる恐れがないICカードを提供することが可能となる。また、認証シードおよび共通暗号鍵は、不揮発性メモリに記憶しているので、スキミングにより盗み取られることがない。   According to the present invention, one IC card can be used for authentication of one or more services, and it is possible to provide an IC card that can be impersonated as a client or a server. Moreover, since the authentication seed and the common encryption key are stored in the nonvolatile memory, they are not stolen by skimming.

本発明の実施の形態1に係るワンタイム認証システムの構成を示す図である。It is a figure which shows the structure of the one-time authentication system which concerns on Embodiment 1 of this invention. 1枚のカードにより1以上のサービスを提供する第1の方法を示す図である。It is a figure which shows the 1st method of providing one or more services by one card | curd. 1枚のカードにより1以上のサービスを提供する第2の方法を示す図である。It is a figure which shows the 2nd method of providing one or more services by one card | curd. 本発明の実施の形態1に係るICカードの構成を示す図である。It is a figure which shows the structure of the IC card which concerns on Embodiment 1 of this invention. 本発明の実施の形態1に係る認証シードの構成を示す図である。It is a figure which shows the structure of the authentication seed which concerns on Embodiment 1 of this invention. 本発明の実施の形態1に係る演算スタックの構成を示す図である。It is a figure which shows the structure of the arithmetic stack which concerns on Embodiment 1 of this invention. 本発明の実施の形態1に係る論理回路の構成を示す図である。It is a figure which shows the structure of the logic circuit which concerns on Embodiment 1 of this invention. 本発明の実施の形態1に係る出力メモリの構成を示す図である。It is a figure which shows the structure of the output memory which concerns on Embodiment 1 of this invention. 本発明の実施の形態1に係る入力メモリの構成を示す図である。It is a figure which shows the structure of the input memory which concerns on Embodiment 1 of this invention. 本発明の実施の形態1に係るサーバ装置の構成を示す図である。It is a figure which shows the structure of the server apparatus which concerns on Embodiment 1 of this invention. 本発明の実施の形態1に係るサーバ装置において実現される処理部を示す図である。It is a figure which shows the process part implement | achieved in the server apparatus which concerns on Embodiment 1 of this invention. 本発明の実施の形態1において実現されるワンタイム認証における処理について説明するシーケンス図である。It is a sequence diagram explaining the process in the one-time authentication implement | achieved in Embodiment 1 of this invention. 本発明の実施の形態1において実現されるワンタイム認証における処理について説明するシーケンス図である。It is a sequence diagram explaining the process in the one-time authentication implement | achieved in Embodiment 1 of this invention. 本発明の実施の形態1において実現されるワンタイム認証における処理について説明するシーケンス図である。It is a sequence diagram explaining the process in the one-time authentication implement | achieved in Embodiment 1 of this invention. 本発明の実施の形態1におけるシードテーブルの構造の一例を示す図である。It is a figure which shows an example of the structure of the seed table in Embodiment 1 of this invention. 本発明の実施の形態1における認証子テーブルの一例を示す図である。It is a figure which shows an example of the authenticator table in Embodiment 1 of this invention. 本発明の実施の形態1におけるサーバ装置によるデータ処理について説明するフローチャートである。It is a flowchart explaining the data processing by the server apparatus in Embodiment 1 of this invention. 本発明の実施の形態1におけるサーバ装置によるデータ処理について説明するフローチャートである。It is a flowchart explaining the data processing by the server apparatus in Embodiment 1 of this invention. 本発明の実施の形態2における出力メモリの構成を示す図である。It is a figure which shows the structure of the output memory in Embodiment 2 of this invention. 本発明の実施の形態2における入力メモリの構成を示す図である。It is a figure which shows the structure of the input memory in Embodiment 2 of this invention. 本発明の実施の形態2において実現されるワンタイム認証における処理について説明するシーケンス図である。It is a sequence diagram explaining the process in the one-time authentication implement | achieved in Embodiment 2 of this invention. 本発明の実施の形態2において実現されるワンタイム認証における処理について説明するシーケンス図である。It is a sequence diagram explaining the process in the one-time authentication implement | achieved in Embodiment 2 of this invention. 本発明の実施の形態2において実現されるワンタイム認証における処理について説明するシーケンス図である。It is a sequence diagram explaining the process in the one-time authentication implement | achieved in Embodiment 2 of this invention. 本発明の実施の形態2におけるサーバ装置によるデータ処理について説明するフローチャートである。It is a flowchart explaining the data processing by the server apparatus in Embodiment 2 of this invention. 本発明の実施の形態2におけるサーバ装置によるデータ処理について説明するフローチャートである。It is a flowchart explaining the data processing by the server apparatus in Embodiment 2 of this invention.

実施の形態1.
図1は、本発明の実施の形態に係るワンタイム認証システムの構成を示す図である。
図1に示すシステムでは、ICカード用リーダライタ2がネットワーク3に接続されている。ネットワーク3には、サーバ装置4も接続されている。ICカード用リーダライタ2は、ディスプレイを備えていてもよい。ICカード1は、リーダライタ2に接近させて、またはリーダライタ2に電気的に接続して使用される。ICカード1は、リーダライタ2を使用して、サーバ装置4との間でデータ通信を行うことができる。
Embodiment 1 FIG.
FIG. 1 is a diagram showing a configuration of a one-time authentication system according to an embodiment of the present invention.
In the system shown in FIG. 1, an IC card reader / writer 2 is connected to a network 3. A server device 4 is also connected to the network 3. The IC card reader / writer 2 may include a display. The IC card 1 is used in proximity to the reader / writer 2 or electrically connected to the reader / writer 2. The IC card 1 can perform data communication with the server device 4 using the reader / writer 2.

本発明のICカードは、1以上のサービスにおける認証に使用することができる。
1枚のICカードにより1以上のサービスを提供する方法として、次の2通りの方法が考えられる。
第1の方法は、ICカードには1組の認証シードを記憶しておき、どのサービスを利用するかの指定をユーザが行う方法である。
The IC card of the present invention can be used for authentication in one or more services.
As a method of providing one or more services with one IC card, the following two methods are conceivable.
The first method is a method in which a set of authentication seeds is stored in the IC card, and the user designates which service to use.

図2に第1の方法の概要を示す。
図2のICカード1は、非接触型を想定している。ICカード1がディスプレイ付きリーダライタ2に接近すると、その接近を検出したリーダライタ2は、パラメータを含まない読出要求の信号をICカード1へ送信する。
FIG. 2 shows an outline of the first method.
The IC card 1 in FIG. 2 is assumed to be a non-contact type. When the IC card 1 approaches the reader / writer 2 with a display, the reader / writer 2 that has detected the approach transmits a read request signal not including parameters to the IC card 1.

リーダライタ2が対応付けられている認証サーバ4が存在し、起動されたICカード1と、認証サーバ4との間でワンタイム認証が開始し実行される。認証サーバ4は、ICカード1の所有者が利用できるサービスを記憶しており、そのサービスの一覧をリーダライタ2のディスプレイに表示する。ユーザは、ディスプレイを見て、利用するサービスを選択する。リーダライタ2は、選択されたサービスのサービスサーバと接続する。
このようにして、ICカードには1組の認証シードを記憶しておき、1以上のサービスを利用することができる。
There is an authentication server 4 associated with the reader / writer 2, and one-time authentication is started and executed between the activated IC card 1 and the authentication server 4. The authentication server 4 stores services available to the owner of the IC card 1 and displays a list of services on the display of the reader / writer 2. The user looks at the display and selects a service to be used. The reader / writer 2 connects to the service server of the selected service.
In this way, a set of authentication seeds can be stored in the IC card, and one or more services can be used.

第2の方法は、ICカード1には1以上の組の認証シードを記憶しておき、どのリーダライタを利用したかに応じて、利用するサービスが決まる方法である。   The second method is a method in which one or more sets of authentication seeds are stored in the IC card 1 and a service to be used is determined according to which reader / writer is used.

図3に第2の方法の概要を示す。
図3のICカード1も、非接触型を想定している。図3のリーダライタ2は、サービス毎に存在している。したがって、リーダライタ2は、自分がどのサービスのリーダライタであるのかをサービス要求識別として記憶している。
FIG. 3 shows an outline of the second method.
The IC card 1 in FIG. 3 is also assumed to be a non-contact type. The reader / writer 2 in FIG. 3 exists for each service. Therefore, the reader / writer 2 stores which service the reader / writer is as a service request identification.

ICカード1が、ディスプレイ付きリーダライタ2に接近すると、その接近を検出したリーダライタ2は、ICカード1に対して、サービスを特定するサービス要求識別をパラメータとして含む読出要求の信号を送信する。また、リーダライタ2は、認証サーバへもサービス要求識別のデータを送信する。
ICカード1は、自分が記憶している1以上の組の認証シードから、受信したサービス要求識別によって特定される1組の認証シードを読み出し、ワンタイム認証処理に使用する。
When the IC card 1 approaches the reader / writer 2 with a display, the reader / writer 2 that has detected the approach transmits to the IC card 1 a read request signal that includes a service request identification that identifies the service as a parameter. The reader / writer 2 also transmits service request identification data to the authentication server.
The IC card 1 reads out one set of authentication seeds specified by the received service request identification from one or more sets of authentication seeds stored in the IC card 1 and uses them for one-time authentication processing.

ICカードの構成、動作としては、1以上の組の認証シードを記憶する第2の方法の方が複雑であるので、以後の実施例は、第2の方法の1以上の組の認証シードを記憶する構成で説明する。   Since the second method for storing one or more sets of authentication seeds is more complicated as the configuration and operation of the IC card, the following embodiments will use one or more sets of authentication seeds in the second method. A description will be given of the storage configuration.

(1)各装置の構成
図4は、ICカード1の機能ブロック図である。
ICカード1は、半導体装置であるICチップ10を含んでいる。
ICチップ10は、制御部11と、ROM12と、RAM13と、不揮発性メモリの一種であるFeRAM(Ferroelectric Random Access Memory)14と、外部からの信号を送受するためのアンテナ17と、受信部である受信回路15と送信部である送信回路16と、内部バス18と、から構成されている。FeRAM14は、強誘電体を利用した不揮発性メモリであり、高速アクセスが可能で、高い信頼性を有している。
(1) Configuration of Each Device FIG. 4 is a functional block diagram of the IC card 1.
The IC card 1 includes an IC chip 10 that is a semiconductor device.
The IC chip 10 is a control unit 11, a ROM 12, a RAM 13, a FeRAM (Ferroelectric Random Access Memory) 14 which is a kind of nonvolatile memory, an antenna 17 for transmitting and receiving signals from the outside, and a receiving unit. The receiving circuit 15 includes a transmitting circuit 16 as a transmitting unit, and an internal bus 18. The FeRAM 14 is a non-volatile memory using a ferroelectric, can be accessed at high speed, and has high reliability.

制御部11は、乱数を発生させる処理を行ったり、ワンタイム認証子を作成したり、共通暗号鍵を更新したり、データの暗号化、復号を行ったり、各種の判断を行う部分である。制御部11は、CPUがプログラムを実行して構成することもできるが、CPUなしの電子回路で構成することもできる。ここでは、CPUなしの電子回路で構成することとする。
ROM12には、ICカードに固有のカードID121のように、変更する必要のないデータを格納している。
FeRAM14には、ワンタイム認証子を作成するためのシードや共通暗号鍵を保持しておくための認証シード141が格納されている。
RAM13には、データを一時的に記憶しておくための演算スタック131と、ICカード1への入力データが格納される入力メモリ132と、ICカード1からの出力データが格納される出力メモリ133が設けられている。
The control unit 11 is a part for performing various determinations such as processing for generating a random number, creating a one-time authenticator, updating a common encryption key, encrypting and decrypting data. The control unit 11 can be configured by a CPU executing a program, but can also be configured by an electronic circuit without a CPU. Here, an electronic circuit without a CPU is used.
The ROM 12 stores data that does not need to be changed, such as a card ID 121 unique to the IC card.
The FeRAM 14 stores a seed for creating a one-time authenticator and an authentication seed 141 for holding a common encryption key.
The RAM 13 stores an arithmetic stack 131 for temporarily storing data, an input memory 132 for storing input data to the IC card 1, and an output memory 133 for storing output data from the IC card 1. Is provided.

図5は、認証シード141の領域に保持されるデータを示している。   FIG. 5 shows data held in the area of the authentication seed 141.

認証シード141には、1組または複数組の認証シードが格納されているが、図5には、任意のサービス要求識別iで特定される認証シードの組の例を示す。
CRi(n−1)は、クライアント側で生成され、クライアント側のワンタイム認証子を作成する時に引数として使用されるクライアント側の第1シードである。
CQi(n−1)は、クライアント側で生成され、サーバ側のワンタイム認証子を作成する時に引数として使用される、クライアント側の第2シードである。
CKi(n−1)は、クライアント側でデータを暗号化するときの共通暗号鍵である。
CZiは、クライアント側のワンタイム認証子を作成する時に引数として使用される隠蔽固定情報である。CZiは、ICカード1とサーバ装置4との間の通信で送受信されることがない。
One or a plurality of authentication seeds are stored in the authentication seed 141. FIG. 5 shows an example of a pair of authentication seeds specified by an arbitrary service request identification i.
CRi (n−1) is a first seed on the client side that is generated on the client side and used as an argument when creating a one-time authenticator on the client side.
CQi (n-1) is a second seed on the client side that is generated on the client side and used as an argument when creating a one-time authenticator on the server side.
CKi (n-1) is a common encryption key for encrypting data on the client side.
CZi is concealment fixed information used as an argument when creating a one-time authenticator on the client side. CZi is not transmitted / received by communication between the IC card 1 and the server device 4.

SRi(n−1)は、サーバ側で生成され、サーバ側のワンタイム認証子を作成する時に引数として使用される、サーバ側の第1シードである。
SQi(n−1)は、サーバ側で生成され、クライアント側のワンタイム認証子を作成する時に引数として使用される、サーバ側の第2シードである。
SKi(n−1)は、サーバ側でデータを暗号化するときの共通暗号鍵である。
SZiは、サーバ側のワンタイム認証子を作成する時に引数として使用される隠蔽固定情報である。SZiは、ICカード1とサーバ装置4との間の通信で送受信されることがない。
SRi (n-1) is a first seed on the server side that is generated on the server side and used as an argument when creating a one-time authenticator on the server side.
SQi (n-1) is a second seed on the server side that is generated on the server side and used as an argument when creating a one-time authenticator on the client side.
SKi (n-1) is a common encryption key used when encrypting data on the server side.
SZi is concealment fixed information used as an argument when creating a one-time authenticator on the server side. SZi is not transmitted / received by communication between the IC card 1 and the server device 4.

図6は、演算スタック131の領域に設けられる複数のデータスタックを示している。
CR1(n−1)は、今回(n−1)のワンタイム認証についてのクライアント側の第1シードである。
CQ1(n−1)は、今回(n−1)のワンタイム認証についてのクライアント側の第2シードである。
CK1(n−1)は、今回(n−1)のワンタイム認証時に、次回認証用のクライアント側のシードCR1(n)およびCQ1(n)を暗号化してサーバ装置4へ送信する際のクライアント側暗号鍵である。
CZ1は、クライアント側のワンタイム認証子を作成する時に引数として使用される隠蔽固定情報である。
FIG. 6 shows a plurality of data stacks provided in the area of the arithmetic stack 131.
CR1 (n-1) is the first seed on the client side for the current (n-1) one-time authentication.
CQ1 (n-1) is the second seed on the client side for the one-time authentication of this time (n-1).
CK1 (n-1) is a client when encrypting and transmitting to the server apparatus 4 the seed CR1 (n) and CQ1 (n) on the client side for the next authentication at the time of this time (n-1) one-time authentication. Side encryption key.
CZ1 is concealment fixed information used as an argument when creating a one-time authenticator on the client side.

SR1(n−1)は、今回(n−1)のワンタイム認証についてのサーバ側の第1シードである。
SQ1(n−1)は、今回(n−1)のワンタイム認証についてのサーバ側の第2シードである。
SK1(n−1)は、今回(n−1)のワンタイム認証時に、次回認証用のサーバ側シードSR1(n)およびSQ1(n)を暗号化してICカード1へ送信する際のサーバ側暗号鍵である。
SZ1は、サーバ側のワンタイム認証子を作成する時に引数として使用される隠蔽固定情報である。
SR1 (n-1) is the first seed on the server side for the current (n-1) one-time authentication.
SQ1 (n-1) is the second seed on the server side for the current (n-1) one-time authentication.
SK1 (n-1) is the server side when encrypting and transmitting the server side seed SR1 (n) and SQ1 (n) for the next authentication to the IC card 1 at the time of this time (n-1) one-time authentication. It is an encryption key.
SZ1 is concealment fixed information used as an argument when creating a one-time authenticator on the server side.

CR1(n)は、次回(n)のワンタイム認証についてのクライアント側の第1シードである。
CQ1(n)は、次回(n)のワンタイム認証についてのクライアント側の第2シードである。
CR1 (n) is the first seed on the client side for the next (n) one-time authentication.
CQ1 (n) is the second seed on the client side for the next (n) one-time authentication.

exSは、受信予定サーバIDを格納する領域であり、サーバ側から送信されるワンタイム認証子と照合される。
チェックコードCHECK−Sは、サーバから送信される改竄チェックコードCheckINと照合されるデータが格納される領域である。
exS is an area for storing a scheduled server ID, and is collated with a one-time authenticator transmitted from the server side.
The check code CHECK-S is an area in which data to be collated with the falsification check code CheckIN transmitted from the server is stored.

図7は、制御部11内の論理回路を示している。   FIG. 7 shows a logic circuit in the control unit 11.

RANDは、乱数を発生する乱数発生回路である。
ENCは、暗号化回路である。
DECは、復号回路である。
CMPは、比較回路である。
RAND is a random number generation circuit that generates random numbers.
ENC is an encryption circuit.
DEC is a decoding circuit.
CMP is a comparison circuit.

ハッシュ回路Hash1は、今回のクライアント側のワンタイム認証子C1(n−1)を計算するハッシュ回路である。   The hash circuit Hash1 is a hash circuit that calculates a one-time authenticator C1 (n-1) on the client side at this time.

ハッシュ回路Hash2は、受信予定サーバIDであるexSを計算するハッシュ回路である。   The hash circuit Hash2 is a hash circuit that calculates exS that is a reception scheduled server ID.

ハッシュ回路Hash3は、改竄チェックコードCheckOUTを計算するハッシュ回路である。   The hash circuit Hash3 is a hash circuit that calculates the falsification check code CheckOUT.

ハッシュ回路Hash4は、サーバから送信される改竄チェックコードCheckINと照合されるチェックコードCHECK−Sを計算するハッシュ回路である。   The hash circuit Hash4 is a hash circuit that calculates a check code CHECK-S that is checked against the falsification check code CheckIN transmitted from the server.

ハッシュ回路Hash5は、クライアント側の共通暗号鍵CK1を更新するハッシュ回路である。   The hash circuit Hash5 is a hash circuit that updates the common encryption key CK1 on the client side.

ハッシュ回路Hash6は、サーバ側の共通暗号鍵SK1を更新するハッシュ回路である。   The hash circuit Hash6 is a hash circuit that updates the server-side common encryption key SK1.

図8は、ICカード1から出力されるデータを格納する出力メモリ133の領域を示している。   FIG. 8 shows an area of the output memory 133 that stores data output from the IC card 1.

領域C1(n−1)は、今回のクライアント側ワンタイム認証子C1(n−1)を格納する領域である。
領域CK1(n−1)*CR1(n)は、今回のクライアント側共通暗号鍵CK1(n−1)で、次回認証用クライアント側第1シードCR1(n)を暗号化したものを格納する領域である。
領域CK1(n−1)*CQ1(n)は、今回のクライアント側共通暗号鍵CK1(n−1)で、次回認証用クライアント側第2シードCQ1(n)を暗号化したものを格納する領域である。
領域CheckOUTは、改竄チェックコードCheckOUTを格納する領域である。
Area C1 (n-1) is an area for storing the current client-side one-time authenticator C1 (n-1).
The area CK1 (n-1) * CR1 (n) is an area for storing the current client-side common encryption key CK1 (n-1) obtained by encrypting the next authentication client-side first seed CR1 (n). It is.
Area CK1 (n-1) * CQ1 (n) is an area for storing the current client-side common encryption key CK1 (n-1), which is an encrypted version of the next authentication client-side second seed CQ1 (n). It is.
The area CheckOUT is an area for storing the falsification check code CheckOUT.

図9は、ICカード1に入力するデータを格納する入力メモリ132の領域を示している。   FIG. 9 shows an area of the input memory 132 that stores data to be input to the IC card 1.

領域Si(n−1)は、今回のサーバ側のワンタイム認証子Si(n−1)を格納する領域である。
領域SKi(n−1)*SRi(n)は、今回のサーバ側共通暗号鍵SKi(n−1)で、次回認証用サーバ側第1シードSRi(n)を暗号化したものを格納する領域である。
領域SKi(n−1)*SQi(n)は、今回のサーバ側共通暗号鍵SKi(n−1)で、次回認証用サーバ側第2シードSQi(n)を暗号化したものを格納する領域である。
領域CheckINは、改竄チェックコードCheckINを格納する領域である。
The area Si (n−1) is an area for storing the current one-time authenticator Si (n−1) on the server side.
Area SKi (n-1) * SRi (n) is an area for storing the current server-side common encryption key SKi (n-1), which is obtained by encrypting the next authentication server-side first seed SRi (n). It is.
Area SKi (n-1) * SQi (n) is an area for storing the current server-side common encryption key SKi (n-1), which is obtained by encrypting the next authentication server-side second seed SQi (n). It is.
The area CheckIN is an area for storing the falsification check code CheckIN.

図10は、図1におけるサーバ装置4の構成を示す図である。
図10において、CPU51は、プログラムを実行し、プログラムに記述された処理を実行する演算処理装置である。また、ROM52は、プログラムおよびデータを予め記憶した不揮発性のメモリである。また、RAM53は、プログラムを実行する際にそのプログラムおよびデータを一時的に記憶するメモリである。
FIG. 10 is a diagram showing a configuration of the server device 4 in FIG.
In FIG. 10, a CPU 51 is an arithmetic processing unit that executes a program and executes a process described in the program. The ROM 52 is a nonvolatile memory that stores programs and data in advance. The RAM 53 is a memory that temporarily stores the program and data when the program is executed.

また、インタフェース54は、記憶装置55を接続可能なインタフェース回路である。記憶装置55は、インタフェース54に接続され、図示せぬオペレーティングシステム、ワンタイム認証プログラム61,認証に使用されるデータなど格納する記憶媒体を有する装置である。記憶装置55としては、ハードディスクドライブ、SSDなどが使用される。記憶装置55には認証に使用されるデータとして、シードテーブル群71,認証子テーブル群72,およびICカード属性テーブル73が保持されている。   The interface 54 is an interface circuit to which the storage device 55 can be connected. The storage device 55 is connected to the interface 54 and has a storage medium that stores an operating system (not shown), a one-time authentication program 61, data used for authentication, and the like. As the storage device 55, a hard disk drive, SSD, or the like is used. The storage device 55 holds a seed table group 71, an authenticator table group 72, and an IC card attribute table 73 as data used for authentication.

シードテーブル群71には、サービス要求識別毎のシードテーブルが1枚以上格納されている。任意のサービス要求識別iに対応するシードテーブルを、シードテーブル71iで表すことにする。シードテーブル71iは、最後の相互認証時に更新された、次回認証用シードおよび次回認証用共通暗号鍵を有する。次回認証用シードおよび次回認証用共通暗号鍵は、1または複数のICカード1のそれぞれについて別々に保持される。   The seed table group 71 stores one or more seed tables for each service request identification. A seed table corresponding to an arbitrary service request identification i is represented by a seed table 71i. The seed table 71i has a seed for next authentication and a common encryption key for next authentication updated at the time of the last mutual authentication. The next authentication seed and the next authentication common encryption key are held separately for each of one or a plurality of IC cards 1.

認証子テーブル群72は、サービス要求識別毎の認証子テーブルが1枚以上格納されている。任意のサービス要求識別iに対応する認証子テーブルを、認証子テーブル72iで表すことにする。認証子テーブル72iは、最後の認証時に更新された次回認証用のクライアント側ワンタイム認証子を有する。次回認証用のクライアント側ワンタイム認証子は、1または複数のICカード1のそれぞれについて別々に保持される。   The authenticator table group 72 stores one or more authenticator tables for each service request identification. An authenticator table corresponding to an arbitrary service request identification i is represented by an authenticator table 72i. The authenticator table 72i has a client-side one-time authenticator for next authentication updated at the last authentication. The client side one-time authenticator for the next authentication is held separately for each of one or a plurality of IC cards 1.

ICカード属性テーブル73は、ICカード1のカードID、およびそのカードIDに関連付けられている属性情報(カード所有者情報など)を有するテーブルである。ICカード属性テーブル73は、ワンタイム認証子がワンタイムパスワードであるときに、ワンタイム認証子とともに受信されるカードIDの正当性を判定する際に参照される。   The IC card attribute table 73 is a table having a card ID of the IC card 1 and attribute information (such as card owner information) associated with the card ID. The IC card attribute table 73 is referred to when determining the validity of the card ID received together with the one-time authenticator when the one-time authenticator is a one-time password.

また、インタフェース56は、通信装置57を接続可能なインタフェース回路である。通信装置57は、ネットワークインタフェースカード、モデムなどといったネットワーク3に接続可能な装置である。   The interface 56 is an interface circuit to which the communication device 57 can be connected. The communication device 57 is a device connectable to the network 3 such as a network interface card or a modem.

CPU51、ROM52、RAM53、およびインタフェース54,56は、バスやコントロールチップによって相互にデータ通信可能に接続されている。   The CPU 51, the ROM 52, the RAM 53, and the interfaces 54 and 56 are connected to each other via a bus or a control chip so that data communication can be performed.

図11は、サーバ装置4によって実現される処理部を示すブロック図である。図11に示すように、サーバ装置4において、通信処理部81、およびサーバ側認証処理部82が実現される。   FIG. 11 is a block diagram illustrating a processing unit realized by the server device 4. As shown in FIG. 11, a communication processing unit 81 and a server side authentication processing unit 82 are realized in the server device 4.

通信処理部81は、通信装置57を使用して、所定の通信プロトコルでICカードとネットワークを介してデータ通信を行う。   The communication processing unit 81 uses the communication device 57 to perform data communication with the IC card via a network using a predetermined communication protocol.

サーバ側認証処理部82は、CPU51でワンタイム認証プログラム61が実行されることにより実現され、通信処理部81を使用して、1または複数のICカード1との間でワンタイム認証子に基づく相互認証におけるサーバ側の処理を実行する。   The server-side authentication processing unit 82 is realized by the CPU 51 executing the one-time authentication program 61, and based on the one-time authenticator with one or a plurality of IC cards 1 using the communication processing unit 81. Execute server side processing in mutual authentication.

(2)各装置の動作
ICカード1は、認証シード領域141に、サービス要求識別毎に、隠蔽固定情報CZi,SZi、シードCRi(n−1),CQi(n−1),SRi(n−1),SQi(n−1)、共通暗号鍵CKi(n−1),SKi(n−1)を保持している。
また、サーバ装置も、サービス要求識別毎に、同一の、隠蔽固定情報CZi,SZi、シードCRi(n−1),CQi(n−1),SRi(n−1),SQi(n−1)、共通暗号鍵CKi(n−1),SKi(n−1)を保持している。
(2) Operation of each device The IC card 1 stores the concealment fixed information CZi, SZi, seed CRi (n−1), CQi (n−1), SRi (n−) in the authentication seed area 141 for each service request identification. 1), SQi (n-1), common encryption keys CKi (n-1), and SKi (n-1).
The server device also has the same hidden fixed information CZi, SZi, seed CRi (n-1), CQi (n-1), SRi (n-1), SQi (n-1) for each service request identification. , Common encryption keys CKi (n−1) and SKi (n−1) are held.

ここで、シードCRi(n−1),CQi(n−1)は、サービス要求識別iに対応した今回の相互認証セッションにおけるクライアント側シードであり、シードCRi(n−1)は、クライアント側のワンタイム認証子作成時に、引数として使用され、シードCQiは、サーバ側のワンタイム認証子作成時に、引数として使用される。   Here, seeds CRi (n−1) and CQi (n−1) are client-side seeds in the current mutual authentication session corresponding to service request identification i, and seed CRi (n−1) is a client-side seed. The seed CQi is used as an argument when creating the one-time authenticator on the server side.

また、シードSRi(n−1),SQi(n−1)は、サービス要求識別iに対応した今回の相互認証セッションにおけるサーバ側シードであり、シードSRi(n−1)は、サーバ側のワンタイム認証子作成時に、引数として使用され、シードSQi(n−1)は、クライアント側のワンタイム認証子作成時に、引数として使用される。   The seeds SRi (n−1) and SQi (n−1) are server-side seeds in the current mutual authentication session corresponding to the service request identification i, and the seed SRi (n−1) is a server-side seed. When creating a time authenticator, it is used as an argument, and the seed SQi (n-1) is used as an argument when creating a one-time authenticator on the client side.

共通暗号鍵CKi(n−1)は、サービス要求識別iに対応した今回の相互認証セッションにおいて、次回認証用のクライアント側シードCRi(n)、CQi(n)をICカード1からサーバ装置4へ送信する際に、そのCRi(n)、CQi(n)を暗号化するための共通暗号鍵である。   The common encryption key CKi (n−1) is used to transfer the client side seeds CRi (n) and CQi (n) for the next authentication from the IC card 1 to the server device 4 in the current mutual authentication session corresponding to the service request identification i. This is a common encryption key for encrypting CRi (n) and CQi (n) when transmitting.

共通暗号鍵SKi(n−1)は、サービス要求識別iに対応した今回の相互認証セッションにおいて、次回認証用のサーバ側シードSRi(n)、SQi(n)を、サーバ装置4からICカード1へ送信する際に、そのSRi(n)、SQi(n)を暗号化するための共通暗号鍵である。   In the current mutual authentication session corresponding to the service request identification i, the common encryption key SKi (n-1) is sent from the server device 4 to the IC card 1 for the next authentication server-side seed SRi (n), SQi (n). This is a common encryption key for encrypting the SRi (n) and SQi (n) when transmitting to.

シードCRi(n−1),CQi(n−1),SRi(n−1),SQi(n−1)、および共通暗号鍵CKi(n−1),SKi(n−1)は、サービス要求識別iに対応した相互認証セッションが実行され、相互認証に成功するたびに更新される。   Seed CRi (n-1), CQi (n-1), SRi (n-1), SQi (n-1), and common encryption key CKi (n-1), SKi (n-1) are service requests A mutual authentication session corresponding to the identification i is executed and updated each time the mutual authentication is successful.

(3)ワンタイム認証子に基づく相互認証
図12乃至図14は、図1のシステムにおいて実行される、ワンタイム認証子に基づく相互認証について説明するシーケンス図である。
(3) Mutual Authentication Based on One-Time Authenticator FIGS. 12 to 14 are sequence diagrams illustrating mutual authentication based on the one-time authenticator executed in the system of FIG.

ステップS1おいて、リーダライタ2は、ICカード1の接近を検出する。   In step S1, the reader / writer 2 detects the approach of the IC card 1.

ステップS2において、リーダライタ2よりの読み出し要求時に、パラメータとして、サービス要求識別がICカード1に与えられる。また、サーバ装置4へもサービス要求識別のデータが送信される。ここでは、サービス要求識別“i”が、ICカード1およびサーバ装置4に与えられたとする。   In step S2, upon request for reading from the reader / writer 2, a service request identification is given to the IC card 1 as a parameter. The service request identification data is also transmitted to the server device 4. Here, it is assumed that the service request identification “i” is given to the IC card 1 and the server device 4.

ステップS3において、ICカード1の制御部11は、与えられたサービス要求識別に対応した隠蔽固定情報、シードおよび共通暗号鍵を、認証シード141から演算スタック131にコピーする。
与えられたサービス要求識別が“i”なので、認証シード141のCRi(n−1)、CQi(n−1)、CKi(n−1)、CZi、SRi(n−1)、SQi(n−1)、SKi(n−1)、およびSZiを、演算スタック131のCR1(n−1)、CQ1(n−1)、CK1(n−1)、CZ1,SR1(n−1)、SQ1(n−1)、SK1(n−1)、SZ1にそれぞれコピーする。
In step S3, the control unit 11 of the IC card 1 copies the concealment fixed information, the seed, and the common encryption key corresponding to the given service request identification from the authentication seed 141 to the operation stack 131.
Since the given service request identification is “i”, CRi (n−1), CQi (n−1), CKi (n−1), CZi, SRi (n−1), SQi (n−) of the authentication seed 141 1), SKi (n-1), and SZi are converted into CR1 (n-1), CQ1 (n-1), CK1 (n-1), CZ1, SR1 (n-1), SQ1 ( n-1), SK1 (n-1), and SZ1 are copied.

ステップS4において、乱数生成回路RANDは、第1乱数CRを生成し、その生成された第1乱数CRを、演算スタック131上の次回認証用のクライアント側第1シードCR1(n)にセットする。
また、乱数生成回路RANDは、第2乱数CQを生成し、その生成された第2乱数CQを、演算スタック131上の次回認証用のクライアント側第2シードCQ1(n)にセットする。
In step S4, the random number generation circuit RAND generates a first random number CR, and sets the generated first random number CR in the client-side first seed CR1 (n) for next authentication on the arithmetic stack 131.
The random number generation circuit RAND generates a second random number CQ, and sets the generated second random number CQ in the client-side second seed CQ1 (n) for next authentication on the arithmetic stack 131.

ステップS5において、ハッシュ回路Hash2は、演算スタック131に保持しているSZ1,CQ1(n−1),SR1(n−1)を用いて、次式によりexSを計算して、演算スタック131の対応領域に格納する。exSは、一方向関数で計算される。この一方向関数hash2は、3つの引数をとり、引数の順序によって関数値が異なる関数である。
exS=hash2{SZ1,SR1(n−1),CQ1(n−1)}
In step S5, the hash circuit Hash2 calculates exS by the following expression using SZ1, CQ1 (n-1), SR1 (n-1) held in the operation stack 131, and the correspondence of the operation stack 131. Store in the area. exS is calculated as a one-way function. The one-way function hash2 is a function that takes three arguments and has different function values depending on the order of the arguments.
exS = hash2 {SZ1, SR1 (n-1), CQ1 (n-1)}

ステップS6において、ハッシュ回路Hash1は、今回のワンタイム認証についてのクライアント側ワンタイム認証子C1(n−1)を次式に従って計算し、出力メモリ133の対応領域へ格納する。C1(n−1)は、一方向関数で計算される。この一方向関数hash1は、3つの引数をとり、引数の順序によって関数値が異なる関数である。
C1(n−1)=hash1{CZ1,CR1(n−1),SQ1(n−1)}
In step S <b> 6, the hash circuit Hash <b> 1 calculates the client-side one-time authenticator C <b> 1 (n−1) for the current one-time authentication according to the following equation and stores it in the corresponding area of the output memory 133. C1 (n-1) is calculated by a one-way function. The one-way function hash1 is a function that takes three arguments and has different function values depending on the order of the arguments.
C1 (n-1) = hash1 {CZ1, CR1 (n-1), SQ1 (n-1)}

ステップS7において、暗号化回路ENCは、次回認証用のクライアント側第1シードCR1(n)を共通暗号鍵CK1(n−1)で暗号化して、出力メモリ133の対応領域へ格納する。なお、共通暗号鍵CK1(n−1)で暗号化後のCR1(n)を、CK1(n−1)*CR1(n)と表現する。   In step S7, the encryption circuit ENC encrypts the next authentication client-side first seed CR1 (n) with the common encryption key CK1 (n-1) and stores it in the corresponding area of the output memory 133. Note that CR1 (n) encrypted with the common encryption key CK1 (n-1) is expressed as CK1 (n-1) * CR1 (n).

また、ステップS7において、暗号化回路ENCは、次回認証用のクライアント側第2シードCQ1(n)を通暗号鍵CK1(n−1)で暗号化して、出力メモリの対応領域へ格納する。なお、共通暗号鍵CK1(n−1)で暗号化後のCQ1(n)を、CK1(n−1)*CQ1(n)と表現する。   In step S7, the encryption circuit ENC encrypts the client-side second seed CQ1 (n) for next authentication with the encryption key CK1 (n-1) and stores it in the corresponding area of the output memory. Note that CQ1 (n) after encryption with the common encryption key CK1 (n-1) is expressed as CK1 (n-1) * CQ1 (n).

ステップS8において、ハッシュ回路Hash3は、改竄チェックコードCheckOUTを次式に従って計算し、出力メモリ133の対応領域へ格納する。改竄チェックコードCheckOUTは、一方向関数で計算される。この一方向関数hash3は、4つの引数をとり、引数の順序によって関数値が異なる関数である。
CheckOUT=hash3{CK1(n−1),C1(n−1)、CK1(n−1)*CR1(n),CK1(n−1)*CQ1(n)}
In step S <b> 8, the hash circuit Hash <b> 3 calculates the falsification check code CheckOUT according to the following equation and stores it in the corresponding area of the output memory 133. The falsification check code CheckOUT is calculated by a one-way function. The one-way function hash3 is a function that takes four arguments and has different function values depending on the order of the arguments.
CheckOUT = hash3 {CK1 (n-1), C1 (n-1), CK1 (n-1) * CR1 (n), CK1 (n-1) * CQ1 (n)}

ステップS9において、ICカード1からサーバ装置4へ、C1(n−1),CK1(n−1)*CR1(n),CK1(n−1)*CQ1(n),およびCheckOUTを送信する。   In step S9, C1 (n-1), CK1 (n-1) * CR1 (n), CK1 (n-1) * CQ1 (n), and CheckOUT are transmitted from the IC card 1 to the server device 4.

ステップS10以降においては、サーバ側のサーバ側認証処理部82は、ステップS2で受信したサービ要求識別に対応したシードテーブルおよび認証子テーブルを使用する   After step S10, the server-side authentication processing unit 82 on the server side uses the seed table and authenticator table corresponding to the service request identification received in step S2.

ステップS10において、サーバ側のサーバ側認証処理部82は、受信したクライアント側ワンタイム認証子C1(n−1)が、保持しているサービ要求識別iに対応したクライアント側ワンタイム認証子Ci(n−1)に一致するか判定する。   In step S10, the server-side authentication processing unit 82 on the server side receives the client-side one-time authenticator Ci () corresponding to the service request identification i held by the received client-side one-time authenticator C1 (n-1). n-1) is determined.

受信したワンタイム認証子C1(n−1)が、不正なワンタイム認証子であると判定した場合、サーバ側認証処理部82は、認証失敗と判定し、認証に失敗した旨をICカード1およびリーダライタ2に通知し、処理を終了する。受信したワンタイム認証子C1(n−1)が、認証子テーブル72iに保持されているワンタイム認証子に一致した場合、サーバ側の認証処理部は、ステップS11に移る。   When it is determined that the received one-time authenticator C1 (n-1) is an unauthorized one-time authenticator, the server-side authentication processing unit 82 determines that the authentication has failed, and indicates that the authentication has failed. Then, the reader / writer 2 is notified and the processing is terminated. If the received one-time authenticator C1 (n-1) matches the one-time authenticator stored in the authenticator table 72i, the server-side authentication processing unit proceeds to step S11.

ステップS11において、サーバ側のサーバ側認証処理部82は、保持しているクライアント側共通暗号鍵CKi(n−1)、並びに受信したC1(n−1),CK1(n−1)*CR1(n),およびCK1(n−1)*CQ1(n)を用いて、次式によりチェックコードCHECK−Cを計算する。チェックコードCHECK−Cは、一方向関数で計算される。この一方向関数は、4つの引数をとり、引数の順序によって関数値が異なる関数である。
CHECK−C=hash3{CKi(n−1),C1(n−1),CK1(n−1)*CR1(n),CK1(n−1)*CQ1(n)}
In step S11, the server-side authentication processing unit 82 on the server side holds the client-side common encryption key CKi (n−1) and the received C1 (n−1), CK1 (n−1) * CR1 ( n) and CK1 (n-1) * CQ1 (n) are used to calculate a check code CHECK-C according to the following equation. The check code CHECK-C is calculated as a one-way function. This one-way function takes four arguments, and the function value varies depending on the order of the arguments.
CHECK-C = hash3 {CKi (n-1), C1 (n-1), CK1 (n-1) * CR1 (n), CK1 (n-1) * CQ1 (n)}

ステップS12において、サーバ側のサーバ側認証処理部82は、受信したCheckOUTとステップS11で作成したチェックコードCHECK−Cとを比較する。
受信したCheckOUTが、チェックコードCHECK−Cに一致しない場合、サーバ側認証処理部82は、認証失敗と判定し、認証に失敗した旨をICカード1およびリーダライタ2に通知し、処理を終了する。受信したCheckOUTが、チェックコードCHECK−Cに一致した場合、ステップS13に移る。
In step S12, the server-side authentication processing unit 82 on the server side compares the received CheckOUT with the check code CHECK-C created in step S11.
If the received CheckOUT does not match the check code CHECK-C, the server-side authentication processing unit 82 determines that the authentication has failed, notifies the IC card 1 and the reader / writer 2 that the authentication has failed, and ends the processing. . If the received CheckOUT matches the check code CHECK-C, the process proceeds to step S13.

ステップS13において、サーバ側のサーバ側認証処理部82は、CK1(n−1)*CR1(n)を復号して、次回認証クライアント側第1シードCRi(n)を得る。
また、ステップS13において、サーバ側のサーバ側認証処理部82は、CK1(n−1)*CQ1(n)を復号して、次回認証クライアント側第2シードCQi(n)を得る。
In step S13, the server-side authentication processing unit 82 on the server side decrypts CK1 (n−1) * CR1 (n) to obtain the next authentication client-side first seed CRi (n).
In step S13, the server-side authentication processing unit 82 on the server side decrypts CK1 (n−1) * CQ1 (n) to obtain the next authentication client-side second seed CQi (n).

ステップS14において、サーバ側のサーバ側認証処理部82は、第1乱数SRを生成し、その乱数SRを、次回認証サーバ側第1シードSRi(n)とする。
また、サーバ側のサーバ側認証処理部82は、第2乱数SQを生成し、その乱数SQを、次回認証サーバ側第2シードSQi(n)とする。
In step S14, the server-side authentication processing unit 82 on the server side generates the first random number SR and sets the random number SR as the next authentication server-side first seed SRi (n).
Further, the server-side authentication processing unit 82 on the server side generates a second random number SQ, and uses the random number SQ as the next authentication server-side second seed SQi (n).

サーバ側認証処理部82における乱数生成方法としては、関数により作成される疑似乱数列を用いる方法、原子核の崩壊や抵抗体の熱雑音といったランダムな自然現象を利用して作成される自然乱数を利用する方法の他に、別途作成された自然乱数を格納した乱数ファイルから、乱数を読み出す方法であっても良い。   As a random number generation method in the server-side authentication processing unit 82, a method using a pseudo random number sequence created by a function, a natural random number created using a random natural phenomenon such as a nuclear decay or a thermal noise of a resistor is used. In addition to the method, the random number may be read out from a random number file that stores a separately generated natural random number.

ステップS15において、サーバ側のサーバ側認証処理部82は、次式に従って、今回のワンタイム認証についての、サーバ側ワンタイム認証子Si(n−1)を作成する。
Si(n−1)=hash2{SZi,SRi(n−1),CQi(n−1)}
In step S15, the server-side authentication processing unit 82 on the server side creates a server-side one-time authenticator Si (n−1) for the current one-time authentication according to the following equation.
Si (n-1) = hash2 {SZi, SRi (n-1), CQi (n-1)}

ステップS16において、サーバ側のサーバ側認証処理部82は、共通暗号鍵SKi(n−1)で次回認証サーバ側第1シードSRi(n)を暗号化する。なお、共通暗号鍵SKi(n−1)で暗号化後のSRi(n)を、SKi(n−1)*SRi(n)と表現する。
また、ステップS16において、サーバ側のサーバ側認証処理部82は、共通暗号鍵SKi(n−1)で次回認証サーバ側第2シードSQi(n)を暗号化する。なお、共通暗号鍵SKi(n−1)で暗号化後のSQi(n)を、SKi(n−1)*SQi(n)と表現する。
In step S16, the server-side authentication processing unit 82 on the server side encrypts the next authentication server-side first seed SRi (n) with the common encryption key SKi (n−1). Note that SRi (n) encrypted with the common encryption key SKi (n−1) is expressed as SKi (n−1) * SRi (n).
In step S16, the server-side authentication processing unit 82 on the server side encrypts the next authentication server-side second seed SQi (n) with the common encryption key SKi (n-1). Note that SQi (n) encrypted with the common encryption key SKi (n-1) is expressed as SKi (n-1) * SQi (n).

ステップS17において、サーバ側のサーバ側認証処理部82は、次式に従って、改竄チェックコードCheckINを作成する。
CheckIN=hash4{SKi(n−1),Si(n−1),SKi(n−1)*SRi(n),SKi(n−1)*SQi(n)}
In step S17, the server-side authentication processing unit 82 on the server side creates a falsification check code CheckIN according to the following equation.
CheckIN = hash4 {SKi (n−1), Si (n−1), SKi (n−1) * SRi (n), SKi (n−1) * SQi (n)}

ステップS18において、サーバ装置4からICカード1へ、Si(n−1)、SKi(n−1)*SRi(n),SKi(n−1)*SQi(n)、およびCheckINを送信する。   In step S18, Si (n-1), SKi (n-1) * SRi (n), SKi (n-1) * SQi (n), and CheckIN are transmitted from the server apparatus 4 to the IC card 1.

ステップS19において、比較回路CMPは、exSとサーバ側から受信したSi(n−1)とを比較する。一致しない場合は、認証失敗と判定し、サーバエラーとしてリーダライタ2へ通知した後、処理を終了する。一致した場合は、ステップS20に移る。   In step S19, the comparison circuit CMP compares exS with Si (n−1) received from the server side. If they do not match, it is determined that the authentication has failed, the server error is notified to the reader / writer 2, and the processing is terminated. If they match, the process proceeds to step S20.

ステップS20において、ハッシュ回路Hash4は、演算スタック131に格納されているSK1(n−1)と、サーバ側から受信したSi(n−1),SKi(n−1)*SRi(n),およびSKi(n−1)*SQi(n)を用いて、次式によりチェックコードCHECK−Sを計算する。
CHECK−S=hash4{SK1(n−1),Si(n−1),SKi(n−1)*SRi(n),SKi(n−1)*SQi(n)}
In step S20, the hash circuit Hash4, SK1 (n-1) stored in the arithmetic stack 131, Si (n-1), SKi (n-1) * SRi (n) received from the server side, and Using SKi (n-1) * SQi (n), check code CHECK-S is calculated by the following equation.
CHECK-S = hash4 {SK1 (n-1), Si (n-1), SKi (n-1) * SRi (n), SKi (n-1) * SQi (n)}

ステップS21において、比較回路CMPは、受信したCheckINとステップ22で作成したチェックコードCHECK−Sとを比較する。一致しない場合は、認証失敗と判定し、サーバエラーとしてリーダライタ2へ通知した後、処理を終了する。一致した場合は、ステップS22に移る。   In step S21, the comparison circuit CMP compares the received CheckIN with the check code CHECK-S created in step 22. If they do not match, it is determined that the authentication has failed, the server error is notified to the reader / writer 2, and the processing is terminated. If they match, the process proceeds to step S22.

ステップS22において、制御部11は、次回認証用のクライアント側第1シードCR1(n)を認証シード141のCRi(n−1)へ格納する。
また、ステップS22において、制御部11は、次回認証用のクライアント側第2シードCQ1(n)を認証シード141のCQi(n−1)へ格納する。
In step S <b> 22, the control unit 11 stores the client side first seed CR <b> 1 (n) for next authentication in CRi (n−1) of the authentication seed 141.
In step S <b> 22, the control unit 11 stores the client side second seed CQ <b> 1 (n) for the next authentication in CQi (n−1) of the authentication seed 141.

ステップS23において、復号回路DECは、受信したSKi(n−1)*SRi(n)を、演算スタック131上に保持しているサーバ側共通暗号鍵SK1(n−1)で、SRi(n)へ復号する。復号したSRi(n)を、認証シード141のSRi(n−1)へ格納する。
また、ステップS23において、復号回路DECは、受信したSKi(n−1)*SQi(n)を、演算スタック131上に保持しているサーバ側共通暗号鍵SK1(n−1)で、SQi(n)へ復号する。復号したSQi(n)を、認証シード141のSQi(n−1)へ格納する。
In step S 23, the decryption circuit DEC uses the server-side common encryption key SK 1 (n−1) held on the arithmetic stack 131 to store the received SKi (n−1) * SRi (n) with SRi (n). To decrypt. The decrypted SRi (n) is stored in SRi (n−1) of the authentication seed 141.
In step S 23, the decryption circuit DEC uses the server-side common encryption key SK 1 (n−1) held on the arithmetic stack 131 to store the received SKi (n−1) * SQi (n) with SQi ( Decode to n). The decrypted SQi (n) is stored in SQi (n−1) of the authentication seed 141.

ステップS24において、ハッシュ回路Hash5は、クラインアント側の共通暗号鍵CK1を、次の式で更新する。
CK1(n)=hash5(CR1(n),CQ1(n),CK1(n−1))
ステップS24において、ハッシュ回路Hash6は、サーバ側の共通暗号鍵SK1を、次の式で更新する。
SK1(n)=hash6(SR1(n),SQ1(n),SK1(n−1))
制御部11は、更新されたCK1(n)、SK1(n)を、それぞれ、認証シード141のCKi(n−1)、SKi(n−1)へ書き込む。
In step S24, the hash circuit Hash5 updates the common encryption key CK1 on the client side with the following equation.
CK1 (n) = hash5 (CR1 (n), CQ1 (n), CK1 (n-1))
In step S24, the hash circuit Hash6 updates the server-side common encryption key SK1 with the following equation.
SK1 (n) = hash6 (SR1 (n), SQ1 (n), SK1 (n-1))
The control unit 11 writes the updated CK1 (n) and SK1 (n) to CKi (n−1) and SKi (n−1) of the authentication seed 141, respectively.

ステップS25において、制御部11は、リーダライタ2へ完了を通知する。   In step S25, the control unit 11 notifies the reader / writer 2 of completion.

ステップS26において、サーバ側のサーバ側認証処理部82は、次回のワンタイム認証時に使用するクライアント側ワンタイム認証子Ci(n)を次式に従って計算し、次回の相互認証まで認証子テーブル72iに保持する。
Ci(n)=hash1{CZi,CRi(n),SQi(n)}
In step S26, the server-side authentication processing unit 82 on the server side calculates the client-side one-time authenticator Ci (n) used at the next one-time authentication according to the following equation, and stores it in the authenticator table 72i until the next mutual authentication. Hold.
Ci (n) = hash1 {CZi, CRi (n), SQi (n)}

ステップS27において、サーバ側認証処理部82は、CRi(n)、CQi(n)、SRi(n)、SQi(n)でシードテーブル71iにおけるデータを更新し、Ci(n)で認証子テーブル72iにおけるクライアント側ワンタイム認証子を更新する。   In step S27, the server-side authentication processing unit 82 updates the data in the seed table 71i with CRi (n), CQi (n), SRi (n), and SQi (n), and authenticator table 72i with Ci (n). Update the client-side one-time authenticator at.

ステップS28において、サーバ側のサーバ側認証処理部82は、クライアント側の共通暗号鍵CKiを、次のハッシュ関数を用いて更新する。
CKi(n)=hash5{CRi(n),CQi(n),CKi(n−1)}
また、ステップS28において、サーバ側のサーバ側認証処理部82は、サーバ側の共通暗号鍵SKiを、次のハッシュ関数を用いて更新する。
SKi(n)=hash6{SRi(n),SQi(n),SKi(n−1)}
In step S28, the server-side authentication processing unit 82 on the server side updates the client-side common encryption key CKi using the following hash function.
CKi (n) = hash5 {CRi (n), CQi (n), CKi (n-1)}
In step S28, the server-side authentication processing unit 82 on the server side updates the server-side common encryption key SKi using the following hash function.
SKi (n) = hash6 {SRi (n), SQi (n), SKi (n-1)}

ステップS29において、サーバ側のサーバ側認証処理部82は、シードテーブル71において、その管理番号の次回認証用のシードおよび共通暗号鍵CRi(n)、CQi(n)、CKi(n)、SRi(n)、SQi(n)、SKi(n)で、今回認証用のシードおよび共通暗号鍵CRi(n−1)、CQi(n−1)、CKi(n−1)、SRi(n−1)、SQi(n−1)、SKi(n−1)を更新する。   In step S29, the server-side authentication processing unit 82 on the server side uses the seed table 71 for the next authentication seed and the common encryption key CRi (n), CQi (n), CKi (n), SRi ( n), SQi (n), SKi (n), and the seed and common encryption key CRi (n-1), CQi (n-1), CKi (n-1), SRi (n-1) for the current authentication , SQi (n-1), SKi (n-1) are updated.

このように構成することにより、1枚のICカードで1以上のサービスの認証に対応でき、ワンタイム認証子C1(n)やSi(n)を作成するハッシュ関数の引数に、ICカード1とサーバ装置4間で通信されない隠蔽固定情報CZ1やSZiが入っているので、たとえ共通暗号鍵やシードが解読されても成りすましをされることがない。   With this configuration, one IC card can support authentication of one or more services, and the arguments of the hash function for creating one-time authenticators C1 (n) and Si (n) Since the hidden fixed information CZ1 and SZi that are not communicated between the server apparatuses 4 are included, even if the common encryption key or seed is decrypted, impersonation is not performed.

次に、シードテーブル71iと認証子テーブル72iの構造の詳細について説明し、その後、ステップS10とステップS14とステップS27の詳細について説明する。   Next, details of the structures of the seed table 71i and the authenticator table 72i will be described, and then details of step S10, step S14, and step S27 will be described.

まず、データ構造について説明する。
サーバ装置4において、サービス要求識別毎に、シードテーブル71iおよび認証子テーブル72iが管理されている。
First, the data structure will be described.
In the server device 4, a seed table 71i and an authenticator table 72i are managed for each service request identification.

サービス要求識別iに対応した認証子テーブル72iでは、ICカード1と同様の、1または複数のICカードのそれぞれに対して、固有の管理番号(ICカードID)が割り当てられ、その管理番号に関連付けて、次回認証用クライアント側ワンタイム認証子Ci(n−1)が保持される。   In the authenticator table 72i corresponding to the service request identification i, a unique management number (IC card ID) is assigned to each of one or a plurality of IC cards, similar to the IC card 1, and associated with the management number. Thus, the next authentication client side one-time authenticator Ci (n-1) is held.

サービス要求識別iに対応したシードテーブル71iでは、管理番号に関連付けて、隠蔽固定情報CZi、SZi、現時点(n−1)のシードCRi(n−1)、CQi(n−1)、SRi(n−1)、SQi(n−1)および共通暗号鍵CKi(n−1)、SKi(n−1)並びに次回認証用のシードCRi(n)、CQi(n)、SRi(n)、SQi(n)および共通暗号鍵CKi(n)、SKi(n)が保持される。   In the seed table 71i corresponding to the service request identification i, the concealment fixed information CZi and SZi, the current (n-1) seed CRi (n-1), CQi (n-1), SRi (n) are associated with the management number. -1), SQi (n-1) and common encryption keys CKi (n-1), SKi (n-1) and seeds CRi (n), CQi (n), SRi (n), SQi ( n) and the common encryption keys CKi (n) and SKi (n) are held.

図15は、シードテーブル71iの構造の一例を示す図である。図16は、認証子テーブル72iの構造の一例を示す図である。   FIG. 15 is a diagram illustrating an example of the structure of the seed table 71i. FIG. 16 is a diagram illustrating an example of the structure of the authenticator table 72i.

図15における認証アドレスは、認証子テーブル72i内で、当該認証アドレスに関連付けられている管理番号と同一の管理番号を有するレコードの位置を示すデータである。   The authentication address in FIG. 15 is data indicating the position of a record having the same management number as the management number associated with the authentication address in the authenticator table 72i.

また、図16において、サーバ側認証処理部82により、認証子テーブル72i内のレコード(ワンタイム認証子と管理番号の組)は、ワンタイム認証子の値について昇順にソートされる。これにより、ワンタイム認証時に迅速に、クライアントから受信したワンタイム認証子が認証子テーブル72iに登録されているか否かを判定することができる。   In FIG. 16, the server side authentication processing unit 82 sorts records in the authenticator table 72i (a set of one-time authenticators and management numbers) in ascending order with respect to the values of the one-time authenticators. Thereby, it is possible to quickly determine whether or not the one-time authenticator received from the client is registered in the authenticator table 72i during the one-time authentication.

なお、シードテーブル71i、認証子テーブル72iは、予め、所定数(つまり、ICカードの数)のレコードを有しており、レコード内の管理番号以外のフィールドには初期値がセットされる。   The seed table 71i and the authenticator table 72i have a predetermined number of records (that is, the number of IC cards) in advance, and initial values are set in fields other than the management number in the records.

次に、ステップS10の詳細について説明する。
ステップS10では、サーバ側認証処理部82は、ICカード1から受信したクライアント側ワンタイム認証子C1(n−1)が、認証子テーブル72iに登録されているクライアント側ワンタイム認証子のいずれかであるか否かを判定する。
受信したクライアント側ワンタイム認証子C1(n−1)が、認証子テーブル72iに登録されているクライアント側ワンタイム認証子のいずれかである場合、認証成功であり、サーバ側認証処理部82は、認証子テーブル72iにおいて、受信したクライアント側ワンタイム認証子C1(n−1)に関連付けられている管理番号を特定する。
そして、サーバ側認証処理部82は、特定された管理番号に対応するシードテーブル71i中のレコードを用いて以後の処理を進める。
Next, details of step S10 will be described.
In step S10, the server-side authentication processing unit 82 determines whether the client-side one-time authenticator C1 (n−1) received from the IC card 1 is one of the client-side one-time authenticators registered in the authenticator table 72i. It is determined whether or not.
If the received client-side one-time authenticator C1 (n-1) is one of the client-side one-time authenticators registered in the authenticator table 72i, the authentication is successful, and the server-side authentication processing unit 82 In the authenticator table 72i, the management number associated with the received client-side one-time authenticator C1 (n-1) is specified.
Then, the server-side authentication processing unit 82 proceeds with subsequent processing using the record in the seed table 71i corresponding to the specified management number.

また、受信したクライアント側ワンタイム認証子C1(n−1)が、認証子テーブル72iに登録されているクライアント側ワンタイム認証子のいずれかでない場合、認証失敗となる。   If the received client-side one-time authenticator C1 (n-1) is not one of the client-side one-time authenticators registered in the authenticator table 72i, authentication fails.

次に、ステップS14の詳細について説明する。
図17は、ステップS14の詳細を説明するフローチャートである。
Next, details of step S14 will be described.
FIG. 17 is a flowchart illustrating the details of step S14.

ステップS101において、サーバ装置4では、サーバ側認証処理部82は、乱数SRを生成し、次回認証用サーバ側シードSRi(n)にセットする。   In step S101, in the server device 4, the server side authentication processing unit 82 generates a random number SR and sets it to the next authentication server side seed SRi (n).

ステップS102において、サーバ側認証処理部82は、乱数SQを作成する。   In step S102, the server-side authentication processing unit 82 creates a random number SQ.

ステップS103において、この乱数SQを次回認証用サーバ側シードに使用した場合に、次回認証用クライアント側ワンタイム認証子が、別のICカードのクライアント側ワンタイム認証子に一致するか否かを判定する。つまり、生成した乱数SQを使用した場合のクライアント側ワンタイム認証子の一意性(つまり、同じ値のクライアント側ワンタイム認証子が存在しないこと)が確保されるか否かが判定される。
この時、サーバ側認証処理部82は、次式に従って、この乱数SQを次回認証用サーバ側シードに使用した場合の、次回認証用クライアント側認証子X1を計算し、このワンタイム認証子が、認証子テーブル72iに登録されているか否かを判定する。
X1=hash1{CZi,CRi(n),SQ}
In step S103, when this random number SQ is used as the next authentication server-side seed, it is determined whether or not the next authentication client-side one-time authenticator matches the client-side one-time authenticator of another IC card. To do. That is, it is determined whether or not the uniqueness of the client-side one-time authenticator when the generated random number SQ is used (that is, there is no client-side one-time authenticator having the same value) is determined.
At this time, the server side authentication processing unit 82 calculates the next authentication client side authenticator X1 when this random number SQ is used as the next authentication server side seed according to the following equation. It is determined whether or not it is registered in the authenticator table 72i.
X1 = hash1 {CZi, CRi (n), SQ}

そして、生成した乱数SQで一意性が確保されないと判定した場合、サーバ側認証処理部82は、一意性が確保されるまで、乱数SQを再生成する。一方、生成した乱数SQで一意性が確保されると判定した場合、ステップS104へ移る。   When it is determined that the generated random number SQ does not ensure uniqueness, the server-side authentication processing unit 82 regenerates the random number SQ until the uniqueness is ensured. On the other hand, if it is determined that the generated random number SQ ensures uniqueness, the process proceeds to step S104.

ステップS104において、サーバ側認証処理部82は、乱数SQを、次回認証用サーバ側シードSQi(n)にセットする。   In step S104, the server-side authentication processing unit 82 sets the random number SQ to the next authentication server-side seed SQi (n).

次に、ステップS27の詳細について説明する。
図18は、ステップS27の詳細を説明するフローチャートである。
Next, details of step S27 will be described.
FIG. 18 is a flowchart illustrating details of step S27.

ステップS105において、サーバ側認証処理部82は、シードテーブル71iに、その管理番号の次回認証用のシードCRi(n)、CQi(n)、SRi(n)、SQi(n)を書き込む。   In step S105, the server side authentication processing unit 82 writes the seed CRi (n), CQi (n), SRi (n), and SQi (n) for the next authentication of the management number in the seed table 71i.

ステップS106において、ステップS103での判定時に計算したX1を、次回認証用クライアント側ワンタイム認証子Ci(n)とし、そのCi(n)で、認証子テーブル72iにおいて、その管理番号に関連付けられているワンタイム認証子を更新する。
すなわち、サーバ側認証処理部82は、その管理番号に関連付けられている認証アドレスをシードテーブル71iから読み出し、その通常認証アドレスで、認証子テーブル72iにおけるその管理番号のレコードを特定し、そのレコード内のワンタイム認証子を更新する。
In step S106, X1 calculated at the time of determination in step S103 is set as the next authentication client-side one-time authenticator Ci (n), and that Ci (n) is associated with the management number in the authenticator table 72i. Update the one-time authenticator.
That is, the server-side authentication processing unit 82 reads the authentication address associated with the management number from the seed table 71i, identifies the record of the management number in the authenticator table 72i with the normal authentication address, Update one-time authenticator for.

ステップS107において、サーバ側認証処理部82は、認証子テーブル72i内のレコードをワンタイム認証子の値が昇順になるようにソートし、ソートにより位置に変更のあったレコードについて、シードテーブル71iにおいてそのレコードの管理番号に関連付けられている認証アドレスを更新する。   In step S107, the server-side authentication processing unit 82 sorts the records in the authenticator table 72i so that the values of the one-time authenticators are in ascending order. Update the authentication address associated with the record management number.

[実施の形態1の変形例]
サービス要求識別iについての今回のクライアント側ワンタイム認証子は、次式で得られる。
Ci(n−1)=hash1{CZi,CRi(n−1)、SQi(n−1)}
[Modification of Embodiment 1]
The current client-side one-time authenticator for the service request identification i is obtained by the following equation.
Ci (n-1) = hash1 {CZi, CRi (n-1), SQi (n-1)}

3つの引数の内、CZiは、隠蔽固定情報であり、CRi(n−1)とSQi(n−1
)は、前回のワンタイム認証の終了時に認証シード141に書き込まれた値であるから、Ci(n−1)は、前回のワンタイム認証の終了時に決まっている値である。したがって、前回のワンタイム認証の終了時に、今回のクライアント側ワンタイム認証子Ci(n−1)の値を求めて認証シード141に書き込んでおくように、実施の形態1を変形することが可能である。この変形例によれば、今回の認証処理の冒頭のステップS5において、ハッシュ回路を使ってクライアント側ワンタイム認証子を計算するステップを省くことができるから、今回の認証に要する時間を短縮することができる。
Of the three arguments, CZi is concealment fixed information, and CRi (n−1) and SQi (n−1)
) Is a value written in the authentication seed 141 at the end of the previous one-time authentication, Ci (n-1) is a value determined at the end of the previous one-time authentication. Therefore, at the end of the previous one-time authentication, the first embodiment can be modified such that the value of the current client-side one-time authenticator Ci (n-1) is obtained and written in the authentication seed 141. It is. According to this modification, since the step of calculating the client-side one-time authenticator using a hash circuit can be omitted in step S5 at the beginning of the current authentication process, the time required for the current authentication can be shortened. Can do.

なお、1枚のICカードにより1以上のサービスを提供する第1の方法の場合は、ICカード1には1組の認証シードしか記憶されていないので、ICカード1は、その認証シードを使用してワンタイム認証を行うだけである。   In the case of the first method for providing one or more services with one IC card, since only one set of authentication seeds is stored in the IC card 1, the IC card 1 uses the authentication seed. And just one-time authentication.

実施の形態2.
実施の形態1においては、ICチップ10において、電子回路によってRAND回路が形成されているという前提で説明した。しかし、ICチップ10によっては、RAND回路が形成されていない場合もある。
実施の形態2では、ICチップ10において、電子回路によってRAND回路が形成されていない場合について、説明する。
Embodiment 2. FIG.
The first embodiment has been described on the assumption that the RAND circuit is formed by the electronic circuit in the IC chip 10. However, depending on the IC chip 10, the RAND circuit may not be formed.
In the second embodiment, the case where the RAND circuit is not formed by the electronic circuit in the IC chip 10 will be described.

実施の形態2では、本来、クライアント側で生成する乱数CR、CQについても、サーバ装置4で生成するように構成する。   In the second embodiment, the server device 4 is also configured to generate random numbers CR and CQ that are originally generated on the client side.

図19に出力メモリ133の構成の一例を示す。実施の形態2では、次回の認証シードCRi(n)、CQi(n)についても、サーバ装置4側で生成し、サーバ装置側の共通暗号鍵で暗号化してICカード1へ送信するので、出力メモリ133は、CK1(n−1)*CR1(n)およびCK1(n−1)*CQ1(n)の領域を有していない。   FIG. 19 shows an example of the configuration of the output memory 133. In the second embodiment, the next authentication seeds CRi (n) and CQi (n) are also generated on the server device 4 side, encrypted with the common encryption key on the server device side, and transmitted to the IC card 1. The memory 133 does not have the areas of CK1 (n−1) * CR1 (n) and CK1 (n−1) * CQ1 (n).

図20に入力メモリ132の構成の一例を示す。実施の形態2では、実施の形態1と比較して、入力メモリ132は、SKi(n−1)*CRi(n)およびSKi(n−1)*CQi(n)の領域が増えている。   FIG. 20 shows an example of the configuration of the input memory 132. In the second embodiment, the area of SKi (n−1) * CRi (n) and SKi (n−1) * CQi (n) is increased in the input memory 132 as compared with the first embodiment.

図21乃至図23は、図1のシステムにおいて実行される、実施の形態2のワンタイム認証子に基づく相互認証について説明するシーケンス図である。   FIG. 21 to FIG. 23 are sequence diagrams for explaining mutual authentication based on the one-time authenticator of the second embodiment, which is executed in the system of FIG.

ステップS201おいて、リーダライタ2は、ICカード1の接近を検出する。   In step S201, the reader / writer 2 detects the approach of the IC card 1.

ステップS202において、リーダライタ2よりの読み出し要求時に、パラメータとして、サービス要求識別がICカード1に与えられる。また、サーバ装置4へもサービス要求識別のデータが送信される。ここでは、サービス要求識別“i”が、ICカード1およびサーバ装置4に与えられたとする。   In step S202, a service request identification is given to the IC card 1 as a parameter at the time of a read request from the reader / writer 2. The service request identification data is also transmitted to the server device 4. Here, it is assumed that the service request identification “i” is given to the IC card 1 and the server device 4.

ステップS203において、ICカード1の制御部11は、与えられたサービス要求識別に対応した隠蔽固定情報、シードおよび共通暗号鍵を、認証シード141から演算スタック131にコピーする。
与えられたサービス要求識別が“i”であるので、認証シード141のCRi(n−1)、CQi(n−1)、CKi(n−1)、CZi、SRi(n−1)、SQi(n−1)、SKi(n−1)、およびSZiを、演算スタック131のCR1(n−1)、CQ1(n−1)、CK1(n−1)、CZ1,SR1(n−1)、SQ1(n−1)、SK1(n−1)、SZ1にそれぞれコピーする。
In step S203, the control unit 11 of the IC card 1 copies the concealment fixing information, the seed, and the common encryption key corresponding to the given service request identification from the authentication seed 141 to the operation stack 131.
Since the given service request identification is “i”, CRi (n−1), CQi (n−1), CKi (n−1), CZi, SRi (n−1), SQi ( n-1), SKi (n-1), and SZi are converted into CR1 (n-1), CQ1 (n-1), CK1 (n-1), CZ1, SR1 (n-1), Copy to SQ1 (n-1), SK1 (n-1), and SZ1, respectively.

ステップS204において、ハッシュ回路Hash2は、演算スタック131に保持しているSZ1,CQ1(n−1),SR1(n−1)を用いて、次式によりexSを計算して、演算スタック131の対応領域に格納する。exSは、一方向関数で計算される。この一方向関数hash2は、3つの引数をとり、引数の順序によって関数値が異なる関数である。
exS=hash2{SZ1,SR1(n−1),CQ1(n−1)}
In step S204, the hash circuit Hash2 calculates exS by the following expression using SZ1, CQ1 (n-1), SR1 (n-1) held in the operation stack 131, Store in the area. exS is calculated as a one-way function. The one-way function hash2 is a function that takes three arguments and has different function values depending on the order of the arguments.
exS = hash2 {SZ1, SR1 (n-1), CQ1 (n-1)}

ステップS205において、ハッシュ回路Hash1は、今回のワンタイム認証についてのクライアント側ワンタイム認証子C1(n−1)を次式に従って計算し、出力メモリ133の対応領域へ格納する。C1(n−1)は、一方向関数で計算される。この一方向関数hash1は、3つの引数をとり、引数の順序によって関数値が異なる関数である。
C1(n−1)=hash1{CZ1,CR1(n−1),SQ1(n−1)}
In step S <b> 205, the hash circuit Hash <b> 1 calculates the client-side one-time authenticator C <b> 1 (n−1) for the current one-time authentication according to the following equation and stores it in the corresponding area of the output memory 133. C1 (n-1) is calculated by a one-way function. The one-way function hash1 is a function that takes three arguments and has different function values depending on the order of the arguments.
C1 (n-1) = hash1 {CZ1, CR1 (n-1), SQ1 (n-1)}

ステップS206において、ハッシュ回路Hash3は、改竄チェックコードCheckOUTを次式に従って計算し、出力メモリ133の対応領域へ格納する。改竄チェックコードCheckOUTは、一方向関数で計算される。この一方向関数hash3は、2つの引数をとり、引数の順序によって関数値が異なる関数である。
CheckOUT=hash3{CK1(n−1),C1(n−1)}
In step S <b> 206, the hash circuit Hash <b> 3 calculates the falsification check code CheckOUT according to the following expression and stores it in the corresponding area of the output memory 133. The falsification check code CheckOUT is calculated by a one-way function. The one-way function hash3 is a function that takes two arguments and has different function values depending on the order of the arguments.
CheckOUT = hash3 {CK1 (n-1), C1 (n-1)}

ステップS207において、クライアントからサーバへ、C1(n−1),およびCheckOUTを送信する。   In step S207, C1 (n-1) and CheckOUT are transmitted from the client to the server.

ステップS208以降においては、サーバ側のサーバ側認証処理部82は、ステップS202で受信したサービ要求識別に対応した認証シードを使用する   In step S208 and subsequent steps, the server-side authentication processing unit 82 on the server side uses the authentication seed corresponding to the service request identification received in step S202.

ステップS208において、サーバ側のサーバ側認証処理部82は、受信したクライアント側ワンタイム認証子C1(n−1)が、保持しているサービ要求識別iに対応したクライアント側ワンタイム認証子Ci(n−1)に一致するか判定する。   In step S208, the server-side authentication processing unit 82 on the server side receives the client-side one-time authenticator Ci () corresponding to the service request identification i held by the received client-side one-time authenticator C1 (n-1). n-1) is determined.

受信したワンタイム認証子C1(n−1)が、不正なワンタイム認証子であると判定した場合、サーバ側認証処理部82は、認証失敗と判定し、認証に失敗した旨をICカード1およびリーダライタ2に通知し、処理を終および了する。受信したワンタイム認証子C1(n−1)が、認証子テーブル72iに保持されているワンタイム認証子に一致した場合、サーバ側の認証処理部は、ステップS209に移る。   When it is determined that the received one-time authenticator C1 (n-1) is an unauthorized one-time authenticator, the server-side authentication processing unit 82 determines that the authentication has failed, and indicates that the authentication has failed. Then, the reader / writer 2 is notified, and the process is terminated and terminated. If the received one-time authenticator C1 (n-1) matches the one-time authenticator stored in the authenticator table 72i, the server-side authentication processing unit proceeds to step S209.

ステップS209において、サーバ側のサーバ側認証処理部82は、保持しているクライアント側共通暗号鍵CKi(n−1)、並びに受信したC1(n−1)を用いて、次式によりチェックコードCHECK−Cを計算する。チェックコードCHECK−Cは、一方向関数で計算される。この一方向関数は、2つの引数をとり、引数の順序によって関数値が異なる関数である。
CHECK−C=hash3{CKi(n−1),C1(n−1)}
In step S209, the server-side authentication processing unit 82 on the server side uses the held client-side common encryption key CKi (n-1) and the received C1 (n-1) to check code CHECK according to the following equation: -C is calculated. The check code CHECK-C is calculated as a one-way function. This one-way function takes two arguments and is a function whose function value varies depending on the order of the arguments.
CHECK-C = hash3 {CKi (n-1), C1 (n-1)}

ステップS210において、サーバ側のサーバ側認証処理部82は、受信したCheckOUTとステップS209で作成したチェックコードCHECK−Cとを比較する。
受信したCheckOUTが、チェックコードCHECK−Cに一致しない場合、サーバ側認証処理部82は、認証失敗と判定し、認証に失敗した旨をICカード1およびリーダライタ2に通知し、処理を終了する。受信したCheckOUTが、チェックコードCHECK−Cに一致した場合、ステップS211に移る。
In step S210, the server-side authentication processing unit 82 on the server side compares the received CheckOUT with the check code CHECK-C created in step S209.
If the received CheckOUT does not match the check code CHECK-C, the server-side authentication processing unit 82 determines that the authentication has failed, notifies the IC card 1 and the reader / writer 2 that the authentication has failed, and ends the processing. . If the received CheckOUT matches the check code CHECK-C, the process proceeds to step S211.

ステップS211において、サーバ側のサーバ側認証処理部82は、第1乱数CRを生成し、その乱数CRを、次回認証クライアント側第1シードCRi(n)とする。
また、サーバ側のサーバ側認証処理部82は、第2乱数CQを生成し、その乱数CQを、次回認証クライアント側第2シードCQi(n)とする。
また、サーバ側のサーバ側認証処理部82は、第3乱数SRを生成し、その乱数SRを、次回認証サーバ側第1シードSRi(n)とする。
また、サーバ側のサーバ側認証処理部82は、第4乱数SQを生成し、その乱数SQを、次回認証サーバ側第2シードSQi(n)とする。
In step S211, the server-side authentication processing unit 82 on the server side generates a first random number CR, and sets the random number CR as the first authentication client-side first seed CRi (n).
Further, the server-side authentication processing unit 82 on the server side generates a second random number CQ, and sets the random number CQ as the next authentication client-side second seed CQi (n).
Further, the server-side authentication processing unit 82 on the server side generates the third random number SR, and sets the random number SR as the first authentication server-side first seed SRi (n).
Further, the server-side authentication processing unit 82 on the server side generates the fourth random number SQ, and sets the random number SQ as the next authentication server-side second seed SQi (n).

サーバ側認証処理部82における乱数生成方法としては、関数により作成される疑似乱数列を用いる方法、原子核の崩壊や抵抗体の熱雑音といったランダムな自然現象を利用して作成される自然乱数を利用する方法の他に、別途作成された自然乱数を格納した乱数ファイルから、乱数を読み出す方法であっても良い。   As a random number generation method in the server-side authentication processing unit 82, a method using a pseudo random number sequence created by a function, a natural random number created using a random natural phenomenon such as a nuclear decay or a thermal noise of a resistor is used. In addition to the method, the random number may be read out from a random number file that stores a separately generated natural random number.

ステップS212において、サーバ側のサーバ側認証処理部82は、次式に従って、今回のワンタイム認証についての、サーバ側ワンタイム認証子Si(n−1)を作成する。
Si(n−1)=hash2(SZi,SRi(n−1),CQi(n−1))
In step S212, the server-side authentication processing unit 82 on the server side creates a server-side one-time authenticator Si (n−1) for the current one-time authentication according to the following equation.
Si (n-1) = hash2 (SZi, SRi (n-1), CQi (n-1))

ステップS213において、サーバ側のサーバ側認証処理部82は、共通暗号鍵SKi(n−1)で、次回認証用シードCRi(n)、CQi(n)、SRi(n)、およびSQi(n)を暗号化する。SKi(n−1)で暗号化された後のCRi(n)、CQi(n)、SRi(n)、およびSQi(n)を、SKi(n−1)*CRi(n)、SKi(n−1)*CQi(n)、SKi(n−1)*SRi(n)、およびSKi(n−1)*SQi(n)で表す。   In step S213, the server-side authentication processing unit 82 on the server side uses the common encryption key SKi (n−1), and next authentication seed CRi (n), CQi (n), SRi (n), and SQi (n). Is encrypted. CRi (n), CQi (n), SRi (n), and SQi (n) after being encrypted with SKi (n-1) are converted into SKi (n-1) * CRi (n), SKi (n) -1) * CQi (n), SKi (n-1) * SRi (n), and SKi (n-1) * SQi (n).

ステップS214において、サーバ側のサーバ側認証処理部82は、次式に従って、改竄チェックコードCheckINを作成する。
CheckIN=hash4{SKi(n−1),Si(n−1),SKi(n−1)*CRi(n),SKi(n−1)*CQi(n)、SKi(n−1)*SRi(n),SKi(n−1)*SQi(n)}
In step S214, the server-side authentication processing unit 82 on the server side creates a falsification check code CheckIN according to the following equation.
CheckIN = hash4 {SKi (n−1), Si (n−1), SKi (n−1) * CRi (n), SKi (n−1) * CQi (n), SKi (n−1) * SRi (N), SKi (n-1) * SQi (n)}

ステップS215において、サーバ装置4からICカード1へ、Si(n−1)、SKi(n−1)*CRi(n),SKi(n−1)*CQi(n)、SKi(n−1)*SRi(n),SKi(n−1)*SQi(n)、およびCheckINを送信する。   In step S215, from the server apparatus 4 to the IC card 1, Si (n-1), SKi (n-1) * CRi (n), SKi (n-1) * CQi (n), SKi (n-1) * SRi (n), SKi (n-1) * SQi (n), and CheckIN are transmitted.

ステップS216において、比較回路CMPは、exSとサーバ側から受信したSi(n−1)とを比較する。一致しない場合は、認証失敗と判定し、サーバエラーとしてリーダライタ2へ通知した後、処理を終了する。一致した場合は、ステップS217に移る。   In step S216, the comparison circuit CMP compares exS with Si (n−1) received from the server side. If they do not match, it is determined that the authentication has failed, the server error is notified to the reader / writer 2, and the processing is terminated. If they match, the process proceeds to step S217.

ステップS217において、ハッシュ回路Hash4は、演算スタック131に格納されているSK1(n−1)と、サーバ側から受信したSi(n−1),SKi(n−1)*CRi(n),SKi(n−1)*CQi(n)、SKi(n−1)*SRi(n),およびSKi(n−1)*SQi(n)を用いて、次式によりチェックコードCHECK−Sを計算する。
CHECK−S=hash4{SK1(n−1),Si(n−1),SKi(n−1)*CRi(n),SKi(n−1)*CQi(n)、SKi(n−1)*SRi(n),SKi(n−1)*SQi(n)}
In step S217, the hash circuit Hash4, SK1 (n-1) stored in the arithmetic stack 131, and Si (n-1), SKi (n-1) * CRi (n), SKi received from the server side. (N-1) * CQi (n), SKi (n-1) * SRi (n), and SKi (n-1) * SQi (n) are used to calculate the check code CHECK-S according to the following equation: .
CHECK-S = hash4 {SK1 (n-1), Si (n-1), SKi (n-1) * CRi (n), SKi (n-1) * CQi (n), SKi (n-1) * SRi (n), SKi (n-1) * SQi (n)}

ステップS218において、比較回路CMPは、受信したCheckINとステップ217で作成したチェックコードCHECK−Sとを比較する。一致しない場合は、認証失敗と判定し、サーバエラーとしてリーダライタ2へ通知した後、処理を終了する。一致した場合は、ステップS219に移る。   In step S218, the comparison circuit CMP compares the received CheckIN with the check code CHECK-S created in step 217. If they do not match, it is determined that the authentication has failed, the server error is notified to the reader / writer 2, and the processing is terminated. If they match, the process proceeds to step S219.

ステップS219において、復号回路DECは、受信したSKi(n−1)*CRi(n),SKi(n−1)*CQi(n)、SKi(n−1)*SRi(n),およびSKi(n−1)*SQi(n)を、演算スタック131上に保持しているサーバ側共通暗号鍵SK1(n−1)で、復号する。復号したCRi(n)、CQi(n)、SRi(n),およびSQi(n)を、認証シード141へ格納する。   In step S219, the decoding circuit DEC receives the received SKi (n-1) * CRi (n), SKi (n-1) * CQi (n), SKi (n-1) * SRi (n), and SKi ( n-1) * SQi (n) is decrypted with the server side common encryption key SK1 (n-1) held on the arithmetic stack 131. The decrypted CRi (n), CQi (n), SRi (n), and SQi (n) are stored in the authentication seed 141.

ステップS220において、ハッシュ回路Hash5は、クラインアント側の共通暗号鍵CK1を、次の式で更新する。
CK1(n)=hash5{CRi(n),CQi(n),CK1(n−1)}
また、ステップS220において、ハッシュ回路Hash6は、サーバ側の共通暗号鍵SK1を、次の式で更新する。
SK1(n)=hash6{SRi(n),SQi(n),SK1(n−1)}
制御部11は、更新されたCK1(n)、SK1(n)を、それぞれ、認証シード141のCKi(n−1)、SKi(n−1)へ書き込む。
In step S220, the hash circuit Hash5 updates the common encryption key CK1 on the client side with the following equation.
CK1 (n) = hash5 {CRi (n), CQi (n), CK1 (n-1)}
In step S220, the hash circuit Hash6 updates the server-side common encryption key SK1 with the following equation.
SK1 (n) = hash6 {SRi (n), SQi (n), SK1 (n-1)}
The control unit 11 writes the updated CK1 (n) and SK1 (n) to CKi (n−1) and SKi (n−1) of the authentication seed 141, respectively.

ステップS221において、制御部11は、リーダライタ2へ完了を通知する。   In step S221, the control unit 11 notifies the reader / writer 2 of completion.

ステップS222において、サーバ側のサーバ側認証処理部82は、次回のワンタイム認証時に使用するクライアント側ワンタイム認証子Ci(n)を次式に従って計算し、次回の相互認証まで認証子テーブル72iに保持する。
Ci(n)=hash1{CZi,CRi(n),SQi(n)}
In step S222, the server-side authentication processing unit 82 on the server side calculates the client-side one-time authenticator Ci (n) used at the next one-time authentication according to the following equation, and stores it in the authenticator table 72i until the next mutual authentication. Hold.
Ci (n) = hash1 {CZi, CRi (n), SQi (n)}

ステップS223において、サーバ側認証処理部82は、CRi(n)、CQi(n)、SRi(n)、SQi(n)でシードテーブル71iにおけるデータを更新し、Ci(n)で認証子テーブル72iにおけるクライアント側ワンタイム認証子を更新する。   In step S223, the server-side authentication processing unit 82 updates data in the seed table 71i with CRi (n), CQi (n), SRi (n), and SQi (n), and authenticator table 72i with Ci (n). Update the client-side one-time authenticator at.

ステップS224において、サーバ側のサーバ側認証処理部82は、クライアント側の共通暗号鍵CKiを、次のハッシュ関数を用いて更新する。
CKi(n)=hash5{CRi(n),CQi(n),CKi(n−1)}
また、ステップS224において、サーバ側のサーバ側認証処理部82は、サーバ側の共通暗号鍵SKiを、次のハッシュ関数を用いて更新する。
SKi(n)=hash6{SRi(n),SQi(n),SKi(n−1)}
In step S224, the server-side authentication processing unit 82 on the server side updates the client-side common encryption key CKi using the following hash function.
CKi (n) = hash5 {CRi (n), CQi (n), CKi (n-1)}
In step S224, the server-side authentication processing unit 82 on the server side updates the server-side common encryption key SKi using the following hash function.
SKi (n) = hash6 {SRi (n), SQi (n), SKi (n-1)}

ステップS225において、サーバ側のサーバ側認証処理部82は、シードテーブル71において、その管理番号の次回認証用のシードおよび共通暗号鍵CRi(n)、CQi(n)、CKi(n)、SRi(n)、SQi(n)、SKi(n)で、今回認証用のシードおよび共通暗号鍵CRi(n−1)、CQi(n−1)、CKi(n−1)、SRi(n−1)、SQi(n−1)、SKi(n−1)を更新する。   In step S225, the server-side authentication processing unit 82 on the server side uses the seed table 71 for the next authentication seed and common encryption key CRi (n), CQi (n), CKi (n), SRi ( n), SQi (n), SKi (n), and the seed and common encryption key CRi (n-1), CQi (n-1), CKi (n-1), SRi (n-1) for the current authentication , SQi (n-1), SKi (n-1) are updated.

次に、ステップS208の詳細について説明する。
ステップS208では、サーバ側認証処理部82は、ICカード1から受信したクライアント側ワンタイム認証子C1(n−1)が、認証子テーブル72iに登録されているクライアント側ワンタイム認証子のいずれかであるか否かを判定する。
受信したクライアント側ワンタイム認証子C1(n−1)が、認証子テーブル72iに登録されているクライアント側ワンタイム認証子のいずれかである場合、認証成功であり、サーバ側認証処理部82は、認証子テーブル72iにおいて、受信したクライアント側ワンタイム認証子C1(n−1)に関連付けられている管理番号を特定する。
そして、サーバ側認証処理部82は、特定された管理番号に対応するシードテーブル71i中のレコードを用いて以後の処理を進める。
Next, details of step S208 will be described.
In step S208, the server-side authentication processing unit 82 determines that the client-side one-time authenticator C1 (n-1) received from the IC card 1 is one of the client-side one-time authenticators registered in the authenticator table 72i. It is determined whether or not.
If the received client-side one-time authenticator C1 (n-1) is one of the client-side one-time authenticators registered in the authenticator table 72i, the authentication is successful, and the server-side authentication processing unit 82 In the authenticator table 72i, the management number associated with the received client-side one-time authenticator C1 (n-1) is specified.
Then, the server-side authentication processing unit 82 proceeds with subsequent processing using the record in the seed table 71i corresponding to the specified management number.

また、受信したクライアント側ワンタイム認証子C1(n−1)が、認証子テーブル72iに登録されているクライアント側ワンタイム認証子のいずれかでない場合、認証失敗となる。   If the received client-side one-time authenticator C1 (n-1) is not one of the client-side one-time authenticators registered in the authenticator table 72i, authentication fails.

次に、ステップS211の詳細について説明する。
図24は、ステップS211の詳細を説明するフローチャートである。
Next, details of step S211 will be described.
FIG. 24 is a flowchart illustrating the details of step S211.

ステップS301において、サーバ側認証処理部82は、乱数CR,CQ,SRを作成し、それらを次回認証用シードCRi(n)、CQi(n)、SRi(n)にセットする。   In step S301, the server-side authentication processing unit 82 creates random numbers CR, CQ, SR, and sets them in the next authentication seeds CRi (n), CQi (n), SRi (n).

ステップS302において、サーバ側認証処理部82は、乱数SQを作成する。   In step S302, the server side authentication processing unit 82 creates a random number SQ.

ステップS303において、この乱数SQを次回認証用サーバ側シードに使用した場合に、次回認証用クライアント側ワンタイム認証子が、別のICカードのクライアント側ワンタイム認証子に一致するか否かを判定する。つまり、生成した乱数SQを使用した場合のクライアント側ワンタイム認証子の一意性(つまり、同じ値のクライアント側ワンタイム認証子が存在しないこと)が確保されるか否かが判定される。
この時、サーバ側認証処理部82は、次式に従って、この乱数SQを次回認証用サーバ側シードに使用した場合の、次回認証用クライアント側認証子X1を計算し、このワンタイム認証子が、認証子テーブル72iに登録されているか否かを判定する。
X1=hash1{CZi,CRi(n),SQ}
In step S303, when this random number SQ is used as the next authentication server-side seed, it is determined whether or not the next authentication client-side one-time authenticator matches the client-side one-time authenticator of another IC card. To do. That is, it is determined whether or not the uniqueness of the client-side one-time authenticator when the generated random number SQ is used (that is, there is no client-side one-time authenticator having the same value) is determined.
At this time, the server side authentication processing unit 82 calculates the next authentication client side authenticator X1 when this random number SQ is used as the next authentication server side seed according to the following equation. It is determined whether or not it is registered in the authenticator table 72i.
X1 = hash1 {CZi, CRi (n), SQ}

そして、生成した乱数SQで一意性が確保されないと判定した場合、サーバ側認証処理部82は、一意性が確保されるまで、乱数SQを再生成する。一方、生成した乱数SQで一意性が確保されると判定した場合、ステップS304へ移る。   When it is determined that the generated random number SQ does not ensure uniqueness, the server-side authentication processing unit 82 regenerates the random number SQ until the uniqueness is ensured. On the other hand, if it is determined that the generated random number SQ ensures uniqueness, the process proceeds to step S304.

ステップS304において、サーバ側認証処理部82は、乱数SQを、次回認証用サーバ側シードSQi(n)にセットする。   In step S304, the server side authentication processing unit 82 sets the random number SQ to the next authentication server side seed SQi (n).

次に、ステップS223の詳細について説明する。
図25は、ステップS223の詳細を説明するフローチャートである。
Next, details of step S223 will be described.
FIG. 25 is a flowchart illustrating the details of step S223.

ステップS305において、サーバ側認証処理部82は、その管理番号の次回認証用のシードCRi(n)、CQi(n)、SRi(n)、SQi(n)をシードテーブル71iに書き込む。   In step S305, the server side authentication processing unit 82 writes the seed CRi (n), CQi (n), SRi (n), and SQi (n) for the next authentication of the management number in the seed table 71i.

ステップS306において、ステップS303での判定時に計算したX1を、次回認証用クライアント側ワンタイム認証子Ci(n)とし、そのCi(n)で、認証子テーブル72iにおいて、その管理番号に関連付けられているワンタイム認証子を更新する。
すなわち、サーバ側認証処理部82は、その管理番号に関連付けられている認証アドレスをシードテーブル71iから読み出し、その認証アドレスで、認証子テーブル72iにおけるその管理番号のレコードを特定し、そのレコード内のワンタイム認証子を更新する。
In step S306, X1 calculated at the time of determination in step S303 is set as the next authentication client-side one-time authenticator Ci (n), and that Ci (n) is associated with the management number in the authenticator table 72i. Update the one-time authenticator.
That is, the server-side authentication processing unit 82 reads the authentication address associated with the management number from the seed table 71i, specifies the record of the management number in the authenticator table 72i with the authentication address, Update the one-time authenticator.

ステップS307において、サーバ側認証処理部82は、認証子テーブル72i内のレコードをワンタイム認証子の値が昇順になるようにソートし、ソートにより位置に変更のあったレコードについて、シードテーブル71iにおいてそのレコードの管理番号に関連付けられている認証アドレスを更新する。   In step S307, the server-side authentication processing unit 82 sorts the records in the authenticator table 72i so that the values of the one-time authenticators are in ascending order, and records whose position has been changed by sorting in the seed table 71i. Update the authentication address associated with the record management number.

[実施の形態2の変形例]
実施の形態2についても、実施の形態1の変形例と同様に、前回のワンタイム認証の終了時に、今回のクライアント側ワンタイム認証子Ci(n−1)の値を求めて認証シード141に書き込んでおくように、変形することができる。この変形例によれば、今回の認証処理の冒頭のステップS204において、ハッシュ回路を使ってクライアント側ワンタイム認証子を計算するステップを省くことができるから、今回の認証に要する時間を短縮することができる。
[Modification of Embodiment 2]
In the second embodiment, as in the modification of the first embodiment, when the previous one-time authentication ends, the value of the current client-side one-time authenticator Ci (n−1) is obtained and the authentication seed 141 is obtained. It can be transformed to write. According to this modification, since the step of calculating the client-side one-time authenticator using a hash circuit can be omitted in step S204 at the beginning of the current authentication process, the time required for the current authentication can be shortened. Can do.

なお、1枚のICカードにより1以上のサービスを提供する第1の方法の場合は、ICカード1には1組の認証シードしか記憶されていないので、ICカード1は、その認証シードを使用してワンタイム認証を行うだけである。   In the case of the first method for providing one or more services with one IC card, since only one set of authentication seeds is stored in the IC card 1, the IC card 1 uses the authentication seed. And just one-time authentication.

なお、上記の各実施の形態は、本発明の好適な例であるが、本発明は,これらに限定されるものでなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。   Each of the above embodiments is a preferred example of the present invention, but the present invention is not limited to these, and various modifications and changes can be made without departing from the scope of the present invention. It is.

ICカード1は、非接触でリーダライタ2と通信するものとして説明したが、カード側に設置された接点(端子)を経由してリーダライタ2が通信する接触式であっても構わない。   Although the IC card 1 has been described as communicating with the reader / writer 2 in a non-contact manner, a contact type in which the reader / writer 2 communicates via a contact (terminal) installed on the card side may be used.

また、ICカード内の不揮発性メモリは、FeRAM以外のフラッシュメモリやEEPROMであっても良い。   Further, the non-volatile memory in the IC card may be a flash memory other than FeRAM or an EEPROM.

ICカード1の制御部11は、CPUなしの電子回路で構成する例を示したが、CPUがROMに記録されたプログラムを実行して実現するように構成してもよい。   Although the control unit 11 of the IC card 1 is configured by an electronic circuit without a CPU, the control unit 11 may be configured to be realized by the CPU executing a program recorded in the ROM.

また、上記実施の形態1乃至2において、ワンタイム認証子をワンタイムパスワードとしてもよい。ワンタイム認証子がワンタイムパスワードである場合、クライアント側ワンタイム認証子の一意性についての判定(ステップS108、S308)は不要であり、また、その場合、ICカード1からカードID121を読み出し、ワンタイム認証子とともにそのカードID121をサーバ装置4へ送信し、サーバ装置4は、カード属性テーブル73を参照し、そのカードID121に基づいてICカード1を特定する。   In the first and second embodiments, the one-time authenticator may be a one-time password. When the one-time authenticator is a one-time password, it is not necessary to determine the uniqueness of the client-side one-time authenticator (steps S108 and S308). In this case, the card ID 121 is read from the IC card 1 and The card ID 121 is transmitted to the server device 4 together with the time authenticator, and the server device 4 refers to the card attribute table 73 and specifies the IC card 1 based on the card ID 121.

また、上記実施の形態1乃至2において、サーバ装置4において、サーバ側認証処理部82は、サーバ装置4の起動時にシードテーブル71および認証子テーブル72を記憶装置55からRAM53へ読み出し、ワンタイム認証子に基づく相互認証を、RAM53上のシードテーブル71および認証子テーブル72に基づいて実行し、サーバ装置4のシャットダウン時に、RAM53上のシードテーブル71および認証子テーブル72で、記憶装置55上のシードテーブル71および認証子テーブル72を更新するようにしてもよい。   In the first and second embodiments, in the server device 4, the server-side authentication processing unit 82 reads the seed table 71 and the authenticator table 72 from the storage device 55 to the RAM 53 when the server device 4 is activated, and performs one-time authentication. The mutual authentication based on the child is executed based on the seed table 71 and the authenticator table 72 on the RAM 53. When the server apparatus 4 is shut down, the seed table 71 and the authenticator table 72 on the RAM 53 The table 71 and the authenticator table 72 may be updated.

1 ICカード
2 ICカード用リーダライタ
3 ネットワーク
4 サーバ装置
10 ICチップ
11 制御部
12 ROM
13 RAM
14 FeRAM
15 受信回路
16 送信回路
17 アンテナ
18 内部バス
121 カードID
131 演算スタック
132 入力メモリ
133 出力メモリ
141 認証シード
142 カードID
51 CPU
52 ROM
53 RAM
54 インタフェース
55 記憶装置
56 インタフェース
57 通信装置
61 ワンタイム認証プログラム
71 シードテーブル群
71i シードテーブル
72 認証子テーブル群
72i 認証子テーブル
73 ICカード属性テーブル
81 通信処理部
82 サーバ側認証処理部
DESCRIPTION OF SYMBOLS 1 IC card 2 IC card reader / writer 3 Network 4 Server device 10 IC chip 11 Control unit 12 ROM
13 RAM
14 FeRAM
15 Receiving Circuit 16 Transmitting Circuit 17 Antenna 18 Internal Bus 121 Card ID
131 Operation Stack 132 Input Memory 133 Output Memory 141 Authentication Seed 142 Card ID
51 CPU
52 ROM
53 RAM
54 interface 55 storage device 56 interface 57 communication device 61 one-time authentication program 71 seed table group 71i seed table 72 authenticator table group 72i authenticator table 73 IC card attribute table 81 communication processing unit 82 server side authentication processing unit

Claims (9)

不揮発性メモリとRAMを内蔵したICカードであって、
1以上のサービスに共通の1組の認証シードおよび共通暗号鍵を前記不揮発性メモリに記憶し、
前記1以上のサービスに共通の1組の認証シードおよび共通暗号鍵を、前記不揮発性メモリから前記RAM上の演算スタックにコピーして、前記RAM上の演算スタックにコピーされた1組の認証シードに基づいてワンタイム認証子を生成し、前記ICカードとサーバ装置との間の相互認証に使用し、前記RAM上の演算スタックにコピーされた1組の認証シードに基づいて、前記サーバ装置から受信したワンタイム認証子の正当性を判定することを特徴とするICカード。
An IC card with built-in nonvolatile memory and RAM,
Storing a set of authentication seed and common encryption key common to one or more services in the non-volatile memory;
A set of authentication seeds and a common encryption key common to the one or more services are copied from the non-volatile memory to the operation stack on the RAM, and then copied to the operation stack on the RAM Based on a set of authentication seeds that are used for mutual authentication between the IC card and the server device and copied to the operation stack on the RAM, from the server device. An IC card characterized by determining the validity of a received one-time authenticator.
前記認証シードは、前記ICカードから前記サーバ装置へ送信されず、また相互認証後に更新されない隠蔽固定情報を含むことを特徴とする請求項1記載のICカード。   The IC card according to claim 1, wherein the authentication seed includes concealment fixing information that is not transmitted from the IC card to the server device and is not updated after mutual authentication. 前記ICカードで送信データを暗号化する際に使用する共通暗号鍵が、前記サーバ装置で送信データを暗号化する際に使用する共通暗号鍵とは別の共通暗号鍵であることを特徴とする請求項1または請求項2記載のICカード。   The common encryption key used when encrypting transmission data with the IC card is a common encryption key different from the common encryption key used when encrypting transmission data with the server device The IC card according to claim 1 or 2. ICカード側認証子生成に使用されるICカード側認証シードは、サーバ装置側ワンタイム認証子生成に使用されるICカード側認証シードとは別のシードであることを特徴とする請求項1乃至請求項3記載のICカード。   The IC card side authentication seed used for IC card side authenticator generation is a seed different from the IC card side authentication seed used for server apparatus side one-time authenticator generation. The IC card according to claim 3. 前記サーバ装置において生成し、暗号化して送信されたICカード側認証シードを、ICカードが受信して復号してワンタイム認証子の作成に使用することを特徴とする請求項1乃至請求項4記載のICカード。   5. The IC card side authentication seed generated in the server device and transmitted after being encrypted is received and decrypted by the IC card and used to create a one-time authenticator. IC card of description. 前回の認証の終了時に、今回の認証のためのクライアント側ワンタイム認証子を、前記不揮発性メモリに記憶させることを特徴とする請求項1乃至請求項5記載のICカード。   6. The IC card according to claim 1, wherein a client-side one-time authenticator for the current authentication is stored in the nonvolatile memory at the end of the previous authentication. 不揮発性メモリとRAMを内蔵したICカードであって、
1以上のサービス要求識別に対応した1以上の組の認証シードおよび共通暗号鍵を前記不揮発性メモリに記憶し、
特定のサービス要求識別に対応した1組の認証シードおよび共通暗号鍵を、前記不揮発性メモリから前記RAM上の演算スタックにコピーして、前記RAM上の演算スタックにコピーされた1組の認証シードに基づいてワンタイム認証子を生成し、前記ICカードとサーバ装置との間の相互認証に使用し、前記RAM上の演算スタックにコピーされた1組の認証シードに基づいて、前記サーバ装置から受信したワンタイム認証子の正当性を判定することを特徴とするICカード。
An IC card with built-in nonvolatile memory and RAM,
Storing in the non-volatile memory one or more sets of authentication seeds and a common encryption key corresponding to one or more service request identifications;
A set of authentication seeds and a common encryption key corresponding to a specific service request identification are copied from the non-volatile memory to the operation stack on the RAM, and then copied to the operation stack on the RAM. Based on a set of authentication seeds that are used for mutual authentication between the IC card and the server device and copied to the operation stack on the RAM, from the server device. An IC card characterized by determining the validity of a received one-time authenticator.
サーバ装置とICカードを備え、
前記サーバ装置およびICカードは、1以上のサービスに共通の1組の認証シードを記憶し、
前記サーバ装置およびICカードは、それぞれ認証シードを生成し、前記認証シードを暗号化して相互に送信し、前記認証シードからワンタイム認証子を生成して送信し、前記サーバ装置により生成された前記認証シードと前記ICカードにより生成された前記認証シードとに基づいて互いにワンタイム認証子についての認証を行い、前記認証に成功するたびに次回認証用シードで前記認証シードを更新して行き保持し、
前記ICカードは、認証シードに基づいてクライアント側ワンタイム認証子を生成して前記サーバ装置へ送信し、前記サーバ装置へ送信した前記クライアント側ワンタイム認証子および前記サーバ装置から受信したサーバ側ワンタイム認証子についての認証に成功すると、前記次回認証用シードを更新し、
前記サーバ装置は、前記ICカードより受信した前記クライアント側ワンタイム認証子についての認証に成功すると、前記次回認証用シードを更新し、次回の認証時まで保持すること、
を特徴とするワンタイム認証システム。
Server device and IC card,
The server device and the IC card store a set of authentication seeds common to one or more services,
The server device and the IC card each generate an authentication seed, encrypt the authentication seed and transmit each other, generate and transmit a one-time authenticator from the authentication seed, and the server device Based on the authentication seed and the authentication seed generated by the IC card, the one-time authenticator is mutually authenticated, and the authentication seed is updated and held with the next authentication seed each time the authentication is successful. ,
The IC card generates a client-side one-time authenticator based on an authentication seed, transmits the client-side one-time authenticator to the server device, and transmits the client-side one-time authenticator transmitted to the server device and the server-side one-time received from the server device. When the authentication for the time authenticator is successful, the next authentication seed is updated,
When the server device succeeds in authenticating the client-side one-time authenticator received from the IC card, it updates the next authentication seed and holds it until the next authentication time,
One-time authentication system characterized by
ICカードとのワンタイム相互認証に使用されるサーバ装置であって、
前記サーバ装置およびICカードは、1以上のサービスに共通の1組の認証シードを記憶し、
前記サーバ装置およびICカードは、それぞれ認証シードを生成し、前記認証シードを暗号化して相互に送信し、
前記認証シードに基づいてサーバ側ワンタイム認証子を生成して前記ICカードへ送信し、
前記ICカードより受信したクライアント側ワンタイム認証子についての認証に成功すると、次回認証用シードを更新し、次回の認証時まで保持すること、
を特徴とするサーバ装置。
A server device used for one-time mutual authentication with an IC card,
The server device and the IC card store a set of authentication seeds common to one or more services,
The server device and the IC card each generate an authentication seed, encrypt the authentication seed, and transmit to each other,
Generate a server-side one-time authenticator based on the authentication seed and send it to the IC card,
If the client-side one-time authenticator received from the IC card is successfully authenticated, the next authentication seed is updated and held until the next authentication.
A server device.
JP2016169822A 2016-08-31 2016-08-31 IC card for one-time authentication Pending JP2018037877A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016169822A JP2018037877A (en) 2016-08-31 2016-08-31 IC card for one-time authentication
PCT/JP2017/030973 WO2018043498A1 (en) 2016-08-31 2017-08-29 Ic card for one-time authentication

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016169822A JP2018037877A (en) 2016-08-31 2016-08-31 IC card for one-time authentication

Publications (1)

Publication Number Publication Date
JP2018037877A true JP2018037877A (en) 2018-03-08

Family

ID=61309462

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016169822A Pending JP2018037877A (en) 2016-08-31 2016-08-31 IC card for one-time authentication

Country Status (2)

Country Link
JP (1) JP2018037877A (en)
WO (1) WO2018043498A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003323651A (en) * 2002-04-26 2003-11-14 Matsushita Electric Ind Co Ltd Information device, control method and program for information device
US20070061566A1 (en) * 2005-09-09 2007-03-15 Bailey Daniel V Tokencode Exchanges for Peripheral Authentication
JP2008269415A (en) * 2007-04-23 2008-11-06 Dainippon Printing Co Ltd One-time password issuing system
JP5963382B1 (en) * 2015-10-02 2016-08-03 株式会社Pips One-time authentication system

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003323651A (en) * 2002-04-26 2003-11-14 Matsushita Electric Ind Co Ltd Information device, control method and program for information device
US20070061566A1 (en) * 2005-09-09 2007-03-15 Bailey Daniel V Tokencode Exchanges for Peripheral Authentication
JP2008269415A (en) * 2007-04-23 2008-11-06 Dainippon Printing Co Ltd One-time password issuing system
JP5963382B1 (en) * 2015-10-02 2016-08-03 株式会社Pips One-time authentication system

Also Published As

Publication number Publication date
WO2018043498A1 (en) 2018-03-08

Similar Documents

Publication Publication Date Title
CN110519260B (en) Information processing method and information processing device
US9740849B2 (en) Registration and authentication of computing devices using a digital skeleton key
KR101054970B1 (en) A system, apparatus, method, and computer readable recording medium for authenticating a communication party using an electronic certificate containing personal information
ES2680152T3 (en) Authentication method and device convenient for the user using a mobile authentication application
US20190280863A1 (en) Recovery of secret data in a distributed system
CA2554300C (en) System and method for encrypted smart card pin entry
US7596704B2 (en) Partition and recovery of a verifiable digital secret
JP2018521417A (en) Safety verification method based on biometric features, client terminal, and server
US9165148B2 (en) Generating secure device secret key
KR102234825B1 (en) Secure execution of cryptographic operations
CN103546289A (en) USB (universal serial bus) Key based secure data transmission method and system
WO2012034339A1 (en) Method and mobile terminal for realizing network payment
US20220247568A1 (en) Data storage device, system, and method for digital signature
CN115529591B (en) Authentication method, device, equipment and storage medium based on token
CN112565265A (en) Authentication method, authentication system and communication method between terminal devices of Internet of things
JP6188633B2 (en) Computer system, computer, semiconductor device, information processing method, and computer program
JP2003143131A (en) Electronic information management device, portable information terminal device, management server device, and program
JP5380368B2 (en) IC chip issuing system, IC chip issuing method, and IC chip issuing program
WO2022130528A1 (en) Recovery verification system, collation system, recovery verification method, and non-temporary computer readable medium
JP6167667B2 (en) Authentication system, authentication method, authentication program, and authentication apparatus
WO2018043498A1 (en) Ic card for one-time authentication
CN115051823A (en) Utilization of memory devices as security tokens
JP2007060581A (en) Information management system and method
JP2001118038A (en) Computing device, computer system and recording medium
CN114861231B (en) Digitally signable data storage device, digital signature system and signature method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180418

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20180418

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20180418

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180508

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20181106