KR101912443B1 - Public key based encryption method and key generation server - Google Patents
Public key based encryption method and key generation server Download PDFInfo
- Publication number
- KR101912443B1 KR101912443B1 KR1020160141184A KR20160141184A KR101912443B1 KR 101912443 B1 KR101912443 B1 KR 101912443B1 KR 1020160141184 A KR1020160141184 A KR 1020160141184A KR 20160141184 A KR20160141184 A KR 20160141184A KR 101912443 B1 KR101912443 B1 KR 101912443B1
- Authority
- KR
- South Korea
- Prior art keywords
- equation
- receiving terminal
- secret key
- rti
- key
- 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/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
-
- 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)
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Abstract
공개키 기반 암호화 방법이 개시된다. 상기 공개키 기반 암호화 방법은 (a) 서버가 공개 상수와 마스터 비밀키를 생성하는 단계, (b) 상기 서버가 수신 단말의 부분 비밀키를 생성하고, 상기 부분 비밀키를 상기 수신 단말로 송신하는 단계, (c) 상기 수신 단말이 비밀값을 선택하는 단계, (d) 상기 수신 단말이 비밀키를 생성하는 단계, (e) 상기 수신 단말이 공개키를 생성하고, 상기 공개키를 상기 송신 단말로 송신하는 단계, (f) 상기 송신 단말이 메시지를 암호화하여 암호문을 생성하고, 상기 암호문을 상기 수신 단말로 송신하는 단계, 및 (g) 상기 수신 단말이 상기 암호문을 복호화하는 단계를 포함한다.A public key based encryption method is disclosed. The public key based encryption method comprises the steps of: (a) generating a public constant and a master secret key by a server; (b) generating a partial secret key of the receiving terminal and transmitting the partial secret key to the receiving terminal; (C) selecting the secret value by the receiving terminal, (d) generating the secret key by the receiving terminal, (e) generating the public key by the receiving terminal, (F) encrypting a message to generate a cipher text, and transmitting the cipher text to the receiving terminal, and (g) decoding the cipher text by the receiving terminal.
Description
본 발명의 개념에 따른 실시 예는 공개키 기반 암호화 방법 및 키 생성 서버에 관한 것으로서, 특히 사용자 단말이 키 생성 서버로부터 수신한 부분 비밀키를 이용하여 비밀키와 공개키를 생성하도록 하여 키 위탁 문제를 해결할 수 있는 공개키 기반 암호화 방법 및 키 생성 서버에 관한 것이다.The embodiment of the present invention relates to a public key based encryption method and a key generation server. More particularly, the user terminal generates a secret key and a public key using a partial secret key received from a key generation server, Based encryption method and a key generation server capable of solving the above problems.
공개키 암호 시스템은 사용자의 정보와 난수 값인 공개키를 결합하는 인증서를 필요로 한다. 이와 달리 ID(identity) 기반 암호 시스템은 사용자의 메일주소와 같은 ID를 공개키로 사용하여 별도의 인증 없이 암호화를 가능하게 하였다. 그러나, ID 기반 암호 시스템에서 모든 사용자의 비밀키가 키 생성 기관(Key Generation Center, KGC)에 의해 생성되기 때문에 악의적인 목적을 가진 키 생성 기관에 의해 모든 암호문이 복호화될 수 있는 키 위탁 문제가 존재한다.The public key cryptosystem requires a certificate that combines the user's information with the public key, which is a random number value. In contrast, an identity-based cryptosystem uses the same ID as a user's mail address as a public key, thereby enabling encryption without authentication. However, since the secret key of all users in the ID-based cryptosystem is generated by the key generation center (KGC), there exists a key cryptography problem in which all ciphertexts can be decrypted by a malicious purpose key generating organization do.
본 발명에서는 키 생성 기관과 사용자가 함께 참여하여 비밀키를 생성하는 방식을 사용하여 상술한 키 위탁 문제를 해결하고자 한다.In the present invention, a key generation entity and a user participate together to generate a secret key, thereby solving the above-mentioned problem of the key charging.
본 발명이 이루고자 하는 기술적인 과제는 키 생성 서버로부터 수신된 부분 비밀키와 수신 단말이 선택한 비밀값을 이용하여 비밀키 및 공개키를 생성하도록 하여 인증서를 사용하지 않으면서 키 위탁 문제를 해결할 수 있는 무인증서 공개키 기반 암호화 방법 및 키 생성 서버를 제공하는 것이다.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 method and apparatus for generating a secret key and a public key by using a partial secret key received from a key generation server and a secret value selected by a receiving terminal, A non-certificate public key-based encryption method and a key generation server.
본 발명의 실시 예에 따른 공개키 기반 암호화 방법은 (a) 서버가 공개 상수와 마스터 비밀키를 생성하는 단계, (b) 상기 서버가 수신 단말의 부분 비밀키를 생성하고, 상기 부분 비밀키를 상기 수신 단말로 송신하는 단계, (c) 상기 수신 단말이 비밀값을 선택하는 단계, (d) 상기 수신 단말이 비밀키를 생성하는 단계, (e) 상기 수신 단말이 공개키를 생성하고, 상기 공개키를 상기 송신 단말로 송신하는 단계, (f) 상기 송신 단말이 메시지를 암호화하여 암호문을 생성하고, 상기 암호문을 상기 수신 단말로 송신하는 단계, 및 (g) 상기 수신 단말이 상기 암호문을 복호화하는 단계를 포함한다.A public key based encryption method according to an embodiment of the present invention includes the steps of (a) generating a public constant and a master secret key by a server, (b) generating a partial secret key of a receiving terminal by the server, (C) selecting the secret value by the receiving terminal, (d) generating the secret key by the receiving terminal, (e) generating the public key by the receiving terminal, and Transmitting a public key to the transmitting terminal; (f) generating a cipher text by encrypting the message by the transmitting terminal, and transmitting the cipher text to the receiving terminal; and (g) .
또한, 본 발명의 실시 예에 따른 키 생성 서버는 위수가 소수 ()인 순환 군(), 에 속하는 임의의 생성자 () 및 해쉬 함수()를 선택하고, 각각의 ()에 대해 임의의 난수()를 선택하고 계산값()을 계산하고, 수학식 1에 의해 정의되는 공개 상수()와 수학식 2에 의해 정의되는 마스터 비밀키를 생성하는 설정부 및 각각의 에 대하여 을 만족하는 를 선택하고, 수학식 3에 의해 정의되는 벡터 를 생성하고, 수학식 4를 이용하여 수신 단말의 부분 비밀키()를 생성하는 부분 비밀키 생성부를 포함한다.In the key generation server according to the embodiment of the present invention, ( ) Cycling group ( ), ≪ / RTI > ( ) And a hash function ( ) Is selected, and each ( ) To a random number ( ) And select the calculation value ( ), And calculates an open constant ( ) And a setting unit for generating a master secret key defined by Equation (2) about Satisfy And a vector defined by equation (3) And generates a partial secret key of the receiving terminal using Equation (4) And a partial secret key generation unit for generating a partial secret key.
본 발명의 실시 예에 따른 공개키 기반 암호화 방법 및 키 생성 서버에 의할 경우 인증서를 필요로 하지 않으며, 페어링 연산을 수행하지 않기 때문에 효율적인 암호화 기법을 제공할 수 있다.The public key based encryption method and the key generation server according to the embodiment of the present invention do not require a certificate and do not perform a pairing operation, so that an efficient encryption technique can be provided.
또한, 본 발명에 의할 경우 키 생성 기관이 사용자의 비밀키를 알지 못하기 때문에 키 위탁 문제를 해결할 수 있다.In addition, according to the present invention, the key generation authority can solve the key charging problem because it does not know the secret key of the user.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 암호 시스템을 도시한다.
도 2는 도 1에 도시된 서버의 기능 블럭도이다.
도 3은 도 1에 도시된 수신 단말의 기능 블럭도이다.
도 4는 도 1에 도시된 암호 시스템 상에서 수행되는 암호화 방법을 설명하기 위한 흐름도이다.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 illustrates an encryption system according to an embodiment of the present invention.
2 is a functional block diagram of the server shown in FIG.
3 is a functional block diagram of the receiving terminal shown in FIG.
4 is a flowchart illustrating an encryption method performed on the encryption 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, a non-certificate public key cryptosystem according to the present invention will be described.
본 발명에서는 결정적 디피-헬만 가정(Decisional Diffie-Hellman Assumption, DDH) 문제를 이용하여 안전성을 증명하였으며 자세한 내용은 다음과 같다. 소수 를 위수로 가지는 순환 군(cyclic group) 에서 DDH는 다음의 두 분포가 주어졌을 때 과 을 의미 있는 확률로 구별하는 알고리즘이 존재하지 않는다는 가정이다.In the present invention, the safety has been verified by using the Decisional Diffie-Hellman Assumption (DDH) problem. The details are as follows. decimal (Cyclic group) In DDH, given the following two distributions and There is no algorithm that distinguishes them with a meaningful probability.
본 발명에 의한 무인증서 공개키 암호 기법은 설정 알고리즘(Setup), 부분 비밀키 생성 알고리즘(Partial Private Key Extract), 비밀값 설정 알고리즘(Set Secret Value), 비밀키 생성 알고리즘(Set Private Key), 공개키 생성 알고리즘(Set Public Key), 암호화 알고리즘(Encrypt) 및 복호화 알고리즘(Decrypt)의 일곱 개의 알고리즘으로 구성되어 있으며, 각 알고리즘에 대한 상세한 설명은 다음과 같다.The non-certificate public key cryptosystem according to the present invention includes a setup algorithm, a partial private key extract algorithm, a set secret value algorithm, a set private key algorithm, A set encryption algorithm (Set Public Key), an encryption algorithm (Encrypt), and a decryption algorithm (Decrypt). The detailed description of each algorithm is as follows.
1. 설정 알고리즘() 1. Setting algorithm ( )
설정 알고리즘은 보안 상수 와 공모제한 상수 을 입력받고 마스터 비밀키 와 공개 상수 를 출력한다. 설정 알고리즘은 KGC에 의해 수행되며, 공개 상수 는 KGC에 의해 공개되고, 마스터 비밀키 는 안전하게 KGC에 보관된다. 여기서, 공모제한 상수 은 KGC가 부분 비밀키를 발급해 줄 수 있는 사용자의 수를 의미할 수 있다.The set algorithm is a security constant And subscription limit constants And receives the master secret key And open constant . The set-up algorithm is performed by the KGC, Is disclosed by the KGC, and the master secret key Is safely stored in the KGC. Here, May refer to the number of users that the KGC may issue partial secret keys.
구체적으로, 설정 알고리즘에서는 위수가 소수 ()인 순환 군 를 선택하고 에 속하는 임의의 생성자 ()를 선택한다. 또한, 암호학적 해쉬 함수 ()를 선택한다. 각각의 에 대해 를 임의로 선택하고, 를 계산한다. 여기서, 공개 상수 와 마스터 비밀키 를 다음과 같이 생성한다.Specifically, in the setting algorithm, ( ) Cycling group Select ≪ / RTI > ( ). Also, the cryptographic hash function ( ). Each About Is arbitrarily selected, . Here, And master secret key Is generated as follows.
2. 부분 비밀키 생성 알고리즘() 2. Partial Secret Key Generation Algorithm ( )
부분 비밀키 생성 알고리즘은 공개 상수 , 마스터 비밀키 및 사용자 의 아이디 를 입력받아 사용자 의 부분 비밀키 를 출력한다. 부분 비밀키 생성 알고리즘은 KGC에 의해 수행되며, 부분 비밀키 는 안전한 채널을 통해 사용자 의 단말기로 전달된다.The partial secret key generation algorithm is an open constant , Master secret key And users ID of The user Partial secret key . The partial secret key generation algorithm is performed by the KGC, and the partial secret key Through a secure channel, Lt; / RTI >
즉, 키 생성 기관은 ID 기반 암호 시스템의 비밀키를 생성하는 과정과 동일하게 사용자의 부분 비밀키를 생성할 수 있다. 그러나, 부분 비밀키 생성 알고리즘에서 생성된 사용자의 부분 비밀키 는 ID 기반 암호 시스템의 비밀키와는 다르게 사용자의 비밀키로 쓰이지 않는다.That is, the key generating organization can generate the partial secret key of the user in the same manner as the process of generating the secret key of the ID-based cryptosystem. However, the partial secret key of the user generated by the partial secret key generation algorithm Unlike the secret key of the ID-based cryptosystem, it is not used as the user's secret key.
부분 비밀키 생성 알고리즘의 구체적인 동작을 살펴보면 다음과 같다.The concrete operation of the partial secret key generation algorithm will be described as follows.
을 만족하는 를 ()에 대해 임의로 고른다. 벡터 를 생성한다. 사용자 의 에 대한 부분 비밀키 를 다음과 같이 생성한다. Satisfy To ( ). vector . user of Partial secret key for Is generated as follows.
3. 비밀값 설정 알고리즘() 3. Secret value setting algorithm ( )
비밀값 설정 알고리즘은 공개 상수 와 사용자 의 아이디 를 입력받아 사용자 의 비밀값 를 출력한다. 비밀값 설정 알고리즘은 사용자 의 단말기에 의해 수행된다. 즉, 사용자 의 단말기는 키 생성 기관이 마스터 비밀키 라는 비밀값을 부분 비밀키를 생성하기 위해 사용한 것처럼 사용자 의 비밀값 ()을 생성한다.The secret value setting algorithm is an open constant And users ID of The user Secret value of . The secret- Lt; / RTI > terminal. That is, The terminal generates the master secret key < RTI ID = 0.0 > As a secret value of Secret value of ( ).
4. 비밀키 생성 알고리즘() 4. Secret Key Generation Algorithm ( )
비밀키 생성 알고리즘은 공개 상수 , 부분 비밀키 및 비밀값 를 입력받아 비밀키 를 출력한다. 비밀키 생성 알고리즘은 사용자 의 단말기에 의해 수행된다. 사용자 의 비밀키 는 다음과 같다.The secret key generation algorithm is an open constant , Partial secret key And secret value And receives the secret key . The secret key generation algorithm Lt; / RTI > terminal. user Secret key Is as follows.
5. 공개키 생성 알고리즘() 5. Public Key Generation Algorithm ( )
공개키 생성 알고리즘은 공개 상수 와 비밀값 을 입력받아 사용자 의 공개키 를 출력한다. 공개키 생성 알고리즘은 사용자 의 단말기에 의해 수행된다. 즉, 사용자 의 단말이 비밀키 를 생성하기 위해 사용한 비밀값 를 암호화 과정에서 사용해야만 사용자를 위해 암호화된 암호문을 키 생성 기관이 복호화할 수 없게 되며, 이로 인해 키 위탁 문제를 해결할 수 있다. 따라서, 사용자 의 단말기는 암호화를 위한 자신의 공개키 를 자신의 비밀값 를 사용하여 생성한 후에 공개한다. 사용자 의 공개키 는 다음과 같다.The public key generation algorithm is an open constant And secret value User Public key of . The public key generation algorithm Lt; / RTI > terminal. That is, Lt; RTI ID = 0.0 > The secret value used to generate Is used in the encryption process, the key generation agency can not decrypt the encrypted ciphertext for the user, thereby solving the key ciphering problem. Therefore, Lt; RTI ID = 0.0 > key < / RTI > To its secret value And then release it. user Public key of Is as follows.
6. 암호화 알고리즘() 6. Encryption Algorithm ( )
암호화 알고리즘은 공개 상수 , 사용자 의 공개키 , 사용자 의 아이디 및 메시지 을 입력받는다. 만약 가 정당하다면 암호문 를 출력하고, 그렇지 않다면 를 출력한다.The encryption algorithm is an open constant , user Public key of , user ID of And messages . if Ciphertext And if not, .
구체적으로, 암호화 알고리즘은 임의의 난수 ()를 선택하고, 다음과 같이 암호문 을 생성한다.Specifically, the encryption algorithm is a random number ( ) Is selected, and a cipher text .
이때 사용된 벡터 는 다음과 같다.At this time, Is as follows.
7. 복호화 알고리즘() 7. Decryption algorithm ( )
복호화 알고리즘은 암호문 , 공개 상수 및 비밀키 를 입력받는다. 만약 암호문 가 정당하다면 메시지 을 출력하고, 그렇지 않다면 를 출력한다. 암호문 는 다음 수학식을 이용하여 복호화된다.The decryption algorithm , Open constant And secret key . If the cipher text If the message is legitimate And if not, . cryptogram Is decoded using the following equation.
본 발명에 의한 암호화 기법이 정확성을 가짐은 다음 수학식을 통하여 알 수 있다.The cryptosystem according to the present invention has accuracy, as shown in the following equation.
도 1은 본 발명의 일 실시 예에 따른 암호 시스템을 도시한다.1 illustrates an encryption system according to an embodiment of the present invention.
도 1을 참조하면, 암호 시스템(10)은 서버(100), 수신 단말(300) 및 송신 단말(500)을 포함한다.Referring to FIG. 1, the
키 생성 서버 등으로 불릴 수도 있는 서버(100)는 설정 알고리즘과 부분 비밀키 생성 알고리즘을 수행한다.The
구체적으로, 서버(100)는 설정 알고리즘 또는 설정 단계를 수행하여 공개 상수 와 마스터 비밀키 를 생성할 수 있다. 공개 상수 는 서버(100)에 의해 공개되거나 수신 단말(300) 및 송신 단말(500)로 전송될 수 있다. Specifically, the
또한, 서버(100)는 부분 비밀키 생성 알고리즘 또는 부분 비밀키 생성 단계를 수행하여 수신 단말(300)의 부분 비밀키 를 생성하고 생성된 부분 비밀키 를 수신 단말(300)로 송신할 수 있다. 부분 비밀키 를 생성하는 과정에서 사용되는 수신 단말(300)의 아이디 는 수신 단말(300)로부터 수신될 수 있다.In addition, the
수신 단말(300)은 비밀값 설정 알고리즘, 비밀키 생성 알고리즘, 공개키 생성 알고리즘 및 복호화 알고리즘을 수행할 수 있다.The receiving
구체적으로, 수신 단말(300)은 비밀값 설정 알고리즘 또는 비밀값 설정 단계를 수행하여 수신 단말(300) 또는 수신 단말(300)의 사용자의 비밀값 ()을 선택할 수 있다. 선택된 비밀값 는 비밀키 생성 과정과 공개키 생성 과정에서 이용될 수 있다.Specifically, the receiving
또한, 수신 단말(300)은 비밀키 생성 알고리즘 또는 비밀키 생성 단계를 수행하여 수신 단말(300) 또는 수신 단말(300)의 사용자의 비밀키 를 생성할 수 있다. 생성된 비밀키 는 암호문 을 복호화하는 과정에서 이용될 수 있다.In addition, the receiving
또한, 수신 단말(300)은 공개키 생성 알고리즘 또는 공개키 생성 단계를 수행하여 수신 단말(300) 또는 수신 단말(300)의 사용자의 공개키 를 생성할 수 있다.In addition, the receiving
또한, 수신 단말(300)은 복호화 알고리즘 또는 복호화 단계를 수행하여 송신 단말(500)로부터 수신된 암호문 을 복호화할 수 있다.In addition, the receiving
송신 단말(500)은 암호화 알고리즘을 수행하여 암호문 를 생성할 수 있다. 구체적으로, 송신 단말(500)은 암호화 알고리즘 또는 암호화 단계를 수행하여 메시지 에 대한 암호문 를 생성할 수 있다. 생성된 암호문 은 송신 단말(500)에 의해 수신 단말(300)로 송신될 수 있다.The transmitting
수신 단말(300)과 송신 단말(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 receiving
도 2는 도 1에 도시된 서버의 기능 블럭도이다.2 is a functional block diagram of the server shown in FIG.
도 1과 도 2를 참조하면, 서버(100)는 설정부(110)와 부분 비밀키 생성부(130)를 포함한다.Referring to FIG. 1 and FIG. 2, the
설정부(110)는 설정 알고리즘 또는 설정 단계를 수행하여 공개 상수 와 마스터 비밀키 를 생성한다.The
구체적으로, 설정부(110)는 위수가 소수 ()인 순환 군 , 에 속하는 임의의 생성자 (), 및 암호학적 해쉬 함수 ()를 선택한다. 또한, 설정부(110)는 각각의 에 대해 를 임의로 선택하고, 를 계산한다. 여기서, 공개 상수 와 마스터 비밀키 는 다음 수학식을 이용하여 생성된다.More specifically, the
생성된 공개 상수 는 설정부(110)에 의해 공개되거나 수신 단말(300) 및 송신 단말(500)로 송신될 수 있다.Generated public constant May be disclosed by the
부분 비밀키 생성부(130)는 부분 비밀키 생성 알고리즘 또는 부분 비밀키 생성 단계를 수행하여 수신 단말(300)의 부분 비밀키 를 생성하고, 생성된 부분 비밀키 를 수신 단말(300)로 송신할 수 있다. 이때, 부분 비밀키 생성 과정에서 필요한 수신 단말(300)의 아이디 는 수신 단말(300)로부터 수신될 수 있다.The partial secret
구체적으로, 부분 비밀키 생성부(130)는 을 만족하는 를 ()에 대해 임의로 선택하고, 벡터 를 생성한다. 또한, 부분 비밀키 생성부(130)는 아래 수학식을 이용하여 수신 단말(300)의 아이디 또는 수신 단말(300)의 사용자의 아이디 에 대한 부분 비밀키 를 생성할 수 있다.Specifically, the partial secret
부분 비밀키 생성부(130)는 생성된 부분 비밀키 를 안전한 채널을 통해 수신 단말(300)로 송신할 수 있다.The partial secret
도 3은 도 1에 도시된 수신 단말의 기능 블럭도이다.3 is a functional block diagram of the receiving terminal shown in FIG.
도 1 내지 도 3을 참조하면, 수신 단말(300)은 비밀값 설정부(310), 비밀키 생성부(330), 공개키 생성부(350) 및 복호화부(370)를 포함한다.1 to 3, the receiving
비밀값 설정부(310)는 비밀값 설정 알고리즘 또는 비밀값 설정 단계를 수행하여 수신 단말(300)의 비밀값 를 생성할 수 있다. 구체적으로, 비밀값 설정부(310)는 공개 상수 와 수신 단말 또는 사용자의 아이디 를 입력받아 비밀값 를 출력한다.The secret
비밀키 생성부(330)는 비밀키 생성 알고리즘 또는 비밀키 생성 단계를 수행하여 수신 단말(300) 또는 수신 단말(300)의 사용자의 비밀키 를 생성할 수 있다.The secret
구체적으로, 비밀키 생성부(330)는 공개 상수 , 부분 비밀키 및 비밀값 를 입력받아 아래 수학식에 의해 정의되는 비밀키 를 생성한다.Specifically, the secret-
공개키 생성부(350)는 공개키 생성 알고리즘 또는 공개키 생성 단계를 수행하여 수신 단말(300) 또는 수신 단말(300)의 사용자의 공개키 를 생성할 수 있다.The public
구체적으로, 공개키 생성부(350)는 공개 상수 와 비밀값 을 입력받아 아래 수학식에 의해 정의되는 공개키 를 생성한다. 생성된 공개키 는 공개키 생성부(350)에 의해 공개되거나 송신 단말(500)로 송신될 수 있다.Specifically, the public
복호화부(370)는 복호화 알고리즘 또는 복호화 단계를 수행하여 송신 단말(500)로부터 수신된 암호문 을 복호화할 수 있다.The
구체적으로, 복호화부(370)는 암호문 , 공개 상수 및 비밀키 를 입력받고, 아래 수학식을 이용하여 암호문 를 복호화한다.Specifically, the
도 2와 도 3에 도시된 서버(100)와 수신 단말(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 above-mentioned " part " may mean a logical unit of a predetermined code and a hardware resource for executing the predetermined code, and it does not necessarily mean a physically connected code or a kind of hardware .
도 4는 도 1에 도시된 암호 시스템 상에서 수행되는 암호화 방법을 설명하기 위한 흐름도이다.4 is a flowchart illustrating an encryption method performed on the encryption system shown in FIG.
도 1 내지 도 4를 참조하면, 서버(100)의 설정부(110)는 보안 상수 와 를 입력받고 마스터 비밀키 와 공개 상수 를 생성한다(S100). 생성된 공개 상수 는 설정부(110)에 의해 공개되거나 수신 단말(300)과 송신 단말(500)로 송신되고, 마스터 비밀키 는 안전하게 서버(100) 내에 보관된다.1 to 4, the
또한, 서버(100)의 부분 비밀키 생성부(130)는 공개 상수 , 마스터 비밀키 및 수신 단말(300) 또는 사용자의 아이디 를 입력받아 부분 비밀키 를 생성한다(S200). 생성된 부분 비밀키 는 부분 비밀키 생성부(130)에 의해 안전한 채널을 통하여 수신 단말(300)로 송신될 수 있다.In addition, the partial secret
수신 단말(300)의 비밀값 설정부(310)는 공개 상수 와 수신 단말(300)의 아이디 를 이용하여 비밀값 을 선택한다(S300).The secret
또한, 수신 단말(300)은 공개 상수 , 부분 비밀키 및 비밀값 을 이용하여 비밀키 를 생성하고, 공개 상수 와 비밀값 을 이용하여 공개키 를 생성한다(S400). 즉, 수신 단말(300)의 비밀키 생성부(330)는 비밀키 를 생성하고, 수신 단말(300)의 공개키 생성부(350)는 공개키 를 생성한다. 생성된 공개키 는 공개키 생성부(350)에 의하여 공개되거나 송신 단말(500)로 송신될 수 있다.In addition, the receiving
암호화된 메시지를 수신 단말(300)로 송신하고자 하는 송신 단말(500)은 공개 상수 , 수신 단말(300) 또는 수신 단말(300)의 사용자의 공개키 , 및 수신 단말(300) 또는 수신 단말(300)의 사용자의 아이디 를 이용하여 메시지 을 암호화함으로써 암호문 를 생성할 수 있다(S500). 생성된 암호문 은 송신 단말(500)에 의하여 수신 단말(300)로 송신될 수 있다.The transmitting
송신 단말(500)로부터 암호문 을 수신한 수신 단말(300)의 복호화부(370)는 공개 상수 와 비밀키 를 이용하여 암호문 을 복호화함으로써 메시지 을 획득할 수 있다.From the transmitting
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.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.
10 : 암호 시스템
100 : 서버
110 : 설정부
130 : 부분 비밀키 생성부
300 : 수신 단말
310 : 비밀값 설정부
330 : 비밀키 생성부
350 : 공개키 생성부
370 : 복호화부
500 : 송신 단말10: Cryptographic system
100: Server
110: Setting section
130: partial secret key generation unit
300: receiving terminal
310: secret value setting unit
330: secret key generation unit
350: public key generation unit
370:
500: transmitting terminal
Claims (8)
(b) 상기 서버가 수신 단말의 부분 비밀키()를 생성하고, 상기 부분 비밀키()를 상기 수신 단말로 송신하는 단계;
(c) 상기 수신 단말이 비밀값()을 선택하는 단계;
(d) 상기 수신 단말이 비밀키()를 생성하는 단계;
(e) 상기 수신 단말이 공개키()를 생성하고, 상기 공개키()를 송신 단말로 송신하는 단계;
(f) 상기 송신 단말이 메시지()를 암호화하여 암호문()을 생성하고, 상기 암호문()을 상기 수신 단말로 송신하는 단계; 및
(g) 상기 수신 단말이 상기 암호문()을 복호화하는 단계를 포함하고,
상기 (a) 단계는,
위수가 소수 ()인 순환 군(), 에 속하는 임의의 생성자 () 및 해쉬 함수()를 선택하는 단계; 및
각각의 ()에 대해 임의의 난수()를 선택하고 계산값()을 계산하는 단계를 포함하고,
상기 공개 상수()는 수학식 1에 의해 정의되고,
상기 마스터 비밀키()는 수학식 2에 의해 정의되고,
상기 수학식 1은 이고,
상기 수학식 2는 이고,
상기 은 공모제한 상수이고,
상기 (b) 단계는,
각각의 에 대하여 을 만족하는 를 선택하는 단계;
수학식 3에 의해 정의되는 벡터 를 생성하는 단계; 및
수학식 4를 이용하여 상기 수신 단말의 부분 비밀키()를 생성하는 단계를 포함하고,
상기 수학식 3은,
이고,
상기 수학식 4는 이고,
상기 는 상기 수신 단말의 아이디인,
공개키 기반 암호화 방법.
(a) If the server has an open constant ( ) And the master secret key ( );
(b) the server sends a partial secret key of the receiving terminal ), And the partial secret key ( To the receiving terminal;
(c) when the receiving terminal receives the secret value );
(d) the receiving terminal sends a secret key );
(e) receiving the public key ), And the public key To the transmitting terminal;
(f) the transmitting terminal sends a message ) And encrypts the cipher text ), And generates the cipher text ( To the receiving terminal; And
(g) receiving the cipher text ), The method comprising:
The step (a)
The number of stars ( ) Cycling group ( ), ≪ / RTI > ( ) And a hash function ( ); And
Each ( ) To a random number ( ) And select the calculation value ( ), ≪ / RTI >
The disclosure constant ( ) Is defined by Equation (1)
The master secret key ( ) Is defined by Equation (2)
Equation (1) ego,
Equation (2) ego,
remind Is an open call limit constant,
The step (b)
Each about Satisfy ;
The vector < RTI ID = 0.0 > ≪ / RTI > And
(4) < / RTI >< RTI ID = 0.0 > ), ≪ / RTI >
Equation (3)
ego,
Equation (4) ego,
remind Which is an ID of the receiving terminal,
Public key based encryption method.
상기 비밀키()는 수학식 5에 의해 정의되고,
상기 수학식 5는 인,
공개키 기반 암호화 방법.
3. The method of claim 2,
The secret key ( ) Is defined by Equation (5)
Equation (5) sign,
Public key based encryption method.
상기 공개키()는 수학식 6에 의해 정의되고,
상기 수학식 6은 인,
공개키 기반 암호화 방법.
The method of claim 3,
The public key ( ) Is defined by equation (6)
Equation (6) sign,
Public key based encryption method.
상기 단계 (f)는,
임의의 난수 를 선택하는 단계; 및
수학식 7을 이용하여 암호문()을 생성하는 단계를 포함하고,
상기 수학식 7은,
이고,
벡터 는 수학식 8에 의해 정의되고,
상기 수학식 8은,
인,
공개키 기반 암호화 방법.
5. The method of claim 4,
The step (f)
Random number ; And
Using Equation (7) ), ≪ / RTI >
Equation (7)
ego,
vector Is defined by < RTI ID = 0.0 > (8)
Equation (8)
sign,
Public key based encryption method.
상기 수신 단말은 수학식 9를 이용하여 상기 암호문()을 복호화하고,
상기 수학식 9는 인,
공개키 기반 암호화 방법.
6. The method of claim 5,
The receiving terminal uses the cipher text ( ),
Equation (9) sign,
Public key based encryption method.
각각의 에 대하여 을 만족하는 를 선택하고, 수학식 3에 의해 정의되는 벡터 를 생성하고, 수학식 4를 이용하여 수신 단말의 부분 비밀키()를 생성하는 부분 비밀키 생성부를 포함하고,
상기 수학식 1은 이고,
상기 수학식 2는
상기 수학식 3은,
이고,
상기 수학식 4는 이고,
상기 는 상기 수신 단말의 아이디이고,
상기 은 공모제한 상수인,
키 생성 서버.
The number of stars ( ) Cycling group ( ), ≪ / RTI > ( ) And a hash function ( ) Is selected, and each ( ) To a random number ( ) And select the calculation value ( ), And calculates an open constant ( ) And a master secret key (defined by equation ); And
Each about Satisfy And a vector defined by equation (3) And generates a partial secret key of the receiving terminal using Equation (4) And a partial secret key generation unit for generating a partial secret key,
Equation (1) ego,
Equation (2)
Equation (3)
ego,
Equation (4) ego,
remind Is the ID of the receiving terminal,
remind Is the open competition limit constant,
Key generation server.
상기 설정부는 상기 공개 상수()를 공개하고,
상기 부분 비밀키 생성부는 상기 부분 비밀키()를 상기 수신 단말로 송신하는,
키 생성 서버.8. The method of claim 7,
The setting unit sets the public constant ( However,
The partial secret key generation unit generates the partial secret key To the receiving terminal,
Key generation server.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160141184A KR101912443B1 (en) | 2016-10-27 | 2016-10-27 | Public key based encryption method and key generation server |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160141184A KR101912443B1 (en) | 2016-10-27 | 2016-10-27 | Public key based encryption method and key generation server |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20180046425A KR20180046425A (en) | 2018-05-09 |
KR101912443B1 true KR101912443B1 (en) | 2018-10-29 |
Family
ID=62200694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160141184A KR101912443B1 (en) | 2016-10-27 | 2016-10-27 | Public key based encryption method and key generation server |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101912443B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11496287B2 (en) | 2020-08-18 | 2022-11-08 | Seagate Technology Llc | Privacy preserving fully homomorphic encryption with circuit verification |
US11575501B2 (en) | 2020-09-24 | 2023-02-07 | Seagate Technology Llc | Preserving aggregation using homomorphic encryption and trusted execution environment, secure against malicious aggregator |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101327980B1 (en) | 2012-01-19 | 2013-11-13 | 서울대학교산학협력단 | ID-based additive homomorphic encryption method |
-
2016
- 2016-10-27 KR KR1020160141184A patent/KR101912443B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101327980B1 (en) | 2012-01-19 | 2013-11-13 | 서울대학교산학협력단 | ID-based additive homomorphic encryption method |
Non-Patent Citations (2)
Title |
---|
Al-Riyami, Sattam S., and Kenneth G. Paterson. "Certificateless Public Key Cryptography." International Conference on the Theory and Application of Cryptology and Information Security(2003.12.04.)* |
Baek, Joonsang, Reihaneh Safavi-Naini, and Willy Susilo. "Certificateless Public Key Encryption without Pairing." International Conference on Information Security (2005.09.23.)* |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11496287B2 (en) | 2020-08-18 | 2022-11-08 | Seagate Technology Llc | Privacy preserving fully homomorphic encryption with circuit verification |
US11575501B2 (en) | 2020-09-24 | 2023-02-07 | Seagate Technology Llc | Preserving aggregation using homomorphic encryption and trusted execution environment, secure against malicious aggregator |
Also Published As
Publication number | Publication date |
---|---|
KR20180046425A (en) | 2018-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10785019B2 (en) | Data transmission method and apparatus | |
CN113259329B (en) | Method and device for data careless transmission, electronic equipment and storage medium | |
CN110932851B (en) | PKI-based multi-party cooperative operation key protection method | |
CN111130803B (en) | Method, system and device for digital signature | |
CN109818741B (en) | Decryption calculation method and device based on elliptic curve | |
CN112804205A (en) | Data encryption method and device and data decryption method and device | |
CN101286849A (en) | Authentication system and method of a third party based on engagement arithmetic | |
CN109309566B (en) | Authentication method, device, system, equipment and storage medium | |
CN109068322A (en) | Decryption method, system, mobile terminal, server and storage medium | |
CN105530089B (en) | Attribute-based encryption method and device | |
CN105025036A (en) | Cognitive ability test value encryption and transmission method based on internet | |
KR101912443B1 (en) | Public key based encryption method and key generation server | |
CN101420687B (en) | Identity verification method based on mobile terminal payment | |
EP2680528B1 (en) | Method, device and system for proxy transformation | |
CN102036194B (en) | Method and system for encrypting MMS | |
KR101695361B1 (en) | Terminology encryption method using paring calculation and secret key | |
CN109361506B (en) | Information processing method | |
KR101793528B1 (en) | Certificateless public key encryption system and receiving terminal | |
KR101388452B1 (en) | Method of migrating certificate to mobile terminal using certificate transmission server based on one-time public information and apparatus using the same | |
CN110636502A (en) | Wireless encryption communication method and system | |
KR101728281B1 (en) | Method for data encryption and decryption possible multiple password settings | |
CN116781243B (en) | Unintentional transmission method based on homomorphic encryption, medium and electronic equipment | |
Balitanas | Wi Fi protected access-pre-shared key hybrid algorithm | |
KR101740958B1 (en) | Encryption system and method | |
Panwar | Asymmetric Key Cryptography |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |