KR101865703B1 - Apparatus and method for generating key, apparatus and method for encryption - Google Patents

Apparatus and method for generating key, apparatus and method for encryption Download PDF

Info

Publication number
KR101865703B1
KR101865703B1 KR1020160142251A KR20160142251A KR101865703B1 KR 101865703 B1 KR101865703 B1 KR 101865703B1 KR 1020160142251 A KR1020160142251 A KR 1020160142251A KR 20160142251 A KR20160142251 A KR 20160142251A KR 101865703 B1 KR101865703 B1 KR 101865703B1
Authority
KR
South Korea
Prior art keywords
key
secret
user
public
external terminal
Prior art date
Application number
KR1020160142251A
Other languages
Korean (ko)
Other versions
KR20180046720A (en
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 KR1020160142251A priority Critical patent/KR101865703B1/en
Publication of KR20180046720A publication Critical patent/KR20180046720A/en
Application granted granted Critical
Publication of KR101865703B1 publication Critical patent/KR101865703B1/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Abstract

본 발명의 일 실시예에 따른 키 생성 장치는, 키 요청 단말로부터 기 설정된 아이디 제약 조건에 따라 생성된 아이디를 포함하는 키 생성 요청을 수신하는 수신부, 상기 아이디 제약 조건에 따라 이용 가능한 모든 심볼들 각각에 대한 아이디 내 위치별 비밀 파라미터 값을 포함하는 비밀 파라미터 테이블로부터 상기 수신된 아이디에 포함된 각 심볼들의 상기 수신된 아이디 내 위치에 대응하는 비밀 파라미터 값들을 추출하고, 추출된 비밀 파라미터 값들을 이용하여, 상기 수신된 아이디에 대응하는 비밀키를 생성하는 비밀키 생성부 및 상기 비밀키를 상기 키 요청 단말로 제공하는 키 정보 제공부를 포함한다.The key generation apparatus according to an exemplary embodiment of the present invention includes a receiver for receiving a key generation request including an ID generated according to a predetermined ID constraint condition from a key requesting terminal, Extracting secret parameter values corresponding to positions in the received ID of each of the symbols included in the received ID from a secret parameter table including secret parameter values by ID in the ID, A secret key generating unit for generating a secret key corresponding to the received ID, and a key information providing unit for providing the secret key to the key requesting terminal.

Description

키 생성 방법 및 장치, 암호화 장치 및 방법{APPARATUS AND METHOD FOR GENERATING KEY, APPARATUS AND METHOD FOR ENCRYPTION}[0001] APPARATUS AND METHOD FOR GENERATING KEY, APPARATUS AND METHOD FOR ENCRYPTION [0002]

본 발명의 실시예들은 암호화 및 암호화를 위한 키 생성 기술과 관련된다.Embodiments of the invention relate to key generation techniques for encryption and encryption.

최근 컴퓨터 기술의 발달과 통신망의 급속한 확장으로 인해 컴퓨터 관련 자원과 전송되는 데이터들에 대한 보안 문제가 큰 이슈로 부각되고 있다. 이러한 문제를 해결할 수 있는 하나의 대안으로 암호 기반 시스템이 이용되고 있다. 현재까지 가장 크게 기여한 암호 시스템은 공개키 암호 시스템인데, 이와 같은 전통적 공개키 시스템에서는 사용자의 공개키를 미리 인증해야 하고 문제가 발생한 인증서는 유효기간 종료 전이라도 폐기해야 하므로 공개키의 인증서 관리에 관한 어려움이 발생한다. 따라서 개인의 아이디(identity, ID)를 기반으로 하는 아이디(ID) 기반 암호 시스템이 제안되었다.Recently, due to the development of computer technology and the rapid expansion of communication network, security issues related to computer related resources and transmitted data are becoming a big issue. As an alternative to this problem, password-based systems are being used. In the conventional public key system, the public key of the user is required to be authenticated in advance, and the certificate in question must be discarded even before the expiration of the expiration date. Therefore, Difficulties arise. Therefore, an ID-based cryptosystem based on an individual's identity (ID) has been proposed.

공개키 기반 암호 시스템은 비밀키를 먼저 정하고 공개키를 계산하는 방식을 따른다. 반면, 아이디 기반 암호 시스템은 아이디를 먼저 선택하고 이로부터 비밀키를 계산하며, 비밀키 발급은 키 발행 기관(PKG, private key generator)이 아이디로부터 계산하여 안전한 채널을 통해 발급한다.A public key based cryptosystem follows a scheme in which a secret key is first determined and a public key is calculated. On the other hand, the ID-based cryptosystem selects the ID first, calculates the secret key from the ID, and issues the secret key through the secure channel calculated from the ID of the PKG (private key generator).

이와 관련하여, 선행 특허 문헌인 한국등록특허 제10-1301609호는 아이디 기반 암호 시스템에서 사전계산 테이블을 이용한 이산대수 계산 방법을 적용하여 아이디와 비밀키 간의 일대일로 대응하는 관계를 보장할 수 있는 비밀키를 계산하는 방법을 제안하고 있다. 그러나, 해당 선행 특허 문헌에서 제안하는 방법은 사전계산으로 인해 사용자들의 아이디에 대한 비밀키 생성을 위해 많은 시간과 많은 비용(Amazon EC2 기준 100 core로 100일)이 요구된다. 따라서 제공하는 서비스에 따라 별도의 키 생성이 필요한 경우 시간과 비용적으로 비효율적인 문제점이 있다In this connection, Korean Patent Registration No. 10-1301609, which is a prior art document, discloses a secret-number-based secret-number-calculation method using a discrete logarithm calculation method using an advance calculation table in an ID-based cryptosystem, We propose a method to calculate the key. However, the method proposed in the related patent document requires a lot of time and cost (100 days by Amazon EC2 standard 100 core) to generate the secret key for the user's ID due to the preliminary calculation. Therefore, there is a problem in that it is inefficient in time and cost when a separate key generation is required according to the provided service

한국등록특허 제10-1301609호 (2013.8.29. 공고)Korean Registered Patent No. 10-1301609 (Bulletin of September 29, 2013)

본 발명의 실시예들은 암호화를 위한 키 생성 장치 및 방법과 암호화 장치 및 방법을 제공하기 위한 것이다.Embodiments of the present invention provide an apparatus and method for generating a key for encryption and an encryption apparatus and method.

본 발명의 일 실시예에 따른 키 생성 장치는, 키 요청 단말로부터 기 설정된 아이디 제약 조건에 따라 생성된 아이디를 포함하는 키 생성 요청을 수신하는 수신부, 상기 아이디 제약 조건에 따라 이용 가능한 모든 심볼들 각각에 대한 아이디 내 위치별 비밀 파라미터 값을 포함하는 비밀 파라미터 테이블로부터 상기 수신된 아이디에 포함된 각 심볼들의 상기 수신된 아이디 내 위치에 대응하는 비밀 파라미터 값들을 추출하고, 추출된 비밀 파라미터 값들을 이용하여, 상기 수신된 아이디에 대응하는 비밀키를 생성하는 비밀키 생성부 및 상기 비밀키를 상기 키 요청 단말로 제공하는 키 정보 제공부를 포함한다.The key generation apparatus according to an exemplary embodiment of the present invention includes a receiver for receiving a key generation request including an ID generated according to a predetermined ID constraint condition from a key requesting terminal, Extracting secret parameter values corresponding to positions in the received ID of each of the symbols included in the received ID from a secret parameter table including secret parameter values by ID in the ID, A secret key generating unit for generating a secret key corresponding to the received ID, and a key information providing unit for providing the secret key to the key requesting terminal.

상기 비밀키 생성부는, 상기 추출된 비밀 파라미터 값들의 합을 이용하여 상기 비밀키를 생성할 수 있다.The secret key generation unit may generate the secret key using the sum of the extracted secret parameter values.

상기 비밀키는, 아래의 수학식The secret key is expressed by the following equation

Figure 112016105480324-pat00001
Figure 112016105480324-pat00001

(이때, Sk는 상기 비밀키, n은 상기 수신된 아이디의 자릿수, Si는 상기 수신된 아이디 내 i 번째 위치의 심볼에 대응하는 비밀 파라미터 값, R은 임의의 난수)에 의해 생성될 수 있다.(Where Sk is the secret key, n is the number of digits of the received identity, S i is a secret parameter value corresponding to the symbol of the ith position in the received identity, and R is any random number) .

상기 아이디 내 위치는, 아이디를 복수의 블록으로 분할하였을 때, 분할된 각 블록 내 위치이며, 상기 비밀키 생성부는, 상기 추출된 비밀 파라미터 값들을 상기 각 블록별로 합한 값들을 이용하여 상기 비밀키를 생성할 수 있다.Wherein the position in the ID is a position in each divided block when the ID is divided into a plurality of blocks and the secret key generation unit generates the secret key by using values of the extracted secret parameter values, Can be generated.

상기 비밀키는, 아래의 수학식The secret key is expressed by the following equation

Figure 112016105480324-pat00002
Figure 112016105480324-pat00002

(이때, Sk는 비밀키, m은 상기 분할된 블록의 수, Bk는 k번째 블록에 대한 상기 추출된 비밀 파라미터 값들의 합, Rk는 임의의 난수)에 의해 생성될 수 있다.May be generated by (wherein, Sk is the secret key, m is the number of the divided blocks, B k is the sum of the extracted secret parameter values, R k is an arbitrary random number of the k-th block).

상기 Rk는, 상기 Bk가 가질 수 있는 최대 비트 수의 k배 크기의 비트 수를 가지는 임의의 난수일 수 있다.The R k may be any random number having a bit number of k times the maximum number of bits that B k can have.

본 발명의 일 실시예에 따른 키 생성 방법은, 키 요청 단말로부터 기 설정된 아이디 제약 조건에 따라 생성된 아이디를 포함하는 키 생성 요청을 수신하는 단계, 상기 아이디 제약 조건에 따라 이용 가능한 모든 심볼들 각각에 대한 아이디 내 위치별 비밀 파라미터 값을 포함하는 비밀 파라미터 테이블로부터 상기 수신된 아이디에 포함된 각 심볼들의 상기 수신된 아이디 내 위치에 대응하는 비밀 파라미터 값들을 추출하는 단계, 상기 추출된 비밀 파라미터 값들을 이용하여, 상기 수신된 아이디에 대응하는 비밀키를 생성하는 단계 및 상기 비밀키를 상기 키 요청 단말로 제공하는 단계를 포함한다.According to an embodiment of the present invention, there is provided a key generation method comprising: receiving a key generation request including an ID generated according to a predetermined ID constraint condition from a key requesting terminal; Extracting secret parameter values corresponding to positions in the received ID of each of the symbols included in the received ID from a secret parameter table including a secret parameter value for each position in the ID, Generating a secret key corresponding to the received ID, and providing the secret key to the key requesting terminal.

상기 비밀키를 생성하는 단계는, 상기 추출된 비밀 파라미터 값들의 합을 이용하여 상기 비밀키를 생성할 수 있다.The generating of the secret key may generate the secret key using the sum of the extracted secret parameter values.

상기 비밀키는, 아래의 수학식The secret key is expressed by the following equation

Figure 112016105480324-pat00003
Figure 112016105480324-pat00003

(이때, Sk는 상기 비밀키, n은 상기 수신된 아이디의 자릿수, Si는 상기 수신된 아이디 내 i 번째 위치의 심볼에 대응하는 비밀 파라미터 값, R은 임의의 난수)에 의해 생성될 수 있다.(Where Sk is the secret key, n is the number of digits of the received identity, S i is a secret parameter value corresponding to the symbol of the ith position in the received identity, and R is any random number) .

상기 아이디 내 위치는, 아이디를 복수의 블록으로 분할하였을 때, 분할된 각 블록 내 위치이며, 상기 비밀키를 생성하는 단계는, 상기 추출된 비밀 파라미터 값들을 상기 각 블록별로 합한 값들을 이용하여 상기 비밀키를 생성할 수 있다.Wherein the position in the ID is a position in each of the divided blocks when the ID is divided into a plurality of blocks, and the step of generating the secret key further comprises the steps of: You can generate a secret key.

상기 비밀키는, 아래의 수학식The secret key is expressed by the following equation

Figure 112016105480324-pat00004
Figure 112016105480324-pat00004

(이때, Sk는 비밀키, m은 상기 분할된 블록의 수, Bk는 k번째 블록에 대한 상기 추출된 비밀 파라미터 값들의 합, Rk는 임의의 난수)에 의해 생성될 수 있다.May be generated by (wherein, Sk is the secret key, m is the number of the divided blocks, B k is the sum of the extracted secret parameter values, R k is an arbitrary random number of the k-th block).

상기 Rk는, 상기 Bk가 가질 수 있는 최대 비트 수의 k배 크기의 비트 수를 가지는 임의의 난수일 수 있다.The R k may be any random number having a bit number of k times the maximum number of bits that B k can have.

본 발명의 일 실시예에 따른 암호화 장치는, 기 설정된 아이디 제약 조건에 따라 생성된 암호화 장치의 사용자 아이디를 포함한 키 생성 요청을 키 발급 서버로 전송하여, 상기 키 발급 서버로부터 상기 기 설정된 아이디 제약 조건에 따라 생성 가능한 모든 심볼들에 대한 아이디 내 위치별 공개 파라미터 값을 포함하는 공개 파라미터 테이블 및 상기 암호화 장치의 사용자 아이디에 대응되는 비밀키를 획득하는 키 정보 획득부, 상기 공개 파라미터 테이블을 공유하는 외부 단말로부터 상기 아이디 제약 조건에 따라 생성된 상기 외부 단말의 사용자 아이디를 수신하는 아이디 수신부, 상기 공개 파라미터 테이블로부터 상기 외부 단말의 사용자 아이디에 포함된 각 심볼의 아이디 내 위치에 대응되는 공개 파라미터 값들을 추출하고, 상기 추출된 공개 파라미터 값들을 이용하여 상기 외부 단말의 사용자 아이디에 대응되는 공개키를 생성하는 공개키 생성부 및 상기 공개키를 이용하여 상기 외부 단말로 전송할 데이터를 암호화 하거나, 상기 비밀키를 이용하여 상기 전송할 데이터에 대한 전자 서명을 수행하는 암호화부를 포함한다.The encryption apparatus according to an exemplary embodiment of the present invention transmits a key generation request including a user ID of the encryption apparatus generated according to a predetermined ID constraint condition to a key issuance server, A secret key corresponding to a user ID of the encryption apparatus; a key information acquisition unit for acquiring a secret key corresponding to a user ID of the encryption apparatus; An ID receiving unit for receiving a user ID of the external terminal generated in accordance with the ID constraint condition from the terminal, extracting public parameter values corresponding to positions in the ID of each symbol included in the user ID of the external terminal from the public parameter table , And the extracted public A public key generation unit for generating a public key corresponding to a user ID of the external terminal using parameter values, and a public key generating unit for encrypting data to be transmitted to the external terminal using the public key, And an encryption unit for performing digital signature on the digital signature.

상기 공개키 생성부는, 상기 추출된 공개 파라미터들의 곱을 이용하여 상기 사용자 아이디에 대응되는 공개키를 생성할 수 있다.The public key generation unit may generate a public key corresponding to the user ID by using the product of the extracted public parameters.

상기 아이디 내 위치는, 상기 외부 단말의 사용자 아이디를 복수의 블록으로 분할하였을 때, 분할된 각 블록 내 위치이며, 상기 공개키 생성부는, 상기 추출된 공개 파라미터 값들을 상기 각 블록별로 곱한 값들을 이용하여 상기 사용자 아이디에 대응되는 공개키를 생성할 수 있다.The position in the ID is a position in each divided block when the user ID of the external terminal is divided into a plurality of blocks. The public key generation unit uses the values obtained by multiplying the extracted public parameter values by each block And generate a public key corresponding to the user ID.

상기 암호화 장치는, 상기 외부 단말로 상기 암호화 장치의 사용자 아이디를 제공하는 아이디 제공부, 상기 외부 단말로부터 상기 암호화 장치의 사용자 아이디에 대응되는 공개키를 이용하여 암호화된 데이터 또는 상기 외부 단말의 비밀키를 이용하여 전자 서명된 데이터를 수신하는 데이터 수신부 및 상기 암호화 장치의 사용자 아이디에 대응되는 비밀키를 이용하여 상기 암호화된 데이터를 복호화하거나, 상기 외부 단말의 사용자 아이디에 대응되는 공개키를 이용하여 상기 전자 서명된 데이터에 대한 검증을 수행하는 복호화부를 더 포함할 수 있다.The encryption device may further include: an ID providing unit for providing a user ID of the encryption device to the external terminal, data encrypted using the public key corresponding to the user ID of the encryption device from the external terminal, And decrypting the encrypted data using a secret key corresponding to the user ID of the encryption apparatus or using the public key corresponding to the user ID of the external terminal, And a decryption unit for performing verification of the digitally signed data.

본 발명의 일 실시예에 따른 암호화 방법은, 기 설정된 아이디 제약 조건에 따라 생성된 암호화 장치의 사용자 아이디를 포함한 키 생성 요청을 키 발급 서버로 전송하는 단계, 상기 키 발급 서버로부터 상기 기 설정된 아이디 제약 조건에 따라 생성 가능한 모든 심볼들에 대한 아이디 내 위치별 공개 파라미터 값을 포함하는 공개 파라미터 테이블 및 상기 암호화 장치의 사용자 아이디에 대응되는 비밀키를 획득하는 단계, 상기 공개 파라미터 테이블을 공유하는 외부 단말로부터 상기 아이디 제약 조건에 따라 생성된 상기 외부 단말의 사용자 아이디를 수신하는 단계, 상기 공개 파라미터 테이블로부터 상기 외부 단말의 사용자 아이디에 포함된 각 심볼의 아이디 내 위치에 대응되는 공개 파라미터 값들을 추출하는 단계, 상기 추출된 공개 파라미터 값들을 이용하여 상기 외부 단말의 사용자 아이디에 대응되는 공개키를 생성하는 단계 및 상기 공개키를 이용하여 상기 외부 단말로 전송할 데이터를 암호화 하거나, 상기 비밀키를 이용하여 상기 전송할 데이터에 대한 전자 서명을 수행하는 단계를 포함한다.The encryption method according to an embodiment of the present invention includes the steps of transmitting a key generation request including a user ID of an encryption apparatus generated according to a predetermined ID constraint condition to a key issuance server, Acquiring a public parameter table including a public parameter value for each location in an ID of all symbols that can be generated according to a condition and a secret key corresponding to a user ID of the encryption apparatus; Extracting a public parameter value corresponding to a position in an ID of each symbol included in a user ID of the external terminal from the public parameter table based on the user ID of the external terminal generated according to the ID constraint condition, The extracted public parameters Generating a public key corresponding to a user ID of the external terminal using the public key, encrypting data to be transmitted to the external terminal using the public key, or performing digital signature on the data to be transmitted using the private key .

상기 공개키를 생성하는 단계는, 상기 추출된 공개 파라미터들의 곱을 이용하여 상기 사용자 아이디에 대응되는 공개키를 생성할 수 있다.The generating of the public key may generate a public key corresponding to the user ID using the product of the extracted public parameters.

상기 아이디 내 위치는, 상기 외부 단말의 사용자 아이디를 복수의 블록으로 분할하였을 때, 분할된 각 블록 내 위치이며, 상기 공개키를 생성하는 단계는, 상기 추출된 공개 파라미터 값들을 상기 각 블록별로 곱한 값들을 이용하여 상기 사용자 아이디에 대응되는 공개키를 생성할 수 있다.Wherein the position in the ID is a position in each divided block when the user ID of the external terminal is divided into a plurality of blocks, and the step of generating the public key includes: Values to generate a public key corresponding to the user ID.

상기 암호화 방법은, 상기 외부 단말로 상기 암호화 장치의 사용자 아이디를 제공하는 단계, 상기 외부 단말로부터 상기 암호화 장치의 사용자 아이디에 대응되는 공개키를 이용하여 암호화된 데이터 또는 상기 외부 단말의 비밀키를 이용하여 전자 서명된 데이터를 수신하는 단계 및 상기 암호화 장치의 사용자 아이디에 대응되는 비밀키를 이용하여 상기 암호화된 데이터를 복호화하거나, 상기 외부 단말의 사용자 아이디에 대응되는 공개키를 이용하여 상기 전자 서명된 데이터에 대한 검증을 수행하는 단계를 더 포함할 수 있다.The encryption method includes the steps of: providing a user ID of the encryption apparatus to the external terminal; using the encrypted data or the secret key of the external terminal using the public key corresponding to the user ID of the encryption apparatus from the external terminal; And decrypting the encrypted data using the secret key corresponding to the user ID of the encryption apparatus, or using the public key corresponding to the user ID of the external terminal, And performing verification on the data.

본 발명의 실시예들에 따르면, 사용자의 아이디를 구성하는 심볼의 위치에 1:1 대응되는 비밀 파라미터를 이용하여 비밀키를 생성함으로써, 종래 기술에서 요구되는 사전계산이 요구되지 않으며, 이에 따라 키 생성을 위해 요구되는 처리 시간과 비용을 현저하게 줄일 수 있게 된다.According to the embodiments of the present invention, by generating the secret key using the secret parameter corresponding to 1: 1 corresponding to the position of the symbol constituting the identity of the user, precomputation required in the prior art is not required, The processing time and cost required for generation can be remarkably reduced.

도 1은 본 발명의 일 실시예에 따른 암호화 시스템의 구성도
도 2는 본 발명의 일 실시예에 따른 키 생성 장치의 구성도
도 3은 본 발명의 추가적인 실시예에 따른 키 생성 장치의 구성도
도 4는 비밀 파라미터 테이블의 일 예를 나타낸 예시도
도 5는 비밀 파라미터 테이블의 다른 예를 나타낸 예시도
도 6은 공개 파라미터 테이블의 일 예를 나타낸 예시도
도 7은 공개 파라미터 테이블의 다른 예를 나타낸 예시도
도 8은 본 발명의 일 실시예에 따른 암호화 장치의 구성도
도 9는 본 발명의 일 실시예에 따른 키 생성 방법의 순서도
도 10은 본 발명의 추가적인 실시예에 따른 키 생성 방법의 순서도
도 11은 본 발명의 일 실시예에 따른 암호화 과정을 나타낸 순서도
도 12는 본 발명의 일 실시예에 따른 복호화 과정을 나타낸 순서도
도 13은 본 발명의 일 실시예에 따른 전자 서명 수행 과정을 나타낸 순서도
도 14는 본 발명의 일 실시예에 따른 전자 서명된 데이터에 대한 검증 과정을 나타낸 순서도
1 is a block diagram of an encryption system according to an embodiment of the present invention;
2 is a block diagram of a key generating apparatus according to an embodiment of the present invention.
3 is a block diagram of a key generation apparatus according to a further embodiment of the present invention
4 is an exemplary diagram showing an example of a secret parameter table
5 is an exemplary diagram showing another example of the secret parameter table
6 is an exemplary diagram showing an example of a public parameter table
7 is an exemplary diagram showing another example of the disclosure parameter table
8 is a block diagram of an encryption apparatus according to an embodiment of the present invention.
9 is a flowchart of a key generation method according to an embodiment of the present invention
10 is a flowchart of a key generation method according to a further embodiment of the present invention
11 is a flowchart showing an encryption process according to an embodiment of the present invention.
12 is a flowchart showing a decoding process according to an embodiment of the present invention.
FIG. 13 is a flow chart illustrating a digital signature execution process according to an embodiment of the present invention.
14 is a flow chart illustrating a verification procedure for digitally signed data according to an embodiment of the present invention.

이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.Hereinafter, specific embodiments of the present invention will be described with reference to the drawings. The following detailed description is provided to provide a comprehensive understanding of the methods, apparatus, and / or systems described herein. However, this is merely an example and the present invention is not limited thereto.

본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description, well-known functions or constructions are not described in detail since they would obscure the invention in unnecessary detail. The following terms are defined in consideration of the functions of the present invention, and may be changed according to the intention or custom of the user, the operator, and the like. Therefore, the definition should be based on the contents throughout this specification. The terms used in the detailed description are intended only to describe embodiments of the invention and should in no way be limiting. Unless specifically stated otherwise, the singular form of a term includes plural forms of meaning. In this description, the expressions " comprising " or " comprising " are intended to indicate certain features, numbers, steps, operations, elements, parts or combinations thereof, Should not be construed to preclude the presence or possibility of other features, numbers, steps, operations, elements, portions or combinations thereof.

도 1은 본 발명의 일 실시예에 따른 암호화 시스템의 구성도이다.1 is a configuration diagram of an encryption system according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 암호화 시스템(100)은 키 발급 서버(110) 및 사용자 단말(12, 130)을 포함한다.Referring to FIG. 1, an encryption system 100 according to an exemplary embodiment of the present invention includes a key issuing server 110 and a user terminal 12, 130.

키 발급 서버(110)는 예를 들어, 신뢰할 수 있는 기관이나 암호화 서비스 제공자 등에 의해 운영되는 서버로서, 사용자 단말(120, 130)의 키 생성 요청에 따라 암호화를 위한 키 정보를 생성할 수 있다. 또한, 키 발급 서버(110)는 생성된 키 정보를 안전한 채널을 통해 각 사용자 단말(120, 130)로 제공할 수 있다.The key issuing server 110 may be a server operated by, for example, a trusted authority or an encryption service provider, and may generate key information for encryption in response to a key generation request of the user terminals 120 and 130. In addition, the key issuing server 110 can provide the generated key information to each of the user terminals 120 and 130 through a secure channel.

이때, 키 정보는 후술할 바와 같이 각 사용자 단말(120, 130)의 사용자 아이디에 대응되는 비밀키와 사용자 아이디를 이용하여 공개키를 생성할 수 있는 공개 파라미터 테이블을 포함할 수 있다. In this case, the key information may include a public parameter table for generating a public key using a secret key corresponding to a user ID of each of the user terminals 120 and 130 and a user ID, as described later.

각 사용자 단말(120, 130)은 키 발급 서버(110)로부터 키 정보를 제공받아 암복호화 내지는 데이터에 대한 전자 서명 및 검증을 수행하기 위한 장치일 수 있다. 예를 들어, 각 사용자 단말(120, 130)은 스마트폰, PDA, 패블릿(pablet), 데스크톱 PC, 랩톱 PC, 태블릿 PC, 서버, 센서 등과 같이 정보 처리 기능, 데이터 저장 기능 및 유선 또는 무선 네트워크를 통한 데이터 통신 기능을 구비한 다양한 형태의 컴퓨팅 장치일 수 있다. Each of the user terminals 120 and 130 may be a device for performing encryption / decryption or digital signature and verification of data by receiving key information from the key issuing server 110. For example, each of the user terminals 120 and 130 may include an information processing function, a data storage function, and a wired or wireless network such as a smart phone, a PDA, a pavlet, a desktop PC, a laptop PC, a tablet PC, And may be various types of computing devices having a data communication function through the Internet.

각 사용자 단말(120, 130)은 사용자 아이디를 키 발급 서버(110)로 전송하여 키 생성을 요청할 수 있다. 또한, 각 사용자 단말(120, 130)은 키 발급 서버(110)로부터 공개 파라미터 테이블과 사용자 아이디에 대응되는 비밀키를 수신할 수 있다.Each of the user terminals 120 and 130 may transmit a user ID to the key issuing server 110 to request a key generation. In addition, each of the user terminals 120 and 130 can receive the public parameter table and the secret key corresponding to the user ID from the key issuing server 110. [

이때, 키 발급 서버(110)로부터 각 사용자 단말(120, 130)로 전송되는 비밀키는 각 사용자 단말(120, 130)로부터 전송된 사용자 아이디에 따라 상이한 값을 가질 수 있다. 반면, 키 발급 서버(110)로부터 각 사용자 단말(120, 130)로 전송되는 공개 파라미터 테이블은 각 사용자 단말(120, 130)로부터 전송된 사용자 아이디와 무관하게 동일할 수 있으며, 이에 따라, 각 사용자 단말(120, 130)은 동일한 공개 파라미터 테이블을 공유할 수 있다.At this time, the secret key transmitted from the key issuing server 110 to each of the user terminals 120 and 130 may have a different value according to the user ID transmitted from each of the user terminals 120 and 130. On the other hand, the public parameter table transmitted from the key issuing server 110 to each of the user terminals 120 and 130 may be the same regardless of the user ID transmitted from each of the user terminals 120 and 130, The terminals 120 and 130 may share the same public parameter table.

한편, 키 발급 서버(110)로부터 비밀키 및 공개 파라미터 테이블을 수신한 각 사용자 단말(120, 130)은 수신된 비밀키 및 공개 파라미터 테이블을 이용하여 암복호화를 수행하거나, 전송될 데이터에 대한 전자 서명 및 전자 서명된 데이터에 대한 검증을 수행할 수 있다.On the other hand, each of the user terminals 120 and 130 receiving the private key and the public parameter table from the key issuing server 110 performs encryption / decryption using the received secret key and the public parameter table, Signature and verification of the digitally signed data.

예를 들어, 사용자 단말(120)은 사용자 단말(130)의 사용자 아이디를 수신하고, 공개 파라미터 테이블을 이용하여 수신된 사용자 아이디에 대응되는 공개키를 생성할 수 있다. 또한, 사용자 단말(120)은 생성된 공개키를 이용하여 데이터를 암호화한 후 사용자 단말(130)로 전송할 수 있다.For example, the user terminal 120 may receive the user ID of the user terminal 130 and generate a public key corresponding to the received user ID using the public parameter table. The user terminal 120 may encrypt the data using the generated public key and transmit the encrypted data to the user terminal 130.

이때, 사용자 단말(120)로부터 암호화된 데이터를 수신한 사용자 단말(130)은 키 발급 서버(110)로부터 수신된 비밀키를 이용하여 암호화된 데이터를 복호화할 수 있다.At this time, the user terminal 130 receiving the encrypted data from the user terminal 120 can decrypt the encrypted data using the secret key received from the key issuing server 110.

마찬가지로, 사용자 단말(130)은 사용자 단말(120)의 사용자 아이디를 수신하고, 공개 파라미터 테이블을 이용하여 수신된 사용자 아이디에 대응되는 공개키를 생성할 수 있다. 또한, 사용자 단말(130)은 생성된 공개키를 이용하여 데이터를 암호화한 후 사용자 단말(120)로 전송할 수 있다.Similarly, the user terminal 130 may receive the user ID of the user terminal 120 and generate a public key corresponding to the received user ID using the public parameter table. Also, the user terminal 130 may encrypt the data using the generated public key, and then transmit the encrypted data to the user terminal 120.

이때, 사용자 단말(130)로부터 암호화된 데이터를 수신한 사용자 단말(120)은 키 발급 서버(110)로부터 수신된 비밀키를 이용하여 암호화된 데이터를 복호화할 수 있다.At this time, the user terminal 120 receiving the encrypted data from the user terminal 130 can decrypt the encrypted data using the secret key received from the key issuing server 110.

다른 예로, 사용자 단말(120)은 키 발급 서버(110)로부터 수신된 비밀키를 이용하여 데이터에 대한 전자 서명을 수행하고, 전자 서명된 데이터 및 사용자 단말(120)의 사용자 아이디를 사용자 단말(130)로 제공할 수 있다.In another example, the user terminal 120 performs a digital signature on the data using the secret key received from the key issuing server 110, and transmits the digitally signed data and the user ID of the user terminal 120 to the user terminal 130 ).

이때, 사용자 단말(120)로부터 전자 서명된 데이터와 사용자 단말(120)의 사용자 아이디를 수신한 사용자 단말(130)은 공개 파라미터 테이블을 이용하여 수신된 사용자 아이디에 대응되는 공개키를 생성할 수 있다. 이후, 사용자 단말(130)은 생성된 공개키를 이용하여 수신된 전자 서명된 데이터에 대한 검증을 수행할 수 있다.At this time, the user terminal 130 receiving the digitally signed data from the user terminal 120 and the user ID of the user terminal 120 can generate the public key corresponding to the received user ID using the public parameter table . The user terminal 130 may then perform verification of the digitally signed data received using the generated public key.

마찬가지로, 사용자 단말(130)은 키 발급 서버(110)로부터 수신된 비밀키를 이용하여 데이터에 대한 전자 서명을 수행하고, 전자 서명된 데이터 및 사용자 단말(130)의 사용자 아이디를 사용자 단말(120)로 제공할 수 있다.Similarly, the user terminal 130 performs digital signature on the data using the secret key received from the key issuing server 110, and transmits the digitally signed data and the user ID of the user terminal 130 to the user terminal 120, .

이때, 사용자 단말(130)로부터 전자 서명된 데이터와 사용자 단말(130)의 사용자 아이디를 수신한 사용자 단말(120)은 공개 파라미터 테이블을 이용하여 수신된 사용자 아이디에 대응되는 공개키를 생성할 수 있다. 이후, 사용자 단말(120)은 생성된 공개키를 이용하여 수신된 전자 서명된 데이터에 대한 검증을 수행할 수 있다.At this time, the user terminal 120 receiving the digitally signed data from the user terminal 130 and the user ID of the user terminal 130 can generate a public key corresponding to the received user ID using the public parameter table . The user terminal 120 may then perform verification of the digitally signed data received using the generated public key.

도 2는 본 발명의 일 실시예에 따른 키 생성 장치의 구성도이다.2 is a configuration diagram of a key generation apparatus according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 일 실시예에 따른 키 생성 장치(200)는 수신부(210), 비밀키 생성부(220) 및 키 정보 제공부(230)를 포함한다.Referring to FIG. 2, a key generation apparatus 200 according to an exemplary embodiment of the present invention includes a receiving unit 210, a secret key generating unit 220, and a key information providing unit 230.

본 발명의 일 실시예에서, 키 생성 장치(200)는 예를 들어, 도 1에 도시된 키 발급 서버(110)의 일 구성으로 구현될 수 있다.In one embodiment of the present invention, the key generation apparatus 200 may be implemented, for example, as one configuration of the key issuing server 110 shown in FIG.

수신부(210)는 키 요청 단말(예를 들어, 도 1의 사용자 단말(120, 130))로부터 기 설정된 아이디 제약 조건에 따라 생성된 아이디를 포함하는 키 생성 요청을 수신한다.The receiving unit 210 receives a key generation request including an ID generated according to a predetermined ID constraint condition from a key requesting terminal (for example, the user terminals 120 and 130 in FIG. 1).

이때, 아이디 제약 조건은 아이디 생성 시 아이디가 만족하여야 하는 하나 이상의 규칙을 포함할 수 있으며, 암호화 서비스의 제공자에 의해 미리 설정될 수 있다. 구체적으로, 아이디 제약 조건은 예를 들어, 아이디를 구성하기 위해 이용할 수 있는 심볼의 종류(예를 들어, 영문 대문자, 영문 소문자, 숫자, 특수 문자 등) 및 아이디의 최대 자릿수를 포함할 수 있다. 그러나, 아이디 제약 조건은 반드시 상술한 예에 한정되는 것은 아니며, 예를 들어, 아이디의 최소 자릿수, 상이한 종류의 심볼들의 조합(예를 들어, 영문 대문자와 숫자의 조합) 등과 같이 암호화 서비스의 정책에 따라 다양한 조건들이 추가될 수 있다.At this time, the ID constraint condition may include one or more rules that an ID must be satisfied at the time of ID creation, and may be preset by the provider of the cryptographic service. Specifically, the ID constraint condition may include, for example, the type of symbol (e.g., uppercase letters, lowercase letters, numbers, special characters, etc.) available for constructing the ID and the maximum number of digits of the ID. However, the ID constraint condition is not necessarily limited to the above-described example. For example, the ID constraint condition may include a minimum number of digits of ID, a combination of symbols of different kinds (for example, a combination of uppercase letters and numbers) Various conditions can be added accordingly.

한편, 심볼은 컴퓨팅 장치를 이용하여 입력 가능한 모든 형태의 문자, 숫자, 기호, 특수 문자 등을 의미할 수 있다.Symbols may mean any type of letters, numbers, symbols, special characters, etc. that can be input using a computing device.

키 요청 단말로부터 키 생성 요청이 수신된 경우, 비밀키 생성부(220)는 비밀 파라미터 테이블로부터, 수신된 아이디에 포함된 각 심볼들의 수신된 아이디 내 위치에 대응하는 비밀 파라미터 값들을 추출한다. 또한, 비밀키 생성부(220)는 추출된 비밀 파라미터 값들을 이용하여, 수신된 아이디에 대응하는 비밀키를 생성한다.When a key generation request is received from the key requesting terminal, the secret key generating unit 220 extracts secret parameter values corresponding to the positions in the received IDs of the symbols included in the received ID from the secret parameter table. Also, the secret key generation unit 220 generates a secret key corresponding to the received ID using the extracted secret parameter values.

이때, 비밀 파라미터 테이블은 아이디 제약 조건에 따라 이용 가능한 모든 심볼들 각각에 대한 아이디 내 위치별 비밀 파라미터 값을 포함할 수 있다. 비밀 파라미터 테이블에 대한 상세한 설명은 후술하기로 한다.At this time, the secret parameter table may include secret parameter values for each position in the ID for each of all available symbols according to the ID constraint. The secret parameter table will be described later in detail.

한편, 본 발명의 일 실시예에 따르면, 수신된 아이디에 대응하는 비밀키는 추출된 비밀 파라미터 값들의 합을 이용하여 생성될 수 있다.Meanwhile, according to an embodiment of the present invention, the secret key corresponding to the received ID can be generated using the sum of secret parameter values extracted.

구체적으로, 비밀키는 예를 들어, 아래의 수학식 1에 따라 생성될 수 있다.Specifically, the secret key may be generated, for example, according to Equation (1) below.

[수학식 1][Equation 1]

Figure 112016105480324-pat00005
Figure 112016105480324-pat00005

이때, Sk는 비밀키, n은 수신된 아이디의 자릿수, Si는 수신된 아이디 내 i 번째 위치의 심볼에 대응하는 비밀 파라미터 값, R은 임의의 난수를 나타낸다. Where Sk is the secret key, n is the number of digits of the received identity, S i is the secret parameter value corresponding to the symbol at the ith position in the received identity, and R is an arbitrary random number.

한편, 본 발명의 다른 실시예에 따르면, 키 요청 단말로부터 키 생성 요청이 수신된 경우, 비밀키 생성부(220)는 수신된 아이디를 복수의 블록으로 분할하고, 비밀 파라미터 테이블로부터 수신된 아이디 내 각 심볼들의 각 블록 내 위치에 대응하는 비밀 파라미터 값들을 추출한다. 또한, 비밀키 생성부(220)는 추출된 비밀 파라미터 값들을 이용하여, 수신된 아이디에 대응하는 비밀키를 생성한다.Meanwhile, according to another embodiment of the present invention, when a key generation request is received from the key requesting terminal, the secret key generating unit 220 divides the received ID into a plurality of blocks, And extracts secret parameter values corresponding to positions in each block of the respective symbols. Also, the secret key generation unit 220 generates a secret key corresponding to the received ID using the extracted secret parameter values.

이때, 수신된 아이디에 대응하는 비밀키는 추출된 비밀 파라미터 값들을 각 블록별로 합한 값들을 이용하여 생성될 수 있다.At this time, the secret key corresponding to the received ID can be generated using the values of the extracted secret parameter values for each block.

구체적으로, 비밀키는 예를 들어, 아래의 수학식 2에 따라 생성될 수 있다.Specifically, the secret key may be generated, for example, according to Equation (2) below.

[수학식 2]&Quot; (2) "

Figure 112016105480324-pat00006
Figure 112016105480324-pat00006

이때, Sk는 비밀키, m은 분할된 블록의 수, Bk는 k번째 블록에 대해 추출된 비밀 파라미터 값들의 합, Rk는 임의의 난수를 나타낸다.In this case, Sk is the secret key, m is the number of divided blocks, B k is the sum of secret parameter values extracted for the kth block, and R k is an arbitrary random number.

한편, 본 발명의 일 실시예에 따르면, 수학식 2에서, Rk는 Bk가 가질 수 있는 최대 비트 수의 k배 크기의 비트 수를 가지는 임의의 난수일 수 있다.According to an embodiment of the present invention, R k may be an arbitrary random number having a bit number of k times the maximum number of bits that B k can have.

구체적으로, 수학식 2에 따라 비밀키를 생성하는 경우, 비밀 파라미터 테이블에 포함된 비밀 파라미터들이 모두 상이한 값을 가지더라도, 상이한 아이디에 대해 추출된 비밀 파라미터들의 합이 동일한 경우가 발생할 수 있으며, 이 경우, 상이한 아이디에 대해 동일한 비밀키가 생성될 수 있다.Specifically, in the case of generating the secret key according to Equation (2), it is possible that even if the secret parameters included in the secret parameter table all have different values, the sum of secret parameters extracted for different identities may be equal, , The same secret key can be generated for different identities.

반면, 수학식 2에서 Rk가 Bk가 가질 수 있는 최대 비트 수의 k배 크기의 비트 수를 가지는 임의의 난수인 경우, 상이한 아이디에 대해 동일한 비밀키가 생성되는 것을 방지할 수 있다.On the other hand, when R k in Equation (2 ) is an arbitrary random number having a bit number of k times the maximum number of bits B k can have, it is possible to prevent the same secret key from being generated for different IDs.

구체적으로, 비밀 파라미터 테이블에 포함된 각 비밀 파라미터 값들이 128 bit 크기를 가지며, 아이디를 4자리의 블록들로 분할하는 것으로 가정하면, 비밀 파라미터 테이블에서 추출된 비밀 파라미터 값들을 각 블록별로 합한 값(즉, Bk)들의 크기는 최대 130 bit가 된다. 따라서, Bk에 곱해지는 Rk는 130ㅧk의 비트 수를 가지는 임의의 난수가 된다.Specifically, if it is assumed that each secret parameter value included in the secret parameter table has a size of 128 bits and that the ID is divided into blocks of four digits, the secret parameter values extracted from the secret parameter table are summed That is, the size of B k ) becomes maximum 130 bits. Therefore, Rk multiplied by Bk is an arbitrary random number having a bit number of 130 k.

이 경우, 수학식 2에서 B1에 곱해지는 난수인 R1은 130 bit 크기의 난수이며, B2에 곱해지는 난수인 R2는 260 bit 크기의 난수가 된다. 또한, Rk가 곱해짐에 따라 Bk 값이 k에 따라 상이한 bit 크기를 가지는 값이 되므로, 상이한 아이디에 대해 추출된 비밀 파라미터들의 합이 동일한 경우라도, 수학식 2에 따라 생성되는 비밀키는 상이하게 된다.In this case, R 1, which is a random number multiplied by B 1 in Equation (2), is a random number having a size of 130 bits, and R 2 , which is a random number multiplied by B 2 , is a random number having a size of 260 bits. Also, since the B k value becomes a value having a different bit size according to k as R k is multiplied, even if the sum of secret parameters extracted for different identities is the same, the secret key generated according to Equation (2) .

한편, 키 정보 제공부(230)는 키 요청 단말로부터 수신된 아이디에 대한 비밀키가 생성된 경우, 생성된 비밀키를 키 요청 단말로 제공한다.Meanwhile, when the secret key for the ID received from the key requesting terminal is generated, the key information providing unit 230 provides the generated secret key to the key requesting terminal.

한편, 일 실시예에서, 도 2에 도시된 수신부(210), 비밀키 생성부(220) 및 키 정보 제공부(230)는 하나 이상의 프로세서 및 그 프로세서와 연결된 컴퓨터 판독 가능 기록 매체를 포함하는 하나 이상의 컴퓨팅 장치 상에서 구현될 수 있다. 컴퓨터 판독 가능 기록 매체는 프로세서의 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다. 컴퓨팅 장치 내의 프로세서는 각 컴퓨팅 장치로 하여금 본 명세서에서 기술되는 예시적인 실시예에 따라 동작하도록 할 수 있다. 예를 들어, 프로세서는 컴퓨터 판독 가능 기록 매체에 저장된 명령어를 실행할 수 있고, 컴퓨터 판독 가능 기록 매체에 저장된 명령어는 프로세서에 의해 실행되는 경우 컴퓨팅 장치로 하여금 본 명세서에 기술되는 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.In one embodiment, the receiving unit 210, the secret key generating unit 220, and the key information providing unit 230 shown in FIG. 2 include one or more processors and a computer-readable recording medium coupled to the processor. Or more on a computing device. The computer readable recording medium may be internal or external to the processor, and may be coupled to the processor by any of a variety of well known means. A processor in the computing device may cause each computing device to operate in accordance with the exemplary embodiment described herein. For example, a processor may execute instructions stored on a computer-readable recording medium, and instructions stored on the computer readable recording medium may cause a computing device to perform operations in accordance with the exemplary embodiments described herein For example.

도 3은 본 발명의 추가적인 실시예에 따른 키 생성 장치의 구성도이다.3 is a configuration diagram of a key generating apparatus according to a further embodiment of the present invention.

도 3을 참조하면, 본 발명의 일 실시예에 따른 키 생성 장치(300)는 수신부(210), 비밀키 생성부(220), 키 정보 제공부(230), 비밀 파라미터 생성부(240), 비밀 파라미터 테이블 생성부(250), 공개 파라미터 생성부(260) 및 공개 파라미터 테이블 생성부(270) 를 포함한다.3, a key generation apparatus 300 according to an exemplary embodiment of the present invention includes a receiver 210, a secret key generator 220, a key information provider 230, a secret parameter generator 240, A secret parameter table generation unit 250, a public parameter generation unit 260, and a public parameter table generation unit 270. [

도 3에 도시된 실시예에서, 키 생성 장치(300)는 예를 들어, 도 1에 도시된 키 발급 서버(110)의 일 구성으로 구현될 수 있다.In the embodiment shown in FIG. 3, the key generation apparatus 300 may be embodied as a configuration of the key issuing server 110 shown in FIG. 1, for example.

비밀 파라미터 생성부(240)는 기 설정된 아이디 제약 조건에 따라 아이디 생성을 위해 이용 가능한 모든 심볼(symbol)들에 대하여, 각 심볼의 아이디 내 위치별 비밀 파라미터 값을 생성한다. 본 발명의 일 실시예에 따르면, 비밀 파라미터 생성부(240)는 아이디 제약 조건에 따라 아이디 생성을 위해 이용 가능한 모든 심볼(symbol)들에 대하여, 각 심볼의 아이디 내 위치별로 대응되는 비밀 파라미터 값을 생성할 수 있다.The secret parameter generator 240 generates a secret parameter value for each symbol in the ID of each symbol for all symbols available for ID generation according to a predetermined ID constraint. According to an embodiment of the present invention, the secret parameter generator 240 generates secret parameter values corresponding to positions in the ID of each symbol with respect to all symbols available for ID generation according to the ID constraint condition Can be generated.

예를 들어, 비밀 파라미터 생성부(240)는 아이디 제약 조건에 따라 이용 가능한 각 심볼에 대하여, 아이디 내 위치에 따라 임의의 값을 생성하고, 생성된 임의의 값을 AES 알고리즘으로 암호화하여 각 심볼의 아이디 내 특정 위치에 대응하는 비밀 파라미터를 생성할 수 있다.For example, the secret parameter generation unit 240 generates an arbitrary value according to the position in the ID for each available symbol according to the ID constraint condition, encrypts the generated arbitrary value with the AES algorithm, It is possible to generate a secret parameter corresponding to a specific position in the ID.

이때, 본 발명의 일 실시예에 따르면, 비밀 파라미터 생성부(240)는 아이디 제약 조건에 따라 생성 가능한 아이디의 최대 자릿수를 복수의 블록으로 분할한 후, 아이디 제약 조건에 따라 이용 가능한 모든 심볼들에 대하여, 각 심볼의 분할된 각 블록 내 위치별로 대응되는 비밀 파라미터 값을 생성할 수 있다.In this case, according to an embodiment of the present invention, the secret parameter generator 240 divides the maximum number of digits of IDs that can be generated according to the ID constraint condition into a plurality of blocks, A secret parameter value corresponding to each position in each divided block of each symbol can be generated.

예를 들어, 아이디 제약 조건에 따른 아이디의 최대 자릿수가 24자리인 경우, 비밀 파라미터 생성부(240)는 24자리를 4개 자리씩 6개의 블록으로 분할할 수 있다. 또한, 비밀 파라미터 생생부(210)는 아이디 제약 조건에 따라 생성 가능한 모든 심볼들 각각에 대해 분할된 6개의 각 블록 내 위치에 대응되는 비밀 파라미터 값을 생성할 수 있다.For example, when the maximum number of digits of the ID according to the ID constraint condition is 24 digits, the secret parameter generation unit 240 may divide 24 digits into 4 blocks by 4 digits. In addition, the secret parameter generator 210 may generate secret parameter values corresponding to positions within each of six divided blocks, for each of all symbols that can be generated according to the ID constraint condition.

한편, 본 발명의 일 실시예에 따르면, 비밀 파라미터 생성부(240)에 의해 생성되는 비밀 파라미터 값은 모두 상이할 수 있다.Meanwhile, according to an embodiment of the present invention, the secret parameter values generated by the secret parameter generation unit 240 may all be different.

구체적으로, 비밀 파라미터 생성부(240)는 예를 들어, 아래 수학식 1에 따른 맵핑 함수를 이용하여, 각 심볼의 블록 내 위치에 따른 임의의 값을 생성할 수 있다.Specifically, the secret-parameter generating unit 240 may generate an arbitrary value according to a position in a block of each symbol, using, for example, a mapping function according to Equation (1) below.

[수학식 3]&Quot; (3) "

Figure 112016105480324-pat00007
Figure 112016105480324-pat00007

수학식 3은 분할된 블록 중 i번째 블록에서 특정 심볼(x)의 p번째 위치에 대한 맵핑 함수를 나타내며, r은 임의의 난수를 나타낸다.Equation (3) represents a mapping function for the p-th position of the specific symbol (x) in the i-th block among the divided blocks, and r represents an arbitrary random number.

한편, 수학식 3에 따라 각 심볼의 블록 내 위치에 따른 임의의 값이 생성된 경우, 비밀 파라미터 생성부(240)는 생성된 각 임의의 값을 AES 알고리즘으로 암호화하여 각 심볼의 블록 내 위치에 따른 비밀 파라미터 값을 생성할 수 있다.If an arbitrary value is generated according to the position of each symbol in the block according to Equation (3), the secret parameter generator 240 encrypts each generated random value with the AES algorithm, To generate a secret parameter value.

한편, 비밀 파라미터 생성부(240)에 의한 비밀 파라미터 값 생성 방식은 반드시 상술한 예에 한정되는 것은 아니며, 아이디 제약 조건에 따라 생성 가능한 각 심볼의 아이디 내 위치에 따라 상이한 값들을 생성할 수 있다면, 어떠한 방식이라도 이용 가능함을 유의하여야 한다.Meanwhile, the secret parameter value generation method by the secret parameter generation unit 240 is not necessarily limited to the above-described example. If the secret parameter value generation unit 240 can generate different values according to the position in the ID of each symbol that can be generated according to the ID constraint condition, It should be noted that any method is available.

한편, 비밀 파라미터 테이블 생성부(250)는 비밀 파라미터 생성부(240)에서 생성된 비밀 파라미터 값들을 포함하는 비밀 파라미터 테이블을 생성한다. Meanwhile, the secret parameter table generation unit 250 generates a secret parameter table including the secret parameter values generated by the secret parameter generation unit 240.

구체적으로, 비밀 파라미터 테이블 생성부(250)는 비밀 파라미터 생성부(240)에 의해 생성된 각 비밀 파라미터 값을 대응되는 심볼의 아이디 내 위치로 인덱싱하여 비밀 파라미터 테이블을 생성할 수 있다.Specifically, the secret parameter table generation unit 250 may generate a secret parameter table by indexing each secret parameter value generated by the secret parameter generation unit 240 to a position in the ID of a corresponding symbol.

구체적인 예로, 도 4는 비밀 파라미터 테이블의 일 예를 나타낸 예시도이다.As a specific example, FIG. 4 is an exemplary view showing an example of the secret parameter table.

도 4에 도시된 예에서, 아이디 제약 조건에 따라 사용자 아이디 생성을 위해 영문 대문자만이 이용 가능하며, 아이디의 최대 자릿 수는 i개인 것으로 가정한다.In the example shown in FIG. 4, it is assumed that only uppercase letters are available for user ID generation according to the ID constraint, and the maximum number of digits of the ID is i.

도시된 예에서, Pi는 아이디 내 심볼의 위치를 나타낸다. 구체적으로, P1은 아이디 내 첫 번째 위치를 나타내며, P2는 아이디 내 두 번째 위치를 나타낸다.In the illustrated example, P i represents the position of the symbol in the identity. Specifically, P 1 represents the first position in the ID, and P 2 represents the second position in the ID.

또한, Ai 내지 Zi는 각 심볼의 아이디 내 i 번째 위치에 대응되는 비밀 파라미터 값을 나타낸다. 예를 들어, A1은 심볼 A가 아이디 내 첫 번째 자리에 위치한 경우에 대한 비밀 파라미터 값이며, B1은 심볼 B가 아이디 내 첫 번째 자리에 위치한 경우에 대한 비밀 파라미터 값이다.In addition, A i to Z i represents a secret parameter value corresponding to the i-th position within the ID of each symbol. For example, A 1 is a secret parameter value for a case where symbol A is located at the first position in the ID, and B 1 is a secret parameter value for a case where symbol B is located at the first position in the ID.

도 5는 비밀 파라미터 테이블의 다른 예를 나타낸 예시도이다.5 is an exemplary view showing another example of the secret parameter table.

도 5에 도시된 예에서, 아이디 제약 조건에 따라 사용자 아이디 생성을 위해 영문 대문자만이 이용 가능하며, 아이디의 최대 자릿수를 i개 자리씩 k개 블록으로 분할한 것으로 가정한다.In the example shown in FIG. 5, it is assumed that only uppercase letters are available for user ID generation according to the ID constraint condition, and the maximum number of digits of the ID is divided into k blocks by i digits.

도시된 예에서, Pi는 각 블록(Block 1 내지 Block k) 내 심볼의 위치를 나타낸다. 구체적으로, Block 1에서 P1은 Block 1 내 첫 번째 위치를 나타내며, P2는 Block 1 내 두 번째 위치를 나타낸다. 또한, Block 2에서 P1은 Block 2 내 첫 번째 위치를 나타내며, P2는 Block 2 내 두 번째 위치를 나타낸다.In the illustrated example, P i represents the position of a symbol in each block (Block 1 to Block k). Specifically, P 1 in Block 1 represents the first position in Block 1, and P 2 represents the second position in Block 1. In Block 2, P 1 represents the first position in Block 2, and P 2 represents the second position in Block 2.

또한, Aki 내지 Zki는 k 번째 블록 내에서 각 심볼의 i 번째 위치에 대응되는 비밀 파라미터 값을 나타낸다. 예를 들어, A11은 심볼 A가 Block 1 내 첫 번째 자리에 위치한 경우에 대한 비밀 파라미터 값이며, B21은 심볼 B가 Block 2 내 첫 번째 자리에 위치한 경우에 대한 비밀 파라미터 값이다.In addition, A ki to Z ki represent secret parameter values corresponding to the i-th position of each symbol in the k-th block. For example, A 11 is a secret parameter value for a case where symbol A is located at the first position in Block 1, and B 21 is a secret parameter value for a case where symbol B is located at the first position in Block 2.

한편, 공개 파라미터 생성부(260)는 비밀 파라미터 생성부(240)에 의해 생성된 비밀 파라미터 값을 이용하여, 아이디 제약 조건에 따라 이용 가능한 모든 심볼에 대한 각 심볼의 아이디 내 위치별 공개 파라미터 값을 생성한다.On the other hand, the public parameter generation unit 260 uses the secret parameter value generated by the secret parameter generation unit 240 to calculate a public parameter value for each symbol in the ID of each symbol for all available symbols according to the ID constraint condition .

구체적으로, 공개 파라미터 생성부(260)는 예를 들어, 아래의 수학식 4에 따라 각 심볼의 아이디 내 위치별 공개 파라미터 값을 생성할 수 있다.Specifically, the public parameter generation unit 260 may generate a public parameter value for each position in the ID of each symbol according to Equation (4), for example.

[수학식 4]&Quot; (4) "

Figure 112016105480324-pat00008
Figure 112016105480324-pat00008

이때, PXi는 아이디 제약 조건에 따라 이용 가능한 특정 심볼의 아이디 내 i 번째 위치에 대응되는 공개 파라미터 값, Xi는 특정 심볼의 아이디 내 i 번째 위치에 대응되는 비밀 파라미터 값, R은 임의의 난수, g는 유한한 군 ZN = {0, 1, 2, ..., N-1}의 최대 순환 부분군 G의 생성원, N은 N=pq를 만족하는 정수, p 및 q는 각각 p≡3 (mod 4), q≡3 (mod 4)를 만족하는 소수를 나타낸다. 이하, g, R 및 N은 동일한 의미로 사용된다.Here, P Xi is a public parameter value corresponding to the i-th position in the ID of the specific symbol available according to the ID constraint condition, Xi is a secret parameter value corresponding to the i-th position in the ID of the specific symbol, R is a random number, g is a generator of a finite group Z N = {0, 1, 2, ..., N-1} of the largest circulating subgroup G, N is an integer satisfying N = pq, 3 (mod 4), and q≡3 (mod 4). Hereinafter, g, R and N are used in the same sense.

다른 예로, 비밀 파라미터 생성부(240)에서 생성되는 비밀 파라미터 값이 각 심볼의 분할된 블록 내 위치별 비밀 파라미터 값인 경우, 공개 파라미터 생성부(260)는 아래의 수학식 5에 따라 각 심볼의 분할된 블록 내 위치별 공개 파라미터 값을 생성할 수 있다.As another example, when the secret parameter value generated by the secret parameter generation unit 240 is the secret parameter value for each position in the divided block of each symbol, the public parameter generation unit 260 generates a secret parameter value by dividing each symbol Thereby generating a public parameter value for each position in the block.

[수학식 5]&Quot; (5) "

Figure 112016105480324-pat00009
Figure 112016105480324-pat00009

이때,

Figure 112016105480324-pat00010
는 아이디 제약 조건에 따라 이용 가능한 특정 심볼의 k번째 블록 내 i 번째 위치에 대응되는 공개 파라미터 값, Xki는 특정 심볼의 k번째 블록 내 i 번째 위치에 대응되는 비밀 파라미터 값, Rk는 임의의 난수를 나타낸다.At this time,
Figure 112016105480324-pat00010
The public parameter value corresponding to the k-th block in the i-th position of a particular symbol is available in accordance with the identity constraints, X ki is a secret corresponding to within the i-th position k-th block of the particular symbol parameter values, R k is an arbitrary Represents a random number.

한편, 공개 파라미터 테이블 생성부(270)는 공개 파라미터 생성부(260)에서 생성된 공개 파라미터 값들을 포함하는 공개 파라미터 테이블을 생성한다. On the other hand, the public parameter table generating unit 270 generates a public parameter table including the public parameter values generated by the public parameter generating unit 260.

구체적으로, 공개 파라미터 테이블 생성부(270)는 공개 파라미터 생성부(260)에 의해 생성된 각 공개 파라미터 값을 대응되는 심볼의 아이디 내 위치로 인덱싱하여 공개 파라미터 테이블을 생성할 수 있다.Specifically, the public parameter table generating unit 270 may generate a public parameter table by indexing each public parameter value generated by the public parameter generating unit 260 into a position in the ID of a corresponding symbol.

구체적인 예로, 도 6은 공개 파라미터 테이블의 일 예를 나타낸 예시도이다.As a specific example, FIG. 6 is an exemplary view showing an example of a public parameter table.

도 6에 도시된 예에서, 아이디 제약 조건에 따라 사용자 아이디 생성을 위해 영문 대문자만이 이용 가능하며, 아이디의 최대 자릿 수는 i개인 것으로 가정한다.In the example shown in FIG. 6, it is assumed that only uppercase letters are available for user ID generation according to the ID constraint, and the maximum number of digits of ID is i.

도시된 예에서, Pi는 아이디 내 심볼의 위치를 나타낸다. 구체적으로, P1은 아이디 내 첫 번째 위치를 나타내며, P2는 아이디 내 두 번째 위치를 나타낸다.In the illustrated example, P i represents the position of the symbol in the identity. Specifically, P 1 represents the first position in the ID, and P 2 represents the second position in the ID.

또한, gAiㆍR 내지 gZiㆍR 은 각 심볼의 i 번째 위치에 대응되는 공개 파라미터 값을 나타낸다. 예를 들어, gA1ㆍR 은 심볼 A가 아이디 내 첫 번째 자리에 위치한 경우에 대한 공개 파라미터 값이며, gB1ㆍR 은 심볼 B가 아이디 내 첫 번째 자리에 위치한 경우에 대한 공개 파라미터 값이다.Also, g Ai R to g Zi R denote the public parameter values corresponding to the i-th position of each symbol. For example, g A1R is the disclosure parameter value for the case where the symbol A is located in the first position in the ID, and g B1R is the disclosure parameter value for the case where the symbol B is located in the first position in the ID.

도 7은 공개 파라미터 테이블의 다른 예를 나타낸 예시도이다.7 is an exemplary view showing another example of the disclosure parameter table.

도 7에 도시된 예에서, 아이디 제약 조건에 따라 사용자 아이디 생성을 위해 영문 대문자만이 이용 가능하며, 아이디의 최대 자릿수를 i개 자리씩 k개 블록으로 분할한 것으로 가정한다.In the example shown in FIG. 7, it is assumed that only uppercase letters are available for user ID generation according to the ID constraint condition, and the maximum number of digits of the ID is divided into k blocks by i digits.

도시된 예에서, Pi는 각 블록(Block 1 내지 Block k) 내 심볼의 위치를 나타낸다. 구체적으로, Block 1에서 P1은 Block 1 내 첫 번째 위치를 나타내며, P2는 Block 1 내 두 번째 위치를 나타낸다. 또한, Block 2에서 P1은 Block 2 내 첫 번째 위치를 나타내며, P2는 Block 2 내 두 번째 위치를 나타낸다.In the illustrated example, P i represents the position of a symbol in each block (Block 1 to Block k). Specifically, P 1 in Block 1 represents the first position in Block 1, and P 2 represents the second position in Block 1. In Block 2, P 1 represents the first position in Block 2, and P 2 represents the second position in Block 2.

또한, gAkiㆍRk 내지 gZkiㆍRk 는 k 번째 블록 내에서 각 심볼의 i 번째 위치에 대응되는 공개 파라미터 값을 나타낸다. 예를 들어, gA11ㆍR1 은 심볼 A가 Block 1 내 첫 번째 자리에 위치한 경우에 대한 공개 파라미터 값이며, gB21ㆍR2는 심볼 B가 Block 2 내 첫 번째 자리에 위치한 경우에 대한 공개 파라미터 값이다.Also, g Aki Rk through g Zki Rk denote the public parameter values corresponding to the i-th position of each symbol in the k-th block. For example, g A11.R1 is the disclosure parameter value for the case where the symbol A is located at the first position in the block 1, gB21.R2 is the public parameter value for the case where the symbol B is located at the first position in the block 2, to be.

한편, 수신부(210)는 키 요청 단말(예를 들어, 도 1의 사용자 단말(120, 130))로부터 아이디 제약 조건에 따라 생성된 아이디를 포함하는 키 생성 요청을 수신한다.Meanwhile, the receiving unit 210 receives a key generation request including an ID generated according to an ID constraint condition from a key requesting terminal (for example, the user terminals 120 and 130 in FIG. 1).

한편, 키 요청 단말로부터 키 생성 요청이 수신된 경우, 비밀키 생성부(220)는 비밀 파라미터 테이블로부터 수신된 아이디에 포함된 각 심볼들의 수신된 아이디 내 위치에 대응하는 비밀 파라미터 값들을 추출한다. 또한, 비밀키 생성부(220)는 추출된 비밀 파라미터 값들을 이용하여, 수신된 아이디에 대응하는 비밀키를 생성한다.On the other hand, when a key generation request is received from the key requesting terminal, the secret key generating unit 220 extracts secret parameter values corresponding to positions in the received ID of each symbol included in the ID received from the secret parameter table. Also, the secret key generation unit 220 generates a secret key corresponding to the received ID using the extracted secret parameter values.

이때, 본 발명의 일 실시예에 따르면, 수신된 아이디에 대응하는 비밀키는 추출된 비밀 파라미터 값들의 합을 이용하여 생성될 수 있다.At this time, according to an embodiment of the present invention, the secret key corresponding to the received ID can be generated using the sum of secret parameter values extracted.

구체적으로, 비밀키는 예를 들어, 상술한 수학식 1에 따라 생성될 수 있다.Specifically, the secret key may be generated, for example, according to Equation (1) described above.

예를 들어, 비밀 파라미터 테이블 생성부(250)에 의해 생성된 비밀 파라미터 테이블이 도 4와 같다고 가정하면, 키 요청 단말로부터 수신된 아이디가 'ABCDEFGH'인 경우, 비밀 파라미터 테이블로부터 추출되는 비밀 파라미터 값들은 A1, B2, C3, D4, E5, F6, G7, H8이 된다.For example, assuming that the secret parameter table generated by the secret parameter table generation unit 250 is as shown in FIG. 4, when the ID received from the key request terminal is 'ABCDEFGH', the secret parameter value Are A 1 , B 2 , C 3 , D 4 , E 5 , F 6 , G 7 , and H 8 .

또한, 수신된 아이디 'ABCDEFGH'에 대한 비밀키(Sk)는 수학식 1에 따라 (A1+B2+C3+D4+E5+F6+G7+H8)×R이 된다. Also, the secret key Sk for the received ID 'ABCDEFGH' is (A 1 + B 2 + C 3 + D 4 + E 5 + F 6 + G 7 + H 8 ) R according to Equation 1 .

한편, 본 발명의 다른 실시예에 따르면, 키 요청 단말로부터 키 생성 요청이 수신된 경우, 비밀키 생성부(220)는 수신된 아이디를 복수의 블록으로 분할하고, 비밀 파라미터 테이블로부터 수신된 아이디 내 각 심볼들의 각 블록 내 위치에 대응하는 비밀 파라미터 값들을 추출한다. 또한, 비밀키 생성부(220)는 추출된 비밀 파라미터 값들을 이용하여, 수신된 아이디에 대응하는 비밀키를 생성한다.Meanwhile, according to another embodiment of the present invention, when a key generation request is received from the key requesting terminal, the secret key generating unit 220 divides the received ID into a plurality of blocks, And extracts secret parameter values corresponding to positions in each block of the respective symbols. Also, the secret key generation unit 220 generates a secret key corresponding to the received ID using the extracted secret parameter values.

이때, 수신된 아이디에 대응하는 비밀키는 추출된 비밀 파라미터 값들을 각 블록별로 합한 값들을 이용하여 생성될 수 있다.At this time, the secret key corresponding to the received ID can be generated using the values of the extracted secret parameter values for each block.

구체적으로, 비밀키는 예를 들어, 상술한 수학식 2에 따라 생성될 수 있다.Specifically, the secret key may be generated, for example, according to Equation (2) described above.

예를 들어, 비밀 파라미터 테이블 생성부(250)에 의해 생성된 비밀 파라미터 테이블이 도 5와 같고 각 블록의 자릿수가 4(즉, i=4)인 것으로 가정하면, 키 요청 단말로부터 수신된 아이디가 'ABCDEFGH'인 경우, 비밀 파라미터 테이블로부터 추출되는 비밀 파라미터 값들은 A11, B12, C13, D14, E21, F22, G23, H24가 된다.For example, assuming that the secret parameter table generated by the secret parameter table generation unit 250 is as shown in FIG. 5 and the number of digits of each block is 4 (i = 4), the ID received from the key request terminal is 'ABCDEFGH', secret parameter values extracted from the secret parameter table are A 11 , B 12 , C 13 , D 14 , E 21 , F 22 , G 23 and H 24 .

즉, 비밀키 생성부(220)는 수신된 아이디'ABCDEFGH'를 4자리씩 분할하여 'ABCD'와 'EFGH'두 개의 블록으로 분할한 후, 비밀 파라미터 테이블의 Block 1으로부터 첫 번째 블록인'ABCD'에 대응되는 비밀 파라미터 값 A11, B12, C13, D14를 추출한다. 또한, 비밀키 생성부(220)는 비밀 파라미터 테이블의 Block 2으로부터 두 번째 블록인'EFGH'에 대응되는 비밀 파라미터 값 E21, F22, G23, H24를 추출한다.That is, the secret key generation unit 220 divides the received ID 'ABCDEFGH' into four blocks of 'ABCD' and 'EFGH', and then divides the received ID 'ABCDEFGH' The secret parameter values A 11 , B 12 , C 13 , and D 14 corresponding to the secret parameter values A 11 , B 12 , C 13 , and D 14 are extracted. Also, the secret key generation unit 220 extracts the secret parameter values E 21 , F 22 , G 23 , and H 24 corresponding to the second block 'EFGH' from Block 2 of the secret parameter table.

이 경우, 수신된 아이디 'ABCDEFGH'에 대한 비밀키(Sk)는 수학식 2에 따라 (A11+B12+C13+D14)R1+(E21+F22+G23+H24)R2이 된다. In this case, the secret for the received ID 'ABCDEFGH' key (Sk) according to Equation 2 (A 11 + B 12 + C 13 + D 14) R 1 + (E 21 + F 22 + G 23 + H 24 ) R 2 .

한편, 키 정보 제공부(230)는 키 요청 단말로부터 수신된 아이디에 대한 비밀키가 생성된 경우, 생성된 비밀키 및 공개 파라미터 테이블을 키 요청 단말로 제공한다.Meanwhile, when the secret key for the ID received from the key requesting terminal is generated, the key information providing unit 230 provides the generated secret key and the public parameter table to the key requesting terminal.

한편, 일 실시예에서, 도 3에 도시된 수신부(210), 비밀키 생성부(220), 키 정보 제공부(230), 비밀 파라미터 생성부(240), 비밀 파라미터 테이블 생성부(250), 공개 파라미터 생성부(260) 및 공개 파라미터 테이블 생성부(270)는 하나 이상의 프로세서 및 그 프로세서와 연결된 컴퓨터 판독 가능 기록 매체를 포함하는 하나 이상의 컴퓨팅 장치 상에서 구현될 수 있다. 컴퓨터 판독 가능 기록 매체는 프로세서의 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다. 컴퓨팅 장치 내의 프로세서는 각 컴퓨팅 장치로 하여금 본 명세서에서 기술되는 예시적인 실시예에 따라 동작하도록 할 수 있다. 예를 들어, 프로세서는 컴퓨터 판독 가능 기록 매체에 저장된 명령어를 실행할 수 있고, 컴퓨터 판독 가능 기록 매체에 저장된 명령어는 프로세서에 의해 실행되는 경우 컴퓨팅 장치로 하여금 본 명세서에 기술되는 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.3, the secret key generating unit 220, the key information providing unit 230, the secret parameter generating unit 240, the secret parameter table generating unit 250, The public parameter generation unit 260 and the public parameter table generation unit 270 may be implemented on one or more computing devices including one or more processors and a computer-readable recording medium coupled to the processors. The computer readable recording medium may be internal or external to the processor, and may be coupled to the processor by any of a variety of well known means. A processor in the computing device may cause each computing device to operate in accordance with the exemplary embodiment described herein. For example, a processor may execute instructions stored on a computer-readable recording medium, and instructions stored on the computer readable recording medium may cause a computing device to perform operations in accordance with the exemplary embodiments described herein For example.

도 8은 본 발명의 일 실시예에 따른 암호화 장치의 구성도이다.8 is a configuration diagram of an encryption apparatus according to an embodiment of the present invention.

도 8을 참조하면, 본 발명의 일 실시예에 따른 암호화 장치(800)는 키 정보 획득부(810), 아이디 수신부(820), 공개키 생성부(830), 암호화부(840), 아이디 제공부(850), 데이터 수신부(860) 및 복호화부(870)를 포함한다.8, an encryption apparatus 800 according to an exemplary embodiment of the present invention includes a key information obtaining unit 810, an ID receiving unit 820, a public key generating unit 830, an encrypting unit 840, (850), a data receiving unit (860), and a decoding unit (870).

본 발명의 일 실시예에서, 암호화 장치(800)는 예를 들어, 도 1에 도시된 사용자 단말(120, 130)의 일 구성으로 구현될 수 있다.In one embodiment of the present invention, the encryption device 800 may be implemented, for example, in a configuration of the user terminal 120, 130 shown in FIG.

키 정보 획득부(810)는 아이디 제약 조건에 따라 생성된 암호화 장치(800)의 사용자 아이디를 포함한 키 생성 요청을 키 발급 서버(110)로 전송한다. 또한, 키 정보 획득부(810)는 키 발급 서버(110)로부터 공개 파라미터 테이블 및 암호화 장치(800)의 사용자 아이디에 대응되는 비밀키를 획득한다.The key information obtaining unit 810 transmits a key generation request including the user ID of the encryption apparatus 800 generated according to the ID constraint condition to the key issuing server 110. The key information obtaining unit 810 obtains the public parameter table and the secret key corresponding to the user ID of the encryption apparatus 800 from the key issuing server 110. [

이때, 키 발급 서버(110)로부터 획득되는 공개 파라미터 테이블 및 비밀키는 키 생성 장치(200)와 관련하여 이미 상술하였으므로, 이에 대한 상세한 설명은 생략한다.At this time, the public parameter table and the secret key obtained from the key issuing server 110 have already been described in detail with respect to the key generating apparatus 200, and a detailed description thereof will be omitted.

아이디 수신부(820)는 키 발급 서버(110)로부터 획득된 공개 파라미터 테이블을 공유하는 외부 단말로부터 아이디 제약 조건에 따라 생성된 외부 단말의 사용자 아이디를 수신한다.The ID receiving unit 820 receives the user ID of the external terminal generated according to the ID constraint condition from the external terminal sharing the public parameter table obtained from the key issuing server 110. [

예를 들어, 도 1에 도시된 예에서, 각 사용자 장치(210, 220)는 키 발급 서버(110)로부터 동일한 공개 파라미터 테이블을 획득할 수 있다. 이 경우, 암호화 장치(800)가 사용자 장치(210)의 일 구성으로 구현된 경우, 외부 장치는 사용자 장치(130)일 수 있다.For example, in the example shown in FIG. 1, each user device 210, 220 may obtain the same public parameter table from the key issuing server 110. In this case, if the encryption device 800 is implemented as a configuration of the user device 210, the external device may be the user device 130. [

공개키 생성부(830)는 키 발급 서버(110)로부터 획득된 공개 파라미터 테이블에서 외부 단말의 사용자 아이디에 포함된 각 심볼의 아이디 내 위치에 대응되는 공개 파라미터 값들을 추출한다. 또한, 공개키 생성부(830)는 추출된 공개 파라미터 값들을 이용하여 외부 단말의 사용자 아이디에 대응되는 공개키를 생성한다.The public key generation unit 830 extracts public parameter values corresponding to positions in the ID of each symbol included in the user ID of the external terminal in the public parameter table obtained from the key issuing server 110. [ Also, the public key generation unit 830 generates a public key corresponding to the user ID of the external terminal using the extracted public parameter values.

이때, 본 발명의 일 실시예에 따르면, 공개키 생성부(830)는 추출된 공개 파라미터들의 곱을 이용하여 외부 단말의 사용자 아이디에 대응되는 공개키를 생성할 수 있다.In this case, according to an embodiment of the present invention, the public key generation unit 830 can generate a public key corresponding to the user ID of the external terminal using the product of the extracted public parameters.

예를 들어, 외부 단말의 사용자 아이디가 'ABCDEFGH'이고, 공개 파라미터 테이블이 도 6과 같다면, 공개 파라미터 테이블로부터 추출되는 공개 파라미터 값들은 gA1ㆍR, gB2ㆍR, gC3ㆍR, gD4ㆍR, gE5ㆍR, gF6ㆍR, gG7ㆍR, gH8ㆍR 이 된다.For example, if the user ID of the external terminal is 'ABCDEFGH' and the public parameter table is as shown in FIG. 6, the public parameter values extracted from the public parameter table are g A1R , g B2R , g C3R , g D4 R , g E5 R , g F6 R , g G7 R , g H8 R.

또한, 추출된 공개 파라미터 값들로부터 생성되는 공개키(Pk)는 다음과 같다.The public key Pk generated from the extracted public parameter values is as follows.

Pk=gA1 ㆍR×gB2 ㆍR×gC3 ㆍR×gD4 ㆍR×gE5 ㆍR×gF6 ㆍR×gG7 ㆍR×gH8 ㆍR Pk = g? A1? R? G? B2? R? G? C3? R? G D4? R占 g E5? R占 g F6? R占 g G7? R占 g H8? R

= g(A1+B2+C3+D4+E5+F6+G7+H8)ㆍR = g (A1 + B2 + C3 + D4 + E5 + F6 + G7 + H8) R

한편, 본 발명의 일 실시예에 따르면, 공개 파라미터 테이블이 도 7에 도시된 예와 같은 경우, 공개키 생성부(830)는 외부 단말의 사용자 아이디를 복수의 블록으로 분할하고, 공개 파라미터 테이블로부터 분할된 각 블록에 포함된 각 심볼의 블록 내 위치에 대응되는 공개 파라미터 값들을 추출한다.7, the public key generation unit 830 divides the user ID of the external terminal into a plurality of blocks, and generates a public key from the public parameter table And extracts the public parameter values corresponding to positions in the block of each symbol included in each of the divided blocks.

예를 들어, 도 7에 도시된 예에서, i가 4인 것으로 가정하면, 외부 단말의 사용자 아이디가 'ABCDEFGH'인 경우, 공개 파라미터 테이블로부터 추출되는 비밀 파라미터 값들은 gA11ㆍR1, gB12ㆍR1, gC13ㆍR1, gD14ㆍR1, gE21ㆍR2, gF22ㆍR2, gG23ㆍR2, gH24ㆍR2 가 된다.For example, in the example shown in FIG. 7, if i is 4, if the user ID of the external terminal is 'ABCDEFGH', the secret parameter values extracted from the public parameter table are g A11 R1 , g B12 R1 , g C13 R1 , g D14 R1 , g E21 R2 , g F22 R2 , g G23 R2 , g H24 R2 .

즉, 공개키 생성부(830)는 외부 단말의 사용자 아이디 'ABCDEFGH'를 4자리씩 분할하여 'ABCD'와 'EFGH'두 개의 블록으로 분할한 후, 공개 파라미터 테이블의 Block 1으로부터 첫 번째 블록인'ABCD'에 대응되는 비밀 파라미터 값 gA11ㆍR1, gB12ㆍR1, gC13ㆍR1, gD14ㆍR1를 추출한다. 또한, 공개키 생성부(830)는 공개 파라미터 테이블의 Block 2으로부터 두 번째 블록인'EFGH'에 대응되는 비밀 파라미터 값 gE21ㆍR2, gF22ㆍR2, gG23ㆍR2, gH24ㆍR2 를 추출한다.That is, the public key generation unit 830 divides the user ID 'ABCDEFGH' of the external terminal into four blocks of 'ABCD' and 'EFGH', and then divides the user ID 'ABCDEFGH' The secret parameter values g A11 R1 , g B12 R1 , g C13 R1 and g D14 R1 corresponding to 'ABCD' are extracted. In addition, the public key generation unit 830 generates secret parameter values g E21 揃 R2 , g F22 揃 R2 , g G23 揃 R2 , g H24 R2 corresponding to the second block 'EFGH' from Block 2 of the public parameter table .

이 경우, 외부 단말의 사용자 아이디'ABCDEFGH'에 대한 공개키(Pk)는 다음과 같다.In this case, the public key Pk for the user ID 'ABCDEFGH' of the external terminal is as follows.

Pk=gA11 ㆍR1×gB12 ㆍR1×gC13 ㆍR1×gD14 ㆍR1×gE21 ㆍR2×gF22 ㆍR2×gG23 ㆍR2×gH24 ㆍR Pk = g A11 占 R1占 g B12 占 R1占 g C13 占 R1占 g D14 占 R1占 g E21 占 R2占 g F22 占 R2占 g G23 占 R2占 g H24 占 R

= g(A11+B12+C13+D14)ㆍR1+(E21+F22+G23+H24)ㆍR2 = g (A11 + B12 + C13 + D14) 占 R1 + E21 + F22 + G23 + H24 占 R2

암호화부(840)는 공개키 생성부(830)에서 생성된 외부 단말의 사용자 아이디에 대한 공개키를 이용하여 외부 단말로 전송할 데이터를 암호화한다.The encryption unit 840 encrypts the data to be transmitted to the external terminal using the public key of the user ID of the external terminal generated by the public key generation unit 830.

예를 들어, 암호화부(840)는 임의의 난수 t를 선택하고, 전송할 데이터 M에 대하여 다음과 같은 암호문 (C1, C2)를 계산할 수 있다.For example, the encryption unit 840 may select any random number t and calculate the following ciphertexts (C1, C2) for the data M to be transmitted.

C1= gt (mod N)C1 = g t (mod N)

C2= Pkt (mod N) XOR MC2 = Pk t (mod N) XOR M

한편, 실시예에 따라, 암호화부(840)는 키 정보 획득부(810)에서 획득된 비밀키를 이용하여 외부 단말로 전송할 데이터에 대한 전자 서명을 수행할 수 있다.Meanwhile, according to the embodiment, the encryption unit 840 can perform digital signature on the data to be transmitted to the external terminal using the secret key obtained by the key information acquisition unit 810. [

아이디 제공부(850)는 아이디 제약 조건에 따라 생성된 암호화 장치(800)의 사용자 아이디를 외부 단말로 제공한다.The ID creator 850 provides the user ID of the encryption device 800 generated according to the ID constraint condition to the external terminal.

데이터 수신부(860)는 외부 단말로부터 암호화 장치(800)의 사용자 아이디에 대응되는 공개키를 이용하여 암호화된 데이터 또는 외부 단말의 비밀키를 이용하여 전자 서명된 데이터를 수신한다.The data receiving unit 860 receives the digitally signed data using the encrypted data or the secret key of the external terminal using the public key corresponding to the user ID of the encryption apparatus 800 from the external terminal.

구체적으로, 암호화 장치(800)의 사용자 아이디를 수신한 외부 단말은 암호화 장치(800)와 공유하는 공개 파라미터 테이블을 이용하여 상술한 방식과 동일한 방식으로 공개키를 생성할 수 있으며, 생성된 공개키를 이용하여 데이터를 암호화한 후 암호화 장치(800)로 전송할 수 있다.Specifically, the external terminal receiving the user ID of the encryption apparatus 800 can generate the public key in the same manner as the above-described method using the public parameter table shared with the encryption apparatus 800, And transmits the encrypted data to the encryption apparatus 800. [

복호화부(870)는 외부 단말로부터 암호화 장치(800)의 사용자 아이디에 대응되는 공개키를 이용하여 암호화된 데이터를 수신한 경우, 키 정보 획득부(810)에 의해 획득된 비밀키를 이용하여 암호화된 데이터를 복호화한다.When the encrypted data is received from the external terminal using the public key corresponding to the user ID of the encryption apparatus 800, the decryption unit 870 encrypts the encrypted data using the secret key obtained by the key information acquisition unit 810, Decoded data.

예를 들어, 수신된 암호문이 C1, C2인 경우, 복호화부(870)는 키 정보 획득부(810)에 의해 획득된 비밀키(Sk)를 이용하여 다음과 같이 복호화할 수 있다. For example, if the received ciphertext is C1 or C2, the decrypting unit 870 can decrypt it using the secret key Sk obtained by the key information obtaining unit 810 as follows.

M= C1Sk (mod N) XOR C2M = C1 Sk (mod N) XOR C2

한편, 복호화부(870)는 외부 단말의 비밀키를 이용하여 전자 서명된 데이터를 수신한 경우, 공개키 생성부(830)에서 생성된 외부 단말의 사용자 아이디에 대한 공개키를 이용하여 수신된 데이터에 대한 검증을 수행할 수 있다.If the decrypting unit 870 receives the digitally signed data using the secret key of the external terminal, the decrypting unit 870 decrypts the received data using the public key of the user ID of the external terminal generated by the public key generating unit 830 Can be performed.

한편, 일 실시예에서, 도 7에 도시된 키 정보 획득부(810), 아이디 수신부(820), 공개키 생성부(830), 암호화부(840), 아이디 제공부(850), 데이터 수신부(860) 및 복호화부(870)는 하나 이상의 프로세서 및 그 프로세서와 연결된 컴퓨터 판독 가능 기록 매체를 포함하는 하나 이상의 컴퓨팅 장치 상에서 구현될 수 있다. 컴퓨터 판독 가능 기록 매체는 프로세서의 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다. 컴퓨팅 장치 내의 프로세서는 각 컴퓨팅 장치로 하여금 본 명세서에서 기술되는 예시적인 실시예에 따라 동작하도록 할 수 있다. 예를 들어, 프로세서는 컴퓨터 판독 가능 기록 매체에 저장된 명령어를 실행할 수 있고, 컴퓨터 판독 가능 기록 매체에 저장된 명령어는 프로세서에 의해 실행되는 경우 컴퓨팅 장치로 하여금 본 명세서에 기술되는 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.7, the key information acquisition unit 810, the ID receiving unit 820, the public key generating unit 830, the encrypting unit 840, the ID providing unit 850, the data receiving unit 860 and decryption unit 870 may be implemented on one or more computing devices that include one or more processors and a computer readable recording medium coupled to the processors. The computer readable recording medium may be internal or external to the processor, and may be coupled to the processor by any of a variety of well known means. A processor in the computing device may cause each computing device to operate in accordance with the exemplary embodiment described herein. For example, a processor may execute instructions stored on a computer-readable recording medium, and instructions stored on the computer readable recording medium may cause a computing device to perform operations in accordance with the exemplary embodiments described herein For example.

도 9는 본 발명의 일 실시예에 따른 키 생성 방법의 순서도이다.9 is a flowchart of a key generation method according to an embodiment of the present invention.

도 9에 도시된 방법은 예를 들어, 도 2에 도시된 키 생성 장치(200)에 의해 수행될 수 있다.The method shown in Fig. 9 can be performed, for example, by the key generation apparatus 200 shown in Fig.

도 9를 참조하면, 키 생성 장치(200)는 우선, 키 요청 단말로부터 아이디 제약 조건에 따라 생성된 아이디를 포함하는 키 생성 요청을 수신한다(910).Referring to FIG. 9, the key generation apparatus 200 receives a key generation request including an ID generated according to an ID constraint condition from a key request terminal (Step 910).

이후, 키 생성 장치(200)는 비밀 파라미터 테이블로부터 수신된 아이디에 포함된 각 심볼들의 수신된 아이디 내 위치에 대응하는 비밀 파라미터 값들을 추출한다(920).Then, the key generation apparatus 200 extracts secret parameter values corresponding to the positions in the received IDs of the respective symbols included in the received ID from the secret parameter table (920).

이후, 키 생성 장치(200)는 추출된 비밀 파라미터 값들을 이용하여 수신된 아이디에 대응하는 비밀키를 생성한다(930).Then, the key generation apparatus 200 generates a secret key corresponding to the received ID using the extracted secret parameter values (930).

이후, 키 생성 장치(200)는 생성된 비밀키를 키 요청 단말로 제공한다(940).Then, the key generation apparatus 200 provides the generated secret key to the key request terminal (940).

도 10은 본 발명의 추가적인 실시예에 따른 키 생성 방법의 순서도이다.10 is a flowchart of a key generation method according to a further embodiment of the present invention.

도 10에 도시된 방법은 예를 들어, 도 3에 도시된 키 생성 장치(300)에 의해 수행될 수 있다.The method shown in Fig. 10 can be performed, for example, by the key generation apparatus 300 shown in Fig.

도 10을 참조하면, 키 생성 장치(300)는 우선, 기 설정된 아이디 제약 조건에 따라 이용 가능한 모든 심볼들에 대하여, 각 심볼의 아이디 내 위치별 비밀 파라미터 값을 생성한다(1010).Referring to FIG. 10, the key generation apparatus 300 first generates a secret parameter value for each position in the ID of each symbol, which is available according to a predetermined ID constraint (1010).

이후, 키 생성 장치(300)는 생성된 비밀 파라미터 값이 대응되는 심볼의 아이디 내 위치로 인덱싱된 비밀 파라미터 테이블을 생성한다(1020).Thereafter, the key generation apparatus 300 generates a secret parameter table indexed at a position in the ID of the symbol corresponding to the generated secret parameter value (1020).

이후, 키 생성 장치(300)는 생성된 비밀 파라미터 값을 이용하여, 아이디 제약 조건에 따라 이용 가능한 모든 심볼들에 대한 각 심볼의 아이디 내 위치별 공개 파라미터 값을 생성한다(1030).Thereafter, the key generation apparatus 300 generates a public parameter value for each position in the ID of each symbol for all available symbols according to the ID constraint condition, using the generated secret parameter value (1030).

이후, 키 생성 장치(300)는 생성된 공개 파라미터 값이 대응되는 심볼의 아이디 내 위치로 인덱싱된 공개 파라미터 테이블을 생성한다(1040).Thereafter, the key generation apparatus 300 generates a public parameter table indexed at a position within the ID of the symbol corresponding to the generated public parameter value (1040).

이후, 키 생성 장치(300)는 키 요청 단말로부터 아이디 제약 조건에 따라 생성된 아이디를 포함하는 키 생성 요청을 수신한다(1050).Then, the key generation apparatus 300 receives a key generation request including the ID generated according to the ID constraint condition from the key request terminal (operation 1050).

이후, 키 생성 장치(300)는 비밀 파라미터 테이블로부터 수신된 아이디에 포함된 각 심볼들의 수신된 아이디 내 위치에 대응하는 비밀 파라미터 값들을 추출한다(1060).Then, the key generation apparatus 300 extracts secret parameter values corresponding to the positions in the received IDs of the respective symbols included in the received ID from the secret parameter table (1060).

이후, 키 생성 장치(300)는 추출된 비밀 파라미터 값들을 이용하여 수신된 아이디에 대응하는 비밀키를 생성한다(1070).Thereafter, the key generation apparatus 300 generates a secret key corresponding to the received ID using the extracted secret parameter values (1070).

이후, 키 생성 장치(300)는 생성된 비밀키 및 공개 파라미터 테이블을 키 요청 단말로 제공한다(1080).Thereafter, the key generation apparatus 300 provides the generated secret key and the public parameter table to the key request terminal (1080).

도 11은 본 발명의 일 실시예에 따른 암호화 과정을 나타낸 순서도이다.11 is a flowchart illustrating an encryption process according to an embodiment of the present invention.

도 11에 도시된 방법은 예를 들어, 도 8에 도시된 암호화 장치(800)에 의해 수행될 수 있다.The method shown in Fig. 11 can be performed, for example, by the encrypting apparatus 800 shown in Fig.

도 11을 참조하면, 암호화 장치(800)는 우선, 기 설정된 아이디 제약 조건에 따라 생성된 암호화 장치(800)의 사용자 아이디를 포함한 키 생성 요청을 키 발급 서버(110)로 전송한다(1110).11, the encryption apparatus 800 transmits a key generation request including the user ID of the encryption apparatus 800 generated according to the predetermined ID constraint condition to the key issuing server 110 (1110).

이후, 암호화 장치(800)는 키 발급 서버(110)로부터 아이디 제약 조건에 따라 생성 가능한 모든 심볼들에 대한 아이디 내 위치별 공개 파라미터 값을 포함하는 공개 파라미터 테이블 및 암호화 장치(800)의 사용자 아이디에 대응되는 비밀키를 획득한다(1120).Thereafter, the encryption apparatus 800 receives from the key issuing server 110 a public parameter table including a public parameter value for each position in the ID of all symbols that can be generated according to the ID constraint condition, and a public parameter table including a user ID of the encryption apparatus 800 A corresponding secret key is obtained (1120).

이후, 암호화 장치(800)는 공개 파라미터 테이블을 공유하는 외부 단말로부터 아이디 제약 조건에 따라 생성된 외부 단말의 사용자 아이디를 수신한다(1130).Thereafter, the encryption apparatus 800 receives the user ID of the external terminal generated according to the ID constraint condition from the external terminal sharing the public parameter table (1130).

이후, 암호화 장치(800)는 공개 파라미터 테이블로부터 외부 단말의 사용자 아이디에 포함된 각 심볼의 아이디 내 위치에 대응되는 공개 파라미터 값들을 추출한다(1140).Thereafter, the encryption apparatus 800 extracts public parameter values corresponding to positions in the ID of each symbol included in the user ID of the external terminal from the public parameter table (1140).

이후, 암호화 장치(800)는 추출된 공개 파라미터 값들을 이용하여 외부 단말의 사용자 아이디에 대응되는 공개키를 생성한다(1150).Thereafter, the encryption apparatus 800 generates a public key corresponding to the user ID of the external terminal using the extracted public parameter values (1150).

이후, 암호화 장치(800)는 생성된 공개키를 이용하여 외부 단말로 전송할 데이터를 암호화한다(1160).Thereafter, the encryption apparatus 800 encrypts the data to be transmitted to the external terminal using the generated public key (1160).

도 12는 본 발명의 일 실시예에 따른 복호화 과정을 나타낸 순서도이다.12 is a flowchart illustrating a decoding process according to an embodiment of the present invention.

도 12에 도시된 방법은 예를 들어, 도 8에 도시된 암호화 장치(800)에 의해 수행될 수 있다.The method shown in Fig. 12 can be performed, for example, by the encrypting apparatus 800 shown in Fig.

도 12를 참조하면, 암호화 장치(800)는 우선, 기 설정된 아이디 제약 조건에 따라 생성된 암호화 장치(800)의 사용자 아이디를 포함한 키 생성 요청을 키 발급 서버(110)로 전송한다(1210).Referring to FIG. 12, the encryption apparatus 800 transmits a key generation request including the user ID of the encryption apparatus 800 generated according to a predetermined ID constraint condition to the key issuing server 110 (1210).

이후, 암호화 장치(800)는 아이디 제약 조건에 따라 생성 가능한 모든 심볼들에 대한 아이디 내 위치별 공개 파라미터 값을 포함하는 공개 파라미터 테이블 및 암호화 장치(800)의 사용자 아이디에 대응되는 비밀키를 획득한다(1220).Thereafter, the encryption apparatus 800 acquires a public parameter table including public parameter values per location in the ID for all symbols that can be generated according to the ID constraint condition, and a secret key corresponding to the user ID of the encryption apparatus 800 (1220).

이후, 암호화 장치(800)는 공개 파라미터 테이블을 공유하는 외부 단말로 암호화 장치(800)의 사용자 아이디를 제공한다(1230).Thereafter, the encryption apparatus 800 provides the user ID of the encryption apparatus 800 to the external terminal sharing the public parameter table (1230).

이후, 암호화 장치(800)는 외부 단말로부터 암호화 장치(800)의 사용자 아이디에 대응되는 공개키를 이용하여 암호화된 데이터를 수신한다(1240).Thereafter, the encryption apparatus 800 receives the encrypted data from the external terminal using the public key corresponding to the user ID of the encryption apparatus 800 (1240).

이후, 암호화 장치(800)는 1220 단계에서 획득된 비밀키를 이용하여 수신된 암호화된 데이터를 복호화한다(1250).Thereafter, the encryption apparatus 800 decrypts the received encrypted data using the secret key obtained in operation 1220 (1250).

도 13은 본 발명의 일 실시예에 따른 전자 서명 수행 과정을 나타낸 순서도이다.13 is a flowchart illustrating an electronic signature process according to an exemplary embodiment of the present invention.

도 13에 도시된 방법은 예를 들어, 도 8에 도시된 암호화 장치(800)에 의해 수행될 수 있다.The method shown in Fig. 13 can be performed, for example, by the encrypting apparatus 800 shown in Fig.

도 13을 참조하면, 암호화 장치(800)는 우선, 기 설정된 아이디 제약 조건에 따라 생성된 암호화 장치(800)의 사용자 아이디를 포함한 키 생성 요청을 키 발급 서버(110)로 전송한다(1310).Referring to FIG. 13, the encryption apparatus 800 transmits a key generation request including the user ID of the encryption apparatus 800 generated according to a predetermined ID constraint condition to the key issuing server 110 (1310).

이후, 암호화 장치(800)는 아이디 제약 조건에 따라 생성 가능한 모든 심볼들에 대한 아이디 내 위치별 공개 파라미터 값을 포함하는 공개 파라미터 테이블 및 암호화 장치(800)의 사용자 아이디에 대응되는 비밀키를 획득한다(1320).Thereafter, the encryption apparatus 800 acquires a public parameter table including public parameter values per location in the ID for all symbols that can be generated according to the ID constraint condition, and a secret key corresponding to the user ID of the encryption apparatus 800 (1320).

이후, 암호화 장치(800)는 획득된 비밀키를 이용하여 공개 파라미터 테이블을 공유하는 외부 장치로 전송할 데이터에 대한 전자 서명을 수행한다(1330).Then, the encryption apparatus 800 performs digital signature on the data to be transmitted to the external device sharing the public parameter table using the obtained secret key (1330).

도 14는 본 발명의 일 실시예에 따른 전자 서명된 데이터에 대한 검증 과정을 나타낸 순서도이다.FIG. 14 is a flowchart illustrating a verification process of digitally signed data according to an exemplary embodiment of the present invention.

도 14에 도시된 방법은 예를 들어, 도 8에 도시된 암호화 장치(800)에 의해 수행될 수 있다.The method shown in Fig. 14 can be performed, for example, by the encrypting apparatus 800 shown in Fig.

도 14를 참조하면, 암호화 장치(800)는 우선, 기 설정된 아이디 제약 조건에 따라 생성된 암호화 장치(800)의 사용자 아이디를 포함한 키 생성 요청을 키 발급 서버(110)로 전송한다(1410).Referring to FIG. 14, the encryption apparatus 800 transmits a key generation request including the user ID of the encryption apparatus 800 generated according to a predetermined ID constraint condition to the key issuing server 110 (1410).

이후, 암호화 장치(800)는 아이디 제약 조건에 따라 생성 가능한 모든 심볼들에 대한 아이디 내 위치별 공개 파라미터 값을 포함하는 공개 파라미터 테이블 및 암호화 장치(800)의 사용자 아이디에 대응되는 비밀키를 획득한다(1420).Thereafter, the encryption apparatus 800 acquires a public parameter table including public parameter values per location in the ID for all symbols that can be generated according to the ID constraint condition, and a secret key corresponding to the user ID of the encryption apparatus 800 (1420).

이후, 암호화 장치(800)는 공개 파라미터 테이블을 공유하는 외부 단말로부터 아이디 제약 조건에 따라 생성된 외부 단말의 사용자 아이디를 수신한다(1430).Thereafter, the encryption apparatus 800 receives the user ID of the external terminal generated according to the ID constraint condition from the external terminal sharing the public parameter table (1430).

이후, 암호화 장치(800)는 공개 파라미터 테이블로부터 외부 단말의 사용자 아이디에 포함된 각 심볼의 아이디 내 위치에 대응되는 공개 파라미터 값들을 추출한다(1440).Thereafter, the encryption apparatus 800 extracts public parameter values corresponding to positions in the ID of each symbol included in the user ID of the external terminal from the public parameter table (1440).

이후, 암호화 장치(800)는 추출된 공개 파라미터 값들을 이용하여 외부 단말의 사용자 아이디에 대응되는 공개키를 생성한다(1450).Thereafter, the encryption apparatus 800 generates a public key corresponding to the user ID of the external terminal using the extracted public parameter values (1450).

이후, 암호화 장치(800)는 외부 단말로부터 외부 단말의 비밀키를 이용하여 전자 서명된 데이터를 수신한다(1460).Thereafter, the encryption apparatus 800 receives the digitally signed data using the secret key of the external terminal from the external terminal (1460).

이후, 암호화 장치(800)는 외부 단말의 사용자 아이디에 대응되는 공개키를 이용하여 수신된 전자 서명된 데이터에 대한 검증을 수행한다(1470).Thereafter, the encryption apparatus 800 performs verification of the received digitally signed data using the public key corresponding to the user ID of the external terminal (1470).

한편, 도 9 내지 도 14에 도시된 순서도에서는 상기 방법을 복수 개의 단계로 나누어 기재하였으나, 적어도 일부의 단계들은 순서를 바꾸어 수행되거나, 다른 단계와 결합되어 함께 수행되거나, 생략되거나, 세부 단계들로 나뉘어 수행되거나, 또는 도시되지 않은 하나 이상의 단계가 부가되어 수행될 수 있다.In the flowcharts shown in Figs. 9 to 14, the method is described by dividing into a plurality of steps. However, at least some of the steps may be performed in reverse order, or may be performed together with other steps, omitted, Or one or more steps not shown may be added.

한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나, 또는 컴퓨터 소프트웨어 분야에서 통상적으로 사용 가능한 것일 수 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플로피 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.On the other hand, an embodiment of the present invention may include a computer-readable recording medium including a program for performing the methods described herein on a computer. The computer-readable recording medium may include a program command, a local data file, a local data structure, or the like, alone or in combination. The media may be those specially designed and constructed for the present invention, or may be those that are commonly used in the field of computer software. Examples of computer readable media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs and DVDs, magneto-optical media such as floppy disks, and magnetic media such as ROMs, And hardware devices specifically configured to store and execute program instructions. Examples of program instructions may include machine language code such as those generated by a compiler, as well as high-level language code that may be executed by a computer using an interpreter or the like.

이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it is to be understood that the invention is not limited to the disclosed exemplary embodiments, but, on the contrary, . Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be determined by equivalents to the appended claims, as well as the appended claims.

100: 암호화 시스템
110: 키 발급 서버
120, 130: 사용자 단말
200, 300: 키 생성 장치
210: 수신부
220: 비밀키 생성부
230: 키 정보 제공부
240: 비밀 파라미터 생성부
250: 비밀 파라미터 테이블 생성부
260: 공개 파라미터 생성부
270: 공개 파라미터 테이블 생성부
800: 암호화 장치
810: 키 정보 획득부
820: 아이디 수신부
830: 공개키 생성부
840: 암호화부
850: 아이디 제공부
860: 데이터 수신부
870: 복호화부
100: Encryption system
110: key issuing server
120, 130: user terminal
200, 300: key generating device
210:
220: secret key generation unit
230: key information providing service
240: secret parameter generation unit
250: secret parameter table generation unit
260: public parameter generating unit
270: public parameter table generation unit
800: Encryption device
810: Key information acquisition unit
820:
830: Public key generation unit
840:
850: Idemija
860: Data receiving section
870:

Claims (20)

키 요청 단말로부터 기 설정된 아이디 제약 조건에 따라 생성된 아이디를 포함하는 키 생성 요청을 수신하는 수신부;
상기 아이디 제약 조건에 따라 이용 가능한 모든 심볼들 각각에 대한 아이디 내 위치별 비밀 파라미터 값을 포함하는 비밀 파라미터 테이블로부터 상기 수신된 아이디에 포함된 각 심볼들의 상기 수신된 아이디 내 위치에 대응하는 비밀 파라미터 값들을 추출하고, 추출된 비밀 파라미터 값들을 이용하여, 상기 수신된 아이디에 대응하는 비밀키를 생성하는 비밀키 생성부; 및
상기 비밀키를 상기 키 요청 단말로 제공하는 키 정보 제공부를 포함하는 키 생성 장치.
A receiving unit receiving a key generation request including an ID generated according to a predetermined ID constraint condition from a key requesting terminal;
A secret parameter value corresponding to a position in the received ID of each symbol included in the received ID from a secret parameter table including a secret parameter value for each position in the ID for each of all available symbols according to the ID constraint value, A secret key generation unit for generating a secret key corresponding to the received ID using the extracted secret parameter values; And
And a key information providing unit for providing the secret key to the key requesting terminal.
청구항 1에 있어서,
상기 비밀키 생성부는, 상기 추출된 비밀 파라미터 값들의 합을 이용하여 상기 비밀키를 생성하는 키 생성 장치.
The method according to claim 1,
Wherein the secret key generation unit generates the secret key using the sum of the extracted secret parameter values.
청구항 1에 있어서,
상기 비밀키는, 아래의 수학식
Figure 112016105480324-pat00011

(이때, Sk는 상기 비밀키, n은 상기 수신된 아이디의 자릿수, Si는 상기 수신된 아이디 내 i 번째 위치의 심볼에 대응하는 비밀 파라미터 값, R은 임의의 난수)
에 의해 생성되는 키 생성 장치.
The method according to claim 1,
The secret key is expressed by the following equation
Figure 112016105480324-pat00011

(At this time, Sk is the secret key, n is the number of digits of the received ID, S i is a secret value parameter corresponding to a symbol in the i-th position in the received ID, R is an arbitrary random number)
Is generated by the key generation unit.
청구항 1에 있어서,
상기 아이디 내 위치는, 아이디를 복수의 블록으로 분할하였을 때, 분할된 각 블록 내 위치이며,
상기 비밀키 생성부는, 상기 추출된 비밀 파라미터 값들을 상기 각 블록별로 합한 값들을 이용하여 상기 비밀키를 생성하는 키 생성 장치.
The method according to claim 1,
The position in the ID is a position in each divided block when the ID is divided into a plurality of blocks,
Wherein the secret key generation unit generates the secret key using values of the extracted secret parameter values for each block.
청구항 4에 있어서,
상기 비밀키는, 아래의 수학식
Figure 112016105480324-pat00012

(이때, Sk는 비밀키, m은 상기 분할된 블록의 수, Bk는 k번째 블록에 대한 상기 추출된 비밀 파라미터 값들의 합, Rk는 임의의 난수)
에 의해 생성되는 키 생성 장치.
The method of claim 4,
The secret key is expressed by the following equation
Figure 112016105480324-pat00012

(In this case, the secret key Sk, m is the number of the divided blocks, B is the sum k, R k of the extracted secret parameter values for the k-th block are arbitrary random numbers)
Is generated by the key generation unit.
청구항 5에 있어서,
상기 Rk는, 상기 Bk가 가질 수 있는 최대 비트 수의 k배 크기의 비트 수를 가지는 임의의 난수인 키 생성 장치.
The method of claim 5,
Wherein R k is an arbitrary random number having a bit number of k times the maximum number of bits that B k can have.
키 요청 단말로부터 기 설정된 아이디 제약 조건에 따라 생성된 아이디를 포함하는 키 생성 요청을 수신하는 단계;
상기 아이디 제약 조건에 따라 이용 가능한 모든 심볼들 각각에 대한 아이디 내 위치별 비밀 파라미터 값을 포함하는 비밀 파라미터 테이블로부터 상기 수신된 아이디에 포함된 각 심볼들의 상기 수신된 아이디 내 위치에 대응하는 비밀 파라미터 값들을 추출하는 단계;
상기 추출된 비밀 파라미터 값들을 이용하여, 상기 수신된 아이디에 대응하는 비밀키를 생성하는 단계; 및
상기 비밀키를 상기 키 요청 단말로 제공하는 단계를 포함하는 키 생성 방법.
Receiving a key generation request including an ID generated according to a predetermined ID constraint condition from a key requesting terminal;
A secret parameter value corresponding to a position in the received ID of each symbol included in the received ID from a secret parameter table including a secret parameter value for each position in the ID for each of all available symbols according to the ID constraint value, ;
Generating a secret key corresponding to the received ID using the extracted secret parameter values; And
And providing the secret key to the key requesting terminal.
청구항 7에 있어서,
상기 비밀키를 생성하는 단계는, 상기 추출된 비밀 파라미터 값들의 합을 이용하여 상기 비밀키를 생성하는 키 생성 방법.
The method of claim 7,
Wherein the generating of the secret key comprises generating the secret key using the sum of the extracted secret parameter values.
청구항 7에 있어서,
상기 비밀키는, 아래의 수학식
Figure 112016105480324-pat00013

(이때, Sk는 상기 비밀키, n은 상기 수신된 아이디의 자릿수, Si는 상기 수신된 아이디 내 i 번째 위치의 심볼에 대응하는 비밀 파라미터 값, R은 임의의 난수)
에 의해 생성되는 키 생성 방법.
The method of claim 7,
The secret key is expressed by the following equation
Figure 112016105480324-pat00013

(At this time, Sk is the secret key, n is the number of digits of the received ID, S i is a secret value parameter corresponding to a symbol in the i-th position in the received ID, R is an arbitrary random number)
/ RTI >
청구항 7에 있어서,
상기 아이디 내 위치는, 아이디를 복수의 블록으로 분할하였을 때, 분할된 각 블록 내 위치이며,
상기 비밀키를 생성하는 단계는, 상기 추출된 비밀 파라미터 값들을 상기 각 블록별로 합한 값들을 이용하여 상기 비밀키를 생성하는 키 생성 방법.
The method of claim 7,
The position in the ID is a position in each divided block when the ID is divided into a plurality of blocks,
Wherein the generating the secret key comprises generating the secret key using values of the extracted secret parameter values for each block.
청구항 10에 있어서,
상기 비밀키는, 아래의 수학식
Figure 112016105480324-pat00014

(이때, Sk는 비밀키, m은 상기 분할된 블록의 수, Bk는 k번째 블록에 대한 상기 추출된 비밀 파라미터 값들의 합, Rk는 임의의 난수)
에 의해 생성되는 키 생성 방법.
The method of claim 10,
The secret key is expressed by the following equation
Figure 112016105480324-pat00014

(In this case, the secret key Sk, m is the number of the divided blocks, B is the sum k, R k of the extracted secret parameter values for the k-th block are arbitrary random numbers)
/ RTI >
청구항 11에 있어서,
상기 Rk는, 상기 Bk가 가질 수 있는 최대 비트 수의 k배 크기의 비트 수를 가지는 임의의 난수인 키 생성 방법.
The method of claim 11,
Wherein R k is an arbitrary random number having a bit number of k times the maximum number of bits that B k can have.
기 설정된 아이디 제약 조건에 따라 생성된 암호화 장치의 사용자 아이디를 포함한 키 생성 요청을 키 발급 서버로 전송하여, 상기 키 발급 서버로부터 상기 기 설정된 아이디 제약 조건에 따라 생성 가능한 모든 심볼들에 대한 아이디 내 위치별 공개 파라미터 값을 포함하는 공개 파라미터 테이블 및 상기 암호화 장치의 사용자 아이디에 대응되는 비밀키를 획득하는 키 정보 획득부;
상기 공개 파라미터 테이블을 공유하는 외부 단말로부터 상기 아이디 제약 조건에 따라 생성된 상기 외부 단말의 사용자 아이디를 수신하는 아이디 수신부;
상기 공개 파라미터 테이블로부터 상기 외부 단말의 사용자 아이디에 포함된 각 심볼의 아이디 내 위치에 대응되는 공개 파라미터 값들을 추출하고, 상기 추출된 공개 파라미터 값들을 이용하여 상기 외부 단말의 사용자 아이디에 대응되는 공개키를 생성하는 공개키 생성부; 및
상기 공개키를 이용하여 상기 외부 단말로 전송할 데이터를 암호화 하거나, 상기 비밀키를 이용하여 상기 전송할 데이터에 대한 전자 서명을 수행하는 암호화부를 포함하는 암호화 장치.
The key issuing server transmits a key generation request including the user ID of the encryption apparatus generated according to the predetermined ID constraint condition to the key issuance server, A key information acquiring unit for acquiring a public parameter table including a star disclosure parameter value and a secret key corresponding to a user ID of the encryption apparatus;
An ID receiving unit for receiving a user ID of the external terminal generated according to the ID constraint condition from an external terminal sharing the public parameter table;
Extracting from the public parameter table public parameter values corresponding to positions in the ID of each symbol included in the user ID of the external terminal and extracting public key values corresponding to the user ID of the external terminal using the extracted public parameter values, A public key generation unit for generating a public key; And
And an encryption unit encrypting data to be transmitted to the external terminal using the public key or performing digital signature on the data to be transmitted using the secret key.
청구항 13에 있어서,
상기 공개키 생성부는, 상기 추출된 공개 파라미터들의 곱을 이용하여 상기 사용자 아이디에 대응되는 공개키를 생성하는 암호화 장치.
14. The method of claim 13,
Wherein the public key generation unit generates a public key corresponding to the user ID by using the product of the extracted public parameters.
청구항 13에 있어서,
상기 아이디 내 위치는, 상기 외부 단말의 사용자 아이디를 복수의 블록으로 분할하였을 때, 분할된 각 블록 내 위치이며,
상기 공개키 생성부는, 상기 추출된 공개 파라미터 값들을 상기 각 블록별로 곱한 값들을 이용하여 상기 사용자 아이디에 대응되는 공개키를 생성하는 암호화 장치.
14. The method of claim 13,
The position in the ID is a position in each divided block when the user ID of the external terminal is divided into a plurality of blocks,
Wherein the public key generation unit generates a public key corresponding to the user ID using values obtained by multiplying the extracted public parameter values by the respective blocks.
청구항 13에 있어서,
상기 외부 단말로 상기 암호화 장치의 사용자 아이디를 제공하는 아이디 제공부;
상기 외부 단말로부터 상기 암호화 장치의 사용자 아이디에 대응되는 공개키를 이용하여 암호화된 데이터 또는 상기 외부 단말의 비밀키를 이용하여 전자 서명된 데이터를 수신하는 데이터 수신부; 및
상기 암호화 장치의 사용자 아이디에 대응되는 비밀키를 이용하여 상기 암호화된 데이터를 복호화하거나, 상기 외부 단말의 사용자 아이디에 대응되는 공개키를 이용하여 상기 전자 서명된 데이터에 대한 검증을 수행하는 복호화부를 더 포함하는 암호화 장치.
14. The method of claim 13,
An ID providing unit for providing a user ID of the encryption apparatus to the external terminal;
A data receiving unit for receiving the digitally signed data using the public key corresponding to the user ID of the encryption device from the external terminal or the secret key of the external terminal; And
A decryption unit decrypting the encrypted data using a secret key corresponding to a user ID of the encryption apparatus or performing verification of the digitally signed data using a public key corresponding to a user ID of the external terminal Encryption device to include.
기 설정된 아이디 제약 조건에 따라 생성된 암호화 장치의 사용자 아이디를 포함한 키 생성 요청을 키 발급 서버로 전송하는 단계;
상기 키 발급 서버로부터 상기 기 설정된 아이디 제약 조건에 따라 생성 가능한 모든 심볼들에 대한 아이디 내 위치별 공개 파라미터 값을 포함하는 공개 파라미터 테이블 및 상기 암호화 장치의 사용자 아이디에 대응되는 비밀키를 획득하는 단계;
상기 공개 파라미터 테이블을 공유하는 외부 단말로부터 상기 아이디 제약 조건에 따라 생성된 상기 외부 단말의 사용자 아이디를 수신하는 단계;
상기 공개 파라미터 테이블로부터 상기 외부 단말의 사용자 아이디에 포함된 각 심볼의 아이디 내 위치에 대응되는 공개 파라미터 값들을 추출하는 단계;
상기 추출된 공개 파라미터 값들을 이용하여 상기 외부 단말의 사용자 아이디에 대응되는 공개키를 생성하는 단계; 및
상기 공개키를 이용하여 상기 외부 단말로 전송할 데이터를 암호화 하거나, 상기 비밀키를 이용하여 상기 전송할 데이터에 대한 전자 서명을 수행하는 단계를 포함하는 암호화 방법.
Transmitting a key generation request including a user ID of the encryption apparatus generated according to a predetermined ID constraint condition to a key issuing server;
Acquiring a secret parameter corresponding to a user ID of the encryption device and a public parameter table including a public parameter value for each location in an ID of all symbols that can be generated according to the predetermined ID constraint condition from the key issuing server;
Receiving a user ID of the external terminal generated according to the ID constraint condition from an external terminal sharing the public parameter table;
Extracting public parameter values corresponding to positions in an ID of each symbol included in a user ID of the external terminal from the public parameter table;
Generating a public key corresponding to a user ID of the external terminal using the extracted public parameter values; And
Encrypting data to be transmitted to the external terminal using the public key, or performing digital signature on the data to be transmitted using the secret key.
청구항 17에 있어서,
상기 공개키를 생성하는 단계, 상기 추출된 공개 파라미터들의 곱을 이용하여 상기 사용자 아이디에 대응되는 공개키를 생성하는 암호화 방법.
18. The method of claim 17,
Generating the public key, and generating a public key corresponding to the user ID using a product of the extracted public parameters.
청구항 17에 있어서,
상기 아이디 내 위치는, 상기 외부 단말의 사용자 아이디를 복수의 블록으로 분할하였을 때, 분할된 각 블록 내 위치이며,
상기 공개키를 생성하는 단계는, 상기 추출된 공개 파라미터 값들을 상기 각 블록별로 곱한 값들을 이용하여 상기 사용자 아이디에 대응되는 공개키를 생성하는 암호화 방법.
18. The method of claim 17,
The position in the ID is a position in each divided block when the user ID of the external terminal is divided into a plurality of blocks,
Wherein the step of generating the public key comprises generating a public key corresponding to the user ID by using the values obtained by multiplying the extracted public parameter values by the respective blocks.
청구항 17에 있어서,
상기 외부 단말로 상기 암호화 장치의 사용자 아이디를 제공하는 단계;
상기 외부 단말로부터 상기 암호화 장치의 사용자 아이디에 대응되는 공개키를 이용하여 암호화된 데이터 또는 상기 외부 단말의 비밀키를 이용하여 전자 서명된 데이터를 수신하는 단계; 및
상기 암호화 장치의 사용자 아이디에 대응되는 비밀키를 이용하여 상기 암호화된 데이터를 복호화하거나, 상기 외부 단말의 사용자 아이디에 대응되는 공개키를 이용하여 상기 전자 서명된 데이터에 대한 검증을 수행하는 단계를 더 포함하는 암호화 방법.
18. The method of claim 17,
Providing a user ID of the encryption device to the external terminal;
Receiving the digitally signed data using the encrypted data or the secret key of the external terminal using the public key corresponding to the user ID of the encryption device from the external terminal; And
Decrypting the encrypted data using a secret key corresponding to a user ID of the encryption apparatus or performing verification of the digitally signed data using a public key corresponding to a user ID of the external terminal Encryption method to include.
KR1020160142251A 2016-10-28 2016-10-28 Apparatus and method for generating key, apparatus and method for encryption KR101865703B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160142251A KR101865703B1 (en) 2016-10-28 2016-10-28 Apparatus and method for generating key, apparatus and method for encryption

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160142251A KR101865703B1 (en) 2016-10-28 2016-10-28 Apparatus and method for generating key, apparatus and method for encryption

Publications (2)

Publication Number Publication Date
KR20180046720A KR20180046720A (en) 2018-05-09
KR101865703B1 true KR101865703B1 (en) 2018-06-08

Family

ID=62201038

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160142251A KR101865703B1 (en) 2016-10-28 2016-10-28 Apparatus and method for generating key, apparatus and method for encryption

Country Status (1)

Country Link
KR (1) KR101865703B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102005946B1 (en) 2018-11-13 2019-10-01 세종대학교산학협력단 System and method for providng anonymous identity-based signature using homomorphic encryption

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101329007B1 (en) 2012-05-31 2013-11-12 삼성에스디에스 주식회사 Apparatus and method for generating secret key for encryption system based on id and recording medium storing program for executing method of the same in computer
KR101460541B1 (en) 2013-07-15 2014-11-11 고려대학교 산학협력단 Public encryption method based on user ID

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1262087C (en) * 2005-01-14 2006-06-28 南相浩 Method and apparatus for cipher key generation based on identification
KR101301609B1 (en) 2012-05-31 2013-08-29 서울대학교산학협력단 Apparatus and method for generating secret key, and recording medium storing program for executing method of the same in computer
KR101493214B1 (en) * 2012-10-31 2015-02-24 삼성에스디에스 주식회사 Method for password based authentication and apparatus executing the method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101329007B1 (en) 2012-05-31 2013-11-12 삼성에스디에스 주식회사 Apparatus and method for generating secret key for encryption system based on id and recording medium storing program for executing method of the same in computer
KR101460541B1 (en) 2013-07-15 2014-11-11 고려대학교 산학협력단 Public encryption method based on user ID

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102005946B1 (en) 2018-11-13 2019-10-01 세종대학교산학협력단 System and method for providng anonymous identity-based signature using homomorphic encryption

Also Published As

Publication number Publication date
KR20180046720A (en) 2018-05-09

Similar Documents

Publication Publication Date Title
Xu et al. Secure fine-grained access control and data sharing for dynamic groups in the cloud
CN110650010B (en) Method, device and equipment for generating and using private key in asymmetric key
JP6273951B2 (en) ENCRYPTION DEVICE, ENCRYPTION METHOD, INFORMATION PROCESSING DEVICE, AND ENCRYPTION SYSTEM
JP6497747B2 (en) Key exchange method, key exchange system
JP2014126866A (en) Device and method for encryption processing
US20190140819A1 (en) System and method for mekle puzzles symeteric key establishment and generation of lamport merkle signatures
KR102432356B1 (en) Apparatus and method for generating key, apparatus and method for encryption
CN111404952B (en) Transformer substation data encryption transmission method and device, computer equipment and storage medium
KR101016009B1 (en) Method for data encryption and decryption using location information
WO2018043573A1 (en) Key exchange method and key exchange system
JP6368047B2 (en) Key exchange method, key exchange system, key distribution device, representative communication device, general communication device, and program
KR20180113688A (en) Encryption method and system using authorization key of device
KR101947871B1 (en) Function encryption system and method for outputting inner product values
KR101865703B1 (en) Apparatus and method for generating key, apparatus and method for encryption
KR101695361B1 (en) Terminology encryption method using paring calculation and secret key
KR101790948B1 (en) Apparatus and method for providing drm service, apparatus and method for playing contents using drm service
KR101812311B1 (en) User terminal and data sharing method of user terminal based on attributed re-encryption
CN107872312B (en) Method, device, equipment and system for dynamically generating symmetric key
CN115412246A (en) Method, device, equipment and storage medium for inadvertent transmission
Xu et al. Fine-grained access control scheme based on improved proxy re-encryption in cloud
JPWO2018043466A1 (en) Data extraction system, data extraction method, registration device and program
US11451518B2 (en) Communication device, server device, concealed communication system, methods for the same, and program
KR102526114B1 (en) Apparatus and method for encryption and decryption
CN112954388A (en) Data file acquisition method and device, terminal equipment and storage medium
KR20140112815A (en) Method and system for secure data transfer using conditional proxy re-encryption

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right