JP2018037877A - IC card for one-time authentication - Google Patents
IC card for one-time authentication Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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).
(1)特許文献1におけるクライアント装置は、端末装置であった。特許文献1でもICカードが使用されているが、それは、携帯型記憶装置として使用されており、クライアント装置として使用されているわけではない。したがって、特許文献1におけるワンタイム相互認証システムでは、クライアント装置として、ICカードとは別に、端末装置が必要であった。
(2)クライアント側認証子とサーバ側認証子の生成に使用されるサーバ側シードが共通である場合には、クライアント側認証子とサーバ側認証子により、クライアント側今回認証用乱数とクライアント側次回認証用乱数を求められる可能性がある。クライアント側次回認証用乱数が求められたならば、共通暗号鍵を導出することが可能となり、次回認証においてクライアントまたはサーバに成りすましをされる恐れがある。
(1) The client device in
(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.
図1は、本発明の実施の形態に係るワンタイム認証システムの構成を示す図である。
図1に示すシステムでは、ICカード用リーダライタ2がネットワーク3に接続されている。ネットワーク3には、サーバ装置4も接続されている。ICカード用リーダライタ2は、ディスプレイを備えていてもよい。ICカード1は、リーダライタ2に接近させて、またはリーダライタ2に電気的に接続して使用される。ICカード1は、リーダライタ2を使用して、サーバ装置4との間でデータ通信を行うことができる。
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 /
本発明の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
リーダライタ2が対応付けられている認証サーバ4が存在し、起動されたICカード1と、認証サーバ4との間でワンタイム認証が開始し実行される。認証サーバ4は、ICカード1の所有者が利用できるサービスを記憶しており、そのサービスの一覧をリーダライタ2のディスプレイに表示する。ユーザは、ディスプレイを見て、利用するサービスを選択する。リーダライタ2は、選択されたサービスのサービスサーバと接続する。
このようにして、ICカードには1組の認証シードを記憶しておき、1以上のサービスを利用することができる。
There is an
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
図3に第2の方法の概要を示す。
図3のICカード1も、非接触型を想定している。図3のリーダライタ2は、サービス毎に存在している。したがって、リーダライタ2は、自分がどのサービスのリーダライタであるのかをサービス要求識別として記憶している。
FIG. 3 shows an outline of the second method.
The
ICカード1が、ディスプレイ付きリーダライタ2に接近すると、その接近を検出したリーダライタ2は、ICカード1に対して、サービスを特定するサービス要求識別をパラメータとして含む読出要求の信号を送信する。また、リーダライタ2は、認証サーバへもサービス要求識別のデータを送信する。
ICカード1は、自分が記憶している1以上の組の認証シードから、受信したサービス要求識別によって特定される1組の認証シードを読み出し、ワンタイム認証処理に使用する。
When the
The
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
The
The
制御部11は、乱数を発生させる処理を行ったり、ワンタイム認証子を作成したり、共通暗号鍵を更新したり、データの暗号化、復号を行ったり、各種の判断を行う部分である。制御部11は、CPUがプログラムを実行して構成することもできるが、CPUなしの電子回路で構成することもできる。ここでは、CPUなしの電子回路で構成することとする。
ROM12には、ICカードに固有のカードID121のように、変更する必要のないデータを格納している。
FeRAM14には、ワンタイム認証子を作成するためのシードや共通暗号鍵を保持しておくための認証シード141が格納されている。
RAM13には、データを一時的に記憶しておくための演算スタック131と、ICカード1への入力データが格納される入力メモリ132と、ICカード1からの出力データが格納される出力メモリ133が設けられている。
The
The
The
The
図5は、認証シード141の領域に保持されるデータを示している。
FIG. 5 shows data held in the area of the
認証シード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
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
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
図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
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
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
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
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
領域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
領域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
In FIG. 10, a
また、インタフェース54は、記憶装置55を接続可能なインタフェース回路である。記憶装置55は、インタフェース54に接続され、図示せぬオペレーティングシステム、ワンタイム認証プログラム61,認証に使用されるデータなど格納する記憶媒体を有する装置である。記憶装置55としては、ハードディスクドライブ、SSDなどが使用される。記憶装置55には認証に使用されるデータとして、シードテーブル群71,認証子テーブル群72,およびICカード属性テーブル73が保持されている。
The
シードテーブル群71には、サービス要求識別毎のシードテーブルが1枚以上格納されている。任意のサービス要求識別iに対応するシードテーブルを、シードテーブル71iで表すことにする。シードテーブル71iは、最後の相互認証時に更新された、次回認証用シードおよび次回認証用共通暗号鍵を有する。次回認証用シードおよび次回認証用共通暗号鍵は、1または複数のICカード1のそれぞれについて別々に保持される。
The
認証子テーブル群72は、サービス要求識別毎の認証子テーブルが1枚以上格納されている。任意のサービス要求識別iに対応する認証子テーブルを、認証子テーブル72iで表すことにする。認証子テーブル72iは、最後の認証時に更新された次回認証用のクライアント側ワンタイム認証子を有する。次回認証用のクライアント側ワンタイム認証子は、1または複数のICカード1のそれぞれについて別々に保持される。
The
ICカード属性テーブル73は、ICカード1のカードID、およびそのカードIDに関連付けられている属性情報(カード所有者情報など)を有するテーブルである。ICカード属性テーブル73は、ワンタイム認証子がワンタイムパスワードであるときに、ワンタイム認証子とともに受信されるカードIDの正当性を判定する際に参照される。
The IC card attribute table 73 is a table having a card ID of the
また、インタフェース56は、通信装置57を接続可能なインタフェース回路である。通信装置57は、ネットワークインタフェースカード、モデムなどといったネットワーク3に接続可能な装置である。
The
CPU51、ROM52、RAM53、およびインタフェース54,56は、バスやコントロールチップによって相互にデータ通信可能に接続されている。
The
図11は、サーバ装置4によって実現される処理部を示すブロック図である。図11に示すように、サーバ装置4において、通信処理部81、およびサーバ側認証処理部82が実現される。
FIG. 11 is a block diagram illustrating a processing unit realized by the
通信処理部81は、通信装置57を使用して、所定の通信プロトコルでICカードとネットワークを介してデータ通信を行う。
The
サーバ側認証処理部82は、CPU51でワンタイム認証プログラム61が実行されることにより実現され、通信処理部81を使用して、1または複数のICカード1との間でワンタイム認証子に基づく相互認証におけるサーバ側の処理を実行する。
The server-side
(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
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
共通暗号鍵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
シード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 /
ステップS2において、リーダライタ2よりの読み出し要求時に、パラメータとして、サービス要求識別がICカード1に与えられる。また、サーバ装置4へもサービス要求識別のデータが送信される。ここでは、サービス要求識別“i”が、ICカード1およびサーバ装置4に与えられたとする。
In step S2, upon request for reading from the reader /
ステップ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
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
ステップ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
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
ステップ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
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
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
また、ステップ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
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
ステップS10以降においては、サーバ側のサーバ側認証処理部82は、ステップS2で受信したサービ要求識別に対応したシードテーブルおよび認証子テーブルを使用する
After step S10, the server-side
ステップS10において、サーバ側のサーバ側認証処理部82は、受信したクライアント側ワンタイム認証子C1(n−1)が、保持しているサービ要求識別iに対応したクライアント側ワンタイム認証子Ci(n−1)に一致するか判定する。
In step S10, the server-side
受信したワンタイム認証子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
ステップ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
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
If the received CheckOUT does not match the check code CHECK-C, the server-side
ステップ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
In step S13, the server-side
ステップS14において、サーバ側のサーバ側認証処理部82は、第1乱数SRを生成し、その乱数SRを、次回認証サーバ側第1シードSRi(n)とする。
また、サーバ側のサーバ側認証処理部82は、第2乱数SQを生成し、その乱数SQを、次回認証サーバ側第2シードSQi(n)とする。
In step S14, the server-side
Further, the server-side
サーバ側認証処理部82における乱数生成方法としては、関数により作成される疑似乱数列を用いる方法、原子核の崩壊や抵抗体の熱雑音といったランダムな自然現象を利用して作成される自然乱数を利用する方法の他に、別途作成された自然乱数を格納した乱数ファイルから、乱数を読み出す方法であっても良い。
As a random number generation method in the server-side
ステップS15において、サーバ側のサーバ側認証処理部82は、次式に従って、今回のワンタイム認証についての、サーバ側ワンタイム認証子Si(n−1)を作成する。
Si(n−1)=hash2{SZi,SRi(n−1),CQi(n−1)}
In step S15, the server-side
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
In step S16, the server-side
ステップ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
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
ステップ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 /
ステップ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
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
ステップS22において、制御部11は、次回認証用のクライアント側第1シードCR1(n)を認証シード141のCRi(n−1)へ格納する。
また、ステップS22において、制御部11は、次回認証用のクライアント側第2シードCQ1(n)を認証シード141のCQi(n−1)へ格納する。
In step S <b> 22, the
In step S <b> 22, the
ステップ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
In
ステップ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
ステップS25において、制御部11は、リーダライタ2へ完了を通知する。
In step S25, the
ステップS26において、サーバ側のサーバ側認証処理部82は、次回のワンタイム認証時に使用するクライアント側ワンタイム認証子Ci(n)を次式に従って計算し、次回の相互認証まで認証子テーブル72iに保持する。
Ci(n)=hash1{CZi,CRi(n),SQi(n)}
In step S26, the server-side
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
ステップ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
CKi (n) = hash5 {CRi (n), CQi (n), CKi (n-1)}
In step S28, the server-side
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
このように構成することにより、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
次に、シードテーブル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
サービス要求識別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
サービス要求識別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
なお、シードテーブル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
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
Then, the server-side
また、受信したクライアント側ワンタイム認証子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
ステップS102において、サーバ側認証処理部82は、乱数SQを作成する。
In step S102, the server-side
ステップ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
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
ステップS104において、サーバ側認証処理部82は、乱数SQを、次回認証用サーバ側シードSQi(n)にセットする。
In step S104, the server-side
次に、ステップ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
ステップ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
ステップS107において、サーバ側認証処理部82は、認証子テーブル72i内のレコードをワンタイム認証子の値が昇順になるようにソートし、ソートにより位置に変更のあったレコードについて、シードテーブル71iにおいてそのレコードの管理番号に関連付けられている認証アドレスを更新する。
In step S107, the server-side
[実施の形態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
なお、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
実施の形態2.
実施の形態1においては、ICチップ10において、電子回路によってRAND回路が形成されているという前提で説明した。しかし、ICチップ10によっては、RAND回路が形成されていない場合もある。
実施の形態2では、ICチップ10において、電子回路によってRAND回路が形成されていない場合について、説明する。
The first embodiment has been described on the assumption that the RAND circuit is formed by the electronic circuit in the
In the second embodiment, the case where the RAND circuit is not formed by the electronic circuit in the
実施の形態2では、本来、クライアント側で生成する乱数CR、CQについても、サーバ装置4で生成するように構成する。
In the second embodiment, the
図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
図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
図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 /
ステップS202において、リーダライタ2よりの読み出し要求時に、パラメータとして、サービス要求識別がICカード1に与えられる。また、サーバ装置4へもサービス要求識別のデータが送信される。ここでは、サービス要求識別“i”が、ICカード1およびサーバ装置4に与えられたとする。
In step S202, a service request identification is given to the
ステップ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
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
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
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
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
ステップS208において、サーバ側のサーバ側認証処理部82は、受信したクライアント側ワンタイム認証子C1(n−1)が、保持しているサービ要求識別iに対応したクライアント側ワンタイム認証子Ci(n−1)に一致するか判定する。
In step S208, the server-side
受信したワンタイム認証子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
ステップ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
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
If the received CheckOUT does not match the check code CHECK-C, the server-side
ステップ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
Further, the server-side
Further, the server-side
Further, the server-side
サーバ側認証処理部82における乱数生成方法としては、関数により作成される疑似乱数列を用いる方法、原子核の崩壊や抵抗体の熱雑音といったランダムな自然現象を利用して作成される自然乱数を利用する方法の他に、別途作成された自然乱数を格納した乱数ファイルから、乱数を読み出す方法であっても良い。
As a random number generation method in the server-side
ステップS212において、サーバ側のサーバ側認証処理部82は、次式に従って、今回のワンタイム認証についての、サーバ側ワンタイム認証子Si(n−1)を作成する。
Si(n−1)=hash2(SZi,SRi(n−1),CQi(n−1))
In step S212, the server-side
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
ステップ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
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
ステップ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 /
ステップ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
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 /
ステップ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
ステップ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
ステップS221において、制御部11は、リーダライタ2へ完了を通知する。
In step S221, the
ステップS222において、サーバ側のサーバ側認証処理部82は、次回のワンタイム認証時に使用するクライアント側ワンタイム認証子Ci(n)を次式に従って計算し、次回の相互認証まで認証子テーブル72iに保持する。
Ci(n)=hash1{CZi,CRi(n),SQi(n)}
In step S222, the server-side
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
ステップ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
CKi (n) = hash5 {CRi (n), CQi (n), CKi (n-1)}
In step S224, the server-side
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
次に、ステップ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
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
Then, the server-side
また、受信したクライアント側ワンタイム認証子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
ステップS302において、サーバ側認証処理部82は、乱数SQを作成する。
In step S302, the server side
ステップ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
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
ステップS304において、サーバ側認証処理部82は、乱数SQを、次回認証用サーバ側シードSQi(n)にセットする。
In step S304, the server side
次に、ステップ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
ステップ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
ステップS307において、サーバ側認証処理部82は、認証子テーブル72i内のレコードをワンタイム認証子の値が昇順になるようにソートし、ソートにより位置に変更のあったレコードについて、シードテーブル71iにおいてそのレコードの管理番号に関連付けられている認証アドレスを更新する。
In step S307, the server-side
[実施の形態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
なお、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
なお、上記の各実施の形態は、本発明の好適な例であるが、本発明は,これらに限定されるものでなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。 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カード内の不揮発性メモリは、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
また、上記実施の形態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
また、上記実施の形態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
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
13 RAM
14 FeRAM
15 Receiving
131
51 CPU
52 ROM
53 RAM
54
Claims (9)
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.
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カードは、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カードは、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.
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)
| 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 |
-
2016
- 2016-08-31 JP JP2016169822A patent/JP2018037877A/en active Pending
-
2017
- 2017-08-29 WO PCT/JP2017/030973 patent/WO2018043498A1/en not_active Ceased
Patent Citations (4)
| 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 |