KR20170074195A - Forward secure non-interactive key exchange method from indistinguishability obfuscation - Google Patents
Forward secure non-interactive key exchange method from indistinguishability obfuscation Download PDFInfo
- Publication number
- KR20170074195A KR20170074195A KR1020160174393A KR20160174393A KR20170074195A KR 20170074195 A KR20170074195 A KR 20170074195A KR 1020160174393 A KR1020160174393 A KR 1020160174393A KR 20160174393 A KR20160174393 A KR 20160174393A KR 20170074195 A KR20170074195 A KR 20170074195A
- Authority
- KR
- South Korea
- Prior art keywords
- key
- terminal
- private key
- generating
- public
- Prior art date
Links
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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- 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/0825—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) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- 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/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Telephonic Communication Services (AREA)
Abstract
비대화형 키 교환 방법이 개시된다. 상기 비대화형 키 교환 방법은 서버가 제1 의사 난수 생성 함수, 제2 의사 난수 생성 함수 및 난독화 머신을 포함하는 공개 파라미터를 생성하는 단계, 제1 단말기가 제1 초기 개인키와 제1 공개키를 생성하고, 제2 단말기가 제2 초기 개인키와 제2 공개키를 생성하는 단계, 상기 제1 단말기가 상기 제1 단말기의 개인키인 제1 개인키를 업데이트하고, 상기 제2 단말기가 상기 제2 단말기의 개인키인 제2 개인키를 업데이트하는 단계, 및 상기 제1 단말기가 상기 제2 공개키, 상기 제1 개인키 및 시스템 시간을 이용하여 제1 공유키를 생성하고, 상기 제2 단말기가 상기 제1 공개키, 상기 제2 개인키 및 상기 시스템 시간을 이용하여 제2 공유키를 생성하는 단계를 포함한다.A non-interactive key exchange method is disclosed. The non-interactive key exchange method includes the steps of the server generating a public parameter that includes a first pseudorandom number generation function, a second pseudorandom number generation function and an obfuscation machine, the first terminal including a first initial private key and a first public key The second terminal generates a second initial private key and a second public key, the first terminal updates a first private key, which is a private key of the first terminal, and the second terminal, Updating the second private key, which is a private key of the second terminal, and the first terminal generating a first shared key using the second public key, the first private key and the system time, And the terminal generating the second shared key using the first public key, the second private key, and the system time.
Description
본 발명의 개념에 따른 실시 예는 비대화형 키 교환 방법에 관한 것으로서, 특히 구분불가능성 난독화(Indistinguishability obfuscation)로 설계된 전방향 안전성(Forward Security)을 만족하며 시스템 수명(Life time)의 제약과 개인키 업데이트를 위한 공개 파라미터를 없애 관리 비용을 최소화하여 시스템 효율성을 높일 수 있는 비대화형 키 교환 방법에 관한 것이다.The embodiment according to the concept of the present invention relates to a non-interactive key exchange method, and more particularly to a key exchange method that satisfies forward security designed by indistinguishability obfuscation, To a non-interactive key exchange method capable of increasing system efficiency by minimizing management costs by eliminating public parameters for key update.
구분불가능성 난독화(Indistinguishability obfuscation).Indistinguishability obfuscation.
난독화는 프로그램의 내부 작동 절차를 파악할 수 없도록 설계하는 것을 목표로 한다. 난독화의 강력한 형태인 ‘블랙박스 난독화 기계(black box obfuscator)’는 수학적으로 설계가 불가능하다는 것이 증명되었다. 이후 순화된 형태로 정의된 것이 구분불가능성 난독화이다. 구분불가능성 난독화를 사용하여 동일한 기능을 수행하는 두 개의 원본 프로그램을 난독화한 경우 두 개의 난독화 프로그램을 구분할 수 없다는 것이 알려져 있다. 최근 학계에서는 구분불가능성 난독화를 사용한 암호프리미티브 개발 연구가 활발히 진행중이다.Obfuscation aims to design the program so that its internal operating procedures can not be grasped. The 'black box obfuscator', a powerful form of obfuscation, has proven to be impossible to design mathematically. What is defined in the later refined form is incomprehensible obfuscation. It is known that two obfuscated programs can not be distinguished when obfuscating two original programs that perform the same function by using incompatible sexually obfuscation. Recently, researches on the development of cryptographic primitive using indiscriminatable obfuscation are actively underway in the academic world.
비대화형 키 교환 기법(Non-interactive Key Exchange).Non-interactive Key Exchange.
비대화형 키 교환 기법은 상대방의 공개키를 안다는 가정 하에 아무런 추가전송 없이 키 교환이 가능하다. 키 교환을 위한 대표 객체나 기관이 없는 상황에서 일반적인 키 교환을 시행하기 위한 시스템 내의 전체 전송량은 사용자수의 제곱에 비례한다. 또한, 시스템 내 보안의 유지 및 보수를 위해 시행되는 공개키 및 개인키 업데이트 시에도 키 교환을 위한 전송량은 시스템 내 전송효율적인 면에 지속적인 영향을 미친다. 그러므로 전송 횟수 및 전송량을 줄이는 것은 시스템 내의 효율성을 올리는데 큰 기여도를 갖는다. 특히 비대화형 키 교환은 사전 전송이 없이 키 교환이 가능하기 때문에 시스템 내의 전체 통신량이 부담되는 환경 또는 전송횟수에 민감한 환경에 적합하게 사용될 수 있는 키 교환 프로토콜이다.The non-interactive key exchange scheme can exchange keys without any additional transmission, assuming that the other party's public key is known. In the absence of representative objects or entities for key exchange, the overall throughput within a system for performing a generic key exchange is proportional to the square of the number of users. In addition, even when the public key and the private key are updated for maintenance and repair of security in the system, the transmission amount for key exchange has a continuous influence on the transmission efficiency in the system. Therefore, reducing the number of transmissions and transmissions contributes greatly to the efficiency of the system. In particular, non-interactive key exchange is a key exchange protocol that can be used for environments that are subject to full traffic in the system or sensitive to the number of transmissions because it is possible to exchange keys without prior transmission.
전방향 안전성(Forward secrecy).Forward secrecy.
키 교환에서 전방향 안전성이란 사용자의 개인키가 노출되어도 이전에 맺었던 세션키의 안전성이 보장됨을 의미한다.The forward security in key exchange means that the security of the session key established before the user's private key is guaranteed is guaranteed.
기존의 키 교환 기법(Interactive Key Exchange)에서는 전방향 안전성을 만족하기 위해 사용자들이 키 교환을 시행하기 전에 각각 임시키(Ephemeral private key & Ephemeral public key)를 만들어 임시 공개키(Ephemeral public key)를 교환하고 교환된 임시키 정보를 세션키 생성 과정에 관여시킨다. 그러므로 사용자의 개인키가 노출되어도 공격자가 이전에 맺은 세션키에서 사용된 임시 개인키를 모르면 세션키의 정보를 유추해낼 수 없다.In an existing key exchange scheme, users must create an ephemeral private key and an ephemeral public key before exchanging keys to satisfy the forward security. And exchanges the temporary key information with the session key generation process. Therefore, even if the user's private key is exposed, the attacker can not guess the session key information if he / she does not know the temporary private key used in the previous session key.
사전전송이 필요없는 키 교환 기법(Non-Interactive Key Exchange)에서는 전방향 안전성을 만족하기 위해 개인키를 일정기간을 주기로 업데이트하여 업데이트 이후의 개인키가 노출되어도 이전에 맺은 세션키에 대해 당시의 개인키를 알지 못하면 세션키의 정보를 유추해낼 수 없도록 하는 기법이 제안되고 있다.In the non-interactive key exchange, which requires no pre-transmission, the private key is updated periodically at a predetermined period in order to satisfy the forward safety, so that even if the private key after the update is exposed, If the key is not known, the session key information can not be inferred.
Pointcheval 등의 연구(Forward Secure Non-Interactive Key Exchange).Pointcheval et al. (Forward Secure Non-Interactive Key Exchange).
Pointcheval 등은 전방향 안전성을 만족하는 비대화형 키 교환 기법을 제안하였다. Pointcheval 등의 연구에서는 전방향 안전성을 만족시키기 위해 사용자의 개인키를 업데이트하는 방식을 사용하는데 multilinear map을 이용하여 기법을 제안 하였다. 이 기법에서는 시스템 수명이 정해져 있는데 시스템 수명을 N이라 할 때 개인키 업데이트를 위한 공개파라미터는 의 사이즈를 갖는다.Pointcheval et al. Proposed a non - interactive key exchange scheme that satisfies all - directional security. Pointcheval et al. Proposed a method using a multilinear map to update the user 's private key to satisfy the forward safety. In this technique, the lifetime of the system is fixed. When N is the lifetime of the system, the public parameters for updating the private key are .
본 발명이 이루고자 하는 기술적인 과제는 전방향 안전성을 만족하는 비대화형 키 교환 기술의 시스템 수명 제약을 없애고 공개 파라미터를 최소화하여 효율성을 극대화한 비대화형 키 교환 방법을 제공하는 것이다.SUMMARY OF THE INVENTION The present invention has been made in view of the above problems, and it is an object of the present invention to provide a non-interactive key exchange method that maximizes efficiency by eliminating system lifetime constraints of a non-interactive key exchange technology satisfying all-directional safety and minimizing disclosure parameters.
본 발명의 실시 예에 따른 비대화형 키 교환 방법은, 서버가 제1 의사 난수 생성 함수, 제2 의사 난수 생성 함수 및 난독화 머신을 포함하는 공개 파라미터를 생성하는 단계, 제1 단말기가 제1 초기 개인키와 제1 공개키를 생성하고, 제2 단말기가 제2 초기 개인키와 제2 공개키를 생성하는 단계, 상기 제1 단말기가 상기 제1 단말기의 개인키인 제1 개인키를 업데이트하고, 상기 제2 단말기가 상기 제2 단말기의 개인키인 제2 개인키를 업데이트하는 단계, 및 상기 제1 단말기가 상기 제2 공개키, 상기 제1 개인키 및 시스템 시간을 이용하여 제1 공유키를 생성하고, 상기 제2 단말기가 상기 제1 공개키, 상기 제2 개인키 및 상기 시스템 시간을 이용하여 제2 공유키를 생성하는 단계를 포함한다.A non-interactive key exchange method according to an embodiment of the present invention includes: generating a public parameter including a first pseudo random number generation function, a second pseudo random number generation function, and an obfuscation machine; Generating a first private key and a first public key, generating a second initial private key and a second public key by the second terminal, updating the first private key, which is the private key of the first terminal, , The second terminal updating a second private key that is a private key of the second terminal, and the first terminal transmitting the first public key, the first private key, And the second terminal generating the second shared key using the first public key, the second private key, and the system time.
본 발명의 다른 실시 예에 따른 비대화형 키 교환 방법은, 제1 단말기가 제1 초기 개인키와 제1 공개키를 생성하는 단계, 상기 제1 단말기가 상기 제1 단말기의 개인키인 제1 개인키를 업데이트하는 단계, 및 상기 제1 단말기가 제2 단말기로부터 수신된 제2 단말기의 제2 공개키, 상기 제1 개인키 및 시간 정보를 이용하여 공유키를 생성하는 단계를 포함하고, 상기 제1 공개키는 상기 제1 단말기가 제1 공유키 생성 프로그램을 생성하는 단계 및 상기 제1 단말기가 서버에 의해 공개된 공개 파라미터에 포함된 난독화 머신을 이용하여 상기 제1 공유키 생성 프로그램을 난독화하는 단계를 통하여 생성된 난독화된 제1 공유키 생성 프로그램인 것을 특징으로 한다. A non-interactive key exchange method according to another embodiment of the present invention includes the steps of: a first terminal generating a first initial private key and a first public key; And generating the shared key using the second public key, the first private key and the time information of the second terminal received from the second terminal, 1 public key is generated by the first terminal creating a first shared key generation program and causing the first terminal to obfuscate the first shared key generation program using the obfuscation machine included in the disclosure parameters disclosed by the server Wherein the first shared key generating program is an obfuscated first shared key generating program generated through a step of generating a shared key.
본 발명의 실시 예에 따른 비대화형 키 교환 방법에 의할 경우, 키 교환시 전송량을 최소화하여 전송효율을 높일 수 있으며, 비대화형 키 교환 프로토콜로 상대방의 응답이 필요없이 사전 연산이 가능한 효과가 있다.According to the non-interactive key exchange method according to the embodiment of the present invention, the transmission efficiency can be increased by minimizing the transmission amount in the key exchange, and it is possible to perform the pre-operation without the response of the other party by the non-interactive key exchange protocol .
또한, 본 발명에 의할 경우, 전방향 안전성을 만족하여 보안 사고 발생시 피해를 최소화할 수 있으며, 시스템 수명 제약이 없고 개인키 업데이트를 위한 공개 파라미터가 없어 관리 비용을 절감할 수 있는 효과가 있다.In addition, according to the present invention, it is possible to minimize the damage in case of a security incident by satisfying all-directional safety, and there is no restriction on the life span of the system, and there is no disclosure parameter for updating the private key.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 사용자 단말에 의해 생성된 공유키 생성 프로그램의 일 예를 도시한다.
도 2는 본 발명의 일 실시 예에 의한 비대화형 키 교환 시스템을 도시한다.
도 3은 도 1에 도시된 제1 단말기의 기능 블럭도이다.
도 4는 도 2에 도시된 비대화형 키 교환 시스템 상에서 수행되는 키 교환 방법을 설명하기 위한 흐름도이다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS In order to more fully understand the drawings recited in the detailed description of the present invention, a detailed description of each drawing is provided.
1 shows an example of a shared key generation program generated by a user terminal.
FIG. 2 illustrates a non-interactive key exchange system according to an embodiment of the present invention.
3 is a functional block diagram of the first terminal shown in FIG.
4 is a flowchart illustrating a key exchange method performed on the non-interactive key exchange system shown in FIG.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.It is to be understood that the specific structural or functional description of embodiments of the present invention disclosed herein is for illustrative purposes only and is not intended to limit the scope of the inventive concept But may be embodied in many different forms and is not limited to the embodiments set forth herein.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에서 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.The embodiments according to the concept of the present invention can make various changes and can take various forms, so that the embodiments are illustrated in the drawings and described in detail herein. It should be understood, however, that it is not intended to limit the embodiments according to the concepts of the present invention to the particular forms disclosed, but includes all modifications, equivalents, or alternatives falling within the spirit and scope of the invention.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 벗어나지 않은 채, 제1 구성 요소는 제2 구성 요소로 명명될 수 있고 유사하게 제2 구성 요소는 제1 구성 요소로도 명명될 수 있다.The terms first, second, etc. may be used to describe various elements, but the elements should not be limited by the terms. The terms may be named for the purpose of distinguishing one element from another, for example, without departing from the scope of the right according to the concept of the present invention, the first element may be referred to as a second element, The component may also be referred to as a first component.
어떤 구성 요소가 다른 구성 요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성 요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성 요소가 다른 구성 요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는 중간에 다른 구성 요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성 요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.It is to be understood that when an element is referred to as being "connected" or "connected" to another element, it may be directly connected or connected to the other element, . On the other hand, when an element is referred to as being "directly connected" or "directly connected" to another element, it should be understood that there are no other elements in between. Other expressions that describe the relationship between components, such as "between" and "between" or "neighboring to" and "directly adjacent to" should be interpreted as well.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로서, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 본 명세서에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성 요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises" or "having" and the like are used to specify that there are features, numbers, steps, operations, elements, parts or combinations thereof described herein, But do not preclude the presence or addition of one or more other features, integers, steps, operations, components, parts, or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the meaning of the context in the relevant art and, unless explicitly defined herein, are to be interpreted as ideal or overly formal Do not.
이하, 본 명세서에 첨부된 도면들을 참조하여 본 발명의 실시 예들을 상세히 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings attached hereto.
우선, 본 발명의 일 실시 예에 의한 비대화형 키 교환 방법에서 사용되는 알고리즘은 다음과 같다.First, the algorithm used in the non-interactive key exchange method according to an embodiment of the present invention is as follows.
1. 알고리즘은 시스템 관리자가 공개 파라미터를 생성하는 알고리즘이다.One. The algorithm is an algorithm in which system administrators generate public parameters.
2. 알고리즘은 사용자가 시스템 공개 파라미터로부터 자신의 초기 개인키와 공개키(난독화된 프로그램 )를 생성하는 알고리즘이다.2. The algorithm allows the user to determine from his system public parameters his initial private key and public key (obfuscated program ). ≪ / RTI >
3. 알고리즘은 사용자가 자신의 개인키를 시스템 시간(Time Period)에 따라 업데이트하는 알고리즘이다.3. The algorithm is an algorithm in which a user updates his / her private key according to a system time period.
4. 알고리즘은 상대방과의 공유키를 생성하는 알고리즘으로 상대방의 공개키와 자신의 개인키 그리고 당시의 시스템 시간 정보를 통해 공유키를 계산한다. 이 때 자신이 생성한 공유키와 상대방이 생성한 공유키가 동일하여야 한다.4. The algorithm is an algorithm that generates a shared key with the other party. It computes the shared key through the public key of the other party, its own private key, and the system time information at that time. At this time, the shared key generated by the user and the shared key generated by the other party should be the same.
이하에서는, 각 알고리즘(또는 각 단계) 별 구체적인 동작에 대하여 상세히 기술한다.Hereinafter, specific operations for each algorithm (or each step) will be described in detail.
1. 설정 단계1. Setup Steps
시스템 관리자는 설정 단계 또는 설정 알고리즘()을 수행하여 두 종류의 의사 난수 생성기(Pseudo Random Generator) 또는 의사 난수 생성 함수를 생성한다. 상기 의사 난수 생성 함수는 제1 의사 난수 생성 함수()와 제2 의사 난수 생성 함수()를 포함할 수 있다. 그리고, 상기 시스템 관리자는 구분불가능성 난독화 머신()을 생성한다. 상기 구분불가능성 난독화 머신은 구분불가능성 난독화 프로그램으로 명명될 수도 있다.The system administrator can use the configuration step or configuration algorithm ( ) To generate two kinds of pseudo random number generators or pseudo random number generation functions. Wherein the pseudo-random number generation function is a first pseudo-random number generation function ) And a second pseudo-random number generation function ( ). And, the system administrator can use the machine which can not distinguish the obfuscation machine ( ). The indiscriminatory obfuscation machine may be called an indistinguishable obfuscation program.
상기 시스템 관리자는 상기 제1 의사 난수 생성 함수(), 상기 제2 의사 난수 생성 함수() 및 상기 구분불가능성 난독화 머신()을 시스템 파라미터()로 설정하고 시스템 파라미터()를 사용자들에게 공개할 수 있다. 상기 시스템 파라미터()는 공개 파라미터로 명명될 수도 있다.Wherein the system manager is operable to generate the first pseudo-random number generation function ( ), The second pseudo-random number generation function ( ) And the non-distinguishable obfuscation machine ( ) To the system parameters ( ) And set the system parameter ( ) To the users. The system parameters ( ) May be named as a public parameter.
2. 키 생성 단계2. Key generation step
사용자 는 키 생성 단계 또는 키 생성 알고리즘()을 수행하여 초기 개인키와 공개키를 생성한다. 알고리즘의 구체적인 과정은 다음과 같다. 사용자 는 초기 개인키 를 생성하고 도 1에 도시된 바와 같은 공유키 생성 프로그램()을 생성한다.user Is a key generation step or a key generation algorithm ( ) To generate an initial private key and a public key. The concrete procedure of the algorithm is as follows. user The initial private key And generates a shared key generation program (FIG. 1) ).
사용자 가 생성한 공유키 생성 프로그램()은 다른 사용자들의 개인키()와 시스템 시간()을 입력으로 공유키()를 계산한다. 다음으로, 사용자 는 생성한 공유키 프로그램을 구분불가능성 난독화 머신을 사용하여 난독화한다. 난독화된 공유키 생성 프로그램()은 사용자 의 공개키로 사용된다.user The shared key generation program ( ) Is the private key of other users ( ) And system time ( ) As a shared key ( ). Next, Obfuscates the generated shared key program using an indistinguishable obfuscated machine. Obfuscated shared key generator ( ) Is a user Is used as a public key.
3. 업데이트 단계3. Update steps
시스템 시간이 바뀔 때마다() 모든 사용자들은 자신의 개인키를 업데이트 단계 또는 업데이트 알고리즘()을 수행하여 업데이트한다. 개인키 업데이트 알고리즘은 다음과 같다. 이전 시간의 개인키를 입력으로 의사 난수 생성 함수를 연산한 결과를 다음 시간의 개인키로 사용한다. 즉, . 이때 사용되는 의사 난수 생성 함수는 시스템 파라미터()에 포함된 제1 의사 난수 생성 함수이거나 제2 의사 난수 생성 함수일 수 있으나, 키를 교환하는 양 당사가가 동일한 난수 생성 함수를 사용하여야 한다.Every time the system changes time ( ) Every user has his or her private key in the update phase or update algorithm ( ). The private key update algorithm is as follows. Input the private key of the previous time, and use the result of the operation of the pseudo-random number generation function as the private key of the next time. In other words, . The pseudo-random number generation function used in this case is a system parameter ) Or a second pseudo-random number generation function, but both parties exchanging keys must use the same random number generation function.
4. 공유키 생성 단계4. Shared key generation step
사용자 는 사용자 의 공개키(난독화된 프로그램 )에 자신의 개인키 와 시간 정보 를 입력으로 계산하여 결과값 을 시간 에서의 공유키로 사용한다.user User Public key (obfuscated program ) To his private key And time information Is calculated as an input, and the resultant value Time As shown in FIG.
정확성(Correctness)Correctness
다음은 사용자 가 사용자 의 공개키와 자신의 개인키 그리고 시간 정보 를 입력으로 계산한 공유키 값이다.Here are the users User ≪ / RTI > public key < RTI ID = 0.0 > Is a shared key value calculated as an input.
다음은 사용자 가 사용자 의 공개키와 자신의 개인키 그리고 시간 정보 를 입력으로 계산한 공유키 값이다.Here are the users User ≪ / RTI > public key < RTI ID = 0.0 > Is a shared key value calculated as an input.
결국, 두 사용자는 동일한 공유키를 생성할 수 있다.Eventually, both users can generate the same shared key.
도 2는 본 발명의 일 실시 예에 의한 키 교환 시스템을 도시한다.2 shows a key exchange system according to an embodiment of the present invention.
도 2를 참조하면, 키 교환 시스템(10)은 서버(100), 제1 단말기(300) 및 제2 단말기(500)를 포함한다. 도 2에는 두 개의 단말기만이 도시되어 있으나, 키 교환 시스템은 2 이상의 단말기들을 포함할 수도 있다.Referring to FIG. 2, the
설정 서버 등으로 명명될 수도 있는 서버(100)는 설정 단계 또는 설정 알고리즘을 수행하여, 시스템 파라미터(또는 공개 파라미터, )를 생성하고 생성된 시스템 파라미터()를 공개할 수 있다. 실시 예에 따라 시스템 파라미터()는 서버(100)에 의해 제1 단말기(300)와 제2 단말기(500)로 송신될 수도 있다.The
제1 단말기(300)와 제2 단말기(500) 각각은 키 생성 알고리즘을 이용하여 초기 개인키와 공개키를 생성하고, 업데이트 알고리즘을 이용하여 개인키를 업데이트하며, 공유키 생성 알고리즘을 이용하여 공유키를 생성할 수 있다.Each of the
제1 단말기(300)와 제2 단말기(500)는 PC(personal computer), 태블릿 PC, 노트북(notebook), 넷-북(net-book), e-리더(e-reader), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 또는 MP4 플레이어와 같은 데이터 처리 장치로 구현되거나, 모바일폰(mobile phone) 또는 스마트폰(smart phone)과 같은 핸드헬드 장치(handheld device)로 구현될 수 있다.The
도 3은 도 1에 도시된 제1 단말기의 기능 블럭도이다.3 is a functional block diagram of the first terminal shown in FIG.
도 1 내지 도 3을 참조하면, 제1 단말기(300)는 키 생성부(310), 공유키 생성부(330) 및 업데이트부(350)를 포함한다.1 to 3, the
키 생성부(310)는 키 생성 단계 또는 키 생성 알고리즘을 수행하여 제1 단말기(300)의 초기 개인키()와 공개키를 생성한다. 상기 공개키는 난독화된 프로그램으로써 소정의 입력에 대응하는 공유키를 출력할 수 있다. 즉, 상기 공개키는 도 1에 의해 정의되는 공유키 생성 프로그램을 시스템 파라미터()에 포함된 난독화 머신()을 이용한 난독화 동작의 결과이다. 생성된 공개키는 키 생성부(310)에 의해 제2 단말기(500)로 송신될 수 있다.The
공유키 생성부(330)는 공유키 생성 단계 또는 공유키 생성 알고리즘을 이용하여 공유키를 생성할 수 있다. 즉, 공유키 생성부(330)는 제2 단말기(500)로부터 수신된 제2 단말기의 공개키에 제1 단말기(300)의 개인키와 시스템 시간 정보를 입력으로 하여 공유키를 생성할 수 있다.The shared
업데이트부(350)는 업데이트 단계 또는 업데이트 알고리즘을 이용하여 제1 단말기(300)의 개인키를 시스템 시간에 따라 업데이트할 수 있다.The
도 3에 도시된 제1 단말기(300)의 구성들 각각은 기능 및 논리적으로 분리될 수 있음으로 나타내는 것이며, 반드시 각각의 구성이 별도의 물리적 장치로 구분되거나 별도의 코드로 작성됨을 의미하는 것이 아님을 본 발명의 기술분야의 평균적 전문가는 용이하게 추론할 수 있을 것이다.Each of the configurations of the
또한, 본 명세서에서 "~부"라 함은, 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적, 구조적 결합을 의미할 수 있다. 예컨대, 상기 모듈은 소정의 코드와 상기 소정의 코드가 수행되기 위한 하드웨어 리소스의 논리적인 단위를 의미할 수 있으며, 반드시 물리적으로 연결된 코드를 의미하거나, 한 종류의 하드웨어를 의미하는 것이 아니다.Also, in this specification, "part" may mean a functional and structural combination of hardware for carrying out the technical idea of the present invention and software for driving the hardware. For example, the module may mean a logical unit of a predetermined code and a hardware resource for executing the predetermined code, and does not necessarily mean a physically connected code or a kind of hardware.
또한, 2 단말기(500)의 기능 및 구조는 제1 단말기(300)의 기능 및 구조와 동일한 바, 이에 대한 구체적인 설명은 생략하기로 한다.The function and structure of the
도 4는 도 1에 도시된 키 교환 시스템 상에서 수행되는 키 교환 방법을 설명하기 위한 흐름도이다.4 is a flowchart illustrating a key exchange method performed on the key exchange system shown in FIG.
서버(100)는 설정 알고리즘을 이용하여 시스템 파라미터()를 생성하고(S100), 생성된 시스템 파라미터()를 공개하거나 제1 단말기(300) 또는 제2 단말기(500)로 송신할 수 있다(S120).The
제1 단말기(300)와 제2 단말기(500) 각각은 초기 개인키를 생성할 수 있다(S200, S300). 또한, 제1 단말기(300)와 제2 단말기(500) 각각은 시스템 파라미터()를 이용하여 공개키를 생성하고(S220, S320), 생성된 공개키를 교환할 수 있다(S240, S340). 즉 제1 단말기(300)는 제1 단말기의 공개키를 공개하거나 제2 단말기(500)로 송신하고, 제2 단말기(500)는 제2 단말기의 공개키를 공개하거나 제1 단말기(300)로 송신할 수 있다.Each of the
다음으로, 제1 단말기(300)와 제2 단말기(500) 각각은 공유키 생성 알고리즘을 수행하여 각각의 공유키를 생성할 수 있다(S260, S360). 이때, 제1 단말기(300)에 의해 생성된 공유키와 제2 단말기(500)에 의해 생성된 공유키는 동일하다.Next, each of the
또한, 제1 단말기(300)와 제2 단말기(500) 각각은 업데이트 알고리즘을 이용하여 개인키를 주기적으로 업데이트할 수 있다. 실시 예에 따라, 개인키를 업데이트하는 동작은 공유키를 생성하는 동작에 선행하여 수행될 수도 있다.Also, each of the
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. Accordingly, the true scope of the present invention should be determined by the technical idea of the appended claims.
100 : 서버
300 : 제1 단말기
310 : 키 생성부
330 : 공유키 생성부
350 : 업데이트부
500 : 제2 단말기100: Server
300: first terminal
310:
330: Shared key generation unit
350: Update section
500: second terminal
Claims (6)
제1 단말기가 제1 초기 개인키와 제1 공개키를 생성하고, 제2 단말기가 제2 초기 개인키와 제2 공개키를 생성하는 단계;
상기 제1 단말기가 상기 제1 단말기의 개인키인 제1 개인키를 업데이트하고, 상기 제2 단말기가 상기 제2 단말기의 개인키인 제2 개인키를 업데이트하는 단계; 및
상기 제1 단말기가 상기 제2 공개키, 상기 제1 개인키 및 시스템 시간을 이용하여 제1 공유키를 생성하고, 상기 제2 단말기가 상기 제1 공개키, 상기 제2 개인키 및 상기 시스템 시간을 이용하여 제2 공유키를 생성하는 단계를 포함하는,
비대화형 키 교환 방법.
Generating a public parameter including a first pseudorandom number generation function, a second pseudo random number generation function and an obfuscation machine;
The first terminal generating a first initial private key and a first public key, and the second terminal generating a second initial private key and a second public key;
Updating the first private key of the first terminal by the first terminal and updating the second private key of the second terminal by the second terminal; And
Wherein the first terminal generates the first public key using the second public key, the first private key and the system time, and the second terminal generates the first public key, the second private key, And generating a second shared key using the second shared key.
Non - interactive key exchange method.
상기 제1 공개키는,
상기 제1 단말기가 제1 공유키 생성 프로그램을 생성하는 단계; 및
상기 제1 단말기가 상기 난독화 머신을 이용하여 상기 제1 공유키 생성 프로그램을 난독화하는 단계를 통하여 생성된 난독화된 제1 공유키 생성 프로그램이고,
상기 제2 공개키는,
상기 제2 단말기가 제2 공유키 생성 프로그램을 생성하는 단계; 및
상기 제2 단말기가 상기 난독화 머신을 이용하여 상기 제2 공유키 생성 프로그램을 난독화하는 단계를 통하여 생성된 난독화된 제2 공유키 생성 프로그램인,
비대화형 키 교환 방법.
The method according to claim 1,
Wherein the first public key comprises:
Generating a first shared key generation program by the first terminal; And
Wherein the first terminal is an obfuscated first shared key generation program generated through obfuscation of the first shared key generation program using the obfuscation machine,
Wherein the second public key comprises:
Generating a second shared key generation program by the second terminal; And
Wherein the second terminal is an obfuscated second shared key generation program generated through obfuscation of the second shared key generation program using the obfuscation machine,
Non - interactive key exchange method.
상기 제1 단말기는 상기 제1 의사 난수 생성 함수 또는 상기 제2 의사 난수 생성 함수를 이용하여 상기 제1 개인키를 업데이트하고,
상기 제2 단말기는 상기 제1 의사 난수 생성 함수 또는 상기 제2 의사 난수 생성 함수를 이용하여 상기 제2 개인키를 업데이트하는,
비대화형 키 교환 방법.
The method according to claim 1,
Wherein the first terminal updates the first private key using the first pseudo-random number generating function or the second pseudo random number generating function,
Wherein the second terminal updates the second private key using the first pseudorandom number generation function or the second pseudorandom number generation function,
Non - interactive key exchange method.
상기 제1 단말기가 상기 제1 단말기의 개인키인 제1 개인키를 업데이트하는 단계; 및
상기 제1 단말기가 제2 단말기로부터 수신된 제2 단말기의 제2 공개키, 상기 제1 개인키 및 시간 정보를 이용하여 공유키를 생성하는 단계를 포함하고,
상기 제1 공개키는,
상기 제1 단말기가 제1 공유키 생성 프로그램을 생성하는 단계; 및
상기 제1 단말기가 서버에 의해 공개된 공개 파라미터에 포함된 난독화 머신을 이용하여 상기 제1 공유키 생성 프로그램을 난독화하는 단계를 통하여 생성된 난독화된 제1 공유키 생성 프로그램인,
비대화형 키 교환 방법.
The first terminal generating a first initial private key and a first public key;
The first terminal updating a first private key that is a private key of the first terminal; And
The first terminal generating a shared key using the second public key of the second terminal, the first private key, and the time information received from the second terminal,
Wherein the first public key comprises:
Generating a first shared key generation program by the first terminal; And
Wherein the first terminal is an obfuscated first shared key generation program generated through obfuscation of the first shared key generation program using an obfuscation machine included in a public parameter disclosed by the server,
Non - interactive key exchange method.
상기 공개 파라미터는 제1 의사 난수 생성 함수, 제2 의사 난수 생성 함수 및 상기 난독화 머신을 포함하고,
상기 제1 단말기는 제1 개인키를 입력으로 하는 상기 제1 의사 난수 생성 함수 또는 상기 제2 의사 난수 생성 함수를 계산하여 상기 제1 개인키를 업데이트하는,
비대화형 키 교환 방법.
5. The method of claim 4,
Wherein the disclosure parameter comprises a first pseudorandom number generation function, a second pseudo random number generation function and the obfuscation machine,
Wherein the first terminal updates the first private key by calculating the first pseudo-random number generating function or the second pseudo random number generating function with the first private key as an input,
Non - interactive key exchange method.
상기 제2 공개키는,
상기 제2 단말기가 제2 공유키 생성 프로그램을 생성하는 단계; 및
상기 제2 단말기가 상기 난독화 머신을 이용하여 상기 제1 공유키 생성 프로그램을 난독화하는 단계를 통하여 생성된 난독화된 제1 공유키 생성 프로그램인,
비대화형 키 교환 방법.5. The method of claim 4,
Wherein the second public key comprises:
Generating a second shared key generation program by the second terminal; And
Wherein the second terminal is an obfuscated first shared key generation program generated through obfuscation of the first shared key generation program using the obfuscation machine,
Non - interactive key exchange method.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20150182885 | 2015-12-21 | ||
KR1020150182885 | 2015-12-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20170074195A true KR20170074195A (en) | 2017-06-29 |
KR101902459B1 KR101902459B1 (en) | 2018-09-28 |
Family
ID=59280367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160174393A KR101902459B1 (en) | 2015-12-21 | 2016-12-20 | Forward secure non-interactive key exchange method from indistinguishability obfuscation |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101902459B1 (en) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140057134A (en) * | 2012-10-31 | 2014-05-12 | 삼성에스디에스 주식회사 | Method for password based authentication and apparatus executing the method |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2667539A1 (en) | 2012-05-21 | 2013-11-27 | Koninklijke Philips N.V. | Key sharing methods, device and system for configuration thereof. |
-
2016
- 2016-12-20 KR KR1020160174393A patent/KR101902459B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140057134A (en) * | 2012-10-31 | 2014-05-12 | 삼성에스디에스 주식회사 | Method for password based authentication and apparatus executing the method |
Non-Patent Citations (3)
Title |
---|
논문:(2013) * |
논문:(2014) * |
논문:(2015) * |
Also Published As
Publication number | Publication date |
---|---|
KR101902459B1 (en) | 2018-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Aman et al. | Mutual authentication in IoT systems using physical unclonable functions | |
CN105553951B (en) | Data transmission method and device | |
CN101243643B (en) | Establishment of a trusted relationship between unknown communication parties | |
Karati et al. | Provably secure and lightweight identity-based authenticated data sharing protocol for cyber-physical cloud environment | |
CN1933394A (en) | Method for undetectably impeding key strength of encryption usage for products exported to other countries | |
CN104463040A (en) | Secure input method and system for password | |
CN109309566B (en) | Authentication method, device, system, equipment and storage medium | |
CN102449632B (en) | A method of efficient secure function evaluation using resettable tamper-resistant hardware tokens | |
CN105306212B (en) | A kind of label decryption method that identity is hiding and safe by force | |
CN111246407B (en) | Data encryption and decryption method and device for short message transmission | |
Kifouche et al. | Design and implementation of a new lightweight chaos-based cryptosystem to secure IoT communications | |
Dey | SD-REE: A Cryptographic Method To Exclude Repetition From a Message | |
Hayati et al. | A novel secure root key updating scheme for LoRaWANs based on CTR_AES DRBG 128 | |
Salim et al. | A secure and timestamp-based communication scheme for cloud environment | |
CN112261015B (en) | Information sharing method, platform, system and electronic equipment based on block chain | |
Huang et al. | Constructing a Secure Point-to-Point Wireless Environment by Integrating Diffie-Hellman PKDS RSA and Stream Ciphering for Users Known to Each Other. | |
CN1661954B (en) | Method of generating a cryptosynchronism | |
KR101902459B1 (en) | Forward secure non-interactive key exchange method from indistinguishability obfuscation | |
Zhu et al. | A Survey to Design Privacy Preserving Protocol Using Chaos Cryptography. | |
CN110419195A (en) | Data managing method and system in IOT lightweight terminal environments based on proxy re-encryption | |
Hein et al. | An autonomous attestation token to secure mobile agents in disaster response | |
Grillo et al. | Transaction oriented text messaging with Trusted-SMS | |
KR20170087120A (en) | Certificateless public key encryption system and receiving terminal | |
Wang et al. | Adaptive RSA encryption algorithm for smart grid | |
CN106899611B (en) | remote safety communication method and system for weighing equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |