KR100642745B1 - ID-based key exchange method and apparatus - Google Patents
ID-based key exchange method and apparatus Download PDFInfo
- Publication number
- KR100642745B1 KR100642745B1 KR1020050093485A KR20050093485A KR100642745B1 KR 100642745 B1 KR100642745 B1 KR 100642745B1 KR 1020050093485 A KR1020050093485 A KR 1020050093485A KR 20050093485 A KR20050093485 A KR 20050093485A KR 100642745 B1 KR100642745 B1 KR 100642745B1
- Authority
- KR
- South Korea
- Prior art keywords
- client
- server
- generating
- value
- key
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 230000005540 biological transmission Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 230000008901 benefit Effects 0.000 description 7
- 239000000284 extract Substances 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 101001019450 Haloferax volcanii (strain ATCC 29605 / DSM 3757 / JCM 8879 / NBRC 14742 / NCIMB 2012 / VKM B-1768 / DS2) Isocitrate dehydrogenase [NADP] Proteins 0.000 description 3
- 238000005242 forging Methods 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000010248 power generation Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/083—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3013—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
ID-기반의 키교환 방법 및 장치가 개시된다. 그 키교환 방법은 (a) 클라이언트가 IDu, X 및 Y를 서버에게 전달하는 단계; (b) 서버는 상기 IDu, X 및 Y를 받아 클라이언트를 인증하고, 인증이 되면 z 및 tv를 생성하여 클라이언트에게 전달하고 세션키(sk)를 생성하는 단계; (c) 클라이언트는 서버로부터 z, tv를 받아 서버를 인증하고, 유효한 서버로 인증되면 상기 서버의 세션키와 동일한 세션키를 생성하는 단계를 포함함을 특징으로 한다.An ID-based key exchange method and apparatus are disclosed. The key exchange method comprises the steps of (a) the client passing the ID u , X and Y to the server; (b) the server receiving the IDs u , X and Y to authenticate the client, and if authenticated, generate the z and t v to the client and generate a session key (sk); (c) the client receives z, t v from the server and authenticates the server, and if the client is authenticated as a valid server, generating a session key identical to the session key of the server.
본 발명에 의하면, 컴퓨팅 파워가 다른 두 사용자(서버, 클라이언트) 사이의 효율적인 ID-기반의 인증된 키 교환을 할 수 있다. 특히 클라이언트 측의 계산량을 줄임으로써 낮은 파워를 가진 모바일 장치에 적합하다. According to the present invention, an efficient ID-based authenticated key exchange can be achieved between two users (servers and clients) having different computing powers. It is especially suitable for mobile devices with low power by reducing the amount of computation on the client side.
Description
도 1은 본 발명에 의한 ID-기반 키교환 장치의 구성을 블록도로 도시한 것이다.1 is a block diagram showing the configuration of an ID-based key exchange device according to the present invention.
도 2는 X&Y의 생성부(100)의 세부적인 구성을 블록도로 도시한 것이다.2 is a block diagram illustrating a detailed configuration of the
도 3은 서버 인증부(120)의 세부 구성을 블록도로 도시한 것이다.3 is a block diagram illustrating a detailed configuration of the
도 4는 z&tv생성부(130)의 세부 구성을 블록도로 도시한 것이다.4 is a block diagram illustrating a detailed configuration of the z & t v generator 130.
도 5는 클라이언트 인증부(160)의 세부적인 구성을 블록도로 도시한 것이다.5 is a block diagram illustrating a detailed configuration of the
도 6은 본 발명에 의한 ID-기반 키교환 방법을 설명하기 위한 흐름도를 도시한 것이다.6 is a flowchart illustrating an ID-based key exchange method according to the present invention.
본 발명은 키교환에 관한 것으로서, 특히 ID-기반 키교환 방법 및 장치에 관한 것이다.TECHNICAL FIELD The present invention relates to key exchange, and in particular, to a method and apparatus for ID-based key exchange.
현대의 많은 협업과 분산 환경에서 인증된 키 교환은 매우 중요한 문제 가운 데 하나이다. 키 교환 프로토콜은 분배된 키를 소유한 사용자들과의 비밀 통신을 목적으로 한다. 그리고 이러한 키 교환 프로토콜에 어떤 의도된 사용자들에 대한 상호 인증을 제공하는 키 교환 프로토콜을 인증된 키 교환(AKA) 프로토콜이라 한다. 다양한 인증 기법들 중 전형적인 인증서 기반의 공개키 기반 구조(Public Key Infrastructure, PKI)는 인증하고자 하는 상대방의 공개키에 대하여 신뢰 기관으로부터 발급된 인증서가 필요하다. In many modern collaborations and distributed environments, authenticated key exchange is one of the most important issues. The key exchange protocol is intended for secret communication with users who own a distributed key. And a key exchange protocol that provides mutual authentication for any intended users to this key exchange protocol is called an authenticated key exchange (AKA) protocol. Among various authentication schemes, a typical certificate-based public key infrastructure (PKI) requires a certificate issued by a trust authority for the public key of the other party to be authenticated.
반면에 ID-기반 시스템은 단지 사용자의 메일 주소와 같은 평이한 공개 정보로 구성된 공개 확인자(Identity, ID)만 알면 된다. 따라서 인증서 기반의 PKI에 비해 ID-기반의 인증 시스템이 보다 효율적이고 간단한 인증방식을 제공한다.ID-based systems, on the other hand, only need to know a public identity (ID) consisting of plain public information such as the user's e-mail address. Therefore, ID-based authentication system provides more efficient and simple authentication method than certificate-based PKI.
최근 무선 환경이 급속도로 발달함에 따라 이에 적당한 키 교환 프로토콜이 요구되고 있다. 특히 서버와 저전력 모바일과 같은 불균형 컴퓨팅 환경에서의 안전한 채널의 형성은 안전한 통신을 위하여 꼭 필요하다. 그러나 불행하게도 대부분의 ID-기반의 AKA 프로토콜은 연산속도와 계산량의 복잡함 때문에 저 전력 모바일 장치와 같은 자원 제한적인 곳에 적용하기엔 적절하지 않다. Recently, as the wireless environment develops rapidly, an appropriate key exchange protocol is required. In particular, the formation of a secure channel in an unbalanced computing environment such as a server and a low power mobile is essential for secure communication. Unfortunately, most ID-based AKA protocols are not suitable for resource constrained applications, such as low power mobile devices, due to the complexity of computational speed and computational complexity.
본 발명이 이루고자 하는 기술적 과제는 클라이언트 측의 계산량이 적어 저 전력 모바일 장치에도 사용할 수 있으며, 하나의 서버를 중심으로 여러 클라이언트가 안전한 채널을 형성할 수 있는, ID-기반 키교환 방법 및 장치를 제공하는 것이다.SUMMARY OF THE INVENTION The present invention provides a method and apparatus for ID-based key exchange that can be used for low power mobile devices due to a small amount of calculation on the client side, and enables multiple clients to form a secure channel around a single server. It is.
상술한 기술적 과제를 해결하기 위한 본 발명에 의한 ID-기반 키 교환 방법은, 위수가 소수 q인 gap DiffieHellman 그룹의 생성자를 P, 키생성센터(KGC)의 마스터 비밀키를 s, 상기 s와 P의 곱을 Ppub(= sP), 상기 P의 pairing 연산값을 g(=e(P,P)), 클라이언트 및 서버의 ID를 각각 IDu 및 IDv, 키생성센터로부터 받은 클라이언트 및 서버의 비밀키를 각각 Su 및 Sv 라 할 때, (a) 클라이언트가 IDu, X 및 Y를 서버에게 전달하는 단계; (b) 서버는 상기 IDu, X 및 Y를 받아 클라이언트를 인증하고, 인증이 되면 z 및 tv를 생성하여 클라이언트에게 전달하고 세션키(sk)를 생성하는 단계; (c) 클라이언트는 서버로부터 z, tv를 받아 서버를 인증하고, 유효한 서버로 인증되면 상기 서버의 세션키와 동일한 세션키를 생성하는 단계를 포함함을 특징으로 한다. 상기 (a)단계의 X 및 Y의 생성은 위수가 q인 곱셈그룹 Zq*로부터 임의의 값 a를 선택하는 단계; 상기 IDV 의 해쉬함수 값 qv(= H(IDV))를 생성하고, 상기 Ppub 와 qvP를 합하여 Qv(= Ppub + qvP)를 생성하고, 상기 g의 a 멱승을 취하여 tu(= ga)를 생성하고, 상기 tu의 해쉬함수 값 h(=H1(tu))를 생성하는 단계; 및 상기 a와 Qv의 곱을 계산하여 X(=aQV)를 생성하고, 상기 a와 h의 합에 SU 를 곱하여 Y(=(a+h)SU)를 생성하는 단계를 포함하여 이루어진다.In order to solve the above technical problem, an ID-based key exchange method according to the present invention includes a generator of a gap DiffieHellman group whose number is a prime q, a master secret key of a key generation center (KGC), and s and P. The product of P pub (= sP), the pairing operation value of P (g (= e (P, P)), the IDs u and ID v of the client and server, and the secrets of the client and server When the keys are S u and S v , respectively, (a) the client forwards the ID u , X and Y to the server; (b) the server receiving the IDs u , X and Y to authenticate the client, and if authenticated, generate the z and t v to be delivered to the client and generate a session key (sk); (c) the client receives z, t v from the server and authenticates the server, and if the client is authenticated as a valid server, generating a session key identical to the session key of the server. Generating X and Y in step (a) comprises selecting an arbitrary value a from multiplication group Zq * having a degree q; Generating a hash function value q v (= H (ID V )) of the ID V and generating a Q v (= P pub + q v P) combined for the P pub and q v P, and the g a exponentiation a taking step of generating a t u (= g a) and generating a hash function value of the t u h (= h 1 ( t u)); And comprises the step of generating the X (= aQ V) by calculating a product of the a and Q v and generates a Y (= (a + h) S U) is multiplied by S U to the sum of the a and h .
상기 (b)단계의 클라이언트 인증은, 상기 IDU 의 해쉬함수 값 qu(= H(IDU))를 생성하고, 상기 Ppub 를 qu와 P의 곱(quP)과 합하여 QU(= Ppub + quP)를 생성하고, 클라이언트로부터 받은 X와 SV의 pairing 연산하여 tu(= e(X, SV))를 생성하고, 클라이언트로부터 받은 Y와 상기 QU 를 pairing 연산하여 c(= e(Y, QU))를 생성하는 단계; 상기 tu 의 해쉬함수 값 h(=H1(tu)을 생성하여, 상기 tu와 g의 h 멱승(gh)을 곱한 값(tugh)을 생성하는 단계; 및 상기 c = tugh를 만족하면 유효한 클라이언트로 인증하는 단계를 포함하여 이루어진다. 상기 (b)단계의 tv는, 서버가 위수가 q인 곱셈그룹 Zq*로부터 임의로 선택함에 의해 생성되며, 상기 (b)단계의 z 및 세션키(sk)의 생성은, 상기 클라이언트가 유효한 클라이언트로 인증되면, z = H2(tu, tv, X, Y, IDu, IDv), sk = H3(tu, tv, X, Y, IDu, IDv)에 의해 이루어진다. 상기 (c)단계의 서버 인증은, IDU, IDV, 클라이언트가 생성한 tu, X, Y, 상기 서버로부터 받은 tv를 해쉬함수한 값 z'(= H2(tu,tv,X,Y,IDU, IDV)를 생성하는 단계; 및 상기 z'가 z와 일치(z'= z)하는지 체크하는 단계를 포함하여 이루어진다. 상기 (c)단계의 세션키(sk) 생성은 상기 서버가 유효한 서버로 인증되면, sk = H3(tu, tv, X, Y, IDu, IDv)에 의해 이루어진다.Client authentication of the (b) step, produce a hash function value of the ID U q u (= H ( ID U)) , and the combined the P pub the product of q u and P (q u P) Q U Generate (= P pub + q u P), generate t u (= e (X, S V )) by pairing X and S V received from the client, and pair Y and Q U received from the client. Producing c (= e (Y, Q U )); A step of generating a hash function value of the t u h (= H 1 ( t u), generating the t u and g of h exponentiation (g h) the product of a value (t u g h); and wherein c = and if t u g h is satisfied, authenticating to a valid client, wherein t v in step (b) is generated by the server randomly selecting from the multiplication group Zq * , where the rank is q, and (b) The generation of z and the session key (sk) of step is that if the client is authenticated as a valid client, z = H 2 (t u , t v , X, Y, ID u , ID v ), sk = H 3 (t u , t v , X, Y, ID u , and ID v ) The server authentication in step (c) is performed by ID U , ID V , client generated t u , X, Y and the server. t v a hash function, the value of z; that '(= H 2 (t u , t v, to produce the X, Y, ID u, ID v) , and the z' are z and match (z '= z) And checking the session key in step (c). If you are authenticated as a valid server, then sk = H 3 (t u , t v , X, Y, ID u , ID v ).
상기 (b)단계의 클라이언트 인증에서 e(Y, QU)이 tugh와 동일한 값이 아니면 클라이언트 인증 실패 메시지를 클라이언트에게 전송함이 바람직하다. 상기 (c)단계의 서버 인증에서 z 와 z' 이 동일한 값이 아니면 서버 인증 실패 메시지를 서버에게 전송함이 바람직하다.In the client authentication of step (b), if e (Y, Q U ) is not equal to t u g h , it is preferable to transmit a client authentication failure message to the client. In the server authentication of step (c), if z and z 'are not the same value, it is preferable to transmit a server authentication failure message to the server.
상술한 기술적 과제를 해결하기 위한 본 발명에 의한 ID-기반 키교환 장치는, 위수가 q인 덧셈그룹(G1)의 생성자를 P, 키생성센터(KGC)의 마스터 비밀키를 s, 상기 s와 P의 곱을 Ppub(= sP), 상기 P의 pairing 연산값을 g(=e(P,P)), 클라이언트 및 서버의 ID를 각각 IDu 및 IDv, 키생성센터로부터 받은 클라이언트 및 서버의 비밀키를 각각 Su 및 Sv 라 할 때, 클라이언트와 서버에 설치되며, X 값 및 Y 값을 생성하는 X&Y 생성부; 클라이언트 측에 설치되며, 상기 IDu, X 및 Y를 서버로 전송하는 클라이언트전송부; 클라이언트에 설치되며, 서버로부터 z, tv를 받아 서버를 인증하는 클라이언트 인증부; 유효한 서버로 인증되면 상기 서버의 세션키와 동일한 세션키를 생성하는 클라이언트세션키 생성부; 서버에 설치되며, 상기 IDu, X 및 Y를 받아 클라이언트를 인증하는 서버 인증부; 서버에 설치되며, 클라이언트가 유효한 크라이언트로 인증되면 z 및 tv를 생성하는 z&tv 생성부; 상기 z 및 tv를 클라이언트로 전송하는 서버전송부; 및 서버에 설치되며, 클라이언트가 유효한 클라이언트로 인증되면 세션키(sk)를 생성하는 서버 세션키 생성부를 포함함을 특징으로 한다.In order to solve the above technical problem, an ID-based key exchange device according to the present invention includes a generator of an addition group G1 having a rank of q, a master secret key of a key generation center KGC, and s. The product of P is Ppub (= sP), the pairing operation value of P is g (= e (P, P)), the IDs u and ID v of the client and server, respectively An X & Y generation unit installed in the client and the server when the keys are S u and S v , respectively, and generate X and Y values; A client transmitter installed on a client side and transmitting the ID u , X and Y to a server; A client authentication unit installed in the client and receiving z and t v from the server to authenticate the server; A client session key generation unit generating a session key identical to the session key of the server when authenticated with a valid server; A server authentication unit installed in a server and receiving the ID u , X and Y to authenticate a client; Z & t v generation unit, installed on the server and generating z and t v if the client is authenticated as a valid client; A server transmitter for transmitting the z and t v to a client; And a server session key generator that is installed in the server and generates a session key sk when the client is authenticated as a valid client.
상기 X&Y의 생성부는 위수가 q인 곱셈그룹 Zq*로부터 임의의 값 a를 선택하는 a 선택부; 상기 IDV 의 해쉬함수 값 qv(= H(IDV))를 생성하고, 상기 Ppub 와 qvP를 합하여 Qv(= Ppub + qvP)를 생성하고, 상기 g의 a 멱승을 취하여 tu(= ga)를 생성하고, 상기 tu의 해쉬함수 값 h(=H1(tu))를 생성하는 매개값생성부; 상기 a와 Qv의 곱을 계산하여 X(=aQV)를 생성하는 X생성부; 및 상기 a와 h의 합에 SU 를 곱하여 Y(=(a+h)SU)를 생성하는 Y생성부를 포함하여 이루어진다.The generation unit of X & Y includes: a selection unit for selecting an arbitrary value a from multiplication group Zq * having a rank q; Generating a hash function value q v (= H (ID V )) of the ID V, and the combined the P pub and q v P generate Qv (= P pub + q v P), and the g to a exponentiation taking t u (= g a) generating and parameter value generator generating a hash function value of the t u h (= h 1 ( t u)) a; An X generator for generating X (= aQ V ) by calculating a product of a and Q v ; And a Y generator that generates Y (= (a + h) S U ) by multiplying S U by the sum of a and h.
상기 클라이언트 인증부는, IDU, IDV, 클라이언트가 생성한 tu, X, Y, 상기 서버로부터 받은 tv를 해쉬함수한 값 z'(= H2(tu,tv,X,Y,IDU, IDV)를 생성하는 z'생성부 및 상기 z'가 상기 z와 일치(z'= z)하는지 체크하여 서버를 인증하는 z'인증부를 포함한다. 상기 클라이언트 세션키 생성부는, 상기 서버가 유효한 서버로 인증되면, tu, tv, X, Y, IDu, IDv의 해쉬함수 값(sk = H3(tu, tv, X, Y, IDu, IDv))을 생성한다. 서버 인증부는 상기 IDU 의 해쉬함수 값 qu(= H(IDU))를 생성하고, 상기 Ppub 를 qu와 P의 곱(quP)과 합하여 QU(= Ppub + quP)를 생성하고, 클라이언트로부터 받은 X와 SV의 pairing 연산하여 tu(= e(X, SV))를 생성하고, 클라이언트로부터 받은 Y와 상기 QU 를 pairing 연산하여 c(= e(Y, QU))를 생성하는 c생성부; 상기 tu 의 해쉬함수 값 h(=H1(tu))을 생성하여, 상기 tu와 g의 h 멱승(gh)을 곱한 값(tugh)을 생성하는 tugh생성부; 및 상기 c와 상기 tugh를 비교하여 그 값이 동일하면 유효한 클라이언트로 인증하는 c 인증부를 포함하여 이루어진다.The client authentication unit has a hash function of ID U , ID V , client generated t u , X, Y, and t v received from the server, z '(= H 2 (t u , t v , X, Y, Z 'generation unit for generating ID U and ID V ) and z' authentication unit for authenticating the server by checking whether z 'matches z (z' = z). If the server is authenticated as a valid server, the hash function values of t u , t v , X, Y, ID u , and ID v (sk = H 3 (t u , t v , X, Y, ID u , ID v )) to generate the server authentication unit generates a hash functional value of the ID U q u (= H ( ID U)) , and the product of the Ppub q u and P (q u P) and the combined Q U (= Ppub + q u P), pairing operation of X and S V received from the client to generate t u (= e (X, S V )), and pairing operation of Y and Q U received from the client to c (= to produce a hash function value of the t u h (= h 1 ( t u)); e (Y, Q U)) c generator for generating , Wherein t u and g of h exponentiation (g h) the product of a value (t u g h) t u g h and generates a; Compare and the c and the t u g h if the value is the same valid It includes a c authentication unit for authenticating with the client.
상기 z&tv생성부는, 서버가 위수가 q인 곱셈그룹 Zq*로부터 임의로 tv를 선택하는 tv선택부; 및 상기 클라이언트가 유효한 클라이언트로 인증되면, tu, tv, X, Y, IDu, IDv의 해쉬함수 값 z(= H2(tu, tv, X, Y, IDu, IDv))를 생성하는 z생성부를 포함한다. 상기 서버세션키 생성부는 상기 클라이언트가 유효한 클라이언트로 인증되면, tu, tv, X, Y, IDu, IDv를 해쉬함수한 값 sk(= H3(tu, tv, X, Y, IDu, IDv))를 생성한다.The z & t v generation unit includes: a t v selection unit for selecting at random a t v from a multiplication group Zq * having a rank q; And if the client is authenticated as a valid client, t u, t v, X , Y, ID u, ID v hash function value of z (= H 2 (t u , t v, X, Y, ID u, ID v Z generation unit generating)). The server session key generation unit hashes t u , t v , X, Y, ID u , and ID v when the client is authenticated as a valid client. Sk (= H 3 (t u , t v , X, Y , ID u , ID v )).
상기 클라이언트 인증부에서 e(Y, QU)이 tugh와 동일한 값이 아니면 클라이언트 인증 실패 메시지를 클라이언트에게 전송함이 바람직하다. 상기 서버 인증부에서 z 와 z' 이 동일한 값이 아니면 서버 인증 실패 메시지를 서버에게 전송함이 바람직하다.If e (Y, Q U ) is not equal to t u g h in the client authentication unit, it is preferable to transmit a client authentication failure message to the client. If z and z 'are not the same value, the server authentication unit preferably transmits a server authentication failure message to the server.
그리고 상기 기재된 발명을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.A computer readable recording medium having recorded thereon a program for executing the invention described above is provided.
이하, 첨부된 도면을 참조하여 본 발명에 의한 ID-기반 키교환 방법 및 장치 를 상세히 설명하기로 한다.Hereinafter, a method and apparatus for ID-based key exchange according to the present invention will be described in detail with reference to the accompanying drawings.
먼저, Bilinear Maps과 암호학적 가정들을 설명하기로 한다. 본 발명에서 G1 을 위수가 소수q인 덧셈 연산 군이라 하고, G2를 같은 위수 q를 갖는 곱셈 연산 군이라 하자. 그리고 P는 G1의 생성자이다. 이 때 G1,G2에서의 이산 대수 문제(DLP)는 어렵다고 가정한다. 아래와 같은 조건을 만족하는 함수 e : G1 x G1 -> G2를 admissible bilinear map 이라 한다.First, Bilinear Maps and cryptographic assumptions are explained. In the present invention, let G 1 be an addition operation group having a decimal number q and G 2 be a multiplication operation group having the same rank q. And P is the constructor of G 1 . In this case, it is assumed that the discrete logarithm problem (DLP) in G 1 and G 2 is difficult. The function e: G 1 x G 1- > G 2 , which satisfies the following conditions, is called an admissible bilinear map.
Bilinear : 모든 P,Q ∈ G1 이고 a,b ∈ Zq* 에 대하여 e(aP, bP) = e(P,P)ab Bilinear: e (aP, bP) = e (P, P) ab for all P, Q ∈ G 1 and a, b ∈ Zq *
Non-degenerate : e(P,P)≠1을 만족하는 P ∈ G1 가 존재한다. Non-degenerate: P ∈ G 1 satisfying e (P, P) ≠ 1 Is present.
Computable : 모든 P,Q ∈ G1에 대하여 e(P,P)을 계산할 수 있는 효율적인 알고리즘이 존재한다. Computable: There is an efficient algorithm that can calculate e (P, P) for all P, Q ∈ G 1 .
Computational Diffie - Hellman ( CDH ) problem : CDH 문제는 a,b ∈ Zq*인 P, aP, bP가 주어지면 abP를 계산하는 문제이다. Computational Diffie - Hellman ( CDH ) problem : The CDH problem is to calculate abP given P, aP, and bP where a, b ∈ Zq * .
Inverse Computational Diffie - Hellman ( ICDH ) problem : ICDH 문제는 a∈ Zq*인 P, aP가 주어지면 a-1P를 계산하는 문제이다. Inverse Computational Diffie - Hellman ( ICDH ) problem : The ICDH problem is to calculate a -1 P given P, aP, which is a∈ Zq * .
Modified Inverse Computational Diffie-Hellman (mICDH) problem: mICDH 문제는 a,b ∈ Zq*인 b, P, aP 그리고 (a+b)P가 주어지면 (a+b)-1P를 계산하는 문제이 다. Modified Inverse Computational Diffie-Hellman (mICDH) problem: The mICDH problem is to calculate (a + b) -1 P given a, b ∈ Zq * , b, P, aP and (a + b) P.
Bilinear Diffie - Hellman ( BDH ) problem : BDH 문제는 a,b,c∈Zq*인 P, aP, bP 그리고 cP가 주어지면 e(P,P)abc를 계산하는 문제이다. Bilinear Diffie - Hellman ( BDH ) problem : The BDH problem is to calculate e (P, P) abc given P, aP, bP and cP, where a, b, c∈Zq * .
Bilinear Inverse Diffie - Hellman ( BIDH ) problem : BIDH 문제는 a,b,c∈Zq*인 P, aP, bP 가 주어지면 를 계산하는 문제이다. Bilinear Inverse Diffie - Hellman ( BIDH ) problem : The BIDH problem is given by P, aP, bP where a, b, c∈Zq * It is a matter of calculating.
Modified Bilinear Inverse Diffie - Hellman ( mBIDH ) problem : mBIDH 문제는 a,b,c∈Zq*인 b,P,aP 그리고 cP가 주어지면 를 계산하는 문제이다. Modified Bilinear Inverse Diffie - Hellman ( mBIDH ) problem : The mBIDH problem is given by b, P, aP and cP where a, b, c∈Zq * It is a matter of calculating.
위 문제 중 CDH와 ICDH 그리고 mICDH 문제는 서로 다항식 시간(polynomial time) 동치임을 쉽게 알 수 있다.It is easy to see that the CDH, ICDH, and mICDH problems are polynomial time equivalents.
정 리 1. BDH와 BIDH 그리고 mBIDH 문제는 서로 다항식 시간 동치이다. Theorem 1. BDH, BIDH and mBIDH problems are polynomial time equivalents.
(증명) BDH와 BIDH 문제는 다항식 시간 동치이다. 그러므로 단지 BIDH와 mBIDH가 서로 다항식 시간 동치임을 증명한다.(Proof) BDH and BIDH problems are polynomial time equivalents. Therefore, we only prove that BIDH and mBIDH are polynomial time equivalents.
[BIDH ⇒ mBIDH] b,P,aP 그리고 cP가 mBIDH에 주어지면 a'P = aP + bP를 계산하여 P, a'P, cP를 BIDH에 입력한다. BIDH가 를 출력하면 mBIDH 역시 같은 값을 출력한다.[BIDH ⇒ mBIDH] If b, P, aP and cP are given to mBIDH, calculate a'P = aP + bP and enter P, a'P, cP into BIDH. BIDH If you print, mBIDH will output the same value.
[mBIDH ⇒ BIDH] P, aP, cP가 BIDH에 주어지면 a'P = aP - bP를 계산하여 b, P, a'P 그리고 cP를 mBIDH에 입력한다. mBIDH가 를 출력하면 BIDH 역시 같은 값을 출력한다.[mBIDH ⇒ BIDH] Given P, aP and cP to BIDH, calculate a'P = aP-bP and enter b, P, a'P and cP into mBIDH. mBIDH Outputs the same value.
CDH, BDH 그리고 BIDH 문제가 어렵다고 가정한다. 이것은 CDH, BDH 그리고 BIDH 문제를 다항식 시간 안에 의미있는 확률을 가지고 계산하는 알고리즘이 존재하지 않음을 의미한다. gap Diffie-Hellman (GDH) 가정을 만족하는 GDH 파라미터 생성기는 타원곡선 상에서의 Weil/Tate pairing으로 구성할 수 있다.Assume that CDH, BDH and BIDH problems are difficult. This means that no algorithm exists to calculate CDH, BDH and BIDH problems with meaningful probabilities in polynomial time. The GDH parameter generator that satisfies the gap Diffie-Hellman (GDH) assumption can be configured as Weil / Tate pairing on an elliptic curve.
본 발명의 안전성을 증명하기 위하여 k-CAA (Collusion Attack Algorithm with k traitor) 문제와 k-mBIDH (modified BIDH with k values) 문제를 정의한다. 사실 k-mBIDH는 k-CAA 문제를 bilinear 형태로 변환한 문제이다.In order to demonstrate the safety of the present invention, the problems of Collusion Attack Algorithm with k traitor (k-CAA) and modified BIDH with k values (k-mBIDH) are defined. In fact, k-mBIDH is a bilinear form of the k-CAA problem.
정 의 1. k-CAA 문제는 아래와 같이 주어졌을 때 h ∈ Zq*에 대하여 (s+h)-1P를 계산하는 문제이다. Definition 1. The k-CAA problem is to calculate (s + h) -1 P for h ∈ Zq * given by
정 의 2. k-mBIDH 문제는 아래와 같이 주어졌을 때 를 계산하는 문제이다.
. .
알고리즘 A에 대한 좀 더 일반적인 이점은 다음과 같이 정의된다.A more general advantage for Algorithm A is defined as
다음으로 본 발명에 의한 ID기반 키교환 방법 및 장치의 안전성을 분석하기 로 한다. Next, the security of the ID-based key exchange method and apparatus according to the present invention will be analyzed.
authenticryption 기법을 이용하여 모바일 클라이언트 U와 서버 V 사이의 ID 기반의 인증된 키 교환 방법 및 장치를 설명하고 랜덤 오라클 모델에서의 안전성을 증명한다. 본 발명에 적용된 키교환 방법을 ID-AKA라 명한다. We describe the method and apparatus for ID-based authenticated key exchange between mobile client U and server V using authenticryption technique, and prove the security in random Oracle model. The key exchange method applied to this invention is called ID-AKA.
1. ID-기반의 인증된 키 교환 프로토콜1. ID-based authenticated key exchange protocol
먼저 두 그룹 G1,G2와 bilinear map e를 GDH 생성기를 사용하여 생성한다. G1 에서 mICDH 문제는 어렵다고 가정한다. 본 발명에 의한 ID-AKA 방법은 주어진 공개 확인자에 대응되는 비밀키를 생성하는 신뢰기관인 키 생성 기관 (KGC)을 이용하며, 이때 생성된 비밀키에 대한 안전성은 mICDH 문제의 어려움에 기반하게 된다. First we create two groups G 1 , G 2 and bilinear map e using the GDH generator. It is assumed that the mICDH problem in G 1 is difficult. The ID-AKA method of the present invention uses a key generation authority (KGC), which is a trust authority that generates a secret key corresponding to a given public identifier, and the security of the generated secret key is based on the difficulty of the mICDH problem.
Setup은 다음과 같이 이루어진다.Setup is as follows.
KGC는 s ∈ Zq* 와 G1의 생성자 P를 선택하고 Ppub = sP를 계산한다. 또한 암호학적 일방향 해쉬 함수 그리고 를 선택한다. 여기서 t 는 보안상수(security parameter)이며, k는 세션키의 비트 길이이다. 그 다음에 KGC는 마스터 비밀키인 s를 비밀로 하고 공개 시스템 파라미터 를 공개한다.KGC selects the constructor P of s ∈ Zq * and G 1 and calculates P pub = sP. Also cryptographic one-way hash function And Select. Where t is the security parameter and k is the bit length of the session key. KGC then keeps the master secret key s secret and public system parameters To the public.
Extract는 다음과 같이 이루어진다.Extract is done as follows.
확인자가 IDu인 클라이언트 U가 비밀키를 얻기를 원할 때, KGC는 를 계산하여 비밀키 를 계산한 후 (g, SU)를 안전한 채널로 U에게 전송한다. 동일한 방법으로, 확인자가 IDv인 서버 V도 를 계산한 후, 비밀키 와 g=e(P,P) 를 계산하여 안전한 채널로 V에게 전송한다. When the client U whose resolver is ID u wants to obtain a secret key, KGC Calculate the secret key Calculate and transmit (g, S U ) to U on a secure channel. In the same way, even the server whose resolver is ID v Calculate, Secret Key Calculate and g = e (P, P) and send it to V on a secure channel.
도 1은 본 발명에 의한 ID-기반 키교환 장치의 구성을 블록도로 도시한 것으로서, X&Y생성부(100), 클라이언트 전송부(110), 클라이언트 인증부(160), 클라이언트 세션키 생성부(170), 서버인증부(120), z&tv생성부(130), 서버전송부(140) 및 서버 세션키 생성부(150)를 포함하여 이루어진다.1 is a block diagram illustrating a configuration of an ID-based key exchange device according to the present invention. The X &
먼저, 위수가 소수 q인 gap DiffieHellman 그룹, 예를 들어 위수가 소수 q인 덧셈그룹(G1)의 생성자를 P, 키생성센터(KGC)의 마스터 비밀키를 s, 상기 s와 P의 곱을 Ppub(= sP), 상기 P의 pairing 연산값을 g(=e(P,P)), 클라이언트 및 서버의 ID를 각각 IDu 및 IDv, 키생성센터로부터 받은 클라이언트 및 서버의 비밀키를 각각 Su 및 Sv 라 한다.First, the constructor of the gap DiffieHellman group having a prime q, for example, the addition group G 1 having a prime q, is P, the master secret key of the Key Generation Center (KGC) s, and the product of s and P is Ppub. (= sP), g pairing operation value of P (= e (P, P)), ID u and ID v of client and server, respectively, and secret key of client and server received from key generation center, respectively. u and S v .
상기 X&Y생성부(100)는 상기 클라이언트에 설치되며, X 값 및 Y 값을 생성한다. 도 2는 상기 X&Y의 생성부(100)의 세부적인 구성을 블록도로 도시한 것으로서, a선택부(200), 매개값 생성부(220), X생성부(240) 및 Y생성부(260)를 포함하여 이루어진다. 상기 a 선택부(200)는 위수가 q인 곱셈그룹 Zq*로부터 임의의 값 a를 선택한다. 상기 매개값 생성부(220)는 상기 IDV 의 해쉬함수 값 qv(= H(IDV))를 생성하고, 상기 Ppub 와 qvP를 합하여 Qv(= Ppub + qvP)를 생성하고, 상기 g의 a 멱승을 취하여 tu(= ga)를 생성하고, 상기 tu의 해쉬함수 값 h(=H1(tu))를 생성한다. 상기 X생성부(240)는 상기 a와 Qv의 곱을 계산하여 X(=aQV)를 생성한다. 상기 Y생성부(260)는 상기 a와 h의 합에 SU 를 곱하여 Y(=(a+h)SU)를 생성한다.The X &
상기 클라이언트 전송부(110)는 클라이언트 측에 설치되며, 상기 IDu, X 및 Y를 서버로 전송한다.The
클라이언트 인증부(160)는 클라이언트에 설치되며, 서버로부터 z, tv를 받아 서버를 인증한다. 도 5는 상기 클라이언트 인증부(160)의 세부적인 구성을 블록도로 도시한 것으로서, z'생성부(500) 및 z 인증부(550)를 포함하여 이루어진다. 상기 z'생성부(500)는 IDU, IDV, 클라이언트가 생성한 tu, X, Y, 상기 서버로부터 받은 tv를 해쉬함수한 값 z'(= H2(tu,tv,X,Y,IDU, IDV))를 생성한다. 상기 z 인증부(550)는 상기 z'가 상기 z와 일치(z'= z)하는지 체크하여 서버를 인증한다.The
클라이언트 세션키 생성부(170)는 유효한 서버로 인증되면 상기 서버의 세션키와 동일한 세션키를 생성한다. 보다 구체적으로 설명하면, 상기 클라이언트 세션키 생성부(170)는 상기 서버가 유효한 서버로 인증되면, tu, tv, X, Y, IDu, IDv의 해쉬함수 값(sk = H3(tu, tv, X, Y, IDu, IDv))을 생성한다.The client session
서버인증부(120)는 서버에 설치되며, 상기 IDu, X 및 Y를 받아 클라이언트를 인증한다. 도 3은 서버 인증부(120)의 세부 구성을 블록도로 도시한 것으로서, c생성부(300), tugh생성부(320) 및 c인증부(340)를 포함하여 이루어진다.
상기 c생성부(300)는 상기 IDU 의 해쉬함수 값 qu(= H(IDU))를 생성하고, 상기 Ppub 를 qu와 P의 곱(quP)과 합하여 QU(= Ppub + quP)를 생성하고, 클라이언트로부터 받은 X와 SV의 pairing 연산하여 tu(= e(X, SV))를 생성하고, 클라이언트로부터 받은 Y와 상기 QU 를 pairing 연산하여 c(= e(Y, QU))를 생성한다. 상기 tugh생성부(320)는 상기 tu 의 해쉬함수 값 h(=H1(tu))을 생성하여, 상기 tu와 g의 h 멱승(gh)을 곱한 값(tugh)을 생성한다. 상기 c인증부(340)는 상기 c와 상기 tugh를 비교하여 그 값이 동일하면 유효한 클라이언트로 인증한다.The
z&tv 생성부(130)는 서버에 설치되며, 클라이언트가 유효한 클라이언트로 인증되면 z 및 tv를 생성한다. 도 4는 상기 z&tv생성부(130)의 세부 구성을 블록도로 도시한 것으로서, tv선택부(400) 및 z생성부(450)를 포함하여 이루어진다. 상기 tv선택부(400)는 서버가 위수가 q인 곱셈그룹 Zq*로부터 임의로 tv를 선택한다. 상기 z생성부(450)는 상기 클라이언트가 유효한 클라이언트로 인증되면, tu, tv, X, Y, IDu, IDv의 해쉬함수 값 z(= H2(tu, tv, X, Y, IDu, IDv))를 생성한다.The z & t v generator 130 is installed in the server, and generates z and t v if the client is authenticated as a valid client. 4 is a block diagram illustrating a detailed configuration of the z & t v generation unit 130, and includes a t v
서버전송부(140)는 상기 z 및 tv를 클라이언트로 전송한다.The
서버 세션키 생성부(150)는 서버에 설치되며, 클라이언트가 유효한 클라이언트로 인증되면 세션키(sk)를 생성한다. 즉, 상기 서버세션키 생성부(150)는 상기 클라이언트가 유효한 클라이언트로 인증되면, tu, tv, X, Y, IDu, IDv를 해쉬함수한 값 sk(= H3(tu, tv, X, Y, IDu, IDv))를 생성한다.The server session
한편, 클라이언트 U와 서버 V 가 세션키를 생성하는 본 발명에 의한 ID-기반 키교환 방법을 설명하기로 한다. 도 6은 본 발명에 의한 ID-기반 키교환 방법을 설명하기 위한 흐름도를 도시한 것이다. 도 6을 참조하면, 클라이언트 U는 를 계산하고 난수 a∈Zq* 를 선택하여 tu=ga와 Qv = Ppub + qvP를 계산한다. 그 다음으로 U는 그리고 를 계산하여 를 V에게 전송한다.Meanwhile, an ID-based key exchange method according to the present invention in which the client U and the server V generate a session key will be described. 6 is a flowchart illustrating an ID-based key exchange method according to the present invention. Referring to Figure 6, the client U is Compute t u = g a and Qv = Ppub + q v P by selecting the random number a∈Zq * . Then U is And By calculating Is sent to V.
서버 V는 qu= H(IDu)와 QU = Ppub + quP를 계산한 후, tu=ga와 c=e(X,Sv)를 전송받은 메시지와 자신의 비밀키 Sv를 이용하여 계산한다. 또한 h=H1(tu)를 계산하여 c = tugh 임을 확인한다. 만약 식이 성립하지 않으면 V는 실패를 출력하고, 식이 성 립하면 난수 tv∈ Zq*를 선택하여 인증 메시지 를 계산한 후, z와 tv를 U에게 전송한다. 결국 서버 V는 세션키로 를 계산한다. Server V calculates q u = H (ID u ) and Q U = P pub + q u P, and then receives the message t u = g a and c = e (X, Sv) and its private key S Calculate using v We also determine that c = t u g h by calculating h = H 1 (t u ). If the expression does not hold, V outputs a failure, and if the expression holds, select the random number t v ∈ Zq * to send an authentication message. Then compute z and t v to U. Eventually, Server V is the session key Calculate
클라이언트 U는 을 tu와 tv를 이용하여 계산한 후, z=z'임을 확인한다. 만약 식이 성립하지 않으면 U는 실패를 출력하고, 식이 성립하면 세션키 를 계산한다.Client u Is calculated using t u and t v , and it is confirmed that z = z '. If the expression does not hold, U prints a failure, and if the expression holds, the session key Calculate
위의 프로토콜에서 클라이언트 U는 tu와 Y를 사전에 계산할 수 있다. 그러면 온-라인 상에서 U는 한번의 포인트 덧셈과 두 번의 스칼라 곱셈만을 계산하면 된다. 더구나 해쉬함수 H는 계산량이 많은 Map-To-Point 연산이 아니라 일반적인 해쉬함수이기 때문에 계산량은 매우 적다고 할 수 있다.In the above protocol, client U can calculate t u and Y in advance. Then on-line U needs to calculate only one point addition and two scalar multiplications. In addition, since the hash function H is a general hash function rather than a large computational Map-To-Point operation, the calculation amount is very small.
이를 보다 상세히 설명하면 다음과 같다. 먼저, 위수가 소수 q인 gap DiffieHellman 그룹, 예를 들어 위수가 q인 덧셈그룹(G1)의 생성자를 P, 키생성센터(KGC)의 마스터 비밀키를 s, 상기 s와 P의 곱을 Ppub(= sP), 상기 P의 pairing 연산값을 g(=e(P,P)), 클라이언트 및 서버의 ID를 각각 IDu 및 IDv, 키생성센터로부터 받은 클라이언트 및 서버의 비밀키를 각각 Su 및 Sv 라 하자.This will be described in more detail as follows. First, the constructor of the gap DiffieHellman group having a prime number q, for example, the addition group G1 having a prime q, is P, the master secret key of the key generation center (KGC) is s, and the product of s and P is P pub ( = sP), the P of the pairing computation value of g (= e (P, P )), the ID of the client and server each ID u and ID v, the private key of the client and the server received from the key generation center, each S u And S v .
(a) 클라이언트가 IDu, X 및 Y를 서버에게 전달한다. 여기서, 상기 X 및 Y 의 생성은 다음과 같이 이루어진다. 위수가 q인 곱셈그룹 Zq*로부터 임의의 값 a를 선택한다. 그 다음에 상기 IDV 의 해쉬함수 값 qv(= H(IDV))를 생성하고, 상기 Ppub 와 qvP를 합하여 Qv(= Ppub + qvP)를 생성하고, 상기 g의 a 멱승을 취하여 tu(= ga)를 생성하고, 상기 tu의 해쉬함수 값 h(=H1(tu))를 생성한다. 그리고 나서 상기 a와 Qv의 곱을 계산하여 X(=aQV)를 생성하고, 상기 a와 h의 합에 SU 를 곱하여 Y(=(a+h)SU)를 생성한다.(a) The client passes the ID u , X and Y to the server. Here, the generation of X and Y is performed as follows. Selects a random value a from multiplication group Zq * whose rank is q. Then generating a hash function value q v (= H (ID V )) of the ID V, and the combined the P pub and q v P generate Qv (= P pub + q v P), and the g by taking a a power generation of t u (g = a), and generates a hash functional value of the t u h (= H 1 ( t u)). And then it generates a Y (= (a + h) S U) generate the X (= aQ V) by calculating a product of the Q and v, and U is multiplied by S to the sum of the a and h.
(b) 서버는 상기 IDu, X 및 Y를 받아 클라이언트를 인증하고, 인증이 되면 z 및 tv를 생성하여 클라이언트에게 전달하고 세션키(sk)를 생성한다. 여기서, 상기 클라이언트 인증은 다음과 같이 이루어진다. 상기 IDU 의 해쉬함수 값 qu(= H(IDU))를 생성하고, 상기 Ppub 를 qu와 P의 곱(quP)과 합하여 QU(= Ppub + quP)를 생성하고, 클라이언트로부터 받은 X와 SV의 pairing 연산하여 tu(= e(X, SV))를 생성하고, 클라이언트로부터 받은 Y와 상기 QU 를 pairing 연산하여 c(= e(Y, QU))를 생성한다. 그 다음에 상기 tu 의 해쉬함수 값 h(=H1(tu))을 생성하여, 상기 tu와 g의 h 멱승(gh)을 곱한 값(tugh)을 생성한다. 그리고 나서 상기 c = tugh를 만족하면 유효한 클라이언트로 인증한다. 그리고 상기 tv는, 서버가 위수가 q인 곱셈그룹 Zq*로부터 임의로 선택함에 의해 생성된다. 상기 z 및 세션키(sk)의 생성은, 상기 클라이언트가 유효한 클라이언트로 인증되면, z = H2(tu, tv, X, Y, IDu, IDv), sk = H3(tu, tv, X, Y, IDu, IDv)에 의해 이루어진다. (b) The server receives the IDs u , X and Y to authenticate the client, and if authenticated, generates a z and t v to be delivered to the client and generates a session key sk. Here, the client authentication is performed as follows. Hash function value of the ID U q u (= H ( ID U)) generated, and the product of the P pub q u and P (q u P) Q U (= P pub + q u P) combined with the a Generate t u (= e (X, S V )) by pairing the X and S V received from the client, and c (= e (Y, Q) by pairing the Y and Q U received from the client. U )) Then to produce the hash function value of t u h (= H 1 ( t u)), and generates a value (t u g h) multiplied by the exponential h (h g) of the t u and g. Then, if c = t u g h is satisfied, a valid client is authenticated. And t v is generated by the server arbitrarily selecting from the multiplication group Zq * of order q. The generation of z and the session key sk is such that if the client is authenticated as a valid client, z = H 2 (t u , t v , X, Y, ID u , ID v ), sk = H 3 (t u , t v , X, Y, ID u , ID v ).
(c) 클라이언트는 서버로부터 z, tv를 받아 서버를 인증하고, 유효한 서버로 인증되면 상기 서버의 세션키와 동일한 세션키를 생성한다. 여기서, 상기 서버 인증은 다음과 같이 이루어진다. 먼저, IDU, IDV, 클라이언트가 생성한 tu, X, Y, 상기 서버로부터 받은 tv를 해쉬함수한 값 z'(= H2(tu,tv,X,Y,IDU, IDV)를 생성한다. 그 다음에 상기 z'가 z와 일치(z'= z)하는지 체크한다. 상기 세션키(sk)는, 상기 서버가 유효한 서버로 인증되면, sk = H3(tu, tv, X, Y, IDu, IDv)에 의해 생성된다.(c) The client receives z and t v from the server and authenticates the server. If the client authenticates as a valid server, the client generates the same session key as the session key of the server. Here, the server authentication is performed as follows. First, ID U , ID V , a hash function of t u , X, Y generated by the client, and t v received from the server z '(= H 2 (t u , t v , X, Y, ID U , ID V ), then check that z 'matches z (z' = z) The session key sk is sk = H 3 (t if the server is authenticated as a valid server). u , t v , X, Y, ID u , ID v ).
본 발명은 절반의 전방향 안전성을 제공한다. 만약 서버의 비밀키가 유출되면 공격자는 전송 메시지로부터 모든 세션키를 계산할 수 있지만, 클라이언트의 비밀키가 유출되면 이를 이용하는 공격자는 이전 세션키들에 관한 어떠한 정보도 얻을 수 없게 된다. 일반적으로 모바일 클라이언트는 낮은 파워를 가진 장치이기 때문에 서버에 비하여 공격에 취약하게 된다. 따라서 서버보다 클라이언트에서의 전방향 안전성의 제공이 더욱 효과적이라 할 수 있을 것이다.The present invention provides half omnidirectional safety. If the server's private key is leaked, the attacker can calculate all the session keys from the transmitted message, but if the client's private key is leaked, the attacker using it will not get any information about the previous session keys. In general, mobile clients are low power devices, which makes them more vulnerable to attack than servers. Therefore, the provision of omnidirectional security at the client is more effective than the server.
본 발명의 안전성을 분석하면 다음과 같다. 본 발명의 안전성 분석을 위해 ID-AKA에서 클라이언트의 전송 메시지를 위조하는 공격자를 Forger라 하자. 먼저 주어진 IDu와IDv 로부터 클라이언트의 전송 메시지의 위조가 불가능함을 보인다.Analysis of the safety of the present invention is as follows. Forger is an attacker forging a client's message in ID-AKA for security analysis. First, it shows that forgery of the client's transmission message from ID u and ID v is impossible.
보조정리 1. 해쉬함수 H와 H1을 랜덤 오라클이라 하고 Forger A를 IDu와 IDv가 주어지고 러닝(running) 타임 t0와 ε0의 성공확률을 가진 위조자라 가정하자. A는 각각 그리고 qE 개의 H, H1, 전송 그리고 추출질의를 한다고 하자. 만약 라 하면 러닝 타임이 인 k-CAA문제를 계산하는 공격자 B가 존재한다. Theorem Theorem 1. Assume that the hash functions H and H 1 are random Oracles, and Forger A is a forger with ID u and ID v and a probability of success with running times t 0 and ε 0 . A is each And q E H, H 1 , transmission and extraction query. if Speaking of running time There is an attacker B who computes the k-CAA problem.
(증명) 먼저 B에게 인 k-CAA 문제의 입력값 이 주어진다. B의 목적은 임의의 q0에 대하여 를 계산하는 것이다. B는 A를 이용하기 위해 A의 공격 환경을 시뮬레이션해 준다. 먼저 B는 GDH 파라미터 를 생성하고 Ppub=sP와 g=e(P,P)를 계산하여 시스템 파라미터 를 A에게 입력한다.(Proof) First to B For k-CAA problems Is given. The purpose of B is for any q 0 Will be calculated. B simulates A's attack environment to use A. B is the GDH parameter Create a system parameter by calculating Ppub = sP and g = e (P, P) Enter to A.
일반성을 잃지 않고, 주어진 ID에 대하여 A는 H, H1, 전송 그리고 추출질의를 한번만 하며, 전송과 추출질의 사전에 질의를 수행한다고 가정하자. 충돌을 방지하고 질의에 대한 일관성 있는 응답을 위해 B는 목록 LH과 LH1을 유지한다. 이 목록들은 초기에 비어있다. B는 A의 질의에 대하여 다음과 같이 응답한다.Without loss of generality, assume that for a given ID, A only performs H, H 1 , transmission, and extract query once, and performs a query before transmission and extract. To avoid conflicts and to ensure consistent responses to queries, B maintains lists L H and L H1 . These lists are initially empty. B responds to A's query as follows:
H-질의. A가 IDi에 대한 H-질의를 했을 때, 만약 IDi = IDV이면 B는 q0를 전송하고, 그 외의 경우에는 <IDi,qi> 를 목록 LH에 추가하고 qi를 전송한다.H -question. When A is when the H- query to the ID i, if i = ID If ID is V B is other than transmitting the q 0, that is, add the <ID i, q i> L H in the list and sends the q i do.
H1 -질의. A가 m에 대한 H1-질의를 했을 때, B는 난수 h를 전송하고 이를 목록 LH1에 추가한다.H 1 -question. When A has H 1 -queried for m, B sends a random number h and adds it to the list L H1 .
전송-질의. A가 전송() 질의를 했을 때, 만약 IDi = IDU이면 B는 난수 a와 h를 선택하여 X=a(sP+q0P)와 Y=hP를 계산한 후, IDu(X,Y)를 A에게 전송한다. 그 외의 경우 B는 목록 LH에서 <IDi, qi>를 찾은 후, 난수 a와 h를 선택하고 X=a(sP+q0P)와 Y=(a+h)(qi+s)-1P를 계산하여 IDu(X,Y)를 A에게 전송한다. 만약 A의 전송 질의가 IDi=IDu이면 B는 정당한 Y값을 생성할 수 없기 때문에 임의의 Y값을 전송하게 된다. 그러나 A는 서버의 비밀키 Sv를 알지 못하기 때문에 전송받은 (X,Y)에 대한 정당성을 확인할 수 없다. 따라서 전송 질의에 대한 B의 시뮬레이션은 타당하다. Transport-query. A is sent ( In the query, if ID i = ID U, B selects random numbers a and h, calculates X = a (sP + q 0 P) and Y = hP, and sets ID u (X, Y) to A. Send to. Otherwise, B finds <ID i , q i > from list L H , selects random numbers a and h, and X = a (sP + q 0 P) and Y = (a + h) (q i + s ) -1 P is calculated and ID u (X, Y) is sent to A. If A's transmission query is ID i = ID u, B will not be able to generate a valid Y value. However, since A does not know the server's secret key S v , it cannot verify the validity of the received (X, Y). Therefore, the simulation of B for the transmission query is valid.
추출-질의. A가 에 대한 추출 질의를 했을 때, B는 목록 LH에서 <IDi, qi>를 찾은 후, (s+qi)-1P를 전송한다. Extract-Query. A When B extracts the query, B finds <ID i , q i > in the list L H , and sends (s + q i ) -1 P.
마침내 A는 새로운 정당한 메시지 IDu(X,Y)를 출력하게 된다. B는 forking lemma 와 같이 위의 H1과 다른 해쉬함수 H'1를 사용하여 동일하게 시뮬레이션 하면 결국 A 는 h≠h'인 서로 다른 정당한 두 메시지 쌍 와 을 출력하게 된다. 그러면 B는 를 계산한 후 이를 k-CAA 문제의 결과로 출력한다.Finally, A prints a new legitimate message ID u (X, Y). B simulates the same using H 1 and a different hash function H ' 1 , like forking lemma, so A pairs two different legitimate messages where A is h ≠ h' Wow Will print B is then Calculate and output it as the result of the k-CAA problem.
B가 h와 h'을 정확히 추측할 확률은 1/q2 H1이며, 전체 러닝 타임 t1은 forking lemma에 요구된 러닝 타임과 동일한 에 유계하게 된다.The probability that B correctly guesses h and h 'is 1 / q 2 H1 and the total running time t 1 is equal to the running time required for the forking lemma. Will be bound to
정 리 2. 제안된 ID-AKA에 사용된 해쉬함수를 랜덤 오라클이라 하고 IDU와 IDV가 주어지고 러닝(running) 타임 t인 ID-AKA 공격자 A가 존재한다고 가정하자. 그러면 ID-AKA는 k-mBIDH 문제의 어려움에 기반하여 절반의 전방향 안전성을 제공하는 안전한 AKA 프로토콜이다. 즉,
여기서 AdvForge(t)는 러닝 타임이 t인 임의의 Forger의 최대 이점이며, 는 공격자 A가 생성하는 전송, 손상 그리고 해쉬 Hi 질의의 개수를 나타낸다.Where Adv Forge (t) is the maximum benefit of any Forger with t running time, Represents the number of transmission, corruption, and hash Hi queries generated by attacker A.
(증명) A를 ID-AKA를 공격하는 능동적인(active) 공격자라 하자. 그러면 A는 두 가 지 경우에 의한 공격을 시도할 수 있다. 첫 번째는 인증 메시지들의 위조. 즉, 클라이언트로의 가장 공격을 시도하거나. 두 번째는 전송 메시지의 위조나 변조하지 않고 도청만 하여 공격하는 경우이다. 공격자가 서버의 전송 메시지를 위조하는 것, 즉, 서버로 가장하는 공격은 결국 z값을 위조해야만 하고 이는 클라이언트의 비밀 정보인 tu값을 모르고서는 성공할 수 없다. 그러나 해쉬함수 H2의 일방향성에 의해 z값의 위조는 불가능하다. 따라서 공격자 A의 공격은 위의 두 가지 경우로 제한된다.(Proof) Let A be an active attacker attacking ID-AKA. A can then attempt to attack in two cases. The first is forgery of authentication messages. In other words, try the most attack as a client. The second is to attack by eavesdropping without forging or tampering with the transmitted message. An attacker forging a server's outgoing message, that is, an attack impersonating the server, must eventually forge a value of z, which cannot succeed without knowing the client's secret value t u . However, forgery of z-values is impossible due to the unidirectionality of the hash function H 2 . Therefore, attacker A's attack is limited to the above two cases.
먼저 A가 첫 번째 경우의 공격을 시도한다면 A를 이용하여 정당한 메시지 쌍 IDV(X,Y)을 위조하는 Forger F를 구성할 수 있다. 이는 F가 시스템에 필요한 모든 공개키와 비밀키를 올바르게 생성한 후, A의 질의에 대해 시뮬레이션 해줌으로써 쉽게 구성할 수 있다. Forger를 A가 새로운 정당한 메시지 쌍을 생성하는 사건이라 하면 F가 성공할 확률은 가 된다. 보조정리 1.에 의하여 확률 PrA[Forge]은 무시할 만한 값이다.First, if A attempts to attack in the first case, A can be used to construct a Forger F that forges a legitimate message pair ID V (X, Y). This can be easily configured by correctly generating all the public and private keys necessary for the system and then simulating A's queries. If Forger is an event in which A creates a new legitimate message pair, the probability that F will succeed Becomes By auxiliary theorem 1. The probability Pr A [Forge] is a negligible value.
다음으로 A가 두 번째 경우의 공격을 시도할 때를 고려해보자. 세션키 sk의 정보를 얻기 위해서 A는 해쉬 오라클 H3에 를 질의해야만 한다. 따라서 A는 비밀 정보인 tu를 계산해야만 한다. 그러므로 A를 이용하여 k-mBIDH 문제를 계산하는 공격자 B를 다음과 같이 구성할 수 있다. 먼저 B에게 인 k- mBIDH 문제의 입력값 이 주어진다. B의 목적은 를 계산하는 것이다. B는 A를 이용하기 위해 A의 공격 환경을 시뮬레이션 해 준다. 먼저 B는 GDH 파라미터 <e,G1,G2>를 생성하고 Ppub=sP와 g=e(P,P)를 계산하여 시스템 파라미터 를 A에게 입력한다. A의 이점을 활용하기 위해 B는 임의의 를 선택한다. 는 A가 번째 세션에 테스트 질의를 하는 것을 추측하기 위한 값이다.Next, consider when A attempts to attack in the second case. A hash is the Oracle H 3 to obtain the information from the session key sk You must query Therefore, A must calculate the secret information t u . Therefore, attacker B, which computes k-mBIDH problem using A, can be constructed as follows. To B first K- mBIDH Problem Input Is given. The purpose of B Will be calculated. B simulates A's attack environment to use A. First, B generates the GDH parameters <e, G 1 , G 2 > and calculates the system parameters by calculating Ppub = sP and g = e (P, P). Enter to A. To take advantage of A, B is random Select. Has a The value to guess the test query in the first session.
일반성을 잃지 않고, A는 동일한 메시지에 대해서는 한번만 질의 하며, 전송과 추출질의 사전에 H질의를 수행한다고 가정하자. 충돌을 방지하고 질의에 대한 일관성 있는 응답을 위해 B는 목록 LH, LH1와 LH2을 유지한다. 이 목록들은 초기에 비어있다. B는 A의 질의에 대하여 다음과 같이 응답한다.Without loss of generality, suppose A queries the same message only once, and performs an H query before transmission and extraction. To avoid conflicts and to ensure consistent responses to queries, B maintains lists L H , L H1, and L H2 . These lists are initially empty. B responds to A's query as follows:
H-질의. A가 IDi에 대한 H-질의를 했을 때, 만약 IDi=IDv이면 B는q0 를 전송하고, 그 외의 경우에는 <IDi, qi >를 목록 LH에 추가하고 qi를 전송한다.H -question. When A makes an H-query against ID i , if ID i = ID v, B sends q 0 , otherwise adds <ID i , q i > to list L H and sends q i do.
H1 -질의. A가 목록 LH1에 기록된 (m,h)와 동일한 메시지 m에 대한 H1-질의를 하면 B는 h를 전송한다. 그 외의 경우에 B는 난수 h를 전송하고 (m,h)을 LH1에 추가한다.H 1 -question. If A has a H 1 -query for message m equal to (m, h) recorded in the list L H1 , then B sends h. Otherwise, B sends a random number h and adds (m, h) to L H1 .
H2 -질의. A가 H2-질의를 했을 때, 는 목록에서 를 찾아서 z를 A에게 전송한다.H 2 -question. When A asks H 2- In the list Find and send z to A.
H3 -질의. A가 메시지 m에 대한 H3-질의를 하면 B는 임의의 난수를 A에게 전송한다.H 3 -question. If A queries H 3 -for message m, B sends a random number to A.
전송-질의. 전송 질의는 클라이언트에서 서버로 그리고 서버에서 클라이언트로의 두 가지 전송 질의를 고려한다. 클라이언트에서 서버로의 질의는 전송S, 서버에서 클라이언트로의 질의는 전송C라 표기한다. Transport-query. The transfer query considers two transfer queries from client to server and from server to client. The query from the client to the server is called S, and the query from the server to the client is called C.
A가 전송 질의를 했을 때, 만약 이 질의가 번째 세션에 대한 요청이면, B는 난수 을 선택하고, X=tP와 Y=P를 계산한 후, IDV (X,Y)를 A에게 전송한다. 그 외의 경우 B는 목록 LH에서 를 찾은 후, 난수 와 h를 선택하고 그리고 를 계산하여 tu와 h는 목록 LH1에 추가하고 IDV(X,Y)를 에게 전송한다.A send When you make a query, if this query If the request is for the first session, B is a random number , Select X = tP and Y = After calculating P, ID V (X, Y) is sent to A. Otherwise B is in list L H After finding, random number And h And T u and h are added to the list L H1 and the ID V (X, Y) is sent to.
A가 전송 질의를 했을 때, B는 난수 z와 tv를 선택하고 이를 A에게 전송한 후 를 목록 LH2에 추가한다.A send When querying, B chooses a random number z and t v and sends it to A. To the list L H2 .
실행-질의. A가 실행(U,V) 질의를 했을 때, B는 전송 질의의 시뮬레이션을 이용하여 메시지 를 A에게 전송한다. Run-inquiry. When A makes a run (U, V) query, B uses a simulation of the transfer query to Is sent to A.
추출-질의. A가 에 대한 추출 질의를 했을 때, B는 목록LH에서 를 찾은 후, 를 전송한다. Extract-Query. A When an extract query is made for, B is from list L H After finding Send it.
손상-질의. A가 IDV에 대한 손상 질의를 했을 때, B는 목록 LH 에서 를 찾은 후, 를 전송한다. Damage-quality. When A makes a damage query for ID V , B is in list L H After finding Send it.
유출-질의. A가 유출 질의를 했을 때, B는 난수를 A에게 전송한다. Outflow-question. When A makes a leak query, B sends a random number to A.
테스트-질의. A가 테스트 질의를 했을 때, 만약 그 질의가 번째 세션에 대한 질의이면 B는 실패를 출력하고, 그 외의 경우에는 임의의 비트 b를 선택한다. 만약 b=1이면 세션키를 아니면 난수를 A에게 전송한다. Test-question. When A makes a test query, if that query If the query is for the first session, B outputs a failure; otherwise, selects a random bit b. If b = 1, the session key is sent or A is sent to A.
B의 성공 확률은 B가 를 정확히 추측한 사건과 A가 비밀 값 를 해쉬 오라클에 질의한 사건에 의존한다. 위의 시뮬레이션에서 B가 를 정확히 추측할 확률은 이고, A의 이점이 이라면 A가 비밀 값 tu를 H1 해쉬 오라클에 질의할 확률은 이 된다. 따라서 B가 를 정확히 추측하였다면 tu는 의 확률로 목록 LH1에 존재하게 된다. 그러므로 B는 k-mBIDH 문제를 적어도 확률 로 계산할 수 있게 된다. 결국 증명의 처음부분에서 언급한 두 번째 사건에 대한 A의 이점은 최대 만큼의 이점을 가지게 된다. 마침내 우리는 위의 증명의 결과로 아래와 같은 식을 얻을 수 있다.B's probability of success is The exact guess and A's secret value Depends on the event that queried the hash Oracle. In the above simulation, B The probability of guessing exactly And the advantage of A is If the probability that A will query the private value t to u H 1 hash Oracle Becomes So B is If u correctly guess t u is Has a probability of being in the list L H1 . Therefore B is at least a probability of k-mBIDH problem Can be calculated as After all, the benefit of A for the second case mentioned at the beginning of the You will have as many advantages. Finally, we can obtain the following equation as a result of the above proof.
본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터(정보 처리 기능을 갖는 장치를 모두 포함한다)가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다. The present invention can be embodied as code that can be read by a computer (including all devices having an information processing function) in a computer-readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable recording devices include ROM, RAM, CD-ROM, magnetic tape, floppy disks, optical data storage devices, and the like.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다. Although the present invention has been described with reference to the embodiments shown in the drawings, this is merely exemplary, and it will be understood by those skilled in the art that various modifications and equivalent other embodiments are possible. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.
본 발명에 의한 ID-기반 키교환 방법 및 장치에 의하면, 컴퓨팅 파워가 다른 두 사용자(서버, 클라이언트) 사이의 효율적인 ID-기반의 인증된 키 교환을 할 수 있다. 특히 클라이언트 측의 계산량을 줄임으로써 낮은 파워를 가진 모바일 장치에 적합하다. 본 발명의 안전성은 랜덤 오라클 모델에서의 k-CAA와 k-mBIDH 문제의 어려움에 기반한다. The ID-based key exchange method and apparatus according to the present invention enables efficient ID-based authenticated key exchange between two users (servers and clients) having different computing power. It is especially suitable for mobile devices with low power by reducing the amount of computation on the client side. The safety of the present invention is based on the difficulty of k-CAA and k-mBIDH problems in the random Oracle model.
Bilinear map을 이용한 ID-기반 시스템은 Weil/Tate pairing 연산과 ID를 표현한 수를 타원곡선(elliptic) 위의 한 점으로 변환시키는 Map-To-Point 연산과 같 은 계산량이 많은 복잡한 연산을 필요로 한다. 따라서 이러한 복잡한 연산 특히 pairing 연산을 줄이기 위하여 많은 연구가 되어 왔음에도 불구하고 여전히 pairing 연산은 타원곡선에서의 스칼라 곱에 비하여 계산량이 훨씬 많기 때문에 여전히 기존에 제안된 ID-기반의 키교환 기법은 저전력 모바일 장치에 사용하기엔 적합하지 않았다. 이렇게 대부분의 ID-기반의 AKA는 클라이언트 측의 무거운 계산량을 수행할 수 있는 유선 네트워크 환경에 기반하고 있다.ID-based systems using bilinear maps require complex computations, such as Weil / Tate pairing operations and Map-To-Point operations, which convert ID numbers into points on an elliptic curve. . Therefore, even though much research has been conducted to reduce such complex operations, especially pairing operations, the ID-based key exchange schemes proposed by the existing ID-based key exchange schemes are still very low compared to scalar products. Not suitable for use with the device. Most ID-based AKAs are based on a wired network environment capable of performing heavy computations on the client side.
본 발명에 의한 ID-기반 AKA 역시 bilinear map을 사용한다. 그러나 다음과 같은 특징이 있다. 첫 번째, 클라이언트 측에서의 복잡한 pairing 연산과 Map-To-Point 연산을 사용하지 않았다. 두 번째, 오프라인 사전 계산을 사용하면 온-라인 상에서 클라이언트는 단지 타원곡선에서 두 번의 스칼라 곱과 한 번의 덧셈만 수행하면 된다. ID-based AKA according to the present invention also uses a bilinear map. However, it has the following features. First, we didn't use complex pairing and Map-To-Point operations on the client side. Second, using offline precomputation, on-line clients only need to perform two scalar products and one addition on an elliptic curve.
본 발명은 키 교환과 지정된 확인자(서버)만이 주어진 메시지의 검증과 복호화를 할 수 있는 authenticryption의 개념을 이용한다.The present invention takes advantage of the concept of authenticity, where only key exchange and designated verifiers (servers) can verify and decrypt a given message.
본 발명은 서버의 고정된 비밀키가 노출되면 이전의 세션키가 폭로되지만, 클라이언트의 고정된 비밀키가 노출되어도 이전의 세션키가 안전한 절반의 전방향 안전성(half forward secrecy)을 제공한다. 또한 서로 다른 도메인 영역의 사용자들끼리의 키 교환, 즉 클라이언트는 자신과 다른 도메인 영역의 서버와도 안전한 채널을 형성할 수 있다. 더욱이 본 발명에 의한 프로토콜은 하나의 서버를 중심으로 여러 클라이언트가 안전한 채널을 형성할 수 있는 ID-기반의 인증된 그룹 키 교환으로의 확장이 가능하다.The present invention provides a half forward secrecy where the previous session key is exposed when the server's fixed secret key is exposed, but the previous session key is secure even when the client's fixed private key is exposed. In addition, key exchange between users in different domain areas, i.e., a client, can establish a secure channel with itself and with servers in other domain areas. Moreover, the protocol according to the present invention can be extended to an ID-based authenticated group key exchange where multiple clients can form a secure channel around a single server.
Claims (9)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050093485A KR100642745B1 (en) | 2005-10-05 | 2005-10-05 | ID-based key exchange method and apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050093485A KR100642745B1 (en) | 2005-10-05 | 2005-10-05 | ID-based key exchange method and apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
KR100642745B1 true KR100642745B1 (en) | 2006-11-10 |
Family
ID=37653790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050093485A Expired - Fee Related KR100642745B1 (en) | 2005-10-05 | 2005-10-05 | ID-based key exchange method and apparatus |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100642745B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101363290B1 (en) | 2012-08-30 | 2014-02-18 | 고려대학교 산학협력단 | Lightweight authentication key agreement method between terminals |
CN116074019A (en) * | 2023-01-12 | 2023-05-05 | 肇庆学院 | Identity authentication method, system and medium between mobile client and server |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030037145A (en) * | 2001-11-02 | 2003-05-12 | 한국전자통신연구원 | the method and the system for passward based key change |
KR20040050625A (en) * | 2002-12-10 | 2004-06-16 | 한국전자통신연구원 | Authentication Method using Symmetric Authenticated Key Exchange and Asymmetric Authenticated Key Exchange |
US20050084114A1 (en) | 2003-10-20 | 2005-04-21 | Jung Bae-Eun | Conference session key distribution method in an ID-based cryptographic system |
-
2005
- 2005-10-05 KR KR1020050093485A patent/KR100642745B1/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20030037145A (en) * | 2001-11-02 | 2003-05-12 | 한국전자통신연구원 | the method and the system for passward based key change |
KR20040050625A (en) * | 2002-12-10 | 2004-06-16 | 한국전자통신연구원 | Authentication Method using Symmetric Authenticated Key Exchange and Asymmetric Authenticated Key Exchange |
US20050084114A1 (en) | 2003-10-20 | 2005-04-21 | Jung Bae-Eun | Conference session key distribution method in an ID-based cryptographic system |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101363290B1 (en) | 2012-08-30 | 2014-02-18 | 고려대학교 산학협력단 | Lightweight authentication key agreement method between terminals |
CN116074019A (en) * | 2023-01-12 | 2023-05-05 | 肇庆学院 | Identity authentication method, system and medium between mobile client and server |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11722305B2 (en) | Password based threshold token generation | |
EP1847062B1 (en) | Challenge-response signatures and secure diffie-hellman protocols | |
US8437473B2 (en) | Small public-key based digital signatures for authentication | |
CN111682938B (en) | Three-party authenticatable key agreement method facing centralized mobile positioning system | |
Tseng et al. | A pairing-based user authentication scheme for wireless clients with smart cards | |
US20100153728A1 (en) | Acceleration of key agreement protocols | |
JP2001313634A (en) | Method for communication | |
Choi et al. | ID-based authenticated key agreement for low-power mobile devices | |
KR100989185B1 (en) | Session key distribution method through RSA-based password authentication | |
EP1905186A2 (en) | Cryptographic authentication, and/or establishment of shared cryptographic keys, using a signing key encrypted with a non-one-time-pad encryption, including (but not limited to) techniques with improved security against malleability attacks | |
Zhu et al. | An efficient identity-based key exchange protocol with KGS forward secrecy for low-power devices | |
Wen et al. | Provably secure authenticated key exchange protocols for low power computing clients | |
Tan | An efficient identity-based tripartite authenticated key agreement protocol | |
CN101116281A (en) | Challenge-response signatures and secure diffie-hellman protocols | |
Harn et al. | Authenticated Diffie–Hellman key agreement protocol using a single cryptographic assumption | |
Pu et al. | Secure verifier-based three-party password-authenticated key exchange | |
Yoon et al. | A new authentication scheme for session initiation protocol | |
Xia et al. | Breaking and repairing the certificateless key agreement protocol from ASIAN 2006 | |
KR100642745B1 (en) | ID-based key exchange method and apparatus | |
Mangipudi et al. | Authentication and Key Agreement Protocols Preserving Anonymity. | |
Wu et al. | A publicly verifiable PCAE scheme for confidential applications with proxy delegation | |
Brown et al. | A small subgroup attack on Arazi’s key agreement protocol | |
Scott | M-Pin: A Multi-Factor Zero Knowledge Authentication Protocol | |
Wei et al. | Secure identity‐based multisignature schemes under quadratic residue assumptions | |
Vesterås | Analysis of key agreement protocols |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20051005 |
|
PA0201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20061026 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20061030 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20061031 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PR1001 | Payment of annual fee |
Payment date: 20091009 Start annual number: 4 End annual number: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20101022 Start annual number: 5 End annual number: 5 |
|
FPAY | Annual fee payment |
Payment date: 20110914 Year of fee payment: 6 |
|
PR1001 | Payment of annual fee |
Payment date: 20110914 Start annual number: 6 End annual number: 6 |
|
FPAY | Annual fee payment |
Payment date: 20121004 Year of fee payment: 7 |
|
PR1001 | Payment of annual fee |
Payment date: 20121004 Start annual number: 7 End annual number: 7 |
|
LAPS | Lapse due to unpaid annual fee | ||
PC1903 | Unpaid annual fee |