KR101599996B1 - Server and system for revocable identity based encryption - Google Patents
Server and system for revocable identity based encryption Download PDFInfo
- Publication number
- KR101599996B1 KR101599996B1 KR1020140175081A KR20140175081A KR101599996B1 KR 101599996 B1 KR101599996 B1 KR 101599996B1 KR 1020140175081 A KR1020140175081 A KR 1020140175081A KR 20140175081 A KR20140175081 A KR 20140175081A KR 101599996 B1 KR101599996 B1 KR 101599996B1
- Authority
- KR
- South Korea
- Prior art keywords
- key
- server
- terminal
- update
- generated
- 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
- H04L63/00—Network architectures or network communication protocols for network security
-
- 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
-
- 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
Abstract
Description
본 발명의 개념에 따른 실시 예는 폐기가능한 ID 기반 암호 서버 및 시스템에 관한 것으로, 특히 효율적으로 만료된 사용자의 복호화키를 폐기할 수 있고, 서버의 마스터키로 사용자의 데이터를 복호화하는 것이 불가능한 폐기가능한 ID 기반 암호 서버 및 시스템에 관한 것이다.An embodiment according to the concept of the present invention relates to a discardable ID-based encryption server and system, and more particularly to a discardable ID-based encryption server and system capable of discarding a decryption key of an expired user efficiently, ID based password server and system.
공개키 기반 구조(Public Key Infrastructure, PKI)에 기반한 공개키 암호(Public Key Encryption) 시스템에서는 암호화키와 복호화키가 임의의 값(Random string or Random value)으로 존재하기 때문에 암호화키와 사용자의 관계를 인증할 수 있는 인증서(Certificate)가 필요하며, 인증서는 인증서 발급 기관(Central Authority)에 의해 발급된다. 데이터를 암호화하기 위해, 송신자는 수신자의 공개키와 공개키에 대한 인증서를 수신자로부터 미리 수신받아 키에 대한 검증을 수행한 후에 데이터를 암호화한다. 이와 같은 인증서 사용의 불편함을 해결하기 위하여 ID기반 암호 시스템(Identity Based Encryption, IBE)이 개발되었다.In a public key encryption system based on a public key infrastructure (PKI), since an encryption key and a decryption key exist in a random value (random string or random value), a relationship between an encryption key and a user A certificate is required to be authenticated, and the certificate is issued by the certificate authority (Central Authority). To encrypt the data, the sender receives the certificate for the public key and the public key of the recipient in advance from the recipient and performs verification of the key and then encrypts the data. In order to solve the inconvenience of using such a certificate, an Identity Based Encryption (IBE) has been developed.
ID기반 암호 시스템에서는 암호화 시 수신자를 식별할 수 있는 식별 정보, 예컨대 수신자의 이메일 주소, 사원번호, 전화번호 등이 공개키로 사용된다. 수신자를 바로 식별할 수 있는 값을 공개키로 사용하기 때문에 송신자는 별도의 키에 대해 인증할 필요가 없으며, 결과적으로 시스템 상에서 인증서를 사용하지 않아도 된다.In the ID-based cryptosystem, identification information capable of identifying the recipient at the time of encryption, for example, the recipient's e-mail address, employee number, and telephone number, is used as a public key. Since the value that can identify the recipient is used as the public key, the sender does not have to authenticate to the separate key, and consequently no certificate is required in the system.
그러나, 각 사용자가 발급받는 복호화키는 서버의 마스터키에 기초하여 만들어지기 때문에 서버는 암호 시스템 상에서 존재하는 모든 암호문에 대한 복호화가 가능하다. 수많은 사용자들의 데이터를 저장하는 클라우드 스토리지 환경에서 기존의 ID 기반 암호 시스템을 사용한다면, 클라우드 서버는 저장되어 있는 모든 데이터를 복호화할 수 있으므로 사용자의 프라이버시 침해 문제가 제기되게 된다.However, since the decryption key issued by each user is based on the master key of the server, the server can decrypt all the ciphertexts existing in the cryptographic system. If the existing ID-based cryptosystem is used in a cloud storage environment that stores a large number of users' data, the cloud server can decrypt all the stored data, thereby raising the user's privacy intrusion problem.
이와 같은 문제를 해결하기 위하여 저장 서버와 키 발급 서버를 따로 두고, ID 기반 암호 시스템을 사용할 수 있으나, 이 경우 클라우드 서버에 의한 사용자 관리(가입 및 탈퇴)가 불가능하게 되고, 외부 키 발급 서버에 의한 사용자 관리가 이루어지게 된다.In order to solve such a problem, it is possible to use the ID-based cryptosystem separately from the storage server and the key issuing server, but in this case, user management (subscription and withdrawal) by the cloud server becomes impossible, User management is performed.
따라서, 클라우드 스토리지 서비스 제공자에 의한 사용자 관리가 가능하면서 스토리지 서비스 제공자는 서버에 저장되어 있는 데이터를 복호화할 수 없는 ID 기반 암호 시스템이 필요하다.Thus, there is a need for an ID-based cryptosystem in which a storage service provider is not able to decrypt data stored in a server while user management by a cloud storage service provider is possible.
본 발명이 이루고자 하는 기술적인 과제는 서비스 제공자에 의한 사용자 관리가 가능하며, 서비스 제공 서버에 저장되어 있는 데이터를 서비스 제공자로부터 보호할 수 있는 폐기가능한 ID 기반 암호 서버 및 시스템을 제공하는 것이다.Disclosure of Invention Technical Problem [8] The present invention provides a disposable ID-based password server and system capable of managing users by a service provider and protecting data stored in a service providing server from a service provider.
본 발명의 실시 예에 따른 ID(identity) 기반 암호 서버는, 보안 상수와 사용자 집합을 입력으로 받고, 공개 파라미터와 제1 마스터키를 생성하는 셋업 모듈, 상기 공개 파라미터, 이진트리의 상태 정보, 및 상기 제1 마스터키를 이용하여 개인키를 생성하고, 생성된 개인키를 단말기로 송신하는 개인키 생성 모듈, 및 상기 공개 파라미터, 폐기 목록, 상기 상태 정보, 및 상기 제1 마스터키를 이용하여 업데이트키를 생성하고, 생성된 업데이트키를 상기 단말기로 송신하는 업데이트키 생성 모듈을 포함한다.The identity-based cryptographic server according to an embodiment of the present invention includes a setup module for receiving a security constant and a user set as input, generating a public parameter and a first master key, status information of the public parameter, A private key generation module for generating a private key using the first master key and transmitting the generated private key to the terminal, and an update module for updating the public key, the revocation list, the status information, Generating an update key, and transmitting the generated update key to the terminal.
또한, 본 발명의 실시 예에 따른 ID 기반 암호 시스템은, 상기 암호화 서버, 및 제2 서버를 포함하고, 상기 제2 서버는, 상기 보안 상수와 상기 사용자 집합을 입력으로 받고, 상기 공개 파라미터와 제2 마스터키를 생성하는 제2 셋업 모듈, 및 상기 공개 파라미터와 상기 제2 마스터키, 및 상기 단말기의 ID를 이용하여 보조키를 생성하고, 생성된 보조키를 상기 단말기로 송신하는 보조키 생성 모듈을 포함한다.Also, the ID-based cryptosystem according to the embodiment of the present invention includes the encryption server and the second server, and the second server receives the security constant and the user set as input, A second setup module for generating a second master key and an auxiliary key generation module for generating the auxiliary key using the public parameter, the second master key, and the ID of the terminal, and transmitting the generated auxiliary key to the terminal, .
본 발명의 실시 예에 따른 폐기가능한 ID 기반 암호 서버 및 시스템에 의할 경우, 서비스 제공자에 의한 사용자 관리가 가능할 뿐아니라, 서버에 저장되어 있는 데이터를 서비스 제공자로부터 보호할 수 있는 효과가 있다.According to the disposable ID-based cryptographic server and system according to the embodiment of the present invention, user management by the service provider is possible, and data stored in the server can be protected from the service provider.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 상세한 설명이 제공된다.
도 1은 본 발명의 일 실시 예에 따른 ID 기반 암호 시스템을 도시한다.
도 2는 도 1에 도시된 제1 서버의 기능 블럭도이다.
도 3은 도 1에 도시된 제2 서버의 기능 블럭도이다.
도 4는 도 1에 도시된 제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.
FIG. 1 illustrates an ID-based cryptosystem according to an embodiment of the present invention.
2 is a functional block diagram of the first server shown in FIG.
3 is a functional block diagram of the second server shown in FIG.
4 is a functional block diagram of the second terminal 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.
도 1은 본 발명의 일 실시 예에 따른 ID 기반 암호 시스템을 도시한다. 도 1을 참조하면, 클라우드 스토리지 환경에서 활용가능한 ID(identity) 기반 암호 시스템(10)은 제1 서버(100), 제2 서버(200), 제1 단말기(300), 및 제2 단말기(400)를 포함한다. 실시 예에 따라, 암호 시스템(10)은 클라우드 서비스를 제공할 수 있는 클라우드 서버(500)를 더 포함할 수 있다.FIG. 1 illustrates an ID-based cryptosystem according to an embodiment of the present invention. 1, an ID based
키 생성 기관(Key Generation Center) 또는 키 생성 서버로 불릴 수도 있는 제1 서버(100)는 개인키(USK)와 업데이트키(UK)를 생성하여, 생성된 개인키(USK)와 업데이트키(UK)를 제2 단말기(400)로 송신할 수 있다. 실시 예에 따라, 제1 서버(100)는 클라우드 서버(500)와 동일한 서버이거나, 클라우드 서버(500)와 물리적으로 분리된 서버이지만 클라우드 서버(500)의 운영자에 의해 운영되는 서버일 수도 있다.The
제2 서버(200)는 보조키(PSK)를 생성하여, 생성된 보조키(PSK)를 제2 단말기(400)로 송신할 수 있다. 제2 서버(200)는 제1 서버(100)와 물리적으로 분리되어 있을 뿐만 아니라 제1 서버(100)의 운영자와는 다른 운영자에 의해 운영되는 서버임이 원칙이나, 본 발명이 이에 제한되는 것은 아니다. 제1 서버(100)와 제2 서버(200)가 상이한 주체에 의해 운영될 경우, 제1 서버(100)를 포함하는 클라우드 서버(500)에 저장된 암호문(CT)이 임의로 복호화될 가능성을 배제할 수 있다.The
암호문(CT)을 송신하는 송신자의 단말기인 제1 단말기(300)는 제2 단말기(400)의 사용자의 ID 또는 제2 단말기(400)의 ID를 이용하여 메시지를 암호화하여 암호문(CT)를 생성한다. 또한, 제1 단말기(300)는 생성된 암호문(CT)을 클라우드 서버(500)로 송신할 수 있다. 실시 예에 따라, 제1 단말기(300)은 생성된 암호문(CT)을 유무선 통신망을 통하여 제2 단말기(400)로 직접 송신할 수도 있다.The
암호문(CT)을 수신하는 수신자의 단말기인 제2 단말기(400)는 제1 서버(100)로부터 개인키(USK)와 업데이트키(UK)를 수신하고, 제2 서버(200)로부터 보조키(PSK)를 수신할 수 있다. 제2 단말기는 수신된 개인키(USK), 업데이트키(UK), 및 보조키(PSK)를 이용하여 복호화키를 생성한다. 제2 단말기는 상기 복호화키를 이용하여 제1 단말기(300) 또는 클라우드 서버(500)로부터 수신한 암호문(CT)을 복호화할 수 있다.The
제1 단말기(300) 또는 제2 단말기(400)는 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
클라우드 서버(500)는 클라우드 서비스를 제공하는 서버일 수 있다. The
도 2는 도 1에 도시된 제1 서버의 기능 블럭도이다. 도 1과 도 2를 참조하면, 제1 서버(100)는 셋업 모듈(110), 개인키 생성 모듈(130), 및 업데이트키 생성 모듈(150)을 포함한다. 실시 예에 따라, 제1 서버(100)는 폐기 모듈(170)을 더 포함할 수 있다.2 is a functional block diagram of the first server shown in FIG. Referring to FIGS. 1 and 2, the
셋업 모듈(110)은 보안 상수(1λ)와 사용자의 집합(N)을 입력으로 하는 셋업 알고리즘()을 수행하여 공개 파라미터(PP)와 제1 마스터키(MKServer)를 생성한다. The
구체적으로, 셋업 모듈(110)은 소수(prime number) p를 위수로 갖는 겹선형 군(p, G, GT, e)을 생성하고, g를 겹선형 군(G)의 정규 생성원으로 한다.Specifically, the set-
또한, 셋업 모듈(110)은 임의의 난수()를 선택하여 제1 공개 파라미터()를 생성한다. 또한, 셋업 모듈(110)은 임의의 스트링(string)에 해당하는 입력값을 타원곡선 위의 점으로 매핑하는 매핑 함수()와 매핑 함수()를 선택한다.In addition, the
셋업 모듈(110)은 정규 생성원(g), 겹선형 군(G), 제1 공개 파라미터(), 매핑 함수(), 및 매핑 함수()를 포함하는 공개 파라미터(PP)를 공개한다. 본 발명에서 이용되는 공개 파라미터() 중 제2 공개 파라미터()는 제2 서버(200)에 의해 생성된 파라미터일 수 있다.The
또한, 셋업 모듈(110)은 제1 마스터키()를 생성한다. 생성된 제1 마스터키는 사용자의 개인키와 업데이트키를 생성하는 과정에서 이용될 수 있다.The
개인키 생성 모듈(130)은 시간(T), ID, 제1 마스터키, 이진트리(BT)의 상태 정보(ST), 및 공개 파라미터를 입력으로 하는 개인키 생성 알고리즘()을 실행하여, 개인키를 생성하고, 생성된 개인키를 제2 단말기(400)로 송신한다.The private
구체적으로, 개인키 생성 모듈(130)은 이진트리(BT)의 말단 노드들 중 사용자가 할당되지 않은 임의의 말단 노드()를 선택하고, 선택된 말단 노드()에 ID를 할당한다. 그리고 개인키 생성 모듈(130)은 각각의 노드()에 대해 다음과 같은 과정을 수행한다. 여기서, 은 노드()에서부터 루트 노드(최상위 노드)까지의 경로에 포함되어 있는 노드들의 집합을 의미한다.Specifically, the private
1. 노드()에 대응하는 임의의 난수()가 정의되어 있지 않는 경우, 임의의 난수()를 선택하여 선택된 난수를 노드()에 할당 또는 정의한다.1. Node ( ) ≪ / RTI > ) Is not defined, an arbitrary random number ( ) To select the selected random number as the node ( ).
2. 임의의 난수()를 선택한다.2. Any random number ( ).
3. 아래의 수학식으로 정의되는 제1 개인키(uskθ,0)와 제2 개인키(uskθ,1)를 생성한다.3. Create a first private key (usk θ, 0 ) and a second private key (usk θ, 1 ) defined by the following equation:
개인키 생성 모듈(130)은 위의 과정들을 수행한 후에 각각의 노드(θ)에 대응하는 제1 개인키와 제2 개인키를 포함하는 개인키()를 생성하고, 생성된 개인키를 제2 단말기(400)로 송신할 수 있다.After performing the above processes, the private
업데이트키 생성 모듈(150)은 시간(T), 제1 마스터키, 이진트리(BT)의 상태 정보(ST), 및 공개 파라미터(PP)를 입력으로 하는 업데이트키 생성 알고리즘()을 실행하여 업데이트키를 생성하고, 생성된 업데이트키를 제2 단말기(400)로 송신한다.The update
즉, 업데이트키 생성 모듈(150)은 주기적으로 업데이트키를 생성하고, 생성된 업데이트키를 제2 단말기(400)로 송신한다. 제2 단말기(400)는 수신된 업데이트키를 이용하여 복호화키를 생성할 수 있다.That is, the update
업데이트키를 생성하기에 앞서, 업데이트키 생성 모듈(150)은 이진트리(BT) 상에서, 대응되는 업데이트키가 생성될 노드들의 집합(Y)을 구할 수 있다. Prior to generating the update key, the update
상기 노드들의 집합(Y)은 이진트리(BT), 폐기 목록(RL), 및 시간(T)을 입력으로 하는 노드 생성 알고리즘(KUNode)을 이용하여 구할 수 있다. 알고리즘에 관한 구체적인 내용은 다음과 같다.The set of nodes (Y) can be obtained using a node creation algorithm (KUNode) with binary tree (BT), revocation list (RL), and time (T) as inputs. The details of the algorithm are as follows.
상기 알고리즘 상에서 는 노드()의 폐기 시간을 의미하고, 노드()는 노드()의 왼쪽 자식 노드를 의미하고, 노드()는 노드()의 오른쪽 자식 노드를 의미한다. 이진트리(BT) 상에서 각각의 사용자는 말단 노드에 할당된다. 는 노드()에서부터 루트 노드, 즉 최상위 노드까지 경로상에 위치한 노드들의 집합을 의미한다.On the algorithm Is a node ( ), And the node ( ) Is a node ), And the node ( ) Is a node ) ≪ / RTI > On the binary tree (BT), each user is assigned to an end node. Is a node ( ) To a root node, that is, a root node.
따라서, 시간(T)에 집합(Y)에 포함된 노드들에 대응되는 업데이트키만이 생성되고, 폐기되지 않은 사용자들은, 자신의 노드로부터 루트 노드까지의 경로상에 포함된 노드들 중 어느 하나의 노드가 집합(Y)에 포함되어 있으므로 시간(T)에 복호화키를 생성할 수 있다.Therefore, only the update key corresponding to the nodes included in the set Y at time T is created, and the non-revoked users generate the update key corresponding to any one of the nodes included on the route from the own node to the root node The decryption key can be generated at the time T since the node of the set Y is included in the set Y.
업데이트키 생성 모듈(150)은 업데이트키를 생성할 노드들의 집합(Y)을 생성한 후, 이진트리(BT) 상의 노드(), 즉 집합(Y)에 포함된 노드(θ)에 대해 다음과 같은 과정을 수행한다.The update
1. 이진트리(BT)의 노드(θ)에 정의된 임의의 난수(βθ)를 가지고 온다.1. bring any random number (β θ) defined in the node (θ) of a binary tree (BT).
2. 임의의 지수()를 선택한다.2. An arbitrary index ( ).
3. 제1 업데이트키()와 제2 업데이트키()를 생성한다.3. The first update key ( ) And the second update key ( ).
모든 노드()에 관하여, 위의 과정이 완료되면, 업데이트키 생성 모듈(150)은 제1 업데이트키와 제2 업데이트키를 포함하는 업데이트키()를 제2 단말기(400)로 송신한다.All nodes ( ), When the above process is completed, the update
폐기 모듈(170)은 폐기될 ID, 시간(T), 폐기 목록(RL), 이진트리(BT)의 상태(state) 정보(ST)를 입력으로 하는 폐기 알고리즘()을 수행함으로써, ID에 대한 폐기 동작을 수행할 수 있다.The discard
즉, ID가 할당된 말단 노드가 라면, 를 새로운 폐기 목록으로 갱신함으로써, ID에 대한 폐기 동작을 수행할 수 있다.That is, the end node to which the ID is assigned Ramen, To the new revocation list, the revocation operation for the ID can be performed.
도 3은 도 1에 도시된 제2 서버의 기능 블럭도이다. 도 1 내지 도 3을 참조하면, 제2 서버(200)는 셋업 모듈(210)과 보조키 생성 모듈(230)을 포함한다.3 is a functional block diagram of the second server shown in FIG. Referring to FIGS. 1 to 3, the
셋업 모듈(210)은 보안 상수(1λ)와 사용자의 집합(N)을 입력으로 하는 셋업 알고리즘()을 수행하여 공개 파라미터(PP)와 제2 마스터키(MKPKG)를 생성한다. 이때, 보안 상수(1λ)와 사용자의 집합(N)은 제1 서버(100)와 제2 서버(200) 간에 미리 공유된 값일 수 있다.
구체적으로, 셋업 모듈(210)은 소수(prime number) p를 위수로 갖는 겹선형 군(p, G, GT, e)을 생성하고, g를 겹선형 군(G)의 정규 생성원으로 한다.Specifically, the set-up
또한, 셋업 모듈(210)은 임의의 난수()를 선택하여 제2 공개 파라미터()를 생성한다. 또한, 셋업 모듈(210)은 임의의 스트링(string)에 해당하는 입력값을 타원곡석 위의 점으로 매핑하는 매핑 함수()와 매핑 함수()를 선택한다.Also, the
셋업 모듈(210)은 정규 생성원(g), 겹선형 군(G), 제2 공개 파라미터(), 매핑 함수(), 및 매핑 함수()를 포함하는 공개 파라미터를 공개한다. 본 발명에서 이용되는 공개 파라미터() 중 제1 공개 파라미터()는 제1 서버(100)에 의해 생성된 파라미터일 수 있다.The
또한, 셋업 모듈(210)은 제2 마스터키()를 생성한다. 생성된 제2 마스터키는 제2 단말기(400)로 송신할 보조키를 생성하는 과정에서 이용될 수 있다.The
상술된 셋업 모듈(210)의 동작 중 제1 서버(100)의 셋업 모듈(110)의 동작과 중복되는 동작은 셋업 모듈(210)과 셋업 모듈(110) 중 어느 하나에 의해 수행되어 공유될 수도 있고, 두 개의 셋업 모듈 각각에서 수행될 수도 있다.The operation overlapping with the operation of the
보조키 생성 모듈(230)은 ID, 제2 마스터키, 및 공개 파라미터(PP)를 입력으로 하는 보조키 생성 알고리즘()을 수행하여 보조키를 생성하고, 생성된 보조키를 제2 단말기(400)로 송신한다.The auxiliary
구체적으로, 보조키 생성 모듈(230)은 임의의 난수()를 선택하고, 선택된 임의의 난수()를 이용하여 제1 보조키(psk0)와 제2 보조키(psk1)를 포함하는 보조키(PSKID=(psk0,psk1))생성할 수 있다.Specifically, the auxiliary
제1 보조키(psk0)와 제2 보조키(psk1)는 아래의 수학식에 의해 생성될 수 있다.The first auxiliary key (psk 0 ) and the second auxiliary key (psk 1 ) can be generated by the following equations.
상기 수학식에서 ID는 제2 단말기(400)의 식별 정보를 의미할 수 있다. 생성된 보조키(PSKID)는 제2 단말기(400)로 송신될 수 있다.In the above equation, ID may refer to identification information of the
도 4는 도 1에 도시된 제2 단말기의 기능 블럭도이다. 도 1 내지 도 4를 참조하면, 제2 단말기(400)는 복호화키 생성 모듈(410)과 복호화 모듈(430)을 포함한다.4 is a functional block diagram of the second terminal shown in FIG. Referring to FIGS. 1 to 4, the
복호화키 생성 모듈(410)은 보조키, 개인키, 업데이트키, 및 공개 파라미터를 입력으로 하는 복호화키 생성 알고리즘()을 수행하여 복호화키를 생성할 수 있다.The decryption
구체적으로, 복호화키 생성 모듈(410)은 제2 서버(200)로부터 보조키(PSKID)를 수신하고, 제1 서버(100)로부터 개인키(USKID)와 업데이트키(UKT)를 수신할 수 있다. 또한, 복호화키 생성 모듈(410)은 보조키(PSKID), 개인키(USKID), 업데이트키(UKT), 공개 파라미터(PP)를 이용하여 복호화키를 생성할 수 있다.Specifically, the decryption
복화키 생성 과정을 구체적으로 설명하면 다음과 같다.The generation process of the sub key will be described in detail as follows.
복호화키 생성 모듈(410)은 , , 및 을 이용하여 복호화키를 생성할 수 있다. 이때, 집합(I)는 이진트리 상에서 제2 단말기(400)의 개인키에 속해있는 노드들의 집합, 즉 제2 단말기(400)의 ID가 할당된 말단 노드로부터 루트 노드까지의 경로에 포함된 노드들의 집합을 의미하고, 집합(S)는 이진트리 상에서 업데이트키에 속해있는 노드들의 집합을 의미한다.The decryption
집합(I)와 집합(J)의 교집합이 공집합인 경우, 즉 I∩J=Φ 인 경우, 복호화키 생성 모듈(410)은 복호화키를 생성할 수 없다. 제2 단말기(400)의 ID가 T 시간에 폐기되었거나 탈퇴되었다고 볼 수 있기 때문이다.If the intersection of the set I and the set J is an empty set, that is, I? J = ?, the decryption
집합(I)와 집합(J)의 교집합이 공집합이 아닌 경우, 즉 I∩J≠Φ 인 경우, 복호화키 생성 모듈(410)은 집합(I)와 집합(J)의 교집합의 원소인 노드(θ∈I∩J)를 이용하여 복호화키()를 생성할 수 있다. 이때, 이고, 이고, 이다.If the intersection of the set I and the set J is not an empty set, that is, if I∩J ≠ Φ, the decryption
복호화 모듈(430)은 암호문, 복호화키, 및 공개 파라미터를 입력으로 하는 복호화 알고리즘()을 수행하여 암호문을 복호화할 수 있다.The
구체적으로, 복호화 모듈(430)은 생성된 복호화키(DKID,T)와 공개 파라미터(PP)를 이용하여 제1 단말기(300) 또는 클라우드 서버(500)로부터 수신한 암호문(CTID)을 복호화할 수 있다. 암호문(CT)은 (C,C1,C2,C3)이고, 복호화키(DK)는 (D1,D2,D3) 이므로, 암호문(CT)는 다음 수식을 이용하여 복호화될 수 있다.Specifically, the
이때, 제1 단말기(300)에 의한 암호화 과정은 다음과 같다. 제1 단말기(300)는 제2 단말기(400)의 ID, 시간(T), 메시지(M), 및 공개 파라미터(PP)를 입력으로 하는 암호화 알고리즘을 수행함으로써, 메시지(M)에 대한 암호문()을 생성할 수 있다. 이때, 을 만족한다.At this time, the encryption process by the
도 2 내지 도 4에 도시된 제1 서버, 제2 서버, 및 제2 단말기의 구성들 각각은 기능 및 논리적으로 분리될 수 있음으로 나타내는 것이며, 반드시 각각의 구성이 별도의 물리적 장치로 구분되거나 별도의 코드로 작성됨을 의미하는 것이 아님을 본 발명의 기술분야의 평균적 전문가는 용이하게 추론할 수 있을 것이다.Each of the configurations of the first server, the second server, and the second terminal shown in FIG. 2 to FIG. 4 may be functionally and logically separated, and each configuration may be divided into separate physical devices or separately The average expert in the technical field of the present invention can easily deduce that it is not meant to be written in the code of the present invention.
또한, 본 명세서에서 모듈이라 함은, 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및 상기 하드웨어를 구동하기 위한 소프트웨어의 기능적, 구조적 결합을 의미할 수 있다. 예컨대, 상기 모듈은 소정의 코드와 상기 소정의 코드가 수행되기 위한 하드웨어 리소스의 논리적인 단위를 의미할 수 있으며, 반드시 물리적으로 연결된 코드를 의미하거나, 한 종류의 하드웨어를 의미하는 것이 아니다.In this specification, a module 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.
본 발명은 도면에 도시된 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.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 : 제1 서버
110 : 셋업 모듈
130 : 개인키 생성 모듈
150 : 업데이트키 생성 모듈
170 : 폐기 모듈
200 : 제2 서버
210 : 셋업 모듈
230 : 보조키 생성 모듈
300 : 제1 단말기
400 : 제2 단말기
410 : 복호화키 생성 모듈
430 : 복호화 모듈
500 : 클라우드 서버100: first server
110: Setup module
130: private key generation module
150: Update key generation module
170: Disposal module
200: second server
210: Setup module
230: Auxiliary key generation module
300: first terminal
400: second terminal
410: Decryption key generation module
430: Decryption module
500: Cloud server
Claims (4)
상기 제1 서버는,
보안 상수와 사용자 집합을 입력으로 받고, 공개 파라미터와 제1 마스터키를 생성하는 셋업 모듈;
상기 공개 파라미터, 이진트리의 상태 정보, 및 상기 제1 마스터키를 이용하여 개인키를 생성하고, 생성된 개인키를 단말기로 송신하는 개인키 생성 모듈; 및
상기 공개 파라미터, 폐기 목록, 상기 상태 정보, 및 상기 제1 마스터키를 이용하여 업데이트키를 생성하고, 생성된 업데이트키를 상기 단말기로 송신하는 업데이트키 생성 모듈을 포함하고,
상기 제2 서버는,
상기 보안 상수와 상기 사용자 집합을 입력으로 받고, 상기 공개 파라미터와 제2 마스터키를 생성하는 제2 셋업 모듈; 및
상기 공개 파라미터와 상기 제2 마스터키 및 상기 단말기의 ID를 이용하여 보조키를 생성하고, 생성된 보조키를 상기 단말기로 송신하는 보조키 생성 모듈을 포함하는,
ID 기반 암호 시스템.1. An identity based cryptosystem comprising a first server and a second server,
Wherein the first server comprises:
A setup module for receiving as input a security constant and a user set, generating a public parameter and a first master key;
A private key generation module for generating the private key using the public parameter, state information of the binary tree, and the first master key, and transmitting the generated private key to the terminal; And
And an update key generation module for generating an update key using the public parameter, the revocation list, the state information, and the first master key, and transmitting the generated update key to the terminal,
Wherein the second server comprises:
A second setup module for receiving the security constant and the user set as inputs and generating the public parameter and the second master key; And
Generating an auxiliary key by using the public parameter, the second master key, and the ID of the terminal, and transmitting the generated auxiliary key to the terminal;
ID based cryptographic system.
상기 업데이트키 생성 모듈은 주기적으로 업데이트키를 생성하고, 생성된 업데이트키를 상기 단말기로 송신하는 ID 기반 암호 시스템.The method according to claim 1,
Wherein the update key generation module periodically generates an update key and transmits the generated update key to the terminal.
상기 셋업 모듈에 의해 생성되는 상기 공개 파라미터는 겹선형 군, 상기 겹선형 군의 생성원, 임의의 난수를 이용하여 생성된 제1 공개 파라미터, 및 입력되는 임의의 스트링(string)을 타원곡선 위의 점으로 매핑하는 제1 매핑 함수와 제2 매핑 함수를 포함하는 ID 기반 암호 시스템.The method according to claim 1,
Wherein the public parameters generated by the setup module include at least one of an overlaid linear group, a generation source of the double linear group, a first public parameter generated using an arbitrary random number, and an arbitrary input string, And a second mapping function for mapping the first mapping function to the second mapping function.
상기 개인키, 상기 업데이트키, 및 상기 보조키를 수신하여 복호화키를 생성하고, 생성된 복호화키를 이용하여 암호문을 복호화하는 상기 단말기를 더 포함하는, ID 기반 암호 시스템.The method according to claim 1,
Further comprising: the terminal receiving the private key, the update key, and the auxiliary key to generate a decryption key, and decrypting the cipher text using the generated decryption key.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140175081A KR101599996B1 (en) | 2014-12-08 | 2014-12-08 | Server and system for revocable identity based encryption |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140175081A KR101599996B1 (en) | 2014-12-08 | 2014-12-08 | Server and system for revocable identity based encryption |
Publications (1)
Publication Number | Publication Date |
---|---|
KR101599996B1 true KR101599996B1 (en) | 2016-03-07 |
Family
ID=55540319
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140175081A KR101599996B1 (en) | 2014-12-08 | 2014-12-08 | Server and system for revocable identity based encryption |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101599996B1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102281265B1 (en) * | 2020-09-29 | 2021-07-22 | 세종대학교산학협력단 | Functional encryption for set intersection with time-constrained function keys |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007096751A (en) * | 2005-09-29 | 2007-04-12 | Ntt Data Corp | Password authentication key exchanging device, system, method, and computer program |
KR101382626B1 (en) | 2013-01-03 | 2014-04-07 | 고려대학교 산학협력단 | System and method for id-based strong designated verifier signature |
-
2014
- 2014-12-08 KR KR1020140175081A patent/KR101599996B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007096751A (en) * | 2005-09-29 | 2007-04-12 | Ntt Data Corp | Password authentication key exchanging device, system, method, and computer program |
KR101382626B1 (en) | 2013-01-03 | 2014-04-07 | 고려대학교 산학협력단 | System and method for id-based strong designated verifier signature |
Non-Patent Citations (1)
Title |
---|
Kwangsu Lee 외 2인, IACR Cryptology ePrint Archive, "Efficient revocable identity-based encryption via subset difference methods" (2014.02.24. 공개) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102281265B1 (en) * | 2020-09-29 | 2021-07-22 | 세종대학교산학협력단 | Functional encryption for set intersection with time-constrained function keys |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10785019B2 (en) | Data transmission method and apparatus | |
EP3432532B1 (en) | Key distribution and authentication method, apparatus and system | |
CN109495274B (en) | Decentralized intelligent lock electronic key distribution method and system | |
CN1939028B (en) | Accessing protected data on network storage from multiple devices | |
US9379891B2 (en) | Method and system for ID-based encryption and decryption | |
CN112640510B (en) | Method and apparatus for establishing a wireless secure link while maintaining privacy from tracking | |
CN108574569B (en) | Authentication method and authentication device based on quantum key | |
JP4981072B2 (en) | Method and system for decryptable and searchable encryption | |
CN109587132A (en) | A kind of data transferring method and device based on alliance's chain | |
CN108347404B (en) | Identity authentication method and device | |
JP6363032B2 (en) | Key change direction control system and key change direction control method | |
JP2012169978A (en) | File server device and file server system | |
WO2015056601A1 (en) | Key device, key cloud system, decryption method, and program | |
US10063655B2 (en) | Information processing method, trusted server, and cloud server | |
CN104200154A (en) | Identity based installation package signing method and identity based installation package signing device | |
CN103354637B (en) | A kind of internet-of-things terminal M2M communication encrypting method | |
CN105025036A (en) | Cognitive ability test value encryption and transmission method based on internet | |
JP2016139894A (en) | Re-encryption method, re-encryption system, and re-encryption device | |
US10050943B2 (en) | Widely distributed parameterization | |
JP2007049455A (en) | Encryption key management sever and method therefor, and encryption key management program | |
KR101599996B1 (en) | Server and system for revocable identity based encryption | |
KR101793528B1 (en) | Certificateless public key encryption system and receiving terminal | |
JP2009065226A (en) | Authenticated key exchange system, authenticated key exchange method and program | |
CN105791301A (en) | Key distribution management method with information and key separated for multiple user groups | |
CN112822016A (en) | Method for performing data authorization on blockchain and blockchain network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20190211 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20200128 Year of fee payment: 5 |