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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 51
- 238000012795 verification Methods 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 12
- 239000000284 extract Substances 0.000 description 11
- 230000006870 function Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 4
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
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
본 발명의 실시예들은 암호화 및 암호화를 위한 키 생성 기술과 관련된다.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
본 발명의 실시예들은 암호화를 위한 키 생성 장치 및 방법과 암호화 장치 및 방법을 제공하기 위한 것이다.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
(이때, 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
(이때, 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
(이때, 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
(이때, 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
키 발급 서버(110)는 예를 들어, 신뢰할 수 있는 기관이나 암호화 서비스 제공자 등에 의해 운영되는 서버로서, 사용자 단말(120, 130)의 키 생성 요청에 따라 암호화를 위한 키 정보를 생성할 수 있다. 또한, 키 발급 서버(110)는 생성된 키 정보를 안전한 채널을 통해 각 사용자 단말(120, 130)로 제공할 수 있다.The
이때, 키 정보는 후술할 바와 같이 각 사용자 단말(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
각 사용자 단말(120, 130)은 키 발급 서버(110)로부터 키 정보를 제공받아 암복호화 내지는 데이터에 대한 전자 서명 및 검증을 수행하기 위한 장치일 수 있다. 예를 들어, 각 사용자 단말(120, 130)은 스마트폰, PDA, 패블릿(pablet), 데스크톱 PC, 랩톱 PC, 태블릿 PC, 서버, 센서 등과 같이 정보 처리 기능, 데이터 저장 기능 및 유선 또는 무선 네트워크를 통한 데이터 통신 기능을 구비한 다양한 형태의 컴퓨팅 장치일 수 있다. Each of the
각 사용자 단말(120, 130)은 사용자 아이디를 키 발급 서버(110)로 전송하여 키 생성을 요청할 수 있다. 또한, 각 사용자 단말(120, 130)은 키 발급 서버(110)로부터 공개 파라미터 테이블과 사용자 아이디에 대응되는 비밀키를 수신할 수 있다.Each of the
이때, 키 발급 서버(110)로부터 각 사용자 단말(120, 130)로 전송되는 비밀키는 각 사용자 단말(120, 130)로부터 전송된 사용자 아이디에 따라 상이한 값을 가질 수 있다. 반면, 키 발급 서버(110)로부터 각 사용자 단말(120, 130)로 전송되는 공개 파라미터 테이블은 각 사용자 단말(120, 130)로부터 전송된 사용자 아이디와 무관하게 동일할 수 있으며, 이에 따라, 각 사용자 단말(120, 130)은 동일한 공개 파라미터 테이블을 공유할 수 있다.At this time, the secret key transmitted from the
한편, 키 발급 서버(110)로부터 비밀키 및 공개 파라미터 테이블을 수신한 각 사용자 단말(120, 130)은 수신된 비밀키 및 공개 파라미터 테이블을 이용하여 암복호화를 수행하거나, 전송될 데이터에 대한 전자 서명 및 전자 서명된 데이터에 대한 검증을 수행할 수 있다.On the other hand, each of the
예를 들어, 사용자 단말(120)은 사용자 단말(130)의 사용자 아이디를 수신하고, 공개 파라미터 테이블을 이용하여 수신된 사용자 아이디에 대응되는 공개키를 생성할 수 있다. 또한, 사용자 단말(120)은 생성된 공개키를 이용하여 데이터를 암호화한 후 사용자 단말(130)로 전송할 수 있다.For example, the
이때, 사용자 단말(120)로부터 암호화된 데이터를 수신한 사용자 단말(130)은 키 발급 서버(110)로부터 수신된 비밀키를 이용하여 암호화된 데이터를 복호화할 수 있다.At this time, the
마찬가지로, 사용자 단말(130)은 사용자 단말(120)의 사용자 아이디를 수신하고, 공개 파라미터 테이블을 이용하여 수신된 사용자 아이디에 대응되는 공개키를 생성할 수 있다. 또한, 사용자 단말(130)은 생성된 공개키를 이용하여 데이터를 암호화한 후 사용자 단말(120)로 전송할 수 있다.Similarly, the
이때, 사용자 단말(130)로부터 암호화된 데이터를 수신한 사용자 단말(120)은 키 발급 서버(110)로부터 수신된 비밀키를 이용하여 암호화된 데이터를 복호화할 수 있다.At this time, the
다른 예로, 사용자 단말(120)은 키 발급 서버(110)로부터 수신된 비밀키를 이용하여 데이터에 대한 전자 서명을 수행하고, 전자 서명된 데이터 및 사용자 단말(120)의 사용자 아이디를 사용자 단말(130)로 제공할 수 있다.In another example, the
이때, 사용자 단말(120)로부터 전자 서명된 데이터와 사용자 단말(120)의 사용자 아이디를 수신한 사용자 단말(130)은 공개 파라미터 테이블을 이용하여 수신된 사용자 아이디에 대응되는 공개키를 생성할 수 있다. 이후, 사용자 단말(130)은 생성된 공개키를 이용하여 수신된 전자 서명된 데이터에 대한 검증을 수행할 수 있다.At this time, the
마찬가지로, 사용자 단말(130)은 키 발급 서버(110)로부터 수신된 비밀키를 이용하여 데이터에 대한 전자 서명을 수행하고, 전자 서명된 데이터 및 사용자 단말(130)의 사용자 아이디를 사용자 단말(120)로 제공할 수 있다.Similarly, the
이때, 사용자 단말(130)로부터 전자 서명된 데이터와 사용자 단말(130)의 사용자 아이디를 수신한 사용자 단말(120)은 공개 파라미터 테이블을 이용하여 수신된 사용자 아이디에 대응되는 공개키를 생성할 수 있다. 이후, 사용자 단말(120)은 생성된 공개키를 이용하여 수신된 전자 서명된 데이터에 대한 검증을 수행할 수 있다.At this time, the
도 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
본 발명의 일 실시예에서, 키 생성 장치(200)는 예를 들어, 도 1에 도시된 키 발급 서버(110)의 일 구성으로 구현될 수 있다.In one embodiment of the present invention, the
수신부(210)는 키 요청 단말(예를 들어, 도 1의 사용자 단말(120, 130))로부터 기 설정된 아이디 제약 조건에 따라 생성된 아이디를 포함하는 키 생성 요청을 수신한다.The receiving
이때, 아이디 제약 조건은 아이디 생성 시 아이디가 만족하여야 하는 하나 이상의 규칙을 포함할 수 있으며, 암호화 서비스의 제공자에 의해 미리 설정될 수 있다. 구체적으로, 아이디 제약 조건은 예를 들어, 아이디를 구성하기 위해 이용할 수 있는 심볼의 종류(예를 들어, 영문 대문자, 영문 소문자, 숫자, 특수 문자 등) 및 아이디의 최대 자릿수를 포함할 수 있다. 그러나, 아이디 제약 조건은 반드시 상술한 예에 한정되는 것은 아니며, 예를 들어, 아이디의 최소 자릿수, 상이한 종류의 심볼들의 조합(예를 들어, 영문 대문자와 숫자의 조합) 등과 같이 암호화 서비스의 정책에 따라 다양한 조건들이 추가될 수 있다.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
이때, 비밀 파라미터 테이블은 아이디 제약 조건에 따라 이용 가능한 모든 심볼들 각각에 대한 아이디 내 위치별 비밀 파라미터 값을 포함할 수 있다. 비밀 파라미터 테이블에 대한 상세한 설명은 후술하기로 한다.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]
이때, 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
이때, 수신된 아이디에 대응하는 비밀키는 추출된 비밀 파라미터 값들을 각 블록별로 합한 값들을 이용하여 생성될 수 있다.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) "
이때, 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
한편, 일 실시예에서, 도 2에 도시된 수신부(210), 비밀키 생성부(220) 및 키 정보 제공부(230)는 하나 이상의 프로세서 및 그 프로세서와 연결된 컴퓨터 판독 가능 기록 매체를 포함하는 하나 이상의 컴퓨팅 장치 상에서 구현될 수 있다. 컴퓨터 판독 가능 기록 매체는 프로세서의 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다. 컴퓨팅 장치 내의 프로세서는 각 컴퓨팅 장치로 하여금 본 명세서에서 기술되는 예시적인 실시예에 따라 동작하도록 할 수 있다. 예를 들어, 프로세서는 컴퓨터 판독 가능 기록 매체에 저장된 명령어를 실행할 수 있고, 컴퓨터 판독 가능 기록 매체에 저장된 명령어는 프로세서에 의해 실행되는 경우 컴퓨팅 장치로 하여금 본 명세서에 기술되는 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.In one embodiment, the receiving
도 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
도 3에 도시된 실시예에서, 키 생성 장치(300)는 예를 들어, 도 1에 도시된 키 발급 서버(110)의 일 구성으로 구현될 수 있다.In the embodiment shown in FIG. 3, the
비밀 파라미터 생성부(240)는 기 설정된 아이디 제약 조건에 따라 아이디 생성을 위해 이용 가능한 모든 심볼(symbol)들에 대하여, 각 심볼의 아이디 내 위치별 비밀 파라미터 값을 생성한다. 본 발명의 일 실시예에 따르면, 비밀 파라미터 생성부(240)는 아이디 제약 조건에 따라 아이디 생성을 위해 이용 가능한 모든 심볼(symbol)들에 대하여, 각 심볼의 아이디 내 위치별로 대응되는 비밀 파라미터 값을 생성할 수 있다.The
예를 들어, 비밀 파라미터 생성부(240)는 아이디 제약 조건에 따라 이용 가능한 각 심볼에 대하여, 아이디 내 위치에 따라 임의의 값을 생성하고, 생성된 임의의 값을 AES 알고리즘으로 암호화하여 각 심볼의 아이디 내 특정 위치에 대응하는 비밀 파라미터를 생성할 수 있다.For example, the secret
이때, 본 발명의 일 실시예에 따르면, 비밀 파라미터 생성부(240)는 아이디 제약 조건에 따라 생성 가능한 아이디의 최대 자릿수를 복수의 블록으로 분할한 후, 아이디 제약 조건에 따라 이용 가능한 모든 심볼들에 대하여, 각 심볼의 분할된 각 블록 내 위치별로 대응되는 비밀 파라미터 값을 생성할 수 있다.In this case, according to an embodiment of the present invention, the
예를 들어, 아이디 제약 조건에 따른 아이디의 최대 자릿수가 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
한편, 본 발명의 일 실시예에 따르면, 비밀 파라미터 생성부(240)에 의해 생성되는 비밀 파라미터 값은 모두 상이할 수 있다.Meanwhile, according to an embodiment of the present invention, the secret parameter values generated by the secret
구체적으로, 비밀 파라미터 생성부(240)는 예를 들어, 아래 수학식 1에 따른 맵핑 함수를 이용하여, 각 심볼의 블록 내 위치에 따른 임의의 값을 생성할 수 있다.Specifically, the secret-
[수학식 3]&Quot; (3) "
수학식 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
한편, 비밀 파라미터 생성부(240)에 의한 비밀 파라미터 값 생성 방식은 반드시 상술한 예에 한정되는 것은 아니며, 아이디 제약 조건에 따라 생성 가능한 각 심볼의 아이디 내 위치에 따라 상이한 값들을 생성할 수 있다면, 어떠한 방식이라도 이용 가능함을 유의하여야 한다.Meanwhile, the secret parameter value generation method by the secret
한편, 비밀 파라미터 테이블 생성부(250)는 비밀 파라미터 생성부(240)에서 생성된 비밀 파라미터 값들을 포함하는 비밀 파라미터 테이블을 생성한다. Meanwhile, the secret parameter
구체적으로, 비밀 파라미터 테이블 생성부(250)는 비밀 파라미터 생성부(240)에 의해 생성된 각 비밀 파라미터 값을 대응되는 심볼의 아이디 내 위치로 인덱싱하여 비밀 파라미터 테이블을 생성할 수 있다.Specifically, the secret parameter
구체적인 예로, 도 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 (
또한, 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
한편, 공개 파라미터 생성부(260)는 비밀 파라미터 생성부(240)에 의해 생성된 비밀 파라미터 값을 이용하여, 아이디 제약 조건에 따라 이용 가능한 모든 심볼에 대한 각 심볼의 아이디 내 위치별 공개 파라미터 값을 생성한다.On the other hand, the public
구체적으로, 공개 파라미터 생성부(260)는 예를 들어, 아래의 수학식 4에 따라 각 심볼의 아이디 내 위치별 공개 파라미터 값을 생성할 수 있다.Specifically, the public
[수학식 4]&Quot; (4) "
이때, 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
[수학식 5]&Quot; (5) "
이때, 는 아이디 제약 조건에 따라 이용 가능한 특정 심볼의 k번째 블록 내 i 번째 위치에 대응되는 공개 파라미터 값, Xki는 특정 심볼의 k번째 블록 내 i 번째 위치에 대응되는 비밀 파라미터 값, Rk는 임의의 난수를 나타낸다.At this time, 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
구체적으로, 공개 파라미터 테이블 생성부(270)는 공개 파라미터 생성부(260)에 의해 생성된 각 공개 파라미터 값을 대응되는 심볼의 아이디 내 위치로 인덱싱하여 공개 파라미터 테이블을 생성할 수 있다.Specifically, the public parameter
구체적인 예로, 도 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 (
또한, 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
한편, 수신부(210)는 키 요청 단말(예를 들어, 도 1의 사용자 단말(120, 130))로부터 아이디 제약 조건에 따라 생성된 아이디를 포함하는 키 생성 요청을 수신한다.Meanwhile, the receiving
한편, 키 요청 단말로부터 키 생성 요청이 수신된 경우, 비밀키 생성부(220)는 비밀 파라미터 테이블로부터 수신된 아이디에 포함된 각 심볼들의 수신된 아이디 내 위치에 대응하는 비밀 파라미터 값들을 추출한다. 또한, 비밀키 생성부(220)는 추출된 비밀 파라미터 값들을 이용하여, 수신된 아이디에 대응하는 비밀키를 생성한다.On the other hand, when a key generation request is received from the key requesting terminal, the secret
이때, 본 발명의 일 실시예에 따르면, 수신된 아이디에 대응하는 비밀키는 추출된 비밀 파라미터 값들의 합을 이용하여 생성될 수 있다.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
또한, 수신된 아이디 '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
한편, 본 발명의 다른 실시예에 따르면, 키 요청 단말로부터 키 생성 요청이 수신된 경우, 비밀키 생성부(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
이때, 수신된 아이디에 대응하는 비밀키는 추출된 비밀 파라미터 값들을 각 블록별로 합한 값들을 이용하여 생성될 수 있다.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
즉, 비밀키 생성부(220)는 수신된 아이디'ABCDEFGH'를 4자리씩 분할하여 'ABCD'와 'EFGH'두 개의 블록으로 분할한 후, 비밀 파라미터 테이블의 Block 1으로부터 첫 번째 블록인'ABCD'에 대응되는 비밀 파라미터 값 A11, B12, C13, D14를 추출한다. 또한, 비밀키 생성부(220)는 비밀 파라미터 테이블의 Block 2으로부터 두 번째 블록인'EFGH'에 대응되는 비밀 파라미터 값 E21, F22, G23, H24를 추출한다.That is, the secret
이 경우, 수신된 아이디 '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)
한편, 키 정보 제공부(230)는 키 요청 단말로부터 수신된 아이디에 대한 비밀키가 생성된 경우, 생성된 비밀키 및 공개 파라미터 테이블을 키 요청 단말로 제공한다.Meanwhile, when the secret key for the ID received from the key requesting terminal is generated, the key
한편, 일 실시예에서, 도 3에 도시된 수신부(210), 비밀키 생성부(220), 키 정보 제공부(230), 비밀 파라미터 생성부(240), 비밀 파라미터 테이블 생성부(250), 공개 파라미터 생성부(260) 및 공개 파라미터 테이블 생성부(270)는 하나 이상의 프로세서 및 그 프로세서와 연결된 컴퓨터 판독 가능 기록 매체를 포함하는 하나 이상의 컴퓨팅 장치 상에서 구현될 수 있다. 컴퓨터 판독 가능 기록 매체는 프로세서의 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다. 컴퓨팅 장치 내의 프로세서는 각 컴퓨팅 장치로 하여금 본 명세서에서 기술되는 예시적인 실시예에 따라 동작하도록 할 수 있다. 예를 들어, 프로세서는 컴퓨터 판독 가능 기록 매체에 저장된 명령어를 실행할 수 있고, 컴퓨터 판독 가능 기록 매체에 저장된 명령어는 프로세서에 의해 실행되는 경우 컴퓨팅 장치로 하여금 본 명세서에 기술되는 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.3, the secret
도 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
본 발명의 일 실시예에서, 암호화 장치(800)는 예를 들어, 도 1에 도시된 사용자 단말(120, 130)의 일 구성으로 구현될 수 있다.In one embodiment of the present invention, the
키 정보 획득부(810)는 아이디 제약 조건에 따라 생성된 암호화 장치(800)의 사용자 아이디를 포함한 키 생성 요청을 키 발급 서버(110)로 전송한다. 또한, 키 정보 획득부(810)는 키 발급 서버(110)로부터 공개 파라미터 테이블 및 암호화 장치(800)의 사용자 아이디에 대응되는 비밀키를 획득한다.The key
이때, 키 발급 서버(110)로부터 획득되는 공개 파라미터 테이블 및 비밀키는 키 생성 장치(200)와 관련하여 이미 상술하였으므로, 이에 대한 상세한 설명은 생략한다.At this time, the public parameter table and the secret key obtained from the
아이디 수신부(820)는 키 발급 서버(110)로부터 획득된 공개 파라미터 테이블을 공유하는 외부 단말로부터 아이디 제약 조건에 따라 생성된 외부 단말의 사용자 아이디를 수신한다.The
예를 들어, 도 1에 도시된 예에서, 각 사용자 장치(210, 220)는 키 발급 서버(110)로부터 동일한 공개 파라미터 테이블을 획득할 수 있다. 이 경우, 암호화 장치(800)가 사용자 장치(210)의 일 구성으로 구현된 경우, 외부 장치는 사용자 장치(130)일 수 있다.For example, in the example shown in FIG. 1, each
공개키 생성부(830)는 키 발급 서버(110)로부터 획득된 공개 파라미터 테이블에서 외부 단말의 사용자 아이디에 포함된 각 심볼의 아이디 내 위치에 대응되는 공개 파라미터 값들을 추출한다. 또한, 공개키 생성부(830)는 추출된 공개 파라미터 값들을 이용하여 외부 단말의 사용자 아이디에 대응되는 공개키를 생성한다.The public
이때, 본 발명의 일 실시예에 따르면, 공개키 생성부(830)는 추출된 공개 파라미터들의 곱을 이용하여 외부 단말의 사용자 아이디에 대응되는 공개키를 생성할 수 있다.In this case, according to an embodiment of the present invention, the public
예를 들어, 외부 단말의 사용자 아이디가 '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
예를 들어, 도 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
이 경우, 외부 단말의 사용자 아이디'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
예를 들어, 암호화부(840)는 임의의 난수 t를 선택하고, 전송할 데이터 M에 대하여 다음과 같은 암호문 (C1, C2)를 계산할 수 있다.For example, the
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
아이디 제공부(850)는 아이디 제약 조건에 따라 생성된 암호화 장치(800)의 사용자 아이디를 외부 단말로 제공한다.The
데이터 수신부(860)는 외부 단말로부터 암호화 장치(800)의 사용자 아이디에 대응되는 공개키를 이용하여 암호화된 데이터 또는 외부 단말의 비밀키를 이용하여 전자 서명된 데이터를 수신한다.The
구체적으로, 암호화 장치(800)의 사용자 아이디를 수신한 외부 단말은 암호화 장치(800)와 공유하는 공개 파라미터 테이블을 이용하여 상술한 방식과 동일한 방식으로 공개키를 생성할 수 있으며, 생성된 공개키를 이용하여 데이터를 암호화한 후 암호화 장치(800)로 전송할 수 있다.Specifically, the external terminal receiving the user ID of the
복호화부(870)는 외부 단말로부터 암호화 장치(800)의 사용자 아이디에 대응되는 공개키를 이용하여 암호화된 데이터를 수신한 경우, 키 정보 획득부(810)에 의해 획득된 비밀키를 이용하여 암호화된 데이터를 복호화한다.When the encrypted data is received from the external terminal using the public key corresponding to the user ID of the
예를 들어, 수신된 암호문이 C1, C2인 경우, 복호화부(870)는 키 정보 획득부(810)에 의해 획득된 비밀키(Sk)를 이용하여 다음과 같이 복호화할 수 있다. For example, if the received ciphertext is C1 or C2, the decrypting
M= C1Sk (mod N) XOR C2M = C1 Sk (mod N) XOR C2
한편, 복호화부(870)는 외부 단말의 비밀키를 이용하여 전자 서명된 데이터를 수신한 경우, 공개키 생성부(830)에서 생성된 외부 단말의 사용자 아이디에 대한 공개키를 이용하여 수신된 데이터에 대한 검증을 수행할 수 있다.If the
한편, 일 실시예에서, 도 7에 도시된 키 정보 획득부(810), 아이디 수신부(820), 공개키 생성부(830), 암호화부(840), 아이디 제공부(850), 데이터 수신부(860) 및 복호화부(870)는 하나 이상의 프로세서 및 그 프로세서와 연결된 컴퓨터 판독 가능 기록 매체를 포함하는 하나 이상의 컴퓨팅 장치 상에서 구현될 수 있다. 컴퓨터 판독 가능 기록 매체는 프로세서의 내부 또는 외부에 있을 수 있고, 잘 알려진 다양한 수단으로 프로세서와 연결될 수 있다. 컴퓨팅 장치 내의 프로세서는 각 컴퓨팅 장치로 하여금 본 명세서에서 기술되는 예시적인 실시예에 따라 동작하도록 할 수 있다. 예를 들어, 프로세서는 컴퓨터 판독 가능 기록 매체에 저장된 명령어를 실행할 수 있고, 컴퓨터 판독 가능 기록 매체에 저장된 명령어는 프로세서에 의해 실행되는 경우 컴퓨팅 장치로 하여금 본 명세서에 기술되는 예시적인 실시예에 따른 동작들을 수행하도록 구성될 수 있다.7, the key
도 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
도 9를 참조하면, 키 생성 장치(200)는 우선, 키 요청 단말로부터 아이디 제약 조건에 따라 생성된 아이디를 포함하는 키 생성 요청을 수신한다(910).Referring to FIG. 9, the
이후, 키 생성 장치(200)는 비밀 파라미터 테이블로부터 수신된 아이디에 포함된 각 심볼들의 수신된 아이디 내 위치에 대응하는 비밀 파라미터 값들을 추출한다(920).Then, the
이후, 키 생성 장치(200)는 추출된 비밀 파라미터 값들을 이용하여 수신된 아이디에 대응하는 비밀키를 생성한다(930).Then, the
이후, 키 생성 장치(200)는 생성된 비밀키를 키 요청 단말로 제공한다(940).Then, the
도 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
도 10을 참조하면, 키 생성 장치(300)는 우선, 기 설정된 아이디 제약 조건에 따라 이용 가능한 모든 심볼들에 대하여, 각 심볼의 아이디 내 위치별 비밀 파라미터 값을 생성한다(1010).Referring to FIG. 10, the
이후, 키 생성 장치(300)는 생성된 비밀 파라미터 값이 대응되는 심볼의 아이디 내 위치로 인덱싱된 비밀 파라미터 테이블을 생성한다(1020).Thereafter, the
이후, 키 생성 장치(300)는 생성된 비밀 파라미터 값을 이용하여, 아이디 제약 조건에 따라 이용 가능한 모든 심볼들에 대한 각 심볼의 아이디 내 위치별 공개 파라미터 값을 생성한다(1030).Thereafter, the
이후, 키 생성 장치(300)는 생성된 공개 파라미터 값이 대응되는 심볼의 아이디 내 위치로 인덱싱된 공개 파라미터 테이블을 생성한다(1040).Thereafter, the
이후, 키 생성 장치(300)는 키 요청 단말로부터 아이디 제약 조건에 따라 생성된 아이디를 포함하는 키 생성 요청을 수신한다(1050).Then, the
이후, 키 생성 장치(300)는 비밀 파라미터 테이블로부터 수신된 아이디에 포함된 각 심볼들의 수신된 아이디 내 위치에 대응하는 비밀 파라미터 값들을 추출한다(1060).Then, the
이후, 키 생성 장치(300)는 추출된 비밀 파라미터 값들을 이용하여 수신된 아이디에 대응하는 비밀키를 생성한다(1070).Thereafter, the
이후, 키 생성 장치(300)는 생성된 비밀키 및 공개 파라미터 테이블을 키 요청 단말로 제공한다(1080).Thereafter, the
도 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
도 11을 참조하면, 암호화 장치(800)는 우선, 기 설정된 아이디 제약 조건에 따라 생성된 암호화 장치(800)의 사용자 아이디를 포함한 키 생성 요청을 키 발급 서버(110)로 전송한다(1110).11, the
이후, 암호화 장치(800)는 키 발급 서버(110)로부터 아이디 제약 조건에 따라 생성 가능한 모든 심볼들에 대한 아이디 내 위치별 공개 파라미터 값을 포함하는 공개 파라미터 테이블 및 암호화 장치(800)의 사용자 아이디에 대응되는 비밀키를 획득한다(1120).Thereafter, the
이후, 암호화 장치(800)는 공개 파라미터 테이블을 공유하는 외부 단말로부터 아이디 제약 조건에 따라 생성된 외부 단말의 사용자 아이디를 수신한다(1130).Thereafter, the
이후, 암호화 장치(800)는 공개 파라미터 테이블로부터 외부 단말의 사용자 아이디에 포함된 각 심볼의 아이디 내 위치에 대응되는 공개 파라미터 값들을 추출한다(1140).Thereafter, the
이후, 암호화 장치(800)는 추출된 공개 파라미터 값들을 이용하여 외부 단말의 사용자 아이디에 대응되는 공개키를 생성한다(1150).Thereafter, the
이후, 암호화 장치(800)는 생성된 공개키를 이용하여 외부 단말로 전송할 데이터를 암호화한다(1160).Thereafter, the
도 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
도 12를 참조하면, 암호화 장치(800)는 우선, 기 설정된 아이디 제약 조건에 따라 생성된 암호화 장치(800)의 사용자 아이디를 포함한 키 생성 요청을 키 발급 서버(110)로 전송한다(1210).Referring to FIG. 12, the
이후, 암호화 장치(800)는 아이디 제약 조건에 따라 생성 가능한 모든 심볼들에 대한 아이디 내 위치별 공개 파라미터 값을 포함하는 공개 파라미터 테이블 및 암호화 장치(800)의 사용자 아이디에 대응되는 비밀키를 획득한다(1220).Thereafter, the
이후, 암호화 장치(800)는 공개 파라미터 테이블을 공유하는 외부 단말로 암호화 장치(800)의 사용자 아이디를 제공한다(1230).Thereafter, the
이후, 암호화 장치(800)는 외부 단말로부터 암호화 장치(800)의 사용자 아이디에 대응되는 공개키를 이용하여 암호화된 데이터를 수신한다(1240).Thereafter, the
이후, 암호화 장치(800)는 1220 단계에서 획득된 비밀키를 이용하여 수신된 암호화된 데이터를 복호화한다(1250).Thereafter, the
도 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
도 13을 참조하면, 암호화 장치(800)는 우선, 기 설정된 아이디 제약 조건에 따라 생성된 암호화 장치(800)의 사용자 아이디를 포함한 키 생성 요청을 키 발급 서버(110)로 전송한다(1310).Referring to FIG. 13, the
이후, 암호화 장치(800)는 아이디 제약 조건에 따라 생성 가능한 모든 심볼들에 대한 아이디 내 위치별 공개 파라미터 값을 포함하는 공개 파라미터 테이블 및 암호화 장치(800)의 사용자 아이디에 대응되는 비밀키를 획득한다(1320).Thereafter, the
이후, 암호화 장치(800)는 획득된 비밀키를 이용하여 공개 파라미터 테이블을 공유하는 외부 장치로 전송할 데이터에 대한 전자 서명을 수행한다(1330).Then, the
도 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
도 14를 참조하면, 암호화 장치(800)는 우선, 기 설정된 아이디 제약 조건에 따라 생성된 암호화 장치(800)의 사용자 아이디를 포함한 키 생성 요청을 키 발급 서버(110)로 전송한다(1410).Referring to FIG. 14, the
이후, 암호화 장치(800)는 아이디 제약 조건에 따라 생성 가능한 모든 심볼들에 대한 아이디 내 위치별 공개 파라미터 값을 포함하는 공개 파라미터 테이블 및 암호화 장치(800)의 사용자 아이디에 대응되는 비밀키를 획득한다(1420).Thereafter, the
이후, 암호화 장치(800)는 공개 파라미터 테이블을 공유하는 외부 단말로부터 아이디 제약 조건에 따라 생성된 외부 단말의 사용자 아이디를 수신한다(1430).Thereafter, the
이후, 암호화 장치(800)는 공개 파라미터 테이블로부터 외부 단말의 사용자 아이디에 포함된 각 심볼의 아이디 내 위치에 대응되는 공개 파라미터 값들을 추출한다(1440).Thereafter, the
이후, 암호화 장치(800)는 추출된 공개 파라미터 값들을 이용하여 외부 단말의 사용자 아이디에 대응되는 공개키를 생성한다(1450).Thereafter, the
이후, 암호화 장치(800)는 외부 단말로부터 외부 단말의 비밀키를 이용하여 전자 서명된 데이터를 수신한다(1460).Thereafter, the
이후, 암호화 장치(800)는 외부 단말의 사용자 아이디에 대응되는 공개키를 이용하여 수신된 전자 서명된 데이터에 대한 검증을 수행한다(1470).Thereafter, the
한편, 도 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.
상기 비밀키 생성부는, 상기 추출된 비밀 파라미터 값들의 합을 이용하여 상기 비밀키를 생성하는 키 생성 장치.
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.
상기 비밀키는, 아래의 수학식
(이때, Sk는 상기 비밀키, n은 상기 수신된 아이디의 자릿수, Si는 상기 수신된 아이디 내 i 번째 위치의 심볼에 대응하는 비밀 파라미터 값, R은 임의의 난수)
에 의해 생성되는 키 생성 장치.
The method according to claim 1,
The secret key is expressed by the following equation
(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.
상기 아이디 내 위치는, 아이디를 복수의 블록으로 분할하였을 때, 분할된 각 블록 내 위치이며,
상기 비밀키 생성부는, 상기 추출된 비밀 파라미터 값들을 상기 각 블록별로 합한 값들을 이용하여 상기 비밀키를 생성하는 키 생성 장치.
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.
상기 비밀키는, 아래의 수학식
(이때, Sk는 비밀키, m은 상기 분할된 블록의 수, Bk는 k번째 블록에 대한 상기 추출된 비밀 파라미터 값들의 합, Rk는 임의의 난수)
에 의해 생성되는 키 생성 장치.
The method of claim 4,
The secret key is expressed by the following equation
(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.
상기 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.
상기 비밀키를 생성하는 단계는, 상기 추출된 비밀 파라미터 값들의 합을 이용하여 상기 비밀키를 생성하는 키 생성 방법.
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.
상기 비밀키는, 아래의 수학식
(이때, Sk는 상기 비밀키, n은 상기 수신된 아이디의 자릿수, Si는 상기 수신된 아이디 내 i 번째 위치의 심볼에 대응하는 비밀 파라미터 값, R은 임의의 난수)
에 의해 생성되는 키 생성 방법.
The method of claim 7,
The secret key is expressed by the following equation
(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 >
상기 아이디 내 위치는, 아이디를 복수의 블록으로 분할하였을 때, 분할된 각 블록 내 위치이며,
상기 비밀키를 생성하는 단계는, 상기 추출된 비밀 파라미터 값들을 상기 각 블록별로 합한 값들을 이용하여 상기 비밀키를 생성하는 키 생성 방법.
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.
상기 비밀키는, 아래의 수학식
(이때, Sk는 비밀키, m은 상기 분할된 블록의 수, Bk는 k번째 블록에 대한 상기 추출된 비밀 파라미터 값들의 합, Rk는 임의의 난수)
에 의해 생성되는 키 생성 방법.
The method of claim 10,
The secret key is expressed by the following equation
(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 >
상기 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.
상기 공개키 생성부는, 상기 추출된 공개 파라미터들의 곱을 이용하여 상기 사용자 아이디에 대응되는 공개키를 생성하는 암호화 장치.
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.
상기 아이디 내 위치는, 상기 외부 단말의 사용자 아이디를 복수의 블록으로 분할하였을 때, 분할된 각 블록 내 위치이며,
상기 공개키 생성부는, 상기 추출된 공개 파라미터 값들을 상기 각 블록별로 곱한 값들을 이용하여 상기 사용자 아이디에 대응되는 공개키를 생성하는 암호화 장치.
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.
상기 외부 단말로 상기 암호화 장치의 사용자 아이디를 제공하는 아이디 제공부;
상기 외부 단말로부터 상기 암호화 장치의 사용자 아이디에 대응되는 공개키를 이용하여 암호화된 데이터 또는 상기 외부 단말의 비밀키를 이용하여 전자 서명된 데이터를 수신하는 데이터 수신부; 및
상기 암호화 장치의 사용자 아이디에 대응되는 비밀키를 이용하여 상기 암호화된 데이터를 복호화하거나, 상기 외부 단말의 사용자 아이디에 대응되는 공개키를 이용하여 상기 전자 서명된 데이터에 대한 검증을 수행하는 복호화부를 더 포함하는 암호화 장치.
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.
상기 공개키를 생성하는 단계, 상기 추출된 공개 파라미터들의 곱을 이용하여 상기 사용자 아이디에 대응되는 공개키를 생성하는 암호화 방법.
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.
상기 아이디 내 위치는, 상기 외부 단말의 사용자 아이디를 복수의 블록으로 분할하였을 때, 분할된 각 블록 내 위치이며,
상기 공개키를 생성하는 단계는, 상기 추출된 공개 파라미터 값들을 상기 각 블록별로 곱한 값들을 이용하여 상기 사용자 아이디에 대응되는 공개키를 생성하는 암호화 방법.
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.
상기 외부 단말로 상기 암호화 장치의 사용자 아이디를 제공하는 단계;
상기 외부 단말로부터 상기 암호화 장치의 사용자 아이디에 대응되는 공개키를 이용하여 암호화된 데이터 또는 상기 외부 단말의 비밀키를 이용하여 전자 서명된 데이터를 수신하는 단계; 및
상기 암호화 장치의 사용자 아이디에 대응되는 비밀키를 이용하여 상기 암호화된 데이터를 복호화하거나, 상기 외부 단말의 사용자 아이디에 대응되는 공개키를 이용하여 상기 전자 서명된 데이터에 대한 검증을 수행하는 단계를 더 포함하는 암호화 방법.
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.
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)
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)
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)
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 |
-
2016
- 2016-10-28 KR KR1020160142251A patent/KR101865703B1/en active IP Right Grant
Patent Citations (2)
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)
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 | |
US20190140819A1 (en) | System and method for mekle puzzles symeteric key establishment and generation of lamport merkle signatures | |
JP2014126866A (en) | Device and method for encryption processing | |
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 | |
WO2018043573A1 (en) | Key exchange method and key exchange system | |
KR101016009B1 (en) | Data encryption and decryption method using location information | |
JP6368047B2 (en) | Key exchange method, key exchange system, key distribution device, representative communication device, general communication device, and program | |
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 | |
KR101865703B1 (en) | Apparatus and method for generating key, apparatus and method for encryption | |
KR101695361B1 (en) | Terminology encryption method using paring calculation and secret key | |
JPWO2018043466A1 (en) | Data extraction system, data extraction method, registration device and program | |
Xu et al. | Fine-grained access control scheme based on improved proxy re-encryption in cloud | |
KR101947871B1 (en) | Function encryption system and method for outputting inner product values | |
KR101760600B1 (en) | A Trustless Broker Based Protocol to Discover Friends in Proximity-Based Mobile Social Network and System Therefor | |
CN115412246A (en) | Method, device, equipment and storage medium for inadvertent transmission | |
US11451518B2 (en) | Communication device, server device, concealed communication system, methods for the same, and program | |
KR20140112815A (en) | Method and system for secure data transfer using conditional proxy re-encryption | |
KR102526114B1 (en) | Apparatus and method for encryption and decryption | |
CN119071089B (en) | A method, system, device and medium for oblivious transmission based on secret sharing | |
KR102418016B1 (en) | Identity-based encryption mtthod based on lattices |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20161028 |
|
A201 | Request for examination | ||
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20161109 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20161028 Comment text: Patent Application |
|
PG1501 | Laying open of application | ||
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20180524 |
|
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20180601 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20180601 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
PR1001 | Payment of annual fee |
Payment date: 20210524 Start annual number: 4 End annual number: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20220526 Start annual number: 5 End annual number: 5 |
|
PR1001 | Payment of annual fee |
Payment date: 20230524 Start annual number: 6 End annual number: 6 |
|
PR1001 | Payment of annual fee |
Payment date: 20240523 Start annual number: 7 End annual number: 7 |