KR101599996B1 - Server and system for revocable identity based encryption - Google Patents

Server and system for revocable identity based encryption Download PDF

Info

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
Application number
KR1020140175081A
Other languages
Korean (ko)
Inventor
박승환
엄지은
류금숙
이동훈
Original Assignee
고려대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 고려대학교 산학협력단 filed Critical 고려대학교 산학협력단
Priority to KR1020140175081A priority Critical patent/KR101599996B1/en
Application granted granted Critical
Publication of KR101599996B1 publication Critical patent/KR101599996B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3006Public 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/3013Public 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

An identity (ID)-based encryption server is provided. The ID-based encryption server comprises: a setup module to receive a security constant and a user combination as an input and generate a public parameter and a first master key; a private key generation module to generate a private key using the public parameter, status information of binary tree and the first master key; and an update key generation module to generate an update key using the public parameter, a revocation list, the status information and the first master key and transmit the updated key to the terminal.

Description

폐기가능한 ID 기반 암호 서버 및 시스템{SERVER AND SYSTEM FOR REVOCABLE IDENTITY BASED ENCRYPTION}BACKGROUND OF THE INVENTION 1. Field of the Invention [0001] The present invention relates to an ID-

본 발명의 개념에 따른 실시 예는 폐기가능한 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.

대한민국 등록특허 제10-1382626호Korean Patent No. 10-1382626

본 발명이 이루고자 하는 기술적인 과제는 서비스 제공자에 의한 사용자 관리가 가능하며, 서비스 제공 서버에 저장되어 있는 데이터를 서비스 제공자로부터 보호할 수 있는 폐기가능한 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 cryptographic system 10 usable in a cloud storage environment includes a first server 100, a second server 200, a first terminal 300, and a second terminal 400 ). According to an embodiment, the cryptographic system 10 may further include a cloud server 500 capable of providing cloud services.

키 생성 기관(Key Generation Center) 또는 키 생성 서버로 불릴 수도 있는 제1 서버(100)는 개인키(USK)와 업데이트키(UK)를 생성하여, 생성된 개인키(USK)와 업데이트키(UK)를 제2 단말기(400)로 송신할 수 있다. 실시 예에 따라, 제1 서버(100)는 클라우드 서버(500)와 동일한 서버이거나, 클라우드 서버(500)와 물리적으로 분리된 서버이지만 클라우드 서버(500)의 운영자에 의해 운영되는 서버일 수도 있다.The first server 100, which may be referred to as a key generation center or a key generation server, generates a private key USK and an update key UK and transmits the generated private key USK and the updated key UK ) To the second terminal 400. [ The first server 100 may be the same server as the cloud server 500 or may be a server physically separated from the cloud server 500 but operated by the operator of the cloud server 500. [

제2 서버(200)는 보조키(PSK)를 생성하여, 생성된 보조키(PSK)를 제2 단말기(400)로 송신할 수 있다. 제2 서버(200)는 제1 서버(100)와 물리적으로 분리되어 있을 뿐만 아니라 제1 서버(100)의 운영자와는 다른 운영자에 의해 운영되는 서버임이 원칙이나, 본 발명이 이에 제한되는 것은 아니다. 제1 서버(100)와 제2 서버(200)가 상이한 주체에 의해 운영될 경우, 제1 서버(100)를 포함하는 클라우드 서버(500)에 저장된 암호문(CT)이 임의로 복호화될 가능성을 배제할 수 있다.The second server 200 may generate the supplementary key (PSK) and transmit the generated supplementary key (PSK) to the second terminal 400. The second server 200 is physically separated from the first server 100 and is a server operated by an operator different from the operator of the first server 100. However, the present invention is not limited thereto . When the first server 100 and the second server 200 are operated by different entities, the possibility that the ciphertext (CT) stored in the cloud server 500 including the first server 100 is decrypted arbitrarily is excluded .

암호문(CT)을 송신하는 송신자의 단말기인 제1 단말기(300)는 제2 단말기(400)의 사용자의 ID 또는 제2 단말기(400)의 ID를 이용하여 메시지를 암호화하여 암호문(CT)를 생성한다. 또한, 제1 단말기(300)는 생성된 암호문(CT)을 클라우드 서버(500)로 송신할 수 있다. 실시 예에 따라, 제1 단말기(300)은 생성된 암호문(CT)을 유무선 통신망을 통하여 제2 단말기(400)로 직접 송신할 수도 있다.The first terminal 300 that is the sender's terminal that transmits the ciphertext (CT) generates a ciphertext (CT) by encrypting the message using the ID of the user of the second terminal 400 or the ID of the second terminal 400 do. Also, the first terminal 300 can transmit the generated ciphertext (CT) to the cloud server 500. [ According to an embodiment, the first terminal 300 may transmit the generated ciphertext (CT) directly to the second terminal 400 via a wire / wireless communication network.

암호문(CT)을 수신하는 수신자의 단말기인 제2 단말기(400)는 제1 서버(100)로부터 개인키(USK)와 업데이트키(UK)를 수신하고, 제2 서버(200)로부터 보조키(PSK)를 수신할 수 있다. 제2 단말기는 수신된 개인키(USK), 업데이트키(UK), 및 보조키(PSK)를 이용하여 복호화키를 생성한다. 제2 단말기는 상기 복호화키를 이용하여 제1 단말기(300) 또는 클라우드 서버(500)로부터 수신한 암호문(CT)을 복호화할 수 있다.The second terminal 400 receiving the ciphertext CT receives the private key USK and the update key UK from the first server 100 and receives the update key UK from the second server 200, PSK). The second terminal generates a decryption key using the received private key (USK), the update key (UK), and the supplementary key (PSK). The second terminal can decrypt the ciphertext (CT) received from the first terminal 300 or the cloud server 500 using the decryption key.

제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 first terminal 300 or the second terminal 400 may be a personal computer, a tablet PC, a notebook, a net-book, an e-reader, a personal digital assistant assistant, a portable multimedia player (PMP), an MP3 player, an MP4 player, or a handheld device such as a mobile phone or a smart phone .

클라우드 서버(500)는 클라우드 서비스를 제공하는 서버일 수 있다. The cloud server 500 may be a server that provides a cloud service.

도 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 first server 100 includes a setup module 110, a private key generation module 130, and an update key generation module 150. According to an embodiment, the first server 100 may further include a revocation module 170.

셋업 모듈(110)은 보안 상수(1λ)와 사용자의 집합(N)을 입력으로 하는 셋업 알고리즘(

Figure 112014119268602-pat00001
)을 수행하여 공개 파라미터(PP)와 제1 마스터키(MKServer)를 생성한다. The setup module 110 includes a set-up algorithm (< RTI ID = 0.0 >
Figure 112014119268602-pat00001
) To generate a public parameter PP and a first master key MK Server .

구체적으로, 셋업 모듈(110)은 소수(prime number) p를 위수로 갖는 겹선형 군(p, G, GT, e)을 생성하고, g를 겹선형 군(G)의 정규 생성원으로 한다.Specifically, the set-up module 110 to the normal generator, a small number (prime number) having p as a percentile-layer creates a linear group (p, G, G T, e), and the layers of the g linear group (G) .

또한, 셋업 모듈(110)은 임의의 난수(

Figure 112014119268602-pat00002
)를 선택하여 제1 공개 파라미터(
Figure 112014119268602-pat00003
)를 생성한다. 또한, 셋업 모듈(110)은 임의의 스트링(string)에 해당하는 입력값을 타원곡선 위의 점으로 매핑하는 매핑 함수(
Figure 112014119268602-pat00004
)와 매핑 함수(
Figure 112014119268602-pat00005
)를 선택한다.In addition, the setup module 110 may generate a random number
Figure 112014119268602-pat00002
) To select the first disclosure parameter (
Figure 112014119268602-pat00003
). The set-up module 110 also includes a mapping function for mapping an input value corresponding to an arbitrary string to a point on the elliptic curve
Figure 112014119268602-pat00004
) And the mapping function (
Figure 112014119268602-pat00005
).

셋업 모듈(110)은 정규 생성원(g), 겹선형 군(G), 제1 공개 파라미터(

Figure 112014119268602-pat00006
), 매핑 함수(
Figure 112014119268602-pat00007
), 및 매핑 함수(
Figure 112014119268602-pat00008
)를 포함하는 공개 파라미터(PP)를 공개한다. 본 발명에서 이용되는 공개 파라미터(
Figure 112014119268602-pat00009
) 중 제2 공개 파라미터(
Figure 112014119268602-pat00010
)는 제2 서버(200)에 의해 생성된 파라미터일 수 있다.The setup module 110 includes a normal generation circle g, a linear linear group G,
Figure 112014119268602-pat00006
), Mapping function (
Figure 112014119268602-pat00007
), And mapping function (
Figure 112014119268602-pat00008
) Of the public domain. The public parameters (< RTI ID = 0.0 >
Figure 112014119268602-pat00009
The second disclosure parameter (
Figure 112014119268602-pat00010
May be a parameter generated by the second server 200.

또한, 셋업 모듈(110)은 제1 마스터키(

Figure 112014119268602-pat00011
)를 생성한다. 생성된 제1 마스터키는 사용자의 개인키와 업데이트키를 생성하는 과정에서 이용될 수 있다.The setup module 110 also includes a first master key ("
Figure 112014119268602-pat00011
). The generated first master key can be used in the process of generating the user's private key and the update key.

개인키 생성 모듈(130)은 시간(T), ID, 제1 마스터키, 이진트리(BT)의 상태 정보(ST), 및 공개 파라미터를 입력으로 하는 개인키 생성 알고리즘(

Figure 112014119268602-pat00012
)을 실행하여, 개인키를 생성하고, 생성된 개인키를 제2 단말기(400)로 송신한다.The private key generation module 130 generates a private key generation algorithm (hereinafter referred to as " private key generation algorithm ") by inputting the time T, the ID, the first master key, the state information ST of the binary tree BT,
Figure 112014119268602-pat00012
) To generate a private key, and transmits the generated private key to the second terminal 400. [

구체적으로, 개인키 생성 모듈(130)은 이진트리(BT)의 말단 노드들 중 사용자가 할당되지 않은 임의의 말단 노드(

Figure 112014119268602-pat00013
)를 선택하고, 선택된 말단 노드(
Figure 112014119268602-pat00014
)에 ID를 할당한다. 그리고 개인키 생성 모듈(130)은 각각의 노드(
Figure 112014119268602-pat00015
)에 대해 다음과 같은 과정을 수행한다. 여기서,
Figure 112014119268602-pat00016
은 노드(
Figure 112014119268602-pat00017
)에서부터 루트 노드(최상위 노드)까지의 경로에 포함되어 있는 노드들의 집합을 의미한다.Specifically, the private key generation module 130 generates a private key of the root node BT,
Figure 112014119268602-pat00013
), Selects the selected end node (
Figure 112014119268602-pat00014
). The private key generation module 130 generates a private key
Figure 112014119268602-pat00015
), The following procedure is performed. here,
Figure 112014119268602-pat00016
The node (
Figure 112014119268602-pat00017
) To the root node (the highest node).

1. 노드(

Figure 112014119268602-pat00018
)에 대응하는 임의의 난수(
Figure 112014119268602-pat00019
)가 정의되어 있지 않는 경우, 임의의 난수(
Figure 112014119268602-pat00020
)를 선택하여 선택된 난수를 노드(
Figure 112014119268602-pat00021
)에 할당 또는 정의한다.1. Node (
Figure 112014119268602-pat00018
) ≪ / RTI >
Figure 112014119268602-pat00019
) Is not defined, an arbitrary random number (
Figure 112014119268602-pat00020
) To select the selected random number as the node (
Figure 112014119268602-pat00021
).

2. 임의의 난수(

Figure 112014119268602-pat00022
)를 선택한다.2. Any random number (
Figure 112014119268602-pat00022
).

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:

Figure 112014119268602-pat00023
Figure 112014119268602-pat00023

개인키 생성 모듈(130)은 위의 과정들을 수행한 후에 각각의 노드(θ)에 대응하는 제1 개인키와 제2 개인키를 포함하는 개인키(

Figure 112014119268602-pat00024
)를 생성하고, 생성된 개인키를 제2 단말기(400)로 송신할 수 있다.After performing the above processes, the private key generation module 130 generates a private key including a first private key and a second private key corresponding to each node [theta]
Figure 112014119268602-pat00024
), And transmit the generated private key to the second terminal 400.

업데이트키 생성 모듈(150)은 시간(T), 제1 마스터키, 이진트리(BT)의 상태 정보(ST), 및 공개 파라미터(PP)를 입력으로 하는 업데이트키 생성 알고리즘(

Figure 112014119268602-pat00025
)을 실행하여 업데이트키를 생성하고, 생성된 업데이트키를 제2 단말기(400)로 송신한다.The update key generation module 150 generates an update key generation algorithm (hereafter referred to as an update key generation algorithm) that takes as input the time T, the first master key, the state information ST of the binary tree BT,
Figure 112014119268602-pat00025
) To generate an update key, and transmits the generated update key to the second terminal 400.

즉, 업데이트키 생성 모듈(150)은 주기적으로 업데이트키를 생성하고, 생성된 업데이트키를 제2 단말기(400)로 송신한다. 제2 단말기(400)는 수신된 업데이트키를 이용하여 복호화키를 생성할 수 있다.That is, the update key generation module 150 periodically generates an update key, and transmits the generated update key to the second terminal 400. The second terminal 400 can generate a decryption key using the received update key.

업데이트키를 생성하기에 앞서, 업데이트키 생성 모듈(150)은 이진트리(BT) 상에서, 대응되는 업데이트키가 생성될 노드들의 집합(Y)을 구할 수 있다. Prior to generating the update key, the update key generation module 150 may obtain, on the binary tree BT, a set (Y) of nodes to which a corresponding update key is to be generated.

상기 노드들의 집합(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.

Figure 112014119268602-pat00026
Figure 112014119268602-pat00026

상기 알고리즘 상에서

Figure 112014119268602-pat00027
는 노드(
Figure 112014119268602-pat00028
)의 폐기 시간을 의미하고, 노드(
Figure 112014119268602-pat00029
)는 노드(
Figure 112014119268602-pat00030
)의 왼쪽 자식 노드를 의미하고, 노드(
Figure 112014119268602-pat00031
)는 노드(
Figure 112014119268602-pat00032
)의 오른쪽 자식 노드를 의미한다. 이진트리(BT) 상에서 각각의 사용자는 말단 노드에 할당된다.
Figure 112014119268602-pat00033
는 노드(
Figure 112014119268602-pat00034
)에서부터 루트 노드, 즉 최상위 노드까지 경로상에 위치한 노드들의 집합을 의미한다.On the algorithm
Figure 112014119268602-pat00027
Is a node (
Figure 112014119268602-pat00028
), And the node (
Figure 112014119268602-pat00029
) Is a node
Figure 112014119268602-pat00030
), And the node (
Figure 112014119268602-pat00031
) Is a node
Figure 112014119268602-pat00032
) ≪ / RTI > On the binary tree (BT), each user is assigned to an end node.
Figure 112014119268602-pat00033
Is a node (
Figure 112014119268602-pat00034
) 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) 상의 노드(

Figure 112014119268602-pat00035
), 즉 집합(Y)에 포함된 노드(θ)에 대해 다음과 같은 과정을 수행한다.The update key generation module 150 generates a set (Y) of nodes for generating an update key,
Figure 112014119268602-pat00035
), I.e., the node (?) Included in the set (Y), the following process is performed.

1. 이진트리(BT)의 노드(θ)에 정의된 임의의 난수(βθ)를 가지고 온다.1. bring any random number (β θ) defined in the node (θ) of a binary tree (BT).

2. 임의의 지수(

Figure 112014119268602-pat00036
)를 선택한다.2. An arbitrary index (
Figure 112014119268602-pat00036
).

3. 제1 업데이트키(

Figure 112014119268602-pat00037
)와 제2 업데이트키(
Figure 112014119268602-pat00038
)를 생성한다.3. The first update key (
Figure 112014119268602-pat00037
) And the second update key (
Figure 112014119268602-pat00038
).

모든 노드(

Figure 112014119268602-pat00039
)에 관하여, 위의 과정이 완료되면, 업데이트키 생성 모듈(150)은 제1 업데이트키와 제2 업데이트키를 포함하는 업데이트키(
Figure 112014119268602-pat00040
)를 제2 단말기(400)로 송신한다.All nodes (
Figure 112014119268602-pat00039
), When the above process is completed, the update key generation module 150 generates an update key including the first update key and the second update key
Figure 112014119268602-pat00040
To the second terminal (400).

폐기 모듈(170)은 폐기될 ID, 시간(T), 폐기 목록(RL), 이진트리(BT)의 상태(state) 정보(ST)를 입력으로 하는 폐기 알고리즘(

Figure 112014119268602-pat00041
)을 수행함으로써, ID에 대한 폐기 동작을 수행할 수 있다.The discard module 170 is a discard algorithm that takes as input the ID to be discarded, the time T, the revocation list RL, and the state information ST of the binary tree BT
Figure 112014119268602-pat00041
), The discard operation for the ID can be performed.

즉, ID가 할당된 말단 노드가

Figure 112014119268602-pat00042
라면,
Figure 112014119268602-pat00043
를 새로운 폐기 목록으로 갱신함으로써, ID에 대한 폐기 동작을 수행할 수 있다.That is, the end node to which the ID is assigned
Figure 112014119268602-pat00042
Ramen,
Figure 112014119268602-pat00043
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 second server 200 includes a setup module 210 and an auxiliary key generation module 230.

셋업 모듈(210)은 보안 상수(1λ)와 사용자의 집합(N)을 입력으로 하는 셋업 알고리즘(

Figure 112014119268602-pat00044
)을 수행하여 공개 파라미터(PP)와 제2 마스터키(MKPKG)를 생성한다. 이때, 보안 상수(1λ)와 사용자의 집합(N)은 제1 서버(100)와 제2 서버(200) 간에 미리 공유된 값일 수 있다.Setup module 210 includes a set-up algorithm (< RTI ID = 0.0 >
Figure 112014119268602-pat00044
) To generate a public parameter PP and a second master key MK PKG . At this time, the security constant 1 ? And the set N of users may be a value previously shared between the first server 100 and the second server 200.

구체적으로, 셋업 모듈(210)은 소수(prime number) p를 위수로 갖는 겹선형 군(p, G, GT, e)을 생성하고, g를 겹선형 군(G)의 정규 생성원으로 한다.Specifically, the set-up module 210 to the normal generator, a small number (prime number) having p as a percentile-layer creates a linear group (p, G, G T, e), and the layers of the g linear group (G) .

또한, 셋업 모듈(210)은 임의의 난수(

Figure 112014119268602-pat00045
)를 선택하여 제2 공개 파라미터(
Figure 112014119268602-pat00046
)를 생성한다. 또한, 셋업 모듈(210)은 임의의 스트링(string)에 해당하는 입력값을 타원곡석 위의 점으로 매핑하는 매핑 함수(
Figure 112014119268602-pat00047
)와 매핑 함수(
Figure 112014119268602-pat00048
)를 선택한다.Also, the setup module 210 may generate a random number ("
Figure 112014119268602-pat00045
) To select the second disclosure parameter (
Figure 112014119268602-pat00046
). In addition, the setup module 210 may include a mapping function for mapping an input value corresponding to an arbitrary string to a point on an elliptic curve
Figure 112014119268602-pat00047
) And the mapping function (
Figure 112014119268602-pat00048
).

셋업 모듈(210)은 정규 생성원(g), 겹선형 군(G), 제2 공개 파라미터(

Figure 112014119268602-pat00049
), 매핑 함수(
Figure 112014119268602-pat00050
), 및 매핑 함수(
Figure 112014119268602-pat00051
)를 포함하는 공개 파라미터를 공개한다. 본 발명에서 이용되는 공개 파라미터(
Figure 112014119268602-pat00052
) 중 제1 공개 파라미터(
Figure 112014119268602-pat00053
)는 제1 서버(100)에 의해 생성된 파라미터일 수 있다.The setup module 210 includes a normal generation circle g, a double linear group G,
Figure 112014119268602-pat00049
), Mapping function (
Figure 112014119268602-pat00050
), And mapping function (
Figure 112014119268602-pat00051
). ≪ / RTI > The public parameters (< RTI ID = 0.0 >
Figure 112014119268602-pat00052
The first disclosure parameter (
Figure 112014119268602-pat00053
May be a parameter generated by the first server 100.

또한, 셋업 모듈(210)은 제2 마스터키(

Figure 112014119268602-pat00054
)를 생성한다. 생성된 제2 마스터키는 제2 단말기(400)로 송신할 보조키를 생성하는 과정에서 이용될 수 있다.The setup module 210 also includes a second master key ("
Figure 112014119268602-pat00054
). The generated second master key can be used in the process of generating the auxiliary key to be transmitted to the second terminal 400.

상술된 셋업 모듈(210)의 동작 중 제1 서버(100)의 셋업 모듈(110)의 동작과 중복되는 동작은 셋업 모듈(210)과 셋업 모듈(110) 중 어느 하나에 의해 수행되어 공유될 수도 있고, 두 개의 셋업 모듈 각각에서 수행될 수도 있다.The operation overlapping with the operation of the setup module 110 of the first server 100 during the operation of the setup module 210 may be performed by either the setup module 210 or the setup module 110 and may be shared And may be performed in each of the two setup modules.

보조키 생성 모듈(230)은 ID, 제2 마스터키, 및 공개 파라미터(PP)를 입력으로 하는 보조키 생성 알고리즘(

Figure 112014119268602-pat00055
)을 수행하여 보조키를 생성하고, 생성된 보조키를 제2 단말기(400)로 송신한다.The auxiliary key generation module 230 includes an auxiliary key generation algorithm (hereinafter referred to as an auxiliary key generation algorithm) in which the ID, the second master key,
Figure 112014119268602-pat00055
) To generate the auxiliary key, and transmits the generated auxiliary key to the second terminal 400.

구체적으로, 보조키 생성 모듈(230)은 임의의 난수(

Figure 112014119268602-pat00056
)를 선택하고, 선택된 임의의 난수(
Figure 112014119268602-pat00057
)를 이용하여 제1 보조키(psk0)와 제2 보조키(psk1)를 포함하는 보조키(PSKID=(psk0,psk1))생성할 수 있다.Specifically, the auxiliary key generation module 230 generates random numbers
Figure 112014119268602-pat00056
), And selects a random number (
Figure 112014119268602-pat00057
(PSK ID = (psk 0 , psk 1 )) including the first auxiliary key (psk 0 ) and the second auxiliary key (psk 1 ) by using the first auxiliary key (psk 0 )

제1 보조키(psk0)와 제2 보조키(psk1)는 아래의 수학식에 의해 생성될 수 있다.The first auxiliary key (psk 0 ) and the second auxiliary key (psk 1 ) can be generated by the following equations.

Figure 112014119268602-pat00058
Figure 112014119268602-pat00058

상기 수학식에서 ID는 제2 단말기(400)의 식별 정보를 의미할 수 있다. 생성된 보조키(PSKID)는 제2 단말기(400)로 송신될 수 있다.In the above equation, ID may refer to identification information of the second terminal 400. The generated auxiliary key (PSK ID ) may be transmitted to the second terminal 400.

도 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 second terminal 400 includes a decryption key generation module 410 and a decryption module 430.

복호화키 생성 모듈(410)은 보조키, 개인키, 업데이트키, 및 공개 파라미터를 입력으로 하는 복호화키 생성 알고리즘(

Figure 112014119268602-pat00059
)을 수행하여 복호화키를 생성할 수 있다.The decryption key generation module 410 generates a decryption key generation algorithm (hereinafter, referred to as " decryption key generation algorithm ") using an auxiliary key, a private key,
Figure 112014119268602-pat00059
) To generate a decryption key.

구체적으로, 복호화키 생성 모듈(410)은 제2 서버(200)로부터 보조키(PSKID)를 수신하고, 제1 서버(100)로부터 개인키(USKID)와 업데이트키(UKT)를 수신할 수 있다. 또한, 복호화키 생성 모듈(410)은 보조키(PSKID), 개인키(USKID), 업데이트키(UKT), 공개 파라미터(PP)를 이용하여 복호화키를 생성할 수 있다.Specifically, the decryption key generation module 410 receives the PSK ID from the second server 200 and receives the private key (USK ID ) and the update key (UK T ) from the first server 100 can do. Also, the decryption key generation module 410 may generate a decryption key using the supplementary key (PSK ID ), the private key (USK ID ), the update key (UK T ), and the public parameter (PP).

복화키 생성 과정을 구체적으로 설명하면 다음과 같다.The generation process of the sub key will be described in detail as follows.

복호화키 생성 모듈(410)은

Figure 112014119268602-pat00060
,
Figure 112014119268602-pat00061
, 및
Figure 112014119268602-pat00062
을 이용하여 복호화키를 생성할 수 있다. 이때, 집합(I)는 이진트리 상에서 제2 단말기(400)의 개인키에 속해있는 노드들의 집합, 즉 제2 단말기(400)의 ID가 할당된 말단 노드로부터 루트 노드까지의 경로에 포함된 노드들의 집합을 의미하고, 집합(S)는 이진트리 상에서 업데이트키에 속해있는 노드들의 집합을 의미한다.The decryption key generation module 410
Figure 112014119268602-pat00060
,
Figure 112014119268602-pat00061
, And
Figure 112014119268602-pat00062
Can be used to generate a decryption key. At this time, the set (I) is a set of nodes belonging to the private key of the second terminal 400 on the binary tree, that is, a node included in the path from the end node to which the ID of the second terminal 400 is allocated to the root node (S) means a set of nodes belonging to an update key on a binary tree.

집합(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 key generation module 410 can not generate a decryption key. Since the ID of the second terminal 400 can be seen to have been discarded or withdrawn at T time.

집합(I)와 집합(J)의 교집합이 공집합이 아닌 경우, 즉 I∩J≠Φ 인 경우, 복호화키 생성 모듈(410)은 집합(I)와 집합(J)의 교집합의 원소인 노드(θ∈I∩J)를 이용하여 복호화키(

Figure 112014119268602-pat00063
)를 생성할 수 있다. 이때,
Figure 112014119268602-pat00064
이고,
Figure 112014119268602-pat00065
이고,
Figure 112014119268602-pat00066
이다.If the intersection of the set I and the set J is not an empty set, that is, if I∩J ≠ Φ, the decryption key generation module 410 generates a decryption key &thetas;≤ I • J)
Figure 112014119268602-pat00063
Can be generated. At this time,
Figure 112014119268602-pat00064
ego,
Figure 112014119268602-pat00065
ego,
Figure 112014119268602-pat00066
to be.

복호화 모듈(430)은 암호문, 복호화키, 및 공개 파라미터를 입력으로 하는 복호화 알고리즘(

Figure 112014119268602-pat00067
)을 수행하여 암호문을 복호화할 수 있다.The decryption module 430 decrypts a decryption key (a decryption key)
Figure 112014119268602-pat00067
) To decrypt the ciphertext.

구체적으로, 복호화 모듈(430)은 생성된 복호화키(DKID,T)와 공개 파라미터(PP)를 이용하여 제1 단말기(300) 또는 클라우드 서버(500)로부터 수신한 암호문(CTID)을 복호화할 수 있다. 암호문(CT)은 (C,C1,C2,C3)이고, 복호화키(DK)는 (D1,D2,D3) 이므로, 암호문(CT)는 다음 수식을 이용하여 복호화될 수 있다.Specifically, the decryption module 430 decrypts the ciphertext (CT ID ) received from the first terminal 300 or the cloud server 500 using the generated decryption key (DK ID, T ) and the disclosure parameter (PP) can do. Since the ciphertexts CT are (C, C 1 , C 2 , C 3 ) and the decryption keys DK are (D 1 , D 2 , D 3 ), the ciphertext CT can be decrypted have.

Figure 112014119268602-pat00068
Figure 112014119268602-pat00068

이때, 제1 단말기(300)에 의한 암호화 과정은 다음과 같다. 제1 단말기(300)는 제2 단말기(400)의 ID, 시간(T), 메시지(M), 및 공개 파라미터(PP)를 입력으로 하는 암호화 알고리즘을 수행함으로써, 메시지(M)에 대한 암호문(

Figure 112014119268602-pat00069
)을 생성할 수 있다. 이때,
Figure 112014119268602-pat00070
을 만족한다.At this time, the encryption process by the first terminal 300 is as follows. The first terminal 300 performs a cryptographic algorithm in which the ID of the second terminal 400, the time T, the message M, and the public parameter PP are input,
Figure 112014119268602-pat00069
Can be generated. At this time,
Figure 112014119268602-pat00070
.

도 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 서버와 제2 서버를 포함하는 ID(identity) 기반 암호 시스템에 있어서,
상기 제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.
제1항에 있어서,
상기 업데이트키 생성 모듈은 주기적으로 업데이트키를 생성하고, 생성된 업데이트키를 상기 단말기로 송신하는 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항에 있어서,
상기 셋업 모듈에 의해 생성되는 상기 공개 파라미터는 겹선형 군, 상기 겹선형 군의 생성원, 임의의 난수를 이용하여 생성된 제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.
제1항에 있어서,
상기 개인키, 상기 업데이트키, 및 상기 보조키를 수신하여 복호화키를 생성하고, 생성된 복호화키를 이용하여 암호문을 복호화하는 상기 단말기를 더 포함하는, 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.
KR1020140175081A 2014-12-08 2014-12-08 Server and system for revocable identity based encryption KR101599996B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
Kwangsu Lee 외 2인, IACR Cryptology ePrint Archive, "Efficient revocable identity-based encryption via subset difference methods" (2014.02.24. 공개) *

Cited By (1)

* Cited by examiner, † Cited by third party
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