JP5616156B2 - One-time authentication system - Google Patents

One-time authentication system Download PDF

Info

Publication number
JP5616156B2
JP5616156B2 JP2010173920A JP2010173920A JP5616156B2 JP 5616156 B2 JP5616156 B2 JP 5616156B2 JP 2010173920 A JP2010173920 A JP 2010173920A JP 2010173920 A JP2010173920 A JP 2010173920A JP 5616156 B2 JP5616156 B2 JP 5616156B2
Authority
JP
Japan
Prior art keywords
phase
seed
authentication
server
client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2010173920A
Other languages
Japanese (ja)
Other versions
JP2012034292A (en
Inventor
大河 克好
克好 大河
Original Assignee
株式会社通信広告社
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 株式会社通信広告社 filed Critical 株式会社通信広告社
Priority to JP2010173920A priority Critical patent/JP5616156B2/en
Publication of JP2012034292A publication Critical patent/JP2012034292A/en
Application granted granted Critical
Publication of JP5616156B2 publication Critical patent/JP5616156B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、ワンタイム認証システムに関するものである。   The present invention relates to a one-time authentication system.

クライアントおよびサーバのそれぞれにおいて乱数などのシードを認証に成功するたびに更新し、次回認証時に、それらのシードからワンタイムIDを生成し、クライアントとサーバとの間で相互に認証を行うシステムがある(例えば、特許文献1参照)。   There is a system in which a seed such as a random number is updated each time the client and the server are successfully authenticated, a one-time ID is generated from the seed at the next authentication, and the client and the server authenticate each other. (For example, refer to Patent Document 1).

特開2004−282295号公報JP 2004-282295 A

上述のようなシステムにおいて、次回認証用のクライアント側のシードは、クライアント側の装置に記憶される。このため、通常、ワンタイムIDによる認証を受けるために使用可能なクライアント側の装置は、シードが記憶されている装置に限定される。   In the system as described above, the client-side seed for next authentication is stored in the client-side device. For this reason, normally, client-side devices that can be used to receive authentication using a one-time ID are limited to devices that store seeds.

しかし、ワンタイムIDによる認証を受けるために使用可能なクライアント側の装置が限定されないようにするために、ICカードなどの書換可能な携帯型記憶装置にクライアント側のシードを記憶させてユーザがその携帯型記憶装置を携帯することが考えられる。そのようにすることで、ユーザが選択した装置に内蔵または接続されているリーダライタにより携帯型記憶装置からシードを読み取らせ、その装置にてワンタイムIDによる認証を受けることができる。   However, in order not to limit the client-side devices that can be used for authentication by the one-time ID, the client-side seed is stored in a rewritable portable storage device such as an IC card, and the user can It is conceivable to carry a portable storage device. By doing so, the seed can be read from the portable storage device by the reader / writer built in or connected to the device selected by the user, and authentication by the one-time ID can be performed by the device.

このような認証は、セッション内で複数回、繰り返し実行され、認証に成功するたびにシード、ひいてはワンタイムIDが更新される。   Such authentication is repeatedly performed a plurality of times within the session, and the seed and thus the one-time ID are updated each time authentication is successful.

しかし、ICカードなどに内蔵される不揮発性メモリには書込可能回数に上限(つまり寿命)があり、書込回数を減らしたいことから、携帯型記憶装置に次セッション用のシードを記憶させる場合、クライアント側の装置は、セッション内においてシードが更新されても携帯型記憶装置に記憶させずにRAMに保持しておき、セッション終了時(またはセッション終了後)に次回認証用のシードを携帯型記憶装置に書き込むことになる。   However, there is an upper limit (that is, the life) of the number of writable times in a nonvolatile memory built in an IC card or the like, and the seed for the next session is stored in the portable storage device because it is desired to reduce the number of times of writing. Even if the seed is updated in the session, the client side device keeps it in the RAM without storing it in the portable storage device, and the seed for the next authentication is portable at the end of the session (or after the session ends). It will be written to the storage device.

したがって、少なくともセッション終了時まで、携帯型記憶装置をリーダライタによる書込可能な位置に配置させておく必要があり、利便性がよくない。また、セッション途中で携帯型記憶装置をリーダライタから離脱させてしまうと、次セッション時に、シードが携帯型記憶装置にないため、正規ユーザであっても、次セッションの初回認証時に、ワンタイムIDによる認証を受けることができなくなってしまう。   Therefore, it is necessary to arrange the portable storage device at a position writable by the reader / writer at least until the end of the session, which is not convenient. Also, if the portable storage device is removed from the reader / writer during the session, the seed is not in the portable storage device at the next session, so even a legitimate user can receive a one-time ID at the first authentication of the next session. You will not be able to receive authentication by.

本発明は、上記の問題に鑑みてなされたものであり、セッション開始後短時間で、シードを保持する携帯型記憶装置を離脱可能とし、携帯型記憶装置が離脱しても、その後、継続的に認証を繰り返し行うことができるワンタイム認証システム、並びにそのシステムで使用可能な端末装置およびクライアントコンピュータプログラムを得ることを目的とする。   The present invention has been made in view of the above problems, and allows a portable storage device holding a seed to be detached in a short time after the start of a session. It is an object of the present invention to obtain a one-time authentication system capable of repeatedly performing authentication, a terminal device and a client computer program usable in the system.

上記の課題を解決するために、本発明では以下のようにした。   In order to solve the above problems, the present invention is configured as follows.

本発明に係るワンタイム認証システムは、サーバ装置と、クライアント装置と、所定の位置に配置されるとクライアント装置によるデータ読み書きが可能になる携帯型記憶装置とを備える。サーバ装置およびクライアント装置は、それぞれシードを生成し、シードを暗号化して相互に送信し、シードからワンタイム認証子を生成して送信し、シードに基づいて互いにワンタイム認証子についての認証を行い、認証に成功するたびに次回認証用シードを生成してシードを更新していく。携帯型記憶装置は、サーバ装置およびクライアント装置のシードを保持する。クライアント装置は、フェーズ1において、携帯型記憶装置からシードを読み出し、読み出したシードに基づいてワンタイム認証子を生成して送信し、ワンタイム認証子について認証に成功すると、フェーズ1の次回認証用シードを携帯型記憶装置に書き込み、フェーズ1の後のフェーズ2において、フェーズ1の次回認証用シードから当該フェーズ2の初回認証用シードを導出し、初回認証用シードからワンタイム認証子を生成し、ワンタイム認証子について認証に成功すると、フェーズ2での次回認証用シードを生成してシードを更新する。サーバ装置は、フェーズ1の次回認証用シードを次回のフェーズ1での認証時まで保持するとともに、その次回認証用シードからフェーズ2の初回認証用シードを導出し、フェーズ2においてワンタイム認証子について認証に成功すると、フェーズ2での次回認証用シードを生成してシードを更新する。   The one-time authentication system according to the present invention includes a server device, a client device, and a portable storage device that can read and write data by the client device when placed at a predetermined position. Each of the server device and the client device generates a seed, encrypts and transmits the seed to each other, generates and transmits a one-time authenticator from the seed, and authenticates the one-time authenticator with each other based on the seed. Each time authentication is successful, a seed for the next authentication is generated and the seed is updated. The portable storage device holds the seeds of the server device and the client device. In phase 1, the client device reads the seed from the portable storage device, generates and transmits a one-time authenticator based on the read seed, and succeeds in authenticating the one-time authenticator. The seed is written in the portable storage device, and in Phase 2 after Phase 1, the initial authentication seed of Phase 2 is derived from the next authentication seed of Phase 1, and a one-time authenticator is generated from the initial authentication seed. If the one-time authenticator is successfully authenticated, a seed for next authentication in phase 2 is generated and the seed is updated. The server device holds the seed for next authentication in phase 1 until the next authentication in phase 1, and derives the seed for initial authentication in phase 2 from the next seed for authentication. If the authentication is successful, a seed for next authentication in phase 2 is generated and the seed is updated.

これにより、フェーズ1での認証用のシードとフェーズ2での認証用のシードとを別々に設け、携帯型記憶装置に格納されているシードを使用してフェーズ1での認証を実行し、携帯型記憶装置に格納されているシードを更新し、その後は、フェーズ2での認証を繰り返し行っていく。このため、フェーズ1での認証が完了すれば、ユーザは、携帯型記憶装置を、端末装置やリーダから離脱することができる。したがって、セッション開始後短時間で、シードを保持する携帯型記憶装置を離脱可能とし、携帯型記憶装置が離脱しても、その後、継続的に認証を繰り返し行うことができる。   Thereby, the seed for authentication in phase 1 and the seed for authentication in phase 2 are separately provided, and the authentication in phase 1 is executed using the seed stored in the portable storage device, The seed stored in the type storage device is updated, and thereafter, authentication in phase 2 is repeated. For this reason, if the authentication in phase 1 is completed, the user can leave the portable storage device from the terminal device or the reader. Accordingly, the portable storage device that holds the seed can be detached in a short time after the session starts, and even if the portable storage device is detached, authentication can be continuously repeated thereafter.

また、本発明に係るワンタイム認証システムは、上記のワンタイム認証システムに加え、次のようにしてもよい。この場合、携帯型記憶装置およびサーバ装置は、シードとして、フェーズ1クライアント側シードおよびフェーズ1サーバ側シードを保持する。クライアント装置は、
(a1)携帯型記憶装置からフェーズ1クライアント側シードおよびフェーズ1サーバ側シードを読み出し、
(a2)フェーズ1クライアント側シードおよびフェーズ1サーバ側シードからフェーズ1クライアント側ワンタイム認証子を生成し、
(a3)次回認証用フェーズ1クライアント側シードを生成し、
(a4)フェーズ1クライアント側ワンタイム認証子および暗号化後の次回認証用フェーズ1クライアント側シードをサーバ装置へ送信し、
(a5)サーバ装置からフェーズ1サーバ側ワンタイム認証子および暗号化後の次回認証用フェーズ1サーバ側シードを受信し、
(a6)フェーズ1サーバ側ワンタイム認証子について認証に成功すると、次回認証用フェーズ1クライアント側シードおよび次回認証用フェーズ1サーバ側シードを携帯型記憶装置に書き込み、
(a7)フェーズ1サーバ側ワンタイム認証子について認証に成功すると、次回認証用フェーズ1クライアント側シードおよび次回認証用フェーズ1サーバ側シードから初回認証用フェーズ2クライアント側シードおよび初回認証用フェーズ2サーバ側シードを導出し、
(a8)初回認証用フェーズ2クライアント側シードおよび初回認証用フェーズ2サーバ側シードから初回認証用フェーズ2クライアント側ワンタイム認証子を生成し、
(a9)次回認証用フェーズ2クライアント側シードを生成し、
(a10)初回認証用フェーズ2クライアント側ワンタイム認証子および暗号化後の次回認証用フェーズ2クライアント側シードをサーバ装置へ送信し、
(a11)サーバ装置からフェーズ2サーバ側ワンタイム認証子および暗号化後の次回認証用フェーズ2サーバ側シードを受信し、
(a12)フェーズ2サーバ側ワンタイム認証子について認証に成功すると、次回認証用フェーズ2クライアント側シードおよび次回認証用フェーズ2サーバ側シードから次回認証用フェーズ2クライアント側ワンタイム認証子を生成する。
また、サーバ装置は、
(b1)クライアント装置からフェーズ1クライアント側ワンタイム認証子および暗号化後の次回認証用フェーズ1クライアント側シードを受信し、
(b2)フェーズ1クライアント側ワンタイム認証子について認証に成功すると、次回認証用フェーズ1サーバ側シードを生成し、
(b3)次回認証用フェーズ1クライアント側シードおよびフェーズ1サーバ側シードからフェーズ1サーバ側ワンタイム認証子を生成し、
(b4)クライアント装置へフェーズ1サーバ側ワンタイム認証子および暗号化後の次回認証用フェーズ1サーバ側シードを送信し、
(b5)次回認証用フェーズ1クライアント側シードおよび次回認証用フェーズ1サーバ側シードから初回認証用フェーズ2クライアント側シードおよび初回認証用フェーズ2サーバ側シードを導出し、
(b6)クライアント装置からフェーズ2クライアント側ワンタイム認証子および暗号化後の次回認証用フェーズ2クライアント側シードを受信し、
(b7)初回認証用フェーズ2クライアント側シードおよび初回認証用フェーズ2サーバ側シードに基づき、初回認証用フェーズ2クライアント側ワンタイム認証子について認証に成功すると、次回認証用フェーズ2サーバ側シードを生成し、
(b8)次回認証用フェーズ2クライアント側シードおよび初回認証用フェーズ2サーバ側シードから初回認証用フェーズ2サーバ側ワンタイム認証子を生成し、
(b9)クライアント装置へ初回認証用フェーズ2サーバ側ワンタイム認証子および暗号化後の次回認証用フェーズ2サーバ側シードを送信する。
In addition to the above one-time authentication system, the one-time authentication system according to the present invention may be as follows. In this case, the portable storage device and the server device hold the phase 1 client side seed and the phase 1 server side seed as seeds. The client device
(A1) Read the phase 1 client side seed and the phase 1 server side seed from the portable storage device,
(A2) Generate a phase 1 client side one-time authenticator from the phase 1 client side seed and the phase 1 server side seed,
(A3) Generate the next authentication phase 1 client-side seed,
(A4) Send the phase 1 client-side one-time authenticator and the encrypted next-phase authentication phase 1 client-side seed to the server device,
(A5) receiving the phase 1 server side one-time authenticator and the encrypted next phase phase 1 server side seed from the server device;
(A6) If the authentication is successful for the phase 1 server-side one-time authenticator, the next authentication phase 1 client-side seed and the next authentication phase 1 server-side seed are written to the portable storage device,
(A7) If the authentication is successful for the phase 1 server side one-time authenticator, the next authentication phase 1 client side seed and the next authentication phase 1 server side seed to the initial authentication phase 2 client side seed and the initial authentication phase 2 server Derive the side seed,
(A8) Generate an initial authentication phase 2 client-side one-time authenticator from the initial authentication phase 2 client-side seed and initial authentication phase 2 server-side seed;
(A9) Generate the next authentication phase 2 client-side seed,
(A10) Send the initial authentication phase 2 client side one-time authenticator and the encrypted next authentication phase 2 client side seed to the server device,
(A11) receiving the phase 2 server side one-time authenticator and the encrypted next phase phase 2 server side seed after encryption from the server device;
(A12) If the authentication is successful for the phase 2 server side one-time authenticator, the next authentication phase 2 client-side one-time authenticator is generated from the next authentication phase 2 client-side seed and the next authentication phase 2 server-side seed.
The server device
(B1) receiving a phase 1 client-side one-time authenticator and an encrypted next-phase phase 1 client-side seed from the client device;
(B2) When the authentication is successful for the phase 1 client-side one-time authenticator, the next authentication phase 1 server-side seed is generated,
(B3) Generate a phase 1 server-side one-time authenticator from the next authentication phase 1 client-side seed and phase 1 server-side seed,
(B4) Send the phase 1 server side one-time authenticator and the encrypted next phase phase 1 server side seed to the client device,
(B5) Deriving the initial authentication phase 2 client side seed and the initial authentication phase 2 server side seed from the next authentication phase 1 client side seed and the next authentication phase 1 server side seed,
(B6) receiving the phase 2 client-side one-time authenticator and the encrypted second-phase authentication phase 2 client-side seed from the client device;
(B7) Based on the initial authentication phase 2 client-side seed and the initial authentication phase 2 server-side seed, when the initial authentication phase 2 client-side one-time authenticator is successfully authenticated, the next authentication phase 2 server-side seed is generated. And
(B8) A first-time authentication phase 2 server-side one-time authenticator is generated from the next-authentication phase- 2 client-side seed and the initial-authentication phase- 2 server-side seed,
(B9) The initial authentication phase 2 server side one-time authenticator and the encrypted next authentication phase 2 server side seed are transmitted to the client device.

また、本発明に係るワンタイム認証システムは、上記のワンタイム認証システムのいずれかに加え、次のようにしてもよい。この場合、フェーズ1クライアント側ワンタイム認証子およびフェーズ2クライアント側ワンタイム認証子は、同一の一方向性関数で計算され、その一方向性関数は、2つの引数をとり、引数の順序によって関数値の異なる関数である。そして、フェーズ1クライアント側ワンタイム認証子についての引数の順序が、フェーズ1クライアント側シード、フェーズ1サーバ側シードの順序である場合、フェーズ2クライアント側ワンタイム認証子についての引数の順序が、フェーズ2サーバ側シード、フェーズ2クライアント側シードの順序である。一方、フェーズ1クライアント側ワンタイム認証子についての引数の順序が、フェーズ1サーバ側シード、フェーズ1クライアント側シードの順序である場合、フェーズ2クライアント側ワンタイム認証子についての引数の順序が、フェーズ2クライアント側シード、フェーズ2サーバ側シードの順序である。   In addition to the one-time authentication system described above, the one-time authentication system according to the present invention may be as follows. In this case, the phase 1 client-side one-time authenticator and the phase 2 client-side one-time authenticator are calculated with the same one-way function, and the one-way function takes two arguments and functions according to the order of the arguments. It is a function with different values. If the order of arguments for the phase 1 client-side one-time authenticator is the order of phase 1 client-side seed and phase 1 server-side seed, the order of the arguments for the phase 2 client-side one-time authenticator is 2 server-side seed and phase 2 client-side seed. On the other hand, when the order of arguments for the phase 1 client-side one-time authenticator is the order of phase 1 server-side seed and phase 1 client-side seed, the order of the arguments for the phase 2 client-side one-time authenticator is 2 client-side seed and phase 2 server-side seed.

これにより、フェーズ1クライアント側ワンタイム認証子およびフェーズ2クライアント側ワンタイム認証子に使用する関数値のデータフォーマットが同一になる。このため、盗聴してもフェーズ1のワンタイム認証子かフェーズ2のワンタイム認証子かがデータフォーマットから判別できない。また、引数の順序を変えているため、フェーズ1のワンタイム認証子とフェーズ2の初回のワンタイム認証子とが一致しにくい。したがって、耐タンパ性が向上する。   Thereby, the data formats of the function values used for the phase 1 client-side one-time authenticator and the phase 2 client-side one-time authenticator are the same. For this reason, even if it is wiretapped, it cannot be determined from the data format whether it is a phase 1 one-time authenticator or a phase 2 one-time authenticator. Also, since the order of the arguments is changed, it is difficult for the one-time authenticator of phase 1 and the first one-time authenticator of phase 2 to match. Therefore, tamper resistance is improved.

また、本発明に係るワンタイム認証システムは、上記のワンタイム認証システムのいずれかに加え、次のようにしてもよい。フェーズ1サーバ側ワンタイム認証子およびフェーズ2サーバ側ワンタイム認証子は、同一の一方向性関数で計算され、その一方向性関数は、2つの引数をとり、引数の順序によって関数値の異なる関数である。そして、フェーズ1サーバ側ワンタイム認証子についての引数の順序が、次回認証用フェーズ1クライアント側シード、フェーズ1サーバ側シードの順序である場合、フェーズ2サーバ側ワンタイム認証子についての引数の順序が、フェーズ2サーバ側シード、次回認証用フェーズ2クライアント側シードの順序である。一方、フェーズ1サーバ側ワンタイム認証子についての引数の順序が、フェーズ1サーバ側シード、次回認証用フェーズ1クライアント側シードの順序である場合、フェーズ2サーバ側ワンタイム認証子についての引数の順序が、次回認証用フェーズ2クライアント側シード、フェーズ2サーバ側シードの順序である。   In addition to the one-time authentication system described above, the one-time authentication system according to the present invention may be as follows. The phase 1 server-side one-time authenticator and the phase 2 server-side one-time authenticator are calculated with the same one-way function. The one-way function takes two arguments, and the function values differ depending on the order of the arguments. It is a function. If the order of arguments for the phase 1 server-side one-time authenticator is the next authentication phase-one client-side seed and phase-one server-side seed, the order of arguments for the phase-two server-side one-time authenticator Is the order of the phase 2 server-side seed and the next authentication phase 2 client-side seed. On the other hand, when the order of the arguments for the phase 1 server-side one-time authenticator is the order of the phase 1 server-side seed and the next authentication phase 1 client-side seed, the order of the arguments for the phase 2 server-side one-time authenticator Is the order of the next authentication phase 2 client-side seed and phase 2 server-side seed.

これにより、フェーズ1サーバ側ワンタイム認証子およびフェーズ2サーバ側ワンタイム認証子に使用する関数値のデータフォーマットが同一になる。このため、盗聴してもフェーズ1のワンタイム認証子かフェーズ2のワンタイム認証子かがデータフォーマットから判別できない。また、引数の順序を変えているため、フェーズ1のワンタイム認証子とフェーズ2の初回のワンタイム認証子とが一致しにくい。したがって、耐タンパ性が向上する。   As a result, the data formats of the function values used for the phase 1 server-side one-time authenticator and the phase 2 server-side one-time authenticator are the same. For this reason, even if it is wiretapped, it cannot be determined from the data format whether it is a phase 1 one-time authenticator or a phase 2 one-time authenticator. Also, since the order of the arguments is changed, it is difficult for the one-time authenticator of phase 1 and the first one-time authenticator of phase 2 to match. Therefore, tamper resistance is improved.

また、本発明に係るワンタイム認証システムは、上記のワンタイム認証システムのいずれかに加え、次のようにしてもよい。この場合、クライアント装置は、次回認証用フェーズ1クライアント側シードおよび次回認証用フェーズ1サーバ側シードを携帯型記憶装置に書き込むまでメモリで保持し、次回認証用フェーズ1クライアント側シードおよび次回認証用フェーズ1サーバ側シードを、携帯型記憶装置に書き込んだ後、メモリから消去する。   In addition to the one-time authentication system described above, the one-time authentication system according to the present invention may be as follows. In this case, the client device holds the next authentication phase 1 client-side seed and next authentication phase 1 server-side seed in the memory until it is written in the portable storage device, and the next authentication phase 1 client-side seed and next authentication phase. 1 The server-side seed is erased from the memory after being written into the portable storage device.

これにより、フェーズ1のシードがクライアント装置に残らないため、フェーズ1の認証が完了した後に、次回、フェーズ1で使用するシードをクライアント装置から不正に入手することが困難になる。   Accordingly, since the seed of phase 1 does not remain in the client device, it becomes difficult to illegally obtain the seed used in phase 1 from the client device next time after the authentication of phase 1 is completed.

また、本発明に係るワンタイム認証システムは、上記のワンタイム認証システムのいずれかに加え、次のようにしてもよい。この場合、携帯型記憶装置およびサーバ装置は、フェーズ1共通暗号鍵を保持する。クライアント装置は、携帯型記憶装置からフェーズ1共通暗号鍵を読み出し、フェーズ1共通暗号鍵で、次回認証用フェーズ1クライアント側シードを暗号化し、フェーズ1サーバ側ワンタイム認証子について認証に成功すると、フェーズ1共通暗号鍵を更新し、更新後のフェーズ1共通暗号鍵を携帯型記憶装置に書き込み、更新後のフェーズ1共通暗号鍵からフェーズ2共通暗号鍵の初期値を導出し、フェーズ2共通暗号鍵で、次回認証用フェーズ2クライアント側シードを暗号化し、フェーズ2サーバ側ワンタイム認証子について認証に成功すると、フェーズ2共通暗号鍵を更新する。一方、サーバ装置は、フェーズ1共通暗号鍵で、次回認証用フェーズ1サーバ側シードを暗号化し、フェーズ1クライアント側ワンタイム認証子について認証に成功すると、フェーズ1共通暗号鍵を更新し、更新後のフェーズ1共通暗号鍵を次回のフェーズ1での認証時まで保持するとともに、更新後のフェーズ1共通暗号鍵からフェーズ2共通暗号鍵の初期値を導出し、フェーズ2共通暗号鍵で、次回認証用フェーズ2サーバ側シードを暗号化し、フェーズ2クライアント側ワンタイム認証子について認証に成功すると、フェーズ2共通暗号鍵を更新する。   In addition to the one-time authentication system described above, the one-time authentication system according to the present invention may be as follows. In this case, the portable storage device and the server device hold the phase 1 common encryption key. The client device reads the phase 1 common encryption key from the portable storage device, encrypts the next authentication phase 1 client-side seed with the phase 1 common encryption key, and succeeds in authenticating the phase 1 server-side one-time authenticator. Update the phase 1 common encryption key, write the updated phase 1 common encryption key to the portable storage device, derive the initial value of the phase 2 common encryption key from the updated phase 1 common encryption key, and use the phase 2 common encryption key The key for the next authentication phase 2 client side is encrypted with the key. When the phase 2 server side one-time authenticator is successfully authenticated, the phase 2 common encryption key is updated. On the other hand, the server device encrypts the phase 1 server-side seed for the next authentication with the phase 1 common encryption key, and when the authentication is successful for the phase 1 client-side one-time authenticator, updates the phase 1 common encryption key. The phase 1 common encryption key is retained until the next authentication in phase 1, and the initial value of the phase 2 common encryption key is derived from the updated phase 1 common encryption key, and the next authentication is performed using the phase 2 common encryption key. When the phase 2 server side seed is encrypted and the phase 2 client side one-time authenticator is successfully authenticated, the phase 2 common encryption key is updated.

これにより、フェーズ1で使用される共通暗号鍵とフェーズ2で使用される共通暗号鍵とを別々に設け、携帯型記憶装置に格納されているフェーズ1共通暗号鍵を使用して暗号化されたシードの送受を行い、フェーズ1での認証が成功すると、携帯型記憶装置に格納されているフェーズ1共通暗号鍵を更新し、また、フェーズ2での認証が成功するたびに、フェーズ2共通暗号鍵を更新していく。このため、フェーズ1とフェーズ2と別々に共通暗号鍵が更新されていき、耐タンパ性が向上する。   As a result, the common encryption key used in phase 1 and the common encryption key used in phase 2 are separately provided and encrypted using the phase 1 common encryption key stored in the portable storage device. When the seed is sent and received and the authentication in phase 1 is successful, the phase 1 common encryption key stored in the portable storage device is updated, and whenever the authentication in phase 2 is successful, the phase 2 common encryption key is updated. Update the key. For this reason, the common encryption key is updated separately in phase 1 and phase 2, and tamper resistance is improved.

また、本発明に係るワンタイム認証システムは、上記のワンタイム認証システムのいずれかに加え、次のようにしてもよい。この場合、クライアント装置は、更新後のフェーズ1共通暗号鍵を携帯型記憶装置に書き込むまでメモリで保持し、更新後のフェーズ1共通暗号鍵を、携帯型記憶装置に書き込んだ後、メモリから消去する。   In addition to the one-time authentication system described above, the one-time authentication system according to the present invention may be as follows. In this case, the client device holds the updated phase 1 common encryption key in the memory until it is written in the portable storage device, and writes the updated phase 1 common encryption key in the portable storage device and then deletes it from the memory. To do.

これにより、フェーズ1で使用する共通暗号鍵がクライアント装置に残らないため、フェーズ1の認証が完了した後に、次回、フェーズ1で使用する共通暗号鍵をクライアント装置から不正に入手することが困難になる。   As a result, since the common encryption key used in phase 1 does not remain in the client device, it is difficult to illegally obtain the common encryption key used in phase 1 next time from the client device after the authentication in phase 1 is completed. Become.

本発明に係る端末装置は、ネットワークを介してサーバ装置と通信する通信処理部と、シードを生成するとともに通信処理部を使用してサーバ装置からサーバ装置のシードを受信し、生成したシードと受信したシードからワンタイム認証子を生成して通信処理部を使用して送信し、シードに基づいて、サーバ装置から受信されたワンタイム認証子についての認証を行い、認証に成功するたびに次回認証用シードを生成してシードを更新していく認証処理部とを備える。そして、認証処理部は、フェーズ1において、所定の位置に配置されると当該端末装置によるデータ読み書きが可能になる携帯型記憶装置からサーバ装置側および当該端末装置側のシードを読み出し、読み出したシードに基づいてワンタイム認証子を生成して送信し、ワンタイム認証子について認証に成功すると、サーバ装置側および当該端末装置側についてのフェーズ1の次回認証用シードを携帯型記憶装置に書き込み、フェーズ1の後のフェーズ2において、フェーズ1の次回認証用シードから当該フェーズ2の初回認証用シードを導出し、初回認証用シードからワンタイム認証子を生成し、ワンタイム認証子について認証に成功すると、フェーズ2での次回認証用シードを生成してシードを更新する。   A terminal device according to the present invention generates a seed from a communication processing unit that communicates with a server device via a network, and generates a seed from the server device using the communication processing unit, and receives the generated seed and reception A one-time authenticator is generated from the seed and sent using the communication processing unit, and the one-time authenticator received from the server device is authenticated based on the seed. And an authentication processing unit for generating a seed and updating the seed. Then, in phase 1, the authentication processing unit reads the seeds on the server device side and the terminal device side from the portable storage device that can read and write data by the terminal device when placed in a predetermined position, and reads the read seed When the one-time authenticator is successfully generated and transmitted, and the authentication is successful for the one-time authenticator, the next authentication seed of the phase 1 for the server device side and the terminal device side is written in the portable storage device. In Phase 2 after 1, when the initial authentication seed of Phase 2 is derived from the next authentication seed of Phase 1, a one-time authenticator is generated from the initial authentication seed, and the one-time authenticator is successfully authenticated. Next, a seed for next authentication in phase 2 is generated and the seed is updated.

本発明に係るクライアントコンピュータプログラムは、端末装置内のコンピュータを、シードを生成するとともにサーバ装置からサーバ装置のシードを受信し、生成したシードと受信したシードからワンタイム認証子を生成して送信し、シードに基づいて、サーバ装置から受信されたワンタイム認証子についての認証を行い、認証に成功するたびに次回認証用シードを生成してシードを更新していく認証処理部として機能させるためのクライアントコンピュータプログラムである。そして、その認証処理部は、フェーズ1において、所定の位置に配置されると端末装置によるデータ読み書きが可能になる携帯型記憶装置からサーバ装置側および端末装置側のシードを読み出し、読み出したシードに基づいてワンタイム認証子を生成して送信し、ワンタイム認証子について認証に成功すると、サーバ装置側および当該端末装置側についてのフェーズ1の次回認証用シードを携帯型記憶装置に書き込み、フェーズ1の後のフェーズ2において、フェーズ1の次回認証用シードから当該フェーズ2の初回認証用シードを導出し、初回認証用シードからワンタイム認証子を生成し、ワンタイム認証子について認証に成功すると、フェーズ2での次回認証用シードを生成してシードを更新する。   The client computer program according to the present invention generates a seed from the computer in the terminal device, receives the seed of the server device from the server device, and generates and transmits a one-time authenticator from the generated seed and the received seed. , Based on the seed, to authenticate the one-time authenticator received from the server device, and to function as an authentication processing unit that generates the next authentication seed and updates the seed each time authentication is successful A client computer program. Then, in phase 1, the authentication processing unit reads the seeds on the server device side and the terminal device side from the portable storage device that can read and write data by the terminal device when placed at a predetermined position, and uses the read seeds as the read seeds. If a one-time authenticator is successfully generated and transmitted, and the one-time authenticator is successfully authenticated, the next authentication seed of the phase 1 for the server device side and the terminal device side is written in the portable storage device. In the subsequent phase 2, the initial authentication seed of the phase 2 is derived from the next authentication seed of the phase 1, a one-time authenticator is generated from the initial authentication seed, and the one-time authenticator is successfully authenticated. The seed for next authentication in the phase 2 is generated and the seed is updated.

本発明によれば、セッション開始後短時間で、シードを保持する携帯型記憶装置を離脱可能とし、携帯型記憶装置が離脱しても、その後、継続的に認証を繰り返し行うことができるワンタイム認証システムが得られる。   According to the present invention, the portable storage device that holds the seed can be detached in a short time after the session starts, and even if the portable storage device is detached, the authentication can be continuously repeated thereafter. An authentication system is obtained.

図1は、本発明の実施の形態に係るワンタイム認証システムの構成を示すブロック図である。FIG. 1 is a block diagram showing a configuration of a one-time authentication system according to an embodiment of the present invention. 図2は、図1における端末装置の構成を示すブロック図である。FIG. 2 is a block diagram showing a configuration of the terminal device in FIG. 図3は、図2に示す端末装置において実現される処理部を示すブロック図である。FIG. 3 is a block diagram showing a processing unit realized in the terminal device shown in FIG. 図4は、図1におけるサーバ装置の構成を示すブロック図である。FIG. 4 is a block diagram showing a configuration of the server apparatus in FIG. 図5は、図2に示すサーバ装置において実現される処理部を示すブロック図である。FIG. 5 is a block diagram showing a processing unit realized in the server apparatus shown in FIG. 図6は、図1におけるICカードの構成を示すブロック図である。FIG. 6 is a block diagram showing the configuration of the IC card in FIG. 図7は、図1に示すシステムにおいて実行されるワンタイム認証子を使用して繰り返し行われる認証について説明するシーケンス図である。FIG. 7 is a sequence diagram for explaining the authentication repeatedly performed using the one-time authenticator executed in the system shown in FIG. 図8は、図7におけるフェーズ1でのワンタイム認証(ステップS4)の詳細について説明するシーケンス図である。FIG. 8 is a sequence diagram illustrating details of the one-time authentication (step S4) in phase 1 in FIG. 図9は、図7におけるフェーズ2での初回のワンタイム認証(ステップS7a)の詳細について説明するシーケンス図である。FIG. 9 is a sequence diagram illustrating details of the first one-time authentication (step S7a) in phase 2 in FIG. 図10は、図7におけるフェーズ2での2回目以降のワンタイム認証(ステップS7)の詳細について説明するシーケンス図である。FIG. 10 is a sequence diagram illustrating details of the second and subsequent one-time authentications (step S7) in phase 2 in FIG. 図11は、実施の形態2におけるシードテーブルの構造の一例を示す図である。FIG. 11 is a diagram illustrating an example of the structure of the seed table in the second embodiment. 図12は、実施の形態2における認証子テーブルの一例を示す図である。FIG. 12 is a diagram illustrating an example of an authenticator table in the second embodiment. 図13は、実施の形態2におけるサーバ装置によるデータ処理について説明するフローチャートである。FIG. 13 is a flowchart for explaining data processing by the server device in the second embodiment. 図14は、実施の形態2におけるサーバ装置によるデータ処理について説明するフローチャートである。FIG. 14 is a flowchart illustrating data processing performed by the server device according to the second embodiment.

以下、図に基づいて本発明の実施の形態を説明する。   Hereinafter, embodiments of the present invention will be described with reference to the drawings.

実施の形態1. Embodiment 1 FIG.

図1は、本発明の実施の形態に係るワンタイム認証システムの構成を示すブロック図である。   FIG. 1 is a block diagram showing a configuration of a one-time authentication system according to an embodiment of the present invention.

図1に示すシステムでは、クライアント装置としての端末装置1にICカード用リーダライタ2が接続されており、また、端末装置1は、ネットワーク3に接続されており、そのネットワーク3にはサーバ装置4が接続されている。端末装置1は、ICカード5が所定の位置(例えばリーダライタ2の上)に配置されている時に、リーダライタ2を使用して、ICカード5に対してデータの読み書きを行うことができるとともに、サーバ装置4との間でデータ通信を行うことができる。   In the system shown in FIG. 1, an IC card reader / writer 2 is connected to a terminal device 1 as a client device, and the terminal device 1 is connected to a network 3, and a server device 4 is connected to the network 3. Is connected. The terminal device 1 can read / write data from / to the IC card 5 using the reader / writer 2 when the IC card 5 is placed at a predetermined position (for example, above the reader / writer 2). Data communication can be performed with the server device 4.

端末装置1は、パーソナルコンピュータなどの装置である。ネットワーク3は、有線および/または無線のLAN(Local Area Network)、および/またはインターネットなどのWAN(Wide Area Network)を含んでいる。ICカード5は、Ferica(登録商標)などといった、データ読み書き可能な不揮発性メモリ領域を有するカードである。この実施の形態1では、ICカード5は、携帯型記憶装置として使用される。   The terminal device 1 is a device such as a personal computer. The network 3 includes a wired and / or wireless LAN (Local Area Network) and / or a WAN (Wide Area Network) such as the Internet. The IC card 5 is a card having a nonvolatile memory area in which data can be read and written, such as Ferica (registered trademark). In the first embodiment, the IC card 5 is used as a portable storage device.

ICカード5は、シードを保持する。シードは、ワンタイム認証子を生成するために使用されるデータであって、この実施の形態では、乱数が使用される。ワンタイム認証子は、認証時に1度だけ使用可能なID(ワンタイムID)またはパスワード(ワンタイムパスワード)である。この実施の形態では、ワンタイム認証子は、ワンタイムIDとされる。   The IC card 5 holds a seed. The seed is data used to generate a one-time authenticator. In this embodiment, a random number is used. The one-time authenticator is an ID (one-time ID) or password (one-time password) that can be used only once during authentication. In this embodiment, the one-time authenticator is a one-time ID.

サーバ装置4および端末装置1は、それぞれシードを生成し、認証に成功するたびにシードを更新していき、そのシードを暗号化して相互に送受し、両者のシードからワンタイム認証子を生成し、シードに基づいて、互いにワンタイム認証子についての認証を行う。なお、以下では、ワンタイム認証子についての認証のことを、ワンタイム認証という。   Each of the server device 4 and the terminal device 1 generates a seed, updates the seed each time authentication is successful, encrypts the seed, transmits and receives each other, and generates a one-time authenticator from both seeds. Based on the seed, the one-time authenticators are mutually authenticated. Hereinafter, the authentication for the one-time authenticator is referred to as one-time authentication.

サーバ装置4および端末装置1は、フェーズ1およびフェーズ2のワンタイム認証を行う。フェーズ1は、セッション開始後の初回のワンタイム認証を行うフェーズであり、フェーズ2は、フェーズ1に続くフェーズである。   The server device 4 and the terminal device 1 perform one-time authentication in phase 1 and phase 2. Phase 1 is a phase in which the first one-time authentication after the start of the session is performed, and phase 2 is a phase following Phase 1.

フェーズ1において、端末装置1は、ICカード5から両者のシードを読み出し、そのシードに基づいてワンタイム認証子を生成してサーバ装置4へ送信し、ワンタイム認証子について認証に成功すると、次回認証用シードをICカード5に書き込む。   In phase 1, the terminal device 1 reads both seeds from the IC card 5, generates a one-time authenticator based on the seed, transmits the one-time authenticator to the server device 4, and succeeds in authenticating the one-time authenticator. Write the authentication seed into the IC card 5.

フェーズ1の後のフェーズ2において、端末装置1は、フェーズ1の次回認証用シードから当該フェーズ2の初回認証用シードを導出し、初回認証用シードからワンタイム認証子を生成し、ワンタイム認証子について認証に成功すると、フェーズ2での次回認証用シードを生成し次回認証用シードに基づいてワンタイム認証子を生成する。   In Phase 2 after Phase 1, the terminal device 1 derives the initial authentication seed for Phase 2 from the next authentication seed for Phase 1, generates a one-time authenticator from the initial authentication seed, and performs one-time authentication. If the authentication is successful for the child, the next authentication seed in phase 2 is generated, and a one-time authenticator is generated based on the next authentication seed.

一方、サーバ装置4は、フェーズ1の次回認証用シードを次回のフェーズ1での認証時まで保持するとともに、その次回認証用シードからフェーズ2の初回認証用シードを導出し、ワンタイム認証子について認証に成功すると、フェーズ2での次回認証用シードを生成し次回認証用シードに基づいてワンタイム認証子を生成する。   On the other hand, the server device 4 holds the next authentication seed for the phase 1 until the next authentication in the phase 1 and derives the initial authentication seed for the phase 2 from the next authentication seed. When the authentication is successful, the next authentication seed in phase 2 is generated, and a one-time authenticator is generated based on the next authentication seed.

なお、図1では、ICカード5は、1枚だけであるが、2枚以上のICカード5のそれぞれに異なるシードを保持させて、それぞれ異なるワンタイム認証子で認証を行うことも可能である。また、図1では、端末装置1およびリーダライタ2も1組のみであるが、同様のものが複数組、ネットワーク3に接続されていてもよい。   In FIG. 1, there is only one IC card 5, but it is also possible to perform authentication with different one-time authenticators by holding different seeds in two or more IC cards 5. . In FIG. 1, the terminal device 1 and the reader / writer 2 are only one set, but a plurality of similar devices may be connected to the network 3.

以下、上記システムにおける各装置の構成および動作について説明する。   The configuration and operation of each device in the system will be described below.

(1)各装置の構成 (1) Configuration of each device

図2は、図1における端末装置1の構成を示すブロック図である。   FIG. 2 is a block diagram showing the configuration of the terminal device 1 in FIG.

図2に示すように、端末装置1は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13などを有するコンピュータを内蔵する。   As illustrated in FIG. 2, the terminal device 1 includes a computer having a CPU (Central Processing Unit) 11, a ROM (Read Only Memory) 12, a RAM (Random Access Memory) 13, and the like.

CPU11は、プログラムを実行し、プログラムに記述された処理を実行する演算処理装置である。また、ROM12は、プログラムおよびデータを予め記憶した不揮発性のメモリである。また、RAM13は、プログラムを実行する際にそのプログラムおよびデータを一時的に記憶する揮発性のメモリである。   The CPU 11 is an arithmetic processing unit that executes a program and executes a process described in the program. The ROM 12 is a nonvolatile memory that stores programs and data in advance. The RAM 13 is a volatile memory that temporarily stores the program and data when the program is executed.

また、インタフェース14は、記憶装置15を接続可能なインタフェース回路であり、SCSI(Small Computer System Interface )、IDE(Integrated Device Electronics )互換のものなどである。   The interface 14 is an interface circuit to which the storage device 15 can be connected, and is compatible with SCSI (Small Computer System Interface), IDE (Integrated Device Electronics), or the like.

また、記憶装置15は、インタフェース14に接続され、図示せぬオペレーティングシステム、ワンタイム認証プログラム31、アプリケーションプログラムなどを格納する記録媒体を有する装置である。記憶装置15としては、ハードディスクドライブ、SSD(Solid State Disk)などが使用される。   The storage device 15 is connected to the interface 14 and has a recording medium that stores an operating system (not shown), a one-time authentication program 31, an application program, and the like. As the storage device 15, a hard disk drive, SSD (Solid State Disk), or the like is used.

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

また、インタフェース18は、IEEE1394、USB(Universal Serial Bus)などといった周辺機器インタフェースであって、リーダライタ2を接続可能なインタフェース回路である。   The interface 18 is a peripheral device interface such as IEEE1394 or USB (Universal Serial Bus), and is an interface circuit to which the reader / writer 2 can be connected.

また、インタフェース20は、入力装置21を接続可能なインタフェース回路である。入力装置21は、キーボード、マウスなどといったユーザ操作を受け付けてそのユーザ操作に応じた信号を出力する装置である。   The interface 20 is an interface circuit to which the input device 21 can be connected. The input device 21 is a device that receives a user operation such as a keyboard and a mouse and outputs a signal corresponding to the user operation.

また、画像処理回路22は、画像データを書き込まれると、そのデータに対応する画像信号を出力する回路である。この画像処理回路22には、その画像信号に基づいて画像を表示する表示装置23が接続可能である。   The image processing circuit 22 is a circuit that outputs an image signal corresponding to the data when the image data is written. A display device 23 that displays an image based on the image signal can be connected to the image processing circuit 22.

CPU11、ROM12、RAM13、インタフェース14,16,18,20および画像処理回路22は、バスやコントローラチップによって相互にデータ通信可能に接続されている。   The CPU 11, ROM 12, RAM 13, interfaces 14, 16, 18, 20 and image processing circuit 22 are connected to each other via a bus or a controller chip so that data communication is possible.

図3は、図2に示す端末装置1において実現される処理部を示すブロック図である。図3に示すように、この端末装置1において、リーダライタ制御部41、通信処理部42、および認証処理部43が実現される。   FIG. 3 is a block diagram showing a processing unit realized in the terminal device 1 shown in FIG. As shown in FIG. 3, a reader / writer control unit 41, a communication processing unit 42, and an authentication processing unit 43 are realized in the terminal device 1.

リーダライタ制御部41は、リーダライタ2を制御するドライバであって、ICカード5に対するデータの読み書きを実行する。   The reader / writer control unit 41 is a driver that controls the reader / writer 2, and reads / writes data from / to the IC card 5.

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

認証処理部43は、CPU11でワンタイム認証プログラム31が実行されることにより実現され、リーダライタ制御部41および通信処理部42を使用して、サーバ装置4との相互認証におけるクライアント側の処理を実行する。   The authentication processing unit 43 is realized by the CPU 11 executing the one-time authentication program 31, and uses the reader / writer control unit 41 and the communication processing unit 42 to perform client-side processing in mutual authentication with the server device 4. Run.

図4は、図1におけるサーバ装置4の構成を示すブロック図である。   FIG. 4 is a block diagram showing the configuration of the server device 4 in FIG.

図4において、CPU51は、プログラムを実行し、プログラムに記述された処理を実行する演算処理装置である。また、ROM52は、プログラムおよびデータを予め記憶した不揮発性のメモリである。また、RAM53は、プログラムを実行する際にそのプログラムおよびデータを一時的に記憶するメモリである。   In FIG. 4, 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を接続可能なインタフェース回路であり、SCSI、IDE互換のものなどである。記憶装置55は、インタフェース54に接続され、図示せぬオペレーティングシステム、ワンタイム認証プログラム61、認証に使用されるデータなどを格納する記録媒体を有する装置である。記憶装置55としては、ハードディスクドライブ、SSDなどが使用される。記憶装置55には、認証に使用されるデータとして、シードテーブル71、認証子テーブル72、およびカード属性テーブル73が保持されている。   The interface 54 is an interface circuit to which the storage device 55 can be connected, and is an SCSI or IDE compatible one. The storage device 55 is a device that is connected to the interface 54 and has a recording 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 71, an authenticator table 72, and a card attribute table 73 as data used for authentication.

シードテーブル71は、最後の認証時に更新された、フェーズ1およびフェーズ2のそれぞれについての次回認証用シードおよび次回認証用共通暗号鍵を有する。次回認証用シードおよび次回認証用共通暗号鍵は、1または複数のICカードのそれぞれについて別々に保持される。   The seed table 71 has a next authentication seed and a next authentication common encryption key for each of the phase 1 and the phase 2 updated at the time of the last 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.

認証子テーブル72は、最後の認証時に更新された、フェーズ1およびフェーズ2のそれぞれについての次回認証用のクライアント側ワンタイム認証子を有する。認証子テーブル72は、フェーズ1テーブル72aとフェーズ2テーブル72bとを含む。フェーズ1テーブル72aは、フェーズ1についての次回認証用のクライアント側ワンタイム認証子を有し、とフェーズ2テーブル72bは、フェーズ2についての次回認証用のクライアント側ワンタイム認証子を有する。次回認証用のクライアント側ワンタイム認証子は、1または複数のICカードのそれぞれについて別々に保持される。   The authenticator table 72 has a client-side one-time authenticator for the next authentication for each of the phase 1 and the phase 2 updated at the time of the last authentication. The authenticator table 72 includes a phase 1 table 72a and a phase 2 table 72b. The phase 1 table 72a has a client-side one-time authenticator for the next authentication for phase 1, and the phase 2 table 72b has a client-side one-time authenticator for the next authentication for phase 2. The client side one-time authenticator for the next authentication is held separately for each of one or a plurality of IC cards.

カード属性テーブル73は、ICカード5のカードID、およびそのカードIDに関連付けられている属性情報(カード所有者情報など)を有するテーブルである。カード属性テーブル73は、ワンタイム認証子がワンタイムパスワードであるときに、端末装置1からワンタイム認証子とともに受信されるカードIDの正当性を判定する際に参照される。   The card attribute table 73 is a table having a card ID of the IC card 5 and attribute information (such as card owner information) associated with the card ID. The card attribute table 73 is referred to when determining the validity of the card ID received together with the one-time authenticator from the terminal device 1 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 by a bus or a controller chip so that data communication can be performed.

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

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

サーバ側認証処理部82は、CPU51でワンタイム認証プログラム61が実行されることにより実現され、通信処理部81を使用して、1または複数のクライアント装置(端末装置1など)との相互認証におけるサーバ側の処理を実行する。   The server-side authentication processing unit 82 is realized by the CPU 51 executing the one-time authentication program 61, and uses the communication processing unit 81 to perform mutual authentication with one or a plurality of client devices (such as the terminal device 1). Perform server-side processing.

図6は、図1におけるICカード5の構成を示すブロック図である。   FIG. 6 is a block diagram showing the configuration of the IC card 5 in FIG.

ICカード5は、通信部91、不揮発性メモリ92、および制御部93を有する。通信部91は、リーダライタ2との通信のためのアンテナや通信回路を有する。不揮発性メモリ92は、フラッシュメモリなどであって、ユーザが書換可能なユーザ領域と、ユーザが書換可能ではない非ユーザ領域とを有する。ICカードに固有なカードID101は、予め非ユーザ領域に保持されており、シード102は、ユーザ領域に保持される。制御部93は、リーダライタ2から受信されるコマンドに従って、不揮発性メモリ92に対するデータの読み書きを行う回路である。   The IC card 5 includes a communication unit 91, a nonvolatile memory 92, and a control unit 93. The communication unit 91 includes an antenna and a communication circuit for communication with the reader / writer 2. The nonvolatile memory 92 is a flash memory or the like, and has a user area that can be rewritten by the user and a non-user area that cannot be rewritten by the user. The card ID 101 unique to the IC card is held in advance in the non-user area, and the seed 102 is held in the user area. The control unit 93 is a circuit that reads / writes data from / to the nonvolatile memory 92 in accordance with a command received from the reader / writer 2.

(2)各装置の動作 (2) Operation of each device

図7は、図1に示すシステムにおいて実行されるワンタイム認証子を使用して繰り返し行われる認証について説明するシーケンス図である。   FIG. 7 is a sequence diagram for explaining the authentication repeatedly performed using the one-time authenticator executed in the system shown in FIG.

まず、セッション開始時(ステップS1)に、ユーザは、ICカード5をリーダライタ2に載置しておく。   First, at the start of a session (step S1), the user places the IC card 5 on the reader / writer 2.

端末装置1では、認証処理部43は、リーダライタ制御部41を使用してリーダライタ2を制御し、ICカード5からシード102などを読み込む(ステップS2)。   In the terminal device 1, the authentication processing unit 43 controls the reader / writer 2 using the reader / writer control unit 41, and reads the seed 102 and the like from the IC card 5 (step S2).

そして、認証処理部43は、フェーズフラグPに、フェーズ1を示す値(ここでは1)をセットする(ステップS3)。フェーズフラグPは、認証のフェーズを示すデータである。フェーズフラグPの値から、現時点のフェーズが識別され、ひいては、フェーズ1からフェーズ2へ移行したことも判定される。   And the authentication process part 43 sets the value (here 1) which shows the phase 1 to the phase flag P (step S3). The phase flag P is data indicating an authentication phase. From the value of the phase flag P, the current phase is identified, and it is also determined that the phase has shifted from phase 1 to phase 2.

次に、端末装置1の認証処理部43とサーバ装置4のサーバ側認証処理部82との間で、フェーズ1でのワンタイム認証が実行される(ステップS4)。このとき、認証処理部43は、読み込んだシードからワンタイム認証子を生成し、また、次回認証用シードを生成して暗号化し、ワンタイム認証子および暗号化された次回認証用シードをサーバ装置4へ送信する。サーバ側認証処理部82は、そのワンタイム認証子および暗号化された次回認証用シードを受信し、そのワンタイム認証子が正当なものであるか否かを判定する。サーバ側認証処理部82は、そのワンタイム認証子が正当なものであれば、クライアントの次回認証用シードを復号して保持する。   Next, one-time authentication in the phase 1 is executed between the authentication processing unit 43 of the terminal device 1 and the server side authentication processing unit 82 of the server device 4 (step S4). At this time, the authentication processing unit 43 generates a one-time authenticator from the read seed, generates a next-authentication seed and encrypts it, and the server device generates the one-time authenticator and the encrypted next-authentication seed. 4 to send. The server-side authentication processing unit 82 receives the one-time authenticator and the encrypted seed for next authentication, and determines whether or not the one-time authenticator is valid. If the one-time authenticator is valid, the server-side authentication processing unit 82 decrypts and holds the next authentication seed for the client.

なお、フェーズ1のクライアント側シードの初期値、サーバ側シードの初期値、および共通暗号鍵の初期値は、ICカード5とサーバ装置4に予めセットされる。サーバ装置4には、ICカード5に関連付けて、それらの初期値がセットされる。   Note that the initial value of the client-side seed, the initial value of the server-side seed, and the initial value of the common encryption key in phase 1 are preset in the IC card 5 and the server device 4. In the server device 4, their initial values are set in association with the IC card 5.

サーバ装置4では、シードテーブル71にICカード5のシード102と同一のシードが保持されており、また、フェーズ1の次回認証用クライアント側ワンタイム認証子が、認証子テーブル72に保持されている。次回認証用クライアント側ワンタイム認証子は、前回の認証時に生成され、認証子テーブル72に書き込まれたものである。この次回認証用クライアント側ワンタイム認証子は、端末装置1から送信されてくるワンタイム認証子の正当性判定に使用される。つまり、端末装置1から送信されてきたワンタイム認証子が、認証子テーブル72に保持されているワンタイム認証子と一致すると、そのワンタイム認証子は正当なものであると判定される。   In the server device 4, the same seed as the seed 102 of the IC card 5 is held in the seed table 71, and the next authentication client-side one-time authenticator of phase 1 is held in the authenticator table 72. . The next authentication client-side one-time authenticator is generated at the previous authentication and written in the authenticator table 72. This next authentication client-side one-time authenticator is used to determine the validity of the one-time authenticator transmitted from the terminal device 1. That is, when the one-time authenticator transmitted from the terminal device 1 matches the one-time authenticator stored in the authenticator table 72, it is determined that the one-time authenticator is valid.

なお、フェーズ1のシードの初期値は、予めICカード5およびサーバ装置4にセットされ、フェーズ1の認証が成功するたびに、フェーズ1のシードの値は更新されていく。   The initial value of the seed of phase 1 is set in advance in the IC card 5 and the server device 4, and the value of the seed of phase 1 is updated each time the authentication of phase 1 is successful.

フェーズ1でのワンタイム認証が成功すると、サーバ装置4では、サーバ側認証処理部82は、次回認証用シードからクライアント側ワンタイム認証子を生成し、認証子テーブル72において、ICカード5についてのフェーズ1の次回認証用クライアント側ワンタイム認証子を更新する。一方、端末装置1の認証処理部43は、次回認証用シードに基づいて、ICカード5内のシード102を更新する(ステップS5)。   When the one-time authentication in the phase 1 is successful, in the server device 4, the server-side authentication processing unit 82 generates a client-side one-time authenticator from the next authentication seed, and in the authenticator table 72, for the IC card 5. Update the client side one-time authenticator for the next authentication in phase 1. On the other hand, the authentication processing unit 43 of the terminal device 1 updates the seed 102 in the IC card 5 based on the next authentication seed (step S5).

この時点で、ICカード5をリーダライタ2から離脱させることが可能となる。このため、認証処理部43は、オーディオ出力やビデオ出力を使用して、ICカード5をリーダライタ2から離脱させることが可能となったことを、ユーザに報知するようにしてもよい。   At this point, the IC card 5 can be detached from the reader / writer 2. For this reason, the authentication processing unit 43 may notify the user that the IC card 5 can be detached from the reader / writer 2 using the audio output or the video output.

そして、認証処理部43は、フェーズフラグPに、フェーズ2を示す値(ここでは2)をセットする(ステップS6)。   And the authentication process part 43 sets the value (here 2) which shows the phase 2 to the phase flag P (step S6).

次に、認証が必要なタイミングでフェーズ2における初回の認証が実行される(ステップS7a)。   Next, the first authentication in phase 2 is executed at a timing when authentication is required (step S7a).

フェーズ2における初回の認証では、フェーズ1での認証で更新されたシード(つまり、フェーズ1の次回認証用シード)からフェーズ2用のシードの初期値が導出される。この実施の形態1では、フェーズ1での認証で更新されたシードの値が、フェーズ2用のシードの初期値とされる。   In the first authentication in phase 2, the initial value of the seed for phase 2 is derived from the seed updated in the authentication in phase 1 (that is, the seed for next authentication in phase 1). In the first embodiment, the seed value updated by the authentication in phase 1 is set as the initial value of the seed for phase 2.

その後、端末装置1の認証処理部43とサーバ装置4のサーバ側認証処理部82との間で、フェーズ2でのワンタイム認証が実行される。   Thereafter, one-time authentication in the phase 2 is executed between the authentication processing unit 43 of the terminal device 1 and the server side authentication processing unit 82 of the server device 4.

フェーズ2の初回のワンタイム認証(ステップS7a)では、認証処理部43は、その初期値を有するシードからワンタイム認証子を生成し、また、フェーズ2の次回認証用シードを生成して暗号化し、ワンタイム認証子と暗号化された次回認証用シードをサーバ装置4へ送信する。   In the first one-time authentication in phase 2 (step S7a), the authentication processing unit 43 generates a one-time authenticator from the seed having the initial value, and also generates and encrypts a next authentication seed in phase 2. The one-time authenticator and the encrypted seed for next authentication are transmitted to the server device 4.

一方、サーバ側認証処理部82は、フェーズ1の次回認証用シードからフェーズ2のシードの初期値を計算し、その初期値からICカード5についてのフェーズ2の初回のワンタイム認証子を計算する。そして、フェーズ2の初回のワンタイム認証(ステップS7a)において、サーバ側認証処理部82は、端末装置1からワンタイム認証子および暗号化された次回認証用シードを受信すると、受信したワンタイム認証子が正当なものであるか否かを、計算したワンタイム認証子に基づいて判定する。サーバ側認証処理部82は、そのワンタイム認証子が正当なものであれば、次回認証用シードを復号し保持する。   On the other hand, the server side authentication processing unit 82 calculates the initial value of the seed of phase 2 from the seed for next authentication of phase 1 and calculates the initial one-time authenticator of phase 2 for the IC card 5 from the initial value. . In the first one-time authentication (step S7a) in phase 2, when the server-side authentication processing unit 82 receives the one-time authenticator and the encrypted next-time authentication seed from the terminal device 1, the received one-time authentication is performed. Whether or not the child is valid is determined based on the calculated one-time authenticator. If the one-time authenticator is valid, the server-side authentication processing unit 82 decrypts and holds the next authentication seed.

フェーズ2の初回のワンタイム認証に成功すると、フェーズ2の2回目以降のワンタイム認証(ステップS7)において、端末装置1の認証処理部43は、シードを生成し、同様にシードから生成したワンタイム認証子と、暗号化された次回認証用シードとをサーバ装置4へ送信する。   When the first one-time authentication in Phase 2 is successful, in the second-time one-time authentication (Step S7) in Phase 2, the authentication processing unit 43 of the terminal device 1 generates a seed and similarly generates the one generated from the seed. The time authenticator and the encrypted next authentication seed are transmitted to the server device 4.

一方、フェーズ2の2回目以降のワンタイム認証(ステップS7)において、サーバ側認証処理部82は、前回の認証時に送信されてきた次回認証用シードからワンタイム認証子を計算し、その後、端末装置1からワンタイム認証子および暗号化された次回認証用シードを受信すると、受信したワンタイム認証子が正当なものであるか否かを、計算したワンタイム認証子に基づいて判定する。サーバ側認証処理部82は、そのワンタイム認証子が正当なものであれば、次回認証用シードを復号し保持する(つまり、フェーズ2の次回認証用シードを更新する)。   On the other hand, in the second-time and subsequent one-time authentications in Step 2 (step S7), the server-side authentication processing unit 82 calculates a one-time authenticator from the next authentication seed transmitted at the previous authentication, and then the terminal When the one-time authenticator and the encrypted next-time authentication seed are received from the device 1, it is determined based on the calculated one-time authenticator whether or not the received one-time authenticator is valid. If the one-time authenticator is valid, the server-side authentication processing unit 82 decrypts and holds the next authentication seed (that is, updates the next authentication seed in phase 2).

以後、セッション終了(ステップS8)まで、認証が必要なタイミングでフェーズ2における認証が実行される(ステップS7)。   Thereafter, until the end of the session (step S8), authentication in phase 2 is executed at a timing that requires authentication (step S7).

ここで、フェーズ1でのワンタイム認証(ステップS4)の詳細について説明する。図8は、図7におけるフェーズ1でのワンタイム認証(ステップS4)の詳細について説明するシーケンス図である。なお、以下において、フェーズ1の説明中のnとフェーズ2の説明中のnとは無関係である。   Here, details of the one-time authentication (step S4) in phase 1 will be described. FIG. 8 is a sequence diagram illustrating details of the one-time authentication (step S4) in phase 1 in FIG. In the following, n in the description of Phase 1 and n in the description of Phase 2 are irrelevant.

ICカード5には、シード102の他に、フェーズ1用の共通暗号鍵も保持されている。また、サーバ装置4にも、シードの他に、同一の共通暗号鍵がフェーズ1用の共通暗号鍵として保持されている。つまり、フェーズ1の共通暗号鍵の初期値は、予めICカード5およびサーバ装置4にセットされている。そして、後述のように、フェーズ1の認証が成功するたびに、フェーズ1の共通暗号鍵の値は更新されていく。   In addition to the seed 102, the IC card 5 also holds a common encryption key for phase 1. The server device 4 also holds the same common encryption key as a common encryption key for phase 1 in addition to the seed. That is, the initial value of the common encryption key in phase 1 is set in advance in the IC card 5 and the server device 4. As will be described later, the value of the common encryption key in phase 1 is updated each time authentication in phase 1 succeeds.

端末装置1では、認証処理部43が、ICカード5から、シードR1(n−1)、シードQ1(n−1)、共通暗号鍵K1(n−1)を読み込み、RAM13上に保持する(ステップS2)。   In the terminal device 1, the authentication processing unit 43 reads the seed R1 (n-1), the seed Q1 (n-1), and the common encryption key K1 (n-1) from the IC card 5 and holds them on the RAM 13 ( Step S2).

シードR1(n−1)は、今回(n−1)のワンタイム認証についてのフェーズ1クライアント側シードである。シードQ1(n−1)は、今回(n−1)のワンタイム認証についてのフェーズ1サーバ側シードである。共通暗号鍵K1(n−1)は、今回(n−1)のワンタイム認証時に、次回認証用のフェーズ1クライアント側シードR1(n)をサーバ装置4へ送信する際に、そのR1(n)を暗号化するためのフェーズ1共通暗号鍵である。   The seed R1 (n-1) is a phase 1 client-side seed for the current (n-1) one-time authentication. The seed Q1 (n-1) is a phase 1 server-side seed for the current (n-1) one-time authentication. The common encryption key K1 (n-1) is obtained when the next authentication phase 1 client-side seed R1 (n) is transmitted to the server device 4 at the time of this time (n-1) one-time authentication. ) Is a phase 1 common encryption key for encrypting.

そして、まず、認証処理部43は、乱数Rを生成し、その乱数Rを、次回認証用のフェーズ1クライアント側シードR1(n)にセットする(ステップS21)。   First, the authentication processing unit 43 generates a random number R, and sets the random number R to the phase 1 client-side seed R1 (n) for next authentication (step S21).

そして、認証処理部43は、今回のワンタイム認証についての、フェーズ1クライアント側ワンタイム認証子C1(n−1)を生成する(ステップS22)。   And the authentication process part 43 produces | generates the phase 1 client side one-time authenticator C1 (n-1) about this one-time authentication (step S22).

ワンタイム認証子C1(n−1)は、一方向性関数で計算される。この一方向性関数は、2つの引数をとり、引数の順序によって関数値の異なる関数である。この実施の形態では、この一方向性関数は、ハッシュ関数hcである。   The one-time authenticator C1 (n-1) is calculated with a one-way function. This one-way function is a function that takes two arguments and has different function values depending on the order of the arguments. In this embodiment, the one-way function is a hash function hc.

ワンタイム認証子C1(n−1)は、次式に従って計算される。   The one-time authenticator C1 (n-1) is calculated according to the following equation.

C1(n−1)=hc(R1(n−1),Q1(n−1))   C1 (n-1) = hc (R1 (n-1), Q1 (n-1))

ここで、ハッシュ関数hcの第1引数には、R1(n−1)が使用され、第2引数には、Q1(n−1)が使用される。   Here, R1 (n-1) is used as the first argument of the hash function hc, and Q1 (n-1) is used as the second argument.

また、認証処理部43は、所定の暗号化方式に従って、共通暗号鍵K1(n−1)で、R1(n)を暗号化する。なお、共通暗号鍵K1(n−1)での暗号化後のR1(n)を、K1(n−1)*R1(n)と表現する。   Further, the authentication processing unit 43 encrypts R1 (n) with the common encryption key K1 (n−1) according to a predetermined encryption method. Note that R1 (n) after encryption with the common encryption key K1 (n-1) is expressed as K1 (n-1) * R1 (n).

そして、認証処理部43は、通信処理部42を使用して、ワンタイム認証子C1(n−1)およびK1(n−1)*R1(n)をサーバ装置4へ送信する(ステップS23)。このとき、通信処理部42は、ワンタイム認証子C1(n−1)およびK1(n−1)*R1(n)を1つのメッセージとして送信する。   And the authentication process part 43 transmits the one time authenticator C1 (n-1) and K1 (n-1) * R1 (n) to the server apparatus 4 using the communication process part 42 (step S23). . At this time, the communication processing unit 42 transmits the one-time authenticators C1 (n−1) and K1 (n−1) * R1 (n) as one message.

サーバ装置4では、サーバ側認証処理部82は、通信処理部81を使用して、そのメッセージを受信し、そのメッセージからワンタイム認証子C1(n−1)およびK1(n−1)*R1(n)を抽出し、受信したワンタイム認証子C1(n−1)が、保持しているフェーズ1用のクライアント側ワンタイム認証子に一致するか否かを判定する(ステップS24)。   In the server device 4, the server-side authentication processing unit 82 uses the communication processing unit 81 to receive the message, and from the message, the one-time authenticators C1 (n−1) and K1 (n−1) * R1 (N) is extracted, and it is determined whether or not the received one-time authenticator C1 (n-1) matches the held client-side one-time authenticator for phase 1 (step S24).

なお、端末装置1からサーバ装置4へのメッセージのデータフォーマット(ワンタイム認証子のサイズと位置、および暗号化されたシードのサイズと位置)は、フェーズ1とフェーズ2で同一である。   Note that the data format of the message from the terminal device 1 to the server device 4 (the size and position of the one-time authenticator and the size and position of the encrypted seed) are the same in phase 1 and phase 2.

また、フェーズ1クライアント側ワンタイム認証子とフェーズ2クライアント側ワンタイム認証子は同一のデータフォーマット(つまり、同一データ長)を有し、暗号化後のフェーズ1クライアント側シードと、暗号化後のフェーズ2クライアント側シードとは同一のデータフォーマット(つまり、同一データ長)を有するため、受信データのみからでは、フェーズ1のワンタイム認証子かフェーズ2のワンタイム認証子かの区別がつかない。このため、サーバ側認証処理部82は、受信したワンタイム認証子が、フェーズ1テーブル72aに保持されているワンタイム認証子に一致するか否か、および受信したワンタイム認証子が、フェーズ2テーブル72bに保持されているワンタイム認証子に一致するか否かを判定し、受信したワンタイム認証子が、フェーズ1の正当なワンタイム認証子、フェーズ2の正当なワンタイム認証子、および不正なワンタイム認証子のいずれかであるかを判定する。   In addition, the phase 1 client-side one-time authenticator and the phase 2 client-side one-time authenticator have the same data format (that is, the same data length), and the encrypted phase 1 client-side seed and the encrypted Since the phase 2 client-side seed has the same data format (that is, the same data length), it cannot be distinguished from the received data alone whether it is a phase 1 one-time authenticator or a phase 2 one-time authenticator. Therefore, the server-side authentication processing unit 82 determines whether or not the received one-time authenticator matches the one-time authenticator stored in the phase 1 table 72a, and whether the received one-time authenticator is the phase 2 It is determined whether or not the one-time authenticator stored in the table 72b matches, and the received one-time authenticator is a valid one-time authenticator of phase 1, a valid one-time authenticator of phase 2, and Determine whether it is an invalid one-time authenticator.

したがって、受信したワンタイム認証子C1(n−1)が、不正なワンタイム認証子であると判定した場合、サーバ側認証処理部82は、認証失敗と判定し、処理を終了する。   Therefore, 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 ends the process.

受信したワンタイム認証子C1(n−1)が、フェーズ1テーブル72aに保持しているフェーズ1用のクライアント側ワンタイム認証子に一致した場合、サーバ側認証処理部82は、認証成功と判定し、まず、乱数Qを生成し、その乱数Qを、次回認証用フェーズ1サーバ側シードQ1(n)にセットする(ステップS25)。   When the received one-time authenticator C1 (n-1) matches the client-side one-time authenticator for phase 1 held in the phase 1 table 72a, the server-side authentication processing unit 82 determines that the authentication is successful. First, a random number Q is generated, and the random number Q is set in the next authentication phase 1 server-side seed Q1 (n) (step S25).

また、サーバ側認証処理部82は、K1(n−1)*R1(n)を、シードテーブル71に保持している共通暗号鍵K1(n−1)で、R1(n)へ復号する。そして、サーバ側認証処理部82は、今回(n−1)のワンタイム認証用のフェーズ1サーバ側ワンタイム認証子S1(n−1)を生成する(ステップS26)。   The server-side authentication processing unit 82 decrypts K1 (n−1) * R1 (n) into R1 (n) using the common encryption key K1 (n−1) held in the seed table 71. Then, the server-side authentication processing unit 82 generates the current (n-1) one-time authentication phase 1 server-side one-time authenticator S1 (n-1) (step S26).

ワンタイム認証子S1(n−1)は、一方向性関数で計算される。この一方向性関数は、2つの引数をとり、引数の順序によって関数値の異なる関数である。この実施の形態では、この一方向性関数は、ハッシュ関数hsである。   The one-time authenticator S1 (n-1) is calculated with a one-way function. This one-way function is a function that takes two arguments and has different function values depending on the order of the arguments. In this embodiment, the one-way function is a hash function hs.

ワンタイム認証子S1(n−1)は、次式に従って計算される。   The one-time authenticator S1 (n-1) is calculated according to the following equation.

S1(n−1)=hs(R1(n),Q1(n−1))   S1 (n-1) = hs (R1 (n), Q1 (n-1))

ここで、ハッシュ関数hsの第1引数には、R1(n)が使用され、第2引数には、Q1(n−1)が使用される。なお、ハッシュ関数hsは、ハッシュ関数hcと同一の関数でもよいし、異なる関数でもよい。   Here, R1 (n) is used for the first argument of the hash function hs, and Q1 (n-1) is used for the second argument. The hash function hs may be the same function as the hash function hc or a different function.

また、サーバ側認証処理部82は、所定の暗号化方式に従って、共通暗号鍵K1(n−1)で、Q1(n)を暗号化する。なお、共通暗号鍵K1(n−1)での暗号化後のQ1(n)を、K1(n−1)*Q1(n)と表現する。   The server-side authentication processing unit 82 encrypts Q1 (n) with the common encryption key K1 (n-1) according to a predetermined encryption method. Note that Q1 (n) after encryption with the common encryption key K1 (n-1) is expressed as K1 (n-1) * Q1 (n).

そして、サーバ側認証処理部82は、通信処理部81を使用して、ワンタイム認証子S1(n−1)およびK1(n−1)*Q1(n)を端末装置1へ送信する(ステップS27)。このとき、通信処理部81は、ワンタイム認証子S1(n−1)およびK1(n−1)*Q1(n)を1つのメッセージとして送信する。   And the server side authentication process part 82 transmits the one time authenticator S1 (n-1) and K1 (n-1) * Q1 (n) to the terminal device 1 using the communication process part 81 (step) S27). At this time, the communication processing unit 81 transmits the one-time authenticator S1 (n-1) and K1 (n-1) * Q1 (n) as one message.

なお、サーバ装置4から端末装置1へのメッセージのデータフォーマット(ワンタイム認証子のサイズと位置、および暗号化されたシードのサイズと位置)は、フェーズ1とフェーズ2とで同一である。   Note that the data format of the message from the server device 4 to the terminal device 1 (the size and position of the one-time authenticator and the size and position of the encrypted seed) are the same in Phase 1 and Phase 2.

また、フェーズ1サーバ側ワンタイム認証子とフェーズ2サーバ側ワンタイム認証子は、同一のデータフォーマット(つまり、同一データ長)を有し、暗号化後のフェーズ1サーバ側シードと暗号化後のフェーズ2サーバ側シードは、同一のデータフォー待つ(つまり、同一データ長)を有するため、受信データのみからでは、フェーズ1のワンタイム認証子か、フェーズ2のワンタイム認証子がの区別がつかない。このため、端末装置1の認証処理部43は、フェーズフラグPの値でフェーズを特定し、受信したワンタイム認証子を、特定したフェーズのワンタイム認証子として取り扱う。   Also, the phase 1 server-side one-time authenticator and the phase 2 server-side one-time authenticator have the same data format (that is, the same data length), and the encrypted phase 1 server-side seed and the encrypted one-time authenticator Since the phase 2 server-side seeds have the same data for wait (that is, the same data length), it is possible to distinguish the phase 1 one-time authenticator or the phase 2 one-time authenticator from the received data alone. Absent. For this reason, the authentication processing unit 43 of the terminal device 1 identifies the phase by the value of the phase flag P, and handles the received one-time authenticator as the identified one-time authenticator.

端末装置1では、認証処理部43は、通信処理部42を使用して、そのメッセージを受信し、ワンタイム認証子S1(n−1)およびK1(n−1)*Q1(n)を抽出する。そして、認証処理部43は、フェーズフラグPの値に基づいて、受信したワンタイム認証子がフェーズ1のワンタイム認証子であることを特定する(ステップS28)。   In the terminal device 1, the authentication processing unit 43 uses the communication processing unit 42 to receive the message and extract the one-time authenticators S1 (n-1) and K1 (n-1) * Q1 (n). To do. Then, the authentication processing unit 43 specifies that the received one-time authenticator is a phase 1 one-time authenticator based on the value of the phase flag P (step S28).

そして、認証処理部43は、R1(n)およびQ1(n−1)に基づいて、上述の式に従って正当なワンタイム認証子S1(n−1)の値を計算し、受信したワンタイム認証子S1(n−1)が、計算した値に一致するか否かを判定する(ステップS29)。   And the authentication process part 43 calculates the value of the valid one-time authenticator S1 (n-1) according to the above-mentioned formula based on R1 (n) and Q1 (n-1), and received one-time authentication It is determined whether or not the child S1 (n-1) matches the calculated value (step S29).

このとき、受信したワンタイム認証子S1(n−1)が、計算した値に一致しない場合、認証処理部43は、認証失敗と判定し、処理を終了する。この場合、ICカード5用のシード102と共通暗号鍵は更新されず、次回のセッションで使用される。   At this time, if the received one-time authenticator S1 (n−1) does not match the calculated value, the authentication processing unit 43 determines that the authentication has failed and ends the process. In this case, the seed 102 and the common encryption key for the IC card 5 are not updated and are used in the next session.

受信したワンタイム認証子S1(n−1)が、計算した値に一致した場合、認証処理部43は、認証成功と判定し、まず、K1(n−1)*Q1(n)を、保持している共通暗号鍵K1(n−1)で、Q1(n)へ復号し、この値を、次回認証用フェーズ1サーバ側シードにセットする。   When the received one-time authenticator S1 (n−1) matches the calculated value, the authentication processing unit 43 determines that the authentication is successful, and first holds K1 (n−1) * Q1 (n). The common encryption key K1 (n-1) is decrypted to Q1 (n), and this value is set as the seed for the next authentication phase 1 server.

そして、認証処理部43は、次回認証用フェーズ1共通暗号鍵K1(n)を次式に従って計算し、フェーズ1共通暗号鍵を更新する(ステップS30)。   Then, the authentication processing unit 43 calculates the next authentication phase 1 common encryption key K1 (n) according to the following equation, and updates the phase 1 common encryption key (step S30).

K1(n)=hk(K1(n−1),R1(n),Q1(n))   K1 (n) = hk (K1 (n-1), R1 (n), Q1 (n))

ここで、hkは、一方向性関数であって、かつハッシュ関数である。   Here, hk is a one-way function and a hash function.

このようにして、フェーズ1のワンタイム認証に成功した後、認証処理部43は、ICカード5内のシード102および共通暗号鍵を、R1(n)およびQ1(n)、並びにK1(n)で更新する(ステップS5)。   Thus, after successful one-time authentication in phase 1, the authentication processing unit 43 uses the seed 102 and the common encryption key in the IC card 5 as R1 (n) and Q1 (n), and K1 (n). (Step S5).

一方、サーバ装置4においても、ワンタイム認証子S1(n−1)の送信後、サーバ側認証処理部82は、次回認証用フェーズ1共通暗号鍵K1(n)を上述の式に従って計算し、フェーズ1共通暗号鍵を更新する(ステップS31)。   On the other hand, also in the server device 4, after transmitting the one-time authenticator S1 (n-1), the server-side authentication processing unit 82 calculates the next authentication phase 1 common encryption key K1 (n) according to the above formula, The phase 1 common encryption key is updated (step S31).

そして、サーバ側認証処理部82は、フェーズ1のシードR1(n),Q1(n)の値を、初期値として、フェーズ2のクライアント側シードR2(0)およびサーバ側シードQ2(0)にセットし(ステップS32)、フェーズ1の共通暗号鍵K1(n)の値を、初期値として、フェーズ2の共通暗号鍵K2(0)にセットする(ステップS33)。また、このとき、サーバ側認証処理部82は、R2(0)およびQ2(0)から後述の式に従って、フェーズ2の初回のクライアント側ワンタイム認証子C2(0)を計算し、フェーズ2テーブル72bに書き込んで保持する。   Then, the server side authentication processing unit 82 sets the values of the seeds R1 (n) and Q1 (n) of the phase 1 as initial values to the client side seed R2 (0) and the server side seed Q2 (0) of the phase 2. It is set (step S32), and the value of the common encryption key K1 (n) of phase 1 is set as the initial value to the common encryption key K2 (0) of phase 2 (step S33). At this time, the server-side authentication processing unit 82 calculates the initial client-side one-time authenticator C2 (0) of phase 2 from R2 (0) and Q2 (0) according to the formula described later, and the phase 2 table Write to 72b and hold.

さらに、サーバ側認証処理部82は、フェーズ1の次回のワンタイム認証時に使用するクライアント側ワンタイム認証子C1(n)を、R1(n)およびQ1(n)から、上述の式に従って計算する。そして、サーバ側認証処理部82は、R1(n)、Q1(n)およびK1(n)で、シードテーブル71における、ICカード5についてのフェーズ1のデータを更新し、C1(n)で、フェーズ1テーブル72aにおける、ICカード5についてのワンタイム認証子を更新する。これにより、これらの値が、次回のセッション(つまり、次回のフェーズ1認証)まで保持される。   Further, the server-side authentication processing unit 82 calculates a client-side one-time authenticator C1 (n) to be used at the next one-time authentication in Phase 1 from R1 (n) and Q1 (n) according to the above formula. . And the server side authentication process part 82 updates the data of the phase 1 about IC card 5 in the seed table 71 with R1 (n), Q1 (n), and K1 (n), and C1 (n), The one-time authenticator for the IC card 5 in the phase 1 table 72a is updated. As a result, these values are held until the next session (that is, the next phase 1 authentication).

このようにして、フェーズ1でのワンタイム認証が実行される。   In this way, the one-time authentication in the phase 1 is executed.

次に、ここで、フェーズ2でのワンタイム認証(ステップS7a)の詳細について説明する。図9は、図7におけるフェーズ2での初回のワンタイム認証(ステップS7a)の詳細について説明するシーケンス図である。図10は、図7におけるフェーズ2での2回目以降のワンタイム認証(ステップS7)の詳細について説明するシーケンス図である。   Next, details of one-time authentication (step S7a) in phase 2 will be described. FIG. 9 is a sequence diagram illustrating details of the first one-time authentication (step S7a) in phase 2 in FIG. FIG. 10 is a sequence diagram illustrating details of the second and subsequent one-time authentications (step S7) in phase 2 in FIG.

フェーズ2でのワンタイム認証では、初回のみ、シードおよび共通暗号鍵の初期値がフェーズ1でのシードおよび共通暗号鍵から導出される(図9におけるステップS41,S42)。   In the one-time authentication in phase 2, only for the first time, the initial values of the seed and the common encryption key are derived from the seed and the common encryption key in phase 1 (steps S41 and S42 in FIG. 9).

初回のみ、端末装置1の認証処理部43は、まず、フェーズ1のシードR1(n),Q1(n)の値を、初期値として、フェーズ2のクライアント側シードR2(0)およびサーバ側シードQ2(0)にセットし(ステップS41)、フェーズ1の共通暗号鍵K1(n)の値を、初期値として、フェーズ2の共通暗号鍵K2(0)にセットする(ステップS42)。なお、フェーズ2のクライアント側シードR1、サーバ側シードQ2、および共通暗号鍵K2は、RAM13に保持され、ICカード5や記憶装置15には保持されない。この時点で、認証処理部43は、フェーズ1のシードR1(n),Q1(n)および共通暗号鍵K1(n)をRAM13から消去する。以後、フェーズ2のシードR2(0),Q2(0)および共通暗号鍵K2(0)が更新されると、次回使用されるフェーズ1のシードおよび共通暗号鍵の値は、端末装置1から完全に消える。   Only for the first time, the authentication processing unit 43 of the terminal device 1 first uses the values of the seeds R1 (n) and Q1 (n) of the phase 1 as initial values, and the client-side seed R2 (0) and server-side seed of the phase 2 Q2 (0) is set (step S41), and the value of the phase 1 common encryption key K1 (n) is set to the phase 2 common encryption key K2 (0) as an initial value (step S42). Note that the client-side seed R1, the server-side seed Q2, and the common encryption key K2 in phase 2 are held in the RAM 13 and are not held in the IC card 5 or the storage device 15. At this point, the authentication processing unit 43 deletes the seeds R1 (n) and Q1 (n) and the common encryption key K1 (n) of the phase 1 from the RAM 13. Thereafter, when the seeds R2 (0) and Q2 (0) of the phase 2 and the common encryption key K2 (0) are updated, the values of the seed and the common encryption key of the phase 1 to be used next are completely transmitted from the terminal device 1. Disappears.

そして、認証処理部43は、乱数Rを生成し、次回認証用フェーズ2クライアント側シードR2(n)(初回の場合、n=1)にセットする(ステップS43)。   Then, the authentication processing unit 43 generates a random number R and sets it to the next authentication phase 2 client-side seed R2 (n) (in the first case, n = 1) (step S43).

次に、認証処理部43は、今回のワンタイム認証についての、フェーズ2クライアント側ワンタイム認証子C2(n−1)を生成する(ステップS44)。   Next, the authentication processing unit 43 generates a phase 2 client-side one-time authenticator C2 (n-1) for the current one-time authentication (step S44).

ワンタイム認証子C2(n−1)は、一方向性関数で計算される。この一方向性関数は、2つの引数をとり、引数の順序によって関数値の異なる関数である。この実施の形態では、この一方向性関数は、上述のハッシュ関数hcである。   The one-time authenticator C2 (n-1) is calculated with a one-way function. This one-way function is a function that takes two arguments and has different function values depending on the order of the arguments. In this embodiment, this one-way function is the hash function hc described above.

ワンタイム認証子C2(n−1)は、次式に従って計算される。   The one-time authenticator C2 (n-1) is calculated according to the following equation.

C2(n−1)=hc(Q2(n−1),R2(n−1))   C2 (n-1) = hc (Q2 (n-1), R2 (n-1))

ここで、ハッシュ関数hcの第1引数には、Q2(n−1)が使用され、第2引数には、R2(n−1)が使用される。   Here, Q2 (n−1) is used as the first argument of the hash function hc, and R2 (n−1) is used as the second argument.

また、認証処理部43は、所定の暗号化方式に従って、共通暗号鍵K2(n−1)で、R2(n)を暗号化する。なお、共通暗号鍵K2(n−1)での暗号化後のR2(n)を、K2(n−1)*R2(n)と表現する。   Further, the authentication processing unit 43 encrypts R2 (n) with the common encryption key K2 (n-1) according to a predetermined encryption method. Note that R2 (n) after encryption with the common encryption key K2 (n-1) is expressed as K2 (n-1) * R2 (n).

そして、認証処理部43は、通信処理部42を使用して、ワンタイム認証子C2(n−1)およびK2(n−1)*R2(n)をサーバ装置4へ送信する(ステップS45)。このとき、通信処理部42は、ワンタイム認証子C2(n−1)およびK2(n−1)*R2(n)を1つのメッセージとして送信する。   And the authentication process part 43 transmits the one time authenticator C2 (n-1) and K2 (n-1) * R2 (n) to the server apparatus 4 using the communication process part 42 (step S45). . At this time, the communication processing unit 42 transmits the one-time authenticators C2 (n−1) and K2 (n−1) * R2 (n) as one message.

サーバ装置4では、サーバ側認証処理部82は、通信処理部81を使用して、そのメッセージを受信し、ワンタイム認証子C2(n−1)およびK2(n−1)*R2(n)を抽出し、受信したワンタイム認証子C2(n−1)が、フェーズ2テーブル72bに保持しているフェーズ2用のクライアント側ワンタイム認証子に一致するか否かを判定する(ステップS46)。   In the server device 4, the server side authentication processing unit 82 uses the communication processing unit 81 to receive the message, and the one-time authenticators C2 (n-1) and K2 (n-1) * R2 (n) And determines whether the received one-time authenticator C2 (n-1) matches the client-side one-time authenticator for phase 2 held in the phase 2 table 72b (step S46). .

このとき、受信したワンタイム認証子C2(n−1)が、保持しているフェーズ2用のクライアント側ワンタイム認証子に一致しない場合、サーバ側認証処理部82は、上述のように、受信したワンタイム認証子C2(n−1)がフェーズ1のワンタイム認証子でもなければ、認証失敗と判定し、処理を終了する。   At this time, if the received one-time authenticator C2 (n-1) does not match the held client-side one-time authenticator for Phase 2, the server-side authentication processing unit 82 receives the reception as described above. If the one-time authenticator C2 (n-1) is not a phase 1 one-time authenticator, it is determined that the authentication has failed, and the process ends.

受信したワンタイム認証子C2(n−1)が、保持しているフェーズ2用のクライアント側ワンタイム認証子に一致した場合、サーバ側認証処理部82は、認証成功と判定し、まず、乱数Qを生成し、その乱数Qを、次回認証用フェーズ2サーバ側シードQ2(n)にセットする(ステップS47)。   When the received one-time authenticator C2 (n-1) matches the held client-side one-time authenticator for phase 2, the server-side authentication processing unit 82 determines that the authentication is successful, Q is generated, and the random number Q is set in the next authentication phase 2 server-side seed Q2 (n) (step S47).

また、サーバ側認証処理部82は、K2(n−1)*R2(n)を、保持している共通暗号鍵K2(n−1)で、R2(n)へ復号する。そして、サーバ側認証処理部82は、今回(n−1)のワンタイム認証用のフェーズ2サーバ側ワンタイム認証子S2(n−1)を生成する(ステップS48)。   The server-side authentication processing unit 82 decrypts K2 (n−1) * R2 (n) into R2 (n) using the common encryption key K2 (n−1) that is held. Then, the server-side authentication processing unit 82 generates the current (n-1) one-time authentication phase 2 server-side one-time authenticator S2 (n-1) (step S48).

ワンタイム認証子S2(n−1)は、一方向性関数で計算される。この一方向性関数は、2つの引数をとり、引数の順序によって関数値の異なる関数である。この実施の形態では、この一方向性関数は、上述のハッシュ関数hsである。   The one-time authenticator S2 (n-1) is calculated with a one-way function. This one-way function is a function that takes two arguments and has different function values depending on the order of the arguments. In this embodiment, this one-way function is the hash function hs described above.

ワンタイム認証子S2(n−1)は、次式に従って計算される。   One-time authenticator S2 (n-1) is calculated according to the following equation.

S2(n−1)=hs(Q2(n−1),R2(n))   S2 (n-1) = hs (Q2 (n-1), R2 (n))

ここで、ハッシュ関数hsの第1引数には、Q2(n−1)が使用され、第2引数には、R2(n)が使用される。   Here, Q2 (n−1) is used as the first argument of the hash function hs, and R2 (n) is used as the second argument.

また、サーバ側認証処理部82は、所定の暗号化方式に従って、共通暗号鍵K2(n−1)で、Q2(n)を暗号化する。なお、共通暗号鍵K2(n−1)での暗号化後のQ2(n)を、K2(n−1)*Q2(n)と表現する。   The server-side authentication processing unit 82 encrypts Q2 (n) with the common encryption key K2 (n−1) according to a predetermined encryption method. Note that Q2 (n) after encryption with the common encryption key K2 (n-1) is expressed as K2 (n-1) * Q2 (n).

そして、サーバ側認証処理部82は、通信処理部81を使用して、ワンタイム認証子S2(n−1)およびK2(n−1)*Q2(n)を端末装置1へ送信する(ステップS49)。このとき、通信処理部81は、ワンタイム認証子S2(n−1)およびK2(n−1)*Q2(n)を1つのメッセージとして送信する。   And the server side authentication process part 82 transmits the one time authenticator S2 (n-1) and K2 (n-1) * Q2 (n) to the terminal device 1 using the communication process part 81 (step) S49). At this time, the communication processing unit 81 transmits the one-time authenticator S2 (n-1) and K2 (n-1) * Q2 (n) as one message.

端末装置1では、認証処理部43は、通信処理部42を使用して、そのメッセージを受信し、ワンタイム認証子S2(n−1)およびK2(n−1)*Q2(n)を抽出する。そして、認証処理部43は、フェーズフラグPの値に基づいて、受信したワンタイム認証子がフェーズ2のワンタイム認証子であることを特定する(ステップS50)。   In the terminal device 1, the authentication processing unit 43 uses the communication processing unit 42 to receive the message and extract the one-time authenticators S2 (n-1) and K2 (n-1) * Q2 (n). To do. Then, the authentication processing unit 43 specifies that the received one-time authenticator is a one-time authenticator of phase 2 based on the value of the phase flag P (step S50).

認証処理部43は、R2(n)およびQ2(n−1)に基づいて、上述の式に従って正当なワンタイム認証子S2(n−1)の値を計算し、受信したワンタイム認証子S2(n−1)が、計算した値に一致するか否かを判定する(ステップS51)。   Based on R2 (n) and Q2 (n-1), the authentication processing unit 43 calculates the value of the valid one-time authenticator S2 (n-1) according to the above-described equation, and receives the received one-time authenticator S2. It is determined whether (n-1) matches the calculated value (step S51).

このとき、受信したワンタイム認証子S2(n−1)が、計算した値に一致しない場合、認証処理部43は、認証失敗と判定し、処理を終了する。   At this time, if the received one-time authenticator S2 (n-1) does not match the calculated value, the authentication processing unit 43 determines that the authentication has failed and ends the process.

受信したワンタイム認証子S2(n−1)が、計算した値に一致した場合、認証処理部43は、認証成功と判定し、まず、K2(n−1)*Q2(n)を、保持している共通暗号鍵K2(n−1)で、Q2(n)へ復号し、この値を、次回認証用フェーズ2サーバ側シードにセットする。   When the received one-time authenticator S2 (n-1) matches the calculated value, the authentication processing unit 43 determines that the authentication is successful, and first holds K2 (n-1) * Q2 (n). The common encryption key K2 (n-1) is decrypted to Q2 (n), and this value is set in the next authentication phase 2 server-side seed.

そして、認証処理部43は、次回認証用フェーズ2共通暗号鍵K2(n)を次式に従って計算し、フェーズ2共通暗号鍵を更新する(ステップS52)。   Then, the authentication processing unit 43 calculates the next authentication phase 2 common encryption key K2 (n) according to the following equation, and updates the phase 2 common encryption key (step S52).

K2(n)=hk(K2(n−1),R2(n),Q2(n))   K2 (n) = hk (K2 (n-1), R2 (n), Q2 (n))

ここで、hkは、一方向性関数であって、かつハッシュ関数である。   Here, hk is a one-way function and a hash function.

このようにして、フェーズ2のワンタイム認証に成功した後、認証処理部43は、RAM13上に、次のフェーズ2のワンタイム認証まで、R2(n)、Q2(n)、およびK2(n)を保持する。   In this way, after successful one-time authentication in phase 2, the authentication processing unit 43 stores R2 (n), Q2 (n), and K2 (n) on the RAM 13 until the next one-time authentication in phase 2. ).

一方、サーバ装置4においても、ワンタイム認証子S2(n−1)の送信後、サーバ側認証処理部82は、次回認証用フェーズ2共通暗号鍵K2(n)を上述の式に従って計算し、フェーズ2共通暗号鍵を更新する(ステップS53)。   On the other hand, also in the server device 4, after transmitting the one-time authenticator S2 (n-1), the server-side authentication processing unit 82 calculates the next authentication phase 2 common encryption key K2 (n) according to the above formula, The phase 2 common encryption key is updated (step S53).

さらに、サーバ側認証処理部82は、R2(n)およびQ2(n)から後述の式に従って、フェーズ2の次回認証用クライアント側ワンタイム認証子C2(n)を計算する。そして、サーバ側認証処理部82は、R2(n)、Q2(n)およびK2(n)で、シードテーブル71における、ICカード5についてのフェーズ2のデータを更新し、C2(n)で、フェーズ2テーブル72bにおける、ICカード5についてのワンタイム認証子を更新する。これにより、今回のシードR2(n−1),Q2(n−1)および共通暗号鍵K2(n−1)は消去され、次回のシードR2(n),Q2(n)および共通暗号鍵K2(n)が、次回のフェーズ2認証まで保持される。次回のフェーズ2のワンタイム認証では、上述の初期値の代わりに次回のシードR2(n),Q2(n)および共通暗号鍵K2(n)が使用される。   Further, the server-side authentication processing unit 82 calculates a next-time authentication client-side one-time authenticator C2 (n) in phase 2 from R2 (n) and Q2 (n) according to the formula described later. And the server side authentication process part 82 updates the data of the phase 2 about the IC card 5 in the seed table 71 with R2 (n), Q2 (n), and K2 (n), and C2 (n) The one-time authenticator for the IC card 5 in the phase 2 table 72b is updated. As a result, the current seeds R2 (n-1), Q2 (n-1) and the common encryption key K2 (n-1) are deleted, and the next seeds R2 (n), Q2 (n) and the common encryption key K2 are deleted. (N) is held until the next phase 2 authentication. In the next one-time authentication in phase 2, the next seeds R2 (n) and Q2 (n) and the common encryption key K2 (n) are used instead of the initial values described above.

このようにして、フェーズ2でのワンタイム認証が実行される。   In this way, the one-time authentication in the phase 2 is executed.

以上のように、上記実施の形態1によれば、フェーズ1での認証用のシードとフェーズ2での認証用のシードとを別々に設け、ICカード5に格納されているシード102を使用してフェーズ1での認証を実行し、ICカード5に格納されているシード102を更新し、その後は、フェーズ2での認証を繰り返し行っていく。このため、フェーズ1での認証が完了すれば、ユーザは、ICカード5を、端末装置1やリーダライタ2から離脱することができる。したがって、セッション開始後短時間で、シード102を保持するICカード5を離脱可能とし、ICカード5が離脱しても、その後、継続的にワンタイム認証を繰り返し行うことができる。   As described above, according to the first embodiment, the seed for authentication in phase 1 and the seed for authentication in phase 2 are separately provided and the seed 102 stored in the IC card 5 is used. Then, the authentication in phase 1 is executed, the seed 102 stored in the IC card 5 is updated, and thereafter the authentication in phase 2 is repeated. Therefore, when the authentication in phase 1 is completed, the user can remove the IC card 5 from the terminal device 1 or the reader / writer 2. Therefore, the IC card 5 holding the seed 102 can be removed in a short time after the session starts, and even if the IC card 5 is removed, the one-time authentication can be continuously repeated thereafter.

また、上記実施の形態1によれば、フェーズ1とフェーズ2において同一のハッシュ関数hcを使用し、ハッシュ関数hcの引数におけるクライアント側シードとサーバ側シードの順序を、フェーズ1とフェーズ2とで逆にしている。   Further, according to the first embodiment, the same hash function hc is used in phase 1 and phase 2, and the order of the client-side seed and server-side seed in the argument of the hash function hc is as follows. It is reversed.

これにより、フェーズ1クライアント側ワンタイム認証子およびフェーズ2クライアント側ワンタイム認証子に使用する関数値のデータフォーマットが同一になる。このため、盗聴してもフェーズ1のワンタイム認証子かフェーズ2のワンタイム認証子かがデータフォーマットから判別できない。また、引数の順序を変えているため、フェーズ1のワンタイム認証子とフェーズ2の初回のワンタイム認証子とが一致しない。したがって、耐タンパ性が向上する。   Thereby, the data formats of the function values used for the phase 1 client-side one-time authenticator and the phase 2 client-side one-time authenticator are the same. For this reason, even if it is wiretapped, it cannot be determined from the data format whether it is a phase 1 one-time authenticator or a phase 2 one-time authenticator. Further, since the order of the arguments is changed, the one-time authenticator of phase 1 and the first one-time authenticator of phase 2 do not match. Therefore, tamper resistance is improved.

また、上記実施の形態1によれば、フェーズ1とフェーズ2において同一のハッシュ関数hsを使用し、ハッシュ関数hsの引数におけるクライアント側シードとサーバ側シードの順序を、フェーズ1とフェーズ2とで逆にしている。   Further, according to the first embodiment, the same hash function hs is used in phase 1 and phase 2, and the order of the client-side seed and server-side seed in the argument of the hash function hs is as follows: It is reversed.

これにより、フェーズ1サーバ側ワンタイム認証子およびフェーズ2サーバ側ワンタイム認証子に使用する関数値のデータフォーマットが同一になる。このため、盗聴してもフェーズ1のワンタイム認証子かフェーズ2のワンタイム認証子かがデータフォーマットから判別できない。また、引数の順序を変えているため、フェーズ1のワンタイム認証子とフェーズ2の初回のワンタイム認証子とが一致しない。したがって、耐タンパ性が向上する。   As a result, the data formats of the function values used for the phase 1 server-side one-time authenticator and the phase 2 server-side one-time authenticator are the same. For this reason, even if it is wiretapped, it cannot be determined from the data format whether it is a phase 1 one-time authenticator or a phase 2 one-time authenticator. Further, since the order of the arguments is changed, the one-time authenticator of phase 1 and the first one-time authenticator of phase 2 do not match. Therefore, tamper resistance is improved.

また、上記実施の形態1によれば、フェーズ1で使用される共通暗号鍵とフェーズ2で使用される共通暗号鍵とを別々に設け、ICカード5に格納されているフェーズ1共通暗号鍵を使用して暗号化されたシードの送受を行い、フェーズ1での認証が成功すると、ICカード5に格納されているフェーズ1共通暗号鍵を更新し、また、フェーズ2での認証が成功するたびに、フェーズ2共通暗号鍵を更新していく。このため、フェーズ1とフェーズ2と別々に共通暗号鍵が更新されていき、耐タンパ性が向上する。   Further, according to the first embodiment, the common encryption key used in phase 1 and the common encryption key used in phase 2 are separately provided, and the phase 1 common encryption key stored in the IC card 5 is provided. When the encrypted seed is transmitted and received, and the authentication in phase 1 is successful, the phase 1 common encryption key stored in the IC card 5 is updated, and every time authentication in phase 2 is successful Then, the phase 2 common encryption key is updated. For this reason, the common encryption key is updated separately in phase 1 and phase 2, and tamper resistance is improved.

実施の形態2. Embodiment 2. FIG.

本発明の実施の形態2では、実施の形態1におけるサーバ装置4内のデータ構造およびそのデータ構造に沿ったデータ処理の一例について説明する。なお、システムの基本的な構成および動作は、実施の形態1と同様であるので、その説明は省略する。なお、この実施の形態2において、ワンタイム認証子はワンタイムIDである。   In the second embodiment of the present invention, an example of the data structure in the server apparatus 4 in the first embodiment and data processing along the data structure will be described. Since the basic configuration and operation of the system are the same as those in the first embodiment, description thereof is omitted. In the second embodiment, the one-time authenticator is a one-time ID.

まず、データ構造について説明する。   First, the data structure will be described.

実施の形態2では、サーバ装置4において、ICカード5と同様の、1または複数のICカードのそれぞれに対して固有の管理番号が割り当てられ、その管理番号に関連付けて、(a)次回認証用のフェーズ1クライアント側ワンタイム認証子C1(n)、(b)次回認証用のフェーズ2クライアント側ワンタイム認証子C2(n)、(c)フェーズ1についての現時点(n−1)でのシードR1(n−1),Q1(n−1)および共通暗号鍵K1(n−1)並びに次回認証用のシードR1(n),Q1(n)および共通暗号鍵K1(n)、並びに(d)フェーズ2についての現時点(n−1)でのシードR2(n−1),Q2(n−1)および共通暗号鍵K2(n−1)並びに次回認証用のシードR2(n),Q2(n)および共通暗号鍵K2(n)が保持される。   In the second embodiment, a unique management number is assigned to each of one or a plurality of IC cards, similar to the IC card 5, in the server device 4, and (a) for next authentication is associated with the management number. Phase 1 client-side one-time authenticator C1 (n), (b) Phase 2 client-side one-time authenticator C2 (n), (c) Seed at present (n-1) for phase 1 R1 (n-1), Q1 (n-1) and common encryption key K1 (n-1), seed R1 (n), Q1 (n) and common encryption key K1 (n) for next authentication, and (d ) Seed R2 (n-1), Q2 (n-1) and common encryption key K2 (n-1) at present (n-1) for phase 2 and seed R2 (n), Q2 ( n) and common encryption key 2 (n) is retained.

つまり、フェーズ1テーブル72aにおいて、管理番号に関連付けて、(a)次回認証用のフェーズ1クライアント側ワンタイム認証子C1(n)が保持される。また、フェーズ2テーブル72bにおいて、管理番号に関連付けて、(b)次回認証用のフェーズ2クライアント側ワンタイム認証子C2(n)が保持される。また、シードテーブル71において、管理番号に関連付けて、(c)フェーズ1についての現時点(n−1)でのシードR1(n−1),Q1(n−1)および共通暗号鍵K1(n−1)並びに次回認証用のシードR1(n),Q1(n)および共通暗号鍵K1(n)、並びに(d)フェーズ2についての現時点(n−1)でのシードR2(n−1),Q2(n−1)および共通暗号鍵K2(n−1)並びに次回認証用のシードR2(n),Q2(n)および共通暗号鍵K2(n)が保持される。   That is, in the phase 1 table 72a, (a) the phase 1 client-side one-time authenticator C1 (n) for the next authentication is held in association with the management number. In the phase 2 table 72b, (b) a phase 2 client-side one-time authenticator C2 (n) for next authentication is held in association with the management number. In the seed table 71, in association with the management number, (c) seeds R1 (n-1), Q1 (n-1) at the present time (n-1) and common encryption key K1 (n- 1) and seed R1 (n), Q1 (n) and common encryption key K1 (n) for next authentication, and (d) seed R2 (n-1) at the present time (n-1) for phase 2 Q2 (n-1) and common encryption key K2 (n-1), seeds R2 (n) and Q2 (n) for next authentication, and common encryption key K2 (n) are held.

図11は、実施の形態2におけるシードテーブル71の構造の一例を示す図である。図12は、実施の形態2における認証子テーブル72の一例を示す図である。図12(A)は、フェーズ1テーブル72aの一例を示し、図12(B)は、フェーズ2テーブル72bの一例を示す。   FIG. 11 is a diagram illustrating an example of the structure of the seed table 71 according to the second embodiment. FIG. 12 is a diagram illustrating an example of the authenticator table 72 in the second embodiment. FIG. 12A shows an example of the phase 1 table 72a, and FIG. 12B shows an example of the phase 2 table 72b.

図11におけるフェーズ1アドレスは、フェーズ1テーブル72a内で、当該フェーズ1アドレスに関連付けられている管理番号と同一の管理番号を有するレコードの位置を示すデータである。同様に、図11におけるフェーズ2アドレスは、フェーズ2テーブル72b内で、当該フェーズ2アドレスに関連付けられている管理番号と同一の管理番号を有するレコードの位置を示すデータである。   The phase 1 address in FIG. 11 is data indicating the position of a record having the same management number as the management number associated with the phase 1 address in the phase 1 table 72a. Similarly, the phase 2 address in FIG. 11 is data indicating the position of a record having the same management number as the management number associated with the phase 2 address in the phase 2 table 72b.

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

なお、シードテーブル71、フェーズ1テーブル72a、およびフェーズ2テーブル72bは、予め、所定のユーザ数(ICカード数)のレコードを有しており、レコード内の管理番号以外のフィールドには初期値がセットされる。   The seed table 71, the phase 1 table 72a, and the phase 2 table 72b have records of a predetermined number of users (number of IC cards) in advance, and initial values are set in fields other than the management number in the records. Set.

次に、データ処理について説明する。   Next, data processing will be described.

図13および図14は、実施の形態2におけるサーバ装置4によるデータ処理について説明するフローチャートである。   13 and 14 are flowcharts for explaining data processing by the server device 4 in the second embodiment.

サーバ装置4では、サーバ側認証処理部82は、端末装置1から、ワンタイム認証子C(フェーズ1またはフェーズ2のワンタイム認証子)を含むメッセージを受信すると、そのワンタイム認証子Cがフェーズ1テーブル72aに登録されているフェーズ1クライアント側ワンタイム認証子C1(n−1)のいずれかであるか否かを判定する(ステップS101)。   In the server device 4, when the server-side authentication processing unit 82 receives a message including the one-time authenticator C (phase 1 or phase 2 one-time authenticator) from the terminal device 1, the one-time authenticator C It is determined whether or not any of the phase 1 client side one-time authenticators C1 (n−1) registered in the 1 table 72a (step S101).

受信したワンタイム認証子Cがフェーズ1テーブル72aに登録されているフェーズ1クライアント側ワンタイム認証子C1(n−1)のいずれかである場合、サーバ側認証処理部82は、フェーズ1テーブル72aにおいて、受信したワンタイム認証子Cに関連付けられている管理番号を特定する(ステップS102)。この場合、フェーズ1のワンタイム認証が実行される。   When the received one-time authenticator C is one of the phase-one client-side one-time authenticators C1 (n−1) registered in the phase-one table 72a, the server-side authentication processing unit 82 uses the phase-one table 72a. The management number associated with the received one-time authenticator C is specified (step S102). In this case, phase 1 one-time authentication is performed.

サーバ側認証処理部82は、特定した管理番号に関連付けられているQ1(n−1)およびK1(n−1)をシードテーブル71から読み出す(ステップS103)。   The server-side authentication processing unit 82 reads Q1 (n-1) and K1 (n-1) associated with the specified management number from the seed table 71 (step S103).

そして、サーバ側認証処理部82は、受信したK1(n−1)*R1(n)からR1(n)を、読み出したK1(n−1)で復号し、そのR1(n)を、その管理番号に関連付けてシードテーブル71に書き込む(ステップS104)。   Then, the server-side authentication processing unit 82 decrypts the received K1 (n-1) * R1 (n) to R1 (n) with the read K1 (n-1), and the R1 (n) Write to the seed table 71 in association with the management number (step S104).

次に、サーバ側認証処理部82は、次回認証用サーバ側シードの生成を行う。まず、サーバ側認証処理部82は、乱数Qを生成し、この乱数Qを次回認証用サーバ側シードに使用した場合に、次回認証用のフェーズ1クライアント側ワンタイム認証子が、別のフェーズ1クライアント側ワンタイム認証子およびフェーズ2クライアント側ワンタイム認証子のいずれかに一致するか否かを判定するとともに(ステップS106)、初回のフェーズ2クライアント側ワンタイム認証子が、別のフェーズ2クライアント側ワンタイム認証子およびフェーズ1クライアント側ワンタイム認証子のいずれかに一致するか否かを判定する(ステップS107)。つまり、生成した乱数Qを使用した場合のクライアント側ワンタイム認証子の一意性(つまり、同値の別のワンタイム認証子が存在しないこと)が確保されるか否かが判定される。   Next, the server-side authentication processing unit 82 generates a next-authentication server-side seed. First, when the server-side authentication processing unit 82 generates a random number Q and uses this random number Q as the next-authentication server-side seed, the phase-one client-side one-time authenticator for the next authentication becomes another phase 1 It is determined whether or not the client-side one-time authenticator and the phase-two client-side one-time authenticator are matched (step S106), and the initial phase-two client-side one-time authenticator is another phase-two client. It is determined whether or not it matches either the side one-time authenticator or the phase 1 client-side one-time authenticator (step S107). That is, it is determined whether or not the uniqueness of the client-side one-time authenticator (that is, that there is no other one-time authenticator having the same value) when the generated random number Q is used is determined.

このとき、サーバ側認証処理部82は、次式に従って、この乱数Qを次回認証用サーバ側シードに使用した場合の次回認証用のフェーズ1クライアント側ワンタイム認証子X1および初回のフェーズ2クライアント側ワンタイム認証子X2を計算し、これらのワンタイム認証子X1,X2がフェーズ1テーブル72aおよびフェーズ2テーブル72bに登録されているか否かを判定する。   At this time, the server-side authentication processing unit 82 uses the random number Q as the next authentication server-side seed according to the following formula, and the next-time authentication phase 1 client-side one-time authenticator X1 and the first-time phase 2 client-side The one-time authenticator X2 is calculated, and it is determined whether or not these one-time authenticators X1 and X2 are registered in the phase 1 table 72a and the phase 2 table 72b.

X1=hc(R1(n),Q)   X1 = hc (R1 (n), Q)

X2=hc(Q,R2(0)),R2(0)=R1(n)   X2 = hc (Q, R2 (0)), R2 (0) = R1 (n)

そして、生成した乱数Qで一意性が確保されないと判定した場合、サーバ側認証処理部82は、一意性が確保されるまで、乱数Qを再生成する。   If it is determined that the generated random number Q does not ensure uniqueness, the server-side authentication processing unit 82 regenerates the random number Q until the uniqueness is ensured.

一方、生成した乱数Qでは一意性が確保されると判定した場合、サーバ側認証処理部82は、乱数Qを、次回認証用フェーズ1サーバ側シードQ1(n)にセットし、そのシードQ1(n)を、その管理番号に関連付けてシードテーブル71に書き込む(ステップS108)。   On the other hand, if it is determined that the generated random number Q is unique, the server-side authentication processing unit 82 sets the random number Q to the next authentication phase 1 server-side seed Q1 (n), and the seed Q1 ( n) is written in the seed table 71 in association with the management number (step S108).

そして、サーバ側認証処理部82は、フェーズ1サーバ側ワンタイム認証子S1(n−1)および暗号化後の次回認証用フェーズ1サーバ側シードK1(n−1)*Q1(n)を生成し、端末装置1へ送信する(ステップS109)。   Then, the server-side authentication processing unit 82 generates the phase 1 server-side one-time authenticator S1 (n-1) and the next authentication phase 1 server-side seed K1 (n-1) * Q1 (n) after encryption. And it transmits to the terminal device 1 (step S109).

また、サーバ側認証処理部82は、ステップS106での判定時に計算したX1を、次回認証用フェーズ1クライアント側ワンタイム識別子C1(n)とし、そのC1(n)で、フェーズ1テーブル72aにおいてその管理番号に関連付けられているワンタイム識別子を更新する(ステップS110)。このとき、サーバ側認証処理部82は、その管理番号に関連付けられているフェーズ1アドレスをシードテーブル71から読み出し、そのフェーズ1アドレスで、フェーズ1テーブル72aにおけるその管理番号のレコードを特定し、そのレコード内のワンタイム識別子を更新する。   Further, the server side authentication processing unit 82 sets X1 calculated at the time of the determination in step S106 as the next authentication phase 1 client side one-time identifier C1 (n), and in C1 (n), in the phase 1 table 72a, The one-time identifier associated with the management number is updated (step S110). At this time, the server-side authentication processing unit 82 reads the phase 1 address associated with the management number from the seed table 71, identifies the record of the management number in the phase 1 table 72a with the phase 1 address, Update the one-time identifier in the record.

その後、サーバ側認証処理部82は、フェーズ1テーブル72a内のレコードを、ワンタイム識別子の値が昇順になるようにソートし、ソートにより位置に変更のあったレコードについて、シードテーブル71においてそのレコードの管理番号に関連付けられているフェーズ1アドレスを更新する(ステップS111)。   Thereafter, the server-side authentication processing unit 82 sorts the records in the phase 1 table 72a so that the values of the one-time identifiers are in ascending order, and records that have been changed in position by the sort in the seed table 71. The phase 1 address associated with the management number is updated (step S111).

また、サーバ側認証処理部82は、ステップS107での判定時に計算したX2を、初回認証用フェーズ2クライアント側ワンタイム識別子C2(0)とし、そのC2(0)で、フェーズ2テーブル72bにおいてその管理番号に関連付けられているワンタイム識別子を更新する(ステップS112)。このとき、サーバ側認証処理部82は、その管理番号に関連付けられているフェーズ2アドレスをシードテーブル71から読み出し、そのフェーズ2アドレスで、フェーズ2テーブル72bにおけるその管理番号のレコードを特定し、そのレコード内のワンタイム識別子を更新する。   The server-side authentication processing unit 82 sets X2 calculated at the time of determination in step S107 as the initial authentication phase 2 client-side one-time identifier C2 (0), and in C2 (0), in the phase 2 table 72b, The one-time identifier associated with the management number is updated (step S112). At this time, the server-side authentication processing unit 82 reads the phase 2 address associated with the management number from the seed table 71, identifies the record of the management number in the phase 2 table 72b with the phase 2 address, Update the one-time identifier in the record.

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

そして、サーバ側認証処理部82は、次回認証用のフェーズ1共通暗号鍵K1(n)を生成し、その管理番号に関連付けてシードテーブル71に書き込む(ステップS114)。   Then, the server-side authentication processing unit 82 generates the next authentication phase 1 common encryption key K1 (n) and writes it in the seed table 71 in association with the management number (step S114).

さらに、サーバ側認証処理部82は、シードテーブル71において、その管理番号の次回認証用のシードおよび共通暗号鍵R1(n),Q1(n),K1(n)で、今回認証用のシードおよび共通暗号鍵R1(n−1),Q1(n−1),K1(n−1)を更新する(ステップS115)。   Furthermore, the server-side authentication processing unit 82 uses the seed for the next authentication of the management number and the common encryption key R1 (n), Q1 (n), K1 (n) in the seed table 71 and the seed for the current authentication. The common encryption keys R1 (n-1), Q1 (n-1), and K1 (n-1) are updated (step S115).

このようにして、フェーズ1のワンタイム認証についてのデータ処理が実行される。   In this way, the data processing for the one-time authentication in phase 1 is executed.

一方、ステップS101において、受信したワンタイム認証子Cがフェーズ1テーブル72aに登録されていないと判定した場合、サーバ側認証処理部82は、受信したワンタイム認証子Cが、フェーズ2テーブル72bに登録されているフェーズ2クライアント側ワンタイム認証子C2(n−1)のいずれかであるか否かを判定する(ステップS121)。   On the other hand, if it is determined in step S101 that the received one-time authenticator C is not registered in the phase 1 table 72a, the server-side authentication processing unit 82 stores the received one-time authenticator C in the phase 2 table 72b. It is determined whether it is any of the registered phase 2 client-side one-time authenticators C2 (n-1) (step S121).

受信したワンタイム認証子Cがフェーズ2テーブル72bに登録されているフェーズ2クライアント側ワンタイム認証子C2(n−1)のいずれかである場合、サーバ側認証処理部82は、フェーズ2テーブル72bにおいて、受信したワンタイム認証子Cに関連付けられている管理番号を特定する(ステップS122)。この場合、フェーズ2のワンタイム認証が実行される。   When the received one-time authenticator C is any one of the phase-two client-side one-time authenticators C2 (n−1) registered in the phase-two table 72b, the server-side authentication processing unit 82 uses the phase-two table 72b. In step S122, the management number associated with the received one-time authenticator C is specified. In this case, phase 2 one-time authentication is performed.

サーバ側認証処理部82は、特定した管理番号に関連付けられているQ2(n−1)およびK2(n−1)をシードテーブル71から読み出す(ステップS123)。   The server-side authentication processing unit 82 reads Q2 (n−1) and K2 (n−1) associated with the specified management number from the seed table 71 (step S123).

そして、サーバ側認証処理部82は、受信したK2(n−1)*R2(n)からR2(n)を、読み出したK2(n−1)で復号し、そのR2(n)を、その管理番号に関連付けてシードテーブル71に書き込む(ステップS124)。   Then, the server-side authentication processing unit 82 decrypts the received K2 (n−1) * R2 (n) to R2 (n) with the read K2 (n−1), and R2 (n) Write to the seed table 71 in association with the management number (step S124).

次に、サーバ側認証処理部82は、次回認証用サーバ側シードの生成を行う。まず、サーバ側認証処理部82は、乱数Qを生成し、この乱数Qを次回認証用サーバ側シードに使用した場合に、次回認証用のフェーズ2クライアント側ワンタイム認証子が、別のフェーズ2クライアント側ワンタイム認証子およびフェーズ1クライアント側ワンタイム認証子のいずれかに一致するか否かを判定する(ステップS126)。つまり、生成した乱数Qを使用した場合のクライアント側ワンタイム認証子の一意性(つまり、同値の別のワンタイム認証子が存在しないこと)が確保されるか否かが判定される。   Next, the server-side authentication processing unit 82 generates a next-authentication server-side seed. First, when the server side authentication processing unit 82 generates a random number Q and uses this random number Q as the next authentication server side seed, the next authentication phase 2 client side one-time authenticator is changed to another phase 2. It is determined whether the client-side one-time authenticator and the phase-one client-side one-time authenticator are matched (step S126). That is, it is determined whether or not the uniqueness of the client-side one-time authenticator (that is, that there is no other one-time authenticator having the same value) when the generated random number Q is used is determined.

このとき、サーバ側認証処理部82は、次式に従って、この乱数Qを次回認証用サーバ側シードに使用した場合の次回認証用のフェーズ2クライアント側ワンタイム認証子X2を計算し、このワンタイム認証子X2がフェーズ2テーブル72bに登録されているか否かを判定する。   At this time, the server-side authentication processing unit 82 calculates the next-time authentication phase 2 client-side one-time authenticator X2 when this random number Q is used as the next-authentication server-side seed according to the following equation. It is determined whether or not the authenticator X2 is registered in the phase 2 table 72b.

X2=hc(Q,R2(n))   X2 = hc (Q, R2 (n))

そして、生成した乱数Qでは一意性が確保されないと判定した場合、サーバ側認証処理部82は、一意性が確保されるまで、乱数Qを再生成する。   When it is determined that the generated random number Q does not ensure uniqueness, the server-side authentication processing unit 82 regenerates the random number Q until the uniqueness is ensured.

一方、生成した乱数Qでは一意性が確保されると判定した場合、サーバ側認証処理部82は、乱数Qを、次回認証用フェーズ2サーバ側シードQ2(n)にセットし、そのシードQ2(n)を、その管理番号に関連付けてシードテーブル71に書き込む(ステップS127)。   On the other hand, if it is determined that the generated random number Q is unique, the server-side authentication processing unit 82 sets the random number Q to the next authentication phase 2 server-side seed Q2 (n), and the seed Q2 ( n) is written in the seed table 71 in association with the management number (step S127).

そして、サーバ側認証処理部82は、フェーズ2サーバ側ワンタイム認証子S2(n−1)および暗号化後の次回認証用フェーズ2サーバ側シードK2(n−1)*Q2(n)を生成し、端末装置1へ送信する(ステップS128)。   Then, the server-side authentication processing unit 82 generates the phase 2 server-side one-time authenticator S2 (n-1) and the next authentication phase 2 server-side seed K2 (n-1) * Q2 (n) after encryption. And it transmits to the terminal device 1 (step S128).

また、サーバ側認証処理部82は、ステップS126での判定時に計算したX2を、次回認証用フェーズ2クライアント側ワンタイム識別子C2(n)とし、そのC2(n)で、フェーズ2テーブル72bにおいてその管理番号に関連付けられているワンタイム識別子を更新する(ステップS129)。このとき、サーバ側認証処理部82は、その管理番号に関連付けられているフェーズ2アドレスをシードテーブル71から読み出し、そのフェーズ2アドレスで、フェーズ2テーブル72bにおけるその管理番号のレコードを特定し、そのレコード内のワンタイム識別子を更新する。   Further, the server side authentication processing unit 82 sets X2 calculated at the time of determination in step S126 as the next authentication phase 2 client side one-time identifier C2 (n), and in C2 (n), in the phase 2 table 72b, The one-time identifier associated with the management number is updated (step S129). At this time, the server-side authentication processing unit 82 reads the phase 2 address associated with the management number from the seed table 71, identifies the record of the management number in the phase 2 table 72b with the phase 2 address, Update the one-time identifier in the record.

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

そして、サーバ側認証処理部82は、次回認証用のフェーズ2共通暗号鍵K2(n)を生成し、その管理番号に関連付けてシードテーブル71に書き込む(ステップS131)。   Then, the server-side authentication processing unit 82 generates the next authentication phase 2 common encryption key K2 (n), and writes it in the seed table 71 in association with the management number (step S131).

さらに、サーバ側認証処理部82は、シードテーブル71において、その管理番号の次回認証用のシードおよび共通暗号鍵R2(n),Q2(n),K2(n)で、今回認証用のシードおよび共通暗号鍵R2(n−1),Q2(n−1),K2(n−1)を更新する(ステップS132)。   Further, the server side authentication processing unit 82 uses the seed for the next authentication of the management number and the common encryption key R2 (n), Q2 (n), K2 (n) in the seed table 71 and the seed for the current authentication. The common encryption keys R2 (n-1), Q2 (n-1), and K2 (n-1) are updated (step S132).

このようにして、フェーズ2のワンタイム認証についてのデータ処理が実行される。   In this way, data processing for the one-time authentication in phase 2 is executed.

以上のように、上記実施の形態2によれば、管理番号で複数のICカードを管理し、ICカードについてそれぞれ独立してワンタイム認証を行うことができる。   As described above, according to the second embodiment, a plurality of IC cards can be managed with a management number, and one-time authentication can be performed independently for each IC card.

なお、上述の各実施の形態は、本発明の好適な例であるが、本発明は、これらに限定されるものではなく、本発明の要旨を逸脱しない範囲において、種々の変形、変更が可能である。   Each embodiment described above 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.

例えば、上記実施の形態1,2において、携帯型記憶装置として、ICカード5の代わりに、ICカード機能を有する携帯電話機などといった電子機器を使用してもよい。   For example, in the first and second embodiments, an electronic device such as a mobile phone having an IC card function may be used as the portable storage device instead of the IC card 5.

また、上記実施の形態1,2において、リーダライタ2は、端末装置1に内蔵されていてもよい。   In the first and second embodiments, the reader / writer 2 may be built in the terminal device 1.

また、上記実施の形態1,2において、携帯型記憶装置は、USBメモリのように、リーダライタ2を使用せずに、端末装置1に直接接続できるようなものであってもよい。   In the first and second embodiments, the portable storage device may be directly connected to the terminal device 1 without using the reader / writer 2 like a USB memory.

また、上記実施の形態1,2において、フェーズ1のシードおよび共通暗号鍵をそのままフェーズ2のシードおよび共通暗号鍵の初期値としているが、その代わりに、所定の関数(例えば、ハッシュ関数や一方向性関数)で、端末装置1およびサーバ装置4のそれぞれにおいて、フェーズ1のシードおよび共通暗号鍵から、フェーズ2のシードおよび共通暗号鍵の初期値を導出するようにしてもよい。   In the first and second embodiments, the phase 1 seed and the common encryption key are directly used as the initial values of the phase 2 seed and the common encryption key. Instead, a predetermined function (for example, a hash function or one In the terminal device 1 and the server device 4, the initial values of the phase 2 seed and the common encryption key may be derived from the phase 1 seed and the common encryption key.

また、上記実施の形態1,2において、ワンタイム認証子をワンタイムパスワードとしてもよい。ワンタイム認証子がワンタイムパスワードである場合、クライアント側ワンタイム認証子の一意性についての判定(ステップS106、S107,S126)は不要であり、また、その場合、端末装置1は、ICカード5からカードID101を読み出し、ワンタイム認証子とともにそのカードID101をサーバ装置4へを送信し、サーバ装置4は、カード属性テーブル73を参照し、そのカードID101に基づいてICカード5を特定する。   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, the determination on the uniqueness of the client-side one-time authenticator (steps S106, S107, S126) is unnecessary. In this case, the terminal device 1 uses the IC card 5 The card ID 101 is read out, and the card ID 101 is transmitted to the server apparatus 4 together with the one-time authenticator. The server apparatus 4 refers to the card attribute table 73 and specifies the IC card 5 based on the card ID 101.

また、上記実施の形態1,2において、フェーズフラグPに2をセットするタイミングは、フェーズ1のワンタイム認証終了後であって、フェーズ2の初回のサーバ側ワンタイム認証子S2(0)を受信する前であれば、どのタイミングでもよい。   In the first and second embodiments, the timing for setting the phase flag P to 2 is after the end of the one-time authentication in the phase 1, and the first server-side one-time authenticator S2 (0) in the phase 2 is set. Any timing may be used before reception.

本発明は、例えば、ネットワークサービスにおけるユーザ認証に適用可能である。   The present invention is applicable to user authentication in network services, for example.

1 端末装置(クライアント装置の一例)
3 ネットワーク
4 サーバ装置
5 ICカード(携帯型記憶装置の一例)
13 RAM(メモリの一例)
31 ワンタイム認証プログラム(クライアントコンピュータプログラムの一例)
42 通信処理部
43 認証処理部
102 シード
1 Terminal device (example of client device)
3 Network 4 Server device 5 IC card (an example of portable storage device)
13 RAM (an example of memory)
31 One-time authentication program (an example of a client computer program)
42 Communication Processing Unit 43 Authentication Processing Unit 102 Seed

Claims (9)

サーバ装置と、
クライアント装置と、
所定の位置に配置されると前記クライアント装置によるデータ読み書きが可能になる携帯型記憶装置とを備え、
前記サーバ装置および前記クライアント装置は、それぞれシードを生成し、前記シードを暗号化して相互に送信し、前記シードからワンタイム認証子を生成して送信し、前記サーバ装置により生成された前記シードと前記クライアント装置により生成された前記シードとに基づいて互いにワンタイム認証子についての認証を行い、前記認証に成功するたびに次回認証用シード前記シードを更新していき、
前記携帯型記憶装置は、前記サーバ装置および前記クライアント装置の前記シードを保持し、
前記クライアント装置は、フェーズ1において、前記携帯型記憶装置から前記フェーズ1の前記シードを読み出し、読み出したシードに基づいてワンタイム認証子を生成して前記サーバ装置へ送信し、前記サーバ装置へ送信した前記ワンタイム認証子および前記サーバ装置から受信した前記ワンタイム認証子についての認証に成功すると、前記フェーズ1の前記次回認証用シードを前記携帯型記憶装置に書き込み、前記フェーズ1の後のフェーズ2において、前記フェーズ1の前記次回認証用シードから当該フェーズ2の初回認証用シードを導出し、前記フェーズ2の初回認証用シードから前記フェーズ2のワンタイム認証子を生成して前記サーバ装置へ送信し前記サーバ装置へ送信した前記フェーズ2のワンタイム認証子および前記サーバ装置から受信した前記フェーズ2のワンタイム認証子についての認証に成功すると、前記フェーズ2での次回認証用シードを生成して前記フェーズ2の前記シードを更新し、
前記サーバ装置は、前記フェーズ1の前記次回認証用シードを次回のフェーズ1での認証時まで保持するとともに、その次回認証用シードから前記フェーズ2の初回認証用シードを導出し、フェーズ2において前記ワンタイム認証子について認証に成功すると、前記フェーズ2での次回認証用シードを生成して前記シードを更新すること、
を特徴とするワンタイム認証システム。
A server device;
A client device;
A portable storage device capable of reading and writing data by the client device when placed in a predetermined position;
Each of the server device and the client device generates a seed, encrypts and transmits the seed to each other, generates and transmits a one-time authenticator from the seed, and transmits the seed generated by the server device. It said authenticates for the one-time authentication code to each other on the basis of the said seed that has been generated by the client device, continue to update the seed in the next authentication seed to each successful in the authentication,
The portable storage device holds the seed of the server device and the client device,
In the phase 1, the client device reads the seed of the phase 1 from the portable storage device, generates a one-time authenticator based on the read seed, transmits the one-time authenticator to the server device, and transmits it to the server device When the authentication for the one-time authenticator and the one-time authenticator received from the server device is successful, the next authentication seed of the phase 1 is written in the portable storage device, and the phase after the phase 1 2, the initial authentication seed of the phase 2 is derived from the next authentication seed of the phase 1, and the one-time authenticator of the phase 2 is generated from the initial authentication seed of the phase 2 to the server device. sent, transmitted one-time authenticator and the service of the phase 2 to the server device Upon successful authentication of one-time authentication code of the phase 2 received from the device, it updates the seed of the Phase 2 generates a next authentication seed in the phase 2,
The server device holds the next authentication seed in the phase 1 until the next authentication in the phase 1 and derives the initial authentication seed in the phase 2 from the next authentication seed. If authentication is successful for the one-time authenticator, generating a seed for next authentication in the phase 2 and updating the seed;
One-time authentication system characterized by
前記携帯型記憶装置および前記サーバ装置は、前記シードとして、フェーズ1クライアント側シードおよびフェーズ1サーバ側シードを保持し、
前記クライアント装置は、
(a1)前記携帯型記憶装置から前記フェーズ1クライアント側シードおよび前記フェーズ1サーバ側シードを読み出し、
(a2)前記フェーズ1クライアント側シードおよび前記フェーズ1サーバ側シードからフェーズ1クライアント側ワンタイム認証子を生成し、
(a3)次回認証用フェーズ1クライアント側シードを生成し、
(a4)前記フェーズ1クライアント側ワンタイム認証子および暗号化後の前記次回認証用フェーズ1クライアント側シードを前記サーバ装置へ送信し、
(a5)前記サーバ装置からフェーズ1サーバ側ワンタイム認証子および暗号化後の次回認証用フェーズ1サーバ側シードを受信し、
(a6)前記フェーズ1サーバ側ワンタイム認証子について認証に成功すると、前記次回認証用フェーズ1クライアント側シードおよび前記次回認証用フェーズ1サーバ側シードを前記携帯型記憶装置に書き込み、
(a7)前記フェーズ1サーバ側ワンタイム認証子について認証に成功すると、前記次回認証用フェーズ1クライアント側シードおよび前記次回認証用フェーズ1サーバ側シードから初回認証用フェーズ2クライアント側シードおよび初回認証用フェーズ2サーバ側シードを導出し、
(a8)前記初回認証用フェーズ2クライアント側シードおよび前記初回認証用フェーズ2サーバ側シードから初回認証用フェーズ2クライアント側ワンタイム認証子を生成し、
(a9)次回認証用フェーズ2クライアント側シードを生成し、
(a10)前記初回認証用フェーズ2クライアント側ワンタイム認証子および暗号化後の前記次回認証用フェーズ2クライアント側シードを前記サーバ装置へ送信し、
(a11)前記サーバ装置からフェーズ2サーバ側ワンタイム認証子および暗号化後の次回認証用フェーズ2サーバ側シードを受信し、
(a12)前記フェーズ2サーバ側ワンタイム認証子について認証に成功すると、前記次回認証用フェーズ2クライアント側シードおよび前記次回認証用フェーズ2サーバ側シードから次回認証用フェーズ2クライアント側ワンタイム認証子を生成し、
前記サーバ装置は、
(b1)前記クライアント装置から前記フェーズ1クライアント側ワンタイム認証子および暗号化後の前記次回認証用フェーズ1クライアント側シードを受信し、
(b2)前記フェーズ1クライアント側ワンタイム認証子について認証に成功すると、次回認証用フェーズ1サーバ側シードを生成し、
(b3)前記次回認証用フェーズ1クライアント側シードおよびフェーズ1サーバ側シードからフェーズ1サーバ側ワンタイム認証子を生成し、
(b4)前記クライアント装置へ前記フェーズ1サーバ側ワンタイム認証子および暗号化後の前記次回認証用フェーズ1サーバ側シードを送信し、
(b5)前記次回認証用フェーズ1クライアント側シードおよび前記次回認証用フェーズ1サーバ側シードから初回認証用フェーズ2クライアント側シードおよび初回認証用フェーズ2サーバ側シードを導出し、
(b6)前記クライアント装置から前記初回認証用フェーズ2クライアント側ワンタイム認証子および暗号化後の前記次回認証用フェーズ2クライアント側シードを受信し、
(b7)前記初回認証用フェーズ2クライアント側シードおよび前記初回認証用フェーズ2サーバ側シードに基づき、前記初回認証用フェーズ2クライアント側ワンタイム認証子について認証に成功すると、次回認証用フェーズ2サーバ側シードを生成し、
(b8)前記次回認証用フェーズ2クライアント側シードおよび前記初回認証用フェーズ2サーバ側シードから初回認証用フェーズ2サーバ側ワンタイム認証子を生成し、
(b9)前記クライアント装置へ前記初回認証用フェーズ2サーバ側ワンタイム認証子および暗号化後の前記次回認証用フェーズ2サーバ側シードを送信すること、
を特徴とする請求項1記載のワンタイム認証システム。
The portable storage device and the server device hold a phase 1 client side seed and a phase 1 server side seed as the seed,
The client device is
(A1) Read the phase 1 client-side seed and the phase 1 server-side seed from the portable storage device,
(A2) generating a phase 1 client side one-time authenticator from the phase 1 client side seed and the phase 1 server side seed;
(A3) Generate the next authentication phase 1 client-side seed,
(A4) transmitting the phase 1 client-side one-time authenticator and the encrypted next-phase authentication phase 1 client-side seed to the server device;
(A5) receiving a phase 1 server side one-time authenticator and an encrypted next authentication phase 1 server side seed from the server device;
(A6) When the authentication is successful for the phase 1 server-side one-time authenticator, the next authentication phase 1 client-side seed and the next authentication phase 1 server-side seed are written to the portable storage device,
(A7) Upon successful authentication of the phase 1 server-side one-time authenticator, the next authentication phase 1 client-side seed and the next authentication phase 1 server-side seed to the initial authentication phase 2 client-side seed and initial authentication Derive phase 2 server side seed,
(A8) generating an initial authentication phase 2 client-side one-time authenticator from the initial authentication phase 2 client-side seed and the initial authentication phase 2 server-side seed;
(A9) Generate the next authentication phase 2 client-side seed,
(A10) transmitting the initial authentication phase 2 client side one-time authenticator and the encrypted next authentication phase 2 client side seed to the server device;
(A11) receiving a phase 2 server side one-time authenticator and an encrypted next phase phase 2 server side seed from the server device;
(A12) When the authentication is successful for the phase 2 server side one-time authenticator, the next authentication phase 2 client-side seed and the next authentication phase 2 client-side seed are changed to the next authentication phase 2 client-side one-time authenticator. Generate
The server device
(B1) receiving the phase 1 client side one-time authenticator from the client device and the phase 1 client side seed for next authentication after encryption;
(B2) If the authentication is successful for the phase 1 client-side one-time authenticator, the next phase 1 server-side seed for authentication is generated,
(B3) A phase 1 server side one-time authenticator is generated from the next authentication phase 1 client side seed and the phase 1 server side seed,
(B4) transmitting the phase 1 server side one-time authenticator and the encrypted next phase phase 1 server side seed to the client device;
(B5) Deriving the initial authentication phase 2 client-side seed and the initial authentication phase 2 server-side seed from the next authentication phase 1 client-side seed and the next authentication phase 1 server-side seed,
(B6) receiving the initial authentication phase 2 client-side one-time authenticator and the encrypted next authentication phase 2 client-side seed from the client device;
(B7) When the first authentication phase 2 client side one-time authenticator is successfully authenticated based on the initial authentication phase 2 client side seed and the initial authentication phase 2 server side seed, the next authentication phase 2 server side Generate seed,
(B8) generating an initial authentication phase 2 server-side one-time authenticator from the next authentication phase 2 client-side seed and the initial authentication phase 2 server-side seed;
(B9) transmitting the initial authentication phase 2 server-side one-time authenticator and the encrypted next authentication phase 2 server-side seed to the client device;
The one-time authentication system according to claim 1.
前記フェーズ1クライアント側ワンタイム認証子および前記フェーズ2クライアント側ワンタイム認証子は、同一の一方向性関数で計算され、
前記一方向性関数は、2つの引数をとり、引数の順序によって関数値の異なる関数であって、
前記フェーズ1クライアント側ワンタイム認証子についての引数の順序が、前記フェーズ1クライアント側シード、前記フェーズ1サーバ側シードの順序である場合、前記フェーズ2クライアント側ワンタイム認証子についての引数の順序が、前記フェーズ2サーバ側シード、前記フェーズ2クライアント側シードの順序であり、
前記フェーズ1クライアント側ワンタイム認証子についての引数の順序が、前記フェーズ1サーバ側シード、前記フェーズ1クライアント側シードの順序である場合、前記フェーズ2クライアント側ワンタイム認証子についての引数の順序が、前記フェーズ2クライアント側シード、前記フェーズ2サーバ側シードの順序であること、
を特徴とする請求項2記載のワンタイム認証システム。
The phase 1 client-side one-time authenticator and the phase 2 client-side one-time authenticator are calculated with the same one-way function,
The one-way function takes two arguments and has different function values depending on the order of the arguments.
When the order of arguments for the phase 1 client-side one-time authenticator is the order of the phase 1 client-side seed and the phase 1 server-side seed, the order of arguments for the phase 2 client-side one-time authenticator is , Phase 2 server-side seed, phase 2 client-side seed,
If the order of arguments for the phase 1 client-side one-time authenticator is the order of the phase 1 server-side seed and the phase 1 client-side seed, the order of arguments for the phase 2 client-side one-time authenticator is The order of the phase 2 client-side seed and the phase 2 server-side seed,
The one-time authentication system according to claim 2.
前記フェーズ1サーバ側ワンタイム認証子および前記フェーズ2サーバ側ワンタイム認証子は、同一の一方向性関数で計算され、
前記一方向性関数は、2つの引数をとり、引数の順序によって関数値の異なる関数であって、
前記フェーズ1サーバ側ワンタイム認証子についての引数の順序が、前記次回認証用フェーズ1クライアント側シード、前記フェーズ1サーバ側シードの順序である場合、前記フェーズ2サーバ側ワンタイム認証子についての引数の順序が、前記フェーズ2サーバ側シード、前記次回認証用フェーズ2クライアント側シードの順序であり、
前記フェーズ1サーバ側ワンタイム認証子についての引数の順序が、前記フェーズ1サーバ側シード、前記次回認証用フェーズ1クライアント側シードの順序である場合、前記フェーズ2サーバ側ワンタイム認証子についての引数の順序が、前記次回認証用フェーズ2クライアント側シード、前記フェーズ2サーバ側シードの順序であること、
を特徴とする請求項2または請求項3記載のワンタイム認証システム。
The phase 1 server-side one-time authenticator and the phase 2 server-side one-time authenticator are calculated with the same one-way function,
The one-way function takes two arguments and has different function values depending on the order of the arguments.
If the order of arguments for the phase 1 server-side one-time authenticator is the next authentication phase 1 client-side seed and the order of the phase 1 server-side seed, the argument for the phase 2 server-side one-time authenticator Is the order of the phase 2 server-side seed and the next authentication phase 2 client-side seed,
If the order of arguments for the phase 1 server side one-time authenticator is the order of the phase 1 server side seed and the next authentication phase 1 client side seed, the argument for the phase 2 server side one-time authenticator The order of the next authentication phase 2 client-side seed and the phase 2 server-side seed,
The one-time authentication system according to claim 2 or claim 3, wherein
前記クライアント装置は、前記次回認証用フェーズ1クライアント側シードおよび前記次回認証用フェーズ1サーバ側シードを前記携帯型記憶装置に書き込むまでメモリで保持し、前記次回認証用フェーズ1クライアント側シードおよび前記次回認証用フェーズ1サーバ側シードを、前記携帯型記憶装置に書き込んだ後、前記メモリから消去することを特徴とする請求項2記載のワンタイム認証システム。   The client device holds the next authentication phase 1 client-side seed and the next authentication phase 1 server-side seed in a memory until it is written in the portable storage device, and the next authentication phase 1 client-side seed and the next authentication phase 1 client-side seed 3. The one-time authentication system according to claim 2, wherein the authentication phase 1 server-side seed is erased from the memory after being written into the portable storage device. 前記携帯型記憶装置および前記サーバ装置は、フェーズ1共通暗号鍵を保持し、
前記クライアント装置は、前記携帯型記憶装置から前記フェーズ1共通暗号鍵を読み出し、前記フェーズ1共通暗号鍵で、前記次回認証用フェーズ1クライアント側シードを暗号化し、前記フェーズ1サーバ側ワンタイム認証子について認証に成功すると、前記フェーズ1共通暗号鍵を更新し、更新後の前記フェーズ1共通暗号鍵を前記携帯型記憶装置に書き込み、更新後の前記フェーズ1共通暗号鍵からフェーズ2共通暗号鍵の初期値を導出し、前記フェーズ2共通暗号鍵で、前記次回認証用フェーズ2クライアント側シードを暗号化し、前記フェーズ2サーバ側ワンタイム認証子について認証に成功すると、前記フェーズ2共通暗号鍵を更新し、
前記サーバ装置は、前記フェーズ1共通暗号鍵で、前記次回認証用フェーズ1サーバ側シードを暗号化し、前記フェーズ1クライアント側ワンタイム認証子について認証に成功すると、前記フェーズ1共通暗号鍵を更新し、更新後の前記フェーズ1共通暗号鍵を次回のフェーズ1での認証時まで保持するとともに、更新後の前記フェーズ1共通暗号鍵からフェーズ2共通暗号鍵の初期値を導出し、前記フェーズ2共通暗号鍵で、前記次回認証用フェーズ2サーバ側シードを暗号化し、前記フェーズ2クライアント側ワンタイム認証子について認証に成功すると、前記フェーズ2共通暗号鍵を更新すること、
を特徴とする請求項2記載のワンタイム認証システム。
The portable storage device and the server device hold a phase 1 common encryption key,
The client device reads the phase 1 common encryption key from the portable storage device, encrypts the next authentication phase 1 client-side seed with the phase 1 common encryption key, and the phase 1 server-side one-time authenticator. If the authentication is successful, the phase 1 common encryption key is updated, the updated phase 1 common encryption key is written in the portable storage device, and the phase 1 common encryption key is updated from the updated phase 1 common encryption key. Deriving an initial value, encrypting the next authentication phase 2 client-side seed with the phase 2 common encryption key, and updating the phase 2 common encryption key after successful authentication of the phase 2 server side one-time authenticator And
The server device encrypts the phase 1 server-side seed for the next authentication with the phase 1 common encryption key, and updates the phase 1 common encryption key when the authentication is successful for the phase 1 client-side one-time authenticator. The updated phase 1 common encryption key is held until the next authentication in phase 1, and the initial value of the phase 2 common encryption key is derived from the updated phase 1 common encryption key, Encrypting the next phase 2 server-side seed for next authentication with an encryption key, and succeeding in authenticating the one-time authenticator on the phase 2 client side, updating the phase 2 common encryption key;
The one-time authentication system according to claim 2.
前記クライアント装置は、前記更新後のフェーズ1共通暗号鍵を前記携帯型記憶装置に書き込むまでメモリで保持し、前記更新後のフェーズ1共通暗号鍵を、前記携帯型記憶装置に書き込んだ後、前記メモリから消去することを特徴とする請求項6記載のワンタイム認証システム。   The client device holds the updated phase 1 common encryption key in a memory until it is written to the portable storage device, and writes the updated phase 1 common encryption key to the portable storage device, 7. The one-time authentication system according to claim 6, wherein the one-time authentication system is erased from the memory. 端末装置において、
ネットワークを介してサーバ装置と通信する通信処理部と、
シードを生成するとともに前記通信処理部を使用して前記サーバ装置から前記サーバ装置のシードを受信し、生成したシードと受信したシードからワンタイム認証子を生成して前記通信処理部を使用して送信し、生成した前記シードと前記サーバ装置のシードとに基づいて、前記サーバ装置から受信されたワンタイム認証子についての認証を行い、前記認証に成功するたびに次回認証用シード前記シードを更新していく認証処理部とを備え、
前記認証処理部は、フェーズ1において、所定の位置に配置されると当該端末装置によるデータ読み書きが可能になる携帯型記憶装置から前記サーバ装置側および当該端末装置側の前記フェーズ1の前記シードを読み出し、読み出したシードに基づいてワンタイム認証子を生成して前記サーバ装置へ送信し、前記サーバ装置へ送信した前記ワンタイム認証子および前記サーバ装置から受信した前記ワンタイム認証子についての認証に成功すると、前記サーバ装置側および当該端末装置側についての前記フェーズ1の前記次回認証用シードを前記携帯型記憶装置に書き込み、前記フェーズ1の後のフェーズ2において、前記フェーズ1の前記次回認証用シードから当該フェーズ2の初回認証用シードを導出し、前記フェーズ2の初回認証用シードから前記フェーズ2のワンタイム認証子を生成して前記サーバ装置へ送信し前記サーバ装置へ送信した前記フェーズ2のワンタイム認証子および前記サーバ装置のフェーズ2のワンタイム認証子についての認証に成功すると、前記フェーズ2での次回認証用シードを生成して前記フェーズ2の前記シードを更新すること、
を特徴とする端末装置。
In the terminal device,
A communication processing unit that communicates with a server device via a network;
Generate a seed and receive the server device seed from the server device using the communication processing unit, generate a one-time authenticator from the generated seed and the received seed, and use the communication processing unit And authenticating the one-time authenticator received from the server device based on the generated seed and the seed of the server device, and each time the authentication is successful, the seed is set with the next authentication seed. With a renewed authentication processing unit,
The authentication processing unit obtains the seed of the phase 1 on the server device side and the terminal device side from the portable storage device that can read and write data by the terminal device when placed in a predetermined position in the phase 1. read, read on the basis of the seed to generate a one-time authenticator said transmitted to the server apparatus, the authentication for the one-time authenticator received from the one-time authenticator and the server apparatus that has transmitted to the server device If successful, the next authentication seed of the phase 1 for the server device side and the terminal device side is written to the portable storage device, and in the phase 2 after the phase 1, the next authentication seed for the phase 1 to derive the initial certification for seed of the phase 2 from seed, Sea for the initial certification of the phase 2 The phase to generate a one-time authenticator 2 sends to the server device, to authenticate the one-time authenticator Phase 2 of the one-time authenticator and the server device of the Phase 2 that is transmitted to the server device from If successful, generating a seed for next authentication in phase 2 and updating the seed in phase 2 ;
A terminal device characterized by the above.
端末装置内のコンピュータを、
シードを生成するとともにサーバ装置から前記サーバ装置のシードを受信し、生成したシードと受信したシードからワンタイム認証子を生成して送信し、生成した前記シードと前記サーバ装置のシードとに基づいて、前記サーバ装置から受信されたワンタイム認証子についての認証を行い、前記認証に成功するたびに次回認証用シード前記シードを更新していく認証処理部として機能させるためのクライアントコンピュータプログラムであって、
前記認証処理部は、フェーズ1において、所定の位置に配置されると前記端末装置によるデータ読み書きが可能になる携帯型記憶装置から前記サーバ装置側および前記端末装置側の前記フェーズ1の前記シードを読み出し、読み出したシードに基づいてワンタイム認証子を生成して前記サーバ装置へ送信し、前記サーバ装置へ送信した前記ワンタイム認証子および前記サーバ装置から受信した前記ワンタイム認証子についての認証に成功すると、前記サーバ装置側および当該端末装置側についての前記フェーズ1の前記次回認証用シードを前記携帯型記憶装置に書き込み、前記フェーズ1の後のフェーズ2において、前記フェーズ1の前記次回認証用シードから当該フェーズ2の初回認証用シードを導出し、前記フェーズ2の初回認証用シードから前記フェーズ2のワンタイム認証子を生成して前記サーバ装置へ送信し前記サーバ装置へ送信した前記フェーズ2のワンタイム認証子および前記サーバ装置のフェーズ2のワンタイム認証子についての認証に成功すると、前記フェーズ2での次回認証用シードを生成して前記フェーズ2の前記シードを更新すること、
を特徴とするクライアントコンピュータプログラム。
The computer in the terminal device
Generate a seed and receive the server device seed from the server device, generate and transmit a one-time authenticator from the generated seed and the received seed, and based on the generated seed and the server device seed A client computer program for authenticating a one-time authenticator received from the server device and functioning as an authentication processing unit that updates the seed with a next authentication seed each time the authentication is successful. And
The authentication processing unit obtains the seed of the phase 1 on the server device side and the terminal device side from a portable storage device that allows data reading and writing by the terminal device when placed in a predetermined position in the phase 1. read, read on the basis of the seed to generate a one-time authenticator it said transmitted to the server apparatus, the authentication for the one-time authenticator received from the one-time authenticator and the server apparatus that has transmitted to the server device If successful, the next authentication seed of the phase 1 for the server device side and the terminal device side is written to the portable storage device, and in the phase 2 after the phase 1, the next authentication seed for the phase 1 to derive the initial certification for seed of the phase 2 from seed, Sea for the initial certification of the phase 2 The phase to generate a one-time authenticator 2 sends to the server device, to authenticate the one-time authenticator Phase 2 of the one-time authenticator and the server device of the Phase 2 that is transmitted to the server device from If successful, generating a seed for next authentication in phase 2 and updating the seed in phase 2 ;
A client computer program characterized by the above.
JP2010173920A 2010-08-02 2010-08-02 One-time authentication system Active JP5616156B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010173920A JP5616156B2 (en) 2010-08-02 2010-08-02 One-time authentication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010173920A JP5616156B2 (en) 2010-08-02 2010-08-02 One-time authentication system

Publications (2)

Publication Number Publication Date
JP2012034292A JP2012034292A (en) 2012-02-16
JP5616156B2 true JP5616156B2 (en) 2014-10-29

Family

ID=45847137

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010173920A Active JP5616156B2 (en) 2010-08-02 2010-08-02 One-time authentication system

Country Status (1)

Country Link
JP (1) JP5616156B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106027263A (en) * 2016-07-22 2016-10-12 北京信安世纪科技有限公司 Token seed updating method and device, and relevant equipment
CN107111709A (en) * 2015-08-24 2017-08-29 株式会社派普斯 Fraud detection system

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5380583B1 (en) * 2012-06-25 2014-01-08 国立大学法人 千葉大学 Device authentication method and system
WO2017056329A1 (en) * 2015-10-02 2017-04-06 株式会社Pips One-time authentication system
JP6800732B2 (en) * 2016-12-19 2020-12-16 株式会社東芝 Processing system and terminal

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4219965B2 (en) * 2006-09-20 2009-02-04 株式会社Psd One-time ID authentication
JP2008287488A (en) * 2007-05-17 2008-11-27 Psd:Kk Data distributing and preserving unit
JP4344783B2 (en) * 2007-05-17 2009-10-14 株式会社Psd Seed delivery type one-time ID authentication
JP2008293415A (en) * 2007-05-28 2008-12-04 Psd:Kk Authenticity determination method, relay device for authenticity determination, and server for authenticity determination
JP2009009427A (en) * 2007-06-28 2009-01-15 Psd:Kk Authentication processing method, system therefor and terminal apparatus

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107111709A (en) * 2015-08-24 2017-08-29 株式会社派普斯 Fraud detection system
CN106027263A (en) * 2016-07-22 2016-10-12 北京信安世纪科技有限公司 Token seed updating method and device, and relevant equipment

Also Published As

Publication number Publication date
JP2012034292A (en) 2012-02-16

Similar Documents

Publication Publication Date Title
US9740849B2 (en) Registration and authentication of computing devices using a digital skeleton key
US8516265B2 (en) Authentication method, authentication device, program and recording medium
JP4118092B2 (en) Storage device and information processing device
JP4219965B2 (en) One-time ID authentication
JP5175615B2 (en) Utilization device, server device, service utilization system, service utilization method, service utilization program, and integrated circuit
JP7174237B2 (en) Key generation device, key update method and key update program
JP2009537093A (en) Digital copyright management method and apparatus
KR20040030454A (en) Content usage authority management system and management method
JP4533935B2 (en) License authentication system and authentication method
JP2010049420A (en) Apparatus, method, program and system for processing information
JP5616156B2 (en) One-time authentication system
JP2007102785A (en) Security method and system, and computer-readable storage medium storing the method
JP4859631B2 (en) ENCRYPTED COMMUNICATION SYSTEM, COMMUNICATION TERMINAL DEVICE, ENCRYPTED COMMUNICATION PROGRAM, AND ENCRYPTED COMMUNICATION METHOD
JP2007143066A (en) Imaging apparatus and key managing method
JP2008287488A (en) Data distributing and preserving unit
JP2007020065A (en) Decryption backup method, decryption restoration method, attestation device, individual key setting machine, user terminal, backup equipment, encryption backup program, decryption restoration program
WO2017029708A1 (en) Personal authentication system
JP5380368B2 (en) IC chip issuing system, IC chip issuing method, and IC chip issuing program
JPWO2005038661A1 (en) Terminal authentication apparatus and method
JP5963382B1 (en) One-time authentication system
JP2008124987A (en) Cipher communication apparatus and cipher communication system and cipher communication method and program
KR101211572B1 (en) Karaoke apparatus certification system and karaoke apparatus certification method using smart card
JP2002149061A (en) Rental contents distribution system and method therefor
JP6631210B2 (en) Terminal device authentication program, terminal device authentication method, server device, and authentication system
JP5939728B1 (en) Spoofing detection system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130717

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140310

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140410

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140604

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20140610

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140605

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140610

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140904

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140911

R150 Certificate of patent or registration of utility model

Ref document number: 5616156

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S201 Request for registration of exclusive licence

Free format text: JAPANESE INTERMEDIATE CODE: R314201

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S804 Written request for registration of cancellation of exclusive licence

Free format text: JAPANESE INTERMEDIATE CODE: R314805

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250