KR20050117478A - Inter-authentication method and device - Google Patents

Inter-authentication method and device Download PDF

Info

Publication number
KR20050117478A
KR20050117478A KR1020047020653A KR20047020653A KR20050117478A KR 20050117478 A KR20050117478 A KR 20050117478A KR 1020047020653 A KR1020047020653 A KR 1020047020653A KR 20047020653 A KR20047020653 A KR 20047020653A KR 20050117478 A KR20050117478 A KR 20050117478A
Authority
KR
South Korea
Prior art keywords
time
authentication
random number
client
server
Prior art date
Application number
KR1020047020653A
Other languages
Korean (ko)
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 가부시키가이샤 세큐어드 커뮤니케이션즈
Publication of KR20050117478A publication Critical patent/KR20050117478A/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

An inter-authentication method capable of safely and easily performing inter-authentication. In the inter- authentication process, a private key K0 of the initial value is stored in a client and a server (Pc0, Ps0). The client generates a random number R, calculates password data C and authentication data A, and transmits the result to the server (Pc1). The server receives the authentication data A and the password data C from the client, generates a random number R, calculates and returns password data S and authentication data Q, and updates the private key K0 to a new private key K1 (Ps1). The client receives the authentication data B and the password data S from the server, generates a random number R, calculates the password data C2 and the authentication data A2, returns the results to the server, and updates the private key K0 to the new private key K1 (Pc2). The client and the server check whether validity is satisfied.

Description

상호 인증 방법 및 장치{INTER-AUTHENTICATION METHOD AND DEVICE}Mutual authentication method and device {INTER-AUTHENTICATION METHOD AND DEVICE}

본 발명은, 네트워크에 접속된 컴퓨터 시스템등의 장치에 있어서의 상호 인증 방법 및 장치 및 이것에 이용하는 원 타임 ID의 생성 방법, 인증 방법, 인증 시스템, 서버, 클라이언트 및 프로그램 관한 것이다. The present invention relates to a mutual authentication method and apparatus in a device such as a computer system connected to a network, a method of generating a one-time ID, an authentication method, an authentication system, a server, a client, and a program.

특히, 본 발명은, 적어도 제1 인증 장치와 제2 인증 장치와의 사이의 관계에 대한 정당성을 검증하는 상호 인증 방법 및 장치 및 복수의 장치간 또는 어플리케이션간에 있어서의 인증에 이용하는 매우 적합한 원 타임 ID의 생성 방법, 상기 원 타임 ID를 이용한 인증 방법, 인증 시스템, 서버, 클라이언트 및 프로그램에 관한 것이다. In particular, the present invention is a very suitable one-time ID for use in authentication between a mutual authentication method and an apparatus and a plurality of apparatuses or applications that verify validity of a relationship between at least a first authentication apparatus and a second authentication apparatus. The present invention relates to a generation method, an authentication method using the one-time ID, an authentication system, a server, a client, and a program.

네트워크상에 있는 유저가 자신의 신원을 증명하기 위해서는, 인증이 필요하다. 인증이라는 것은 어떠한 프로토콜에 의해, 증명자가 자신의 신원을 검증자에 대해서 증명하는 것으로서, 전자 상거래 등의 분야에 있어서 필수의 기술이다. 예를 들면, 유저가 서버에 대해서, 신원을 증명하고 싶을 때는, 유저가 증명자로, 서버가 검증자로 대응한다. 또, 반대로, 서버가 유저에 대해서 신원을 증명하고 싶은 경우는, 서버가 증명자로, 유저가 검증자로 대응한다. 1대 1의 장치의 사이에서는, 그 입장이 반전되는 경우가 있으므로, 서로 인증하는 상호 인증이 필요하다. In order for a user on the network to prove his or her identity, authentication is required. Authentication means that the prover proves his or her identity to the verifier by some protocol and is an essential technique in the field of electronic commerce and the like. For example, when the user wants to prove his or her identity to the server, the user corresponds to the prover and the server corresponds to the verifier. On the contrary, if the server wants to prove its identity to the user, the server corresponds to the prover and the user corresponds to the verifier. Since the position may be reversed among 1-to-1 devices, mutual authentication which mutually authenticates is required.

상호 인증은, 유저와 서버의 사이로 한정되지 않고, 임의의 컴퓨터간에서의 신원을 증명하는 방법으로 폭넓게 이용되고 있다. 최근에는, 공개키 암호를 이용하는 것이 알려져서, 증명자는 공개키와 비밀키를 소지하고 있고, 증명자가 공개키에 대응하는 비밀키를 소지하는 것을, 어떤 프로토콜에 의해, 검증자에게 나타내는 것으로, 신원을 증명하고 있다. Mutual authentication is not limited between a user and a server, but is widely used as a method of proving identity between arbitrary computers. In recent years, it has been known to use public key cryptography, so that the prover has a public key and a private key, and by some protocol indicates to the verifier that the prover has a secret key corresponding to the public key. Prove it.

그렇지만, 종래의 상호 인증 방법에서는, 인증에 이용하는 키가 단일이기 때문에, 한번 키가 알려져 버리면, 제3자가 유저가 되어서 인증되어지는 경우가 있다. 또, 유저는, 키의 보관에 주위를 기울이지 않으면 안되어, 간편하게 이용할 수 없었다. However, in the conventional mutual authentication method, since the key used for authentication is single, once a key is known, a third party may become a user and authenticate. In addition, the user had to pay attention to the storage of the key and could not use it easily.

예를 들면, 인터넷과 같은 비동기형태 네트워크에서는, 복수의 컴퓨터가 동시에 통신 하고 있어, 증명자가 복수의 검증자와 동시에 프로토콜을 실행하는 경우가 있다. WWW(World Wide Web: 월드와이드웹)에서는, HTTP(Hypertext Transfer Protocol:WWW 서버와 WWW 브라우저나 Web 브라우저등이, 파일등의 정보 수수에 사용하는 프로토콜)의 서버와 접속처인 클라이언트와의 사이에서는, 다수의 인증이 요구된다. For example, in an asynchronous network such as the Internet, a plurality of computers may communicate at the same time, and the prover may simultaneously execute a protocol with a plurality of verifiers. In WWW (World Wide Web), between server of HTTP (Hypertext Transfer Protocol: protocol that WWW server and WWW browser or Web browser use to receive information such as file) and client Multiple authentications are required.

또한, 상기와 같은 상호 인증 기술에 있어서, 종래부터, 네트워크를 개입시켜 컴퓨터간(예를 들면, 클라이언트·서버간)에 통신을 할 때에는, 부정한 액세스등을 배제하기 위해서, 서비스등의 제공에 앞서 인증을 한다. 이 인증에 있어서, 제3자가 알 수 있지 않은 소정의 비밀 정보(예를 들면, ID나 패스워드, 난수, 혹은 그것들 정보를 인수로 하는 함수값 등)를 미리 쌍방이 공유해, 그 비밀 정보에 근거해 각각의 정당성을 서로 검증하는 것이 일반적이다. In the mutual authentication technique described above, conventionally, when communicating between computers (for example, between client and server) through a network, in order to exclude unauthorized access or the like, prior to providing a service or the like. Authenticate In this authentication, both parties share predetermined secret information (for example, an ID, a password, a random number, or a function value that takes such information as an argument) that is not known to a third party, based on the secret information. It is common to verify each legitimacy with each other.

한편, IETF(Internet Engineering Task Force)가 공식으로 발행하는 RFC(Request For Comments)에서는, 인터넷으로 IP패킷의 암호화와 인증을 행하는 보안 프로토콜로서 IPsec(Security Architecture for Internet Protocol)이 규정되어 있다. 이 IPsec에서는, 암호·인증의 파라미터를 동적으로 생성해서 교환하는 IKE(Internet Key Exchang)라고 하는 자동키 교환의 프로토콜이 표준으로 채용되어 있다(예를 들면, 특개 2002-374238호 공보(단락 번호 0002~0009) 참조). On the other hand, RFC (Request For Comments) officially issued by the Internet Engineering Task Force (IETF) defines IPsec (Security Architecture for Internet Protocol) as a security protocol for encrypting and authenticating IP packets over the Internet. In this IPsec, an automatic key exchange protocol called IKE (Internet Key Exchang), which dynamically generates and exchanges encryption and authentication parameters, is adopted as a standard (for example, see Japanese Patent Application Laid-Open No. 2002-374238 (paragraph number 0002). ~ 0009).

그리고, 근래에는, 이 IKE의 방식에 원 타임 ID를 도입해서, 기존 공유키를 이용한 IKE의 방식으로 문제가 되고 있던, ID정보 보호, DoS(Denial of Service attack) 공격 방지, 원격 접근 등을 실현한 P-SIGMA로 불리는 키 교환·인증 방식이 제안되어 있다. In recent years, one-time IDs have been introduced into the IKE scheme, thereby realizing ID information protection, denial of service attack (DoS) attack prevention, and remote access, which have been problematic with the IKE scheme using the existing shared key. A key exchange and authentication method called P-SIGMA has been proposed.

이 P-SIGMA에서는, 예를 들면, 도 1에 나타내는 것 같은 순서로 키 교환 및 인증을 하고 있다. In this P-SIGMA, for example, key exchange and authentication are performed in the order shown in FIG.

먼저, 클라이언트가, SA(Security Association)의 제안, 난수 Rc, DH(Diffie-Hellman) 공개값 gx, OID(원 타임 ID)를 서버에 대해서 송신한다. 또한, SA의 제안에는, 암호 알고리즘이나 인증 방식, 키 교환에 사용하는 파라미터등에 관한 제안이 포함되어 있다.First, the client transmits a SA (Security Association) proposal, a random number Rc, a Diffie-Hellman (DH) disclosure value g x , and an OID (one-time ID) to the server. In addition, the SA proposal includes proposals regarding cryptographic algorithms, authentication methods, parameters used for key exchange, and the like.

다음에, 서버가 수신한 OID로부터 클라이언트를 식별해, 식별할 수 없는 경우에는 통신을 거부한다. 식별할 수 있는 경우에는, 수락한 SA, 난수 Rs, DH 공개값 gy , HASHs, 세션키 e로 암호화한 IDs(서버 ID)를 클라이언트에 송신한다. 또한, 세션키 e는 기존 공유키, 난수 Rs, 난수 Rc 및 DH 공통키 gxy를 인수로 하는 키 첨부 해쉬 함수의 함수값이고, HASHs는 기존 공유키, 난수 Rs, 난수 Rc, DH 공개값 gx , gy 및 IDs를 인수로 하는 유사 난수 함수의 함수값이다.Next, the server identifies the client from the received OID and rejects the communication if it cannot identify it. If it can be identified, IDs (server IDs) encrypted with the accepted SA, random number Rs, DH public value g y , HASHs, and session key e are transmitted to the client. In addition, session key e is a function value of a keyed hash function that takes an existing shared key, a random number Rs, a random number Rc, and a DH common key g xy , and HASHs is an existing shared key, random number Rs, random number Rs, and DH public value g. Function value of pseudorandom function taking x , g y, and IDs as arguments.

그 다음에, 클라이언트가 수신한 HASHs를 검증해서, 이 HASHs에 근거해 서버의 정당성을 확인한다. HASHs가 올바르면, HASHc, 세션키 e로 암호화한 IDc(클라이언트 ID)를 서버에 송신한다. 여기서, HASHc는 기존 공유키, 난수 Rs, 난수 Rc, DH 공개값 gx , gy 및 IDc를 인수로 하는 유사 난수 함수의 함수값이다.The client then verifies the HASHs received by the client and verifies the legitimacy of the server based on these HASHs. If the HASHs are correct, the IDC (client ID) encrypted by the HASHc and the session key e is transmitted to the server. Here, HASHc is a function value of a pseudorandom function that takes as arguments the existing shared key, random number Rs, random number Rc, DH public values g x , g y, and IDc.

그 다음에, 서버가 수신한 HASHc를 검증해, 이 HASHc에 근거해 클라이언트의 정당성을 확인한다. HASHc가 올바르면, 해당 프로토콜을 종료한다. The server then validates the received HASHc and verifies the legitimacy of the client based on this HASHc. If the HASHc is correct, terminate the protocol.

이 P-SIGMA에서, OID(원 타임 ID)는, 다음과 같이 정의 되어 있다. In this P-SIGMA, the OID (One Time ID) is defined as follows.

OID1 =prf(K, 1)OID1 = prf (K, 1)

OID2 =prf(K, 2)OID2 = prf (K, 2)

          …

OIDn =prf(K, n)OIDn = prf (K, n)

·····(식 1)(Equation 1)

이 정의식에서, OIDn 는 n번째의 SA확립시에 이용되는 원 타임 ID, prf는 유사 난수 함수, K는 기존 공유키, 또는 기존 공유키로부터 생성된 값이다. In this definition, OIDn is the one-time ID used in establishing the nth SA, prf is a pseudorandom function, K is a value generated from an existing shared key, or an existing shared key.

이 때문에, 상기 P-SIGMA에 의하면, OID를 도입한 것에 의해, 제3자가 송신자·수신자를 특정할 수 없게 되는 한편, 정당한 송신자·수신자이면 OID를 식별 정보로서 파악 할 수 있다고 하는 효과를 얻을 수 있는 것과 동시에, 클라이언트·서버간에 통신을 할 때(즉, SA의 생성 또는 갱신마다)에 OID가 변경되기 때문에, 제3자가 다음번의 OID를 예측할 수가 없다고 하는 효과를 얻을 수 있다. For this reason, according to the P-SIGMA, the introduction of the OID prevents the third party from specifying the sender and the receiver, and provides an effect that the OID can be identified as the identification information if the sender and the receiver are legitimate. At the same time, since the OID is changed when communicating between the client and the server (i.e., every time the SA is generated or updated), it is possible to obtain the effect that a third party cannot predict the next OID.

그렇지만, 상기 P-SIGMA에서, 기존 공유키가 한번 알려져 버리면, 모든 OID가 예측되어 버려, 그 결과, OID의 장래에 미치는 안전성(즉, PFS: Perfect Forward Security)을 보증할 수 없게 된다고 하는 문제점이 있었다. However, in the P-SIGMA, if the existing shared key is known once, all OIDs are predicted, and as a result, there is a problem that the security (ie, PFS: Perfect Forward Security) that cannot affect the future of the OID is not guaranteed. there was.

이상, 구체적인 예로서 P-SIGMA로 불리는 키 교환·인증 방식에 대해서 말해 왔지만, 일반적으로, 원 타임 ID를 이용해 복수의 장치간 또는 어플리케이션간에 있어서의 인증을 하는 인증 방식에서는, 특정의 비밀 정보에 근거해 모든 원 타임 ID의 생성을 하고 있어, 상기 같은 문제점을 가지고 있다. As mentioned above, although the key exchange / authentication method called P-SIGMA was mentioned as a concrete example, in the authentication method which authenticates between a some apparatus or an application using a one-time ID generally, based on specific secret information, All one-time IDs are generated and have the same problem as above.

본 발명은, 상기 종래 기술에서 여러 가지의 불편한 사실을 고려하여, 그 제1의 목적은 안전하고 간편하게 상호 인증할 수가 있는 상호 인증 방법 및 장치를 얻는 것이다. SUMMARY OF THE INVENTION The present invention has been made in view of various inconvenient facts in the prior art, and its first object is to obtain a mutual authentication method and apparatus capable of securely and simply mutually authenticating.

본 발명의 제2의 목적은 도청이 곤란하고 안전성이 뛰어난 원 타임 ID의 생성 방법, 상기 원 타임 ID를 이용한 인증 방법, 인증 시스템, 서버, 클라이언트 및 프로그램을 제공하는 것이다. A second object of the present invention is to provide a method for generating a one-time ID, which is difficult to eavesdropping and excellent in security, an authentication method using the one-time ID, an authentication system, a server, a client, and a program.

도면의 간단한 설명Brief description of the drawings

도 1은, P-SIGMA로 불리는 종래의 인증 방법을 설명하는 도면이다. 1 is a diagram for explaining a conventional authentication method called P-SIGMA.

도 2는, 본 발명의 실시의 형태와 관련되는 클라이언트·컴퓨터와 서버·컴퓨터와의 개략 구성을 나타내는 블럭도이다. 2 is a block diagram showing a schematic configuration of a client computer and a server computer according to an embodiment of the present invention.

도 3은, 본 발명의 실시의 형태와 관련되는 상호 인증에 있어서의 개념 프로세스를 나타내는 플로차트이다. 3 is a flowchart showing a conceptual process in mutual authentication according to the embodiment of the present invention.

도 4는, 본 발명의 실시의 형태와 관련되는 상호 인증에 있어서의 상세 프로세스를 나타내는 이미지도이다. 4 is an image diagram showing a detailed process in mutual authentication according to the embodiment of the present invention.

도 5는, 본 발명과 관련되는 인증 시스템의 하나의 실시 형태를 나타내는 개략 구성도이다. 5 is a schematic configuration diagram showing one embodiment of an authentication system according to the present invention.

도 6은, 도 1의 서버의 개략 구성을 나타내는 블럭도이다. 6 is a block diagram showing the schematic configuration of the server of FIG.

도 7은, 도 1의 클라이언트의 개략 구성을 나타내는 블럭도이다. FIG. 7 is a block diagram showing a schematic configuration of the client of FIG. 1.

도 8은, 본 발명과 관련되는 인증 방법의 제1의 실시 형태를 설명하는 도면이다. 8 is a view for explaining a first embodiment of the authentication method according to the present invention.

도 9는, 본 발명과 관련되는 인증 방법의 제2의 실시 형태를 설명하는 도면이다. 9 is a view for explaining a second embodiment of the authentication method according to the present invention.

도 10은, 본 발명과 관련되는 인증 방법의 제3의 실시 형태를 설명하는 도면이다. FIG. 10 is a diagram for explaining a third embodiment of the authentication method according to the present invention. FIG.

도 11은, 본 발명과 관련되는 인증 방법의 제4의 실시 형태를 설명하는 도면이다. It is a figure explaining 4th embodiment of the authentication method which concerns on this invention.

도 12는, 본 발명과 관련되는 인증 방법의 제5의 실시 형태를 설명하는 도면이다. 12 is a view for explaining a fifth embodiment of the authentication method according to the present invention.

도 13은, 본 발명과 관련되는 인증 방법의 제6의 실시 형태를 설명하는 도면이다. It is a figure explaining 6th Embodiment of the authentication method which concerns on this invention.

도 14는, OSPA로 불리는 종래의 인증 방법을 설명하는 도면이다. 14 is a diagram for explaining a conventional authentication method called OSPA.

도 15는, 본 발명과 관련되는 인증 방법의 제7의 실시 형태를 설명하는 도면이다. 15 is a diagram for explaining a seventh embodiment of the authentication method according to the present invention.

도 16은, 도 15의 변형예를 설명하는 도면이다. FIG. 16 is a diagram illustrating a modification of FIG. 15.

발명을 실시하기 위한 최선의 형태Best Mode for Carrying Out the Invention

발명의 개시Disclosure of the Invention

상기 목적을 달성하기 위해서 본 발명은, 통신회선을 개입시켜 접속된 제1 인증 장치와 제2 인증 장치의 상호 관계를 인증하는 상호 인증 방법에 있어서, 상기 제1 인증 장치를 특정하기 위한 기억 데이터와, 제2 인증 장치를 특정하기 위한 기억 데이터를, 상기 제1 인증 장치 및 제2 인증 장치의 사이에 미리 상호간에 만들어진 인증에 의해 인증마다 전회의 인증에 의한 기억 데이터를 이용해 갱신한 갱신 결과를 이력 데이터로 해서, 상기 제1 인증 장치 및 제2 인증 장치의 각각에 공통적으로 기억하는 기억 공정을 포함한 것이다. 상기 제1 인증 장치는, 기억되어 있는 이력 데이터를 이용해 기억 데이터를 신규로 생성하면서, 생성한 신규의 기억 데이터를 상기 이력 데이터를 이용해 암호화해서 제2 인증 장치에 송신하는 제1 송신 공정과, 상기 제2 인증 장치로부터의 기억 데이터 및 상기 송신한 신규의 기억 데이터에 의해 상기 이력 데이터를 갱신하는 제1 갱신 공정을 포함하고, 또한, 상기 제2 인증 장치는, 상기 제1 인증 장치로부터의 기억 데이터 및 기억되어 있는 이력 데이터를 이용해 신규로 기억 데이터를 생성하면서, 생성한 신규의 기억 데이터를 상기 이력 데이터를 이용해 암호화해 제1 인증 장치에 송신하는 제2 송신 공정과, 상기 제1 인증 장치로부터의 기억 데이터 및 상기 송신한 신규의 기억 데이터에 의해 상기 이력 데이터를 갱신하는 제2 갱신 공정을 포함하고, 그리고, 상기 제1 인증 장치 및 제2 인증 장치의 적어도 한편의 장치에 있어서, 이력 데이터에 근거해 기억 데이터의 정당성이 성립했을 때에, 제1 인증 장치와 제2 인증 장치의 상호 관계가 정당하다라고 검증한다.In order to achieve the above object, the present invention provides a mutual authentication method for authenticating a mutual relationship between a first authentication device and a second authentication device connected through a communication line. The storage data for specifying the first authentication device and the storage data for specifying the second authentication device are described above. The first authentication device and the second authentication device, based on the update result updated by using the stored data of the previous authentication for each authentication by the authentication made beforehand between the first authentication device and the second authentication device, as the history data. It includes the memory process to memorize in common with each of them. The first authentication device newly generates stored data using the stored history data, The history data is stored by a first transmission step of encrypting the generated new storage data using the history data and transmitting the encrypted data to the second authentication device, the storage data from the second authentication device, and the transmitted new storage data. And a new update data generated while the second authentication device generates new data by using the stored data and the stored history data from the first authentication device. Transmission step of encrypting the data using the history data and transmitting the encrypted data to the first authentication device, and second update step of updating the history data by the stored data from the first authentication device and the new data stored therein. And at least one of the first authentication device and the second authentication device, comprising: Year when the validity of the stored data is satisfied, verifies that the first mutual authentication between the device and the second authentication device is just.

본 발명은 또한, 상기 상호 인증 방법을 실시하기 위한 상호 인증 장치를 실현하는 것이다. 이 상호 인증 장치는 통신회선을 개입시켜 접속된 제1 인증 장치와 제2 인증 장치로 구성되어, 상기 제1 인증 장치와 제2 인증 장치와의 사이의 상호 관계를 인증하는 것에 있어서, 상기 제1 인증 장치에 설치되고 해당 제1 인증 장치를 특정하기 위한 기억 데이터를 격납하는 제1의 메모리와, 상기 제2 인증 장치에 설치되고 해당 제2 인증 장치를 특정하기 위한 기억 데이터를 격납하는 제2의 메모리와, 상기 제1 인증 장치 및 제2 인증 장치의 사이에 미리 서로 만들어진 인증에 의해 인증마다 전회의 인증에 의한 기억 데이터를 격납하는 인증 데이터 기억 수단과, 상기 인증 데이터를 이용해 갱신한 갱신 결과를 이력 데이터로서 상기 제1 인증 장치 및 제2 인증 장치의 각각에 공통에 기억하는 이력 데이터 기억 수단과, 상기 제1 인증 장치 또는 제2 인증 장치 중, 인증용 데이터 송신측의 인증 장치에 설치되어 상기 이력 데이터를 이용해 기억 데이터를 신규로 생성하는 기억 데이터 생성 수단과, 생성한 신규의 기억 데이터를 상기 이력 데이터를 이용해 암호화해서 인증용 데이터 수신측의 인증 장치에 송신하는 제1의 송신 수단과, 인증용 데이터 수신측의 인증 장치에 설치되어 상기 인증용 데이터 송신측의 인증 장치로부터의 기억 데이터 및 기억되어 있는 이력 데이터를 이용해 신규로 기억 데이터를 생성하는 기억 데이터 생성 수단과, 생성한 신규의 기억 데이터를 상기 이력 데이터를 이용해 암호화해 상기 인증용 데이터 송신측의 인증 장치에 답신하는 제2의 송신 수단과, 인증용 데이터 송신측의 인증 장치에 설치되어 상기 인증용 데이터 수신측의 인증 장치로부터 답신된 기억 데이터 및 상기 송신한 신규의 기억 데이터에 의해 상기 이력 데이터를 갱신하는 제1의 갱신 수단과, 인증용 데이터 수신측의 인증 장치에 설치되어, 상기 인증용 데이터 송신측의 인증 장치로부터의 기억 데이터 및 상기 답신한 신규의 기억 데이터에 의해 상기 이력 데이터를 갱신하는 제2의 갱신 수단을 포함하고, 상기 제1 인증 장치 및 제2 인증 장치의 적어도 한편의 장치에서, 상기 이력 데이터에 근거해 기억 데이터의 정당성이 성립했을 때에, 제1 인증 장치와 제2 인증 장치의 상호 관계가 정당하다라고 검증하는 검증 수단을 갖추고 있다. The present invention also implements a mutual authentication device for performing the mutual authentication method. The mutual authentication device is constituted by a first authentication device and a second authentication device connected through a communication line, and the first authentication device and the second authentication device are used for authenticating a mutual relationship between the first authentication device and the second authentication device. A first memory installed in the authentication device and storing memory data for specifying the first authentication device; and a second memory installed in the second authentication device and storing data for specifying the second authentication device. Authentication data storage means for storing stored data of the previous authentication for each authentication by authentication made in advance between the memory and the first authentication device and the second authentication device, and an update result updated using the authentication data. History data storage means stored in common to each of the first authentication device and the second authentication device as history data, and the first authentication device or the second authentication device. Among them, the storage data generating means, which is installed in the authentication apparatus on the authentication data transmission side and newly creates the storage data using the history data, and the generated new storage data is encrypted using the history data to authenticate the data reception side. The first transmission means for transmitting to the authentication device of the authentication device and the storage device from the authentication device on the authentication data transmission side and the stored data from the authentication device on the authentication data reception side, and newly stored data. Storage data generating means to be generated, second transmission means for encrypting the generated new stored data using the history data and replying to the authentication device on the authentication data transmission side, and the authentication device on the authentication data transmission side. Memory data and the transmission provided by the authentication apparatus on the authentication data receiving side First update means for updating the history data by the new stored data, and on the authentication apparatus on the authentication data receiving side, the stored data from the authentication apparatus on the authentication data transmission side, and the newly answered data. And second updating means for updating the history data by the stored data, wherein at least one device of the first authentication device and the second authentication device establishes the validity of the storage data based on the history data. At this time, verification means for verifying that the mutual relationship between the first authentication device and the second authentication device is justified is provided.

이와 같은 상호 인증 장치는, 생성한 신규의 기억 데이터를 상기 이력 데이터를 이용해 암호화하기 위한 인증용 데이터를 연산하는 연산 수단을 가질 수가 있다. 또한, 이 상호 인증 장치는, 상기 연산 수단에 의해 인증용 데이터를 생성할 때에, 암호화용의 데이터를 생성하는 난수 생성수단을 가지는 것도 가능하다.Like this The mutual authentication device may have arithmetic means for calculating the authentication data for encrypting the generated new stored data using the history data. Moreover, this mutual authentication apparatus can also have the random number generation means which produces | generates the data for encryption, when generating the authentication data by the said calculation means.

또, 본 발명에서는, 제1 인증 장치를 특정하기 위한 기억 데이터와 제2 인증 장치를 특정하기 위한 기억 데이터를, 이력 데이터로서 상기 제1 인증 장치 및 제2 인증 장치의 각각에 공통으로 기억된다. 이 이력 데이터는, 제1 인증 장치 및 제2 인증 장치의 사이에 미리 서로 만들어진 인증에 의한 인증마다 전회의 인증에 의한 기억 데이터를 이용해 갱신한 갱신 결과이다. 제1 인증 장치는, 기억되어 있는 이력 데이터를 이용해 신규의 기억 데이터를 생성하면서 신규의 기억 데이터를 기억하고 있는 이력 데이터를 이용해 암호화해서 제2 인증 장치에 송신한다. 이것을 제2 인증 장치가 받아, 제2 인증 장치는 제1 인증 장치로부터의 기억 데이터 및 기억되어 있는 이력 데이터를 이용해 신규의 기억 데이터를 생성하면서 신규의 기억 데이터를 기억하고 있는 이력 데이터를 이용해 암호화해서 제1 인증 장치에 송신한다. 이 때, 제1 인증 장치는 제2 인증 장치로부터의 기억 데이터 및 송신한 신규의 기억 데이터에 의해 이력 데이터를 갱신한다. 또, 제2 인증 장치는 제1 인증 장치로부터의 기억 데이터 및 송신한 신규의 기억 데이터에 의해 이력 데이터를 갱신한다. 이 송신 공정 후에는, 제1 인증 장치 및 제2 인증 장치의 적어도 한편의 장치에서, 이력데이터에 근거해 기억 데이터의 정당성이 성립했을 때에, 제1 인증 장치와 제2 인증 장치의 상호 관계가 정당하다라고 검증한다. 즉, 제1 인증 장치 및 제2 인증 장치의 한편의 인증 장치에서는, 한편의 인증 장치로부터의 이력을 포함한 데이터를 받아, 기억되어 있는 이력 데이터와 조합하는 것이 가능해진다. 그리고 송신 할 경우에는, 기억되어 있는 이력 데이터로부터 신규로 다른 이력 데이터에 근거하는 데이터를 송신하므로, 동일 데이터에 의한 수수는 없다. 이 때문에, 비닉성을 향상 시키는 것도 할 수 있다.In the present invention, the storage data for specifying the first authentication device and the storage data for specifying the second authentication device are commonly stored in the first authentication device and the second authentication device as the history data, respectively. This history data is the update result updated using the memory data by the last authentication for every authentication by authentication made previously mutually between the 1st authentication apparatus and the 2nd authentication apparatus. The first authentication device encrypts and transmits the new storage data to the second authentication device using the history data storing the new storage data while generating the new storage data using the stored history data. The second authentication device receives this, and the second authentication device generates new storage data using the stored data from the first authentication device and the stored history data. The new stored data is encrypted using history data stored therein and transmitted to the first authentication device. At this time, the first authentication device updates the history data with the stored data from the second authentication device and the new data transmitted. In addition, the second authentication device updates the history data with the storage data from the first authentication device and the new storage data transmitted. After this transmission step, when the validity of the stored data is established in at least one of the first authentication device and the second authentication device based on the history data, the mutual relationship between the first authentication device and the second authentication device is justified. Verify that That is, in one authentication device of the first authentication device and the second authentication device, it is possible to receive data including the history from the other authentication device and combine it with the stored history data. In the case of transmission, data based on newly different history data is transmitted from the stored history data, so that the same data cannot be transmitted. Because of this, Improving the secretiveness can also be done.

보다 상세적으로, 상기 이력 데이터를 이력 데이터 K로 해서, 이 이력 데이터 K로 해서 기억하는 상기 제1 인증 장치를 특정하기 위한 기억 데이터는, 암증 데이터 C 및 인증 데이터 R이고, 상기 제2 인증 장치를 특정하기 위한 기억 데이터는, 암증 데이터 S 및 인증 데이터 Q인 것을 특징으로 한다. More specifically, the storage data for specifying the first authentication device which stores the history data as the history data K and stores the history data as K is the encryption data C and the authentication data R, and the second authentication device. The storage data for specifying the data is characterized by the dark data S and the authentication data Q.

상기 제1 송신 공정은, 기억되어 있는 이력 데이터 K의 암증 데이터 S 및 인증 데이터 R를 이용해 암증 데이터 C를 신규로 생성하면서, 기억되어 있는 이력 데이터 K의 인증 데이터 R에 대해서 신규로 생성해, 생성한 신규의 인증 데이터 R를 상기 이력 데이터 K를 이용해 암호화해서 인증 데이터 A를 구해서, 상기 인증 데이터 A 및 신규의 암증 데이터 C를 제2 인증 장치에 송신해서, 상기 제1 갱신 공정은, 상기 제2 인증 장치로부터의 데이터를 수신해, 상기 송신한 신규의 암증 데이터 C, 수신한 신규로 생성된 암증 데이터 S, 수신한 신규로 생성된 인증 데이터 Q 및 상기 송신한 신규의 인증 데이터 R에 의해, 상기 이력 데이터 K를 갱신하고, 상기 제2 송신 공정은 상기 제1 인증 장치로부터의 데이터를 수신해, 수신한 신규의 암증 데이터 C 및 기억되어 있는 이력 데이터 K의 인증 데이터 Q를 이용해 암증 데이터 S를 신규로 생성하면서, 기억되어 있는 이력 데이터 K의 인증 데이터 Q에 대해서 신규로 생성해서, 생성한 신규의 인증 데이터 Q를 기억한 이력 데이터 K를 이용해서 암호화해 인증 데이터 B를 구해서, 상기 인증 데이터 B 및 신규의 암증 데이터 S를 제1 인증 장치에 송신하고, 상기 제2 갱신 공정은, 수신한 신규의 암증 데이터 C, 신규로 생성한 암증 데이터 S, 신규로 생성한 인증 데이터 Q 및 수신한 신규의 인증 데이터 R에 의해, 상기 이력 데이터 K를 갱신해, 상기 제1 인증 장치 및 제2 인증 장치의 적어도 한편의 장치에서, 이력 데이터 K에 근거해 암증 데이터의 정당성이 성립했을 때에, 제1 인증 장치와 제2 인증 장치의 상호 관계가 정당하다라고 검증하는 것을 특징으로 한다. The first transmission step newly generates and encrypts the authentication data R of the stored history data K while generating the encryption data C using the encryption data S and the authentication data R of the stored history data K. The new authentication data R is encrypted using the history data K to obtain the authentication data A, and the authentication data A and the new authentication data C are transmitted to the second authentication device. Receiving the data from the authentication apparatus, the new encryption data C transmitted, the newly generated encryption data S received, the newly generated authentication data Q received, and the new authentication data R transmitted, The history data K is updated, and the second transmission step receives the data from the first authentication device, receives the new encryption data C and the stored data. While newly generating the encryption data S using the authentication data Q of the data K, using the history data K which newly generated the authentication data Q of the stored history data K, and memorize | stored the new authentication data Q which was produced | generated, Encrypting and obtaining authentication data B, and transmitting the authentication data B and the new encryption data S to the first authentication device, wherein the second update step includes the received new encryption data C, newly generated encryption data S, The history data K is updated by the newly generated authentication data Q and the received new authentication data R, and at least one device of the first authentication device and the second authentication device performs encryption based on the history data K. When the validity of the data is established, it is verified that the mutual relationship between the first authentication device and the second authentication device is justified.

상기 기억 공정은, 상기 제1 송신 공정, 제1 갱신 공정, 제2 송신 공정 및 제2 갱신 공정에 있어서의 인증에 의한 갱신 결과를 이력 데이터로서 기억하는 것을 특징으로 한다. The said storing process stores the update result by authentication in the said 1st transmission process, a 1st update process, a 2nd transmission process, and a 2nd update process as history data, It is characterized by the above-mentioned.

상기 인증 데이터 R 및 인증 데이터 Q의 적어도 한편은, 난수 생성수단에 의해 발생된 난수, 데이터 용량, 시간 데이터의 적어도 하나인 것을 특징으로 한다. At least one of the authentication data R and the authentication data Q is at least one of a random number, data capacity and time data generated by the random number generating means.

상기 제1 인증 장치의 제1 송신 공정에서는, 상기 암증 데이터 S 및 인증 데이터 R에 의해 미리 정해진 함수의 연산 결과의 값을 암증 데이터 C로서 생성하고, 상기 제2 인증 장치의 제2 송신 공정에서는, 상기 암증 데이터 C 및 상기 인증 데이터 Q에 의해 미리 정해진 함수의 연산 결과의 값을 암증 데이터 S로서 생성하는 것을 특징으로 한다. In the first transmission step of the first authentication device, a value of a calculation result of a function determined by the encryption data S and the authentication data R is generated as the encryption data C, and in the second transmission step of the second authentication device, The value of the operation result of the function predetermined by the encryption data C and the authentication data Q is generated as the encryption data S. It is characterized by the above-mentioned.

상기 제1 인증 장치의 제1 송신 공정에서는, 상기 생성한 신규의 인증 데이터 R 및 상기 이력 데이터 K에 의해 미리 정해진 함수의 연산 결과의 값을 인증 데이터 A로서 구해서, 상기 제2 인증 장치의 제2 송신 공정에서는, 상기 생성한 신규의 인증 데이터 Q 및 상기 이력 데이터 K에 의해 미리 정해진 함수의 연산 결과의 값을 인증 데이터 B로서 구하는 것을 특징으로 한다. In the first transmission step of the first authentication device, a value of a calculation result of a function predetermined by the generated new authentication data R and the history data K is obtained as the authentication data A, and the second of the second authentication device is obtained. In the transmission process, the value of the calculation result of a function predetermined by the new authentication data Q and the said history data K which were produced is calculated | required as authentication data B, It is characterized by the above-mentioned.

상기 제1 인증 장치의 검증 공정은, 상기 이력 데이터 K 중 기억되어 있는 인증 데이터 Q 및 전회 송신하기 전에 생성한 암증 데이터 C에 의해 미리 정해진 함수의 연산 결과의 값이 수신한 암증 데이터 S와 일치 할 경우에 상기 상호 관계가 정당하다라고 검증하는 것을 특징으로 한다.The verification step of the first authentication device includes authentication data Q stored in the history data K, and It is characterized by verifying that the correlation is justified when the value of the operation result of the predetermined function is matched with the received dark data S by the dark data C generated before the previous transmission.

상기 제2 인증 장치의 검증 공정은, 상기 이력 데이터 K 중 기억되어 있는 암증 데이터 S 및 인증 데이터 R에 의해 미리 정해진 함수의 연산 결과의 값이, 수신한 암증 데이터 C와 일치 할 경우에 상기 상호 관계가 정당하다라고 검증하는 것을 특징으로 한다. The verification process of the second authentication device is performed when the value of the calculation result of the function determined by the encryption data S and the authentication data R stored in the history data K coincides with the received encryption data C. It is characterized by verifying that is justified.

상기 기억 공정은, 상기 제1 송신 공정, 제2 송신 공정, 제1 갱신 공정 및 제2 갱신 공정을 복수로 실시한 결과, 얻을 수 있는 데이터를 이력 데이터 K로서 기억하는 것을 특징으로 한다. The storage step is characterized in that the data obtained as a result of performing a plurality of the first transmission step, the second transmission step, the first update step, and the second update step as a history data K are stored.

이상의 설명으로부터 분명한 것은, 본 발명에 의하면, 제1 인증 장치 및 제2 인증장치의 사이에 상호 인증 할 경우에, 제1 인증 장치 및 제2 인증 장치의 각각에 공통으로 이력 데이터를 기억함과 동시에, 이력 데이터를 갱신하므로, 안전하고 간편하게 상호 인증할 수가 있어 예를 들면, 클라이언트·컴퓨터와 서버·컴퓨터와의 사이에 수수 되는 정보로부터, 클라이언트·컴퓨터의 키가 누설 되는 것이 없고, 확실히 인증을 할 수 있다고 하는 효과가 있다. Obviously, according to the present invention, when mutually authenticating between the first authentication device and the second authentication device, the history data is stored in common to each of the first authentication device and the second authentication device, By updating the history data, it is possible to securely and easily mutually authenticate each other. For example, the information of the client computer and the server computer cannot be leaked from the information received between the client computer and the server computer. It is said to have an effect.

본 발명은 또, 상기 상호 인증 방법 및 장치에 있어서 사용되는 원 타임 ID의 생성 방법을 제공한다. 이것은, 복수의 장치간 또는 어플리케이션간에서의 인증에서 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 해당 원 타임 ID를 생성하는 방법에 있어서, 상기 인증을 하는 장치 또는 어플리케이션의 각각에서, 상기 인증이 필요한 소정의 통신 단위마다 변화하는 가변 공유키를 생성함과 함께, 이 가변 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성하도록 한 것을 특징으로 하는 것이다. The present invention also provides a method for generating a one-time ID used in the mutual authentication method and apparatus. This is a method for generating the one-time ID using identification information that can be used only once in authentication between a plurality of devices or applications, as the one-time ID. In addition to generating a variable shared key for each predetermined communication unit required, a function value of a one-way function that takes the variable shared key as an argument is obtained, and the one-time ID is generated from this function value. .

여기서, 일방향 함수라는 것은, 인수로부터 결과(함수값)를 구하는 것은 간단하지만, 결과로부터 인수를 구하는 것은 어려운 함수임을 일컫고, 이 일방향 함수로는, 예를 들면, 해쉬 함수, 유사 난수 함수 등이 포함된다. Here, the one-way function means that it is simple to obtain the result (function value) from the argument, but it is difficult to obtain the argument from the result, and the one-way function includes, for example, a hash function and a pseudorandom function. do.

소정의 통신 단위로서는, 예를 들면, IPsec에서 SA가 확립되고 나서 해당 SA가 무효가 될 때까지의 사이에 클라이언트·서버간에 행해지는 일련의 통신을, 소정의 통신 단위로서 설정하는 것도 가능하고, 장치간 또는 어플리케이션간에 행해지는 1회의 데이터 송수신을 소정의 통신 단위로서 설정하는 것도 가능하다. As the predetermined communication unit, for example, a series of communication between the client and the server between the establishment of the SA in IPsec and the invalidation of the SA can be set as the predetermined communication unit, It is also possible to set one data transmission / reception performed between devices or applications as a predetermined communication unit.

가변 공유키는, 상기 소정의 통신 단위마다 변화하고, 인증을 하는 장치간 또는 어플리케이션간에 공유되는, 제3자가 알 수 없는 비밀 정보이면, 어떤 키로 하더라도 좋다. The variable shared key may be any key as long as it is secret information unknown to a third party that is changed for each of the predetermined communication units and is shared between devices for authentication or between applications.

인증이라는 것은, 한편의 장치(또는 한편의 어플리케이션)가 다른 한편의 장치(또는 다른 한편의 어플리케이션)에 액세스 할 때에, 다른 한편의 장치가 한편의 장치의 정당성을 확인하는 것을 말하고, 식별 정보라는 것은, 상기 인증에서 적어도 한편의 장치로부터 다른 한편의 장치에 송신되는 해당 다른 한편의 장치가 한편의 장치를 식별하는데 이용하는 정보(ID)을 말한다. Authentication means that when one device (or application) accesses the other device (or application), the other device confirms the validity of the other device. , In the authentication, information (ID) used by the corresponding other device transmitted from at least one device to the other device to identify the other device.

또한, 상기 인증에는, 한편의 장치가 다른 한편의 장치의 인증을 하는 일방향 인증과, 쌍방의 장치에서 서로 인증을 하는 상호 인증 등이 포함된다. 예를 들면, 상기 인증에서 원 타임 ID를 사용하는 방법으로서는, 쌍방의 장치로 원 타임 ID를 생성함과 함께, 한편의 장치가 다른 한편의 장치에 원 타임 ID를 송신해, 다른 한편의 장치가, 한편의 장치로부터 수신한 원 타임 ID와 스스로가 생성한 원 타임 ID와의 비교·조합에 의해, 한편의 장치를 식별 혹은 인증하는 방법을 들 수 있다. The authentication includes one-way authentication in which one device authenticates the other device, mutual authentication in which both devices authenticate each other, and the like. For example, as a method of using the one-time ID in the authentication, both devices generate one-time IDs, one device sends the one-time ID to the other device, and the other device sends the one-time ID. And a method of identifying or authenticating the other device by comparing and combining the one-time ID received from the other device with the one-time ID generated by itself.

본 발명은, 복수의 장치간 또는 어플리케이션간의 있어서의 인증에서 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서, 해당 원 타임 ID를 생성하는 방법에 있어서, 상기 인증을 하는 장치 또는 어플리케이션의 각각에서, 상기 인증이 필요한 소정의 통신 단위마다 변화하는 가변 공유키를 생성함과 함께, 이 가변 공유키와 통신 순서 또는 횟수에 관한 정보를 인수로 하는 일방향 함수의 함수값을 구해서 이 함수값으로부터 상기 원 타임 ID를 생성하도록 한 것을 특징으로 하는 것이다. According to the present invention, in the method of generating the one-time ID using identification information that can be used only once in authentication between a plurality of devices or applications, as the one-time ID, the apparatus or application for the authentication may be used. A variable shared key is generated for each predetermined communication unit for which authentication is required, and a function value of a one-way function having the variable shared key and information on the communication order or number of times is obtained, and the one-time function is obtained from the function value. It is characterized by generating an ID.

본 발명은 또한, 복수의 장치간 또는 어플리케이션간의 있어서의 인증에 있어서 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서, 해당 원 타임 ID를 생성하는 방법에 있어서, 상기 인증을 하는 장치 또는 어플리케이션의 각각에서, 상기 인증이 필요한 소정의 통신 단위내에서 난수를 생성함과 함께, 이 난수와 소정의 공유키를 인수로 하는 일방향 함수의 함수값을 구해서 이 함수값으로부터 상기 원 타임 ID를 생성하도록 한 것을 특징으로 하는 것이다. The present invention also relates to a method for generating the one-time ID using identification information that can be used only once in authentication between a plurality of devices or applications, as the one-time ID. In addition, while generating a random number in a predetermined communication unit requiring the authentication, a function value of a one-way function that takes this random number and a predetermined shared key as an argument is obtained and generates the one-time ID from the function value. It is characterized by.

본 발명은 또한, 한편의 장치와 다른 한편의 장치간의 인증에 있어서, 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서, 해당 원 타임 ID를 쌍방의 장치로 생성함과 함께, 한편의 장치가 다른 한편의 장치에 원 타임 ID를 송신하고, 다른 한편의 장치가, 한편의 장치로부터 수신한 원 타임 ID와 스스로가 생성한 원 타임 ID와의 비교·조합에 의해, 다른 한편의 장치를 식별 혹은 인증하는 경우에 있어, 한편의 장치 및 다른 한편의 장치가 원 타임 ID를 생성하는 방법에 있어서, 한편의 장치 및 다른 한편의 장치는, 상기 인증이 필요한 소정의 통신 단위마다 변화하는 가변 공유키를 생성함과 함께, 이 가변 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성하도록 한 것을 특징으로 하는 것이다. According to the present invention, in the authentication between one device and the other device, the one-time ID is generated by both devices, with the identification information that can be used only once as the one-time ID. Sends a one-time ID to one device, and the other device identifies or authenticates the other device by comparing and combining the one-time ID received from the other device with the one-time ID generated by itself. In a case, in which the one device and the other device generate the one-time ID, the one device and the other device generate a variable shared key that changes for each predetermined communication unit requiring the authentication. In addition, a function value of a one-way function that takes this variable shared key as an argument is obtained, and the one-time ID is generated from this function value.

본 발명은 또한, 한편의 장치와 다른 한편의 장치간의 인증에 있어서 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서, 해당 원 타임 ID를 쌍방의 장치로 생성함과 함께, 한편의 장치가 다른 한편의 장치에 원 타임 ID를 송신하고, 다른 한편의 장치가, 한편의 장치로부터 수신한 원 타임 ID와 스스로가 생성한 원 타임 ID와의 비교·조합에 의해, 다른 한편의 장치를 식별 혹은 인증하는 경우에 있어, 한편의 장치 및 다른 한편의 장치가 원 타임 ID를 생성하는 방법에 있어서, 한편의 장치 및 다른 한편의 장치는, 상기 인증이 필요한 소정의 통신 단위마다 변화하는 가변 공유키를 생성함과 함께, 이 가변 공유키와 통신 순서 또는 횟수에 관한 정보를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성하도록 한 것을 특징으로 하는 것이다. The present invention further provides the one-time ID as the one-time ID for identification information that can be used only once in authentication between one device and the other device, and the one-time device is generated by both devices. Sends a one-time ID to a device, and the other device identifies or authenticates the other device by comparing and combining the one-time ID received from the other device with the one-time ID generated by itself. 1. A method in which one device and another device generate a one-time ID, wherein the one device and the other device generate a variable shared key that varies for each predetermined communication unit that requires authentication. In addition, a function value of a one-way function having the variable shared key and information on the communication order or the number of times as an argument is obtained, and the one-time ID is generated from this function value. Is that.

본 발명은 또한, 한편의 장치와 다른 한편의 장치간의 인증에 있어서 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 해당 원 타임 ID를 쌍방의 장치로 생성함과 함께, 한편의 장치가 다른 한편의 장치에 원 타임 ID를 송신해서, 다른 한편의 장치가, 한편의 장치로부터 수신한 원 타임 ID와 스스로가 생성한 원 타임 ID와의 비교·조합에 의해, 다른 한편의 장치를 식별 혹은 인증하는 경우에 있어, 한편의 장치 및 다른 한편의 장치가 원 타임 ID를 생성하는 방법에 있어서, 한편의 장치 및 다른 한편의 장치는, 상기 인증이 필요한 소정의 통신 단위내에서 난수를 생성함과 함께, 이 난수와 소정의 공유키를 인수로 하는 일방향 함수의 함수값을 구해서 이 함수값으로부터 상기 원 타임 ID를 생성하도록 한 것을 특징으로 하는 것이다. The present invention also provides the one-time ID as the one-time ID as identification information that can be used only once in authentication between one device and the other device, and the one-time device is used as the other device. When a one-time ID is sent to a device and the other device identifies or authenticates the other device by comparing and combining the one-time ID received from the other device with the one-time ID generated by itself. In the method in which one device and the other device generate the one-time ID, the one device and the other device generate this random number while generating a random number in a predetermined communication unit requiring the authentication. And a function value of a one-way function having a predetermined shared key as an argument to generate the one-time ID from the function value.

본 발명은 또한, 통신 단위마다 변화하는 가변 공유키를 생성하는 것과 동시에, 이 가변 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 원 타임 ID를 생성해, 이 원 타임 ID(SIGNALn)를 이용해, 서로 통신을 행하는 제1 장치와 제2 장치간의 인증을 하는 인증 방법에 있어서, 상기 제1 장치가, 상기 제2 장치와의 사이에 미리 공유화된 가변 공유키를 이용해 상기 원 타임 ID를 생성함과 함께, 이 생성한 원 타임 ID와 해당 제1 장치에 미리 설정된 ID를 적어도 인수로 하는 일방향 함수 Fc의 함수값과, 해당 제1 장치에 미리 기억된 Diffie-Hellman 공개값의 한편을 상기 제2 장치에 대해서 송신하는 스텝과, 상기 제2 장치가 상기 원 타임 ID 및 상기 일방향 함수 Fc의 함수값을 연산에 의해 구해서, 이 연산 결과와, 상기 제1 장치로부터 수신한 원 타임 ID 및 일방향 함수 Fc의 함수값과의 조합에 의해, 상기 제1 장치의 정당성을 판정하는 스텝과, 상기 제2 장치가 상기 제1 장치를 정당하다라고 판정한 경우에, 해당 제2 장치에 미리 설정된 ID를 적어도 인수로 하는 일방향 함수 Fs의 함수값과, 해당 제2 장치에 미리 기억된 Diffie-Hellman 공개값의 다른 한편을 상기 제1 장치에 대해서 송신하는 스텝과, 상기 제1 장치가 상기 일방향 함수 Fs의 함수값을 연산에 의해 구해서, 이 연산 결과와, 상기 제2 장치로부터 수신한 일방향 함수 Fs의 함수값과의 조합에 의해, 상기 제2 장치의 정당성을 판정하는 스텝을 가지는 것을 특징으로 하는 것이다. The present invention also generates a variable shared key that varies for each communication unit, obtains a function value of a one-way function that takes this variable shared key as an argument, generates a one-time ID from the function value, and generates this one-time ID. An authentication method for authenticating between a first device and a second device that communicates with each other using (SIGNALn), wherein the first device uses the variable shared key shared in advance with the second device. While generating a time ID, the function value of the one-way function Fc whose at least one generated one-time ID and the ID preset in the first device are taken as arguments, and the Diffie-Hellman public value previously stored in the first device. A step of transmitting one side to the second device, the second device obtaining the one-time ID and the function value of the one-way function Fc by arithmetic operation, and the result of the calculation and the circle received from the first device. The combination of the ID and the function value of the one-way function Fc determines the validity of the first device, and if the second device determines that the first device is valid, Transmitting, to the first device, a function value of the one-way function Fs having at least a predetermined ID as an argument, and the other of the Diffie-Hellman public value previously stored in the second device, to the first device; And calculating a function value of the one-way function Fs by a calculation, and determining the validity of the second device by a combination of the result of this operation and the function value of the one-way function Fs received from the second device. It is to be done.

본 발명은 또한, 상기 인증 방법에 있어서, 상기 일방향 함수 Fc로 해서, 소정의 공유키, 상기 Diffie-Hellman 공개값의 한편, 상기 제1 장치에 미리 설정된 ID, 상기 원 타임 ID를 인수로 하는 유사 난수 함수를 이용하는 것과 동시에, 상기 일방향 함수 Fs로서 상기 소정의 공유키, 상기 Diffie-Hellman 공개값의 한편, 상기 Diffie-Hellman 공개값의 다른 한편, 상기 제2 장치에 미리 설정된 ID, 상기 원 타임 ID를 인수로 하는 유사 난수 함수를 이용하는 것을 특징으로 하는 것이다. The present invention also provides the authentication method, wherein, as the one-way function Fc, a predetermined shared key, a similarity having the Diffie-Hellman public value, an ID preset in the first device, and a one-time ID as arguments. At the same time as using the random number function, the predetermined shared key as the one-way function Fs, the ID preset in the second device, the one of the Diffie-Hellman public value and the other of the Diffie-Hellman public value, the one-time ID. It is characterized by using a pseudo-random function that takes as an argument.

본 발명은 또한, 가변 공유키를 생성하고, 또한 가변 공유키와 통신 순서에 관한 정보를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 원 타임 ID를 생성해서, 이 원 타임 ID를 이용해 제1 장치와 제2 장치간에 있어서의 인증을 하는 인증 방법에서, 상기 제1 장치가 상기 제2 장치와의 사이에 미리 공유화된 제1의 가변 공유키와 해당 제1 장치의 통신 순서에 관한 정보를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID(SIGNALn, j )로 해서 생성함과 함께, 상기 제1의 가변 공유키를 이용해, 해당 제1 장치에 미리 설정된 ID, 상기 제2 장치에 미리 설정된 ID, 해당 제1 장치에 미리 기억된 Diffie-Hellman 공개값의 한편 및 상기 제1의 원 타임 ID를 암호화해서, 이 암호화 데이터와 상기 제1의 원 타임 ID를 상기 제2 장치에 대해서 송신하는 스텝과 상기 제2 장치가, 상기 제1의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와, 상기 제1 장치로부터 수신한 상기 제1의 원 타임 ID와의 조합에 의해, 상기 제1 장치를 식별하는 스텝과, 상기 제2 장치가 상기 제1 장치를 식별할 수 있을 경우에, 상기 제1의 가변 공유키를 이용해 상기 암호화 데이터를 복호해, 이 복호한 데이터에 포함된 상기 제1 장치에 미리 설정된 ID, 해당 제2 장치에 미리 설정된 ID 및 상기 제1의 원 타임 ID에 근거해, 상기 제1 장치의 정당성을 판정하는 스텝과, 상기 제2 장치가 상기 제1 장치를 정당하다라고 판정한 경우에, 상기 제1의 가변 공유키와 해당 제2 장치의 통신 순서에 관한 정보를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임ID(SIGNAL' n, 1)로서 생성함과 함께, 상기 제1 장치로부터 수신한 Diffie-Hellman 공개값의 한편과 해당 제2 장치에 미리 기억된 Diffie-Hellman 공개값의 다른 한편으로부터 Diffie-Hellman 공통키를 제2의 가변 공유키로서 생성해, 이 제2의 가변 공유키, 상기 제1 장치에 미리 설정된 ID, 해당 제2 장치에 미리 설정된 ID 및 상기 제2의 원 타임 ID를 인수로 하는 일방향 함수 h의 함수값과, 상기 Diffie-Hellman 공개값의 다른 한편과, 상기 제2의 원 타임 ID를 상기 제1 장치에 대해서 송신하는 스텝과, 상기 제1 장치가 상기 제2의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와, 상기 제2 장치로부터 수신한 상기 제2의 원 타임 ID와의 조합에 의해, 상기 제2 장치를 식별하는 스텝과, 상기 제1 장치가 상기 제2 장치를 식별할 수 있을 경우에, 상기 제2 장치로부터 수신한 상기 Diffie-Hellman 공개값의 다른 한편과 해당 제1 장치에 미리 기억된 상기 Diffie-Hellman 공개값의 한편으로부터 Diffie-Hellman 공통키를 상기 제2의 가변 공유키로서 생성함과 함께, 이 제2의 가변 공유키를 이용해 상기 일방향 함수 h의 함수값을 연산에 의해 구해서, 이 연산 결과와, 상기 제2 장치로부터 수신한 일방향 함수 h의 함수값과의 조합에 의해, 상기 제2 장치의 정당성을 판정하는 스텝을 가지는 것을 특징으로 하는 것이다. The present invention also generates a variable shared key, obtains a function value of a one-way function that takes information on the variable shared key and communication order as arguments, generates a one-time ID from this function value, An authentication method for authenticating between a first device and a second device using a first variable shared key with which the first device is shared between the first device and the second device. A function value of a one-way function having information as an argument is generated as the first one-time ID (SIGNALn, j), and the ID preset in the first device using the first variable shared key, Encrypting one of the Diffie-Hellman public values previously stored in the second device, the Diffie-Hellman public value previously stored in the first device, and the first one-time ID, and encrypting the encrypted data and the first one-time ID in the second device. To send about The second device obtains the first one time ID by a calculation, and identifies the first device by a combination of the calculation result and the first one time ID received from the first device. Step and, if the second device can identify the first device, decrypt the encrypted data using the first variable shared key, and preset the first device included in the decoded data. Determining the validity of the first device based on the ID, the ID previously set in the corresponding second device, and the first one-time ID; and when the second device determines that the first device is justified. Generate a function value of a one-way function as a second one-time ID (SIGNAL 'n, 1) which takes as an argument the information about the communication order of the first variable shared key and the corresponding second device; One or more of the Diffie-Hellman published values received from the first device A second Diffie-Hellman common key is generated as the second variable shared key from the other of the Diffie-Hellman public values previously stored in the second device, the second variable shared key, the ID preset in the first device, the corresponding The first device includes a function value of the one-way function h that takes an ID preset in the second device and the second one-time ID, the other of the Diffie-Hellman public value, and the second one-time ID. For the second one-time ID, and the first device obtains the second one-time ID by a calculation, and the combination of the operation result and the second one-time ID received from the second device A step of identifying a second device and, if the first device can identify the second device, stored in advance to the other of the Diffie-Hellman published values received from the second device and to the first device; Part of the Diffie-Hellman published value A Diffie-Hellman common key is generated as the second variable shared key, and a function value of the one-way function h is calculated by operation using the second variable shared key, and the result of the operation and the second device are calculated. And a step of determining the validity of the second device by a combination with the function value of the one-way function h received from.

본 발명은 또한, 상기 인증 방법에 있어서, 상기 제2의 원 타임 ID를 생성하는 일방향 함수로서 상기 제1의 원 타임 ID를 생성하는 일방향 함수와는 다른 일방향 함수를 이용하도록 한 것을 특징으로 하는 것이다. The present invention is also characterized in that in the authentication method, a one-way function different from the one-way function for generating the first one-time ID is used as a one-way function for generating the second one-time ID. .

본 발명은 또한, 장치간 또는 어플리케이션간에 소정의 가변 공유키를 생성해, 소정의 통신 단위내에서 난수를 생성하고, 또한, 이 난수와 상기 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 원 타임 ID를 생성해, 이 원 타임 ID를 이용해, 제1 장치와 제2 장치간에 있어서의 인증(상호 인증)을 하는 인증 방법에 있어서, 상기 제1 장치가, 제1의 난수를 생성함과 함께, 상기 제2 장치와의 사이에 미리 공유화된 제1의 공유키를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID(SIGNALc1)로서 구해서, 이 제1의 원 타임 ID와 상기 제1의 난수를 상기 제2 장치에 대해서 송신하는 스텝과, 상기 제2 장치가 제2의 난수를 생성함과 함께, 상기 제1의 난수와 상기 제1의 공유키를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID(SIGNALs1)로서 구해서, 이 제2의 원 타임 ID와 상기 제2의 난수를 상기 제1 장치에 대해서 송신하는 스텝과, 상기 제1 장치가 상기 제1의 난수 및 상기 제1의 공유키에 근거해 상기 제2의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와, 상기 제2 장치로부터 수신한 상기 제2의 원 타임 ID와의 비교에 의해, 상기 제2 장치의 정당성을 판정하는 스텝과, 상기 제1 장치가 상기 제1의 난수 및 상기 제2의 난수에 근거해 제2의 공유키를 생성함과 함께, 이 제2의 공유키, 상기 제1의 난수 및 상기 제2의 난수를 인수로 하는 일방향 함수의 함수값을 제3 원 타임 ID(SIGNALc2)로서 구해서 이 제3 원 타임 ID를 상기 제2 장치에 대해서 송신하는 스텝과, 상기 제2 장치가 상기 제1의 난수 및 상기 제2의 난수에 근거해 상기 제2의 공유키를 생성함과 함께, 이 제2의 공유키, 상기 제1의 난수 및 상기 제2의 난수에 근거해 상기 제3 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와, 상기 제1 장치로부터 수신한 상기 제3 원 타임 ID와의 비교에 의해, 상기 제1 장치의 정당성을 판정하는 스텝을 가지는 것을 특징으로 하는 것이다. The present invention also generates a predetermined variable shared key between devices or applications, generates a random number in a predetermined communication unit, and obtains a function value of a one-way function that takes the random number and the shared key as arguments, An authentication method for generating a one-time ID from this function value and performing authentication (mutual authentication) between a first device and a second device using this one-time ID, wherein the first device comprises a first random number. And a function value of a one-way function having a first shared key shared with the second device as a factor as a first one time ID (SIGNALc1), and obtaining the first one time. Transmitting an ID and the first random number to the second device, the second device generates a second random number, and takes the first random number and the first shared key as arguments; Function value of the one-way function is converted to the second one-time ID (SIGNALs1). And sending the second one-time ID and the second random number to the first device, and wherein the first device is based on the first random number and the first shared key. A step of determining the validity of the second device by obtaining a one-time ID of 2 by a calculation and comparing the result of the calculation with the second one-time ID received from the second device, and the first The device generates a second shared key based on the first random number and the second random number, and uses the second shared key, the first random number, and the second random number as one argument. Obtaining a function value of a function as a third one-time ID (SIGNALc2), and transmitting the third one-time ID to the second device, and wherein the second device is configured to the first random number and the second random number. The second shared key is generated based on the second shared key, and the first random number is generated. The third one-time ID is obtained by calculation based on the second random number, and the validity of the first device is determined by comparing the calculation result with the third one-time ID received from the first device. It is characterized by having a step for determining.

본 발명은 또한, 장치간 또는 어플리케이션간에 소정의 가변 공유키를 생성해, 소정의 통신 단위내에서 난수를 생성하고, 또한 이 난수와 상기 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 원 타임 ID를 생성해서, 이 원 타임 ID를 이용해, 제1 장치와 제2 장치간에 있어서의 인증(상호 인증)을 하는 인증 방법에 있어서, 상기 제1 장치가, 제1의 난수를 생성함과 함께, 상기 제2 장치와의 사이에 미리 공유화된 공유키를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID(SIGNALc1)로서 구해서, 이 제1의 원 타임 ID와 상기 제1의 난수를 상기 제2 장치에 대해서 송신하는 스텝과, 상기 제2 장치가 제2의 난수를 생성함과 함께, 상기 제1의 난수와 상기 공유키를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID(SIGNALs1)로서 구해서, 이 제2의 원 타임 ID와 상기 제2의 난수를 상기 제1 장치에 대해서 송신하는 스텝과, 상기 제1 장치가 상기 제1의 난수 및 상기 공유키에 근거해 상기 제2의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와, 상기 제2 장치로부터 수신한 상기 제2의 원 타임 ID와의 비교에 의해, 상기 제2 장치의 정당성을 판정하는 스텝과, 상기 제1 장치가 상기 제1의 난수, 상기 제2의 난수 및 상기 공유키를 인수로 하는 일방향 함수의 함수값을 제3 원 타임 ID(SIGNALc2)로서 구해서 이 제3 원 타임 ID를 상기 제2 장치에 대해서 송신하는 스텝과, 상기 제2 장치가 상기 제1의 난수, 상기 제2의 난수 및 상기 공유키에 근거해 상기 제3 원 타임 ID를 연산에 의해 구해서 이 연산 결과와, 상기 제1 장치로부터 수신한 상기 제3 원 타임 ID와의 비교에 의해, 상기 제1 장치의 정당성을 판정하는 스텝을 가지는 것을 특징으로 하는 것이다.The present invention also generates a predetermined variable shared key between devices or applications, generates a random number in a predetermined communication unit, obtains a function value of a one-way function that takes the random number and the shared key as arguments, and An authentication method for generating a one-time ID from a function value and performing authentication (mutual authentication) between a first device and a second device using this one-time ID, wherein the first device generates a first random number. While generating, a function value of a one-way function having a shared key previously shared with the second device is obtained as the first one time ID SIGNALc 1 , and the first one time ID and the Sending a first random number to the second device; and generating a second random number by the second device, and a function value of a one-way function that takes the first random number and the shared key as arguments. a second one-time ID (SIGNALs 1) of the old The second one time ID and the second random number are transmitted to the first device, and the first device is based on the first random number and the shared key and the second one time. Determining an ID of the second device by comparing the result of the calculation with the second one-time ID received from the second device, and the first device determines the ID. Obtaining a function value of a one-way function having a random number of 1, the second random number, and the shared key as a third one-time ID (SIGNALc 2 ), and transmitting the third one-time ID to the second device; And the second device obtains the third one-time ID by a calculation based on the first random number, the second random number, and the shared key, and receives the result of the calculation and the first device received from the first device. Justification of the first apparatus by comparison with three one-time ID It is characterized by having a prescribed step.

본 발명은 또한, 상기 인증 방법에 두고, 상기 제1의 난수와 상기 제2의 난수를, 상기 제1 장치와 상기 제2 장치와의 사이에 미리 공유화된 공유키로 암호화한 상태로, 송신하도록 한 것을 특징으로 하는 것이다. The present invention also provides the authentication method, wherein the first random number and the second random number are transmitted in a state encrypted with a shared key shared in advance between the first device and the second device. It is characterized by.

본 발명은 또한, 상기 인증 방법에 있어서, 상기 제2 장치가 상기 제2의 원 타임 ID와 상기 제2의 난수를 상기 제1 장치에 대해서 송신하는 스텝에 있어서, 상기 제2 장치는 상기 제1 장치와의 사이에 미리 공유화된 난수를 초기 난수로 해서, 이 초기 난수와 상기 제1의 난수를 인수로 하는 소정의 연산을 해서, 이 연산 결과를 상기 제1 장치에 대해서 송신하는 한편, 상기 제1 장치는 상기 제2 장치의 정당성의 판정 자료로서 상기 제2 장치로부터 수신한 상기 연산 결과를, 상기 제2의 원 타임 ID와 함께 이용하는 것을 특징으로 하는 것이다. The present invention further provides the authentication method, wherein the second device transmits the second one time ID and the second random number to the first device, wherein the second device is configured to perform the first operation. The predetermined random number shared in advance with the device is used as an initial random number, a predetermined operation is performed using the initial random number and the first random number as arguments, and the result of the operation is transmitted to the first device. The first device is characterized in that the calculation result received from the second device is used together with the second one-time ID as the determination data of the justification of the second device.

본 발명은 또한, 상기 인증 방법에서, 상기 제1 장치가 상기 제3 원 타임 ID를 상기 제2 장치에 대해서 송신하는 스텝에 있어서, 상기 제1 장치는, 상기 제1의 난수와 상기 제2의 난수를 인수로 하는 소정의 연산을 해서, 이 연산 결과를 상기 제2 장치에 대해서 송신하는 한편, 상기 제2 장치는 상기 제1 장치의 정당성의 판정 자료로서 상기 제1 장치로부터 수신한 상기 연산 결과를, 상기 제3 원 타임 ID와 함께 이용하는 것을 특징으로 하는 것이다. The present invention further provides, in the authentication method, in the step of the first device transmitting the third one time ID to the second device, the first device comprises the first random number and the second random number. A predetermined operation is performed with a random number as an argument, and the calculation result is transmitted to the second device, while the second device receives the calculation result received from the first device as determination data of the justification of the first device. Is used together with the third one-time ID.

본 발명은 또한, 장치간 또는 어플리케이션간에 소정의 가변 공유키를 생성해서, 소정의 통신 단위내에서 난수를 생성하고, 이 난수와 상기 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 원 타임 ID를 생성해, 이 원 타임 ID를 이용해, 제1 장치와 제2 장치간에 있어서의 인증을 하는 인증 방법에 있어서, 상기 제1 장치가 제1의 난수를 생성함과 함께, 상기 제2 장치와의 사이에 미리 공유화된 공유키, 제1의 기억 난수 및 제2의 기억 난수를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID(SIGNALci)로서 구해서, 해당 제1 장치에 미리 설정된 ID, 상기 제2 장치에 미리 설정된 ID 및 상기 제1의 난수를 상기 공유키로 암호화한 제1의 암호화 데이터와, 상기 제1의 원 타임 ID를 상기 제2 장치에 대해서 송신하는 스텝과, 상기 제2 장치가 상기 제1의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와, 상기 제1 장치로부터 수신한 상기 제1의 원 타임 ID와의 조합에 의해, 상기 제1 장치를 식별하는 스텝과, 상기 제2 장치가 상기 제1 장치를 식별할 수 있을 경우에, 상기 공유키를 이용해 상기 제1의 암호화 데이터를 복호해, 이 복호한 데이터에 포함된다, 상기 제1 장치에 미리 설정된 ID 및 해당 제2 장치에 미리 설정된 ID에 근거해, 상기 제1 장치의 정당성을 판정하는 스텝과, 상기 제2 장치가 상기 제1 장치를 정당하다라고 판정한 경우에, 제2의 난수를 생성함과 함께, 상기 제1의 난수, 상기 제2의 기억 난수 및 상기 공유키를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID(SIGNALsi)로서 구해서, 상기 제1 장치에 미리 설정된 ID, 해당 제2 장치에 미리 설정된 ID 및 상기 제2의 난수를 상기 공유키로 암호화한 제2의 암호화 데이터와, 상기 제2의 원 타임 ID를 상기 제1 장치에 대해서 송신하는 스텝과, 상기 제2 장치가 상기 제1의 기억 난수를 상기 제1의 난수로, 상기 제2의 기억 난수를 상기 제2의 난수로 각각 치환하는 스텝과, 상기 제1 장치가 상기 제2의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와, 상기 제2 장치로부터 수신한 상기 제2의 원 타임 ID와의 조합에 의해, 상기 제2 장치를 식별하는 스텝과, 상기 제1 장치가 상기 제2 장치를 식별할 수 있을 경우에, 상기 공유키를 이용해 상기 제2의 암호화 데이터를 복호해, 이 복호한 데이터에 포함된 상기 제2 장치에 미리 설정된 ID 및 해당 제1 장치에 미리 설정된 ID에 근거해, 상기 제2 장치의 정당성을 판정하는 스텝과, 상기 제1 장치가 상기 제1의 기억 난수를 상기 제1의 난수로, 상기 제2의 기억 난수를 상기 제2의 난수로 각각 치환하는 스텝을 가지는 것을 특징으로 하는 것이다. The present invention also generates a predetermined variable shared key between devices or applications, generates a random number in a predetermined communication unit, obtains a function value of a one-way function taking the random number and the shared key as an argument, An authentication method for generating a one-time ID from a value and authenticating between a first device and a second device using the one-time ID, wherein the first device generates a first random number, A function value of a one-way function having a shared key, a first stored random number, and a second stored random number pre-shared with a second device as arguments is obtained as the first one-time ID SIGNALci, and the first device. Transmitting the first encrypted data obtained by encrypting the ID set in advance to the second device, the ID preset in the second device and the first random number with the shared key, and the first one time ID to the second device; , The second device A step of identifying the first device by a combination of the calculation result and the first one time ID received from the first device by obtaining the first one time ID by a calculation; and the second If the device can identify the first device, the first encrypted data is decoded using the shared key and included in the decoded data, the ID preset in the first device and the corresponding second device. A step of determining the validity of the first device based on the ID set in advance, and generating a second random number when the second device determines that the first device is valid, and generates the second random number. A function value of a one-way function that takes a random number of 1, the second stored random number, and the shared key as an argument, is obtained as a second one-time ID (SIGNALsi), and is assigned to the ID preset in the first device and the second device. Recall a preset ID and the second random number Transmitting second encrypted data encrypted with Yuki and the second one-time ID to the first device, and wherein the second device converts the first stored random number into the first random number; Substituting the second random random number with the second random number, and the first device obtains the second one-time ID by arithmetic operation, and the result of the calculation and the first received from the second device. By the combination with the one-time ID of 2, the step of identifying the second device, and when the first device can identify the second device, decrypts the second encrypted data using the shared key. And determining the validity of the second device based on the ID preset in the second device and the ID preset in the first device included in the decoded data, and the first device determines the first validity. Memory random number of the first random number, the second random number And a step of replacing the memory random number with the second random number, respectively.

본 발명은 또한, 상기 인증 방법에 있어서, 상기 제1의 기억 난수를 상기 제1의 난수로, 상기 제2의 기억 난수를 상기 제2의 난수로 각각 치환한 후에, 이것들 제1의 기억 난수 및 제2의 기억 난수에 근거해 상기 공유키를 생성하는 것으로써, 해당 공유키를 변화시키도록 한 것을 특징으로 하는 것이다. In the authentication method, the first storage random number is replaced by the first random number and the second random number is replaced by the second random number. The shared key is generated based on the second stored random number, thereby changing the shared key.

본 발명은 또한, 통신 단위마다 변화하는 가변 공유키를 생성하고, 이 가변 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 원 타임 ID를 생성해, 이 원 타임 ID(SIGNALn)를 이용해 클라이언트와의 사이에 인증을 하는 서버에 있어서, 상기 클라이언트에 미리 설정된 클라이언트 ID를 적어도 인수로 하는 일방향 함수 Fc의 함수값과, 상기 클라이언트에 미리 기억된 Diffie-Hellman 공개값의 한편과, 상기 원 타임 ID를 상기 클라이언트로부터 수신하는 수신 수단과, 상기 일방향 함수의 함수값 Fc 및 상기 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와, 상기 클라이언트로부터 수신한 상기 원 타임 ID 및 상기 일방향 함수 Fc의 함수값과의 비교에 의해, 상기 클라이언트의 정당성을 판정하는 판정 수단과, 상기 판정 수단이 상기 클라이언트를 정당하다라고 판정한 경우에, 해당 서버에 미리 설정된 서버 ID를 적어도 인수로 하는 일방향 함수 Fs의 함수값과 해당 서버에 미리 기억된 Diffie-Hellman 공개값의 다른 한편을 상기 클라이언트에 대해서 송신하는 송신 수단을 갖추는 것을 특징으로 하는 것이다. The present invention also generates a variable shared key that varies for each communication unit, obtains a function value of a one-way function that takes the variable shared key as an argument, generates a one-time ID from the function value, and generates this one-time ID (SIGNALn). A server for authenticating with a client using the method comprising: a function value of a one-way function Fc having at least an argument of a client ID preset in the client, and one of a Diffie-Hellman public value previously stored in the client, Receiving means for receiving the one-time ID from the client, a function value Fc of the one-way function, and the one-time ID by calculation, and a result of this operation and the one-time ID and the one-way function received from the client; Judging means for judging the legitimacy of the client by comparison with a function value of Fc; Sending to the client the other of the function value of the one-way function Fs that takes at least the server ID preset in the server as an argument and the Diffie-Hellman public value previously stored in the server. It is characterized by having a means.

본 발명은 또, 통신 단위마다 변화하는 가변 공유키를 생성하고, 이 가변 공유키를 인수로 하는 일방향 함수의 함수값을 구해서 이 함수값으로부터 원 타임 ID를 생성해, 이 원 타임 ID(SIGNALn)를 이용해 서버와의 사이에 인증을 하는 클라이언트에 있어서, 상기 서버와의 사이에 미리 공유화된 가변 공유키를 이용해 상기 원 타임 ID를 생성함과 함께, 해당 클라이언트에 미리 설정된 클라이언트 ID를 적어도 인수로 하는 일방향 함수 Fc의 함수값을 연산에 의해 구해서, 이들 원 타임 ID 및 일방향 함수 Fc의 함수값과 해당 클라이언트에 미리 기억된 Diffie-Hellman 공개값의 한편을 상기 서버에 대해서 송신하는 송신 수단과, 상기 서버에 미리 설정된 서버 ID를 적어도 인수로 하는 일방향 함수 Fs의 함수값과, 상기 서버에 미리 기억된 Diffie-Hellman 공개값의 다른 한편을 상기 서버로부터 수신하는 수신 수단과, 상기 일방향 함수 Fs의 함수값을 연산에 의해 구해서, 이 연산 결과와, 상기 서버로부터 수신한 상기 일방향 함수 Fs의 함수값과의 비교에 의해, 상기 서버의 정당성을 판정하는 판정 수단을 갖추는 것을 특징으로 하는 것이다. The present invention also generates a variable shared key that varies for each communication unit, obtains a function value of a one-way function that takes the variable shared key as an argument, generates a one-time ID from the function value, and generates this one-time ID (SIGNALn). In the client authenticating with the server using the above, the one-time ID is generated using a variable shared key shared in advance with the server, and at least the client ID preset in the client is taken as an argument. Transmitting means for obtaining the function values of the one-way function Fc by arithmetic operations, and transmitting one of these one-time IDs and the function values of the one-way function Fc and the Diffie-Hellman public value previously stored in the client to the server; A function value of the one-way function Fs whose argument is a server ID set in advance at least as an argument, and another one of the Diffie-Hellman public values previously stored in the server. The receiving means for receiving from the server and the function value of the one-way function Fs are calculated by calculation, and the validity of the server is obtained by comparing the result of this operation with the function value of the one-way function Fs received from the server. And judging means for judging.

본 발명은 또한, 인증 시스템으로서 상기 서버와, 상기 클라이언트를 갖추는 것을 특징으로 하는 것이다. The present invention is also characterized in that the server and the client are provided as an authentication system.

본 발명은 또, 통신 단위마다 변화하는 가변 공유키를 생성하고, 이 가변 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 원 타임 ID를 생성해, 이 원 타임 ID(SIGNALn)에 근거해 클라이언트와의 사이에 인증을 하는 서버에 실행 시키는 프로그램에 있어서, 상기 클라이언트에 미리 설정된 클라이언트 ID를 적어도 인수로 하는 일방향 함수 Fc의 함수값과, 상기 클라이언트에 미리 기억된 Diffie-Hellman 공개값의 한편과, 상기 원 타임 ID를 상기 클라이언트로부터 수신하는 처리와, 상기 일방향 함수의 함수값 Fc 및 상기 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와, 상기 클라이언트로부터 수신한 상기 원 타임 ID 및 상기 일방향 함수 Fc의 함수값과의 비교에 의해, 상기 클라이언트의 정당성을 판정하는 처리와, 상기 클라이언트가 정당하다라고 판정한 경우에, 상기 서버에 미리 설정된 서버 ID를 적어도 인수로 하는 일방향 함수 Fs의 함수값과, 상기 서버에 미리 기억된 Diffie-Hellman 공개값의 다른 한편을 상기 클라이언트에 대해서 송신하는 처리를 상기 서버에 실행 시키는 것을 특징으로 하는 것이다. The present invention also generates a variable shared key that changes for each communication unit, obtains a function value of a one-way function that takes the variable shared key as an argument, generates a one-time ID from the function value, and generates this one-time ID (SIGNALn). A program that executes a server that authenticates with a client based on a), wherein a function value of a one-way function Fc that takes at least an argument of a client ID preset in the client, and a Diffie-Hellman previously stored in the client. A process of receiving one of the values and the one-time ID from the client, a function value Fc and the one-time ID of the one-way function by calculation, and the operation result and the one-time ID received from the client. And a process for determining the validity of the client by comparison with a function value of the one-way function Fc, and the client determining the validity. In the case where it is determined that the operation is successful, a process of transmitting, to the client, the function value of the one-way function Fs that takes at least a server ID preset in the server as an argument, and the other of the Diffie-Hellman public value previously stored in the server. It is characterized by running on the server.

본 발명은 또한, 통신 단위마다 변화하는 가변 공유키를 생성하고, 아울러, 이 가변 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 원 타임 ID를 생성하고, 이 원 타임 ID(SIGNALn)에 근거해 서버와의 사이에 인증을 하는 클라이언트에 실행 시키는 프로그램에 있어서, 상기 서버와의 사이에 미리 공유화된 가변 공유키를 이용해 상기 원 타임 ID를 생성함과 함께, 상기 클라이언트에 미리 설정된 클라이언트 ID를 적어도 인수로 하는 일방향 함수 Fc의 함수값을 연산에 의해 구해서, 이들 원 타임 ID 및 일방향 함수 Fc의 함수값과, 상기 클라이언트에 미리 기억된 Diffie-Hellman 공개값의 한편을 상기 서버에 송신하는 처리와, 상기 서버에 미리 설정된 서버 ID를 적어도 인수로 하는 일방향 함수 Fs의 함수값과, 상기 서버에 미리 기억된 Diffie-Hellman 공개값의 다른 한편을 상기 서버로부터 수신하는 처리와, 상기 일방향 함수 Fs의 함수값을 연산에 의해 구해서, 이 연산 결과와, 상기 서버로부터 수신한 상기 일방향 함수 Fs의 함수값과의 비교에 의해, 상기 서버의 정당성을 판정하는 처리를 상기 클라이언트에 실행 시키는 것을 특징으로 하는 것이다. The present invention also generates a variable shared key that varies for each communication unit, obtains a function value of a one-way function that takes this variable shared key as an argument, generates a one-time ID from the function value, and generates this one-time ID. A program to be executed by a client that authenticates with a server based on (SIGNALn), wherein the one-time ID is generated using a variable shared key shared with the server in advance and the client is previously generated. The function values of the one-way function Fc having at least the client ID set as an argument are calculated by calculation, and one of these one-time IDs and the function values of the one-way function Fc and the Diffie-Hellman public value previously stored in the client is sent to the server. A process of transmitting, a function value of the one-way function Fs having at least a server ID set in advance in the server, and a Diff stored in advance in the server; a process of receiving the other of the ie-Hellman public value from the server, calculating a function value of the one-way function Fs by operation, and comparing the result of this operation with a function value of the one-way function Fs received from the server. By causing the client to execute a process for determining the validity of the server.

본 발명은 또한, 가변 공유키를 생성하고, 아울러, 가변 공유키와 통신 순서에 관한 정보를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 원 타임 ID를 생성해, 이 원 타임 ID를 이용해 클라이언트와의 사이에 인증을 하는 서버에 있어서, 상기 클라이언트와의 사이에 미리 공유화된 제1의 가변 공유키와 상기 클라이언트의 통신 순서에 관한 정보를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID(SIGNALn, j)로 해서 이 제1의 원 타임 ID, 상기 클라이언트에 미리 설정된 클라이언트 ID, 해당 서버에 미리 설정된 서버 ID, 상기 클라이언트에 미리 기억된 Diffie-Hellman 공개값의 한편을 상기 제1의 가변 공유키로 암호화한 암호화 데이터와, 상기 제1의 원 타임 ID를 상기 클라이언트로부터 수신하는 수신 수단과, 상기 제1의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와, 상기 클라이언트로부터 수신한 상기 제1의 원 타임 ID와의 조합에 의해, 상기 클라이언트를 식별해, 상기 클라이언트를 식별할 수 있을 경우에, 상기 제1의 가변 공유키를 이용해 상기 암호화 데이터를 복호해, 이 복호한 데이터에 포함된 상기 클라이언트 ID, 상기 서버 ID 및 상기 제1의 원 타임 ID에 근거해, 상기 클라이언트의 정당성을 판정하는 판정수단과, 상기 판정 수단이 상기 클라이언트를 정당하다라고 판정한 경우에, 상기 제1의 가변 공유키와 해당 서버의 통신 순서에 관한 정보를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID(SIGNAL'n , 1)로서 생성함과 함께, 상기 클라이언트로부터 수신한 Diffie-Hellman 공개값의 한편과 해당 서버에 미리 기억된 Diffie-Hellman 공개값의 다른 한편으로부터 Diffie-Hellman 공통키를 제2의 가변 공유키로 해서 생성해, 이 제2의 가변 공유키, 상기 클라이언트 ID, 상기 서버 ID 및 상기 제2의 원 타임 ID를 인수로 하는 일방향 함수 h의 함수값과, 상기 Diffie-Hellman 공개값의 다른 한편과 상기 제2의 원 타임 ID를 상기 클라이언트에 대해서 송신하는 송신수단을 갖추는 것을 특징으로 하는 것이다. The present invention also generates a variable shared key, obtains a function value of a one-way function that takes as a parameter information on the variable shared key and communication order, generates a one-time ID from the function value, and generates this one-time ID. A server for authenticating with a client using a first variable, wherein the first variable shared key previously shared with the client and a function value of a one-way function having information about a communication order of the client as arguments are used as a first value. The first one time ID (SIGNALn, j) of the first one time ID, the client ID preset to the client, the server ID preset to the server, and one of the Diffie-Hellman public values previously stored in the client. Calculating encrypted data encrypted with a first variable shared key, receiving means for receiving the first one time ID from the client, and the first one time ID Obtained by using the first variable shared key when the client can be identified and the client can be identified by a combination of the operation result and the first one-time ID received from the client. Judging means for decoding the encrypted data and judging the legitimacy of the client based on the client ID, the server ID, and the first one-time ID included in the decoded data; Is determined to be valid, a function value of a one-way function whose second variable shared key and information on the communication order of the server is taken as a second one-time ID (SIGNAL'n, 1) is generated. The Diffie-Hellman common key is obtained from one of the Diffie-Hellman published values received from the client and the other of the Diffie-Hellman published values previously stored in the server. A function value of the one-way function h, which is generated as a second variable shared key and takes as arguments the second variable shared key, the client ID, the server ID, and the second one-time ID; and the Diffie-Hellman disclosure. And transmitting means for transmitting the other of the value and the second one time ID to the client.

본 발명은 또한, 통신 단위마다 변화하는 가변 공유키를 생성하고, 이 가변 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 원 타임 ID를 생성해, 이 원 타임 ID를 이용해 서버와의 사이에 인증을 하는 클라이언트에 있어서, 상기 서버와의 사이에 미리 공유화된 제1의 가변 공유키와 해당 클라이언트의 통신 순서에 관한 정보를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID(SIGNALn,j )로서 생성함과 함께, 상기 제1의 가변 공유키를 이용해, 해당 클라이언트에 미리 설정된 클라이언트 ID, 상기 서버에 미리 설정된 서버 ID, 해당 클라이언트에 미리 기억된 Diffie-Hellman 공개값의 한편 및 상기 제1의 원 타임 ID를 암호화해, 이 암호화 데이터와 상기 제1의 원 타임 ID를 상기 서버에 대해서 송신하는 송신 수단과, 상기 제1의 가변 공유키와 상기 서버의 통신 순서에 관한 정보를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID(SIGNAL'n, 1)로 해서, Diffie-Hellman 공통키를 제2의 가변 공유키로서, 상기 제2의 원 타임 ID, 상기 제2의 가변 공유키, 상기 클라이언트 ID 및 상기 서버 ID를 인수로 하는 일방향 함수 h의 함수값과, 상기 서버에 미리 기억된 Diffie-Hellman 공개값의 다른 한편과, 상기 제2의 원 타임 ID를 상기 서버로부터 수신하는 수신 수단과, 상기 제2의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와, 상기 서버로부터 수신한 상기 제2의 원 타임 ID와의 조합에 의해, 상기 서버를 식별해서, 상기 서버를 식별한 경우에, 상기 서버로부터 수신한 상기 Diffie-Hellman 공개값의 다른 한편과 해당 클라이언트에 미리 기억된 상기 Diffie-Hellman 공개값의 한편으로부터 Diffie-Hellman 공통키를 상기 제2의 가변 공유키로서 생성함과 함께, 이 제2의 가변 공유키를 이용해 상기 일방향 함수 h의 함수값을 연산에 의해 구해서, 이 연산 결과와, 상기 서버로부터 수신한 일방향 함수 h의 함수값과의 조합에 의해, 상기 서버의 정당성을 판정하는 판정 수단을 갖추는 것을 특징으로 하는 것이다. The present invention also generates a variable shared key that varies for each communication unit, obtains a function value of a one-way function that takes the variable shared key as an argument, generates a one-time ID from the function value, and uses this one-time ID. A client authenticating with a server, comprising: a first original function value of a one-way function whose first variable variable is pre-shared with the server and information about the communication order of the client; Generated as a time ID (SIGNALn, j), and using the first variable shared key, a client ID preset for the client, a server ID preset for the server, and a Diffie-Hellman public value stored in advance for the client. And transmission means for encrypting the first one time ID and transmitting the encrypted data and the first one time ID to the server, and the first variable. With the function value of the one-way function taking as a argument the information about the communication order between the Yukey and the server as the second one-time ID (SIGNAL'n, 1), the Diffie-Hellman common key is used as the second variable shared key. A function value of a one-way function h that takes the second one-time ID, the second variable shared key, the client ID, and the server ID as arguments, and the other of the Diffie-Hellman public values previously stored in the server; Receiving means for receiving the second one-time ID from the server, and calculating the second one-time ID by arithmetic operation, and combining this calculation result with the second one-time ID received from the server. By identifying the server and identifying the server, the Diffie-Hellman from the other of the Diffie-Hellman published values received from the server and the Diffie-Hellman published values previously stored in the client. Common key Generated as a second variable shared key, the function value of the one-way function h is obtained by arithmetic operation using the second variable shared key, and the result of this operation and the function of the one-way function h received from the server. The combination with a value is provided, the determination means which determines the legitimacy of the said server is characterized by the above-mentioned.

본 발명은 또한, 인증 시스템을, 상기 서버와 상기 클라이언트으로 부터 구성한 것을 특징으로 하는 것이다. The present invention is also characterized in that an authentication system is constructed from the server and the client.

본 발명은 또한, 장치간 또는 어플리케이션간에 소정의 가변 공유키를 생성해, 소정의 통신 단위내에서 난수를 생성하고, 이 난수와 상기 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 원 타임 ID를 생성해, 이 원 타임 ID를 이용해 클라이언트와의 사이에 서로 인증을 하는 서버에 있어서, 상기 클라이언트와의 사이에 미리 공유화된 제1의 공유키를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID(SIGNALc1)로 해서, 이 제1의 원 타임 ID와, 상기 클라이언트로 생성된 제1의 난수를 상기 클라이언트로부터 수신하는 제1 수신 수단과 제2의 난수를 생성함과 함께, 상기 제1의 난수와 상기 제1의 공유키를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID(SIGNALs1)로 해서 구해서, 이 제2의 원 타임 ID와 상기 제2의 난수를 상기 클라이언트에 대해서 송신하는 송신 수단와, 상기 제1의 난수, 상기 제2의 난수 및 제2의 공유키를 인수로 하는 일방향 함수의 함수값을 제3 원 타임 ID(SIGNALc2)로 해서, 이 제3 원 타임 ID를 상기 클라이언트로부터 수신하는 제2 수신 수단과, 상기 제1의 난수 및 상기 제2의 난수에 근거해 상기 제2의 공유키를 생성함과 함께, 이 제2의 공유키, 상기 제1의 난수 및 상기 제2의 난수에 근거해 상기 제3 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와 상기 클라이언트로부터 수신한 상기 제3 원 타임 ID와의 비교에 의해, 상기 클라이언트의 정당성을 판정하는 판정 수단을 갖추는 것을 특징으로 하는 것이다.The present invention also generates a predetermined variable shared key between devices or applications, generates a random number in a predetermined communication unit, obtains a function value of a one-way function taking the random number and the shared key as an argument, A function of a one-way function that generates a one-time ID from a value and authenticates it with the client using this one-time ID, with the first shared key previously shared with the client as an argument. Using the value as the first one-time ID SIGNALc 1 , first receiving means for receiving the first one-time ID and the first random number generated by the client and the second random number are generated. In addition, a function value of a one-way function that takes the first random number and the first shared key as arguments is obtained as a second one-time ID (SIGNALs 1 ), and the second one-time ID and the first value are obtained. 2 random numbers By a transmission sudanwa, the first random number, the second the third one-time ID to the functional value of the one-way function to the shared key of the random number and the second by the factor of (SIGNALc 2) for transmitting to the client, the third Second receiving means for receiving a one-time ID from the client, and generating the second shared key based on the first random number and the second random number; The third one-time ID is obtained by a calculation based on a random number of 1 and the second random number, and the validity of the client is determined by comparing the result of this operation with the third one-time ID received from the client. It is characterized by including the determination means to.

본 발명은 또한, 장치간 또는 어플리케이션간에 소정의 가변 공유키를 생성해 소정의 통신 단위내에서 난수를 생성하고, 아울러 이 난수와 상기 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 원 타임 ID를 생성해, 이 원 타임 ID를 이용해 서버와의 사이에 서로 인증을 하는 클라이언트에 있어서, 제1의 난수를 생성함과 함께, 상기 서버와의 사이에 미리 공유화된 제1의 공유키를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID(SIGNALc1)로 해서 구해서, 이 제1의 원 타임 ID와 상기 제1의 난수를 상기 서버에 대해서 송신하는 제1 송신 수단과, 상기 제1의 난수와 상기 제1의 공유키를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID(SIGNALs1)로 해서, 이 제2의 원 타임 ID와, 상기 서버로 생성된 제2의 난수를 상기 서버로부터 수신하는 수신 수단과, 상기 제1의 난수 및 상기 제1의 공유키에 근거해 상기 제2의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와 상기 서버로부터 수신한 상기 제2의 원 타임 ID와의 비교에 의해, 상기 서버의 정당성을 판정하는 판정 수단과, 상기 판정 수단에 의해 상기 서버가 정당하다라고 판정한 경우에, 상기 제1의 난수 및 상기 제2의 난수에 근거해 제2의 공유키를 생성함과 함께, 이 제2의 공유키, 상기 제1의 난수 및 상기 제2의 난수를 인수로 하는 일방향 함수의 함수값을 제3 원 타임 ID(SIGNALc2)로서 구해서, 이 제3 원 타임 ID를 상기 서버에 대해서 송신하는 제2 송신 수단을 갖추는 것을 특징으로 하는 것이다.The present invention also generates a predetermined variable shared key between devices or applications to generate a random number in a predetermined communication unit, and obtains a function value of a one-way function that takes the random number and the shared key as an argument, A first random number is generated from a value, and a client that generates a first random number and authenticates each other with the server using the one-time ID is generated. First transmitting means for obtaining a function value of a one-way function having a shared key as an argument as a first one-time ID (SIGNALc 1 ), and transmitting the first one-time ID and the first random number to the server. And generate a second one-time ID and the server by using a function value of a one-way function that takes the first random number and the first shared key as arguments as a second one-time ID (SIGNALs 1 ). The generated second random number to the server The second one-time ID based on the first reception means and the first random number and the first shared key, and the second one-time received from the server. A judging means for judging the legitimacy of the server by comparison with an ID; and when the judging means judges that the server is legitimate, a second based on the first random number and the second random number. While generating a shared key, a function value of a one-way function having the second shared key, the first random number, and the second random number as an argument is obtained as the third one-time ID (SIGNALc 2 ). And second transmitting means for transmitting a three-time ID to the server.

본 발명은 또한, 인증 시스템으로서 상기 서버와, 상기 클라이언트를 갖추어 되는 것을 특징으로 하는 것이다. The present invention is also characterized in that the server and the client are provided as an authentication system.

본 발명은 또한, 청구항 29로 기재된 발명은, 장치간 또는 어플리케이션간에 소정의 가변 공유키를 생성해, 소정의 통신 단위내에서 난수를 생성하고, 아울러, 이 난수와 상기 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 원 타임 ID를 생성해, 이 원 타임 ID를 이용해 클라이언트와의 사이에 서로 인증을 하는 서버에 있어서, 상기 클라이언트와의 사이에 미리 공유화된 공유키를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID(SIGNALc1)로 해서, 이 제1의 원 타임 ID와, 상기 클라이언트로 생성된 제1의 난수를 상기 클라이언트로부터 수신하는 제1 수신 수단과, 제2의 난수를 생성함과 함께, 상기 제1의 난수와 상기 공유키를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID(SIGNALs1)로서 구해서, 이 제2의 원 타임 ID와 상기 제2의 난수를 상기 클라이언트에 대해서 송신하는 송신 수단와, 상기 공유키, 상기 제1의 난수 및 상기 제2의 난수를 인수로 하는 일방향 함수의 함수값을 제3 원 타임 ID(SIGNALc2)로 해서, 이 제3 원 타임 ID를 상기 클라이언트로부터 수신하는 제2 수신 수단과 상기 제1의 난수, 상기 제2의 난수 및 상기 공유키에 근거해 상기 제3 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와 상기 클라이언트로부터 수신한 상기 제3 원 타임 ID와의 비교에 의해, 상기 클라이언트의 정당성을 판정하는 판정 수단을 갖추는 것을 특징으로 하는 것이다.The present invention further relates to the invention described in claim 29, wherein a predetermined variable shared key is generated between devices or applications, a random number is generated within a predetermined communication unit, and the one-way direction takes the random number and the shared key as arguments. A server that obtains a function value of a function, generates a one-time ID from the function value, and authenticates with the client using the one-time ID, and takes a shared key shared with the client in advance. First receiving means for receiving the first one-time ID and the first random number generated by the client from the client, using the function value of the one-way function as a first one-time ID (SIGNALc 1 ); Generates a second random number, obtains a function value of a one-way function that takes the first random number and the shared key as a second one-time ID (SIGNALs 1 ), and obtains the second one-time ID; Wow Transmission means for transmitting the second random number to the client, and a function value of a one-way function having the shared key, the first random number, and the second random number as an argument as a third one-time ID SIGNALc 2 ; And calculating the third one-time ID based on the second receiving means for receiving the third one-time ID from the client and the first random number, the second random number, and the shared key. And a judging means for judging the validity of the client by comparing the operation result with the third one-time ID received from the client.

본 발명은 또한, 장치간 또는 어플리케이션간에 소정의 가변 공유키를 생성해, 소정의 통신 단위내에서 난수를 생성하고, 아울러, 이 난수와 상기 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 원 타임 ID를 생성해, 이 원 타임 ID를 이용해 서버와의 사이에 서로 인증을 하는 클라이언트에 있어서. 제1의 난수를 생성함과 함께, 상기 서버와의 사이에 미리 공유화된 공유키를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID(SIGNALc1)로서 구해서, 이 제1의 원 타임 ID와 상기 제1의 난수를 상기 서버에 대해서 송신하는 제1 송신 수단과, 상기 제1의 난수와 상기 공유키를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID(SIGNALs1 )로 해서, 이 제2의 원 타임 ID와, 상기 서버로 생성된 제2의 난수를 상기 서버로부터 수신하는 수신 수단과, 상기 제1의 난수 및 상기 공유키에 근거해 상기 제2의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와 상기 서버로부터 수신한 상기 제2의 원 타임 ID와의 비교에 의해, 상기 서버의 정당성을 판정하는 판정 수단과, 상기 판정 수단에 의해 상기 서버가 정당하다라고 판정한 경우에, 상기 제1의 난수, 상기 제2의 난수 및 상기 공유키를 인수로 하는 일방향 함수의 함수값을 제3 원 타임 ID(SIGNALc2)로서 구해서, 이 제3 원 타임 ID를 상기 서버에 대해서 송신하는 제2 송신 수단을 갖추는 것을 특징으로 하는 것이다.The present invention also generates a predetermined variable shared key between devices or applications, generates a random number in a predetermined communication unit, obtains a function value of a one-way function that takes the random number and the shared key as arguments, For clients that generate a one-time ID from this function value and use this one-time ID to authenticate each other with the server. A first one-time function (SIGNALc 1 ) is obtained by generating a first random number and obtaining a function value of a one-way function whose argument is a shared key previously shared with the server. First transmission means for transmitting an ID and the first random number to the server, and a function value of a one-way function taking the first random number and the shared key as arguments as a second one-time ID (SIGNALs 1 ). The second one-time ID is received based on the second one-time ID, receiving means for receiving the second random number generated by the server from the server, and the first random number and the shared key. Determining means for determining the validity of the server by comparing the result of this operation with the second one-time ID received from the server, and determining that the server is justified by the determining means. In the case, the first random number, the second Number and obtain a function value of the one-way function to the shared keys by the factor as a third one-time ID (SIGNALc 2), characterized in that align a second transmitting means for transmitting for a third one-time ID to the server, will be.

본 발명은 또한, 인증 시스템으로 해서 상기 서버와, 상기 클라이언트를 갖추는 것을 특징으로 하는 것이다. The present invention is also characterized in that the server and the client are provided as an authentication system.

본 발명은 또한, 장치간 또는 어플리케이션간에 소정의 가변 공유키를 생성해, 소정의 통신 단위내에서 난수를 생성하고, 아울러, 이 난수와 상기 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 원 타임 ID를 생성해, 이 원 타임 ID를 이용해 클라이언트와의 사이에 서로 인증을 하는 서버에 있어서, 상기 클라이언트와의 사이에 미리 공유화된 공유키, 제1의 기억 난수 및 제2의 기억 난수를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID(SIGNALc1)로 해서 이 제1의 원 타임 ID를 상기 클라이언트로부터 수신함과 함께, 상기 클라이언트로 생성된 제1의 난수, 상기 클라이언트에 미리 설정된 클라이언트 ID, 해당 서버에 미리 설정된 서버 ID를 상기 공유키로 암호화한 제1의 암호화 데이터를 상기 클라이언트로부터 수신하는 수신 수단과, 상기 제1의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와, 상기 클라이언트로부터 수신한 상기 제1의 원 타임 ID와의 조합에 의해, 상기 클라이언트를 식별해, 상기 클라이언트를 식별할 수 있을 경우에, 상기 공유키를 이용해 상기 제1의 암호화 데이터를 복호해, 이 복 호한 데이터에 포함되는 상기 클라이언트 ID 및 상기 서버 ID에 근거해, 상기 클라이언트의 정당성을 판정하는 판정 수단과, 상기 판정 수단이 상기 클라이언트를 정당하다라고 판정한 경우에, 제2의 난수를 생성함과 함께, 상기 제1의 난수, 상기 제2의 기억 난수 및 상기 공유키를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID(SIGNALs1)로서 구해서, 상기 클라이언트 ID, 상기 서버 ID 및 상기 제2의 난수를 상기 공유키로 암호화한 제2의 암호화 데이터와, 상기 제2의 원 타임 ID를 상기 클라이언트에 대해서 송신하는 송신 수단과, 상기 제1의 기억 난수를 상기 제1의 난수로, 상기 제2의 기억 난수를 상기 제2의 난수로 각각 치환하는 치환 수단을 갖추는 것을 특징으로 하는 것이다.The present invention also generates a predetermined variable shared key between devices or applications, generates a random number in a predetermined communication unit, obtains a function value of a one-way function that takes the random number and the shared key as arguments, A server that generates a one-time ID from this function value and authenticates with the client using this one-time ID, wherein the shared key, first stored random number, and second shared with the client in advance. Receiving a first one-time ID from the client using a function value of a one-way function as a first one-time ID (SIGNALc 1 ), and generating a first random number generated by the client, Receiving first encrypted data obtained by encrypting a client ID preset in the client and a server ID preset in the corresponding server with the shared key; A new means and the first one-time ID are obtained by calculation, and the combination of the operation result and the first one-time ID received from the client identifies the client and identifies the client. Determining means for decrypting the first encrypted data using the shared key and determining the validity of the client based on the client ID and the server ID included in the decrypted data; When the judging means determines that the client is justified, a second random number is generated and a function value of a one-way function taking the first random number, the second stored random number, and the shared key as arguments. obtain a second one-time ID (SIGNALs 1) of the client ID, the server ID and the encrypted data of second random numbers encrypted with the share of the second, of the second And transmitting means for transmitting a time ID to the client, and replacing means for replacing the first stored random number with the first random number and the second stored random number with the second random number, respectively. It is.

본 발명은 또한, 장치간 또는 어플리케이션간에 소정의 가변 공유키를 생성해, 소정의 통신 단위내에서 난수를 생성하고, 이 난수와 상기 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 원 타임 ID를 생성해, 이 원 타임 ID를 이용해 서버와의 사이에 서로 인증을 하는 클라이언트에 있어서, 제1 의 난수를 생성함과 함께, 상기 서버와의 사이에 미리 공유화된 공유키, 제1의 기억 난수 및 제2의 기억 난수를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID(SIGNALc1)로서 구해서, 해당 클라이언트에 미리 설정된 클라이언트 ID, 상기 서버에 미리 설정된 서버 ID 및 상기 제1의 난수를 상기 공유키로 암호화한 제1의 암호화 데이터와, 상기 제1의 원 타임 ID를 상기 서버에 대해서 송신하는 송신 수단과, 상기 제1의 난수, 상기 제2의 기억 난수 및 상기 공유키를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID(SIGNALs1)로 해서 이 제2의 원 타임 ID를 상기 서버로부터 수신함과 함께, 상기 서버로 생성된 제2의 난수, 상기 클라이언트 ID 및 상기 서버 ID를 상기 공유키로 암호화한 제2의 암호화 데이터를 상기 서버로부터 수신하는 수신 수단과, 상기 제2의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와, 상기 서버로부터 수신한 상기 제2의 원 타임 ID와의 조합에 의해, 상기 서버를 식별해, 상기 서버를 식별할 수 있을 경우에, 상기 공유키를 이용해 상기 제2의 암호화 데이터를 복호해, 이 복호한 데이터에 포함되는 상기 서버 ID 및 상기 클라이언트 ID에 근거해, 상기 서버의 정당성을 판정하는 판정 수단과, 상기 제1의 기억 난수를 상기 제1의 난수로, 상기 제2의 기억 난수를 상기 제2의 난수로 각각 치환하는 치환 수단을 갖추는 것을 특징으로 하는 것이다.The present invention also generates a predetermined variable shared key between devices or applications, generates a random number in a predetermined communication unit, obtains a function value of a one-way function taking the random number and the shared key as an argument, In a client that generates a one-time ID from a value and authenticates with the server using the one-time ID, a first random number is generated, and a shared key shared with the server in advance, The function value of the one-way function having the first memory random number and the second memory random number as an argument is obtained as the first one-time ID SIGNALc 1 , and the client ID preset in the client, the server ID preset in the server, First encryption data obtained by encrypting the first random number with the shared key, transmission means for transmitting the first one time ID to the server, the first random number, and the second The second one-time ID is received from the server using a function value of a memory random number and a one-way function having the shared key as the second one-time ID (SIGNALs 1 ), and is generated by the server. A receiving means for receiving from said server the second random data obtained by encrypting the random number of said, said client ID and said server ID with said shared key, and said second one-time ID by calculation; When the server can be identified by the combination with the second one-time ID received from the server and the server can be identified, the second encrypted data is decoded using the shared key, and the decoded data is decoded. Determination means for determining the validity of the server based on the server ID and the client ID included in the data, the first stored random number as the first random number, and the second stored random number as the above-mentioned. Substitution means for substituting each of the second random numbers is provided.

본 발명은 또한, 인증 시스템으로서 상기 서버와, 상기 클라이언트를 갖추는 것을 특징으로 하는 것이다. The present invention is also characterized in that the server and the client are provided as an authentication system.

본 발명은 또한, 상기 인증 시스템에 있어서, 상기 서버 및 상기 클라이언트는, 상기 제1의 기억 난수를 상기 제1의 난수로, 상기 제2의 기억 난수를 상기 제2의 난수로 각각 치환한 다음에, 이들 제1의 기억 난수 및 제2의 기억 난수에 근거해 상기 공유키를 생성하는 것으로써, 해당 공유키를 변화시키게 되는 것을 특징으로 하는 것이다. The present invention also provides the authentication system, wherein the server and the client replace the first stored random number with the first random number and the second stored random number with the second random number, respectively. The shared key is generated based on these first and second random numbers, thereby changing the shared key.

본 발명과 관련되는, 통신 단위마다 변화하는 가변 공유키를 생성하고, 이 가변 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 원 타임 ID를 생성하고, 이 원 타임 ID(SIGNALn)를 이용해, 서로 통신을 행하는 제1 장치와 제2 장치간에 있어서의 인증을 하는 인증 방법에 의하면, 가변 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 원 타임 ID를 생성하도록 했기 때문에, 예를 들면, 가변 공유키가 제3자에게 누설되었다고 할지라도, 소정의 통신 단위마다 가변 공유키가 변화하는 것이 되므로, 누설된 가변 공유키를 이용해 생성된 원 타임 ID이외의 원 타임 ID를 예측할 수 없다. 즉, 도청이 곤란하고 안전성이 뛰어난 원 타임 ID를 생성하는 것이 가능하게 되어, 원 타임 ID의 장래에 미치는 안전성(PFS)을 실현하는 것이 가능하게 된다. According to the present invention, a variable shared key that is changed for each communication unit is generated, a function value of a one-way function that takes this variable shared key as an argument is obtained, a one-time ID is generated from this function value, and the one-time ID ( According to an authentication method for authenticating between a first device and a second device that communicate with each other using SIGNALn), a function value of a one-way function having a variable shared key as an argument is obtained, and a one-time ID is obtained from this function value. For example, even if the variable shared key is leaked to a third party, even if the variable shared key is leaked to a third party, the variable shared key changes every predetermined communication unit. One-time ID cannot be predicted. In other words, it is possible to generate a one-time ID having difficulty in eavesdropping and excellent safety, and it is possible to realize safety (PFS) affecting the future of the one-time ID.

본 발명에서는 또한, 가변 공유키를 생성하고, 이 가변 공유키와 통신 순서 또는 횟수에 관한 정보를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 원 타임 ID를 생성하고, 이 원 타임 ID를 이용해, 제1 장치와 제2 장치간에 있어서의 인증을 하도록 했기 때문에, 예를 들면, 가변 공유키가 제3자에게 누설되었다고 할지라도, 소정의 통신 단위마다 가변 공유키가 변화함과 함께, 각 통신마다 통신 순서 또는 횟수에 관한 정보도 변화하는 것이 되므로, 누설된 가변 공유키를 이용해 생성된 원 타임 ID이외의 원 타임 ID를 예측하는 것은 사실상 불가능하게 되고, 또한, 누설된 가변 공유키를 이용해 생성된 원 타임 ID의 예측 자체도 매우 곤란하게 된다. 즉, 도청이 곤란하고 안전성이 뛰어난 원 타임 ID를 생성하는 것이 가능하게 되어, 원 타임 ID의 장래에 미치는 안전성(PFS)을 실현하는 것이 가능하게 된다. The present invention also generates a variable shared key, obtains a function value of a one-way function whose argument is information on the order or number of communication with the variable shared key, generates a one-time ID from the function value, and generates this one-time. Since the authentication is performed between the first device and the second device using the ID, for example, even if the variable shared key is leaked to a third party, the variable shared key changes for every predetermined communication unit. Since the information on the communication order or the number of times changes for each communication, it is virtually impossible to predict the one-time ID other than the one-time ID generated using the leaked variable shared key. It is also very difficult to predict the one-time ID generated by using. In other words, it is possible to generate a one-time ID having difficulty in eavesdropping and excellent safety, and it is possible to realize safety (PFS) affecting the future of the one-time ID.

본 발명은 또한, 장치간 또는 어플리케이션간에 소정의 가변 공유키를 생성해, 소정의 통신 단위내에서 난수를 생성하고, 아울러 이 난수와 상기 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 원 타임 ID를 생성하고, 이 원 타임 ID를 이용해, 제1 장치와 제2 장치간에 있어서의 인증(상호 인증)을 하도록 했기 때문에, 예를 들면, 공유키가 제3자에게 누설되었다고 할지라도, 난수에 의해 일방향 함수의 함수값이 소정의 통신 단위마다 변화하는 것이 되므로, 소정의 통신 단위내에서 생성되는 난수를 모르는 한, 원 타임 ID를 예측할 수 없다. 즉, 도청이 곤란하고 안전성이 뛰어난 원 타임 ID를 생성하는 것이 가능하게 되어, 원 타임 ID의 장래에 마치는 안전성(PFS)을 실현하는 것이 가능하게 된다. The present invention also generates a predetermined variable shared key between devices or applications, generates a random number in a predetermined communication unit, obtains a function value of a one-way function that takes the random number and the shared key as arguments, and Since the one-time ID was generated from the function value and the one-time ID was used to perform authentication (mutual authentication) between the first device and the second device, for example, the shared key was leaked to a third party. Even if the function value of the one-way function is changed for each predetermined communication unit by the random number, the one-time ID cannot be predicted unless the random number generated in the predetermined communication unit is known. In other words, it is possible to generate a one-time ID having difficulty in eavesdropping and having excellent safety, thereby realizing a safety (PFS) that will be completed in the future of the one-time ID.

본 발명은 또한, 위에 기술된 여러 가지의 원 타임 ID의 생성 방법에 의해 생성된 원 타임 ID를 이용해, 장치간(클라이언트·서버간)에 있어서의 인증을 하도록 했으므로, 제3자(공격자)가 송신자·수신자를 특정할 수 없게 되는 한편, 정당한 송신자·수신자이면 원 타임 ID를 식별 정보로서 파악할 수가 있다. The present invention also allows authentication between devices (client and server) using one-time IDs generated by the various one-time ID generation methods described above. While the sender / receiver cannot be specified, the one-time ID can be grasped as identification information as long as it is a valid sender / receiver.

따라, DoS 공격이나 스푸핑(spoofing) 등에 대한 내성을 강화할 수가 있어 개방적인 네트워크 환경하에 있어도, ID정보의 보호를 가능하게 하여, 통신의 안전성을 향상시킬 수가 있다. 또, 원격 접근이 가능하게 되어, 편리성의 향상을 가능하게 할 수가 있다. As a result, resistance to DoS attacks, spoofing, and the like can be strengthened, and even in an open network environment, ID information can be protected and communication safety can be improved. In addition, it is possible to remotely access and to improve convenience.

본 발명에서는 또한, 제1 장치의 정당성을 판정하는데 이용하는 일방향 함수 Fc로 서 소정의 공유키, Diffie-Hellman 공개값의 한편, 제1 장치에 미리 설정된 ID, 원 타임 ID를 인수로 하는 유사 난수 함수를 이용하는 것과 함께, 제2 장치의 정당성을 판정하는데 이용하는 일방향 함수 Fs로서 소정의 공유키, Diffie-Hellman 공개값의 한편, Diffie-Hellman 공개값의 다른 한편, 제2 장치에 미리 설정된 ID, 원 타임 ID를 인수로 하는 유사 난수 함수를 이용하도록 했으므로, 종래의 키 교환·인증 방식에서는 3회 필요했던 통신 횟수를 2회로 절감 하는 것이 가능하게 되어, 신속하고 안전한 인증 및 키 교환을 실현하는 것이 가능하게 된다. The present invention also provides a pseudo-random function having a predetermined shared key, a Diffie-Hellman public value, an ID preset in the first device, and a one-time ID as arguments as the one-way function Fc used to determine the validity of the first device. A predetermined one-way function Fs used to determine the validity of the second device, the ID set in advance on the other device of the Diffie-Hellman public value and the other of the Diffie-Hellman public value, one time Since a pseudo-random function using ID as an argument is used, it is possible to reduce the number of communication times required three times in the conventional key exchange / authentication method to two times, thereby enabling quick and secure authentication and key exchange. do.

본 발명은 게다가, 통신 단위마다 변화하는 가변 공유키를 생성하고, 이 가변 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 원 타임 ID를 생성하거나 가변 공유키를 생성하는 한편, 가변 공유키와 통신 순서에 관한 정보를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 원 타임 ID를 생성하고, 장치간 또는 어플리케이션간에 소정의 가변 공유키를 생성하거나 혹은, 소정의 통신 단위내에서 난수를 생성하는 한편, 이 난수와 상기 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 원 타임 ID를 생성하는 등의 여러 가지의 원 타임 ID의 생성 방법에 의해 생성된 원 타임 ID를 이용해, 장치간 (클라이언트·서버간)에 있어서의 인증을 하도록 했으므로, 도청이 곤란하고 안전성이 뛰어난 원 타임 ID를 생성하는 것이 가능해져, 원 타임 ID의 장래에 미치는 안전성(PFS)을 실현할 수 있다고 하는 효과를 얻을 수 있다. In addition, the present invention further generates a variable shared key that varies for each communication unit, obtains a function value of a one-way function that takes the variable shared key as an argument, generates a one-time ID from the function value, or generates a variable shared key. Obtains a function value of a one-way function that takes a variable shared key and information about a communication sequence as arguments, generates a one-time ID from the function value, generates a predetermined variable shared key between devices or applications, or While generating a random number in a communication unit, a function value of a one-way function that takes this random number and the shared key as an argument, and generates a one-time ID from the function value. By using the one-time ID generated by the user to authenticate between devices (between client and server), eavesdropping is difficult and excellent in safety. It is possible to generate a time ID, it is possible to obtain an advantage in that it is possible to realize the safety (PFS) on the one-time ID future.

본 발명은 게다가, 통신 단위마다 변화하는 가변 공유키를 생성하고, 아울러 이 가변 공유키을 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 원 타임 ID를 생성하거나 가변 공유키를 생성하고, 이 가변 공유키와 통신 순서에 관한 정보를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 원 타임 ID를 생성하고, 장치간 또는 어플리케이션간에 소정의 가변 공유키를 생성하거나 혹은, 소정의 통신 단위내에서 난수를 생성하는 한편, 이 난수와 상기 공유키를 인수로 하는 일방향 함수의 함수값을 구해서 이 함수값으로부터 원 타임 ID를 생성하는 등의 여러 가지의 원 타임 ID의 생성 방법에 의해 생성된 원 타임 ID를 이용해, 장치간 (클라이언트·서버간)의 인증을 하도록 했으므로, 제3자가 송신자·수신자를 특정할 수 없게 되는 한편, 정당한 송신자·수신자이면 원 타임 ID를 식별 정보로서 파악 할 수 있다고 하는 효과를 얻을 수 있다. In addition, the present invention furthermore generates a variable shared key that changes for each communication unit, obtains a function value of a one-way function that takes the variable shared key as an argument, generates a one-time ID or generates a variable shared key from the function value, Obtains a function value of a one-way function whose argument is information regarding the variable shared key and communication order, generates a one-time ID from the function value, generates a predetermined variable shared key between devices or applications, or By generating a random number in a communication unit, various one-time ID generation methods such as obtaining a function value of a one-way function taking the random number and the shared key as arguments and generating a one-time ID from the function value The generated one-time ID is used to authenticate between devices (between client and server), so that third parties cannot specify the sender or receiver. On the other hand, if a valid sender / receiver is obtained, the one-time ID can be identified as identification information.

따라서, DoS 공격이나 스푸핑(spoofing) 등에 대한 내성을 강화할 수가 있어 개방적인 네트워크 환경하에 있어도, ID정보의 보호를 가능하게 하여, 통신의 안전성을 향상 시킬 수가 있다. 또, 원격 접근이 가능하게 되어, 편리성의 향상을 가능하게 할 수도 있다. Therefore, resistance to DoS attack, spoofing, etc. can be strengthened, and even in an open network environment, ID information can be protected and communication safety can be improved. In addition, the remote access can be enabled, and the convenience can be improved.

이와 같은 본 발명의 목적 및 잇점은 첨부 도면을 참조해 설명되는 이하의 실시의 형태에 의해 한층 더 밝혀질 것이다. Such objects and advantages of the present invention will be further clarified by the following embodiments described with reference to the accompanying drawings.

(실시의 형태 1)(Embodiment 1)

이하, 도면을 참조해 본 발명의 실시의 형태의 일례를 상세하게 설명한다.도 2는 본 발명의 제1의 실시의 형태와 관련되는 클라이언트·컴퓨터와 서버·컴퓨터와의 개략 구성, 및 본 발명이 적용 가능한 네트워크·시스템의 개략 구성을 나타내는 블럭도이다. 본 실시의 형태는, 네트워크에서 서버·컴퓨터와 클라이언트·컴퓨터와의 사이에 상호 인증하는 경우에 본 발명을 적용한 것이다. EMBODIMENT OF THE INVENTION Hereinafter, an example of embodiment of this invention is described in detail with reference to drawings. FIG. 2: is a schematic structure of the client computer and server computer which concern on 1st Embodiment of this invention, and this invention. It is a block diagram which shows schematic structure of this applicable network system. This embodiment applies the present invention when mutual authentication is performed between a server computer and a client computer in a network.

도 2에서, 네트워크 시스템은, CPU를 적어도 포함-또는 복수의 클라이언트·컴퓨터(10), 및 CPU를 적어도 포함-또는 복수의 서버·컴퓨터(40)가, 각각 모뎀, 라우터, TA(터미널·어댑터: Terminal Adapter) 등을 개입시켜, 네트워크(예를 들면, 인터넷) 32로 접속되어 구성되어 있다. 이러한 컴퓨터는, 네트워크(32)를 개입시켜, 상호 통신에 의해 정보 수수가 가능하다. In FIG. 2, the network system includes at least a CPU-or a plurality of client computers 10, and a CPU at least-or a plurality of server computers 40 each include a modem, a router, and a TA (terminal adapter). It is connected to a network (for example, the Internet) 32 via a terminal adapter). Such a computer can receive information by mutual communication via the network 32.

덧붙여, 도 2에 나타낸 것 처럼, 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)의 각각은 하나의 컴퓨터로 설명하지만, 이러한 클라이언트·컴퓨터(10), 서버·컴퓨터(40)는 복수라도 좋다. In addition, although each of the client computer 10 and the server computer 40 is demonstrated by one computer, as shown in FIG. 2, the client computer 10 and the server computer 40 may be more than one. .

덧붙여, 클라이언트·컴퓨터(10)가 본 발명의 제1 인증 장치에 부합할 때, 서버·컴퓨터(40)가 본 발명의 제1 인증 장치에 부합할 때, 클라이언트·컴퓨터(10)가 제2 인증 장치에 부합한다. 또, 네트워크(32)는 본 발명의 통신회선에 부합한다. In addition, when the client computer 10 conforms to the first authentication apparatus of the present invention, when the server computer 40 conforms to the first authentication apparatus of the present invention, the client computer 10 authenticates the second authentication. Conforms to the device. The network 32 also conforms to the communication line of the present invention.

본 실시의 형태에서는, 네트워크로서 인터넷을 적용할 경우를 설명한다. 이 경우, 적어도 하나의 컴퓨터는 WWW 서버로서 기능시킬 수가 있고, 또 다른 머신은 WWW 클라이언트로서 기능 시키는 것도 할 수 있다. In this embodiment, a case of applying the Internet as a network will be described. In this case, at least one computer can function as a WWW server, and another machine can function as a WWW client.

구체적으로, 각 클라이언트·컴퓨터(10)에는, WWW 브라우저가 인스톨 되어 있어, 이 WWW 브라우저를 기동하는 것으로써, 네트워크(32)를 개입시켜 서버·컴퓨터(40)으로 임의에 액세스 가능해진다. 이 때, 액세스 위치(액세스처의 서버·컴퓨터(40)의 위치, 및 서버·컴퓨터(40)내의 정보의 위치에서 구성되는 데이터)는, URL(Uniform Resource Locator)으로 지정된다. Specifically, each client computer 10 is provided with a WWW browser, and by activating the WWW browser, the server computer 40 can be arbitrarily accessed through the network 32. At this time, the access position (data composed of the position of the server computer 40 of the access destination and the position of the information in the server computer 40) is designated by a URL (Uniform Resource Locator).

서버·컴퓨터(40)는, 클라이언트·컴퓨터(10)로부터 액세스 요구가 있을 경우, URL로 지정된 위치에 있는 데이터를, 네트워크(32)를 개입시켜, 액세스 원래의 클라이언트·컴퓨터(10)에 송신한다. 이 때, 데이터는, 일반적으로, HTTP에 따라 전송된다. When there is an access request from the client computer 10, the server computer 40 transmits the data at the position designated by the URL to the client computer 10 of the access via the network 32. . At this time, data is generally transmitted in accordance with HTTP.

또한, 클라이언트·컴퓨터(10)의 식별에는 IP(Internet Protocol) 주소가 이용된다. 또, 클라이언트·컴퓨터(10)를 조작하는 유저의 식별에는, 유저 자신의 입력이나, 미리 정해지고 있는 코드등을 유저 ID로 이용할 수가 있다. In addition, an IP (Internet Protocol) address is used for identification of the client computer 10. In addition, the user's own input, a predetermined code, or the like can be used as the user ID for identification of the user who operates the client computer 10.

상기 컴퓨터에는, 해당 컴퓨터로 지시 입력을 하기 위해서, 각각 키보드, 마우스등의 입력장치가 설치되어 있고, 컴퓨터에 의한 처리 결과등을 표시하기 위해서 디스플레이가 설치되어 있다. 또한, 컴퓨터는, 범용적이고 일반적인 하드웨어 구성이기 때문에, 상세한 설명은 생략한다. The computer is provided with input devices such as a keyboard and a mouse, respectively, for inputting instructions to the computer, and a display is provided for displaying results of processing by the computer. In addition, since a computer is a general and general hardware structure, detailed description is abbreviate | omitted.

클라이언트·컴퓨터(10)는, 시스템 파라미터등을 입력 하기 위한 입력장치 12를 갖추고 있어, 입력장치 12는 입력에 따른 난수 R를 발생하는 난수 생성기(14)및 메모리(16)로 접속되어 있다. 난수 생성기(14)는, 메모리(16)및 난수 R에 근거하는 인증용 데이터 A를 구하는 인증용 데이터 연산기(18)으로 접속되어 있다. 인증용 데이터 연산기(18)은, 네트워크(32)를 개입시켜 서버·컴퓨터(40)와 통신하기 위해서 네트워크(32)로 접속된 통신 인터 페이스(이하, 통신 I/F라고 한다; 30)으로 접속되어 있다. The client computer 10 has an input device 12 for inputting system parameters and the like, and the input device 12 is connected to a random number generator 14 and a memory 16 that generate a random number R according to the input. The random number generator 14 is connected to a memory 16 and an authentication data calculator 18 for obtaining authentication data A based on the random number R. The authentication data calculator 18 is connected to a communication interface (hereinafter referred to as communication I / F; 30) connected to the network 32 in order to communicate with the server computer 40 via the network 32. It is.

통신 I/F(30)에는, 검증기(20)가 접속되어 있다. 이 검증기(20)는 메모리(16)및 인증용 데이터 연산기(18)에도 접속되어 있다. 또, 검증기(20)는 서버·컴퓨터(40)와의 사이에 인증했을 때에, 인증에 의해 상호 관계가 정당하다라고 판정된 것을 표시하는 OK장치(22)및 인증에 의해 상호 관계가 부당하다라고 판정된 것을 표시하는 NG장치 24에도 접속되어 있다. The verifier 20 is connected to the communication I / F 30. This verifier 20 is also connected to a memory 16 and an authentication data operator 18. In addition, when the validator 20 authenticates with the server computer 40, it is determined that the mutual relationship is invalid by the OK device 22 and the authentication indicating that the mutual relationship is determined to be justified by the authentication. It is also connected to the NG apparatus 24 which displays the thing.

서버·컴퓨터(40)는 시스템 파라미터등을 입력 하기 위한 입력장치(42)를 갖추고 있어 입력장치(42)는 입력에 따른 난수 Q를 발생하는 난수 생성기(44)및 메모리(46)로 접속되어 있다. 난수 생성기(44)는 메모리(46)및 난수 R에 근거하는 인증용 데이터 B를 구하는 인증용 데이터 연산기(48)으로 접속되어 있다. 인증용 데이터 연산기(48)은 네트워크(32)를 개입시켜 클라이언트·컴퓨터(10)과 통신하기 위해서 통신 I/F(60)에 접속되어 있다. The server computer 40 has an input device 42 for inputting system parameters and the like. The input device 42 is connected to a random number generator 44 and a memory 46 that generate a random number Q according to the input. . The random number generator 44 is connected to a memory 46 and an authentication data operator 48 for obtaining authentication data B based on the random number R. The authentication data calculator 48 is connected to the communication I / F 60 in order to communicate with the client computer 10 via the network 32.

통신 I/F(60)에는, 검증기(50)이 접속되어 있다. 이 검증기(50)는 메모리(46)및 인증용 데이터 연산기(48)에도 접속되어 있다. 또, 검증기(50)는 클라이언트·컴퓨터(10)과의 사이에 인증했을 때에, 인증에 의해 상호 관계가 정당하다라고 판정된 것을 표시하는 OK장치(52)및 인증에 의해 상호 관계가 부당하다라고 판정된 것을 표시하는 NG장치(54)에도 접속되어 있다. The verifier 50 is connected to the communication I / F 60. This verifier 50 is also connected to a memory 46 and an authentication data operator 48. In addition, when the validator 50 authenticates with the client computer 10, it is determined that the mutual relationship is invalid by the OK device 52 and the authentication indicating that the mutual relationship is determined to be justified by the authentication. It is also connected to the NG apparatus 54 which displays what was determined.

[개념 프로세스][Conceptual process]

다음에, 본 실시의 형태의 네트워크·시스템에 있어서의 상호 인증의 개념 프로세스를 설명한다. 본 실시의 형태에서는, 컴퓨터간의 상호 인증을 디지탈 데이터의 수수로 실행한다. 도 3에는, 상호 인증의 처리 프로세스를 플로차트로서 나타냈다. Next, the conceptual process of mutual authentication in the network system of this embodiment is demonstrated. In the present embodiment, mutual authentication between computers is performed by passing digital data. 3, the processing process of mutual authentication is shown as a flowchart.

스텝 100에서는, 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)는, 미리 정한 수순에 의해, 쌍방으로 공통된 초기값(은폐키 K0)을 기억한다.In step 100, the client computer 10 and the server computer 40 store the common initial value (hidden key K 0 ) which is common to both by a predetermined procedure.

미리 정한 순서라는 것은, 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)간의 상호 인증을 실행할 때의 초기값을 설정하는 것이다. 예를 들면, 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)에 공통된 데이터를 초기값으로서 보관 유지 시키기 때문에, 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)의 어느 쪽의 한편, 또는 제3자의 컴퓨터에 의해 정해지는 초기값을, 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)의 쌍방에 제공한다. The predetermined procedure is to set initial values when mutual authentication between the client computer 10 and the server computer 40 is executed. For example, since data common to the client computer 10 and the server computer 40 is held as an initial value, either or both of the client computer 10 and the server computer 40 can be stored. The initial value determined by the three-character computer is provided to both the client computer 10 and the server computer 40.

이 제공은, 초기값을 전자 메일 등의 전자적으로 데이터 송신하는 것이나, 초기값을 인쇄한 인쇄물을 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)의 쌍방으로 송부해 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)의 각각으로 입력하는 것에 따라 달성된다. This provision is to transmit the initial value electronically, such as an electronic mail, and to send the printed matter which printed the initial value to both the client computer 10 and the server computer 40, and to send the client computer 10 and This is achieved by inputting to each of the server computer 40.

본 실시의 형태에서는, 이 초기값으로서 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)의 쌍방에서 공통된 상태를 유지 하기 위해, 클라이언트·컴퓨터(10)과 서버·컴퓨터(40)와의 사이에 만들어진 데이터 수수의 이력을 초기값으로, 후의 클라이언트·컴퓨터(10)과 서버·컴퓨터(40)와의 사이에 만들어진 데이터 수수마다 초기값을 갱신한다. In the present embodiment, the initial value is provided between the client computer 10 and the server computer 40 to maintain a state common to both the client computer 10 and the server computer 40. The initial value is updated for each data number created between the client and the client 10 and the server 40 after the data transfer history is the initial value.

즉, 상기 초기값은, 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)의 쌍방에 공통된 값이면, 상기와 같이 임의의 값을 제공하는 것으로 쌍방에서 보관 유지해도 괜찮지만, 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)의 쌍방에서 공통된 상태를 유지 하기 위해서, 임의의 알고리즘에 의한 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)의 사이의 데이터 수수의 결과가 바람직하다. 본 실시의 형태에서는, 임의의 알고리즘에는 송신측과 수신측과의 쌍방의 데이터를 송신측 및 수신측의 쌍방에서 공통으로 유지하는 순서로 가능하고, 구체적인 것은 후에 기술 하는 상호 인증의 결과의 데이터를 이용하고 있다.In other words, the initial value is set to both the client computer 10 and the server computer 40. If it is a common value, you may hold | maintain both sides by providing arbitrary values as mentioned above, but in order to maintain a common state in both the client computer 10 and the server computer 40 by arbitrary algorithms. The result of the data transfer between the client computer 10 and the server computer 40 is preferable. In the present embodiment, any algorithm can be used in the order of maintaining both data of the transmitting side and the receiving side in common in both the transmitting side and the receiving side. Specifically, data of the result of mutual authentication described later will be described. I use it.

덧붙여, 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)의 쌍방으로 기억하는 데이터의 형식(예를 들면 포맷)은, 동일하게 한정 하는 것은 아니다. 즉, 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)의 쌍방으로 기억하는 데이터는, 그 데이터의 최종적인 값이 동일하다면, 데이터 그것의 동일성으로 한정되지 않는다. 예를 들면, 다른 형식으로 격납하도록 해도 괜찮다. 이와 같이 하면, 한편의 데이터가 누설한 경우이더라도, 다른 한편의 데이타는 유지가 가능해진다. In addition, the format (for example, format) of the data memorize | stored by both the client computer 10 and the server computer 40 is not limited similarly. That is, data stored in both the client computer 10 and the server computer 40 is not limited to the sameness of the data as long as the final values of the data are the same. For example, it may be stored in a different format. In this way, even when the data on the other hand leaks, the data on the other hand can be maintained.

우선, 스텝 110에서는, 클라이언트·컴퓨터(10)가 인증 데이터를 송부한다. 이 인증 데이터는, 클라이언트·컴퓨터(10)로부터 서버·컴퓨터(40)에 대해서 상호 인증을 요구하는 최초의 데이터이고, 기억되어 있는 초기값을 은폐키로서 이용해 클라이언트·컴퓨터(10)내에서 생성되는 데이터를 기억함과 동시에 은폐키에 의해 암호화를 해서, 송부한다. First, in step 110, the client computer 10 sends authentication data. This authentication data is the first data requesting mutual authentication from the client computer 10 to the server computer 40, and is generated in the client computer 10 using the stored initial value as a concealment key. The data is stored and encrypted by the concealment key and sent.

다음에, 스텝 120에서는, 서버·컴퓨터(40)에 두고, 클라이언트·컴퓨터(10)로부터 송부된 인증 데이터를 받아, 기억되어 있는 초기값을 은폐키로서 이용해 이 시점에서 서버·컴퓨터(40)내에서 생성되는 데이터를 기억함과 동시에 은폐키에 의한 암호화를 한 인증 데이터를 송부한다. 아울러, 인증 데이터에는, 클라이언트·컴퓨터(10)로부터 받은 인증 데이터에 포함되는 일부의 데이터를 포함시키게 한다. Next, in step 120, the authentication data sent from the client computer 10 is received in the server computer 40, and the stored initial value is used as a concealment key at this point in the server computer 40. In addition to storing the data generated by the server, authentication data encrypted with the concealment key is sent. In addition, the authentication data includes some data included in the authentication data received from the client computer 10.

이것에 의해, 서버·컴퓨터(40)로부터 송부하는 인증 데이터가 클라이언트·컴퓨터(10)로부터의 요구에 대한 응답인 것을 표현하는 데이터로서 송부할 수가 있다. 이 인증 데이터를 송부한 후에는, 받은 인증 데이터를 해석함과 동시에, 서버·컴퓨터(40)내에서 생성한 데이터의 각각을 이용해 신규의 은폐키를 생성함과 동시에, 신규의 은폐키로, 기억되어 있는 은폐키를 갱신한다. Thereby, the authentication data sent from the server computer 40 can be sent as data representing that the response to the request from the client computer 10 is a response. After sending the authentication data, the received authentication data is analyzed, and a new concealment key is generated using each of the data generated in the server computer 40, and stored as a new concealment key. Updates a hidden key

다음에, 스텝 130에서는, 클라이언트·컴퓨터(10)에 두고, 서버·컴퓨터(40)로부터 송부된 인증 데이터를 받아, 기억되어 있는 초기값을 은폐키로서 이용해 이 시점에서 클라이언트·컴퓨터(10)내에서 생성되는 데이터를 기억 함과 동시에 은폐키에 의해 암호화를 한 인증 데이터를 송부한다. 덧붙여, 인증 데이터에는, 서버·컴퓨터(40)로부터 받은 인증 데이터에 포함되는 일부의 데이터를 포함시키게 한다. Next, in step 130, the authentication data sent from the server computer 40 is received in the client computer 10, and the stored initial value is used as a concealment key at this point in the client computer 10. In addition to storing the data generated by the server, the authentication data encrypted by the concealment key is sent. In addition, the authentication data includes some data included in the authentication data received from the server computer 40.

이것에 의해, 클라이언트·컴퓨터(10)로부터 송부하는 인증 데이터가 서버·컴퓨터(40)로부터 송부된 것에 대한 응답인 것으로 표현하는 데이터로서 송부할 수가 있다. 이 인증 데이터를 송부한 후에는, 받은 인증 데이터를 해석 함과 동시에, 클라이언트·컴퓨터(10)내에서 생성한 데이터의 각각을 이용해 신규의 은폐키를 생성함과 동시에, 신규의 은폐키로 기억되어 있는 은폐키를 갱신한다. Thereby, the authentication data sent from the client computer 10 can be sent as data expressed as being a response to the one sent from the server computer 40. After sending the authentication data, the received authentication data is analyzed, and a new concealment key is generated using each of the data generated in the client computer 10, and stored as a new concealment key. Update the concealment key.

따라서, 스텝 130의 프로세스가 종료한 시점에, 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)의 쌍방에 두고, 초기값(은폐키)이 갱신되어, 공통의 값(은폐키)으로서 유지할 수가 있다. Therefore, at the time when the process of step 130 ends, the initial value (hidden key) is updated in both the client computer 10 and the server computer 40, and it can be maintained as a common value (hidden key). have.

다음의 스텝 140에서는, 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)의 쌍방의 프로세스가 미리 정한 소정의 횟수를 완료 했는지 그렇지 않은지를 판단한다. 이 판단 기준 횟수는, 적어도 1회의 횟수가 미리 설정되어 있어 본 실시의 형태에서는, 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)의 쌍방으로 공통의 횟수의 값이 보관 유지된다. 또한, 판단 기준 횟수는, 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)의 각각으로 다른 횟수의 값을 보관 유지해도 괜찮다. 이 경우에는, 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)의 각각으로 인증의 기준이 다르게 되지만, 인증이 정당하다면 판단 기준 횟수가 적은 컴퓨터측에서 여러 차례의 데이터 수수가 요구되는 것으로 보고 달성 할 수 있다. 이 횟수를 참조하는 것으로, 클라이언트·컴퓨터(10)에서는, 스텝 140의 갱신 처리, 서버·컴퓨터(40)에서는 스텝 120의 갱신 처리가 보관 유지되어 있는 횟수를 종료할 때까지 부정된다. 판단 기준 횟수가 1회에 설정되어 있는 경우에는, 스텝 140으로 부정되는 일 없이, 그대로 스텝 150에 진행된다. In following step 140, it is determined whether the process of both the client computer 10 and the server computer 40 completed the predetermined number of times predetermined. The number of times of this determination reference | standard is set in advance at least 1 time, and in this embodiment, the value of the number of times common to both the client computer 10 and the server computer 40 is hold | maintained. In addition, the judgment reference number may hold the value of a different number of times in each of the client computer 10 and the server computer 40. In this case, although the standard of authentication is different for each of the client computer 10 and the server computer 40, if the authentication is justified, it is achieved by reporting that multiple times of data transfer are required on the computer side with fewer judgment criteria. can do. By referring to the number of times, the client computer 10 is denied until the update process in step 140 and the server computer 40 end the number of times the update process is held. If the number of determination criteria is set once, the process proceeds directly to Step 150 without being denied to Step 140.

따라서, 스텝 140으로 긍정적으로 판단된 싯점에, 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)의 쌍방에서, 모든값(은폐키)이 갱신되어, 쌍방에서 공통의 값(은폐키)이 유지되게 된다. 스텝 150에서는, 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)의 쌍방에 두고, 인증 처리가 실행되어 본 프로세스를 종료한다. Therefore, at the point judged affirmatively in step 140, all values (hidden keys) are updated by both the client computer 10 and the server computer 40, and the common values (hidden keys) are maintained by both. Will be. In step 150, the authentication process is performed in both the client computer 10 and the server computer 40, and the process ends.

상기 인증 처리는, 기억되어 있는 최신의 은폐키를 이용해, 송부된 인증 데이타가 정당한 데이터인가, 그렇지 않은가를 판별하는 것에 의해 만들어진다. 이 인증 처리는, 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)의 쌍방에서 공통으로 실행 할 수 있다. 이 인증 처리가 완료 하면, 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)의 쌍방에서 상호 인증이 완료한 것이 된다. The authentication process is made by determining whether the transmitted authentication data is legitimate data or not, using the latest hidden key stored. This authentication process can be performed in common between both the client computer 10 and the server computer 40. When this authentication process is completed, mutual authentication is completed by both the client computer 10 and the server computer 40.

[상세 프로세스][Detailed process]

다음에, 상기 개념 프로세스로 말한 상호 인증을 상세하게 설명한다. Next, mutual authentication referred to in the above conceptual process will be described in detail.

(은폐키를 포함한 데이터의 구성)(Organization of data including concealment key)

본 실시의 형태에서는, 은폐키는, 정보 수수마다 최신 데이터에 갱신되기 때문에, 이력 데이터 K로서 기능을 한다. 이하의 설명에서는, 이 이력 데이터 K로 기능하는 것으로서 은폐키 K를 동일 표기로 한다. In the present embodiment, since the concealment key is updated to the latest data for each information pass, it functions as history data K. In the following description, the hidden key K is denoted by the same notation as functioning as the historical data K.

상기 개념 프로세스로 인증 데이터로서 이용하는 초기값을 포함한 은폐키 K는, 클라이언트·컴퓨터(10)를 특정하기 위한 암증 데이터 C 및 인증 데이터 R와 서버·컴퓨터(40)을 특정하기 위한 암증 데이터 S 및 인증 데이터 Q로 구성된다. 덧붙여, 이하의 설명에서는, 은폐키 K, 암증 데이터 C, 인증 데이터 R, 암증 데이터 S 및 인증 데이터 Q에 초기값 「0」으로부터 증가하는 첨자를 첨부해, 갱신 상태를 표현하는 것이라고 하지만, 이들을 일반적으로 설명하는 경우에는 첨자를 삭제한 기호만을 이용해 설명한다. The concealment key K including the initial value used as the authentication data in the conceptual process is the encryption data C for specifying the client computer 10 and the authentication data R and the encryption data S for specifying the server computer 40 and the authentication. It consists of data Q. In addition, in the following description, although the subtracting key K, the cancer data C, the authentication data R, the authentication data S, and the authentication data Q append the subscript which increases from initial value "0", and expresses an update state, these are general In the case of explanation, only the symbols with subscripts removed will be described.

본 실시의 형태에서는, 초기값으로서, 구체적인 것은 후에 기술하는 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)의 쌍방에서 만들어진 데이터 수수의 결과를 기억하는 것으로 하여, 이미 이력 데이터가 내재하는 것으로 한다. In this embodiment, as an initial value, it is assumed that the result of the data transfer made by both the client computer 10 and the server computer 40 described later is specifically stored, and the historical data is already inherent. .

은폐키 K는, 암증 데이터 C, 인증 데이터 R, 암증 데이터 S 및 인증 데이터 Q의 각각을 이용한 함수 g(C, S, Q, R)의 계산 결과를 이용한다. 함수 g는, 단순화나 계수 부가의 다항식, 곱셈, 곱의 합(sum of products) 그리고 해쉬 함수를 일례로 하고 있다. The concealment key K uses the calculation result of the function g (C, S, Q, R) using each of the encryption data C, the authentication data R, the encryption data S, and the authentication data Q. The function g is an example of a polynomial, a multiplication, a sum of products, and a hash function with simplification and coefficient addition.

또, 클라이언트·컴퓨터(10)측의 초기값C0, R0 을 생성하기 위한 최초의 값은, 암증 데이터 C 및 인증 데이터 R에 대해서 유저가 설정한 값을 이용해도, 자동적으로 생성해도 괜찮다. 인증 데이터 R는 정보 수수마다 내용이 무규칙으로 변동하는 것이 바람직하기 때문에, 본 실시의 형태에서는, 인증 데이터 R로서 난수 발생기 14에 발생된 난수를 이용하고 있다. 그러나, 본 발명은, 인증 데이터 R에 난수를 이용하기로 한정되는 것은 아니다. 예를 들면, 현재 연월일, 일시, 시각 등의 시간 데이터, 컴퓨터내에 격납 된 임의 파일 용량이나 타임 스탬프 및 정보 수수 할 때의 용량등을 이용할 수가 있다.The first value for generating the initial values C 0 and R 0 on the client computer 10 side may be automatically generated by using a value set by the user for the encryption data C and the authentication data R. It is preferable that the contents of the authentication data R fluctuate randomly for every number of information, and according to the present embodiment, the random data generated in the random number generator 14 is used as the authentication data R. However, the present invention is not limited to using random numbers in the authentication data R. For example, you can use time data such as the current date, date, date and time, arbitrary file size stored in the computer, time stamp, and capacity when receiving information.

마찬가지로, 서버·컴퓨터(40)측의 초기값 S0, Q0 을 생성하기 위한 최초의 값은, 암증 데이터 S 및 인증 데이터 Q에 대해서 서버·컴퓨터(40)을 관리하는 오퍼레이터가 설정한 값을 이용해도, 자동적으로 생성해도 괜찮다. 상기와 같이, 인증 데이터 Q는 정보 수수마다 내용이 무규칙으로 변동하는 것이 바람직하기 때문에, 본 실시의 형태에서는, 인증 데이터 Q로서 난수 생성기(44)로 발생된 난수를 이용하고 있다. 그러나, 본 발명은, 인증 데이터 Q에 난수를 이용하기로 한정 되는 것은 아니다. 예를 들면, 현재 연월일, 일시, 시각 등의 시간 데이터, 컴퓨터내에 격납된 임의 파일 용량나 타임 스탬프, 및 정보 수수 때의 용량 등을 이용할 수가 있다.Similarly, the first value for generating the initial values S 0 and Q 0 on the server computer 40 side is a value set by the operator managing the server computer 40 with respect to the encryption data S and the authentication data Q. You can use it or generate it automatically. As described above, it is preferable that the contents of the authentication data Q fluctuate randomly for every number of information. In this embodiment, the random number generated by the random number generator 44 is used as the authentication data Q. However, the present invention is not limited to the use of random numbers in the authentication data Q. For example, it is possible to use time data such as the current date, date, date and time, arbitrary file capacity or time stamp stored in the computer, capacity when receiving information, and the like.

또, 클라이언트·컴퓨터(10)측의 인증 데이터 R, 및 서버·컴퓨터(40)측의 인증 데이터 Q를 다른 한편에 송신하지만, 그 송신 데이터에 대해서 제3자에 의한 특정을 곤란하게 하기 위해, 비닉을 할 필요가 있다. 여기서, 본 실시의 형태에서는, 클라이언트·컴퓨터(10)로부터 서버·컴퓨터(40)에 송신하는 인증 데이터 R, 및 서버·컴퓨터(40)로부터 클라이언트·컴퓨터(10)에 송신하는 인증 데이터 Q를 은폐키 K로 은폐한다. In addition, although the authentication data R on the client computer 10 side and the authentication data Q on the server computer 40 side are transmitted to the other side, in order to make it difficult to specify by the third party about the transmission data, You need to do a bean. Here, in the present embodiment, the authentication data R transmitted from the client computer 10 to the server computer 40 and the authentication data Q transmitted from the server computer 40 to the client computer 10 are concealed. Cover up with key K.

즉, 클라이언트·컴퓨터(10)로부터 서버·컴퓨터(40)에 송신하는 경우, 미리 정한 함수v(R, K)에 의해 인증 데이터 A를 생성해서 송신한다. 함수v는, 단순화나 계수 부가의 다항식, 곱셈, 곱의 합(sum of products) 그리고 해쉬 함수를 일례로 하고 있다. 같이 서버·컴퓨터(40)로부터 클라이언트·컴퓨터(10)에 송신하는 경우도, 미리 정한 함수 w(Q, K)에 의해 인증 데이터 B를 생성해 송신한다. 함수 w는, 단순화나 계수 부가의 다항식, 곱셈, 곱의 합(sum of products) 그리고 해쉬 함수를 일례로 하고 있다. 다음에, 함수v, w의 일례를 나타낸다. That is, in the case of transmitting from the client computer 10 to the server computer 40, the authentication data A is generated and transmitted by a predetermined function (R, K). The function 일례 exemplifies a polynomial, a multiplication, sum of products, and a hash function with simplification and coefficient addition. Similarly, when transmitting from the server computer 40 to the client computer 10, the authentication data B is generated and transmitted by the predetermined functions w (Q, K). The function w takes as an example a polynomial, a multiplication, a sum of products, and a hash function with simplification and coefficient addition. Next, an example of a function # and w is shown.

Am =v(R, K)=Rm +Km-1 A m = v (R, K) = R m + K m-1

Bm =w(Q, K)=Qm +Km-1 B m = w (Q, K) = Q m + K m-1

다만, m ≥ 1의 자연수이다. However, it is a natural number of m ≥ 1.

또, 클라이언트·컴퓨터(10)측의 암증 데이터 C, 및 서버·컴퓨터(40)측의 암증 데이터 S를 다른 한편에 송신하지만, 이하에 설명하는 것 처럼, 암증 데이터는 정보 수수의 횟수에 변경되고 있다. 즉, 클라이언트·컴퓨터(10)로부터 서버·컴퓨터(40)에 송신하는 암증 데이터 C는, 그 송신 할 경우에 미리 정한 함수 y(S, R)에 의해 신규의 암증 데이터 C를 생성해서 송신한다. 함수 y는, 단순화나 계수 부가의 다항식, 곱셈, 곱의 합(sum of products) 그리고 해쉬 함수를 일례로 하고 있다. 이와 마찬가지로, 서버·컴퓨터(40)로부터 클라이언트·컴퓨터(10)에 송신하는 경우도, 미리 정한 함수 z(C, Q)에 의해 암증 데이터 S를 생성해서 송신한다. 함수 z는, 단순화나 계수 부가의 다항식, 곱셈, 곱의 합(sum of products) 그리고 해쉬 함수를 일례로 하고 있다. 다음에, 함수 y, z의 일례를 나타낸다. In addition, although the encryption data C on the client computer 10 side and the encryption data S on the server computer 40 side are transmitted to the other side, as described below, the encryption data is changed in the number of times of information transfer. have. That is, the encryption data C transmitted from the client computer 10 to the server computer 40 generates and transmits the new encryption data C by the function y (S, R) predetermined in the case of the transmission. The function y is an example of a polynomial, a multiplication, a sum of products, and a hash function with simplification and coefficient addition. Similarly, when transmitting from the server computer 40 to the client computer 10, the encryption data S is generated and transmitted by the predetermined function z (C, Q). The function z exemplifies a polynomial, a multiplication, a sum of products, and a hash function with simplification and coefficient addition. Next, an example of the functions y and z is shown.

Cm =y(S, R)=Sm-1 +Rm-1 C m = y (S, R) = S m-1 + R m-1

Bm =w(C, Q)=Cm-1 +Qm-1 B m = w (C, Q) = C m-1 + Q m-1

다만, m ≥ 1의 자연수이다. However, it is a natural number of m ≥ 1.

또한, 암증 데이터의 송신에서는, 제3자에 의한 특정을 곤란하게 하기 때문에, 비닉을 해도 괜찮다. 예를 들면, 클라이언트·컴퓨터(10)로부터 서버·컴퓨터(40)에 송신하는 암증 데이터 C 및 서버·컴퓨터(40)로부터 클라이언트·컴퓨터(10)에 송신하는 암증 데이터 S를 은폐키 K로 은폐하는 것처럼 해도 괜찮다. 즉, 은폐키 K를 파라미터로서 추가한 함수로 해도 괜찮다. In addition, in the transmission of dark data, identification by a third party makes it difficult, so it is good to perform the beaning. For example, the concealment data K transmitted from the client computer 10 to the server computer 40 and the encryption data S transmitted from the server computer 40 to the client computer 10 are concealed with a concealment key K. It's okay to do it. In other words, it may be a function in which a hidden key K is added as a parameter.

(상세 프로세스)(Detailed process)

도 4는 본 발명의 제1의 실시의 형태와 관련되는 상호 인증에 있어서의 상세 프로세스를 나타내는 이미지 도이다. 이하, 도 4를 참조해서 본 실시의 형태의 상세 프로세스를 설명한다. 4 is an image diagram showing a detailed process in mutual authentication according to the first embodiment of the present invention. Hereinafter, the detailed process of this embodiment is demonstrated with reference to FIG.

스텝 P0:클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)의 각각에, 초기값의 은폐키 K0 를 격납한다. 이 프로세스는, 도 3의 스텝 100과 도 4의 프로세스 Pc0 및 Ps0에 부합한다.Step P0: The concealment key K 0 of the initial value is stored in each of the client computer 10 and the server computer 40. This process corresponds to step 100 of FIG. 3 and processes Pc0 and Ps0 of FIG.

스텝 P1:클라이언트·컴퓨터(10)에서는, 난수 R를 생성해, 암증 데이터 C 및 인증 데이터 A를 계산해, 서버·컴퓨터(40)으로 송신한다. 이 프로세스는, 도 3의 스텝 110과 도 4의 프로세스 Pc1에 부합한다. Step P1: The client computer 10 generates a random number R, calculates the encryption data C and the authentication data A, and sends it to the server computer 40. FIG. This process corresponds to step 110 of FIG. 3 and process Pc1 of FIG. 4.

즉, 클라이언트·컴퓨터(10)에서는, 난수 생성기(14)에서 난수 R1 를 생성한다. 생성된 난수 R1 , 메모리(16)로 기억되어 있는 은폐키 K0 및 은폐키 K0 를 구성하는 C0 , S0 , Q0 , R0 는 인증용 데이터 연산기(18)에 입력된다. 그리고, 인증용 데이터 연산기(18)은, 이 난수 R1 및 메모리(16)로 기억되어 있는 은폐키 K0 및 은폐키 K0 를 구성하는 암증 데이터 S0 , 인증 데이터 R0 를 이용해 상기 함수 y, v에 의해 신규의 암증 데이터 C1 및 신규의 인증 데이터 A1 를 구한다. 이렇게 구한 신규의 암증 데이터 C1 및 인증 데이터 A1 는 메모리(16)에 기억함과 동시에, 통신 I/F(30)에 출력 되어 네트워크(32)를 개입시켜 서버·컴퓨터(40)에 송신된다. 이 송신 데이터는, 도 4의 데이터 Dc1에 부합한다.That is, the client computer 10 generates the random number R1 in the random number generator 14. The generated random number R 1 , C 0 , S 0 , Q 0 , and R 0 constituting the concealed key K 0 and the concealed key K 0 stored in the memory 16 are input to the authentication data operator 18. The authentication data operator 18 uses the encryption data S 0 and the authentication data R 0 constituting the concealed key K 0 and the concealed key K 0 stored in the random number R 1 and the memory 16. By v, new cancer data C 1 and new authentication data A 1 are obtained. The new encryption data C 1 and authentication data A 1 thus obtained are stored in the memory 16 and output to the communication I / F 30 and transmitted to the server computer 40 via the network 32. This transmission data corresponds to data Dc1 of FIG.

스텝 P2: 서버·컴퓨터(40)는, 클라이언트·컴퓨터(10)로부터 인증 데이터 A 및 암증 데이터 C를 수신함과 동시에, 난수 Q를 생성해 암증 데이터 S, 인증 데이터 Q를 계산해 클라이언트·컴퓨터(10)으로 송신한다. 이것과 함께, 기억되어 있는 은폐키 K0 를 신규의 은폐키 K1 로 갱신한다. 이 프로세스는, 도 3의 스텝 120과 도 4의 프로세스 Ps1에 부합한다.Step P2: The server computer 40 receives the authentication data A and the encryption data C from the client computer 10, generates a random number Q, calculates the encryption data S and the authentication data Q, and calculates the client computer 10. Send by At the same time, the stored concealment key K 0 is updated to the new concealment key K 1 . This process corresponds to step 120 of FIG. 3 and process Ps1 of FIG. 4.

즉, 서버·컴퓨터(40)에서는, 통신 I/F(60)를 개입시켜 검증기(50)에 클라이언트·컴퓨터(10)로부터의 암증 데이터 C1 및 인증 데이터 A1 가 입력된다. 이 때에, 서버·컴퓨터(40)에서는, 난수 생성기(44)에서 난수 Q1 를 생성한다. 생성된 난수 Q1 , 메모리(46)로 기억되어 있는 은폐키 K0 및 은폐키 K0 를 구성하는 C0 , S0 , Q0 , R0 는 인증용 데이터 연산기(48)에 입력된다. 또한, 검증기(50)는, 클라이언트·컴퓨터(10)로부터의 암증 데이터 C1 및 인증 데이터 A1 를 인증용 데이터 연산기(48)에 출력한다.That is, in the server computer 40, the encryption data C 1 and authentication data A 1 from the client computer 10 are input to the verifier 50 via the communication I / F 60. At this time, the server computer 40 generates the random number Q 1 in the random number generator 44. The generated random numbers Q 1 and C 0 , S 0 , Q 0 , and R 0 constituting the concealed key K 0 and the concealed key K 0 stored in the memory 46 are input to the authentication data operator 48. The verifier 50 also outputs the encryption data C 1 and the authentication data A 1 from the client computer 10 to the authentication data calculator 48.

인증용 데이터 연산기(48)은, 난수 Q1, 수신한 암증 데이터 C1 및 기억되어 있는 은폐키 K0 및 은폐키 K0 를 구성하는 인증 데이터 Q0 를 이용해 상기 함수 z, w에 의해 신규의 암증 데이터 S1, 및 신규의 인증 데이터 B1 를 구한다. 이렇게 구한 신규의 암증 데이터 S1 및 인증 데이터 B1 는 통신 I/F(60)에 출력 되어 네트워크(32)를 개입시켜 클라이언트·컴퓨터(10)에 송신된다. 이 송신 데이터는, 도 4의 데이터 Ds1에 부합한다.The authentication data operator 48 uses the random number Q 1 , the received encryption data C 1, and the authentication data Q 0 constituting the stored concealment key K 0 and the concealment key K 0 . The cancer data S 1 and the new authentication data B 1 are obtained. The new encryption data S 1 and authentication data B 1 thus obtained are output to the communication I / F 60 and transmitted to the client computer 10 via the network 32. This transmission data corresponds to data Ds1 of FIG.

이 때, 서버·컴퓨터(40)에서는, 초기값으로서의 은폐키 K를 구성하는 각 데이터에 대해서 신규의 데이터가 입수되어 있다. 즉, 암증 데이터 C에 대해서는 클라이언트·컴퓨터(10)로부터 수신한 암증 데이터 C1 , 암증 데이터 S에 대해서는 인증용 데이터 연산기(48)으로 계산한 암증 데이터 S1 , 인증 데이터 Q에 대해서는 난수 생성기(44)로 발생한 난수 Q1, 인증 데이터 R에 대해서는 클라이언트·컴퓨터(10)로부터 수신한 인증 데이터 A로부터 역산, 즉 은폐키 K0 를 감산하는 것으로 얻을 수 있는 난수 R1 이다.At this time, the server computer 40 obtains new data for each data constituting the concealment key K as an initial value. That is, the cancer data C 1 received from the client computer 10 for the cancer data C, the cancer data S 1 calculated by the authentication data operator 48 for the cancer data S, and the random number generator 44 for the authentication data Q. ) is a random number Q 1, for the authentication data R from the inversion by the authentication data received from the client a, the computer 10, i.e., the random number R 1 can be obtained by subtracting the concealment key K 0 occurred in.

여기서, 이러한 암증 데이터 C1 , 암증 데이터 S1 , 인증 데이터 Q1 , 인증 데이터 R1 를, 신규의 데이터로서 갱신함과 동시에, 신규의 은폐키 K1 로서 갱신한다. 이것에 의해, 서버·컴퓨터(40)에서는, 은폐키 K의 이력으로서 최신의 데이터에 자동적으로 갱신할 수가 있다.Here, the encryption data C 1 , the authentication data S 1 , the authentication data Q 1 , and the authentication data R 1 are updated as new data and updated as a new concealment key K 1 . As a result, the server computer 40 can automatically update the latest data as the history of the concealment key K. FIG.

스텝 P3: 클라이언트·컴퓨터(10)는, 서버·컴퓨터(40)로부터 인증 데이터 B 및 암증 데이터 S를 수신함과 동시에, 난수 R를 생성해 암증 데이터 C2 , 인증 데이터 A2 를 계산해 서버·컴퓨터(40)으로 송신한다. 이것과 함께, 기억되어 있는 은폐키 K0 를 신규의 은폐키 K1 에 갱신한다. 이 프로세스는, 도 3의 스텝 130과 도 4의 프로세스 Pc2에 부합한다.Step P3: The client computer 10 receives the authentication data B and the encryption data S from the server computer 40, generates a random number R, calculates the encryption data C 2 and the authentication data A 2, and calculates the server computer ( 40). At the same time, the stored concealed key K 0 is updated to the new concealed key K 1 . This process corresponds to step 130 of FIG. 3 and process Pc2 of FIG. 4.

즉, 클라이언트·컴퓨터(10)에서는, 통신 I/F(30)를 개입시켜 검증기(20)에 서버·컴퓨터(40)로부터의 암증 데이터 S1 및 인증 데이터 B1 가 입력된다. 이 때, 클라이언트·컴퓨터(10)에서는, 난수 생성기(14)에서 난수 R2 를 생성한다. 생성된 난수 Q2 , 메모리(46)로 기억되어 있는 은폐키 K0 및 은폐키 K0 를 구성하는 C0 , S0 , Q0 , R0 는 인증용 데이터 연산기(18)에 입력된다. 또, 검증기(20)는, 서버·컴퓨터(40)로부터의 암증 데이터 S1 및 인증 데이터 B1 를 인증용 데이터 연산기(18)에 출력한다. 이 때, 클라이언트·컴퓨터(10)에서는, 초기값으로서 메모리(16)로 기억되어 있는 은폐키 K0 를 구성하는 각 데이터에 대해서 신규의 데이터(신규의 은폐키 K1 를 구성하는 데이터)가 입수되어 있다. 즉, 암증 데이터 C에 대해서는 서버·컴퓨터(40)로부터 수신한 암증 데이터 S1 으로부터 역산, 즉 은폐키K0 를 구성한 메모리(16)에 기억되어 있는 인증 데이터 Q0 를 감산하는 것으로 얻을 수 있는 암증 데이터 C1 , 또는 메모리(16)에 기억되어 있는 전회 송신한 암증 데이터 C1 이 대응한다. 암증 데이터 S에 대해서는 서버·컴퓨터(40)로부터 수신한 암증 데이터 S1 , 인증 데이터 Q에 대해서는 서버·컴퓨터(40)로부터 수신한 인증 데이터 B1 로부터 역산, 즉 은폐키 K0 를 감산하는 것으로 얻을 수 있는 인증 데이터 Q1 , 인증 데이터 R에 대해서는 전회 생성한 난수 R1 이다.That is, in the client computer 10, the encryption data S 1 and the authentication data B 1 from the server computer 40 are input to the verifier 20 via the communication I / F 30. At this time, the client computer 10 generates the random number R 2 in the random number generator 14. The generated random number Q 2 and C 0 , S 0 , Q 0 , and R 0 constituting the concealed key K 0 and the concealed key K 0 stored in the memory 46 are input to the authentication data operator 18. The verifier 20 also outputs the encryption data S 1 and the authentication data B 1 from the server computer 40 to the authentication data calculator 18. At this time, in the client computer 10, new data (data constituting the new concealment key K 1 ) is obtained for each data constituting the concealment key K 0 stored in the memory 16 as an initial value. It is. That is, the encryption data C can be obtained by subtracting the authentication data Q 0 stored in the memory 16 constituting the concealment key K 0 from the encryption data S 1 received from the server computer 40. The darkening data C 1 transmitted last time stored in the data C 1 or the memory 16 corresponds. It is obtained by subtracting the inversion, that is, the concealment key K 0 , from the authentication data S 1 received from the server computer 40 for the encryption data S and the authentication data B 1 received from the server computer 40 for the authentication data Q. for the authentication data Q 1, the authentication data R that is the last time the generated random number R 1.

여기서, 이러한 암증 데이터 C1 , 암증 데이터 S1 , 인증 데이터 Q1 , 인증 데이터 R1 를, 신규의 데이터로서 갱신함과 동시에, 신규의 은폐키 K1 로서 갱신한다. 이것에 의해, 클라이언트·컴퓨터(10)에서는, 서버·컴퓨터(40)와 동일한 은폐키 K를, 최신의 데이터에 자동적으로 갱신할 수가 있다. 또, 인증용 데이터 연산기(18)은, 생성한 난수 R2 , 갱신한 이력 데이터 K1 의 인증 데이터 R1 , 수신한 암증 데이터 S1 및 신규의 은폐키 K1 를 이용해 상기 함수 y, v에 의해 신규의 암증 데이터 C2 , 및 신규의 인증 데이터 A2 를 구한다. 이 구한 신규의 암증 데이터 C 2 , 및 인증 데이터 A2 는 메모리(16)로 기억함과 동시에, 통신 I/F(30)에 출력 되어 네트워크(32)를 개입시켜 서버·컴퓨터(40)에 송신된다. 이 송신 데이터는, 도 4의 데이터 Dc2에 부합한다.Here, the encryption data C 1 , the authentication data S 1 , the authentication data Q 1 , and the authentication data R 1 are updated as new data and updated as a new concealment key K 1 . Thereby, the client computer 10 can automatically update the same hidden key K as the server computer 40 to the latest data. In addition, data computing unit (18) for authentication, generates a random number R 2, to update the history data authentication data K 1 R 1, received amjeung data S 1 and with a concealed key K 1 of the new the function y, v New cancer data C 2 and new authentication data A 2 are obtained. The new encryption data C 2 and the authentication data A 2 obtained are stored in the memory 16 and output to the communication I / F 30 and transmitted to the server computer 40 via the network 32. . This transmission data corresponds to data Dc2 of FIG.

스텝 P4: 상기 스텝 P2 및 P3의 프로세스를 소정 횟수 m만 실행한다. 덧붙여 본 실시의 형태에서는, 소정 횟수 m는, 적어도 1회의 데이터 수수를 포함하기 때문에, 반복을 하지 않는 횟수(m=1)를 포함하는 것이다. 즉, 클라이언트·컴퓨터(10)과 서버·컴퓨터(40)와의 사이에서 만들어지는 데이터 수수 때에는, 이미 쌍방에서 된 데이터 수수의 이력 데이터가 이용되기 때문에, 1회의 데이터 수수이더라도, 그 수수 때에는 클라이언트·컴퓨터(10)과 서버·컴퓨터(40)와의 사이의 이력을 포함하여 데이터 수수가 되기 때문에, 단순한 데이터 수수는 아니고, 이력 데이터의 수수가 되므로 유효하다. 상기 스텝 P2 및 P3의 프로세스를 여러 차례만 반복하는 것은, 데이터의 정당성의 판단 정밀도 향상에 유효하다.   Step P4: The process of steps P2 and P3 is executed only a predetermined number m. In addition, in this embodiment, since the predetermined number m includes at least one data pass, it includes the number of times (m = 1) which is not repeated. That is, since the historical data of the data transfer made by both parties is used at the time of data transfer made between the client computer 10 and the server computer 40, even if the data transfer is once, Since the data is received including the history between the 10 and the server computer 40, the data is not simply data but is effective because it is the history data. Repeating the processes of steps P2 and P3 only a few times is effective for improving the accuracy of judging the validity of data.

즉, 상기 처리를 반복하는 프로세스는 반복하는 횟수, 즉 실행 횟수를 여러 차례 미리 정해 두는 것으로, 은폐키 K의 값이 갱신되는 것으로 변동해, 그 변동을 제3자가 파악하는 것을 억제하는 것이 가능하게 된다. 이와 같이 여러 차례라고 하는 것으로, 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)에 공통 으로 유지하는 은폐키 K는 여러 차례의 수만큼 지금까지의 이력에 따라 최신의 상태에 갱신되므로, 은폐키 K를 도출하는 것이 곤란하게 된다.   In other words, the process of repeating the above process is determined in advance by repeating the number of times of repeating, that is, the number of times of execution, so that the value of the concealed key K is updated so that it is possible to suppress the third party from catching the change. do. In this way, the concealment key K which is held in common for the client computer 10 and the server computer 40 is updated as many times as the latest state according to the history so far. It is difficult to derive K.

스텝 P2 및 P3의 프로세스를 소정의 횟수 m만 실행한 결과, 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)의 각각에는, 은폐키 Km 및 은폐키 Km 를 구성하는 Cm, Sm, Qm, Rm 의 값이 보관 유지된다. 또한, m=1 때는, 1회의 데이터 수수의 값이 보관 유지된다.Step P2, and the result of the process of P3 executed only a predetermined number m, a client, a computer 10 and a server, it has the respective computer 40, hiding keys K m, and C constituting the concealing key K m m, S m The values of, Q m and R m are retained. Moreover, when m = 1, the value of one time of data transfer is hold | maintained.

덧붙여 처리를 반복하는 실행 프로세스는, 도 3의 스텝 140의 판단에 의한 프로세스 실행과 도 4의 프로세스 Pc2로부터 Psm 및 Pcm의 프로세스에 대해서, 프로세스 Pc1로부터 Ps1 및 Pc2의 프로세스를 반복한 것에 부합한다.   In addition, the execution process which repeats a process corresponds to the process execution by the determination of step 140 of FIG. 3, and repeating the process of Ps1 and Pc2 from process Pc1 about the process of Psm and Pcm from process Pc2 of FIG.

스텝 P5: 상기 프로세스가 종료한 후에, 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)의 각각에서는, 수신한 데이터의 정당성이 성립하는 지, 그렇지 않은지를 검사해, 성립하면 상호 인증이 성공한 것으로서 양자의 관계를 허락하고, 비성립 때는 상호 인증이 실패한 것으로 해 양자의 관계를 거부한다. 이 프로세스는, 도 3의 스텝 150과 도 4의 프로세스 PSm+1 및 PCm+1 에 부합한다.Step P5: After the process is finished, each of the client computer 10 and the server computer 40 checks whether the received data is valid or not, and if it is successful, mutual authentication succeeds. The relationship between the two is allowed, and when it is not established, mutual authentication fails and the relationship is rejected. This process corresponds to step 150 of FIG. 3 and processes P Sm + 1 and P Cm + 1 of FIG. 4.

1회의 실행의 뒤에 인증하는 경우에는, 클라이언트·컴퓨터(10)에서 1 회째의 데이터 가 송신 되지만, 그 때 클라이언트·컴퓨터(10)는, 클라이언트·컴퓨터(10)과 서버·컴퓨터(40)와의 이력을 포함하여 초기값으로 해서, 기억된 은폐키 K0 에 의해 생성되는, 인증 데이터 A1, 및 암증 데이터 C1 를 서버·컴퓨터(40)에 송신한다. 이 프로세스는, 도 4의 프로세스 Pc1의 뒤에 데이터 Dc1 를 송신하기로 부합한다.When authenticating after one execution, the first data is transmitted from the client computer 10, but the client computer 10 records the history of the client computer 10 and the server computer 40 at that time. As an initial value including, the authentication data A 1 and the encryption data C 1 generated by the stored concealment key K 0 are transmitted to the server computer 40. This process corresponds to sending data Dc1 after process Pc1 of FIG.

서버·컴퓨터(40)에서는, 통신 I/F(60)를 개입시켜 검증기(50)에 클라이언트·컴퓨터(10)로부터의 암증 데이터 C1 및 인증 데이터 A1 가 입력되어 암증 데이터 C1 에 대해서 검증기(50)에서 정당성을 검증한다. 수신한 암증 데이터 C1 는, 전회의 이력의 데이터에 근거해 생성되어 있기 때문에, 서버·컴퓨터(40)에서는, 최신의 상태에 갱신 기억되어 있는 은폐키 K0 (여기에서는 초기값)을 구성하는 암증 데이터 S0 및 인증 데이터 R0 를 이용해 상기 기술의 함수 y의 계산 결과와 수신한 데이터가 일치하는지, 그렇지 않은지를 판별해, 일치하는 경우는 정당성을 인정, 불일치의 경우는 정당성을 부정한다. 정당성이 인정되었을 때에는, OK장치(52)로 정당성이 있는 것을 알린 후에 처리를 계속하고, 부인되었을 때에는 NG장치(54)로 부당한 것을 알린 후에 처리를 종료한다.Server, a computer (40), via the communication I / F (60) amjeung data from the client, the computer 10 in the verifier (50) C 1 and authentication data A is 1, the input verifier for amjeung data C 1 Justification is checked at (50). Since the received cancer data C 1 is generated based on the data of the previous history, the server computer 40 constitutes a hidden key K 0 (here, an initial value) which is updated and stored in the latest state. The encryption data S 0 and the authentication data R 0 are used to determine whether or not the calculation result of the function y of the above description is identical with the received data, and if it is matched, the validity is acknowledged. If the validity is recognized, the processing is continued after notifying the OK device 52 of the validity, and if not, the processing is terminated after the NG device 54 is notified.

정당성이 인정되어 처리가 계속되었을 때에는, 상기 스텝 P2와 마찬가지로 해서, 난수 생성기(44)에서 난수 Q1 를 생성해, 인증용 데이터 연산기(48)에서 암증 데이터 S1, 인증 데이터 B1 를 생성해, 클라이언트·컴퓨터(10)에 송신함과 동시에, 은폐키를 최신의 은폐키 K1 에 갱신한다.When the validity is recognized and processing continues, the random number generator 44 generates a random number Q 1 in the same manner as in step P2 above, and the authentication data calculator 48 generates the encryption data S 1 and the authentication data B 1 . In addition to transmitting to the client computer 10, the concealment key is updated to the latest concealment key K 1 .

이 인증 프로세스는, 도 4의 프로세스 Psm+1 의 처리에 부합한다. 이 경우, 반복해서 실행하고 있지 않기 때문에, m=0으로 처리한 것에 부합한다. 즉, 클라이언트·컴퓨터(10)로부터 서버·컴퓨터(40)에 데이타를 송신할 때마다, 서버·컴퓨터(40)측에서 클라이언트·컴퓨터(10)로부터 받은 이력을 포함한 데이터를 이용해 인증을 할 수가 있다.This authentication process corresponds to the process of the process Ps m + 1 of FIG. In this case, since it is not executed repeatedly, it corresponds to processing with m = 0. That is, each time data is transmitted from the client computer 10 to the server computer 40, authentication can be performed using data including the history received from the client computer 10 on the server computer 40 side. .

한편, 클라이언트·컴퓨터(10)에서는, 통신 I/F(30)를 개입시켜 검증기(20)에 서버·컴퓨터(40)로부터의 암증 데이터 S1 및 인증 데이터 B1이 입력된다. 클라이언트·컴퓨터(10)에서는, 암증 데이터 S1 에 대해서 검증기(20)에서 정당성을 검증한다. 수신한 암증 데이터 S1 는, 암증 데이터 C와 마찬가지로 전회의 이력의 데이터에 근거해 서버·컴퓨터(40)에서 생성되어 있기 때문에, 클라이언트·컴퓨터(10)에서는, 최신의 상태에 갱신 기억되어 있는 은폐키 K0 (여기에서는 초기값)를 구성하는 암증 데이터 C0 및 인증 데이터 Q0 를 이용해 상기 기술의 함수 z의 계산 결과와 수신한 데이터가 일치하는 지, 그렇지 않은지를 판별해, 일치하는 경우는 정당성을 인정, 불일치의 경우는 정당성을 부정한다. 정당성이 인정되었을 때에는, OK장치(22)로 정당성이 있는 것을 알린 후에 처리를 계속해, 부인되었을 때에는 NG장치 24로 부당한 것을 알린 후에 처리를 종료한다.On the other hand, in the client computer 10, the encryption data S 1 and the authentication data B 1 from the server computer 40 are input to the verifier 20 via the communication I / F 30. In the client computer 10, the validator 20 verifies validity with respect to the encryption data S1. Since the received cancer data S 1 is generated in the server computer 40 on the basis of the data of the previous history similarly to the cancer data C, the client computer 10 conceals the updated state stored in the latest state. Using the encryption data C 0 and the authentication data Q 0 constituting the key K 0 (here, the initial value), it is determined whether or not the result of the calculation of the function z of the above-described technique matches the received data. Justification is recognized, and in the case of disagreement, it is denied. If the validity is recognized, the processing is continued after notifying the OK device 22 of the validity, and if not, the processing is terminated after the NG device 24 is notified.

정당성이 인정되어 처리가 계속되었을 때에는, 클라이언트·컴퓨터(10)와 서버·컴퓨터(40)와의 사이에 실행해야 할 처리로 이행한다. 덧붙여, 클라이언트·컴퓨터(10)에서는, 서버·컴퓨터(40)와의 이력 데이터 K의 동일성을 유지 하기 위해, 상기 스텝 P3와 마찬가지로 해서, 은폐키를 최신의 은폐키 K1 에 갱신한다.When the validity is recognized and processing continues, the process shifts to processing to be performed between the client computer 10 and the server computer 40. In addition, in order to maintain the identity of the historical data K with the server computer 40, the client computer 10 updates the concealment key to the latest concealment key K 1 in the same manner as in step P3.

이 인증 프로세스는, 도 4의 프로세스 Pcm+1 의 처리에 부합한다. 이 경우, 반복해 실행하고 있지 않기 때문에, m=0으로 처리한 것에 부합한다. 즉, 서버·컴퓨터(40)로부터 클라이언트·컴퓨터(10)에 데이타를 송신할 때마다, 클라이언트·컴퓨터(10)측에서 서버·컴퓨터(40)로부터 받은 이력을 포함한 데이터를 이용해 인증을 할 수가 있다.This authentication process corresponds to the process of process Pc m + 1 of FIG. In this case, since it is not executed repeatedly, it corresponds to processing with m = 0. That is, each time data is sent from the server computer 40 to the client computer 10, authentication can be performed using data including the history received from the server computer 40 on the client computer 10 side. .

덧붙여, 클라이언트·컴퓨터(10)로부터 서버·컴퓨터(40)에 데이타를 송신할 때마다, 또는 서버·컴퓨터(40)로부터 클라이언트·컴퓨터(10)에 데이타를 송신할 때마다, 수신측에서 인증을 하는 것을 포함한 처리를 세션으로 해서, 이 인증을 포함한 세션을 여러 차례 실행해도 괜찮다.   In addition, each time data is sent from the client computer 10 to the server computer 40, or whenever data is sent from the server computer 40 to the client computer 10, the receiving side authenticates. You can run a session with this authentication multiple times, with a session that involves doing so.

다음에, 여러 차례의 실행을 반복한 후에 인증하는 경우를 설명한다. 이 경우에는, 클라이언트·컴퓨터(10)로부터 m회번째의 데이터 송신이 이루어지고, 클라이언트·컴퓨터(10)는, m회의 반복에 의해 갱신된 은폐키 Km, 에 의해, 서버·컴퓨터(40)에 인증 데이터 Am+1, 및 암증 데이터 Cm+1 를 송신한다. 이 프로세스는, 도 4의 프로세스 Pcm 의 뒤에 데이터 Dcm+1 를 송신하기로 부합한다.Next, the case of authenticating after repeating several executions is demonstrated. In this case, the m-th data transmission is performed from the client computer 10, and the client computer 10 uses the concealment key K m , which has been updated by m repetitions, to thereby form the server computer 40. The authentication data A m + 1 and the encryption data C m + 1 are transmitted. This process corresponds to sending data Dc m + 1 after process Pc m in FIG.

우선, 서버·컴퓨터(40)에서는, 통신 I/F(60)를 개입시켜 검증기(50)에 클라이언트·컴퓨터(10)로부터의 암증 데이터 Cm+1 및 인증 데이터 Am+1 가 입력된다. 서버·컴퓨터(40)에서는, 암증 데이터 Cm+1 에 대해서 검증기(50)에서 정당성을 검증한다. 수신한 암증 데이터 Cm+1는, 전회의 이력의 데이터에 근거해 생성되어 있기 때문에, 서버·컴퓨터(40)에서는, 최신의 상태에 갱신 기억되어 있는 은폐키 Km 를 구성하는 암증 데이터 Sm 및 인증 데이터 Rm 를 이용해 상기 기술의 함수 y의 계산 결과와, 수신한 데이터가 일치하는 지, 그렇지 않은지를 판별해, 일치하는 경우는 정당성을 인정, 불일치의 경우는 정당성을 부정한다. 정당성이 인정되었을 때에는, OK장치(52)로 정당성이 있는 것을 알린 후에 처리를 계속해, 부인되었을 때에는 NG장치(54)로 부당한 것을 알린 후에 처리를 종료한다.First, in the server computer 40, the encryption data C m + 1 and the authentication data A m + 1 from the client computer 10 are input to the verifier 50 via the communication I / F 60. In the server computer 40, the validator 50 verifies validity with respect to the cancer data C m + 1 . Since the received cancer data C m + 1 is generated based on the data of the previous history, in the server computer 40, the cancer data S m constituting the hidden key K m updated and stored in the latest state. And using the authentication data R m , it is determined whether or not the calculation result of the function y of the above description matches the received data or not, and if it matches, the validity is recognized. If the validity is recognized, the processing is continued after notifying the OK device 52 of the validity, and if not, the processing is terminated after notifying the NG device 54 that it is invalid.

정당성이 인정되어 처리가 계속되었을 때에는, 상기 스텝 P2와 같게 해, 난수 생성기(44)에 두고 난수 Qm+1 를 생성해, 인증용 데이터 연산기(48)에 두고 암증 데이터 Sm+1, 인증 데이터 Bm+1 를 생성해, 클라이언트·컴퓨터(10)에 송신함과 동시에, 은폐키를 최신의 은폐키 Km+1 에 갱신한다. 이 인증 프로세스는, 도 4의 프로세스 Psm+1 의 처리에 부합한다.When the validity is recognized and the processing is continued, the processing is continued in the same manner as in step P2, and a random number Q m + 1 is generated in the random number generator 44, and the encryption data S m + 1 is authenticated in the authentication data operator 48. The data B m + 1 is generated and transmitted to the client computer 10, and the hidden key is updated to the latest hidden key K m + 1 . This authentication process corresponds to the process of the process Ps m + 1 of FIG.

한편, 클라이언트·컴퓨터(10)에서는, 통신 I/F(30)를 개입시켜 검증기(20)에 서버·컴퓨터(40)로부터의 암증 데이터 Sm+1 및 인증 데이터 Bm+1 가 입력된다. 클라이언트·컴퓨터(10)에서는, 암증 데이터 Sm+1 에 대해서 검증기(20)에서 정당성을 검증한다. 수신한 암증 데이터 Sm+1 는, 암증 데이터 C와 같게 전회의 이력의 데이터에 근거해 서버·컴퓨터(40)에서 생성되어 있기 때문에, 클라이언트·컴퓨터(10)에서는, 최신의 상태에 갱신 기억되어 있는 은폐키 Km 를 구성하는 암증 데이터 Cm 및 인증 데이터 Qm 를 이용해 상기 기술의 함수 z의 계산 결과와 수신한 데이터가 일치하는 지, 그렇지 않은지를 판별해, 일치하는 경우는 정당성을 인정, 불일치의 경우는 정당성을 부정한다. 정당성이 인정되었을 때에는, OK장치(22)로 정당성이 있는 것을 알린 후에 처리를 계속하는 한편, 부인되었을 때에는 NG장치 24로 부당한 것을 알린 후에 처리를 종료한다.On the other hand, in the client computer 10, the encryption data S m + 1 and the authentication data B m + 1 from the server computer 40 are input to the verifier 20 via the communication I / F 30. In the client computer 10, the validator 20 verifies validity with respect to the encryption data S m + 1 . Since the received cancer data S m + 1 is generated in the server computer 40 based on the previous history data as in the cancer data C, the client computer 10 is updated and stored in the latest state. Using the encryption data C m and authentication data Q m constituting the concealed key K m , it is determined whether the result of the calculation of the function z of the above technique matches the received data, and if it does, the validity is recognized. In case of inconsistency, it justifies the justification. If the validity is recognized, the processing is continued after notifying the OK device 22 that there is a validity, and when it is denied, the processing is terminated after notifying the NG device 24 that it is invalid.

정당성이 인정되어 처리가 계속되었을 때에는, 클라이언트·컴퓨터(10)과 서버·컴퓨터(40)와의 사이에 실행해야 할 처리로 이행 한다. 또한, 클라이언트·컴퓨터(10)에서는, 서버·컴퓨터(40)와의 이력 데이터 K의 동일성을 유지 하기 위해, 상기 스텝 P3와 같게 해, 은폐키를 최신의 은폐키 Km+1 에 갱신한다. 이 인증 프로세스는, 도 4의 프로세스 Pcm+1 의 처리에 부합한다.If the validity is recognized and processing continues, the process shifts to processing to be performed between the client computer 10 and the server computer 40. In addition, in order to maintain the identity of the historical data K with the server computer 40, the client computer 10 updates the concealment key to the latest concealment key K m + 1 in the same manner as in step P3. This authentication process corresponds to the process of process Pc m + 1 of FIG.

이와 같이, 본 실시의 형태에서는, 클라이언트·컴퓨터(10)과 서버·컴퓨터(40)와의 사이의 상호 인증을 할 경우에, 쌍방에서 공통의 은폐키 K를 가져, 그 은폐키 K를 정보 수수마다 갱신하고 있다. 이 때문에, 정보 수수 때의 데이터를 해석해도, 인증용 데이터를 특정하는 것이 곤란이고, 비닉성을 향상하는 것이 가능하여, 확실히 상호 인증이 가능해진다. As described above, in the present embodiment, when mutual authentication is performed between the client computer 10 and the server computer 40, both parties have a common concealment key K, and the concealment key K is provided for each number of information. It is updating. For this reason, even if the data at the time of information transmission is analyzed, it is difficult to specify the data for authentication, the confidentiality can be improved, and mutual authentication can be surely performed.

상기에서는, 클라이언트·컴퓨터(10)과 서버·컴퓨터(40)와의 사이를 예로 설명했지만, 인터넷등의 비동기 네트워크에 있어서는, 클라이언트·컴퓨터(10)에 대해서 서버·컴퓨터(40)에서는 인증이 필요하다. 이 경우에는, 클라이언트·컴퓨터(10)의 유저 ID 마다 처리를 분리하도록 해도 괜찮다. Although the above has been described as an example between the client computer 10 and the server computer 40, in the asynchronous network such as the Internet, the server computer 40 needs to be authenticated with respect to the client computer 10. . In this case, the processing may be separated for each user ID of the client computer 10.

상기 프로세스는, 클라이언트·컴퓨터(10) 및 서버·컴퓨터(40)의 처리 프로그램로서 기록 매체로서의 플로피 디스크에 실행 가능한 형식으로 격납 할 수가 있다. 이 경우, 각 장치에 꽂고 뽑는 것이 가능한 플로피 디스크 유니트(FDU)를 접속해, 플로피 디스크로부터 FDU를 개입시켜 기록된 처리 프로그램을 실행하면 좋다. 또, 처리 프로그램을 컴퓨터내의 RAM나 다른 기억 영역(예를 들면 하드 디스크 장치)에 액세스 가능하게 격납을 하고(인스톨) 실행하도록 해도 괜찮다. 또, 미리 ROM에 기억해도 괜찮다. 또, 기록 매체로서는, CD-ROM, MD, MO, DVD등의 디스크나 DAT등의 자기테이프가 있어, 이들을 이용할 때는, 대응하는 장치로서 CD- ROM 장치, MD장치, MO장치, DVD 장치, DAT 장치등을 이용하면 좋다.The above process can be stored in a form executable on a floppy disk as a recording medium as a processing program of the client computer 10 and the server computer 40. In this case, plugging in and unplugging each device A floppy disk unit (FDU) can be connected, and the recorded processing program can be executed from the floppy disk via the FDU. In addition, the processing program may be stored (installed) and executed so as to be accessible to RAM or another storage area (for example, a hard disk device) in the computer. In addition, you may store in ROM beforehand. As the recording medium, there are magnetic tapes such as discs such as CD-ROM, MD, MO, DVD, DAT, etc., and when using them, CD-ROM device, MD device, MO device, DVD device, DAT as a corresponding device You may use a device.

이상 설명한 것처럼 본 발명의 제1의 실시의 형태에 의하면, 제1 인증 장치 및 제2 인증 장치의 사이에 상호 인증할 경우에, 제1 인증 장치 및 제2 인증 장치의 각각에 공통으로 이력 데이터를 기억함과 동시에, 이력 데이터를 갱신하므로, 안전하고 간편하게 상호 인증할 수가 있어 예를 들면, 클라이언트·컴퓨터와 서버·컴퓨터와의 사이에 수수 되는 정보로부터, 클라이언트·컴퓨터의 키가 누설되는 것이 없고, 확실히 인증을 할 수 있다, 라고 하는 효과가 있다.   As described above, according to the first embodiment of the present invention, in the case of mutual authentication between the first authentication device and the second authentication device, history data is common to each of the first authentication device and the second authentication device. As the data is stored and the history data is updated, mutual authentication can be performed safely and easily. For example, the key of the client computer is not leaked from the information received between the client computer and the server computer. This has the effect of being able to authenticate.

(실시의 형태 2)(Embodiment 2)

도 5는, 본 발명과 관련되는 인증 시스템의 제2의 실시의 형태를 나타내는 개략 구성도이다. 이 인증 시스템은, 공중 회선망이나 인터넷등의 네트워크(40)를 개입시켜 서로 접속된 서버(제2 장치) 10과 클라이언트(제1 장치) 20과에 의해 개략 구성되어 있다. 이 실시의 형태에서는, 여러 가지의 서비스를 제공하는 복수의 서버 A, B, C, …가 서버(10)로 접속되어, 해당 서버(10)가, 서버 A, B, C, …에의 액세스의 가부를 결정하는 인증 서버로서 기능하도록 되어 있다. 5 is a schematic configuration diagram showing a second embodiment of an authentication system according to the present invention. This authentication system is outlined by a server (second device) 10 and a client (first device) 20 connected to each other via a network 40 such as a public line network or the Internet. In this embodiment, a plurality of servers A, B, C,... That provide various services. Is connected to the server 10, and the server 10 is connected to the servers A, B, C,... It is supposed to function as an authentication server for determining whether or not to access the network.

서버(10)는, 도 6에 나타낸 것 처럼, CPU(11), RAM(12), 기억장치(13), 입력장치(14), 표시 장치(15) 및 통신 장치(16)등에 의해 구성되어 각부는 버스(17)에 의해 접속되어 있다.   As shown in FIG. 6, the server 10 is composed of a CPU 11, a RAM 12, a storage device 13, an input device 14, a display device 15, a communication device 16, and the like. Each part is connected by the bus 17.

CPU(Central Processing Unit; 11)은, 기억장치(13)의 기억 영역에 격납 되어 있는 각종 처리 프로그램, 입력장치(14)나 통신 장치(16)로부터 입력되는 각종 지시, 혹은 지시에 대응하는 각종 데이터등을 RAM(12)에 격납해, 그것들의 입력 지시 및 각종 데이터에 따라 RAM(12)에 격납한 각종 처리 프로그램에 따라 각종 처리를 실행해, 그 처리 결과를 RAM(12)에 일시적으로 기억함과 함께, 표시 장치(15)등에 출력한다. The CPU (Central Processing Unit) 11 includes various processing programs stored in the storage area of the storage device 13, various instructions input from the input device 14 or the communication device 16, or various data corresponding to the instructions. Etc. are stored in the RAM 12, and various processes are executed in accordance with various processing programs stored in the RAM 12 according to their input instructions and various data, and temporarily storing the processing results in the RAM 12; At the same time, output is performed to the display device 15 and the like.

이 CPU(11)는, 해당 서버(10)에 있어서의 수신 수단 및 판정 수단을 구성 하고 있어, 클라이언트 ID를 인수로 하는 일방향 함수(일방향 함수 Fc)의 함수값인 HASHc, 원 타임 ID(SIGNAL), DH 공개값 gx (Diffie-Hellman 공개값의 한편)를 클라이언트(20)로부터 수신할 경우(즉, 클라이언트(20)로부터 액세스의 요구를 받을 경우)에, 클라이언트(20)로부터 수신한 수신 데이터와 기억장치(13)로 기억되어 있는 기억 데이터를 이용해 원 타임 ID 및 HASHc를 연산에 의해 구해, 이 연산 결과와, 클라이언트(20)로부터 수신한 원 타임 ID 및 HASHc와의 비교에 의해, 클라이언트(20)의 정당성을 판정하는 처리를 실행한다.This CPU 11 constitutes a receiving means and a determining means in the server 10, and is a HASHc and a one-time ID (SIGNAL) which are function values of a one-way function (one-way function Fc) that takes a client ID as an argument. Received data received from the client 20 when receiving the DH public value g x (one of the Diffie-Hellman public values) from the client 20 (ie, receiving a request for access from the client 20). And the one-time ID and the HASHc are calculated by the calculation using the stored data stored in the storage device 13 and the client 20 is compared with the one-time ID and the HASHc received from the client 20. The process of determining the validity of) is performed.

또한, CPU(11)는, 해당 서버(10)에서 송신 수단을 구성하고 있어, 클라이언트(20)가 정당하다라고 판정한 경우에, 상기 수신 데이터 및 상기 기억 데이터를 이용해, 서버 ID를 인수로 하는 일방향 함수(일방향 함수 Fs)의 함수값인 HASHs를 연산에 의해 구해, 이 HASHs와 기억장치(13)로 기억되어 있는 DH 공개값 gy (Diffie-Hellman 공개값의 다른 한편)를 클라이언트(20)에 대해서 송신하는 처리를 실행한다.Further, the CPU 11 constitutes a transmission means in the server 10, and when the client 20 determines that the client 20 is justified, the CPU 11 uses the received data and the stored data to take a server ID as an argument. The client 20 calculates the HASHs that are the function values of the one-way function (one-way function Fs) by calculation, and calculates the DH public values g y (the other of the Diffie-Hellman public values) stored in the HASHs and the storage device 13. The processing to send is executed.

또한, 상기 원 타임 ID(SIGNAL)는, 서버·클라이언트간에 인증에 있어서 1회만 사용 가능한 식별 정보이고, 이 원 타임 ID를 생성하는 경우에는, 소정의 통신 단위마다 변화하는 암호화키 K(가변 공유키)를 기억장치(13)로부터 읽어들여, 이 암호화키 K를 인수로 하는 해쉬 함수(일방향 함수)의 함수값을 구해 이 함수값으로부터 상기 원 타임 ID를 생성한다.   The one-time ID (SIGNAL) is identification information that can be used only once for authentication between the server and the client. When generating the one-time ID, the encryption key K (variable shared key) changes for each predetermined communication unit. ) Is read from the storage device 13, a function value of a hash function (one-way function) taking this encryption key K as an argument is obtained, and the one-time ID is generated from this function value.

RAM(Random Access Memory; 12)는, 클라이언트(20)등과의 사이에 송수신 되는 데이터 등, 인증에 관한 각종 데이터를 한때 기억하는 기억 영역이나, CPU(11)의 작업 영역 등을 갖추고 있다.   The RAM (Random Access Memory) 12 has a storage area for storing data related to authentication, such as data transmitted and received between the client 20 and the like, a working area of the CPU 11, and the like.

기억장치(13)은, 프로그램이나 데이터등이 기억되는 기억 매체(13a)를 가져, 이 기억 매체(13a)는 자기적, 광학적 기록 매체, 또는 반도체 메모리로 구성되어 있다. 이 기억 매체(13a)는 기억장치(13)로 고정적으로 마련한 것, 또는 착탈이 자유롭게 장착하는 것이고, CPU(11)에 의해 실행되는 각종 처리 프로그램이나 제어 데이터등을 기억하는 기억 영역, 인증에 관한 각종 데이터(예를 들면, 클라이언트(20)가나 ID발행 관리 서버(30; 후에 기술)로부터 취득한 데이터, 인증의 처리 과정에서 생성된 데이터 등)을 격납하는 기억 영역 등을 갖추고 있다. 또한, 이 기억 매체(13a)에 기억하는 프로그램이나 데이터 등은, 그 일부 또는 전부를 다른 서버등으로부터 네트워크(40)를 개입시켜 수신해 기억하는 구성으로 하는 것도 가능하다. 이 기억 매체(13a)에는, 서버 ID, DH 공개값 gy, 클라이언트(20)과의 사이에 공유화된 난수 R 등이, 인증 처리를 개시하기 전 단계에서 미리 격납된 상태가 되고 있다.The storage device 13 has a storage medium 13a in which programs, data, and the like are stored, and the storage medium 13a is composed of a magnetic, optical recording medium, or semiconductor memory. The storage medium 13a is fixedly provided by the storage device 13, or is detachably mounted, and stores a variety of processing programs, control data, and the like executed by the CPU 11, and relates to authentication. And a storage area for storing various data (for example, data acquired by the client 20 or the ID issuance management server 30 (described later), data generated in the process of authentication, etc.). The program, data, and the like stored in the storage medium 13a can also be configured to receive part or all of the data from another server or the like via the network 40. In this storage medium 13a, the server ID, the DH public value g y , the random number R shared with the client 20, and the like are stored in advance in the step before starting the authentication process.

입력장치(14)는, 키보드나 포인팅 디바이스등에 의해 구성되어 입력 지시 신호를 CPU(11)에 대해서 출력한다.   The input device 14 is comprised by a keyboard, a pointing device, etc., and outputs an input instruction signal to the CPU 11.

표시 장치(15)는, CRT(Cathode Ray Tube)나 LCD(Liquid Crystal Display) 등에 의해 구성되어, CPU(11)로부터 입력되는 표시 데이터를 표시한다. 통신 장치(16)은, 모뎀이나 라우터, 브릿지등에 의해 구성되어, 네트워크(40)를 개입시켜 클라이언트(20)등부터 수신한 데이터를 CPU(11)에 출력함과 함께, CPU(11)보다 수신한 데이터를 네트워크(40)를 개입시켜 클라이언트(20)등에 대해서 출력한다.   The display device 15 is constituted by a cathode ray tube (CRT), a liquid crystal display (LCD), or the like, and displays display data input from the CPU 11. The communication device 16 is constituted by a modem, a router, a bridge, or the like, outputs data received from the client 20 or the like through the network 40 to the CPU 11, and is received from the CPU 11. One data is outputted to the client 20 and the like via the network 40.

한편, 클라이언트(20)은, 도 7에 나타낸 것 처럼, CPU(21), RAM22, 기억장치(23), 입력장치(24), 표시 장치 25 및 통신 장치 26등에 의해 구성되어, 각부는 버스 27에 의해 접속되어 있다. 구체적으로, 클라이언트(20)으로서는, 예를 들면, 퍼스널 컴퓨터나, PDA(Personal Digital Assistance)등의 휴대 정보 단말, 인터넷 접속 서비스를 이용 가능한 휴대전화 등을 들 수 있다. 또한, 이 클라이언트(20)의 각 구성 요소는, 앞서 기술한 서버(10)의 각 구성 요소와 거의 같음으로, 차이점만을 이하에서 설명한다.   On the other hand, the client 20 is composed of a CPU 21, a RAM 22, a storage device 23, an input device 24, a display device 25, a communication device 26, and the like as shown in FIG. It is connected by. Specifically, examples of the client 20 include a personal computer, a portable information terminal such as a PDA (Personal Digital Assistance), a mobile phone that can use an Internet connection service, and the like. In addition, since each component of this client 20 is substantially the same as each component of the server 10 mentioned above, only the difference is demonstrated below.

즉, 클라이언트(20)의 CPU(21)는, 해당 클라이언트(20)에서 송신 수단을 구성 하고 있어, 입력장치(24)로부터의 지시 입력등에 근거해, 원 타임 ID(SIGNAL)를 생성함과 함께, 클라이언트 ID를 인수로 하는 일방향 함수(일방향 함수 Fc)의 함수값인 HASHc를 구해서, 이들 원 타임 ID 및 HASHc와 기억장치(23)에 미리 기억된 DH 공개값 gx (Diffie-Hellman 공개값의 한편)를 서버(10)에 대해서 송신하는 처리를 실행한다.That is, the CPU 21 of the client 20 constitutes a transmission means in the client 20, and generates a one-time ID SIGNAL based on an instruction input from the input device 24 or the like. HASHc, which is a function value of a one-way function (one-way function Fc) that takes a client ID as an argument, is obtained, and these one-time IDs and the DH public values g x (Diffie-Hellman public values) stored in advance in the storage unit 23 are obtained. On the other hand, the process of transmitting to the server 10 is performed.

또, CPU(21)는, 해당 클라이언트(20)에서 수신 수단 및 판정 수단을 구성 하고 있어, 서버 ID를 인수로 하는 일방향 함수(일방향 함수 Fs)의 함수값인 HASHs와 DH 공개값 gy (Diffie-Hellman 공개값의 다른 한편)를 서버(10)로부터 수신할 경우(즉, 서버(10)에 의해 클라이언트(20)가 정당하다라고 판정한 경우)에, 서버(10)로부터 수신한 수신 데이터와 기억장치(23)로 기억되어 있는 기억 데이터를 이용해 HASHs를 연산에 의해 구해서, 이 연산 결과와 서버(10)로부터 수신한 HASHs와의 비교에 의해, 서버(10)의 정당성을 판정하는 처리를 실행한다.In addition, the CPU 21 constitutes a receiving means and a determining means in the client 20, and HASHs and DH public values g y (Diffie) which are function values of a one-way function (one-way function Fs) that takes a server ID as an argument. When receiving the other of the Hellman public values from the server 10 (that is, the server 10 determines that the client 20 is legitimate), HASHs are calculated by calculation using the stored data stored in the storage device 23, and the process of determining the legitimacy of the server 10 is executed by comparing the result of the calculation with the HASHs received from the server 10. .

기억장치(23)은, 프로그램이나 데이터등이 기억되는 기억 매체(23a)를 가져, 이 기억 매체(23a)는, 상기 CPU(21)에 의해 실행되는 각종 처리 프로그램이나 제어 데이터등을 기억하는 기억 영역, 인증에 관한 각종 데이터(예를 들면, 서버(10)이나 ID발행 관리 서버(30; 후에 기술)로부터 취득한 데이터, 인증의 처리 과정에서 생성된 데이터 등)을 격납하는 기억 영역 등을 갖추고 있다. 이 기억 매체(23a)에는, 클라이언트 ID, DH공개값 gx, 서버(10)과의 사이에 공유화된 난수 R 등이, 인증 처리를 개시하기 전 단계에서 미리 격납 된 상태가 되고 있다.The storage device 23 has a storage medium 23a in which a program, data, and the like are stored, and the storage medium 23a stores a memory for storing various processing programs, control data, and the like, which are executed by the CPU 21. Area, a storage area for storing various types of data related to authentication (for example, data acquired from the server 10 or the ID issuance management server 30 (described later), data generated in the process of authentication), and the like. . In this storage medium 23a, the client ID, the DH public value g x , the random number R shared with the server 10, and the like are stored in advance in the step before starting the authentication process.

ID발행 관리 서버(30)은, 클라이언트·서버간에 공유화되는 비밀 정보 (예를 들면, 원 타임 ID의 초기값을 생성하는데 이용되는 난수 R 등)나, 클라이언트 ID, 서버 ID 등을 발행·관리 하기 위한 서버이다. 이 ID발행 관리 서버(30)은, 클라이언트(20)를 이용하는 유저의 ID(예를 들면, 크레디트 No, 주기넷 ID, 사원 No, 학생 No, 특정 회원 No 등)에 상기 비밀 정보나 패스워드 등을 첨부한 상태로 격납하는 데이타베이스를 가지고 있다. 또한, ID발행 관리 서버(30)은, 일정한 주기에 상기 데이타베이스내의 비밀 정보를 갱신해, 이 갱신한 비밀 정보를 온라인(예를 들면, 전자 메일 등) 또는 오프 라인(예를 들면, 우송 등)으로, 클라이언트(20)과 서버(10)의 쌍방으로 배포하도록 되어 있다. 또한, 상기 비밀 정보의 발행은, 클라이언트(20)또는 서버(10)로부터의 발행 의뢰에 근거하는 것으로 해도 좋다.   The ID issuance management server 30 issues and manages secret information (for example, a random number R used to generate an initial value of one-time ID, etc.), a client ID, a server ID, and the like shared between the client and the server. It is a server. The ID issuance management server 30 stores the secret information, the password, and the like in the ID of the user who uses the client 20 (for example, a credit No, a periodic net ID, an employee No, a student No, a specific member No, etc.). You have a database that is attached and stored. In addition, the ID issuance management server 30 updates the secret information in the database at regular intervals, and updates the secret information online (for example, by e-mail) or offline (for example, by mail, etc.). ) Is distributed to both the client 20 and the server 10. In addition, the issuance of the secret information may be based on a issuance request from the client 20 or the server 10.

다음에, 상기 구성으로부터 되는 인증 시스템에 의해 행해지는 인증 방법의 제2의 실시의 형태에 대해서, 도 8에 근거해 설명한다. 이 방법은, RFC2409에서 규정된 IKE의 방식에, 본 발명과 관련되는 원 타임 ID(SIGNAL)를 적용한 것이다. Next, 2nd Embodiment of the authentication method performed by the authentication system which consists of the said structure is demonstrated based on FIG. This method applies the one-time ID (SIGNAL) related to the present invention to the IKE method specified in RFC2409.

먼저, 스텝 S1에서는, IKE에 의한 SA생성에 즈음하여 이니씨에이터(Initiator)가 되는 클라이언트(20)가, 원 타임 ID(SIGNAL)를 생성함과 함께, HASHc를 연산에 의해 구해서, 이들 원 타임 ID 및 HASHc와, 기억장치(23)로 기억된 DH 공개값 gx 를 SA의 제안과 함께, 레스폰다(responder)가 되는 서버(10)에 대해서 송신하는 처리를 실행한다.First, in step S1, the client 20 serving as an initiator generates an one-time ID SIGNAL on the occasion of SA generation by IKE, and calculates HASHc by arithmetic operations. A process of transmitting the ID and HASHc and the DH public value g x stored in the storage device 23 to the server 10 serving as the responder together with the proposal of the SA.

여기서, 원 타임 ID인 SIGNAL는, 예를 들면, 해쉬 함수를 이용해, 다음과 같이 생성된다. Here, SIGNAL which is a one-time ID is generated as follows using a hash function, for example.

SIGNAL1 =RSIGNAL 1 = R

SIGNAL2 =hash(K1 )SIGNAL 2 = hash (K 1 )

SIGNAL3 =hash(K2 )SIGNAL 3 = hash (K 2 )

               …

SIGNALn =hash(Kn-1 )SIGNAL n = hash (K n-1 )

……(식 2)                                         … … (Equation 2)

상기 SIGNAL의 정의식에서, hash는 해쉬 함수, R는 ID발행 관리 서버(30)로부터 서버(10)과 클라이언트(20)의 쌍방으로 발행되어 양자 간에 공유화된 난수, Ki 는 i번째의 세션으로 생성된 서버·클라이언트 공유의 암호화키(가변 공유키)이다. 또한, 상기 세션은, SA를 확립하고 나서 해당 SA가 무효가 될 때까지의 통신 단위를 나타내고 있다.In the definition of SIGNAL, hash is a hash function, R is issued from the ID issuing management server 30 to both the server 10 and the client 20, and the random number shared between them is generated, and K i is generated as the i-th session. The encryption key (variable shared key) of the shared server client share. In addition, the session represents a communication unit from the establishment of the SA until the SA is invalidated.

즉, 상기 SIGNAL의 정의식에 의하면, 전회의 세션으로 생성된 상기 암호화키 K를 인수로 하는 해쉬 함수의 함수값을 구해서, 이 함수값을 이번 세션의 SIGNAL로서 이용하도록 하고 있다. 또, 최초의 세션에서는, 서버·클라이언트간에 미리 공유화된 난수 R를 SIGNAL의 초기값으로서 이용하도록 하고 있다. 또한, 상기 암호화키 Ki 는, 예를 들면, 다음식(3)으로부터 구해진다.   That is, according to the definition formula of SIGNAL, a function value of a hash function whose argument is the encryption key K generated in the previous session is obtained, and the function value is used as SIGNAL of this session. In the first session, the random number R shared in advance between the server and the client is used as the initial value of SIGNAL. In addition, the said encryption key Ki is calculated | required from following Formula (3), for example.

Ki =prf(공유키, gxy, SIGNALi)K i = prf (shared key, g xy , SIGNAL i )

……(식 3)                                          … … (Equation 3)

이 식(3)에서, gxy는 DH 공통키이고, 공유키는, 서버·클라이언트간의 임의의 공유키이다.In this equation (3), g xy is a DH common key, and the shared key is an arbitrary shared key between server and client.

한편, HASHc는, 다음식(4)에 나타낸 것 처럼, 공유키, DH 공개값 gx, IDc(클라이언트 ID) 및 SIGNAL를 인수로 하는 유사 난수 함수(키 첨부 해쉬 함수)의 함수값으로서 구해진다.On the other hand, HASHc is obtained as a function value of a pseudorandom function (keyed hash function) that takes a shared key, a DH public value g x , IDc (client ID), and SIGNAL as shown in the following equation (4). .

HASHc=prf(공유키, gx, IDc, SIGNAL)HASHc = prf (shared key, g x , IDc, SIGNAL)

……(식 4)                                         … … (Equation 4)

그 다음에, 스텝 S2에서는, 서버(10)가, SIGNAL와 HASHc를 연산에 의해 구해서, 이들 연산 결과와, 클라이언트(20)로부터 수신한 SIGNAL 및 HASHc와의 비교에 의해, 클라이언트(20)의 정당성을 판정하는 처리를 실행한다.   Next, in step S2, the server 10 obtains SIGNAL and HASHc by arithmetic operations, and justifies the client 20 by comparing these arithmetic results with SIGNAL and HASHc received from the client 20. The judgment process is performed.

상기 판정의 결과, 수신 데이터와 연산 결과가 일치해서, 클라이언트(20)가 정당하다라고 판정한 경우에는, HASHs를 연산에 의해 구해서, 이 HASHs와 기억장치(13)로 기억되어 있는 DH 공개값 gy 를, 수락한 SA와 함께 클라이언트(20)에 대해서 송신하는 처리를 실행한다(스텝 S3). 한편, 수신 데이터와 연산 결과가 일치하지 않고, 클라이언트(20)가 정당하지 않다고 판정되는 경우에는, 클라이언트(20)로부터의 액세스를 거부하고 해당 인증 처리를 종료한다.As a result of the determination, when the received data and the calculation result coincide, and the client 20 determines that it is legitimate, the HASHs are obtained by calculation and the DH public value g stored in the HASHs and the storage device 13 is calculated. A process of transmitting y to the client 20 together with the accepted SA is executed (step S3). On the other hand, when the received data and the calculation result do not match and it is determined that the client 20 is not valid, access from the client 20 is denied and the authentication process ends.

여기서, HASHs는, 다음식(5)에 나타낸 것 처럼, 공유키, DH 공개값 gx, gy, IDs(서버 ID) 및 SIGNAL를 인수로 하는 유사 난수 함수(키 첨부 해쉬 함수)의 함수값으로서 구해진다.Here, HASHs is a function value of a pseudo-random function (keyed hash function) that takes a shared key, a DH public value g x , g y , IDs (server ID), and SIGNAL as shown in the following expression (5). Obtained as

HASHs=prf(공유키, gx, gy, IDs, SIGNAL)HASHs = prf (shared key, g x , g y , IDs, SIGNAL)

……(식 5)                                         … … (Eq. 5)

또한, 이 스텝 S3에서, 기억장치(13)에 기억되어 있는 DH 공개값 gy 와 클라이언트(20)로부터 수신한 DH 공개값 gx 으로 부터 DH 공통키 gxy를 생성해서, DH 공통키 gxy를 기억장치(13)로 격납하는 처리도 아울러 한다.Further, in the step S3, to generate a DH public value g x DH shared-key g xy from the is received from the storage device (13) DH public value g y and the client 20 stored in, DH shared-key g xy Is stored in the storage device 13 as well.

그 다음에, 스텝 S4에서는, 클라이언트(20)가, HASHs를 연산에 의해 구해서, 이 연산 결과와, 서버(10)로부터 수신한 HASHs와의 비교에 의해, 서버(10)의 정당성을 판정하는 처리를 실행한다.   Next, in step S4, the client 20 obtains HASHs by calculation, and performs a process of determining the legitimacy of the server 10 by comparing the result of the calculation with the HASHs received from the server 10. Run

상기 판정의 결과, 수신 데이터와 연산 결과가 일치해, 서버(10)가 정당하다라고 판정한 경우에는, 기억장치(23)로 기억되어 있는 DH 공개값 gx 와, 서버(10)로부터 수신한 DH 공개값 gy 으로 부터 DH 공통키 gxy를 생성해 기억장치(23)로 격납한 후, 해당 인증 처리를 종료해, 다음의 데이터 전송 처리로 이행한다. 한편, 수신 데이터와 연산 결과가 일치하지 않고, 서버(10)가 정당하지 않다고 판정되는 경우에는, 서버(10)에의 액세스를 중지해, 해당 인증 처리를 종료한다.As a result of the determination, when the received data and the calculation result coincide with each other and the server 10 determines that the server 10 is legitimate, the DH public value g x stored in the storage device 23 and the received data from the server 10 are determined. After the DH common key g xy is generated from the DH public value g y and stored in the storage device 23, the authentication process is terminated and the process proceeds to the next data transfer process. On the other hand, when the received data and the calculation result do not match and it is determined that the server 10 is not valid, access to the server 10 is stopped and the authentication process ends.

이상과 같이, 이 제2의 실시의 형태에 의하면, 세션마다 변화하는 암호화키 K(가변 공유키)를 인수로 하는 해쉬 함수의 함수값을 원 타임 ID(SIGNAL)로서 이용하도록 했으므로, 예를 들면, 암호화키 K가 제3자에게 누설되었다고 할지라도, 세션마다 암호화키 K가 변화하는 것이 되므로, 누설된 암호화키 K를 이용해 생성된 원 타임 ID이외의 원 타임 ID를 예측할 수 없게 된다. 즉, 도청이 곤란하고 안전성이 뛰어난 원 타임 ID를 생성하는 것이 가능하게 되어, 원 타임 ID의 장래에 미치는 안전성(PFS)을 실현하는 것이 가능하게 된다.   As described above, according to the second embodiment, the function value of the hash function whose argument is the encryption key K (variable shared key), which varies from session to session, is used as the one-time ID (SIGNAL). Even if the encryption key K is leaked to a third party, the encryption key K is changed for each session, so that one time IDs other than the one time ID generated using the leaked encryption key K cannot be predicted. In other words, it is possible to generate a one-time ID having difficulty in eavesdropping and excellent safety, and it is possible to realize safety (PFS) affecting the future of the one-time ID.

또한, 상기 원 타임 ID(SIGNAL)를 이용해, 클라이언트·서버간에 있어서의 인증을 하도록 했으므로, 제3자가 송신자·수신자를 특정할 수 없게 되는 한편, 정당한 송신자·수신자이면 원 타임 ID를 식별 정보로서 파악할 수가 있다. 따라, DoS 공격이나 스푸핑(spoofing) 등에 대한 내성을 강화할 수가 있어 개방적인 네트워크 환경하에 있어도, ID정보의 보호를 가능하게 하여, 통신의 안전성을 향상 시킬 수가 있다. 또, 원격 접근이 가능하게 되어, 편리성의 향상을 가능하게도 할 수 있다.   In addition, since the one-time ID (SIGNAL) is used for authentication between the client and the server, the third-party cannot identify the sender and the receiver, and if it is a legitimate sender / receiver, the one-time ID can be identified as the identification information. There is a number. As a result, resistance to DoS attacks, spoofing, and the like can be strengthened, and even in an open network environment, ID information can be protected and communication safety can be improved. In addition, remote access can be made, and the convenience can be improved.

또, 이 실시의 형태에서는, 클라이언트(20)의 정당성을 판정하는데 이용하는 일방향 함수 Fc로서 공유키, DH 공개값 gx, IDc(클라이언트 ID) 및 SIGNAL를 인수로 하는 유사 난수 함수를 이용하는 것과 동시에, 서버(10)의 정당성을 판정하는데 이용하는 일방향 함수 Fs로서 공유키, DH 공개값 gx, gy, IDs(서버 ID) 및 SIGNAL를 인수로 하는 유사 난수 함수를 이용하도록 했으므로, 종래의 키 교환·인증 방식에서는 3회 필요했던 통신 횟수를 2회에 절감 하는 것이 가능하게 되어, 신속하고 안전한 인증 및 키 교환을 실현하는 것이 가능하게 된다.In this embodiment, the server uses a pseudo random number function that takes a shared key, a DH public value gx, IDc (client ID), and SIGNAL as the one-way function Fc used to determine the validity of the client 20. As the one-way function Fs used to determine the validity of (10), a pseudo-random function that takes a shared key, DH public values g x , g y , IDs (server ID), and SIGNAL as arguments is used. In this method, it is possible to reduce the number of communication required three times in two, and to realize quick and secure authentication and key exchange.

(실시의 형태 3)  (Embodiment 3)

앞서 기술한 제2의 실시의 형태에서는, 전회의 세션에서 생성된 암호화키(가변 공유키)를 인수로 하는 해쉬 함수의 함수값을 구해서, 이 함수값을 이번 회의 세션의 원 타임 ID(SIGNAL)로서 이용하도록 했지만, 이 제3의 실시의 형태에서는, 전회의 세션으로 생성된 공유키와 해당 세션에 있어서의 통신 순서를 인수로 하는 해쉬 함수의 함수값을 구해서, 이 함수값을 이번 회의 세션의 각 통신시에 있어서의 원 타임 ID로서 이용하도록 하고 있다. 이 제3의 실시의 형태 특유의 부분 이외는, 제2의 실시의 형태에서와 같다. 이 제3의 실시의 형태에서, 제2의 실시의 형태와 동일 부분에는 동일 부호를 첨부해, 그 설명을 생략 한다.   In the second embodiment described above, a function value of a hash function whose argument is an encryption key (variable shared key) generated in a previous session is obtained, and this function value is the one-time ID (SIGNAL) of this session. In this third embodiment, the function value of the hash function whose arguments are the shared key generated in the last session and the communication order in the session is obtained, and this function value is used for this session. It is used as a one-time ID at the time of each communication. It is the same as that of 2nd Embodiment except the part peculiar to this 3rd Embodiment. In this 3rd Embodiment, the same code | symbol is attached | subjected to the same part as 2nd Embodiment, and the description is abbreviate | omitted.

도 9는 본 발명과 관련되는 인증 방법의 제3의 실시의 형태를 설명하는 도면이다. 이 제3의 실시의 형태에서는, 먼저, 스텝 P1에서, 클라이언트(20)가, SIGNALn, 1(제1의 원 타임 ID)을 생성함과 함께, IDc(클라이언트 ID), IDs(서버 ID), DH 공개값 gxn 및 SIGNALn, 1을 공유키 Kn-1 (제1의 가변 공유키)로 암호화해, 이 암호화 데이터와 SIGNALn, 1 을 서버(10)에 대해서 송신하는 처리를 실행한다.It is a figure explaining 3rd embodiment of the authentication method which concerns on this invention. In this third embodiment, first, in step P1, the client 20 generates SIGNALn, 1 (the first one-time ID), and IDc (client ID), IDs (server ID), The DH public values gxn and SIGNALn, 1 are encrypted with a shared key K n-1 (first variable shared key), and a process of transmitting this encrypted data and SIGNALn, 1 to the server 10 is executed.

여기서, SIGNAL는, i번째의 세션에 있어서의 클라이언트(20)의 j번째의 통신으로 이용하는 SIGNAL를 SIGNALi, j, i번째의 세션에 있어서의 서버(10)의 j번째의 통신으로 이용하는 SIGNAL를 SIGNAL' i, j라고 할 경우, 다음과 같이 생성된다.   Here, SIGNAL uses SIGNAL, which is used as the j-th communication of the client 20 in the i-th session, as SIGNALi, j, and SIGNAL, which is used as the j-th communication of the server 10 in the i-th session. 'i, j is generated as follows.

SIGNAL1, j =hash(R, j) i=1SIGNAL 1 , j = hash (R, j) i = 1

SIGNALi, j =hash(Ki-1, j) i≥2SIGNAL i , j = hash (K i-1 , j) i≥2

SIGNAL' 1, j =hash'(R, j) i=1SIGNAL ' 1 , j = hash' (R, j) i = 1

SIGNAL' i, j=hash'(Ki-1, j) i≥2SIGNAL ' i , j = hash' (K i-1 , j) i≥2

……(식 6)                                         … … (Equation 6)

상기 SIGNAL의 정의식(6)에 두고, hash와 hash'는 서로 다른 해쉬 함수, R는 ID발행 관리 서버(30)로부터 서버(10)과 클라이언트(20)의 쌍방으로 발행되어 양자 사이에 공유화된 난수, Ki 는 i번째의 세션으로 공유한 DH 공통키 gxiyi(공유키)이다.In the definition formula (6) of the SIGNAL, hash and hash 'are different hash functions, and R is a random number issued from the ID issuing management server 30 to both the server 10 and the client 20 and shared between them. , Ki is the DH common key g xiyi (shared key) shared by the i th session.

즉, 상기 SIGNAL의 정의식(6)에 의하면, 전회의 세션으로 생성된 공유키 Ki-1 와 이번 회의 세션에 있어서의 통신 순서 j를 인수로 하는 해쉬 함수의 함수값을 구해서, 이 함수값을 이번 세션의 j번째의 통신에 이용하는 SIGNAL로 하고 있다. 다만, 최초의 세션(i=1)에서는, 서버·클라이언트간에 미리 공유화된 난수 R과 해당 세션에 있어서의 통신 순서 j를 인수로 하는 해쉬 함수의 함수값을 구해서, 이 함수값을 최초의 세션의 j번째의 통신에 이용하는 SIGNAL로 하고 있다. That is, according to the definition formula (6) of the above SIGNAL, the function value of the hash function whose argument is the shared key Ki-1 generated in the last session and the communication order j in this session is obtained, and this function value is obtained this time. Set to SIGNAL for the jth communication of the session. In the first session (i = 1), however, the function value of the hash function whose arguments are the shared random number R between the server and the communication sequence j in the session is obtained, and the value of the function It is set as SIGNAL used for the jth communication.

그 다음에, 스텝 P2에서는, 서버(10)가, SIGNALn, 1을 연산에 의해 구해서, 이 연산 결과와, 클라이언트(20)로부터 수신한 SIGNALn, 1과의 조합에 의해, 클라이언트(20)를 식별해, 식별할 수 없는 경우에는, 통신을 거부한다. 식별할 수 있는 경우에는, 공유키 Ki-1 를 이용해 암호화 데이터를 복호해, 이 복호한 데이터에 포함되는, IDc, IDs 및 SIGNALn, 1에 근거해, 클라이언트(20)의 정당성을 판정하는 처리를 실행한다.Next, in step P2, the server 10 obtains SIGNAL n , 1 by a calculation, and the client 20 uses a combination of the result of this calculation and SIGNAL n , 1 received from the client 20. If it can't identify it, it refuses communication. If it can be identified, the encrypted data is decrypted using the shared key K i-1 , and the validity of the client 20 is determined based on IDc, IDs, and SIGNAL n , 1 contained in the decrypted data. Run the process.

상기 판정의 결과, 수신 데이터와 서버(10)로 미리 격납 된 기억 데이터가 일치해, 클라이언트(20)가 정당하다라고 판정한 경우에는, 앞서 기술한 SIGNAL의 정의식에 따라 SIGNALn, 1(제2의 원 타임 ID)를 생성함과 함께, 클라이언트(20)로부터 수신한 DH 공개값 gxn와 해당 서버(10)로 미리 기억된 DH 공개값 gyn로 부터 DH 공통키 gxnyn를 공유키 Kn (제2의 가변 공유키)로서 생성해, 이 공유키 Kn, IDc, IDs 및 SIGNALn, 1을 인수로 하는 해쉬 함수 h의 함수값과 DH 공개값 gyn와 SIGNALn, 1을 클라이언트(20)에 대해서 송신하는 처리를 실행한다(스텝 P3). 한편, 수신 데이터와 기억 데이터가 일치하지 않고, 클라이언트(20)가 정당하지 않다고 판정되는 경우에는, 클라이언트(20)로부터의 액세스를 거부해, 해당 인증 처리를 종료한다.As a result of the determination, when the received data and the stored data previously stored in the server 10 coincide, and the client 20 judges that it is legitimate, SIGNAL n , 1 (second And the DH common key g xnyn from the DH public value g xn received from the client 20 and the DH public value g yn prestored in the server 10. Second variable shared key), and the client 20 stores the function values of the hash function h and the DH public values g yn , SIGNAL n , 1 , which take the shared keys Kn, IDc, IDs, and SIGNAL n , 1 as arguments. The process to transmit is performed (step P3). On the other hand, when the received data and the stored data do not coincide and the client 20 is determined to be unjust, the access from the client 20 is denied and the authentication process ends.

그 다음에, 스텝 P4에서는, 클라이언트(20)가, SIGNALn, 1을 연산에 의해 구해서, 이 연산 결과와, 서버(10)로부터 수신한 SIGNAL' n, 1과의 조합에 의해, 서버(10)를 식별해, 식별할 수 없는 경우에는, 통신을 거부한다. 식별할 수 있는 경우에는, 서버(10)로부터 수신한 DH 공개값 gyn와 해당 클라이언트(20)으로 미리 기억된 DH 공개값 gxn으로 부터 DH 공통키 gxnyn를 공유키 Kn 로서 생성함과 함께, 이 공유키 Kn 를 이용해 해쉬 함수 h의 함수값을 연산에 의해 구해서, 이 연산 결과와, 서버(10)로부터 수신한 해쉬 함수 h의 함수값과의 조합에 의해, 서버(10)의 정당성을 판정하는 처리를 실행한다.Next, in step P4, the client 20 obtains SIGNAL n , 1 by a calculation, and the server 10 uses a combination of this calculation result and SIGNAL ' n , 1 received from the server 10. ) And rejects communication if it cannot. If it can be identified, the DH common key g xnyn is generated as the shared key Kn from the DH public value g yn received from the server 10 and the DH public value g xn stored in advance in the client 20. Using the shared key K n , the function value of the hash function h is obtained by calculation, and the validity of the server 10 is determined by the combination of the result of this operation and the function value of the hash function h received from the server 10. The process of determining is performed.

상기 판정의 결과, 수신 데이터와 연산 결과가 일치해, 서버(10)가 정당하다라고 판정 한 경우에는, 해당 인증 처리를 종료해, 다음의 데이터 전송 처리로 이행한다. 한편, 수신 데이터와 연산 결과가 일치하지 않고, 서버(10)가 정당하지 않다고 판정되는 경우에는, 서버(10)에의 액세스를 중지해, 해당 인증 처리를 종료한다.   As a result of the determination, when the received data and the calculation result coincide with each other and the server 10 determines that it is legitimate, the authentication process is terminated, and the flow proceeds to the next data transfer process. On the other hand, when the received data and the calculation result do not match and it is determined that the server 10 is not valid, access to the server 10 is stopped and the authentication process ends.

또한, 클라이언트(20)가 공유키 Ki 를 공유한 것을 서버(10)측에서 확인할 필요가 있는 경우에는, 이 스텝 P4로 클라이언트(20)가 서버(10)의 정당성을 판정된 후에, 공유키 Kn, IDc, IDs를 인수로 하는 해쉬 함수 h의 함수값을 서버(10)에 대해서 송신하도록 하면 좋다.If the server 10 needs to confirm that the client 20 has shared the shared key Ki, the shared key K after the client 20 determines the legitimacy of the server 10 in this step P4. What is necessary is just to make the server 10 transmit the function value of the hash function h which takes n , IDc, and IDs as an argument.

이상과 같이, 이 제3의 실시의 형태에 의하면, 전회의 세션으로 생성된 공유키 Ki-1 (가변 공유키)와 이번 회의 세션에 있어서의 통신 순서 j를 인수로 하는 해쉬 함수의 함수값을 구해서, 이 함수값을 해당 세션의 j번째의 통신에만 유효한 원 타임 ID(SIGNAL)로서 이용하도록 했으므로, 예를 들면, n번째의 세션으로 생성한 공유키 Kn 가 제3자에게 누설되었다고 할지라도, 세션마다 공유키 Kn 가 변화하는 것으로 되므로, 누설된 공유키 Kn 를 이용해 생성된 원 타임 ID(SIGNALn+1, j, SIGNALn+1, j ) 이외의 원 타임 ID를 예측할 수 없게 된다. 즉, 도청이 곤란하고 안전성이 뛰어난 원 타임 ID를 생성하는 것이 가능하게 되어, 원 타임 ID의 장래에 미치는 안전성(PFS)을 실현하는 것이 가능하게 된다.As described above, according to the third embodiment, the function value of the hash function whose arguments are the shared key K i-1 (variable shared key) generated in the previous session and the communication sequence j in this session. Since this function value is used as the one-time ID (SIGNAL) valid only for the jth communication of the session, for example, the shared key K n generated in the nth session is leaked to a third party. also, so that the shared key K n is changed for each session, to estimate the one-time ID other than the generated by using the leaked shared key K n one-time ID (SIGNAL n + 1, j, SIGNAL n + 1, j) There will be no. In other words, it is possible to generate a one-time ID having difficulty in eavesdropping and excellent safety, and it is possible to realize safety (PFS) affecting the future of the one-time ID.

또한, 상기 원 타임 ID(SIGNAL)를 이용해, 클라이언트·서버간에 있어서의 인증을 하도록 했으므로, 앞서 기술한 제2의 실시의 형태와 같이, 대량의 계산 요구·응답 요구 등에 의한 계산양이나 메모리에의 DoS 공격을 방지할 수가 있어 개방적인 네트워크 환경하에 있어도, ID정보의 보호를 가능하게 하여, 통신의 안전성을 향상 시킬 수가 있다.   In addition, since the authentication between the client and the server is performed using the one-time ID (SIGNAL), as in the second embodiment described above, the calculation amount and the memory due to a large amount of calculation request and response request, etc. DoS attacks can be prevented, and even in an open network environment, ID information can be protected and communication safety can be improved.

덧붙여, DoS 공격을 방지하는 방법의 하나로서 쿠키(난수)를 이용한 수법이 일반적으로 알려져 있다. 이 방법에 의하면, IP주소와 쿠키 생성자 밖에 모르는 비밀을 편성하는 것에 따라, 동일 IP주소로부터의 DoS 공격을 막을 수가 있다. 이것에 대해서, 본 실시의 형태의 SIGNAL의 경우에는, DH 공통키를 모르는 한, 다음회 유효가 되는 SIGNAL를 예측할 수가 없다. 따라서, 매회의 통신에 SIGNAL를 이용하는 것으로써, 쿠키와 같은 효과를 얻을 수 있다. 게다가, 쿠키의 경우는 세션중에 IP주소가 바뀌는 것을 허락하지 않지만, SIGNAL는 바뀌어도 좋다. 또, 쿠키를 이용할 경우 IP주소를 위조한 DoS 공격을 막을 수가 없지만, 원 타임 ID에서는 IP주소가 관계없기 때문에 이러한 공격도 막을 수가 있다.   In addition, a method using a cookie (random number) is generally known as a method of preventing a DoS attack. According to this method, a DoS attack from the same IP address can be prevented by forming a secret known only by the IP address and the cookie creator. On the other hand, in the case of SIGNAL of the present embodiment, the SIGNAL that becomes valid next time cannot be predicted unless the DH common key is known. Therefore, by using SIGNAL for each communication, a cookie-like effect can be obtained. In addition, cookies do not allow the IP address to change during the session, but SIGNAL may change. In addition, the use of cookies does not prevent DoS attacks that forge IP addresses, but it can also prevent such attacks because IP addresses are irrelevant in one-time IDs.

또, 본 실시의 형태에 두고, 예를 들면, 클라이언트(20)가 프로토콜의 최초의 메세지를 보내(스텝 P1), 서버(10)가 거기에 대응해 DH 키 교환의 계산을 해(스텝 P2), 2번째의 메세지를 보낼(스텝 P3) 경우를 생각한다. 만약, 서버(10)의 메세지가 도중에서 소실, 혹은 공격자에게 횡령되어, 클라이언트(20)가 받을 수가 없었던 경우, 클라이언트(20)은 다시 한번 최초의 메세지를 송신할 필요가 있다. 이 때, 서버(10)는 올바른 클라이언트(20)가 통신을 다시 보내 왔는지, 공격자가 최초의 메세지를 읽어내 리플레이 공격을 하고 있는 것인가, 판단할 수가 없다. 여기서, 클라이언트(20)은 다시 한번 최초의 메세지를 다시 보내는 경우, 최초의 도전(challenge) 시에 보낸 메세지와 동일한 내용의 것을 보내어서, 서버(10)도 이전 답신한 메세지의 카피를 그대로 보내기로 한다. 이것에 의해, 쓸데없는 DH 키 교환의 계산을 피할 수가 있어 리플레이 공격에 의한 DoS 공격을 막을 수가 있다.   Also, in the present embodiment, for example, the client 20 sends the first message of the protocol (step P1), and the server 10 calculates the DH key exchange correspondingly (step P2). Consider the case where the second message is sent (step P3). If the message of the server 10 is lost on the way or is stolen by an attacker and the client 20 cannot receive it, the client 20 needs to send the first message once again. At this time, the server 10 cannot determine whether the correct client 20 has resent the communication or whether the attacker is replaying by reading the first message. Here, when the client 20 sends the first message again, the client 20 sends the same content as the message sent at the first challenge, so that the server 10 also sends a copy of the previously reply message as it is. do. This avoids the use of unnecessary DH key exchange calculations and prevents DoS attacks from replay attacks.

또한, 이 실시의 형태에서는, 전회의 세션으로 생성된 공유키(DH 공통키) Ki-1 와 이번 세션에 있어서의 통신 순서 j를 인수로 하는 해쉬 함수의 함수값을 구해서, 이 함수값을 해당 세션의 j번째의 통신에만 유효한 원 타임 ID(SIGNAL)로서 생성하도록 했지만, 예를 들면, 다음과 같이 SIGNAL를 생성하는 것도 가능하다.In this embodiment, the function value of the hash function whose argument is the shared key (DH common key) K i-1 generated in the previous session and the communication procedure j in this session is obtained, and this function value is obtained. Although it is supposed to generate as a one-time ID (SIGNAL) valid only for the j-th communication of the session, for example, it is also possible to generate SIGNAL as follows.

SSj =h1(Ki-1 )SS j = h1 (K i-1 )

SIGNALi, j =hash(SSi, j)SIGNAL i , j = hash (SS i, j )

SIGNAL' i, j =hash'(SSi, j)SIGNAL ' i , j = hash' (SS i, j )

……(식 7)                                         … … (Eq. 7)

상기 SIGNAL의 정의식(7)에서, SSi 는(i-1) 번째의 세션으로 공유한 DH 공통키 Ki-1 를 인수로 하는 해쉬 함수의 함수값이다.In the definition expression (7) of SIGNAL, SS i is a function value of a hash function whose argument is the DH common key K i-1 shared by the (i-1) th session.

또, 이 경우에는, i번째의 세션으로 이용되는 인증용 키를 AKi, 암호화키를 SKi 로 해서, 이들 키를, 예로 들면,In this case, for example, AK i and the encryption key are SK i for the authentication key used in the i-th session.

AKi =h2(Ki-1 ), SKi =h3(Ki-1 )AK i = h2 (K i-1 ), SK i = h3 (K i-1 )

이라고 하는 식으로부터 구하도록 해도 괜찮다. 덧붙여 h1, h2, h3는, 충돌이 없는 일방향성 해쉬 함수이다. You may ask for it from the expression In addition, h1, h2, and h3 are unidirectional hash functions without collision.

이와 같이 SSi 로부터 인증용 키 및 암호화키를 생성하는 경우에는, 앞서 기술한 스텝 P1에서, 클라이언트(20)가, IDc, IDs, DH 공개값 gxn 및 SIGNALn, 1 을 암호화해 서버(10)에 대해서 송신할 때에, 인증용 키 AKn 를 이용하도록 한다. 또, 스텝 P3에서, 서버(10)가 클라이언트(20)에 대해서 송신하는 해쉬 함수 h에, 암호화키 SKn, IDc, IDs 및 SIGNAL' n, 1을 인수로 하는 해쉬 함수를 이용하도록 한다.In this way, when generating the authentication key and the encryption key from SS i , in step P1 described above, the client 20 encrypts the IDc, IDs, DH public values g xn and SIGNAL n , 1 to the server 10. ), Use the authentication key AKn. In addition, in step P3, the hash function h sent by the server 10 to the client 20 is used as a hash function having the encryption keys SK n , IDc, IDs and SIGNAL ' n , 1 as arguments.

그렇게 하는 것으로, 공격자가, 만일, SSi, AKi, SKi 의 어느 쪽 하나의 값을 알 수 있었다고 할지라도, 그 외의 값을 계산할 수 없다. 따라서, 공격자가 i번째의 세션에서 정규 유저가 되어 끝나고, 키 교환을 하기 위해서는, AKi, SIGNAL, 정규 유저의 ID정보(IDs, IDc)가 필요해, 암호 통신하기 위해서는, SKi SIGNAL, 정규 유저의 ID정보, 통신 횟수의 정보가 필요하게 된다.By doing so, even if the attacker could know the value of either SS i , AK i , or SK i , no other value could be calculated. Therefore, after the attacker is a legal user in the i-th session, to the key exchange, AKi, SIGNAL, need the ID information of the regular user (IDs, IDc), to the encrypted communication, SK i SIGNAL, a regular user of the ID information and information on the number of times of communication are required.

또한, n번째의 세션에 있어서의 클라이언트(20)의 DH 공개값 gxn는, 인증키 AKi (h2(Ki-1 ))를 이용해 암호화 된다. 따라서, AKi 를 모르는 공격자는 gxn를 알 수 없다. 그 때문에, 본 방식으로 생성·공유되는 Diffie-Hellman 공통키는 계산양적 뿐만 아니라 정보론적으로도 안전하다.In addition, the DH public value g xn of the client 20 in the nth session is encrypted using the authentication key AK i (h2 (K i-1 )). Thus, an attacker who does not know AK i cannot know g xn . Therefore, the Diffie-Hellman common key generated and shared in this manner is not only computationally quantitative but also informatively secure.

(실시의 형태 4)  (Embodiment 4)

앞서 기술한 제2의 실시의 형태 및 3의 실시의 형태에서는, 인증과 동시에 Diffie-Hellman키 교환을 하도록 했지만, 이 제4의 실시의 형태에서는, Diffie-Hellman키 교환을 생략 하도록 하고 있다. 이 제4의 실시의 형태 특유의 부분 이외는, 제2의 실시의 형태에 있어서와 같다. 이 제4의 실시의 형태에서, 제2의 실시의 형태와 동일 부분에는 동일 부호를 교부해, 그 설명을 생략 한다.   In the second and third embodiments described above, the Diffie-Hellman key exchange is performed at the same time as the authentication. In the fourth embodiment, the Diffie-Hellman key exchange is omitted. It is the same as that of 2nd Embodiment except the part peculiar to this 4th Embodiment. In this 4th Embodiment, the same code | symbol is attached | subjected to the same part as 2nd Embodiment, and the description is abbreviate | omitted.

도 10은 본 발명과 관련되는 인증 방법의 제4의 실시의 형태를 설명하는 도면이다. 이 제4의 실시의 형태에서는, 먼저, 클라이언트(20)가, 난수 Rc(제1의 난수)를 생성함과 함께, 서버(10)과의 사이에 미리 공유화된 공유키 K1(제1의 공유키) 및 난수 R0(초기 난수)를 인수로 하는 유사 난수 함수 prf(K1, R0)의 함수값을 SIGNALc1(제1의 원 타임 ID)로서 구하고(스텝 S11), 이 SIGNALc1과 공유키 K1으로 암호화한 난수 Rc를 서버10에 대해서 송신하는 처리를 실행한다(스텝 S12).It is a figure explaining 4th embodiment of the authentication method which concerns on this invention. In this fourth embodiment, first, the client 20 generates a random number Rc (first random number), and the shared key K1 (first shared) previously shared with the server 10. The function value of the pseudo-random function prf (K1, R0) taking the key) and the random number R0 (initial random number) as an argument, as SIGNAL c1 (the first one-time ID) (step S11), and the SIGNAL c1 and the shared key K1. The process of transmitting the encrypted random number Rc to the server 10 is executed (step S12).

그 다음에, 서버(10)가, 난수 Rs(제2의 난수)를 생성함과 함께, 공유키 K1으로 복호한 난수 Rc와 공유키 K1를 인수로 하는 유사 난수 함수 prf(K1, Rc)의 함수값을 SIGNALs1(제2의 원 타임 ID)로서 구하고(스텝 S13), 이 SIGNALs1과 공유키 K1으로 암호화한 난수 Rs와 난수 R0+Rc(난수 R0, Rc를 인수로 하는 소정의 연산 결과, 예를 들면, 양자의 배타적 논리합 등)를 클라이언트(20)에 대해서 송신하는 처리를 실행한다(스텝 S14).Next, the server 10 generates a random number Rs (second random number), and the pseudo-random number function prf (K1, Rc) having the random number Rc decoded by the shared key K1 and the shared key K1 as an argument. The function value is obtained as SIGNAL s1 (second one-time ID) (step S13), and the result of a predetermined operation that takes a random number Rs and a random number R0 + Rc (random numbers R0 and Rc as arguments) encrypted with the SIGNAL s1 and the shared key K1. For example, an exclusive logical OR of both) is transmitted to the client 20 (step S14).

그 다음에, 클라이언트(20)가, 난수 Rc와 공유키 K1에 근거해 SIGNALs1를 연산에 의해 구해서, 이 연산 결과와, 서버(10)로부터 수신한 SIGNALs1과의 비교에 의해, 서버(10)를 식별함과 함께, 난수 R0+Rc의 수신 데이터와 연산 결과와의 비교에 의해, 서버(10)의 정당성을 판정하는 처리를 실행한다(스텝 S15).Next, the client 20 obtains the SIGNAL s1 by calculation based on the random number Rc and the shared key K1, and compares the result of the operation with the SIGNAL s1 received from the server 10 to determine the server 10. ) And a process of determining the validity of the server 10 by comparing the received data of the random number R0 + Rc with the calculation result (step S15).

상기 판정의 결과, 각각의 수신 데이터와 연산 결과가 일치해, 서버(10)가 정당하다라고 판정한 경우에는, 클라이언트(20)가, 난수 Rc 및 난수 Rs에 근거해 공유키 K2(제2의 공유키)를 생성함과 함께, 이 공유키 K2, 난수 Rs 및 난수 Rc를 인수로 하는 유사 난수 함수 prf(K2, Rs, Rc)의 함수값을 SIGNALc2(제3 원 타임 ID)로 구해서, 이 SIGNALc2와, 난수 Rc+Rs(난수 Rc, Rs를 인수로 하는 소정의 연산 결과)를 서버(10)에 대해서 송신하는 처리를 실행한다(스텝 S16). 한편, 수신 데이터와 연산 결과가 일치하지 않고, 서버(10)가 정당하지 않다고 판정되는 경우에는, 서버(10)에의 액세스를 중지하고, 해당 인증 처리를 종료한다.As a result of the determination, when the received data and the calculation result coincide with each other, and the server 10 determines that it is legitimate, the client 20 uses the shared key K2 (the second based on the random number Rc and the random number Rs). And a function value of the pseudo-random function prf (K2, Rs, Rc) taking the shared key K2, the random number Rs, and the random number Rc as arguments, as SIGNAL c2 (third one time ID), The process of transmitting this SIGNAL c2 and the random number Rc + Rs (the predetermined calculation result which takes a random number Rc and Rs as an argument) to the server 10 is performed (step S16). On the other hand, when the received data and the calculation result do not match and it is determined that the server 10 is not valid, access to the server 10 is stopped and the authentication process is terminated.

서버(10)는, 클라이언트(20)로부터 SIGNALc2를 수신하고, 난수 Rc 및 난수 Rs에 근거해 공유키 K2를 생성함과 함께, 공유키 K2, 난수 Rs 및 난수 Rc에 근거해 SIGNALc2를 연산에 의해 구해서, 이 연산 결과와, 클라이언트(20)로부터 수신한 SIGNALc2와의 비교에 의해, 클라이언트(20)를 식별함과 함께, 난수 Rc+Rs의 수신 데이터와 연산 결과와의 비교에 의해, 클라이언트(20)의 정당성을 판정하는 처리를 실행한다(스텝 S17).The server 10 receives SIGNAL c2 from the client 20, generates a shared key K2 based on the random number Rc and the random number Rs, and calculates the SIGNAL c2 based on the shared key K2, the random number Rs, and the random number Rc. The client 20 is identified by comparison of this operation result with the SIGNAL c2 received from the client 20, and the client is compared with the operation data and the received data of the random number Rc + Rs. The process of determining the validity of (20) is performed (step S17).

상기 판정의 결과, 각각의 수신 데이터와 연산 결과가 일치해, 클라이언트(20)가 정당하다라고 판정한 경우에는, 해당 인증 처리를 종료해, 다음의 데이터 전송 처리로 이행한다. 한편, 수신 데이터와 연산 결과가 일치하지 않고, 클라이언트(20)가 정당하지 않다고 판정되는 경우에는, 클라이언트(20)로부터의 액세스를 거부해, 해당 인증 처리를 종료한다.   As a result of the determination, when each of the received data and the calculation result coincide with each other, and the client 20 determines that it is legitimate, the authentication process is terminated, and the flow proceeds to the next data transfer process. On the other hand, when the received data and the calculation result do not coincide and the client 20 is determined to be unjust, the access from the client 20 is denied and the authentication process is terminated.

이상과 같이, 이 제4의 실시의 형태에 의하면, 상호 인증의 과정에서 생성된 난수와 상호 인증의 과정에서 변화하는 공유키 K를 인수로 하는 유사 난수 함수 prf의 함수값을 원 타임 ID로서 이용하도록 했으므로, 앞서 기술한 제2의 실시의 형태와 같이, 원 타임 ID의 안전성을 높일 수가 있어 신속하고 안전한 상호 인증을 실현할 수가 있다.   As described above, according to the fourth embodiment, the function value of the pseudo-random number function prf whose argument is the random number generated in the process of mutual authentication and the shared key K changed in the process of mutual authentication is used as the one-time ID. As described above, as in the second embodiment described above, the security of the one-time ID can be improved, and quick and secure mutual authentication can be realized.

(실시의 형태 5)  (Embodiment 5)

앞서 기술한 제4의 실시의 형태에서는, 원 타임 ID(SIGNAL)의 생성에 이용하는 공유키를 상호 인증의 과정에서 변화시키도록 했지만, 이 제5의 실시의 형태에서는, 상기 공유키를 고정하도록 하고 있다.   In the fourth embodiment described above, the shared key used for generating the one-time ID SIGNAL is changed in the process of mutual authentication. In the fifth embodiment, the shared key is fixed. have.

즉, 이 제5의 실시의 형태에서는, 도 11에 나타낸 것처럼, 먼저, 클라이언트(20)가, 난수 Rc(제1의 난수)를 생성함과 함께, 서버(10)과의 사이에 미리 공유화된 공유키 K 및 난수 R0(초기 난수)를 인수로 하는 유사 난수 함수 prf(K, R0)의 함수값을 SIGNALc1(제1의 원 타임 ID)로서 구하고(스텝 S21), 이 SIGNALc1와 공유키 K로 암호화한 난수 Rc를 서버(10)에 대해서 송신하는 처리를 실행한다(스텝 S22).That is, in this fifth embodiment, as shown in FIG. 11, the client 20 first generates a random number Rc (first random number) and is shared in advance with the server 10. The function value of the pseudorandom function prf (K, R0), which takes a shared key K and a random number R0 (initial random number) as an argument, is obtained as SIGNAL c1 (the first one-time ID) (step S21), and the shared key with the SIGNAL c1 is obtained. A process of transmitting the random number Rc encrypted with K to the server 10 is executed (step S22).

그 다음에, 서버(10)가, 난수 Rs(제2의 난수)를 생성함과 함께, 공유키 K로 복호한 난수 Rc와 공유키 K를 인수로 하는 유사 난수 함수 prf(K, Rc)의 함수값을 SIGNALs1(제2의 원 타임 ID)로서 구하고(스텝 S23), 이 SIGNALs1과 공유키 K로 암호화한 난수 Rs와 난수 R0+Rc(난수 R0, Rc를 인수로 하는 소정의 연산 결과)를 클라이언트(20)에 대해서 송신하는 처리를 실행한다(스텝 S24).Next, the server 10 generates a random number Rs (second random number), and the pseudo-random function prf (K, Rc) having the random number Rc decoded with the shared key K and the shared key K as arguments. The function value is obtained as SIGNAL s1 (second one-time ID) (step S23), and the result of a predetermined operation taking a random number Rs and a random number R0 + Rc (random numbers R0 and Rc as arguments) encrypted with the SIGNAL s1 and the shared key K. ) Is transmitted to the client 20 (step S24).

그 다음에, 클라이언트(20)가, 난수 Rc 및 공유키 K에 근거해 SIGNALs1를 연산에 의해 구해서, 이 연산 결과와, 서버(10)로부터 수신한 SIGNALs1과의 비교에 의해, 서버(10)를 식별함과 함께, 난수 R0+Rc의 수신 데이터와 연산 결과와의 비교에 의해, 서버(10)의 정당성을 판정하는 처리를 실행한다(스텝 S25).Next, the client 20 obtains SIGNAL s1 by calculation based on the random number Rc and the shared key K, and compares the result of the operation with the SIGNAL s1 received from the server 10 to determine the server 10. ) And a process of determining the validity of the server 10 by comparing the received data of the random number R0 + Rc with the calculation result (step S25).

상기 판정의 결과, 각각의 수신 데이터와 연산 결과가 일치해, 서버(10)가 정당하다라고 판정한 경우에는, 클라이언트(20)가, 난수 Rc, 난수 Rs 및 공유키 K를 인수로 하는 유사 난수 함수 prf(K, Rs, Rc)의 함수값을 SIGNALc2(제3 원 타임 ID)로서 구해서, 이 SIGNALc2와 난수 Rc+Rs(난수 Rc, Rs를 인수로 하는 소정의 연산 결과)를 서버(10)에 대해서 송신하는 처리를 실행한다(스텝 S26). 한편, 수신 데이터와 연산 결과가 일치하지 않고, 서버(10)가 정당하지 않다고 판정되는 경우에는, 서버(10)에의 액세스를 중지해, 해당 인증 처리를 종료한다.As a result of the determination, when the received data and the calculation result coincide with each other and the server 10 determines that the server 10 is legitimate, the pseudo-random number that the client 20 takes as its argument a random number Rc, a random number Rs, and a shared key K The function value of the function prf (K, Rs, Rc) is obtained as SIGNAL c2 (third one-time ID), and this SIGNAL c2 and the random number Rc + Rs (the result of a predetermined operation taking the random numbers Rc and Rs as arguments) are obtained from the server ( The process to transmit to 10 is executed (step S26). On the other hand, when the received data and the calculation result do not match and it is determined that the server 10 is not valid, access to the server 10 is stopped and the authentication process ends.

서버(10)는, 클라이언트(20)로부터 SIGNALc2를 수신하고, 난수 Rc, 난수 Rs 및 공유키 K에 근거해 SIGNALc2를 연산에 의해 구해서, 이 연산 결과와, 클라이언트(20)로부터 수신한 SIGNALc2와의 비교에 의해, 클라이언트(20)를 식별함과 함께, 난수 Rc+Rs의 수신 데이터와 연산 결과와의 비교에 의해, 클라이언트(20)의 정당성을 판정하는 처리를 실행한다(스텝 S27).Server 10, receives the SIGNAL c2 from the client 20, based on the random number Rc, the random number Rs and the shared key K obtain by the SIGNAL c2 in operation, it received from the operation result, and a client 20 SIGNAL The client 20 is identified by the comparison with c2 , and the process of determining the validity of the client 20 is executed by comparing the received data of the random number Rc + Rs with the calculation result (step S27).

상기 판정의 결과, 각각의 수신 데이터와 연산 결과가 일치해, 클라이언트(20)가 정당하다라고 판정한 경우에는, 해당 인증 처리를 종료해, 다음의 데이터 전송 처리로 이행한다. 한편, 수신 데이터와 연산 결과가 일치하지 않고, 클라이언트(20)가 정당하지 않다고 판정되는 경우에는, 클라이언트(20)로부터의 액세스를 거부해, 해당 인증 처리를 종료한다.   As a result of the determination, when each of the received data and the calculation result coincide with each other, and the client 20 determines that it is legitimate, the authentication process is terminated, and the flow proceeds to the next data transfer process. On the other hand, when the received data and the calculation result do not coincide and the client 20 is determined to be unjust, the access from the client 20 is denied and the authentication process is terminated.

이상과 같이, 이 제5의 실시의 형태에 의하면, 상호 인증의 과정에서 생성된 난수와 공유키 K를 인수로 하는 유사 난수 함수 prf의 함수값을 원 타임 ID로서 이용하도록 했기 때문에, 예를 들면, 공유키 K가 제3자에게 누설되었다고 할지라도, 난수에 의해 유사 난수 함수 prf의 함수값이 상호 인증의 과정에서 차례차례 변화하는 것이 되므로, 상호 인증의 과정에서 생성되는 난수를 모르는 한, 원 타임 ID를 예측할 수가 없다. 따라, 앞서 기술한 제2 ~ 제4의 실시의 형태와 같이, 원 타임 ID의 안전성을 높일 수가 있어, 신속하고 안전한 상호 인증을 실현할 수가 있다.   As described above, according to the fifth embodiment, since the function value of the pseudorandom function prf having the random number generated in the process of mutual authentication and the shared key K as arguments is used as the one-time ID, for example, Even if the shared key K is leaked to a third party, since the function value of the pseudo-random function prf is changed in sequence during mutual authentication by random numbers, as long as the random number generated in the process of mutual authentication is not known, The time ID cannot be predicted. Therefore, as in the second to fourth embodiments described above, the safety of the one-time ID can be improved, and quick and secure mutual authentication can be realized.

(실시의 형태 6)   (Embodiment 6)

도 12는 본 발명과 관련되는 인증 방법의 제6의 실시의 형태를 설명하는 도면이다. 이 제6의 실시의 형태에서는, 먼저, 클라이언트(20)가, 난수 Rci(1의 난수)를 생성함과 함께, 서버(10)과의 사이에 미리 공유화된 공유키 Ki, 난수 Rci-1(제1의 기억 난수) 및 난수 Rsi-1(제2의 기억 난수)을 인수로 하는 유사 난수 함수 prf(Ki, Rci-1, Rsi-1)의 함수값을 SIGNALci(제1의 원 타임 ID)로서 구하는 처리를 실행한다(스텝 S31).It is a figure explaining 6th Embodiment of the authentication method which concerns on this invention. In the sixth embodiment, first, the client 20 generates a random number R ci (random number of 1), and the shared key K i and the random number R ci shared in advance with the server 10. Returns the value of the function of the pseudorandom function prf (K i , R ci-1 , R si-1 ) taking the argument -1 (first memory random number) and random number R si-1 (second memory random number) as SIGNAL ci The process calculated | required as (1st one time ID) is performed (step S31).

덧붙여, Rci는 i번째의 세션으로 클라이언트(20)에 의해 생성된 난수, Rsi는 i번째의 세션으로 서버(10)에 의해 생성된 난수, Ki 는 i번째의 세션으로 사용하는 가변 공유키를 각각 나타내고 있다. 또, 전회(i-1번째)의 세션으로 생성된 난수 Rci-1, Rsi-1은, 서버(10)과 클라이언트(20)의 각 기억장치(13), 23의 기억 영역에 격납 되어 있어, 이들 난수 Rci-1, Rsi-1에 근거해, 공유키 Ki 가 생성되게 되어 있다.In addition, R ci is a random number generated by the client 20 in the i th session, R si is a random number generated by the server 10 in the i th session, and K i is a variable share used in the i th session. Each key is shown. The random numbers R ci-1 and R si-1 generated in the last (i-1st) session are stored in the storage areas 13 and 23 of the storage devices 13 and 23 of the server 10 and the client 20, respectively. Based on these random numbers R ci-1 and R si-1 , the shared key K i is generated.

그리고, 클라이언트(20)은, SIGNALc1를 생성한 후, IDc(클라이언트 ID), IDs(서버 ID) 및 난수 Rci를 공유키 Ki 로 암호화한 암호화 데이터 EKi(IDc, IDs, Rci)와 SIGNALc1를 서버(10)에 대해서 송신하는 처리를 실행한다(스텝 S32).After generating the SIGNAL c1 , the client 20 encrypts IDc (client ID), IDs (server ID), and the encrypted data E Ki (IDc, IDs, R ci ) by encrypting the random number R ci with the shared key K i . And SIGNAL c1 are transmitted to the server 10 (step S32).

서버(10)는, 클라이언트(20)로부터 SIGNALc1를 수신하고, 공유키 Ki, 난수 Rci-1 및 난수 Rsi-1에 근거해 SIGNALc1를 연산에 의해 구해서, 이 연산 결과와, 클라이언트(20)로부터 수신한 SIGNALc1와의 비교에 의해, 클라이언트(20)를 식별해, 식별할 수 없는 경우에는, 통신을 거부한다. 식별할 수 있는 경우에는, 공유키 Ki 를 이용해 암호화 데이터 EKi(IDc, IDs,. Rci)를 복호해, 이 복호한 데이터에 포함되는 IDc 및 IDs에 근거해, 클라이언트(20)의 정당성을 판정하는 처리를 실행한다.The server 10 receives SIGNAL c1 from the client 20, calculates SIGNAL c1 based on the shared key K i , the random number R ci-1, and the random number R si-1 by arithmetic, and calculates the result of the operation and the client. By comparison with SIGNAL c1 received from (20), the client 20 is identified, and if it cannot be identified, communication is rejected. If it can be identified, the encrypted data E Ki (IDc, IDs, .R ci ) is decrypted using the shared key K i , and the validity of the client 20 is based on the IDc and IDs included in the decrypted data. The process of determining is performed.

상기 판정의 결과, 수신 데이터와 서버(10)로 미리 격납 된 기억 데이터가 일치해, 클라이언트(20)가 정당하다라고 판정한 경우에는, 난수 Rsi(제2의 난수)를 생성함과 함께, 난수 Rci, 난수 Rsi-1 및 공유키 Ki 를 인수로 하는 유사 난수 함수 prf(Ki, Rci, Rsi-1)의 함수값을 SIGNALs1 (제2의 원 타임 ID)로서 구한다. 그리고, 난수 Rci-1, Rsi-1을 격납하고 있던 기억 영역에, 난수 Rci, Rsi 를 각각 격납함과 함께, 이들 난수 Rci, Rsi에 근거해 공유키 Ki+1 를 생성해 기억하는 처리를 실행한다(스텝 S33).As a result of the determination, when the received data and the stored data previously stored in the server 10 coincide with each other and the client 20 determines that it is legitimate, it generates a random number R si (second random number), The function value of the pseudorandom function prf (K i , R ci , R si-1 ), which takes a random number R ci , a random number R si-1 and a shared key K i , is obtained as SIGNAL s1 (second one-time ID). . And, in the storage area that stores the random number R ci-1, R si- 1, with also stores the random number R ci, R si, respectively, a shared key K i + 1 based on these random numbers R ci, R si The process of generating and storing is executed (step S33).

그 다음에, 서버(10)는, IDc, IDs 및 난수 Rsi를 공유키 Ki 로 암호화한 암호화 데이터 EKi(IDs, IDc, Rsi)와 SIGNALs1를 클라이언트(20)에 대해서 송신하는 처리를 실행한다(스텝 S34).Then, the server 10 transmits the encrypted data E Ki (IDs, IDc, R si ) and SIGNAL s1 obtained by encrypting IDc, IDs, and the random number R si with the shared key K i , to the client 20. (Step S34).

한편, 수신 데이터와 기억 데이터가 일치하지 않고, 클라이언트(20)가 정당하지 않다고 판정되는 경우에는, 클라이언트(20)로부터의 액세스를 거부해, 해당 인증 처리를 종료한다. On the other hand, when the received data and the stored data do not coincide and the client 20 is determined to be unjust, the access from the client 20 is denied and the authentication process ends.

클라이언트(20)은, 서버(10)로부터 SIGNALs1를 수신하고, 공유키 Ki, 난수 Rci 및 난수 Rsi-1에 근거해 SIGNALs1를 연산에 의해 구해서, 이 연산 결과와, 클라이언트(20)로부터 수신한 SIGNALs1와의 비교에 의해, 서버(10)를 식별하고, 식별할 수 없는 경우에는, 통신을 거부한다. 한편, 식별할 수 있는 경우에는, 공유키 Ki 를 이용해 암호화 데이터 EKi(IDs, IDc, Rsi)를 복호해, 이 복호한 데이터에 포함되는 IDc 및 IDs에 근거해, 서버(10)의 정당성을 판정하는 처리를 실행한다. 서버(10)를 식별할 수 있는 경우, 통신 상대를 특정 가능할 뿐만 아니라, 서버(10)가 난수 Rci를 받은 것도 확인할 수가 있다.Client 20, and receives the SIGNAL s1 from the server 10, and the shared key K i, based on the random number R ci and the random number R si-1, obtain by the SIGNAL s1 in operation, the result of the operation, the client (20 The server 10 is identified by comparison with the SIGNAL s1 received from the parentheses. If the identification is not possible, the communication is rejected. On the other hand, if it can be identified, the encrypted data E Ki (IDs, IDc, R si ) is decrypted using the shared key K i , and based on the IDc and IDs included in the decoded data, The process of determining the validity is performed. When the server 10 can be identified, not only can the communication partner be identified, but also the server 10 can confirm that the random number R ci has been received.

그리고, 상기 판정의 결과, 수신 데이터와 클라이언트(20)에 미리 격납 된 기억 데이터가 일치해, 서버(10)가 정당하다라고 판정한 경우에는, 난수 Rci-1, Rsi-1을 격납하고 있던 기억 영역에, 난수 Rci, Rsi를 각각 격납 해, 이들 난수R ci, Rsi에 근거해 공유키 Ki+1 를 생성·기억한 후(스텝 S35), 해당 인증 처리를 종료해, 다음의 데이터 전송 처리로 이행한다. 한편, 수신 데이터와 기억 데이터가 일치하지 않고, 서버(10)가 정당하지 않다고 판정되는 경우에는, 서버(10)로부터의 액세스를 거부해, 해당 인증 처리를 종료한다.As a result of the above determination, when the received data and the stored data previously stored in the client 20 coincide with each other and the server 10 determines that the server 10 is legitimate, random numbers R ci-1 and R si-1 are stored. After storing the random numbers R ci and R si in the stored memory area, generating and storing the shared key K i + 1 based on these random numbers R ci and R si (step S35), the corresponding authentication process ends. The flow proceeds to the next data transfer process. On the other hand, when the received data and the stored data do not match and it is determined that the server 10 is not valid, access from the server 10 is denied and the authentication process is terminated.

이상과 같이, 이 제6의 실시의 형태에 의하면, 앞서 기술한 제4의 실시의 형태와 같은 작용·효과를 얻을 수 있을 뿐만 아니라, IDc, IDs 및 난수 Rsi를 공유키 Ki 로 암호화한 암호화 데이터 EKi(IDs, IDc, Rsi)를 통신 상대에게 송신하도록 한 것에 의해, 예를 들면, 공격자에 의해 암호화 데이터를 고쳐 쓸 수 있을 경우에도, 암호화 데이터에 포함되는 ID정보(IDs, IDc)가 올바르게 복호되지 않기 위해, 이 데이터를 받은 서버(10)또는 클라이언트(20)은, 보내져 온 암호화 데이터가 잘못된 것 인가를 용이하게 검출 할 수 있어, 난수를 받지 않고 폐기하는 것이 가능해진다. 또한, SIGNALc1의 값이 다른 복수의 클라이언트와 중복 될 경우에도, 암호화 데이터에 포함되는 ID정보(IDs, IDc)를 참조하는 것에 따라, 통신 상대를 용이하게 특정할 수가 있다.As described above, according to the sixth embodiment, not only the same action and effect as in the fourth embodiment described above can be obtained, but also IDc, IDs, and the random number R si are encrypted with the shared key K i . By sending the encrypted data E Ki (IDs, IDc, R si ) to the communication partner, even if the encrypted data can be rewritten by an attacker, for example, ID information (IDs, IDc) included in the encrypted data. ) Is not correctly decoded, the server 10 or the client 20, which has received this data, can easily detect whether the sent encrypted data is wrong, and can discard it without receiving random numbers. In addition, even when the value of SIGNAL c1 overlaps with a plurality of other clients, the communication partner can be easily identified by referring to ID information (IDs, IDc) included in the encrypted data.

게다가, 이 제6의 실시의 형태에 의하면, 통신 상대가 서버·클라이언트의 ID정보(IDs, IDc)를 올바르게 암호화 되어 있는지, 그렇지 않은 지를 확인하는 것에 따라, 통신 상대의 정당성을 판정하도록 했으므로, 앞서 기술한 제4의 실시의 형태에서는 3회 필요했던 통신 횟수를 2회로 절감 하는 것이 가능해져, 보다 효율적인 인증이 가능해진다.   In addition, according to the sixth embodiment, since the communication partner checks whether the server client's ID information (IDs, IDc) is correctly encrypted or not, the validity of the communication partner is determined. In the fourth embodiment described above, it is possible to reduce the number of times required for communication three times to two times, thereby enabling more efficient authentication.

(실시의 형태 7)  (Embodiment 7)

도 13은 본 발명과 관련되는 인증 방법의 제7의 실시의 형태를 설명하는 도면이다. 이 제7의 실시의 형태에서는, 먼저, 클라이언트(20)가, 난수 Rci(제1의 난수)를 생성함과 함께, 서버(10)과의 사이에 미리 공유화된 고정 공유키 K, 난수 Rci-1(제1의 기억 난수) 및 난수 Rsi-1(제2의 기억 난수)을 인수로 하는 유사 난수 함수 prf(K, Rci-1, Rsi-1)의 함수값을 SIGNALc1(제1의 원 타임 ID)로서 구하는 처리를 실행한다(스텝 S41).It is a figure explaining 7th Embodiment of the authentication method which concerns on this invention. In the seventh embodiment, first, the client 20 generates a random number R ci (the first random number), and the fixed shared key K and the random number R shared in advance with the server 10. The function value of the pseudorandom function prf (K, R ci-1 , R si-1 ), which takes ci-1 (first memory random number) and random number R si-1 (second memory random number) as arguments, is SIGNAL c1. The process calculated | required as (1st one time ID) is performed (step S41).

또한, Rci는 i번째의 세션으로 클라이언트(20)에 의해 생성된 난수, Rsi는 i번째의 세션으로 서버(10)에 의해 생성된 난수를 각각 나타내고 있다. 또한, 전회(i- 1번째 )의 세션으로 생성된 난수 Rci-1, Rsi-1은, 서버(10)과 클라이언트(20)의 각 기억장치(13), 23의 기억 영역에 격납되어 있다.R ci denotes a random number generated by the client 20 in the i-th session, and R si denotes a random number generated by the server 10 in the i-th session. The random numbers R ci-1 and R si-1 generated in the last (i-1st) session are stored in the storage areas 13 and 23 of the storage device 13 and 23 of the server 10 and the client 20, respectively. have.

그리고, 클라이언트(20)은, SIGNALc1를 생성한 후, IDc(클라이언트 ID), IDs(서버 ID) 및 난수 Rci를 공유키 K로 암호화한 암호화 데이터 EK (IDc, IDs, R ci)와 SIGNALc1를 서버(10)에 대해서 송신하는 처리를 실행한다(스텝 S42).After generating the SIGNAL c1 , the client 20 encrypts IDc (client ID), IDs (server ID) and random number R ci with the encrypted data E K (IDc, IDs, R ci ). A process of transmitting SIGNAL c1 to the server 10 is executed (step S42).

서버(10)는, 클라이언트(20)로부터 SIGNALc1를 수신하고, 공유키 K, 난수 Rci-1 및 난수 Rsi-1에 근거해 SIGNALc1를 연산에 의해 구해서, 이 연산 결과와, 클라이언트(20)로부터 수신한 SIGNALc1와의 비교에 의해, 클라이언트(20)를 식별해, 식별할 수 없는 경우에는, 통신을 거부한다. 식별할 수 있는 경우에는, 공유키 K를 이용해 암호화 데이터 EK (IDc, IDs, Rci)를 복호해, 이 복호한 데이터에 포함되는 IDc 및 IDs에 근거해, 클라이언트(20)의 정당성을 판정하는 처리를 실행한다.The server 10 receives SIGNAL c1 from the client 20, calculates SIGNAL c1 based on the shared key K, the random number R ci-1, and the random number R si-1 , and computes the result of the operation and the client ( The client 20 is identified by comparison with the SIGNAL c1 received from 20), and communication is rejected if it cannot be identified. If it can be identified, the encrypted data E K (IDc, IDs, R ci ) is decrypted using the shared key K, and the validity of the client 20 is determined based on the IDc and IDs included in the decoded data. To execute the processing.

상기 판정의 결과, 수신 데이터와 서버(10)로 미리 격납 된 기억 데이터가 일치해, 클라이언트(20)가 정당하다라고 판정한 경우에는, 난수 Rsi(제2의 난수)를 생성함과 함께, 난수 Rci, 난수 Rsi-1 및 공유키 K를 인수로 하는 유사 난수 함수 prf(K, Rci, Rsi-1)의 함수값을 SIGNALs1(제2의 원 타임 ID)로서 구한다. 그리고, 난수 Rci-1, Rsi-1을 격납하고 있던 기억 영역에, 난수 Rci, Rsi를 각각 격납하는 처리를 실행한다(스텝 S43).As a result of the determination, when the received data and the stored data previously stored in the server 10 coincide with each other and the client 20 determines that it is legitimate, it generates a random number R si (second random number), The function value of the pseudorandom number function prf (K, R ci , R si-1 ), which takes a random number R ci , a random number R si-1, and a shared key K as arguments, is obtained as SIGNAL s1 (second one-time ID). Then, a process of storing the random numbers R ci and R si in the storage area storing the random numbers R ci-1 and R si-1 is executed (step S43).

그 다음에, 서버(10)는, IDc, IDs 및 난수 Rsi를 공유키 K로 암호화한 암호화 데이터 EK (IDs, IDc, Rsi)와 SIGNALs1를 클라이언트(20)에 대해서 송신하는 처리를 실행한다(스텝 S44).Subsequently, the server 10 transmits the encrypted data E K (IDs, IDc, R si ) and SIGNAL s1 obtained by encrypting IDc, IDs, and the random number R si with the shared key K, to the client 20. It executes (step S44).

한편, 수신 데이터와 기억 데이터가 일치하지 않고, 클라이언트(20)가 정당하지 않다고 판정되는 경우에는, 클라이언트(20)로부터의 액세스를 거부해, 해당 인증 처리를 종료한다.   On the other hand, when the received data and the stored data do not coincide and the client 20 is determined to be unjust, the access from the client 20 is denied and the authentication process ends.

클라이언트(20)은, 서버(10)로부터 SIGNALs1를 수신하고, 공유키 K, 난수 Rci 및 난수 Rsi-1에 근거해 SIGNALs1를 연산에 의해 구해서, 이 연산 결과와 클라이언트(20)로부터 수신한 SIGNALs1와의 비교에 의해, 서버(10)를 식별해, 식별할 수 없는 경우에는, 통신을 거부한다. 한편, 식별할 수 있는 경우에는, 공유키 K를 이용해 암호화 데이터 EK (IDs, IDc, Rsi)를 복호해, 이 복호한 데이터에 포함되는 IDc 및 IDs에 근거해, 서버(10)의 정당성을 판정하는 처리를 실행한다. 서버(10)를 식별할 수 있는 경우, 통신 상대를 특정 가능할 뿐만 아니라, 서버(10)가 난수 Rci를 받은 것도 확인할 수가 있다.From the client 20, the server 10 is received, and a shared key K, the random number R ci and the random number R si-1, based on obtain by the SIGNAL s1 to the computation, computation results and the client 20, the SIGNAL s1 from The server 10 is identified by comparison with the received SIGNAL s1 , and communication is rejected if it cannot be identified. On the other hand, if it can be identified, the encrypted data E K (IDs, IDc, R si ) is decrypted using the shared key K, and the validity of the server 10 is based on the IDc and IDs included in the decoded data. The process of determining is performed. When the server 10 can be identified, not only can the communication partner be identified, but also the server 10 can confirm that the random number R ci has been received.

그리고, 상기 판정의 결과, 수신 데이터와 클라이언트(20)으로 미리 격납 된 기억 데이터가 일치해, 서버(10)가 정당하다라고 판정한 경우에는, 난수 Rci-1, Rsi-1을 격납하고 있던 기억 영역에, 난수 Rci, Rsi를 각각 격납 해, 이것들 난수 Rci, Rsi에 근거해 공유키 K를 생성·기억한 후(스텝 S45), 해당 인증 처리를 종료해, 다음의 데이터 전송 처리로 이행한다. 한편, 수신 데이터와 기억 데이터가 일치하지 않고, 서버(10)가 정당하지 않다고 판정되는 경우에는, 서버(10)로부터의 액세스를 거부해, 해당 인증 처리를 종료한다.As a result of the above determination, when the received data and the stored data previously stored in the client 20 coincide with each other and the server 10 determines that the server 10 is legitimate, random numbers R ci-1 and R si-1 are stored. The random number R ci and R si are stored in the stored memory area, and the shared key K is generated and stored based on these random numbers R ci and R si (step S45). Transfer to the transfer process. On the other hand, when the received data and the stored data do not match and it is determined that the server 10 is not valid, access from the server 10 is denied and the authentication process is terminated.

이상과 같이, 이 제7의 실시의 형태에 의하면, 앞서 기술한 제5의 실시의 형태와 같은 작용·효과를 얻을 수 있을 뿐만 아니라, 예를 들면, 공격자에 의해 암호화 데이터를 고쳐 쓸 수 있을 경우에 두어도, 데이터를 받은 서버(10)또는 클라이언트(20)은, 보내져 온 암호화 데이터가 잘못한 것인가를 용이하게 검출 할 수 있어 난수를 받지 않고 폐기하는 것이 가능해진다. 또, SIGNALc1의 값이 다른 복수의 클라이언트와 중복 할 경우에도, 암호화 데이터에 포함되는 ID정보(IDs, IDc)를 참조하는 것에 따라, 통신 상대를 용이하게 특정할 수가 있다. 게다가 이 제7의 실시의 형태에 의하면, 앞서 기술한 제4의 실시의 형태에서는 3회 필요했던 통신 횟수를 2회로 절감하는 것이 가능해져, 보다 효율적인 인증이 가능해진다.As described above, according to the seventh embodiment, not only can the same effects and effects be obtained as in the fifth embodiment described above, but also the encrypted data can be rewritten by an attacker, for example. In addition, the server 10 or the client 20 that has received the data can easily detect whether the encrypted data sent is wrong and can be discarded without receiving random numbers. In addition, even when the value of SIGNAL c1 overlaps with a plurality of other clients, the communication partner can be easily identified by referring to ID information (IDs, IDc) included in the encrypted data. In addition, according to the seventh embodiment, in the above-described fourth embodiment, it is possible to reduce the number of times required for communication three times to two times, thereby enabling more efficient authentication.

(실시의 형태 8)  (Embodiment 8)

이 제8의 실시의 형태에서는, 원 타임 ID를 이용한 리플레이 공격의 방지 방법에 대해서 설명한다. 리플레이 공격이라는 것은, 과거에 정식 통신자가 송신했을 때에 유효했던 통신 정보를 공격자(제3자)가 도청해, 재이용하는 공격이다.   In this eighth embodiment, a replay attack prevention method using a one-time ID will be described. A replay attack is an attack in which an attacker (third party) taps and reuses communication information that was valid when a formal communication was sent in the past.

먼저, OSPA(Optimal Strong Password Authentication)로 불리는 패스워드를 이용한 인증 방식(Chun-Li LIN, Hung-Min SUN, Tzonelih HWANG, Attacks and Solutions on Strong- Password Authentication, IEICE TRANS. COMMUN., VOL. E84-B, NO. 9, September 2001.)에 대해서, 도 14에 근거해 설명한다.   First, an authentication method using a password called OSPA (Optimal Strong Password Authentication) (Chun-Li LIN, Hung-Min SUN, Tzonelih HWANG, Attacks and Solutions on Strong- Password Authentication, IEICE TRANS.COMMUN., VOL.E84-B , NO. 9, September 2001.) will be described based on FIG. 14.

해당 인증에 앞서, 클라이언트(20)에는, 해쉬 함수 h 및 패스워드 P가 미리 기억 보관 유지되어 있어 서버(10)에는, 해쉬 함수 h, 세션횟수 n, IDc(클라이언트 ID) 및 검증용 정보 h2 (P@n)이 미리 기억 보관 유지되어 있다. 검증용 정보h2 (P@n)는, 클라이언트(20)의 정당성을 검증 하기 위한 정보에 있어서, 패스워드 P와 통신 횟수 n의 배타적 논리합을 이용해 해쉬 함수 h에 의해 생성된 정보이다. 덧붙여h2 (P@n)는, 해쉬 함수 h의 계산을 2회 하는 것, 즉 h(h(P@n))를 나타내고 있어 이 수식중의 @은 배타적 논리합을 나타내고 있다.Prior to the authentication, the client 20 stores the hash function h and the password P in advance, and the server 10 stores the hash function h, the session number n, the IDc (client ID), and the verification information h 2 ( P @ n) is stored and stored in advance. The verification information h 2 (P # n) is information generated by the hash function h using an exclusive logical sum of the password P and the communication number n in the information for validating the validity of the client 20. In addition, h 2 (P @ n) indicates that the hash function h is calculated twice, that is, h (h (P @ n)), and @ in this expression represents an exclusive OR.

이 인증 방식에서는, 먼저, 클라이언트(20)가 서버(10)에 대해서 IDc를 송신한다(스텝 S51).   In this authentication method, first, the client 20 transmits IDc to the server 10 (step S51).

서버(10)는, 클라이언트(20)로부터 IDc를 수신하고, 이 수신한 IDc와 미리 기억하고 있는 IDc와의 비교에 의해, 클라이언트(20)를 식별해서, 식별할 수 없는 경우에는, 통신을 거부한다. 식별할 수 있는 경우에는, 서버(10)에 대해서 세션 횟수 n를 송신한다(스텝 S52).   When the server 10 receives the IDc from the client 20 and compares the received IDc with the IDc stored in advance, the client 20 identifies the client 20 and rejects the communication if it cannot be identified. . If it can identify, the session number n is transmitted to the server 10 (step S52).

클라이언트(20)은, 서버(10)로부터 세션 횟수 n를 수신하면(자), 이 수신한 세션 횟수 n, 미리 기억하고 있는 해쉬 함수 h 및 패스워드 P를 이용해, 제1 ∼ 제3의 인증용 정보 C1, C2, C3를 생성해(스텝 S53), 이것들 C1, C2, C3를 서버(10)에 대해서 송신한다(스텝 S54). 여기서, C1=h(P@n)@h2(P@n), C2=h2(P@(n+1))@h(P@n), C3=h3 (P@(n+1))이다.When the client 20 receives the session number n from the server 10, the client 20 receives the first to third authentication information using the received session number n, the hash function h and the password P stored in advance. C1, C2, C3 are generated (step S53), and these C1, C2, C3 are transmitted to the server 10 (step S54). Where C1 = h (P @ n) @h 2 (P @ n), C2 = h 2 (P @ (n + 1)) @ h (P @ n), C3 = h 3 (P @ (n + 1)).

서버(10)는, 클라이언트(20)로부터 C1, C2, C3를 수신하고, 먼저, 수신한 C1≠C2인 것을 확인한다. 이것은, C1=h(P@n)@h2(P@n), C2=h(P@n)@h2 (P@n), C3=h3 (P@n)와 계산해 보낼 경우에도, 서버(10)가 클라이언트(20)를 인증해 버려, 다음의 검증용 정보로서 h2 (P@(n+1))는 아니고, h2 (P@n)를 기억해 버리는 불편이 발생할 가능성이 있으므로, 이러한 불편의 발생을 막기 위해서 행해지는 것이다.The server 10 receives C1, C2, and C3 from the client 20, and first confirms that the received C1 ≠ C2. This is calculated even when calculating with C1 = h (P @ n) @h 2 (P @ n), C2 = h (P @ n) @h 2 (P @ n), and C3 = h 3 (P @ n). There is a possibility that the server 10 authenticates the client 20 and stores h 2 (P @ n) instead of h 2 (P @ (n + 1)) as the following verification information. Therefore, this is done to prevent the occurrence of such inconvenience.

그 다음에, 서버(10)는, C1, C2로부터, h(P@n), h2 (P@(n+1))를 연산에 의해 구한다. 즉, 수신한 C1와 미리 기억하고 있는 검증용 정보 h2 (P@n)와의 배타적 논리합을 구하는 것으로 h(P@n)를 이끌어 내어, 이 h(P@n)와 수신한 C2와의 배타적 논리합을 구하는 것으로 h2 (P@(n+1))를 이끌어 낸다.Subsequently, the server 10 calculates h (P, n) and h 2 (P @ (n + 1)) from C1 and C2 by calculation. That is, h (P @ n) is derived by obtaining an exclusive OR between the received C1 and the verification information h 2 (P @ n) stored in advance, and the exclusive OR of this h (P @ n) with the received C2. to obtain the h 2 lead to (P @ (n + 1) ).

그 다음에, 미리 기억하고 있는 해쉬 함수 h를 이용해, 구한 h(P@n)로부터 h(h(P@n))를 계산해, 이 h(h(P@n))가, 미리 기억하고 있는 검증용 정보 h2 (P@n)와 일치하는 지, 그렇지 않은 지를 검증한다. 동시에, 구한 h2(P@(n+1))로부터 상기 해쉬 함수 h를 이용해 h(h2 (P@(n+1)))를 계산해, 이 h(h2 (P@(n+1)))가, 수신한 C3와 일치하는 지, 그렇지 않은 지를 검증한다(스텝 S55).Then, using the hash function h stored in advance, h (h (P @ n)) is calculated from the obtained h (P @ n), and this h (h (P @ n)) is stored in advance. how to match the verification information h 2 (P @ n) for, otherwise, to verify the image. At the same time, the obtained h 2 (P @ (n + 1)) by using the hash function h from h (h 2 (P @ ( n + 1))) calculate, is h (h 2 (P @ ( n + 1 It is verified whether))) matches with the received C3 or not (step S55).

이들 검증의 결과, 어느 쪽이라도 일치해, 클라이언트(20)가 정당하다라고 판정한 경우에는, 검증용 정보를 h2 (P@n)로부터 h2 (P@(n+1))에 갱신해, 세션 횟수를 n로부터 n+1으로 갱신한 후, 클라이언트(20)로부터의 액세스를 승낙해, 해당 인증 처리를 종료한다. 한편, 상기 검증의 결과, 적어도 어느 쪽의 한편과 일치하지 않고, 클라이언트(20)가 정당하지 않다고 판정되는 경우에는, 클라이언트(20)로부터의 액세스를 거부해, 해당 인증 처리를 종료한다.The results of these test, to match either, to update the client 20, if one party is determined to have, h 2 (P @ (n + 1)) from the information for verification h 2 (P @ n) After updating the number of sessions from n to n + 1, the access from the client 20 is accepted, and the authentication process ends. On the other hand, when it is determined that the client 20 is not justified as a result of the verification at least on either side, access from the client 20 is denied and the authentication process is terminated.

상기 인증 방식에 의하면, 도청자에 대해서 안전한 인증을 할 수 있는 것과 동시에, 세션마다 검증용 정보를 h2 (P@n)로부터 h2 (P@(n+1))로 갱신할 수가 있다고 하는 잇점이 있다.According to the authentication method described above, it is possible to securely authenticate the eavesdropper and to update the verification information for each session from h 2 (P 로부터 n) to h 2 (P @ (n + 1)). There is an advantage.

그렇지만, 상기 인증 방식 에 있어서는, 한 번 사용된 인증 정보 C1, C2, C3를 다시 한번 이용하는 리플레이 공격을 방지할 수가 없다고 하는 문제점이 있었다.   However, in the above authentication method, there was a problem in that a replay attack using the authentication information C1, C2, and C3 once used cannot be prevented once again.

여기서, 본 발명자등은, 이러한 문제점을 해결하는 인증 방식으로서 다음과 같은 인증 방식을 개발했다.   Here, the inventors have developed the following authentication method as an authentication method for solving such a problem.

도 15는, 본 발명과 관련되는 인증 방법의 제8의 실시의 형태를 설명하는 도면이다. 이 도 15에 나타낸 것 처럼, 클라이언트(20)에, 해쉬 함수 h 및 패스워드 P가 미리 기억 보관 유지되어, 서버(10)에, 해쉬 함수 h, 세션 횟수 n, IDc 및 검증용 정보 h2 (P@n)가 미리 기억 보관 유지되어 있는 경우에는, 먼저, 클라이언트(20)가 서버(10)에 대해서 IDc를 송신한다(스텝 S61).It is a figure explaining 8th embodiment of the authentication method which concerns on this invention. As shown in Fig. 15, the hash function h and the password P are stored in advance in the client 20, and the hash function h, the number of sessions n, IDc, and the verification information h 2 (P) are stored in the server 10. When n is stored in advance, the client 20 first transmits an IDc to the server 10 (step S61).

서버(10)는, 클라이언트(20)로부터 IDc를 수신하고, 이 수신한 IDc와 미리 기억하고 있는 IDc와의 비교에 의해, 클라이언트(20)를 식별해, 식별할 수 없는 경우에는, 통신을 거부한다. 식별할 수 있는 경우에는, 서버(10)에 대해서 세션 횟수 n를 송신한다(스텝 S62).   The server 10 receives the IDc from the client 20, and identifies the client 20 by comparing the received IDc with the IDc stored in advance, and rejects the communication if the client 20 cannot be identified. . If it can identify, the session number n is transmitted to the server 10 (step S62).

클라이언트(20)은, 서버(10)로부터 세션 횟수 n를 수신하고, 이 수신한 세션 횟수 n, 미리 기억하고 있는 해쉬 함수 h 및 패스워드 P를 이용해, 제1 ∼ 제3의 인증용 정보 C1, C2, C3, SIGNALn 를 생성해(스텝 S63), 이들 C1, C2, C3, SIGNALn 를 서버(10)에 대해서 송신한다(스텝 S64). 여기서, C1=h(P@n)@h2 (P@n), C2=h2 (P@(n+1))@h(P@n), C3=h3 (P@(n+1)), SIGNALn =h(h2 (P@n), n)이다. 즉, n번째의 세션으로 사용하는 원 타임 ID인 SIGNALn 이, 검증용 정보 h2 (P@n) 및 세션 횟수 n를 인수로 하는 해쉬 함수 h의 함수값이 되고 있다.The client 20 receives the number of sessions n from the server 10, and uses the received number of sessions n, the hash function h and the password P stored in advance, to form the first to third authentication information C1, C2. , C3, SIGNAL n are generated (step S63), and these C1, C2, C3, SIGNAL n are transmitted to the server 10 (step S64). Where C1 = h (P @ n) @h 2 (P @ n), C2 = h 2 (P @ (n + 1)) @ h (P @ n), C3 = h 3 (P @ (n + 1)), SIGNALn = h (h 2 (P @ n), n). That is, SIGNAL n, which is a one-time ID used in the nth session, is a function value of the hash function h that takes the verification information h 2 (P # n) and the number of sessions n as arguments.

서버(10)는, 클라이언트(20)로부터 C1, C2, C3, SIGNALn 를 수신하고, 먼저, 미리 기억하고 있는 검증용 정보 h2 (P@n)와 세션 횟수 n에 근거해 SIGNALn 를 연산에 의해 구해서, 이 연산 결과와 클라이언트(20)로부터 수신한 SIGNALn 와의 비교에 의해, 클라이언트(20)를 식별해, 식별할 수 없는 경우에는, 통신을 거부한다. 식별할 수 있는 경우에는, 수신한 C1≠C2인 것을 확인한 후, C1 및 C2로부터 h(P@n), h2 (P@(n+1))를 연산에 의해 구한다.The server 10 receives C1, C2, C3, and SIGNAL n from the client 20, and first calculates SIGNAL n based on the verification information h 2 (P # n) and the number of sessions n previously stored. The client 20 is identified by comparison between the result of this operation and the SIGNAL n received from the client 20, and communication is rejected when it cannot be identified. If you can identify is, after confirming that the received one C1 ≠ C2, h from the C1 and C2 (P @ n), h 2 (P @ (n + 1)) for a calculation.

그 다음에, 서버(10)는, 미리 기억하고 있는 해쉬 함수 h를 이용해, 구한 h(P@n)로부터 h(h(P@n))를 계산해, 이 h(h(P@n))가, 미리 기억하고 있는 검증용 정보 h2 (P@n)와 일치하는 지, 그렇지 않은 지를 검증한다. 동시에, 구한 h2 (P@(n+1))로부터 상기 해쉬 함수 h를 이용해 h(h2(P@(n+1)))를 계산해, 이 h(h2 (P@(n+1)))가, 수신한 C3와 일치하는 지, 그렇지 않은 지를 검증한다(스텝 S65).Next, the server 10 calculates h (h (Phn)) from the obtained h (P hn) using the hash function h stored in advance, and h (h (P @ n)). Verifies whether or not it matches with the verification information h 2 (P @ n) stored in advance. At the same time, the obtained h 2 (P @ (n + 1)) by using the hash function h from h (h 2 (P @ ( n + 1))) calculate, is h (h 2 (P @ ( n + 1 It is verified whether))) coincides with the received C3 or not (step S65).

이들 검증의 결과, 어느 쪽이라도 일치해, 클라이언트(20)가 정당하다라고 판정한 경우에는, 검증용 정보를 h2 (P@n)로부터 h2 (P@(n+1))에 갱신해, 세션 횟수를 n로부터 n+1으로 갱신한 후, 클라이언트(20)로부터의 액세스를 승낙해, 해당 인증 처리를 종료한다. 한편, 상기 검증의 결과, 적어도 어느 쪽의 한편과 일치하지 않고, 클라이언트(20)가 정당하지 않다고 판정되는 경우에는, 클라이언트(20)로부터의 액세스를 거부해, 해당 인증 처리를 종료한다.The results of these test, to match either, to update the client 20, if one party is determined to have, h 2 (P @ (n + 1)) from the information for verification h 2 (P @ n) After updating the number of sessions from n to n + 1, the access from the client 20 is accepted, and the authentication process ends. On the other hand, when it is determined that the client 20 is not justified as a result of the verification at least on either side, access from the client 20 is denied and the authentication process is terminated.

상기 인증 방식에 의하면, 검증용 정보인 h2(P@n)가 공격자에게 알려질 우려가 없기 때문에, 다음의 세션의 SIGNAL가 공격자에게 예측되는 것은 아니다. 게다가, SIGNAL는 다른 세션으로 사용할 수 없기 때문에, 공격자에 의한 리플레이 공격을 효과적으로 막을 수가 있다.According to the authentication method, since h 2 (P @ n), which is verification information, is not feared to be known to the attacker, the SIGNAL of the next session is not predicted to the attacker. In addition, SIGNAL cannot be used in other sessions, effectively preventing replay attacks by attackers.

덧붙여, 도 16에 나타낸 것 처럼, 해쉬 함수 h 및 패스워드 P에 추가해, 미리 세션 횟수 n도 클라이언트(20)으로 기억 보관 유지되어 있는 경우에는, 앞서 기술한 스텝 S61, S62의 처리를 생략하는 것이 가능하다. 따라서, 이 경우에는, ID정보(IDc)의 도청에 대한 보호를 가능하게 하면서도, 공격자에 의한 리플레이 공격을 효과적으로 막는 것이 가능하다.   In addition, as shown in FIG. 16, in addition to the hash function h and the password P, when the session number n is also stored and stored in the client 20 in advance, the above-described processes of steps S61 and S62 can be omitted. Do. In this case, therefore, it is possible to effectively prevent replay attack by an attacker while enabling protection against eavesdropping of the ID information IDc.

덧붙여, 이상의 각 실시의 형태에서, 복수의 장치간의 인증에 원 타임 ID를 이용하도록 했지만, 1 장치내의 복수의 어플리케이션간의 인증에 원 타임 ID를 이용하는 것도 가능하다. 또한, 이상의 각 실시의 형태에서, 본 발명과 관련되는 인증 방법을 클라이언트 서버 시스템에 적용할 경우에 대해서 예시했지만, 이것에 한정되는 것은 아니고, 예를 들면, P2P(Peer to Peer) 시스템에 본 발명과 관련되는 인증 방법을 적용 하는 것도 가능하다.   In addition, in each of the above embodiments, the one-time ID is used for authentication between a plurality of devices, but it is also possible to use the one-time ID for authentication between a plurality of applications in one device. In each of the above embodiments, the case where the authentication method according to the present invention is applied to the client server system is exemplified. However, the present invention is not limited thereto. For example, the present invention is applied to a peer-to-peer system. It is also possible to apply the authentication method associated with this.

또, 본 발명과 관련되는 인증 방법을 유저에 의한 액세스마다 이용하는 것도 가능하고, 그 경우에는, 유저에 의한 패스워드의 입력을 재촉해, 패스워드, 또는 패스워드로부터 생성한 값(원 타임 패스워드를 포함한)을 원 타임 ID와 함께 인증용의 데이터로서 이용하는 것이 가능하다. In addition, it is also possible to use the authentication method according to the present invention for each access by the user, in which case, the user is prompted to enter the password, and the value generated from the password or the password (including the one-time password) can be used. It can be used as data for authentication with a one-time ID.

이상 설명한 것처럼, 본 발명에 의하면, 도청이 곤란하고 안전성이 뛰어난 원 타임 ID를 생성하는 것이 가능해져, 원 타임 ID의 장래에 미치는 안전성(PFS)을 실현하는 것이 가능해진다. As described above, according to the present invention, it is possible to generate a one-time ID having difficulty in eavesdropping and having excellent safety, and to realize safety (PFS) affecting the future of the one-time ID.

또, 본 발명에 있어서의 원 타임 ID의 생성 방법에 의해 생성된 원 타임 ID를 이용해, 장치간(클라이언트·서버간)의 인증을 하도록 했으므로, 제3자가 송신자·수신자를 특정할 수 없게 되는 한편, 정당한 송신자·수신자이면 원 타임 ID를 식별 정보로서 파악 할 수 있도록 된다. In addition, since the one-time ID generated by the one-time ID generation method according to the present invention is used for authentication between devices (client and server), the third party cannot identify the sender and the receiver. For example, a valid sender / receiver can identify the one-time ID as identification information.

따라, DoS 공격이나 스푸핑(spoofing)등에 대한 내성을 강화할 수가 있어 개방적인 네트워크 환경하에 있어도, ID정보의 보호를 가능하게 하여, 통신의 안전성을 향상 시킬 수가 있다. 또, 원격 접근이 가능하게 되어, 편리성의 향상을 가능하게 할 수가 있다.   Therefore, resistance to DoS attacks, spoofing, etc. can be strengthened, and even in an open network environment, ID information can be protected and communication safety can be improved. In addition, it is possible to remotely access and to improve convenience.

또, 본 발명에 의하면, 종래의 키 교환·인증 방식에서는 3회 필요했던 통신 횟수를 2회로 절감 하는 것이 가능하게 되어, 신속하고 안전한 인증 및 키 교환을 실현하는 것이 가능하게 된다.   In addition, according to the present invention, it is possible to reduce the number of communication times required three times in the conventional key exchange / authentication method to two times, and to realize quick and secure authentication and key exchange.

본 발명은, 도면에 나타내는 바람직한 실시의 형태에 근거해 설명되어 왔지만, 해당업자이면, 본 발명의 사상을 일탈하는 일 없이 용이하게 각종의 변경, 개변 할 수 있는 것은 분명하다. 본 발명은 그러한 변경 예도 포함하는 것이다. Although this invention was demonstrated based on the preferable embodiment shown in drawing, it is clear that a person of the said company can change variously and modify easily, without deviating from the idea of this invention. The present invention also includes such modifications.

Claims (50)

통신회선을 개입시켜 접속된 제1 인증 장치와 제2 인증 장치의 상호 관계를 인증하는 상호 인증 방법에 있어서,A mutual authentication method for authenticating a mutual relationship between a first authentication device and a second authentication device connected through a communication line, 상기 제1 인증 장치를 특정하기 위한 기억 데이터와 제2 인증 장치를 특정하기 위한 기억 데이터를, 상기 제1 인증 장치 및 제2 인증 장치의 사이에 미리 서로 만들어진 인증에 의한 인증마다 전회의 인증에 의한 기억 데이터를 이용해 갱신한 갱신 결과를 이력 데이터로 해서 상기 제1 인증 장치 및 제2 인증 장치의 각각에 공통으로 기억하는 기억 공정과,The storage data for specifying the first authentication device and the storage data for specifying the second authentication device are stored by the previous authentication for each authentication by authentication previously made between the first authentication device and the second authentication device. A storage step of storing the update result updated using the storage data as history data in common in each of the first authentication device and the second authentication device; 상기 제1 인증 장치는, 기억되어 있는 이력 데이터를 이용해 기억 데이터를 신규로 생성하면서, 생성한 신규의 기억 데이터를 상기 이력 데이터를 이용해 암호화해 제2 인증 장치에 송신하는 제1 송신 공정과, 상기 제2 인증 장치로부터의 기억 데이터 및 상기 송신한 신규의 기억 데이터에 의해 상기 이력 데이터를 갱신하는 제1 갱신 공정을 포함하고, The first authentication device is a first transmission step of encrypting the generated new storage data using the history data and transmitting it to the second authentication device while newly generating the storage data using the stored history data. A first updating step of updating the history data by the stored data from the second authentication device and the transmitted new stored data; 상기 제2 인증 장치는, 상기 제1 인증 장치로부터의 기억 데이터 및 기억되어 있는 이력 데이터를 이용해 신규로 기억 데이터를 생성하면서, 생성한 신규의 기억 데이터를 상기 이력 데이터를 이용해 암호화해 제1 인증 장치에 송신하는 제2 송신 공정과, 상기 제1 인증 장치로부터의 기억 데이터 및 상기 송신한 신규의 기억 데이터에 의해 상기 이력 데이터를 갱신하는 제2 갱신 공정을 포함하고,The second authentication device encrypts the generated new storage data using the history data while newly generating the storage data using the storage data and the stored history data from the first authentication device. And a second updating step of updating the history data by the stored data from the first authentication device and the transmitted new stored data, 상기 제1 인증 장치 및 제2 인증 장치의 적어도 한편의 장치에 있어서, 이력 데이터에 근거해 기억 데이터의 정당성이 성립했을 때에, 제1 인증 장치와 제2 인증 장치의 상호 관계가 정당하다라고 검증하는 것을 특징으로 하는 상호 인증 방법. In at least one of the first authentication device and the second authentication device, when the validity of the stored data is established on the basis of the historical data, verifying that the mutual relationship between the first authentication device and the second authentication device is justified. Mutual authentication method, characterized in that. 제1항에 있어서, 상기 이력 데이터를 이력 데이터 K로 해서, 이 이력 데이터 K로서 기억하고, 상기 제1 인증 장치를 특정하기 위한 기억 데이터는, 암증 데이터 C 및 인증 데이터 R이고, 상기 제2 인증 장치를 특정하기 위한 기억 데이터는, 암증 데이터 S 및 인증 데이터 Q인 것을 특징으로 하는 상호 인증 방법. The storage data for storing the history data as the history data K and specifying the first authentication device and identifying the first authentication device are the encryption data C and the authentication data R. The stored data for specifying the device is the encryption data S and the authentication data Q. The mutual authentication method. 제2항에 있어서, 상기 제1 송신 공정은, 기억되어 있는 이력 데이터 K의 암증 데이터 S 및 인증 데이터 R를 이용해 암증 데이터 C를 신규로 생성하면서, 기억되어 있는 이력 데이터 K의 인증 데이터 R에 대해서 신규로 생성해, 생성한 신규의 인증 데이터 R를 상기 이력 데이터 K를 이용해 암호화해 인증 데이터 A를 구해서, 상기 인증 데이터 A 및 신규의 암증 데이터 C를 제2 인증 장치에 송신하고,The authentication data R of the stored history data K according to claim 2, wherein the first transmission step newly generates the encryption data C using the encryption data S and the authentication data R of the stored history data K. Newly generated and generated new authentication data R is encrypted using the history data K to obtain authentication data A, and the authentication data A and the new authentication data C are transmitted to the second authentication device. 상기 제1 갱신 공정은, 상기 제2 인증 장치로부터의 데이터를 수신해, 상기 송신한 신규의 암증 데이터 C, 수신한 신규로 생성된 암증 데이터 S, 수신한 신규로 생성된 인증 데이터 Q, 및 상기 송신한 신규의 인증 데이터 R에 의해, 상기 이력 데이터 K를 갱신하고,The first update step receives the data from the second authentication device, and transmits the new encryption data C transmitted, the newly generated encryption data S received, the newly generated authentication data Q received, and the By the new authentication data R which was transmitted, the said history data K is updated, 상기 제2 송신 공정은, 상기 제1 인증 장치로부터의 데이터를 수신해, 수신한 신규의 암증 데이터 C 및 기억되어 있는 이력 데이터 K의 인증 데이터 Q를 이용해 암증 데이터 S를 신규로 생성하면서, 기억되어 있는 이력 데이터 K의 인증 데이터 Q에 대해서 신규로 생성해, 생성한 신규의 인증 데이터 Q를 기억한 이력 데이터 K를 이용해 암호화해 인증 데이터 B를 구해서, 상기 인증 데이터 B 및 신규의 암증 데이터 S를 제1 인증 장치에 송신하고,  The second transmission step is stored while receiving the data from the first authentication device and newly generating the encryption data S using the received authentication data C and the authentication data Q of the stored history data K. The authentication data Q is newly generated for the authentication data Q of the existing history data K, encrypted using the history data K storing the generated new authentication data Q to obtain the authentication data B, and the authentication data B and the new encryption data S are removed. 1 send it to the authentication device, 상기 제2 갱신 공정은, 수신한 신규의 암증 데이터 C, 신규로 생성한 암증 데이터 S, 신규로 생성한 인증 데이터 Q, 및 수신한 신규의 인증 데이터 R에 의해, 상기 이력 데이터 K를 갱신하고,In the second updating step, the history data K is updated by the received new cancer data C, newly generated cancer data S, newly generated authentication data Q, and received new authentication data R. 상기 제1 인증 장치 및 제2 인증 장치의 적어도 한편의 장치에서, 이력 데이터 K에 근거해 암증 데이터의 정당성이 성립했을 때에, 제1 인증 장치와 제2 인증 장치의 상호 관계가 정당하다라고 검증하는 것을 특징으로 하는 상호 인증 방법. At least one device of the first authentication device and the second authentication device verifies that the mutual relationship between the first authentication device and the second authentication device is justified when the validity data of the authentication data is established based on the history data K. Mutual authentication method, characterized in that. 제1항에 있어서, 상기 기억 공정은, 상기 제1 송신 공정, 제1 갱신 공정, 제2 송신 공정, 및 제2 갱신 공정에 있어서의 인증에 의한 갱신 결과를 이력 데이터로서 기억하는 것을 특징으로 하는 상호 인증 방법. The said storage process stores the update result by authentication in the said 1st transmission process, a 1st update process, a 2nd transmission process, and a 2nd update process as history data, It is characterized by the above-mentioned. Mutual authentication method. 제2항에 있어서, 상기 인증 데이터 R 및 인증 데이터 Q의 적어도 한편은, 난수 발생 수단에 의해 발생된 난수, 데이터 용량, 시간 데이터의 적어도 하나인 것을 특징으로 하는 상호 인증 방법. The mutual authentication method according to claim 2, wherein at least one of the authentication data R and the authentication data Q is at least one of a random number, a data capacity, and time data generated by a random number generating means. 제2항에 있어서, 상기 제1 인증 장치의 제1 송신 공정에서는, 상기 암증 데이터 S 및 인증 데이터 R에 의한 미리 정한 함수의 연산 결과의 값을 암증 데이터 C로서 생성해, 상기 제2 인증 장치의 제2 송신 공정에서는, 상기 암증 데이터 C 및 상기 인증 데이터 Q에 의한 미리 정한 함수의 연산 결과의 값을 암증 데이터 S로서 생성하는 것을 특징으로 하는 상호 인증 방법. The method according to claim 2, wherein, in the first transmission step of the first authentication device, a value of a calculation result of a predetermined function by the encryption data S and the authentication data R is generated as the encryption data C, and the In the second transmission step, the authentication data C and the authentication data Q generate the value of the calculation result of the predetermined function as the encryption data S. The mutual authentication method characterized by the above-mentioned. 제2항에 있어서, 상기 제1 인증 장치의 제1 송신 공정에서는, 상기 생성한 신규의 인증 데이터 R 및 상기 이력 데이터 K에 의한 미리 정한 함수의 연산 결과의 값을 인증 데이터 A로 구해서, 상기 제2 인증 장치의 제2 송신 공정에서는, 상기 생성한 신규의 인증 데이터 Q 및 상기 이력 데이터 K에 의한 미리 정한 함수의 연산 결과의 값을 인증 데이터 B로서 구하는 것을 특징으로 하는 상호 인증 방법. The method according to claim 2, wherein in the first transmission step of the first authentication device, the authentication data A is obtained by calculating the value of the calculation result of a predetermined function based on the generated new authentication data R and the history data K, 2. The mutual authentication method of claim 2, wherein the second transmission step of the authentication device obtains the value of the calculation result of the predetermined function based on the generated new authentication data Q and the history data K as the authentication data B. 제2항에 있어서, 상기 제1 인증 장치의 검증 공정은, 상기 이력 데이터 K 중 기억되어 있는 인증 데이터 Q 및 전회 송신하기 전에 생성한 암증 데이터 C에 의해 미리 정한 함수의 연산 결과의 값이 수신한 암증 데이터 S와 일치 할 경우에 상기 상호 관계가 정당하다라고 검증하는 것을 특징으로 하는 상호 인증 방법. The verification step of the first authentication device according to claim 2, wherein in the verification step of the first authentication device, the value of the calculation result of the function determined in advance by the authentication data Q stored in the history data K and the encryption data C generated before the previous transmission is received. And verifying that the mutual relationship is legitimate when it matches the cancer data S. 제2항에 있어서, 상기 제2 인증 장치의 검증 공정은, 상기 이력 데이터 K 중 기억되어 있는 암증 데이터 S 및 인증 데이터 R에 의한 미리 정한 함수의 연산 결과의 값이 수신한 암증 데이터 C와 일치 할 경우에 상기 상호 관계가 정당하다라고 검증하는 것을 특징으로 하는 상호 인증 방법. The verification process of the said 2nd authentication apparatus is a value of the operation result of the predetermined function by the encryption data S memorize | stored in the said history data K, and the authentication data R should match the received encryption data C. And verifying that said mutual relationship is legitimate. 제2항에 있어서, 상기 기억 공정은, 상기 제1 송신 공정, 제2 송신 공정, 제1 갱신 공정 및 제2 갱신 공정을 복수 실시한 결과, 얻을 수 있는 데이터를 이력 데이터 K로서 기억하는 것을 특징으로 하는 상호 인증 방법. The data storage method according to claim 2, wherein the storage step stores, as history data K, data obtained as a result of performing a plurality of the first transmission step, the second transmission step, the first update step, and the second update step. Mutual authentication method. 통신회선을 개입시켜 접속된 제1 인증 장치와 제2 인증 장치로 부터 완성되어, 상기 제1 인증 장치와 제2 인증 장치와의 사이의 상호 관계를 인증하는 상호 인증 장치에 있어서,A mutual authentication device, which is completed from a first authentication device and a second authentication device connected through a communication line, and authenticates a mutual relationship between the first authentication device and the second authentication device, 상기 제1 인증 장치에 설치되고 해당 제1 인증 장치를 특정하기 위한 기억 데이터를 격납하는 제1의 메모리와,A first memory installed in the first authentication device and storing memory data for specifying the first authentication device; 상기 제2 인증 장치에 설치되고 해당 제2 인증 장치를 특정하기 위한 기억 데이터를 격납하는 제2의 메모리와,A second memory installed in the second authentication device and storing memory data for specifying the second authentication device; 상기 제1 인증 장치 및 제2 인증 장치의 사이에 미리 서로 된 인증에 의한 인증마다 전회의 인증에 의한 기억 데이터를 격납하는 인증 데이터 기억 수단과Authentication data storage means for storing the storage data by the previous authentication for each authentication by the mutual authentication between the first authentication device and the second authentication device in advance; 상기 인증 데이터를 이용해 갱신한 갱신 결과를 이력 데이터로서 상기 제1 인증 장치 및 제2 인증 장치의 각각에 공통으로 기억하는 이력 데이터 기억 수단과History data storage means for storing the update result updated using the authentication data as history data in common in each of the first authentication device and the second authentication device; 상기 제1 인증 장치 또는 제2 인증 장치 중, 인증용 데이터 송신측의 인증 장치에 설치되어 상기 이력 데이터를 이용해 기억 데이터를 신규로 생성하는 기억 데이터 생성 수단과,Storage data generation means, provided in the authentication apparatus on the side of authentication data transmission, of the first authentication apparatus or the second authentication apparatus, and newly generating stored data using the history data; 생성한 신규의 기억 데이터를 상기 이력 데이터를 이용해 암호화해 인증용 데이터 수신측의 인증 장치에 송신하는 제1의 송신 수단과,First transmitting means for encrypting the generated new stored data using the history data and transmitting the encrypted new stored data to the authentication apparatus on the authentication data receiving side; 인증용 데이터 수신측의 인증 장치에 설치되어, 상기 인증용 데이터 송신측의 인증 장치로부터의 기억 데이터 및 기억되어 있는 이력 데이터를 이용해 신규로 기억 데이터를 생성하는 기억 데이터 생성 수단과,Storage data generation means which is provided in the authentication device on the authentication data receiving side and newly generates the storage data using the stored data from the authentication device on the authentication data transmission side and the stored history data; 생성한 신규의 기억 데이터를 상기 이력 데이터를 이용하여 암호화해 상기 인증용 데이터 송신측의 인증 장치에 답신하는 제2의 송신 수단과,Second transmission means for encrypting the generated new stored data using the history data and replying to the authentication apparatus on the authentication data transmission side; 인증용 데이터 송신측의 인증 장치에 설치되어 상기 인증용 데이터 수신측의 인증 장치로부터 답신된 기억 데이터 및 상기 송신한 신규의 기억 데이터에 의해 상기 이력 데이터를 갱신하는 제1의 갱신 수단과,First updating means provided in the authentication apparatus on the authentication data transmission side and updating the history data by the stored data returned from the authentication apparatus on the authentication data reception side and the transmitted new storage data; 인증용 데이터 수신측의 인증 장치에 설치되어 상기 인증용 데이터 송신측의 인증 장치로부터의 기억 데이터 및 상기 답신한 신규의 기억 데이터에 의해 상기 이력 데이터를 갱신하는 제2의 갱신 수단을 포함하고,Second updating means which is installed in the authentication device on the authentication data receiving side and updates the history data by the stored data from the authentication device on the authentication data transmission side and the newly stored new data; 상기 제1 인증 장치 및 제2 인증 장치의 적어도 한편의 장치에서, 상기 이력 데이터에 근거해 기억 데이터의 정당성이 성립했을 때에, 제1 인증 장치와 제2 인증 장치의 상호 관계가 정당하다라고 검증하는 검증 수단을 갖춘 것을 특징으로 하는 상호 인증 장치. In at least one of the first authentication device and the second authentication device, when the validity of the stored data is established based on the history data, it is verified that the mutual relationship between the first authentication device and the second authentication device is justified. A mutual authentication device comprising a verification means. 제11항에 있어서, 생성한 신규의 기억 데이터를 상기 이력 데이터를 이용해 암호화 하기 위한 인증용 데이터를 연산하는 연산 수단을 가지는 것을 특징으로 하는 상호 인증 장치. 12. The mutual authentication device according to claim 11, further comprising computing means for calculating authentication data for encrypting the generated new stored data using the history data. 제12항에 있어서, 상기 연산 수단에 의해 인증용 데이터를 생성할 즈음에, 암호화용의 데이터를 생성하는 난수 발생 수단을 가지는 것을 특징으로 하는 상호 인증 장치. 13. The mutual authentication device according to claim 12, further comprising random number generating means for generating data for encryption at the time of generating the data for authentication by said calculating means. 복수의 상호 인증을 하는 장치간 또는 어플리케이션간에 있어서의 인증에서, 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 해당 원 타임 ID를 생성하는 방법에 있어서,In the authentication between a plurality of mutually authenticated devices or applications, a method for generating the one-time ID using identification information that can be used only once as the one-time ID, 상기 인증을 하는 장치 또는 어플리케이션의 각각에서, 상기 인증이 필요한 소정의 통신 단위마다 변화하는 가변 공유키를 생성함과 함께, 이 가변 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성하도록 한 것을 특징으로 하는 원 타임 ID의 생성 방법. In each device or application for authentication, a variable shared key is generated for each predetermined communication unit requiring authentication, and a function value of a one-way function that takes this variable shared key as an argument is obtained. And generating the one-time ID from the one-time ID. 복수의 장치간 또는 어플리케이션간에 있어서의 인증에서 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 해당 원 타임 ID를 생성하는 방법에 있어서,In the method for generating the one-time ID by using the identification information that can be used only once in authentication between a plurality of devices or between applications as the one-time ID, 상기 인증을 하는 장치 또는 어플리케이션의 각각에서, 상기 인증이 필요한 소정의 통신 단위마다 변화하는 가변 공유키를 생성함과 함께, 이 가변 공유키와 통신 순서 또는 횟수에 관한 정보를 인수로 하는 일방향 함수의 함수값을 구하고, 이 함수값으로부터 상기 원 타임 ID를 생성하도록 한 것을 특징으로 하는 원 타임 ID의 생성 방법. In each apparatus or application for authentication, a one-way function that generates a variable shared key that changes for each predetermined communication unit that requires authentication, and takes information about the variable shared key and the order or number of times of communication. A method for generating a one time ID, wherein a function value is obtained and the one time ID is generated from the function value. 복수의 장치간 또는 어플리케이션간에 있어서의 인증에서 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 해당 원 타임 ID를 생성하는 방법에 있어서,In the method for generating the one-time ID by using the identification information that can be used only once in authentication between a plurality of devices or between applications as the one-time ID, 상기 인증을 하는 장치 또는 어플리케이션의 각각에서, 상기 인증이 필요한 소정의 통신 단위내에서 난수를 생성함과 함께, 이 난수와 소정의 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성하도록 한 것을 특징으로 하는 원 타임 ID의 생성 방법. In each device or application for authentication, a random number is generated in a predetermined communication unit requiring the authentication, and a function value of a one-way function that takes this random number and a predetermined shared key as an argument is obtained. And generating the one-time ID from the one-time ID. 한편의 장치와 다른 한편의 장치간에 있어서의 인증에서 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 해당 원 타임 ID를 쌍방의 장치로 생성함과 함께, 한편의 장치가 다른 한편의 장치에 원 타임 ID를 송신해, 다른 한편의 장치가, 한편의 장치로부터 수신한 원 타임 ID와 스스로가 생성한 원 타임 ID와의 비교·조합에 의해, 다른 한편의 장치를 식별 혹은 인증하는 경우에 있어서, 한편의 장치 및 다른 한편의 장치가 원 타임 ID를 생성하는 방법에 있어서,While the one-time ID is generated by the two devices by using the identification information that can be used only once in authentication between one device and the other device as the one-time ID, the one device is one-time to the other device. In the case where the ID is transmitted and the other device identifies or authenticates the other device by comparing and combining the one-time ID received from the other device with the one-time ID generated by itself, A method in which a device and the other device generate a one-time ID, 한편의 장치 및 다른 한편의 장치는, 상기 인증이 필요한 소정의 통신 단위마다 변화하는 가변 공유키를 생성함과 함께, 이 가변 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성하도록 한 것을 특징으로 하는 원 타임 ID의 생성 방법. The device on the one hand and the device on the other hand generate a variable shared key that changes for each predetermined communication unit requiring the authentication, obtain a function value of a one-way function that takes the variable shared key as an argument, and And generating the one time ID. 한편의 장치와 다른 한편의 장치간에 있어서의 인증에서 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 해당 원 타임 ID를 쌍방의 장치로 생성함과 함께, 한편의 장치가 다른 한편의 장치에 원 타임 ID를 송신해, 다른 한편의 장치가, 한편의 장치로부터 수신한 원 타임 ID와 스스로가 생성한 원 타임 ID와의 비교·조합에 의해, 다른 한편의 장치를 식별 혹은 인증하는 경우에 있어서, 한편의 장치 및 다른 한편의 장치가 원 타임 ID를 생성하는 방법에 있어서,While the one-time ID is generated by the two devices by using the identification information that can be used only once in authentication between one device and the other device as the one-time ID, the one device is one-time to the other device. In the case where the ID is transmitted and the other device identifies or authenticates the other device by comparing and combining the one-time ID received from the other device with the one-time ID generated by itself, A method in which a device and the other device generate a one-time ID, 한편의 장치 및 다른 한편의 장치는, 상기 인증이 필요한 소정의 통신 단위마다 변화하는 가변 공유키를 생성함과 함께, 이 가변 공유키와 통신 순서 또는 횟수에 관한 정보를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성하도록 한 것을 특징으로 하는 원 타임 ID의 생성 방법. The apparatus on the one hand and the apparatus on the other hand generate a variable shared key that changes for each predetermined communication unit requiring the authentication, and function as a factor taking the variable shared key and information on the communication order or number of times as an argument. And generating a value to generate the one-time ID from the function value. 한편의 장치와 다른 한편의 장치간에 있어서의 인증에서 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서, 해당 원 타임 ID를 쌍방의 장치로 생성함과 함께, 한편의 장치가 다른 한편의 장치에 원 타임 ID를 송신해, 다른 한편의 장치가, 한편의 장치로부터 수신한 원 타임 ID와 스스로가 생성한 원 타임 ID와의 비교·조합에 의해, 다른 한편의 장치를 식별 혹은 인증하는 경우에 있어서, 한편의 장치 및 한편의 장치가 원 타임 ID를 생성하는 방법에 있어서,With the identification information that can be used only once in authentication between one device and the other device as the one time ID, the one time ID is generated by both devices, and the other device is connected to the other device. In the case where a time ID is transmitted and the other device identifies or authenticates the other device by comparing and combining the one time ID received from the other device with the one time ID generated by itself, A device of and a method of generating a one-time ID by one device, 한편의 장치 및 다른 한편의 장치는, 상기 인증이 필요한 소정의 통신 단위내에서 난수를 생성함과 함께, 이 난수와 소정의 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성하도록 한 것을 특징으로 하는 원 타임 ID의 생성 방법. The other device and the other device generate a random number in a predetermined communication unit requiring the authentication, obtain a function value of a one-way function that takes the random number and the predetermined shared key as arguments, and And generating the one time ID. 장치간 또는 어플리케이션간에 있어서의 인증에서, 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 상기 인증을 하는 장치 또는 어플리케이션의 각각에서, 상기 인증이 필요한 소정의 통신 단위마다 변화하는 가변 공유키를 생성함과 함께, 이 가변 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성해, 이 생성된 원 타임ID를 이용해, 제1 장치와 제2 장치간에 있어서의 인증을 하는 인증 방법에 있어서,In authentication between devices or applications, a variable shared key that is changed for each predetermined communication unit requiring the authentication is generated in each device or application that performs the authentication using one-time identification information as one-time ID. In addition, a function value of a one-way function that takes this variable shared key as an argument is obtained, the one-time ID is generated from this function value, and the generated one-time ID is used to generate the function value between the first device and the second device. In the authentication method for authentication, 상기 제1 장치가, 상기 제2 장치와의 사이에 미리 공유화된 가변 공유키를 이용해 상기 원 타임 ID를 생성함과 함께, 이 생성한 원 타임 ID와 해당 제1 장치에 미리 설정된 ID를 적어도 인수로 하는 일방향 함수 Fc의 함수값과 해당 제1 장치에 미리 기억된 Diffie-Hellman 공개값의 한편을 상기 제2 장치에 대해서 송신하는 스텝과,The first device generates the one-time ID using a variable shared key shared in advance with the second device, and at least acquires the generated one-time ID and the ID preset in the first device. Transmitting, to the second device, one of a function value of the one-way function Fc, and a Diffie-Hellman public value previously stored in the first device, 상기 제2 장치가 상기 원 타임 ID 및 상기 일방향 함수 Fc의 함수값을 연산에 의해 구해서, 이 연산 결과와, 상기 제1 장치로부터 수신한 원 타임 ID 및 일방향 함수 Fc의 함수값과의 조합에 의해, 상기 제1 장치의 정당성을 판정하는 스텝과,The second device obtains the function value of the one-time ID and the one-way function Fc by calculation, and combines the result of this operation with the function value of the one-time ID and the one-way function Fc received from the first device. Determining the validity of the first device; 상기 제2 장치가, 상기 제1 장치를 정당하다라고 판정된 경우에, 해당 제2 장치에 미리 설정된 ID를 적어도 인수로 하는 일방향 함수 Fs의 함수값과 해당 제2 장치에 미리 기억된 Diffie-Hellman 공개값의 다른 한편을 상기 제1 장치에 대해서 송신하는 스텝과,If it is determined that the second device is justified, the function value of the one-way function Fs which takes as an argument at least the ID preset in the second device and the Diffie-Hellman stored in advance in the second device. Sending the other of the published values to the first device, 상기 제1 장치가, 상기 일방향 함수 Fs의 함수값을 연산에 의해 구해서, 이 연산 결과와, 상기 제2 장치로부터 수신한 일방향 함수 Fs의 함수값과의 조합에 의해, 상기 제2 장치의 정당성을 판정하는 스텝을 가지는 것을 특징으로 하는 인증 방법. The first device obtains the function value of the one-way function Fs by calculation, and combines the result of this operation with the function value of the one-way function Fs received from the second device, thereby validating the second device. An authentication method comprising the step of determining. 제20항에 있어서, 상기 일방향 함수 Fc로서 소정의 공유키, 상기 Diffie-Hellman 공개값의 한편, 상기 제1 장치에 미리 설정된 ID, 상기 원 타임 ID를 인수로 하는 유사 난수 함수를 이용하는 것과 동시에,The method according to claim 20, wherein at the same time using a pseudo-random function having a predetermined shared key, the Diffie-Hellman public value as the one-way function Fc, an ID preset in the first device, and the one-time ID as arguments, 상기 일방향 함수 Fs로서 상기 소정의 공유키, 상기 Diffie-Hellman 공개값의 한편, 상기 Diffie-Hellman 공개값의 다른 한편, 상기 제2 장치에 미리 설정된 ID, 상기 원 타임 ID를 인수로 하는 유사 난수 함수를 이용하도록 한 것을 특징으로 하는 인증 방법. A pseudo-random function that takes as its argument the predetermined shared key, the Diffie-Hellman public value, the other of the Diffie-Hellman public value, the ID preset in the second device, and the one time ID as the one-way function Fs. Authentication method characterized in that to use. 복수의 장치간 또는 어플리케이션간에 있어서의 인증에서 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 상기 인증을 하는 장치 또는 어플리케이션의 각각에서, 상기 인증이 필요한 소정의 통신 단위마다 변화하는 가변 공유키를 생성함과 함께, 이 가변 공유키와 통신 순서 또는 횟수에 관한 정보를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성해, 이 생성된 원 타임 ID를 이용해, 제1 장치와 제2 장치간에 있어서의 인증을 하는 인증 방법에 있어서,A variable shared key that is changed for each predetermined communication unit that requires the authentication is generated in each device or application that performs the authentication by using the identification information that can be used only once in authentication between a plurality of devices or between applications as the one-time ID. In addition, a function value of a one-way function having the variable shared key and information on the communication order or number of times as an argument is obtained, the one-time ID is generated from the function value, and the generated one-time ID is used to generate the function value. In an authentication method for authenticating between one device and a second device, 상기 제1 장치가, 상기 제2 장치와의 사이에 미리 공유화된 제1의 가변 공유키와 해당 제1 장치의 통신 순서에 관한 정보를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID로서 생성함과 함께, 상기 제1의 가변 공유키를 이용해, 해당 제1 장치에 미리 설정된 ID, 상기 제2 장치에 미리 설정된 ID, 해당 제1 장치에 미리 기억된 Diffie-Hellman 공개값의 한편 및 상기 제1의 원 타임 ID를 암호화해, 이 암호화 데이터와 상기 제1의 원 타임 ID를 상기 제2 장치에 대해서 송신하는 스텝과,The first one-time ID is a first one-time ID of which the first device uses a function value of a one-way function whose first variable variable key is previously shared between the second device and information on the communication order of the first device. And an ID set in advance in the first device, an ID preset in the second device, a Diffie-Hellman public value pre-stored in the first device, using the first variable shared key, and Encrypting the first one time ID and transmitting the encrypted data and the first one time ID to the second device; 상기 제2 장치가, 상기 제1의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와, 상기 제1 장치로부터 수신한 상기 제1의 원 타임 ID와의 조합에 의해, 상기 제1 장치를 식별하는 스텝과,The second device obtains the first one time ID by a calculation, and identifies the first device by a combination of the calculation result and the first one time ID received from the first device. Steps, 상기 제2 장치가, 상기 제1 장치를 식별할 수 있을 경우에, 상기 제1의 가변 공유키를 이용해 상기 암호화 데이터를 복호해, 이 복호한 데이터에 포함된 상기 제1 장치에 미리 설정된 ID, 해당 제2 장치에 미리 설정된 ID 및 상기 제1의 원 타임 ID에 근거해, 상기 제1 장치의 정당성을 판정하는 스텝과,When the second device is able to identify the first device, the encrypted data is decrypted using the first variable shared key, and an ID preset in the first device included in the decoded data, Determining the validity of the first device based on the ID preset in the second device and the first one-time ID; 상기 제2 장치가, 상기 제1 장치를 정당하다라고 판정된 경우에, 상기 제1의 가변 공유키와 해당 제2 장치의 통신 순서에 관한 정보를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID로서 생성함과 함께, 상기 제1 장치로부터 수신한Diffie-Hellman 공개값의 한편과 해당 제2 장치에 미리 기억된 Diffie-Hellman 공개값의 다른 한편으로부터 Diffie-Hellman 공통키를 제2의 가변 공유키로서 생성해, 이 제2의 가변 공유키, 상기 제1 장치에 미리 설정된 ID, 해당 제2 장치에 미리 설정된 ID 및 상기 제2의 원 타임 ID를 인수로 하는 일방향 함수 h의 함수값과, 상기 Diffie-Hellman 공개값의 다른 한편과 상기 제2의 원 타임 ID를 상기 제1 장치에 대해서 송신하는 스텝과,When the second device determines that the first device is valid, the second device uses a function value of a one-way function whose information is about the communication order between the first variable shared key and the second device. A second Diffie-Hellman common key is generated from one of the Diffie-Hellman published values received from the first device and the other of the Diffie-Hellman published values previously stored in the second device. A function value of a one-way function h that is generated as a variable shared key and takes as arguments the second variable shared key, an ID preset in the first device, an ID preset in the second device, and the second one-time ID. Sending the other of the Diffie-Hellman published value and the second one-time ID to the first device, 상기 제1 장치가, 상기 제2의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와, 상기 제2 장치로부터 수신한 상기 제2의 원 타임 ID와의 조합에 의해, 상기 제2 장치를 식별하는 스텝과,The first device obtains the second one-time ID by calculation, and identifies the second device by a combination of the calculation result and the second one-time ID received from the second device. Steps, 상기 제1 장치가, 상기 제2 장치를 식별할 수 있을 경우에, 상기 제2 장치로부터 수신한 상기 Diffie-Hellman 공개값의 다른 한편과 해당 제1 장치에 미리 기억된 상기 Diffie-Hellman 공개값의 한편으로부터 Diffie-Hellman 공통키를 상기 제2의 가변 공유키로서 생성함과 함께, 이 제2의 가변 공유키를 이용해 상기 일방향 함수 h의 함수값을 연산에 의해 구해서, 이 연산 결과와, 상기 제2 장치로부터 수신한 일방향 함수 h의 함수값과의 조합에 의해, 상기 제2 장치의 정당성을 판정하는 스텝을 가지는 것을 특징으로 하는 인증 방법. If the first device is able to identify the second device, the other of the Diffie-Hellman published values received from the second device and the Diffie-Hellman published values previously stored in the first device. On the other hand, a Diffie-Hellman common key is generated as the second variable shared key, and the function value of the one-way function h is calculated by operation using the second variable shared key, and the operation result and the first value are calculated. And a step of judging the validity of the second device by the combination with the function value of the one-way function h received from the two devices. 제22항에 있어서, 상기 제2의 원 타임 ID를 생성하는 일방향 함수로서 상기 제1의 원 타임 ID를 생성하는 일방향 함수와는 다른 일방향 함수를 이용하도록 한 것을 특징으로 하는 인증 방법. The authentication method according to claim 22, wherein a one-way function different from the one-way function for generating the first one time ID is used as the one-way function for generating the second one time ID. 복수의 장치간 또는 어플리케이션간에 있어서의 인증에서 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 상기 인증을 하는 장치 또는 어플리케이션의 각각에서, 상기 인증이 필요한 소정의 통신 단위내에서 난수를 생성함과 함께, 이 난수와 소정의 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성해, 이 생성된 원 타임 ID를 이용해, 제1 장치와 제2 장치간에 있어서의 인증을 하는 인증 방법에 있어서,A random number is generated within a predetermined communication unit requiring the authentication in each device or application that performs the authentication using identification information that can be used only once in authentication between a plurality of devices or between applications as the one-time ID. Obtains a function value of a one-way function that takes this random number and a predetermined shared key, generates the one-time ID from the function value, and uses the generated one-time ID to generate a function value between the first device and the second device. In the authentication method for authentication of, 상기 제1 장치가, 제1의 난수를 생성함과 함께, 상기 제2 장치와의 사이에 미리 공유화된 제1의 공유키를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID로서 구해서, 이 제1의 원 타임 ID와 상기 제1의 난수를 상기 제2 장치에 대해서 송신하는 스텝과,The first device generates a first random number and obtains, as a first one-time ID, a function value of a one-way function that takes as an argument a first shared key previously shared with the second device. Sending the first one-time ID and the first random number to the second device; 상기 제2 장치가, 제2의 난수를 생성함과 함께, 상기 제1의 난수와 상기 제1의 공유키를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID로서 구해서, 이 제2의 원 타임 ID와 상기 제2의 난수를 상기 제1 장치에 대해서 송신하는 스텝과,The second apparatus generates a second random number, obtains a function value of a one-way function that takes the first random number and the first shared key as a second one-time ID, and obtains the second random number. Sending the one-time ID of the and the second random number to the first device, 상기 제1 장치가, 상기 제1의 난수 및 상기 제1의 공유키에 근거해 상기 제2의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와 상기 제2 장치로부터 수신한 상기 제2의 원 타임 ID와의 비교에 의해, 상기 제2 장치의 정당성을 판정하는 스텝과The first device obtains the second one-time ID based on the first random number and the first shared key by arithmetic operation, and obtains the result of the operation and the second circle received from the second device. Comparing the time ID with the step of determining the validity of the second device; 상기 제1 장치가, 상기 제1의 난수 및 상기 제2의 난수에 근거해 제2의 공유키를 생성함과 함께, 이 제2의 공유키, 상기 제1의 난수 및 상기 제2의 난수를 인수로 하는 일방향 함수의 함수값을 제3 원 타임 ID로서 구해서, 이 제3 원 타임 ID를 상기 제2 장치에 대해서 송신하는 스텝과,The first device generates a second shared key based on the first random number and the second random number, and generates the second shared key, the first random number, and the second random number. Obtaining a function value of a one-way function as an argument as a third one-time ID, and transmitting the third one-time ID to the second device; 상기 제2 장치가, 상기 제1의 난수 및 상기 제2의 난수에 근거해 상기 제2의 공유키를 생성함과 함께, 이 제2의 공유키, 상기 제1의 난수 및 상기 제2의 난수에 근거해 상기 제3 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와 상기 제1 장치로부터 수신한 상기 제3 원 타임 ID와의 비교에 의해, 상기 제1 장치의 정당성을 판정하는 스텝을 가지는 것을 특징으로 하는 인증 방법. The second device generates the second shared key based on the first random number and the second random number, and the second shared key, the first random number, and the second random number. Calculating the validity of the first device by comparing the result of the calculation with the third one-time ID received from the first device based on the calculation; An authentication method characterized by the above-mentioned. 복수의 장치간 또는 어플리케이션간에 있어서의 인증에서 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 상기 인증을 하는 장치 또는 어플리케이션의 각각에서, 상기 인증이 필요한 소정의 통신 단위내에서 난수를 생성함과 함께, 이 난수와 소정의 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성해, 이 생성된 원 타임 ID를 이용해, 제1 장치와 제2 장치간에 있어서의 인증을 하는 인증 방법에 있어서,A random number is generated within a predetermined communication unit requiring the authentication in each device or application that performs the authentication using identification information that can be used only once in authentication between a plurality of devices or between applications as the one-time ID. Obtains a function value of a one-way function that takes this random number and a predetermined shared key, generates the one-time ID from the function value, and uses the generated one-time ID to generate a function value between the first device and the second device. In the authentication method for authentication of, 상기 제1 장치가, 제1의 난수를 생성함과 함께, 상기 제2 장치와의 사이에 미리 공유화된 공유키를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID로 구해서, 이 제1의 원 타임 ID와 상기 제1의 난수를 상기 제2 장치에 대해서 송신하는 스텝과,The first device generates a first random number and obtains, as the first one-time ID, the function value of a one-way function that takes as a parameter a shared key previously shared with the second device. Transmitting a one-time ID of 1 and the first random number to the second device; 상기 제2 장치가, 제2의 난수를 생성함과 함께, 상기 제1의 난수와 상기 공유키를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID로서 구해서, 이 제2의 원 타임 ID와 상기 제2의 난수를 상기 제1 장치에 대해서 송신하는 스텝과,The second device generates a second random number, obtains a function value of a one-way function that takes the first random number and the shared key as an argument as a second one time ID, and obtains the second one time. Transmitting an ID and said second random number to said first apparatus, 상기 제1 장치가, 상기 제1의 난수 및 상기 공유키에 근거해 상기 제2의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와 상기 제2 장치로부터 수신한 상기 제2의 원 타임 ID와의 비교에 의해, 상기 제2 장치의 정당성을 판정하는 스텝과,The first device obtains the second one time ID based on the first random number and the shared key by arithmetic operation, and compares the operation result with the second one time ID received from the second device. A step of determining the validity of the second apparatus by comparison, 상기 제1 장치가, 상기 제1의 난수, 상기 제2의 난수 및 상기 공유키를 인수로 하는 일방향 함수의 함수값을 제3 원 타임 ID로서 구해서, 이 제3 원 타임 ID를 상기 제2 장치에 대해서 송신하는 스텝과,The first device obtains, as a third one time ID, a function value of a one-way function that takes the first random number, the second random number, and the shared key as arguments, and obtains the third one time ID from the second device. To send about 상기 제2 장치가, 상기 제1의 난수, 상기 제2의 난수 및 상기 공유키에 근거해 상기 제3 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와 상기 제1 장치로부터 수신한 상기 제3 원 타임 ID와의 비교에 의해, 상기 제1 장치의 정당성을 판정하는 스텝을 가지는 것을 특징으로 하는 인증 방법. The second device obtains the third one-time ID based on the first random number, the second random number, and the shared key by arithmetic operation, and receives the result of the operation and the third device received from the first device. And a step of determining the validity of the first device by comparison with a one-time ID. 제24항에 있어서, 상기 제1의 난수와 상기 제2의 난수를, 상기 제1 장치와 상기 제2 장치와의 사이에 미리 공유화된 공유키로 암호화한 상태로, 송신하도록 한 것을 특징으로 하는 인증 방법. The authentication method according to claim 24, wherein the first random number and the second random number are transmitted in an encrypted state with a shared key shared in advance between the first device and the second device. Way. 상기 제1의 난수와 상기 제2의 난수를, 상기 제1 장치와 상기 제2 장치와의 사이에 미리 공유화된 공유키로 암호화한 상태로, 송신하도록 한 것을 특징으로 하는 청구항에 기재의 인증 방법. The authentication method according to claim, wherein the first random number and the second random number are transmitted in a state encrypted with a shared key shared in advance between the first device and the second device. 제24항 내지 제26항중 어느 한 항에 있어서, 상기 제2 장치가 상기 제2의 원 타임 ID와 상기 제2의 난수를 상기 제1 장치에 대해서 송신하는 스텝에서, 상기 제2 장치는, 상기 제1 장치와의 사이에 미리 공유화된 난수를 초기 난수로 하고 이 초기 난수와 상기 제1의 난수를 인수로 하는 소정의 연산을 해, 이 연산 결과를 상기 제1 장치에 대해서 송신하는 한편, 상기 제1 장치는, 상기 제2 장치의 정당성의 판정 자료로서 상기 제2 장치로부터 수신한 상기 연산 결과를, 상기 제2의 원 타임 ID와 함께 이용하는 것을 특징으로 하는 인증 방법. 27. The method according to any one of claims 24 to 26, wherein the second device transmits the second one time ID and the second random number to the first device. The predetermined random number shared in advance with the first device is used as an initial random number, and a predetermined operation is performed using the initial random number and the first random number as arguments, and the result of the operation is transmitted to the first device. The first apparatus uses the calculation result received from the second apparatus as the determination data of the validity of the second apparatus together with the second one time ID. 제24항에 있어서, 상기 제1 장치가 상기 제3 원 타임 ID를 상기 제2 장치에 대해서 송신하는 스텝에서, 상기 제1 장치는, 상기 제1의 난수와 상기 제2의 난수를 인수로 하는 소정의 연산을 해, 이 연산 결과를 상기 제2 장치에 대해서 송신하는 한편, 상기 제2 장치는, 상기 제1 장치의 정당성의 판정 자료로서 상기 제1 장치로부터 수신한 상기 연산 결과를, 상기 제3 원 타임 ID와 함께 이용하는 것을 특징으로 하는 인증 방법. The method according to claim 24, wherein in the step of the first device transmitting the third one time ID to the second device, the first device takes the first random number and the second random number as arguments. While performing a predetermined operation and transmitting the result of the calculation to the second device, the second device receives the result of the calculation received from the first device as determination data of the validity of the first device. Authentication method characterized by using together with a three-time ID. 제25항에 있어서, 상기 제1 장치가 상기 제3 원 타임 ID를 상기 제2 장치에 대해서 송신하는 스텝에서, 상기 제1 장치는, 상기 제1의 난수와 상기 제2의 난수을 인수로 하는 소정의 연산을 해, 이 연산 결과를 상기 제2 장치에 대해서 송신하는 한편, 상기 제2 장치는, 상기 제1 장치의 정당성의 판정 자료로서 상기 제1 장치로부터 수신한 상기 연산 결과를, 상기 제3 원 타임 ID와 함께 이용하는 것을 특징으로 하는 인증 방법. 26. The method according to claim 25, wherein, in the step in which the first device transmits the third one time ID to the second device, the first device takes a predetermined factor that takes the first random number and the second random number as arguments. Performs a calculation and transmits the result of the calculation to the second device, while the second device receives the result of the calculation received from the first device as determination data of the validity of the first device. An authentication method characterized by using with a one-time ID. 복수의 장치간 또는 어플리케이션간에 있어서의 인증에서 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 상기 인증을 하는 장치 또는 어플리케이션의 각각에서, 상기 인증이 필요한 소정의 통신 단위내에서 난수를 생성함과 함께, 이 난수와 소정의 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성해, 이 생성된 원 타임 ID를 이용해, 제1 장치와 제2 장치간에 있어서의 인증을 하는 인증 방법에 있어서,A random number is generated within a predetermined communication unit requiring the authentication in each device or application that performs the authentication using identification information that can be used only once in authentication between a plurality of devices or between applications as the one-time ID. Obtains a function value of a one-way function that takes this random number and a predetermined shared key, generates the one-time ID from the function value, and uses the generated one-time ID to generate a function value between the first device and the second device. In the authentication method for authentication of, 상기 제1 장치가, 제1의 난수를 생성함과 함께, 상기 제2 장치와의 사이에 미리 공유화된 공유키, 제1의 기억 난수 및 제2의 기억 난수를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID로서 구해서, 해당 제1 장치에 미리 설정된 ID, 상기 제2 장치에 미리 설정된 ID 및 상기 제1의 난수를 상기 공유키로 암호화한 제1의 암호화 데이터와, 상기 제1의 원 타임 ID를 상기 제2 장치에 대해서 송신하는 스텝과,The first device generates a first random number, and is a function value of a one-way function that takes a shared key, a first stored random number, and a second stored random number shared in advance with the second device. Is the first one-time ID, and the first encrypted data obtained by encrypting the ID set in advance in the first device, the ID preset in the second device, and the first random number with the shared key, Transmitting a one time ID to the second device; 상기 제2 장치가, 상기 제1의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와, 상기 제1 장치로부터 수신한 상기 제1의 원 타임 ID와의 조합에 의해, 상기 제1 장치를 식별하는 스텝과,The second device obtains the first one time ID by a calculation, and identifies the first device by a combination of the calculation result and the first one time ID received from the first device. Steps, 상기 제2 장치가, 상기 제1 장치를 식별할 수 있을 경우에, 상기 공유키를 이용해 상기 제1의 암호화 데이터를 복호해, 이 복호한 데이터에 포함된 상기 제1 장치에 미리 설정된 ID 및 해당 제2 장치에 미리 설정된 ID에 근거해, 상기 제1 장치의 정당성을 판정하는 스텝과,When the second device is able to identify the first device, the first encrypted data is decrypted using the shared key, and the ID preset in the first device included in the decrypted data and the corresponding device. Determining the validity of the first device based on an ID preset in the second device, 상기 제2 장치가, 상기 제1 장치를 정당하다라고 판정된 경우에, 제2의 난수를 생성함과 함께, 상기 제1의 난수, 상기 제2의 기억 난수 및 상기 공유키를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID로서 구해서, 상기 제1 장치에 미리 설정된 ID, 해당 제2 장치에 미리 설정된 ID 및 상기 제2의 난수를 상기 공유키로 암호화한 제2의 암호화 데이터와, 상기 제2의 원 타임 ID를 상기 제1 장치에 대해서 송신하는 스텝과,When the second device determines that the first device is valid, the second device generates a second random number and takes one direction that takes the first random number, the second stored random number, and the shared key as arguments. Second encrypted data obtained by obtaining a function value of a function as a second one-time ID, encrypting an ID preset in the first device, an ID preset in the second device, and the second random number with the shared key; Transmitting the second one time ID to the first device; 상기 제2 장치가, 상기 제1의 기억 난수를 상기 제1의 난수로, 상기 제2의 기억 난수를 상기 제2의 난수로 각각 치환하는 스텝과,The second apparatus replacing the first memory random number with the first random number and the second memory random number with the second random number, respectively; 상기 제1 장치가, 상기 제2의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와 상기 제2 장치로부터 수신한 상기 제2의 원 타임 ID와의 조합에 의해, 상기 제2 장치를 식별하는 스텝과,Obtaining, by the first device, the second one-time ID by calculation, and identifying the second device by a combination of the calculation result and the second one-time ID received from the second device. and, 상기 제1 장치가, 상기 제2 장치를 식별할 수 있을 경우에, 상기 공유키를 이용해 상기 제2의 암호화 데이터를 복호해, 이 복호한 데이터에 포함된 상기 제2 장치에 미리 설정된 ID 및 해당 제1 장치에 미리 설정된 ID에 근거해, 상기 제2 장치의 정당성을 판정하는 스텝과,When the first device is able to identify the second device, the second encrypted data is decrypted using the shared key, and the ID preset in the second device included in the decrypted data and the corresponding device. Determining the validity of the second apparatus based on an ID preset in the first apparatus, 상기 제1 장치가, 상기 제1의 기억 난수를 상기 제1의 난수로, 상기 제2의 기억 난수를 상기 제2의 난수로 각각 치환하는 스텝을 가지는 것을 특징으로 하는 인증 방법. And the first device has a step of replacing the first stored random number with the first random number and the second stored random number with the second random number, respectively. 제31항에 있어서, 상기 제1의 기억 난수를 상기 제1의 난수로, 상기 제2의 기억 난수를 상기 제2의 난수로 각각 치환한 후에, 이들 제1의 기억 난수 및 제2의 기억 난수에 근거해 상기 공유키를 생성하는 것으로써, 해당 공유키를 변화시키도록 한 것을 특징으로 하는 인증 방법. 32. The method according to claim 31, wherein after replacing the first memory random number with the first random number and the second memory random number with the second random number, respectively, the first memory random number and the second memory random number are used. Generating the shared key to change the shared key. 장치간 또는 어플리케이션간에 있어서의 인증에서, 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 상기 인증을 하는 장치 또는 어플리케이션의 각각에서, 상기 인증이 필요한 소정의 통신 단위마다 변화하는 가변 공유키를 생성함과 함께, 이 가변 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성해, 이 생성된 원 타임 ID를 이용해 클라이언트와의 사이에 인증을 하는 서버에 있어서,In authentication between devices or applications, a variable shared key that is changed for each predetermined communication unit requiring the authentication is generated in each device or application that performs the authentication using one-time identification information as one-time ID. In addition, a server that obtains a function value of a one-way function that takes this variable shared key, generates the one-time ID from the function value, and uses the generated one-time ID to authenticate with the client. , 상기 클라이언트에 미리 설정된 클라이언트 ID를 적어도 인수로 하는 일방향 함수 Fc의 함수값과, 상기 클라이언트에 미리 기억된 Diffie-Hellman 공개값의 한편과, 상기 원 타임 ID를 상기 클라이언트로부터 수신하는 수신 수단과,A function value of a one-way function Fc having at least an argument of a client ID set in advance in the client, a Diffie-Hellman public value previously stored in the client, and receiving means for receiving the one-time ID from the client; 상기 일방향 함수의 함수값 Fc 및 상기 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와, 상기 클라이언트로부터 수신한 상기 원 타임 ID 및 상기 일방향 함수 Fc의 함수값과의 비교에 의해, 상기 클라이언트의 정당성을 판정하는 판정 수단과,The function value Fc and the one-time ID of the one-way function are obtained by calculation, and the result of this operation is compared with the function value of the one-time function Fc and the one-way function Fc received from the client. Judging means for judging; 상기 판정 수단이 상기 클라이언트를 정당하다라고 판정된 경우에, 해당 서버에 미리 설정된 서버 ID를 적어도 인수로 하는 일방향 함수 Fs의 함수값과 해당 서버에 미리 기억된 Diffie-Hellman 공개값의 다른 한편을 상기 클라이언트에 대해서 송신하는 송신 수단을 갖추는 것을 특징으로 하는 서버. When the judging means determines that the client is legitimate, the function value of the one-way function Fs which takes as an argument at least the server ID preset in the server and the other of the Diffie-Hellman public value previously stored in the server. A server comprising a transmitting means for transmitting to a client. 장치간 또는 어플리케이션간에 있어서의 인증에서, 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 상기 인증을 하는 장치 또는 어플리케이션의 각각에서, 상기 인증이 필요한 소정의 통신 단위마다 변화하는 가변 공유키를 생성함과 함께, 이 가변 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성해, 이 생성된 원 타임 ID를 이용해 서버와의 사이에 인증을 하는 클라이언트에 있어서,In authentication between devices or applications, a variable shared key that is changed for each predetermined communication unit requiring the authentication is generated in each device or application that performs the authentication using one-time identification information as one-time ID. In addition, in a client that obtains a function value of a one-way function that takes this variable shared key as its argument, generates the one-time ID from the function value, and authenticates with the server using the generated one-time ID. , 상기 서버와의 사이에 미리 공유화된 가변 공유키를 이용해 상기 원 타임 ID를 생성함과 함께, 해당 클라이언트에 미리 설정된 클라이언트 ID를 적어도 인수로 하는 일방향 함수 Fc의 함수값을 연산에 의해 구해서, 이것들 원 타임 ID 및 일방향 함수 Fc의 함수값과 해당 클라이언트에 미리 기억된 Diffie-Hellman 공개값의 한편을 상기 서버에 대해서 송신하는 송신 수단과,The one-time ID is generated using a variable shared key shared with the server in advance, and a function value of the one-way function Fc that takes at least an argument of the client ID preset in the client is calculated by operation. Transmitting means for transmitting to the server one of a time ID and a function value of a one-way function Fc and a Diffie-Hellman public value previously stored in the client; 상기 서버에 미리 설정된 서버 ID를 적어도 인수로 하는 일방향 함수 Fs의 함수값과, 상기 서버에 미리 기억된 Diffie-Hellman 공개값의 다른 한편을 상기 서버로부터 수신하는 수신 수단과,Receiving means for receiving, from the server, a function value of a one-way function Fs having at least a server ID preset in the server as an argument, and the other of a Diffie-Hellman public value previously stored in the server; 상기 일방향 함수 Fs의 함수값을 연산에 의해 구해서, 이 연산 결과와, 상기 서버로부터 수신한 상기 일방향 함수 Fs의 함수값과의 비교에 의해, 상기 서버의 정당성을 판정하는 판정 수단을 갖추는 것을 특징으로 하는 클라이언트. And determining means for determining the validity of the server by obtaining a function value of the one-way function Fs by operation and comparing the result of this operation with a function value of the one-way function Fs received from the server. Client. 서버와 클라이언트와에 의해 구성된 인증 시스템에서, 상기 서버 및 클라이언트는, 장치간 또는 어플리케이션간에 있어서의 인증에서, 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 상기 인증을 하는 장치 또는 어플리케이션의 각각에서, 상기 인증이 필요한 소정의 통신 단위마다 변화하는 가변 공유키를 생성함과 함께, 이 가변 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성해, 이 생성된 원 타임 ID를 이용해 클라이언트와의 사이에 인증을 하고,In the authentication system configured by the server and the client, the server and the client, in the authentication between the devices or the applications, in each of the devices or applications for the authentication using the identification information which can be used only once as the one-time ID, Generates a variable shared key that changes for each predetermined communication unit requiring authentication, obtains a function value of a one-way function that takes the variable shared key as an argument, generates the one-time ID from the function value, and generates the generated value. Authenticate with the client using the established one-time ID, 상기 서버는, 상기 클라이언트에 미리 설정된 클라이언트 ID를 적어도 인수로 하는 일방향 함수 Fc의 함수값과, 상기 클라이언트에 미리 기억된 Diffie-Hellman 공개값의 한편과, 상기 원 타임 ID를 상기 클라이언트로부터 수신하는 수신 수단과,The server is configured to receive, from the client, one of a function value of a one-way function Fc having at least an argument of a client ID set in advance in the client, a Diffie-Hellman public value previously stored in the client, and the one-time ID from the client. Sudan, 상기 일방향 함수의 함수값 Fc 및 상기 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와, 상기 클라이언트로부터 수신한 상기 원 타임 ID 및 상기 일방향 함수 Fc의 함수값과의 비교에 의해, 상기 클라이언트의 정당성을 판정하는 판정 수단과,The function value Fc and the one-time ID of the one-way function are obtained by calculation, and the result of this operation is compared with the function value of the one-time function Fc and the one-way function Fc received from the client. Judging means for judging; 상기 판정 수단이 상기 클라이언트를 정당하다라고 판정된 경우에, 해당 서버에 미리 설정된 서버 ID를 적어도 인수로 하는 일방향 함수 Fs의 함수값과 해당 서버에 미리 기억된 Diffie-Hellman 공개값의 다른 한편을 상기 클라이언트에 대해서 송신하는 송신 수단을 갖추고, 또한,When the judging means determines that the client is legitimate, the function value of the one-way function Fs which takes as an argument at least the server ID preset in the server and the other of the Diffie-Hellman public value previously stored in the server. A transmission means for transmitting to the client, 상기 클라이언트는, 상기 서버와의 사이에 미리 공유화된 가변 공유키를 이용해 상기 원 타임 ID를 생성함과 함께, 해당 클라이언트에 미리 설정된 클라이언트 ID를 적어도 인수로 하는 일방향 함수 Fc의 함수값을 연산에 의해 구해서, 이것들 원 타임 ID 및 일방향 함수 Fc의 함수값과 해당 클라이언트에 미리 기억된 Diffie-Hellman 공개값의 한편을 상기 서버에 대해서 송신하는 송신 수단과,The client generates the one-time ID by using a variable shared key shared with the server in advance, and computes a function value of the one-way function Fc that takes at least an argument of the client ID preset in the client. Transmitting means for obtaining one of these one-time IDs and function values of the one-way function Fc and the Diffie-Hellman public values previously stored in the client, to the server; 상기 서버에 미리 설정된 서버 ID를 적어도 인수로 하는 일방향 함수 Fs의 함수값과, 상기 서버에 미리 기억된 Diffie-Hellman 공개값의 다른 한편을 상기 서버로부터 수신하는 수신 수단과,Receiving means for receiving, from the server, a function value of a one-way function Fs having at least a server ID preset in the server as an argument, and the other of a Diffie-Hellman public value previously stored in the server; 상기 일방향 함수 Fs의 함수값을 연산에 의해 구해서, 이 연산 결과와, 상기 서버로부터 수신한 상기 일방향 함수 Fs의 함수값과의 비교에 의해, 상기 서버의 정당성을 판정하는 판정 수단을 갖추는 것을 특징으로 하는 인증 시스템. And determining means for determining the validity of the server by obtaining a function value of the one-way function Fs by operation and comparing the result of this operation with a function value of the one-way function Fs received from the server. Certification system. 장치간 또는 어플리케이션간에 있어서의 인증에서, 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 상기 인증을 하는 장치 또는 어플리케이션의 각각에서, 상기 인증이 필요한 소정의 통신 단위마다 변화하는 가변 공유키를 생성함과 함께, 이 가변 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성해, 이 생성된 원 타임 ID에 근거해 클라이언트와의 사이에 인증을 하는 서버에 실행 시키는 프로그램에 있어서,In authentication between devices or applications, a variable shared key that is changed for each predetermined communication unit requiring the authentication is generated in each device or application that performs the authentication using one-time identification information as one-time ID. In addition, a function value of a one-way function that takes this variable shared key as an argument is obtained, and the one-time ID is generated from the function value, and the server that authenticates with the client based on the generated one-time ID is generated. In the program that executes, 상기 클라이언트에 미리 설정된 클라이언트 ID를 적어도 인수로 하는 일방향 함수 Fc의 함수값과, 상기 클라이언트에 미리 기억된 Diffie-Hellman 공개값의 한편과, 상기 원 타임 ID를 상기 클라이언트로부터 수신하는 처리와,A process of receiving a function value of a one-way function Fc having at least an argument of a client ID set in advance in the client, a Diffie-Hellman public value previously stored in the client, and the one-time ID from the client; 상기 일방향 함수의 함수값 Fc 및 상기 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와, 상기 클라이언트로부터 수신한 상기 원 타임 ID 및 상기 일방향 함수 Fc의 함수값과의 비교에 의해, 상기 클라이언트의 정당성을 판정하는 처리와,The function value Fc and the one-time ID of the one-way function are obtained by calculation, and the result of this operation is compared with the function value of the one-time function Fc and the one-way function Fc received from the client. Processing to determine, 상기 클라이언트가 정당하다라고 판정된 경우에, 상기 서버에 미리 설정된 서버 ID를 적어도 인수로 하는 일방향 함수 Fs의 함수값과, 상기 서버에 미리 기억된 Diffie-Hellman 공개값의 다른 한편을 상기 클라이언트에 대해서 송신하는 처리를 상기 서버에 실행시키는 것을 특징으로 하는 프로그램. If it is determined that the client is legitimate, then the function value of the one-way function Fs, which takes at least the server ID preset in the server as an argument, and the other of the Diffie-Hellman public value previously stored in the server, for the client A program for causing the server to execute a transmitting process. 장치간 또는 어플리케이션간에 있어서의 인증에서, 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 상기 인증을 하는 장치 또는 어플리케이션의 각각에서, 상기 인증이 필요한 소정의 통신 단위마다 변화하는 가변 공유키를 생성함과 함께, 이 가변 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성해, 이 생성된 원 타임 ID에 근거해 서버와의 사이에 인증을 하는 클라이언트에 실행 시키는 프로그램에 있어서,In authentication between devices or applications, a variable shared key that is changed for each predetermined communication unit requiring the authentication is generated in each device or application that performs the authentication using one-time identification information as one-time ID. In addition, a function value of a one-way function that takes this variable shared key as an argument is generated, and the one-time ID is generated from the function value, and the client authenticates with the server based on the generated one-time ID. In the program that executes, 상기 서버와의 사이에 미리 공유화된 가변 공유키를 이용해 상기 원 타임 ID를 생성함과 함께, 상기 클라이언트에 미리 설정된 클라이언트 ID를 적어도 인수로 하는 일방향 함수 Fc의 함수값을 연산에 의해 구해서, 이것들 원 타임 ID 및 일방향 함수 Fc의 함수값과, 상기 클라이언트에 미리 기억된 Diffie-Hellman 공개값의 한편을 상기 서버에 대해서 송신하는 처리와,The one-time ID is generated using a variable shared key shared with the server in advance, and a function value of the one-way function Fc that takes at least an argument of the client ID set in advance in the client is calculated by operation. A process of transmitting to the server one of a time ID and a function value of a one-way function Fc and a Diffie-Hellman public value previously stored in the client; 상기 서버에 미리 설정된 서버 ID를 적어도 인수로 하는 일방향 함수 Fs의 함수값과, 상기 서버에 미리 기억된 Diffie-Hellman 공개값의 다른 한편을 상기 서버로부터 수신하는 처리와,A process of receiving from the server a function value of a one-way function Fs having at least a server ID preset in the server as an argument, and the other of a Diffie-Hellman public value previously stored in the server; 상기 일방향 함수 Fs의 함수값을 연산에 의해 구해서, 이 연산 결과와, 상기 서버로부터 수신한 상기 일방향 함수 Fs의 함수값과의 비교에 의해, 상기 서버의 정당성을 판정하는 처리를 상기 클라이언트에 실행시키는 것을 특징으로 하는 프로그램. A function value of the one-way function Fs is obtained by an operation, and the client is subjected to a process of determining the validity of the server by comparing the result of this operation with a function value of the one-way function Fs received from the server. The program characterized in that. 복수의 장치간 또는 어플리케이션간에 있어서의 인증에서 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 상기 인증을 하는 장치 또는 어플리케이션의 각각에서, 상기 인증이 필요한 소정의 통신 단위마다 변화하는 가변 공유키를 생성함과 함께, 이 가변 공유키와 통신 순서 또는 횟수에 관한 정보를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성해, 이 생성된 원 타임 ID를 이용해 클라이언트와의 사이에 인증을 하는 서버에 있어서,A variable shared key that is changed for each predetermined communication unit that requires the authentication is generated in each device or application that performs the authentication by using the identification information that can be used only once in authentication between a plurality of devices or between applications as the one-time ID. In addition, a function value of a one-way function that takes the variable shared key and information on the communication order or number of times as an argument is obtained, and the one-time ID is generated from the function value, and the generated one-time ID is used to communicate with the client. For a server that authenticates between 상기 클라이언트와의 사이에 미리 공유화된 제1의 가변 공유키와 상기 클라이언트의 통신 순서에 관한 정보를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID로서 이 제1의 원 타임 ID, 상기 클라이언트에 미리 설정된 클라이언트 ID, 해당 서버에 미리 설정된 서버 ID, 상기 클라이언트에 미리 기억된 Diffie-Hellman 공개값의 한편을 상기 제1의 가변 공유키로 암호화한 암호화 데이터와 상기 제1의 원 타임 ID를 상기 클라이언트로부터 수신하는 수신 수단과,The first one-time ID as a first one-time ID is a function value of a one-way function that takes as an argument a first variable shared key previously shared with the client and information about the communication order of the client. The encrypted data obtained by encrypting one of the client ID preset in the client, the server ID preset in the server, the Diffie-Hellman public value prestored in the client with the first variable shared key, and the first one-time ID. Receiving means for receiving from the client, 상기 제1의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와, 상기 클라이언트로부터 수신한 상기 제1의 원 타임 ID와의 조합에 의해, 상기 클라이언트를 식별해, 상기 클라이언트를 식별할 수 있을 경우에, 상기 제1의 가변 공유키를 이용해 상기 암호화 데이터를 복호해, 이 복호한 데이터에 포함된 상기 클라이언트 ID, 상기 서버 ID 및 상기 제1의 원 타임 ID에 근거해, 상기 클라이언트의 정당성을 판정하는 판정 수단과,When the first one-time ID is obtained by a calculation and the combination of the result of the calculation and the first one-time ID received from the client can identify the client and identify the client. And decrypting the encrypted data using the first variable shared key to determine validity of the client based on the client ID, the server ID, and the first one-time ID included in the decrypted data. Judging means, 상기 판정 수단이 상기 클라이언트를 정당하다라고 판정한 경우에, 상기 제1의 가변 공유키와 해당 서버의 통신 순서에 관한 정보를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID로서 생성함과 함께, 상기 클라이언트로부터 수신한 Diffie-Hellman 공개값의 한편과 해당 서버에 미리 기억된 Diffie-Hellman 공개값의 다른 한편으로부터 Diffie-Hellman 공통키를 제2의 가변 공유키로서 생성해, 이 제2의 가변 공유키, 상기 클라이언트 ID, 상기 서버 ID 및 상기 제2의 원 타임 ID를 인수로 하는 일방향 함수 h의 함수값과, 상기 Diffie-Hellman 공개값의 다른 한편과, 상기 제2의 원 타임 ID를 상기 클라이언트에 대해서 송신하는 송신 수단을 갖추는 것을 특징으로 하는 서버. And when the judging means determines that the client is legitimate, generates a function value of a one-way function as a second one-time ID that takes as argument a information about the communication order between the first variable shared key and the server. And generate a Diffie-Hellman common key as a second variable shared key from one of the Diffie-Hellman public values received from the client and the other of the Diffie-Hellman public values previously stored in the server. A function value of a one-way function h that takes a variable shared key, the client ID, the server ID, and the second one-time ID as the argument, the other of the Diffie-Hellman public value, and the second one-time ID. And transmitting means for transmitting to the client. 복수의 장치간 또는 어플리케이션간에 있어서의 인증에서 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 상기 인증을 하는 장치 또는 어플리케이션의 각각에서, 상기 인증이 필요한 소정의 통신 단위마다 변화하는 가변 공유키를 생성함과 함께, 이 가변 공유키와 통신 순서 또는 횟수에 관한 정보를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성해, 이 생성된 원 타임 ID를 이용해 서버와의 사이에 인증을 하는 클라이언트에 있어서, 상기 서버와의 사이에 미리 공유화된 제1의 가변 공유키와 해당 클라이언트의 통신 순서에 관한 정보를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID로서 생성함과 함께, 상기 제1의 가변 공유키를 이용해, 해당 클라이언트에 미리 설정된 클라이언트 ID, 상기 서버에 미리 설정된 서버 ID, 해당 클라이언트에 미리 기억된 Diffie-Hellman 공개값의 한편 및 상기 제1의 원 타임 ID를 암호화해, 이 암호화 데이터와 상기 제1의 원 타임 ID를 상기 서버에 대해서 송신하는 송신 수단과,A variable shared key that is changed for each predetermined communication unit that requires the authentication is generated in each device or application that performs the authentication by using the identification information that can be used only once in authentication between a plurality of devices or between applications as the one-time ID. In addition, a function value of a one-way function having the variable shared key and information on the communication order or the number of times as an argument is obtained, the one-time ID is generated from this function value, and the generated one-time ID is used to generate a function value. A client authenticating between a first one time ID and a function value of a one-way function whose first variable variable is previously shared with the server and information on the communication order of the client. And a client ID set in advance for the client by using the first variable shared key, Transmitting means for encrypting one of the preset server IDs, the Diffie-Hellman public values previously stored in the client, and the first one-time ID, and transmitting the encrypted data and the first one-time ID to the server. and, 상기 제1의 가변 공유키와 상기 서버의 통신 순서에 관한 정보를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID로 하고, Diffie-Hellman 공통키를 제2의 가변 공유키로서 상기 제2의 원 타임 ID, 상기 제2의 가변 공유키, 상기 클라이언트 ID 및 상기 서버 ID를 인수로 하는 일방향 함수 h의 함수값과, 상기 서버에 미리 기억된 Diffie-Hellman 공개값의 다른 한편과, 상기 제2의 원 타임 ID를 상기 서버로부터 수신하는 수신 수단과,The function value of the one-way function, which takes the first variable shared key and the information on the communication order of the server as an argument, is the second one-time ID, and the Diffie-Hellman common key is the second variable shared key. A function value of a one-way function h that takes a one-time ID of two, the second variable shared key, the client ID, and the server ID as arguments, and the other of the Diffie-Hellman public value previously stored in the server; Receiving means for receiving a second one-time ID from the server; 상기 제2의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와, 상기 서버로 부터 수신한 상기 제2의 원 타임 ID와의 조합에 의해, 상기 서버를 식별해, 상기 서버를 식별할 경우에, 상기 서버로부터 수신한 상기 Diffie-Hellman 공개값의 다른 한편과 해당 클라이언트에 미리 기억된 상기 Diffie-Hellman 공개값의 한편으로부터 Diffie-Hellman 공통키를 상기 제2의 가변 공유키로서 생성함과 함께, 이 제2의 가변 공유키를 이용해 상기 일방향 함수 h의 함수값을 연산에 의해 구해서, 이 연산 결과와, 상기 서버로부터 수신한 일방향 함수 h의 함수값과의 조합에 의해, 상기 서버의 정당성을 판정하는 판정 수단을 갖추는 것을 특징으로 하는 클라이언트. When the second one-time ID is obtained by a calculation, and the server is identified and the server is identified by a combination of the operation result and the second one-time ID received from the server, A Diffie-Hellman common key is generated as the second variable shared key from the other of the Diffie-Hellman public value received from the server and the one of the Diffie-Hellman public value previously stored in the client. A function value of the one-way function h is obtained by a calculation using a second variable shared key, and the validity of the server is determined based on a combination of the result of this operation and the function value of the one-way function h received from the server. And a determination means. 서버와 클라이언트와에 의해 구성된 인증 시스템에서, 상기 서버 및 클라이언트는, 복수의 장치간 또는 어플리케이션간에 있어서의 인증에서 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 상기 인증을 하는 장치 또는 어플리케이션의 각각에서, 상기 인증이 필요한 소정의 통신 단위마다 변화하는 가변 공유키를 생성함과 함께, 이 가변 공유키와 통신 순서 또는 횟수에 관한 정보를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성해, 이 생성된 원 타임 ID를 이용해 클라이언트와의 사이에 인증을 하고,In an authentication system constituted by a server and a client, the server and the client each use a device or application that performs the authentication using identification information that can be used only once in authentication between a plurality of devices or between applications as a one-time ID. Generate a variable shared key that changes for each predetermined communication unit requiring authentication, obtain a function value of a one-way function whose information is about the variable shared key and the communication order or number of times; Generate a one-time ID, use this generated one-time ID to authenticate with the client, 상기 서버는, 상기 클라이언트와의 사이에 미리 공유화된 제1의 가변 공유키와 상기 클라이언트의 통신 순서에 관한 정보를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID로서 이 제1의 원 타임 ID, 상기 클라이언트에 미리 설정된 클라이언트 ID, 해당 서버에 미리 설정된 서버 ID, 상기 클라이언트에 미리 기억된 Diffie-Hellman 공개값의 한편을 상기 제1의 가변 공유키로 암호화한 암호화 데이터와, 상기 제1의 원 타임 ID를 상기 클라이언트로부터 수신하는 수신 수단과,The server uses a first one-time ID as a function value of a one-way function having a first variable shared key previously shared with the client and information about the communication order of the client as the first one-time ID. Encrypted data obtained by encrypting one of a time ID, a client ID preset in the client, a server ID preset in the server, a Diffie-Hellman public value prestored in the client with the first variable shared key, and the first Receiving means for receiving a one-time ID from the client; 상기 제1의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와, 상기 클라이언트로부터 수신한 상기 제1의 원 타임 ID와의 조합에 의해, 상기 클라이언트를 식별해, 상기 클라이언트를 식별할 수 있을 경우에, 상기 제1의 가변 공유키를 이용해 상기 암호화 데이터를 복호해, 이 복호한 데이터에 포함된 상기 클라이언트 ID, 상기 서버 ID 및 상기 제1의 원 타임 ID에 근거해, 상기 클라이언트의 정당성을 판정하는 판정 수단과,When the first one-time ID is obtained by a calculation and the combination of the result of the calculation and the first one-time ID received from the client can identify the client and identify the client. And decrypting the encrypted data using the first variable shared key to determine validity of the client based on the client ID, the server ID, and the first one-time ID included in the decrypted data. Judging means, 상기 판정 수단이 상기 클라이언트를 정당하다라고 판정된 경우에, 상기 제1의 가변 공유키와 해당 서버의 통신 순서에 관한 정보를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID로서 생성함과 함께, 상기 클라이언트로부터 수신한 Diffie-Hellman 공개값의 한편과 해당 서버에 미리 기억된 Diffie-Hellman 공개값의 다른 한편으로부터 Diffie-Hellman 공통키를 제2의 가변 공유키로서 생성해, 이 제2의 가변 공유키, 상기 클라이언트 ID, 상기 서버 ID 및 상기 제2의 원 타임 ID를 인수로 하는 일방향 함수 h의 함수값과, 상기 Diffie-Hellman 공개값의 다른 한편과 상기 제2의 원 타임 ID를 상기 클라이언트에 대해서 송신하는 송신 수단을 갖추고, 또한,And when the judging means determines that the client is legitimate, generates a function value of a one-way function as a second one-time ID that takes as an argument information on the communication order between the first variable shared key and the server. And generate a Diffie-Hellman common key as a second variable shared key from one of the Diffie-Hellman public values received from the client and the other of the Diffie-Hellman public values previously stored in the server. A function value of a one-way function h that takes a variable shared key, the client ID, the server ID, and the second one-time ID, and the other one of the Diffie-Hellman public value and the second one-time ID. A transmission means for transmitting to the client, 상기 클라이언트는, 상기 서버와의 사이에 미리 공유화된 제1의 가변 공유키와 해당 클라이언트의 통신 순서에 관한 정보를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID로서 생성함과 함께, 상기 제1의 가변 공유키를 이용해, 해당 클라이언트에 미리 설정된 클라이언트 ID, 상기 서버에 미리 설정된 서버 ID, 해당 클라이언트에 미리 기억된 Diffie-Hellman 공개값의 한편 및 상기 제1의 원 타임 ID를 암호화해, 이 암호화 데이터와 상기 제1의 원 타임 ID를 상기 서버에 대해서 송신하는 송신 수단과,The client generates, as a first one-time ID, a function value of a one-way function having a first variable shared key previously shared with the server and information on the communication order of the client as an argument, The first variable shared key is used to encrypt a client ID preset for the client, a server ID preset for the server, a Diffie-Hellman public value prestored in the client, and the first one-time ID. Transmitting means for transmitting the encrypted data and the first one time ID to the server; 상기 제1의 가변 공유키와 상기 서버의 통신 순서에 관한 정보를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID로 하고, Diffie-Hellman 공통키를 제2의 가변 공유키로서, 상기 제2의 원 타임 ID, 상기 제2의 가변 공유키, 상기 클라이언트 ID 및 상기 서버 ID를 인수로 하는 일방향 함수 h의 함수값과, 상기 서버에 미리 기억된 Diffie-Hellman 공개값의 다른 한편과, 상기 제2의 원 타임 ID를 상기 서버로부터 수신하는 수신 수단과,The function value of the one-way function, which takes the first variable shared key and the information on the communication order of the server as an argument, is the second one-time ID, and the Diffie-Hellman common key is the second variable shared key. A function value of a one-way function h that takes a second one-time ID, the second variable shared key, the client ID, and the server ID as arguments, and the other of the Diffie-Hellman public value previously stored in the server; Receiving means for receiving the second one time ID from the server; 상기 제2의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와, 상기 서버로부터 수신한 상기 제2의 원 타임 ID와의 조합에 의해, 상기 서버를 식별해, 상기 서버를 식별할 경우에, 상기 서버로부터 수신한 상기 Diffie-Hellman 공개값의 다른 한편과 해당 클라이언트에 미리 기억된 상기 Diffie-Hellman 공개값의 한편으로부터 Diffie-Hellman 공통키를 상기 제2의 가변 공유키로서 생성함과 함께, 이 제2의 가변 공유키를 이용해 상기 일방향 함수 h의 함수값을 연산에 의해 구해서, 이 연산 결과와 상기 서버로부터 수신한 일방향 함수 h의 함수값과의 조합에 의해, 상기 서버의 정당성을 판정하는 판정 수단을 갖추는 것을 특징으로 하는 인증 시스템. When the second one-time ID is obtained by a calculation and the combination of the result of this operation and the second one-time ID received from the server identifies the server and identifies the server, A Diffie-Hellman common key is generated as the second variable shared key from the other of the Diffie-Hellman public value received from the server and the one of the Diffie-Hellman public value previously stored in the client. Determination means for determining the validity of the server based on a combination of the result of this operation and the function value of the one-way function h received from the server using a variable shared key of two; Authentication system characterized by having a. 복수의 장치간 또는 어플리케이션간에 있어서의 인증에서 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 상기 인증을 하는 장치 또는 어플리케이션의 각각에서, 상기 인증이 필요한 소정의 통신 단위내에서 난수를 생성함과 함께, 이 난수와 소정의 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성해, 이 생성된 원 타임 ID를 이용해 클라이언트와의 사이에 서로 인증을 하는 서버에 있어서,A random number is generated within a predetermined communication unit requiring the authentication in each device or application that performs the authentication using identification information that can be used only once in authentication between a plurality of devices or between applications as the one-time ID. A server that obtains a function value of a one-way function that takes this random number and a predetermined shared key, generates the one-time ID from the function value, and uses the generated one-time ID to authenticate each other with the client. To 상기 클라이언트와의 사이에 미리 공유화된 제1의 공유키를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID로서, 이 제1의 원 타임 ID와, 상기 클라이언트로 생성된 제1의 난수를 상기 클라이언트로부터 수신하는 제1 수신 수단과,The first one-time ID and the first random number generated by the client are function values of a one-way function having a first shared key shared with the client as an argument as the first one-time ID. First receiving means for receiving from the client; 제2의 난수를 생성함과 함께, 상기 제1의 난수와 상기 제1의 공유키를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID로서 구해서, 이 제2의 원 타임 ID와 상기 제2의 난수를 상기 클라이언트에 대해서 송신하는 송신 수단과,While generating a second random number, a function value of a one-way function that takes the first random number and the first shared key as arguments is obtained as a second one time ID, and the second one time ID and the Transmitting means for transmitting a second random number to the client; 상기 제1의 난수, 상기 제2의 난수 및 제2의 공유키를 인수로 하는 일방향 함수의 함수값을 제3 원 타임 ID로서 이 제3 원 타임 ID를 상기 클라이언트로부터 수신하는 제2 수신 수단과,Second receiving means for receiving a function value of a one-way function having the first random number, the second random number, and the second shared key as a third one time ID from the client; , 상기 제1의 난수 및 상기 제2의 난수에 근거해 상기 제2의 공유키를 생성함과 함께, 이 제2의 공유키, 상기 제1의 난수 및 상기 제2의 난수에 근거해 상기 제3 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와 상기 클라이언트로부터 수신한 상기 제3 원 타임 ID와의 비교에 의해, 상기 클라이언트의 정당성을 판정하는 판정 수단을 갖추는 것을 특징으로 하는 서버. Generate the second shared key based on the first random number and the second random number, and generate the third shared key based on the second shared key, the first random number, and the second random number And a determination means for determining the validity of the client by obtaining a one-time ID by an operation and comparing the result of this operation with the third one-time ID received from the client. 복수의 장치간 또는 어플리케이션간에 있어서의 인증에서 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 상기 인증을 하는 장치 또는 어플리케이션의 각각에서, 상기 인증이 필요한 소정의 통신 단위내에서 난수를 생성함과 함께, 이 난수와 소정의 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성해, 이 생성된 원 타임ID를 이용해 서버와의 사이에 서로 인증을 하는 클라이언트에 있어서,A random number is generated within a predetermined communication unit requiring the authentication in each device or application that performs the authentication using identification information that can be used only once in authentication between a plurality of devices or between applications as the one-time ID. A client that obtains a function value of a one-way function that takes this random number and a predetermined shared key, generates the one-time ID from the function value, and authenticates with the server using the generated one-time ID. To 제1의 난수를 생성함과 함께, 상기 서버와의 사이에 미리 공유화된 제1의 공유키를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID로서 구해서, 이 제1의 원 타임 ID와 상기 제1의 난수를 상기 서버에 대해서 송신하는 제1 송신 수단과,A first one-time ID is obtained by generating a first random number and obtaining a function value of a one-way function whose first shared key is shared with the server as an argument as a first one-time ID. First transmitting means for transmitting the first random number to the server; 상기 제1의 난수와 상기 제1의 공유키를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID로서, 이 제2의 원 타임 ID와, 상기 서버로 생성된 제2의 난수를 상기 서버로부터 수신하는 수신 수단과,The function value of a one-way function having the first random number and the first shared key as arguments is a second one-time ID, and the second one-time ID and the second random number generated by the server are described. Receiving means for receiving from a server, 상기 제1의 난수 및 상기 제1의 공유키에 근거해 상기 제2의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와 상기 서버로부터 수신한 상기 제2의 원 타임 ID와의 비교에 의해, 상기 서버의 정당성을 판정하는 판정 수단과,Calculating the second one-time ID based on the first random number and the first shared key by operation, and comparing the result of this operation with the second one-time ID received from the server, Judging means for judging the legitimacy of the server, 상기 판정 수단에 의해 상기 서버가 정당하다라고 판정된 경우에, 상기 제1의 난수 및 상기 제2의 난수에 근거해 제2의 공유키를 생성함과 함께, 이 제2의 공유키, 상기 제1의 난수 및 상기 제2의 난수를 인수로 하는 일방향 함수의 함수값을 제3 원 타임 ID로서 구해서, 이 제3 원 타임 ID를 상기 서버에 대해서 송신하는 제2 송신 수단을 갖추는 것을 특징으로 하는 클라이언트. If the server determines that the server is legitimate, the second shared key is generated based on the first random number and the second random number, and the second shared key is generated. And a second transmitting means for obtaining a function value of a one-way function having a random number of 1 and the second random number as an argument as a third one-time ID, and transmitting this third one-time ID to the server. Client. 서버와 클라이언트에 의해 구성된 인증 시스템에서, 상기 서버 및 클라이언트는, 복수의 장치간 또는 어플리케이션간에 있어서의 인증에서 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 상기 인증을 하는 장치 또는 어플리케이션의 각각에서, 상기 인증이 필요한 소정의 통신 단위내에서 난수를 생성함과 함께, 이 난수와 소정의 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성해, 이 생성된 원 타임 ID를 이용해 클라이언트와의 사이에 서로 인증을 하도록 구성되어,In the authentication system configured by the server and the client, the server and the client, in each of the apparatus or application for the authentication using the identification information that can be used only once in authentication between a plurality of devices or between applications as a one-time ID, Generates a random number in the predetermined communication unit requiring the authentication, obtains a function value of a one-way function that takes the random number and the predetermined shared key as arguments, generates the one-time ID from the function value, and generates the generated value. Configured to authenticate each other with the client using the established one-time ID, 상기 서버는, 상기 클라이언트와의 사이에 미리 공유화된 제1의 공유키를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID로서, 이 제1의 원 타임 ID와, 상기 클라이언트로 생성된 제1의 난수를 상기 클라이언트로부터 수신하는 제1 수신 수단과,The server generates a first one-time ID and a function value of a one-way function having a first shared key shared with the client as an argument as a first one-time ID. First receiving means for receiving a first random number from the client; 제2의 난수를 생성함과 함께, 상기 제1의 난수와 상기 제1의 공유키를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID로서 구해서, 이 제2의 원 타임 ID와 상기 제2의 난수를 상기 클라이언트에 대해서 송신하는 송신 수단과,  While generating a second random number, a function value of a one-way function that takes the first random number and the first shared key as arguments is obtained as a second one time ID, and the second one time ID and the Transmitting means for transmitting a second random number to the client; 상기 제1의 난수, 상기 제2의 난수 및 제2의 공유키를 인수로 하는 일방향 함수의 함수값을 제3 원 타임 ID로서 이 제3 원 타임 ID를 상기 클라이언트로부터 수신하는 제2 수신 수단과,Second receiving means for receiving a function value of a one-way function having the first random number, the second random number, and the second shared key as a third one time ID from the client; , 상기 제1의 난수 및 상기 제2의 난수에 근거해 상기 제2의 공유키를 생성함과 함께, 이 제2의 공유키, 상기 제1의 난수 및 상기 제2의 난수에 근거해 상기 제3 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와 상기 클라이언트로부터 수신한 상기 제3 원 타임 ID와의 비교에 의해, 상기 클라이언트의 정당성을 판정하는 판정 수단을 갖추고, 또한, Generate the second shared key based on the first random number and the second random number, and generate the third shared key based on the second shared key, the first random number, and the second random number Determination means for determining the validity of the client by obtaining a one-time ID by a calculation and comparing the result of this operation with the third one-time ID received from the client; 상기 클라이언트는, 제1의 난수를 생성함과 함께, 상기 서버와의 사이에 미리 공유화된 제1의 공유키를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID로서 구해서, 이 제1의 원 타임 ID와 상기 제1의 난수를 상기 서버에 대해서 송신하는 제1 송신 수단과,The client generates a first random number, obtains a function value of a one-way function whose first shared key is shared with the server as an argument, as the first one-time ID, and then obtains the first random number. First sending means for sending the one-time ID of the and the first random number to the server; 상기 제1의 난수와 상기 제1의 공유키를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID로서 이 제2의 원 타임 ID와, 상기 서버로 생성된 제2의 난수를 상기 서버로부터 수신하는 수신 수단과,A function value of a one-way function having the first random number and the first shared key as arguments, the second one-time ID as the second one-time ID, and the second random number generated by the server; Receiving means for receiving from 상기 제1의 난수 및 상기 제1의 공유키에 근거해 상기 제2의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와 상기 서버로부터 수신한 상기 제2의 원 타임 ID와의 비교에 의해, 상기 서버의 정당성을 판정하는 판정 수단과,Calculating the second one-time ID based on the first random number and the first shared key by operation, and comparing the result of this operation with the second one-time ID received from the server, Judging means for judging the legitimacy of the server, 상기 판정 수단에 의해 상기 서버가 정당하다라고 판정된 경우에, 상기 제1의 난수 및 상기 제2의 난수에 근거해 제2의 공유키를 생성함과 함께, 이 제2의 공유키, 상기 제1의 난수 및 상기 제2의 난수를 인수로 하는 일방향 함수의 함수값을 제3 원 타임 ID로서 구해서, 이 제3 원 타임 ID를 상기 서버에 대해서 송신하는 제2 송신 수단을 갖추는 것을 특징으로 하는 인증 시스템. If the server determines that the server is legitimate, the second shared key is generated based on the first random number and the second random number, and the second shared key is generated. And a second transmitting means for obtaining a function value of a one-way function having a random number of 1 and the second random number as an argument as a third one-time ID, and transmitting this third one-time ID to the server. Authentication system. 복수의 장치간 또는 어플리케이션간에 있어서의 인증에서 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 상기 인증을 하는 장치 또는 어플리케이션의 각각에서, 상기 인증이 필요한 소정의 통신 단위내에서 난수를 생성함과 함께, 이 난수와 소정의 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성해, 이 생성된 원 타임 ID를 이용해 클라이언트와의 사이에 서로 인증을 하는 서버에 있어서,A random number is generated within a predetermined communication unit requiring the authentication in each device or application that performs the authentication using identification information that can be used only once in authentication between a plurality of devices or between applications as the one-time ID. A server that obtains a function value of a one-way function that takes this random number and a predetermined shared key, generates the one-time ID from the function value, and uses the generated one-time ID to authenticate each other with the client. To 상기 클라이언트와의 사이에 미리 공유화된 공유키를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID로 해서, 이 제1의 원 타임 ID와, 상기 클라이언트로 생성된 제1의 난수를 상기 클라이언트로부터 수신하는 제1 수신 수단과,The first one-time ID and the first random number generated by the client are described as a first one-time ID as a function value of a one-way function that takes a shared key previously shared with the client as an argument. First receiving means for receiving from the client, 제2의 난수를 생성함과 함께, 상기 제1의 난수와 상기 공유키를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID로서 구해서, 이 제2의 원 타임 ID와 상기 제2의 난수를 상기 클라이언트에 대해서 송신하는 송신 수단과,  While generating a second random number, a function value of a one-way function having the first random number and the shared key as an argument is obtained as a second one time ID, and the second one time ID and the second one are obtained. Transmitting means for transmitting a random number to the client; 상기 공유키, 상기 제1의 난수 및 상기 제2의 난수를 인수로 하는 일방향 함수의 함수값을 제3 원 타임 ID로 해서, 이 제3 원 타임 ID를 상기 클라이언트로부터 수신하는 제2 수신 수단과,Second receiving means for receiving the third one-time ID from the client using a function value of a one-way function having the shared key, the first random number, and the second random number as arguments; , 상기 제1의 난수, 상기 제2의 난수 및 상기 공유키에 근거해 상기 제3 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와 상기 클라이언트로부터 수신한 상기 제3 원 타임 ID와의 비교에 의해, 상기 클라이언트의 정당성을 판정하는 판정 수단을 갖추는 것을 특징으로 하는 서버. Calculating the third one-time ID based on the first random number, the second random number, and the shared key by operation, and comparing the result of this operation with the third one-time ID received from the client, And judging means for judging the legitimacy of the client. 복수의 장치간 또는 어플리케이션간에 있어서의 인증에서 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 상기 인증을 하는 장치 또는 어플리케이션의 각각에서, 상기 인증이 필요한 소정의 통신 단위내에서 난수를 생성함과 함께, 이 난수와 소정의 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성해, 이 생성된 원 타임 ID를 이용해 서버와의 사이에 서로 인증을 하는 클라이언트에 있어서,A random number is generated within a predetermined communication unit requiring the authentication in each device or application that performs the authentication using identification information that can be used only once in authentication between a plurality of devices or between applications as the one-time ID. A client that obtains a function value of a one-way function that takes this random number and a predetermined shared key, generates the one-time ID from the function value, and uses the generated one-time ID to authenticate each other with the server. To 제1의 난수를 생성함과 함께, 상기 서버와의 사이에 미리 공유화된 공유키를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID로서 구해서, 이 제1의 원 타임 ID와 상기 제1의 난수를 상기 서버에 대해서 송신하는 제1 송신 수단과,  Generates a first random number, obtains a function value of a one-way function having a shared key pre-shared with the server as a first one-time ID, and obtains the first one-time ID and the first one. First transmitting means for transmitting a random number of 1 to the server, 상기 제1의 난수와 상기 공유키를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID로 해서, 이 제2의 원 타임 ID와, 상기 서버로 생성된 제2의 난수를 상기 서버로부터 수신하는 수신 수단과,The second one-time ID and the second random number generated by the server are obtained from the server, with the function value of the one-way function taking the first random number and the shared key as arguments as the second one-time ID. Receiving means for receiving, 상기 제1의 난수 및 상기 공유키에 근거해 상기 제2의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와 상기 서버로부터 수신한 상기 제2의 원 타임 ID와의 비교에 의해, 상기 서버의 정당성을 판정하는 판정 수단과,Obtaining the second one-time ID based on the first random number and the shared key by operation, and validating the server by comparing the operation result with the second one-time ID received from the server. Judging means for judging; 상기 판정 수단에 의해 상기 서버가 정당하다라고 판정된 경우에, 상기 제1의 난수, 상기 제2의 난수 및 상기 공유키를 인수로 하는 일방향 함수의 함수값을 제3 원 타임 ID로서 구해서, 이 제3 원 타임 ID를 상기 서버에 대해서 송신하는 제2 송신 수단을 갖추는 것을 특징으로 하는 클라이언트. When the server judges that the server is legitimate, the function value of the one-way function taking the first random number, the second random number, and the shared key as arguments is obtained as the third one-time ID. And second transmitting means for transmitting a third one-time ID to the server. 서버와 클라이언트와에 의해 구성된 인증 시스템에서, 상기 서버 및 클라이언트는, 복수의 장치간 또는 어플리케이션간에 있어서의 인증에서 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서, 상기 인증을 하는 장치 또는 어플리케이션의 각각에서, 상기 인증이 필요한 소정의 통신 단위내에서 난수를 생성함과 함께, 이 난수와 소정의 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성해, 이 생성된 원 타임 ID를 이용해 클라이언트와의 사이에 서로 인증을 하도록 구성되고,In an authentication system constituted by a server and a client, the server and the client each use the identification information that can be used only once in authentication between a plurality of devices or applications, as a one-time ID, and each of the devices or applications that perform the authentication. Generates a random number in a predetermined communication unit requiring the authentication, obtains a function value of a one-way function that takes the random number and the predetermined shared key as arguments, and generates the one-time ID from the function value. Configured to authenticate each other with the client using this generated one-time ID, 상기 서버는, 상기 클라이언트와의 사이에 미리 공유화된 공유키를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID로 해서, 이 제1의 원 타임 ID와 상기 클라이언트로 생성된 제1의 난수를 상기 클라이언트로부터 수신하는 제1 수신 수단과,The server uses the first one-time ID and the first generated by the client as a first one-time ID as a function value of a one-way function having a shared key previously shared with the client as an argument. First receiving means for receiving a random number from the client, 제2의 난수를 생성함과 함께, 상기 제1의 난수와 상기 공유키를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID로서 구해서, 이 제2의 원 타임 ID와 상기 제2의 난수를 상기 클라이언트에 대해서 송신하는 송신 수단과,  While generating a second random number, a function value of a one-way function having the first random number and the shared key as an argument is obtained as a second one time ID, and the second one time ID and the second one are obtained. Transmitting means for transmitting a random number to the client; 상기 공유키, 상기 제1의 난수 및 상기 제2의 난수를 인수로 하는 일방향 함수의 함수값을 제3 원 타임 ID로 해서, 이 제3 원 타임 ID를 상기 클라이언트로부터 수신하는 제2 수신 수단과,Second receiving means for receiving the third one-time ID from the client using a function value of a one-way function having the shared key, the first random number, and the second random number as arguments; , 상기 제1의 난수, 상기 제2의 난수 및 상기 공유키에 근거해 상기 제3 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와 상기 클라이언트로부터 수신한 상기 제3 원 타임 ID와의 비교에 의해, 상기 클라이언트의 정당성을 판정하는 판정 수단을 갖추고, 또한,Calculating the third one-time ID based on the first random number, the second random number, and the shared key by operation, and comparing the result of this operation with the third one-time ID received from the client, Determination means for determining the validity of the client; 상기 클라이언트는, 제1의 난수를 생성함과 함께, 상기 서버와의 사이에 미리 공유화된 공유키를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID로서 구해서, 이 제1의 원 타임 ID와 상기 제1의 난수를 상기 서버에 대해서 송신하는 제1 송신 수단과,The client generates a first random number, obtains a function value of a one-way function having a shared key previously shared with the server as a first one-time ID, and obtains the first one-time. First transmitting means for transmitting an ID and said first random number to said server, 상기 제1의 난수와 상기 공유키를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID로 해서 이 제2의 원 타임 ID와, 상기 서버로 생성된 제2의 난수를 상기 서버로부터 수신하는 수신 수단과,The second one-time ID and the second random number generated by the server are received from the server using the first random number and a function value of a one-way function taking the shared key as arguments as the second one-time ID. Receiving means to say, 상기 제1의 난수 및 상기 공유키에 근거해 상기 제2의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와 상기 서버로부터 수신한 상기 제2의 원 타임 ID와의 비교에 의해, 상기 서버의 정당성을 판정하는 판정 수단과,Obtaining the second one-time ID based on the first random number and the shared key by operation, and validating the server by comparing the operation result with the second one-time ID received from the server. Judging means for judging; 상기 판정 수단에 의해 상기 서버가 정당하다라고 판정된 경우에, 상기 제1의 난수, 상기 제2의 난수 및 상기 공유키를 인수로 하는 일방향 함수의 함수값을 제3 원 타임 ID로서 구해서, 이 제3 원 타임 ID를 상기 서버에 대해서 송신하는 제2 송신 수단을 갖추는 것을 특징으로 하는 인증 시스템. When the server judges that the server is legitimate, the function value of the one-way function taking the first random number, the second random number, and the shared key as arguments is obtained as the third one-time ID. And second transmitting means for transmitting a third one-time ID to the server. 복수의 장치간 또는 어플리케이션간에 있어서의 인증에서 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 상기 인증을 하는 장치 또는 어플리케이션의 각각에서, 상기 인증이 필요한 소정의 통신 단위내에서 난수를 생성함과 함께, 이 난수와 소정의 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성해, 이 생성된 원 타임 ID를 이용해 클라이언트와의 사이에 서로 인증을 하는 서버에 있어서,A random number is generated within a predetermined communication unit requiring the authentication in each device or application that performs the authentication using identification information that can be used only once in authentication between a plurality of devices or between applications as the one-time ID. A server that obtains a function value of a one-way function that takes this random number and a predetermined shared key, generates the one-time ID from the function value, and uses the generated one-time ID to authenticate each other with the client. To 상기 클라이언트와의 사이에 미리 공유화된 공유키, 제1의 기억 난수 및 제2의 기억 난수를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID로 해서, 이 제1의 원 타임 ID를 상기 클라이언트로부터 수신함과 함께, 상기 클라이언트로 생성된 제1의 난수, 상기 클라이언트에 미리 설정된 클라이언트 ID, 해당 서버에 미리 설정된 서버 ID를 상기 공유키로 암호화한 제1의 암호화 데이터를 상기 클라이언트로부터 수신하는 수신 수단과,The first one-time ID is defined as a function value of a one-way function having a shared key, a first stored random number, and a second stored random number shared with the client as the first one-time ID. Receiving, from the client, the first random data generated by the client, the first encrypted data obtained by encrypting a first server ID set in the client, a server ID preset in the client, and a server ID preset in the server with the shared key. Sudan, 상기 제1의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와, 상기 클라이언트로부터 수신한 상기 제1의 원 타임 ID와의 조합에 의해, 상기 클라이언트를 식별해, 상기 클라이언트를 식별할 수 있을 경우에, 상기 공유키를 이용해 상기 제1의 암호화 데이터를 복호해, 이 복호한 데이터에 포함되는 상기 클라이언트 ID 및 상기 서버 ID에 근거해, 상기 클라이언트의 정당성을 판정하는 판정 수단과,When the first one-time ID is obtained by a calculation and the combination of the result of the calculation and the first one-time ID received from the client can identify the client and identify the client. Judging means for decoding said first encrypted data using said shared key and judging the legitimacy of said client based on said client ID and said server ID included in said decoded data; 상기 판정 수단이 상기 클라이언트를 정당하다라고 판정된 경우에, 제2의 난수를 생성함과 함께, 상기 제1의 난수, 상기 제2의 기억 난수 및 상기 공유키를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID로서 구해서, 상기 클라이언트 ID, 상기 서버 ID 및 상기 제2의 난수를 상기 공유키로 암호화한 제2의 암호화 데이터와, 상기 제2의 원 타임 ID를 상기 클라이언트에 대해서 송신하는 송신 수단과,When the determination means determines that the client is justified, a function value of a one-way function that generates a second random number and takes the first random number, the second stored random number, and the shared key as arguments; Is obtained as a second one-time ID, and the second encrypted data obtained by encrypting the client ID, the server ID, and the second random number with the shared key, and the second one-time ID are transmitted to the client. A transmission means, 상기 제1의 기억 난수를 상기 제1의 난수로, 상기 제2의 기억 난수를 상기 제2의 난수로 각각 치환하는 치환 수단을 갖추는 것을 특징으로 하는 서버. And a substitution means for replacing the first memory random number with the first random number and the second memory random number with the second random number, respectively. 복수의 장치간 또는 어플리케이션간에 있어서의 인증에서 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 상기 인증을 하는 장치 또는 어플리케이션의 각각에서, 상기 인증이 필요한 소정의 통신 단위내에서 난수를 생성함과 함께, 이 난수와 소정의 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성해, 이 생성된 원 타임 ID를 이용해 서버와의 사이에 서로 인증을 하는 클라이언트에 있어서,A random number is generated within a predetermined communication unit requiring the authentication in each device or application that performs the authentication using identification information that can be used only once in authentication between a plurality of devices or between applications as the one-time ID. A client that obtains a function value of a one-way function that takes this random number and a predetermined shared key, generates the one-time ID from the function value, and uses the generated one-time ID to authenticate each other with the server. To 제1의 난수를 생성함과 함께, 상기 서버와의 사이에 미리 공유화된 공유키, 제1의 기억 난수 및 제2의 기억 난수를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID로서 구해서, 해당 클라이언트에 미리 설정된 클라이언트 ID, 상기 서버에 미리 설정된 서버 ID 및 상기 제1의 난수를 상기 공유키로 암호화한 제1의 암호화 데이터와, 상기 제1의 원 타임 ID를 상기 서버에 대해서 송신하는 송신 수단과,  A function value of a one-way function that takes a shared key, a first stored random number, and a second stored random number pre-shared with the server while generating a first random number is used as the first one time ID. Obtaining first encrypted data obtained by encrypting a shared ID of the client ID, a server ID preset in the server, and the first random number with the shared key, and transmitting the first one-time ID to the server. A transmission means, 상기 제1의 난수, 상기 제2의 기억 난수 및 상기 공유키를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID로 해서, 이 제2의 원 타임 ID를 상기 서버로부터 수신함과 함께, 상기 서버로 생성된 제2의 난수, 상기 클라이언트 ID 및 상기 서버 ID를 상기 공유키로 암호화한 제2의 암호화 데이터를 상기 서버로부터 수신하는 수신 수단과,Receiving the second one-time ID from the server using the first random number, the second stored random number, and a function value of a one-way function having the shared key as arguments as the second one-time ID, Receiving means for receiving second encrypted data generated by the server, second encrypted data obtained by encrypting the client ID and the server ID with the shared key; 상기 제2의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와, 상기 서버로부터 수신한 상기 제2의 원 타임 ID와의 조합에 의해, 상기 서버를 식별해, 상기 서버를 식별할 수 있을 경우에, 상기 공유키를 이용해 상기 제2의 암호화 데이터를 복호해, 이 복호한 데이터에 포함되는 상기 서버 ID 및 상기 클라이언트 ID에 근거해, 상기 서버의 정당성을 판정하는 판정 수단과,When the second one-time ID is obtained by a calculation and the combination of the result of the calculation and the second one-time ID received from the server can identify the server and identify the server. Deciding means for decoding the second encrypted data using the shared key and determining the validity of the server based on the server ID and the client ID included in the decoded data; 상기 제1의 기억 난수를 상기 제1의 난수로, 상기 제2의 기억 난수를 상기 제2의 난수로 각각 치환하는 치환 수단을 갖추는 것을 특징으로 하는 클라이언트. And a substitution means for replacing the first memory random number with the first random number and the second memory random number with the second random number, respectively. 서버와 클라이언트와에 의해 구성된 인증 시스템에서, 상기 서버 및 클라이언트는, 복수의 장치간 또는 어플리케이션간에 있어서의 인증에서 1회만 사용 가능한 식별 정보를 원 타임 ID로 해서 상기 인증을 하는 장치 또는 어플리케이션의 각각에 두고, 상기 인증이 필요한 소정의 통신 단위내에서 난수를 생성함과 함께, 이 난수와 소정의 공유키를 인수로 하는 일방향 함수의 함수값을 구해서, 이 함수값으로부터 상기 원 타임 ID를 생성해, 이 생성된 원 타임 ID를 이용해 클라이언트와의 사이에 서로 인증을 하도록 구성되고,In an authentication system constituted by a server and a client, the server and the client may each be a device or application that performs the authentication using one-time ID as identification information that can be used only once in authentication between a plurality of devices or between applications. In addition, while generating a random number in a predetermined communication unit requiring the authentication, a function value of a one-way function that takes this random number and a predetermined shared key as an argument, and generates the one-time ID from the function value, Configured to authenticate each other with the client using this generated one-time ID, 상기 서버는, 상기 클라이언트와의 사이에 미리 공유화된 공유키, 제1의 기억 난수 및 제2의 기억 난수를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID로 해서, 이 제1의 원 타임 ID를 상기 클라이언트로부터 수신함과 함께, 상기 클라이언트로 생성된 제1의 난수, 상기 클라이언트에 미리 설정된 클라이언트 ID, 해당 서버에 미리 설정된 서버 ID를 상기 공유키로 암호화한 제1의 암호화 데이터를 상기 클라이언트로부터 수신하는 수신 수단과,The server uses the first one-time ID as a function value of a one-way function having a shared key, a first storage random number, and a second storage random number shared beforehand as the first one-time ID. The client receives first encrypted data obtained by receiving a one-time ID from the client and encrypting the first random number generated by the client, a client ID preset in the client, and a server ID preset in the server with the shared key. Receiving means for receiving from 상기 제1의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와, 상기 클라이언트로부터 수신한 상기 제1의 원 타임 ID와의 조합에 의해, 상기 클라이언트를 식별해, 상기 클라이언트를 식별할 수 있을 경우에, 상기 공유키를 이용해 상기 제1의 암호화 데이터를 복호해, 이 복호한 데이터에 포함되는 상기 클라이언트 ID 및 상기 서버 ID에 근거해, 상기 클라이언트의 정당성을 판정하는 판정 수단과When the first one-time ID is obtained by a calculation and the combination of the result of the calculation and the first one-time ID received from the client can identify the client and identify the client. Determination means for decrypting the first encrypted data using the shared key and determining the validity of the client based on the client ID and the server ID included in the decrypted data; 상기 판정 수단이 상기 클라이언트를 정당하다라고 판정된 경우에, 제2의 난수를 생성함과 함께, 상기 제1의 난수, 상기 제2의 기억 난수 및 상기 공유키를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID로서 구해서, 상기 클라이언트 ID, 상기 서버 ID 및 상기 제2의 난수를 상기 공유키로 암호화한 제2의 암호화 데이터와, 상기 제2의 원 타임 ID를 상기 클라이언트에 대해서 송신하는 송신 수단과,When the determination means determines that the client is justified, a function value of a one-way function that generates a second random number and takes the first random number, the second stored random number, and the shared key as arguments; Is obtained as a second one-time ID, and the second encrypted data obtained by encrypting the client ID, the server ID, and the second random number with the shared key, and the second one-time ID are transmitted to the client. A transmission means, 상기 제1의 기억 난수를 상기 제1의 난수로, 상기 제2의 기억 난수를 상기 제2의 난수로 각각 치환하는 치환 수단을 갖추고, 또한,Substituting means for substituting said 1st memory random number into a said 1st random number, and said 2nd memory random number into a said 2nd random number, Moreover, 상기 클라이언트는, 제1의 난수를 생성함과 함께, 상기 서버와의 사이에 미리 공유화된 공유키, 제1의 기억 난수 및 제2의 기억 난수를 인수로 하는 일방향 함수의 함수값을 제1의 원 타임 ID로서 구해서, 해당 클라이언트에 미리 설정된 클라이언트 ID, 상기 서버에 미리 설정된 서버 ID 및 상기 제1의 난수를 상기 공유키로 암호화한 제1의 암호화 데이터와, 상기 제1의 원 타임 ID를 상기 서버에 대해서 송신하는 송신 수단과,The client generates a first random number and uses a function value of a one-way function that takes a shared key, a first stored random number, and a second stored random number pre-shared with the server as a first value. The first encrypted data obtained by obtaining a one-time ID, a client ID set in advance in the client, a server ID set in the server, and the first random number with the shared key, and the first one-time ID in the server. Transmitting means for transmitting to 상기 제1의 난수, 상기 제2의 기억 난수 및 상기 공유키를 인수로 하는 일방향 함수의 함수값을 제2의 원 타임 ID로 해서, 이 제2의 원 타임 ID를 상기 서버로부터 수신함과 함께, 상기 서버로 생성된 제2의 난수, 상기 클라이언트 ID 및 상기 서버 ID를 상기 공유키로 암호화한 제2의 암호화 데이터를 상기 서버로부터 수신하는 수신 수단과,Receiving the second one-time ID from the server using the first random number, the second stored random number, and a function value of a one-way function having the shared key as arguments as the second one-time ID, Receiving means for receiving second encrypted data generated by the server, second encrypted data obtained by encrypting the client ID and the server ID with the shared key; 상기 제2의 원 타임 ID를 연산에 의해 구해서, 이 연산 결과와, 상기 서버로부터 수신한 상기 제2의 원 타임 ID와의 조합에 의해, 상기 서버를 식별해, 상기 서버를 식별할 수 있을 경우에, 상기 공유키를 이용해 상기 제2의 암호화 데이터를 복호해, 이 복호한 데이터에 포함되는 상기 서버 ID 및 상기 클라이언트 ID에 근거해, 상기 서버의 정당성을 판정하는 판정 수단과,When the second one-time ID is obtained by a calculation and the combination of the result of the calculation and the second one-time ID received from the server can identify the server and identify the server. Deciding means for decoding the second encrypted data using the shared key and determining the validity of the server based on the server ID and the client ID included in the decoded data; 상기 제1의 기억 난수를 상기 제1의 난수로, 상기 제2의 기억 난수를 상기 제2의 난수로 각각 치환하는 치환 수단을 갖추는 것을 특징으로 하는 인증 시스템. And a substituting means for replacing the first stored random number with the first random number and the second stored random number with the second random number, respectively. 제49항에 있어서, 상기 서버 및 상기 클라이언트는, 상기 제1의 기억 난수를 상기 제1의 난수로, 상기 제2의 기억 난수를 상기 제2의 난수로 각각 치환한 다음에, 이들 제1의 기억 난수 및 제2의 기억 난수에 근거해 상기 공유키를 생성하는 것으로써, 해당 공유키를 변화시키게 되어 있는 것을 특징으로 하는 인증 시스템.The server and the client according to claim 49, wherein the server and the client respectively replace the first memory random number with the first random number and the second memory random number with the second random number. And generating the shared key based on the memory random number and the second memory random number, thereby changing the shared key.
KR1020047020653A 2003-03-14 2003-06-19 Inter-authentication method and device KR20050117478A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2003-00069375 2003-03-14
JP2003069375A JP2004282295A (en) 2003-03-14 2003-03-14 One-time id generating method, authentication method, authentication system, server, client, and program

Publications (1)

Publication Number Publication Date
KR20050117478A true KR20050117478A (en) 2005-12-14

Family

ID=33286418

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020047020653A KR20050117478A (en) 2003-03-14 2003-06-19 Inter-authentication method and device

Country Status (2)

Country Link
JP (1) JP2004282295A (en)
KR (1) KR20050117478A (en)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013009120A2 (en) * 2011-07-13 2013-01-17 (주)시루정보 Mobile communication terminal and apparatus and method for authenticating applications
KR101272027B1 (en) * 2011-08-18 2013-06-07 정지혜 System for hacking prevention and control method thereof, server for supporting hacking prevention comprised in the system and control method thereof
KR101289028B1 (en) * 2011-07-13 2013-08-23 (주)시루정보 Mobile communication terminal, device and method for application certification
WO2016131056A1 (en) * 2015-02-13 2016-08-18 Visa International Service Association Confidential communication management
KR20170077003A (en) * 2015-12-27 2017-07-05 전자부품연구원 Light Encryption/Decryption Method and System using a Symmetric Cryptographic Algorithm
WO2019045358A1 (en) * 2017-08-31 2019-03-07 삼성전자주식회사 Home appliance and control method therefor
WO2020214001A1 (en) * 2019-04-19 2020-10-22 주식회사 코인플러그 Method of using service by using pki-based one-time id, and user terminal using same
KR20200123029A (en) * 2019-04-19 2020-10-28 주식회사 코인플러그 Method for using service with one time id based on pki, and user terminal using the same
WO2022059906A1 (en) * 2020-09-21 2022-03-24 주식회사 엘지에너지솔루션 Mutual authentication method and authentication device for providing method

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006040820A1 (en) * 2004-10-14 2006-04-20 Mitsubishi Denki Kabushiki Kaisha Password creating device, ic card, and authenticating device
JP4713955B2 (en) 2005-06-13 2011-06-29 株式会社日立製作所 Authentication system, wireless communication terminal and wireless base station
US8621577B2 (en) 2005-08-19 2013-12-31 Samsung Electronics Co., Ltd. Method for performing multiple pre-shared key based authentication at once and system for executing the method
JP4714530B2 (en) * 2005-08-29 2011-06-29 日本電信電話株式会社 iSCSI automatic connection method and system
JP4748792B2 (en) * 2006-02-02 2011-08-17 キヤノン株式会社 Information processing apparatus and control method thereof
JP5205720B2 (en) * 2006-05-12 2013-06-05 ソニー株式会社 COMMUNICATION SYSTEM AND COMMUNICATION METHOD, DEVICE, INFORMATION PROCESSING DEVICE, AND PROGRAM
JP2007317091A (en) * 2006-05-29 2007-12-06 Nippon Telegr & Teleph Corp <Ntt> One time password generating system, one time password generating method, one time password generating device, control server, and control method thereof
KR100827187B1 (en) 2006-10-11 2008-05-02 엔에이치엔(주) Security authentication system and method
JP5009012B2 (en) * 2007-03-16 2012-08-22 Kddi株式会社 Authentication system
WO2008117445A1 (en) 2007-03-27 2008-10-02 Fujitsu Limited Information transfer control apparatus and information transfer control method for transferring contents
JP2008282212A (en) * 2007-05-10 2008-11-20 Mitsubishi Electric Corp Authentication device and authentication system
JP4995667B2 (en) 2007-08-28 2012-08-08 富士通株式会社 Information processing apparatus, server apparatus, information processing program, and method
JP4993122B2 (en) * 2008-01-23 2012-08-08 大日本印刷株式会社 Platform integrity verification system and method
BRPI1010602A2 (en) * 2009-05-13 2016-03-15 Daniel Wayne Engels system and metood to securely identify and authenticate devices in a symmetric encryption system
WO2013175640A1 (en) * 2012-05-25 2013-11-28 株式会社東芝 Host device and authentication method for host device
WO2014033916A1 (en) * 2012-08-31 2014-03-06 株式会社安川電機 Integrated circuit system, motor control device, and method for preventing unauthorized use of integrated circuit
JP6187251B2 (en) * 2013-12-27 2017-08-30 富士通株式会社 Data communication method and data communication apparatus
WO2017029708A1 (en) * 2015-08-18 2017-02-23 株式会社Pips Personal authentication system
JP6869104B2 (en) * 2017-05-22 2021-05-12 ルネサスエレクトロニクス株式会社 Authentication method
JP7412691B2 (en) * 2021-08-13 2024-01-15 株式会社ギガ・システム Authentication systems, authentication modules, and certification programs
JP7496177B1 (en) 2024-01-17 2024-06-06 Sinumy株式会社 Authenticated device, authenticating device, authentication request output method, authentication method, and program

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013009120A2 (en) * 2011-07-13 2013-01-17 (주)시루정보 Mobile communication terminal and apparatus and method for authenticating applications
WO2013009120A3 (en) * 2011-07-13 2013-03-14 (주)시루정보 Mobile communication terminal and apparatus and method for authenticating applications
KR101289028B1 (en) * 2011-07-13 2013-08-23 (주)시루정보 Mobile communication terminal, device and method for application certification
KR101272027B1 (en) * 2011-08-18 2013-06-07 정지혜 System for hacking prevention and control method thereof, server for supporting hacking prevention comprised in the system and control method thereof
US9942034B2 (en) 2015-02-13 2018-04-10 Visa International Service Association Confidential communication management
WO2016131056A1 (en) * 2015-02-13 2016-08-18 Visa International Service Association Confidential communication management
US10218502B2 (en) 2015-02-13 2019-02-26 Visa International Service Association Confidential communication management
US10652015B2 (en) 2015-02-13 2020-05-12 Visa International Service Association Confidential communication management
KR20170077003A (en) * 2015-12-27 2017-07-05 전자부품연구원 Light Encryption/Decryption Method and System using a Symmetric Cryptographic Algorithm
WO2019045358A1 (en) * 2017-08-31 2019-03-07 삼성전자주식회사 Home appliance and control method therefor
WO2020214001A1 (en) * 2019-04-19 2020-10-22 주식회사 코인플러그 Method of using service by using pki-based one-time id, and user terminal using same
KR20200123029A (en) * 2019-04-19 2020-10-28 주식회사 코인플러그 Method for using service with one time id based on pki, and user terminal using the same
WO2022059906A1 (en) * 2020-09-21 2022-03-24 주식회사 엘지에너지솔루션 Mutual authentication method and authentication device for providing method

Also Published As

Publication number Publication date
JP2004282295A (en) 2004-10-07

Similar Documents

Publication Publication Date Title
KR20050117478A (en) Inter-authentication method and device
EP1526677A1 (en) Inter-authentication method and device
Ford et al. Server-assisted generation of a strong secret from a password
US7886345B2 (en) Password-protection module
CA2621147C (en) Method of bootstrapping an authenticated data session configuration
Cervesato et al. Breaking and fixing public-key Kerberos
US6912653B2 (en) Authenticating communications
CA2446304C (en) Use and generation of a session key in a secure socket layer connection
US6901512B2 (en) Centralized cryptographic key administration scheme for enabling secure context-free application operation
US20090055642A1 (en) Method, system and computer program for protecting user credentials against security attacks
US20020071566A1 (en) Computer system employing a split-secret cryptographic key linked to a password-based cryptographic key security scheme
US20050157880A1 (en) Computer system having an autonomous process for centralized cryptographic key administration
US20020141593A1 (en) Multiple cryptographic key linking scheme on a computer system
JP2003536320A (en) System, method and software for remote password authentication using multiple servers
US20020071565A1 (en) Software process pre-authorization scheme for applications on a computer system
WO2005125084A1 (en) Method, system and computer program for protecting user credentials against security attacks
CN113626802B (en) Login verification system and method for equipment password
JP2004023662A (en) Mutual authentication method
US20020071563A1 (en) Method and apparatus for cryptographic key rollover during operation
JP4874007B2 (en) Authentication system, server computer, program, and recording medium
Gajek et al. Provably secure browser-based user-aware mutual authentication over TLS
Diaz et al. On securing online registration protocols: Formal verification of a new proposal
Patel et al. Modeling and analysis of internet key exchange protocolv2 and a proposal for its variant
Goodrich et al. Notarized federated ID management and authentication
Chen et al. Overview of security protocol analysis

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application