KR20230056251A - Signature method and system based on key insulation - Google Patents
Signature method and system based on key insulation Download PDFInfo
- Publication number
- KR20230056251A KR20230056251A KR1020210140070A KR20210140070A KR20230056251A KR 20230056251 A KR20230056251 A KR 20230056251A KR 1020210140070 A KR1020210140070 A KR 1020210140070A KR 20210140070 A KR20210140070 A KR 20210140070A KR 20230056251 A KR20230056251 A KR 20230056251A
- Authority
- KR
- South Korea
- Prior art keywords
- key
- signature
- computing devices
- data
- certificate
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000009413 insulation Methods 0.000 title claims abstract description 8
- 238000002955 isolation Methods 0.000 claims description 84
- 238000003860 storage Methods 0.000 claims description 33
- 238000012795 verification Methods 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 14
- 230000006870 function Effects 0.000 description 17
- 238000004891 communication Methods 0.000 description 15
- 230000008569 process Effects 0.000 description 12
- 238000004422 calculation algorithm Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000013523 data management Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0825—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/33—User authentication using certificates
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
-
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/083—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
-
- 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/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- 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
-
- 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/3263—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 certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
Abstract
Description
본 발명은 키 격리 기반의 서명 방법 및 시스템에 관한 것으로, 서명을 위한 키를 지속적으로 업데이트하는 키 격리 기반의 서명 방법 및 시스템에 관한 것이다.The present invention relates to a key isolation-based signature method and system, and relates to a key isolation-based signature method and system for continuously updating a key for signing.
최근 다양한 분야에서 장치간 통신을 수행하며 필요한 데이터를 주고받을 수 있는 IoT(Internet of Things) 기술 및 환경이 적용되고 있다. 특히, 생산, 운송 또는 에너지 분야 등의 산업 환경에서 프로세스의 자동화를 위해 산업용 IIOT(Industrial Internet of Things) 기술이 이용되고 있다. 그러나, 이러한 산업 환경에서 사용되는 IoT 장치와 연관된 데이터가 위변조 되거나, 악성코드 등에 감염되는 경우, 산업 환경에 심각한 문제가 발생할 수 있다.Recently, Internet of Things (IoT) technologies and environments capable of exchanging necessary data while performing communication between devices in various fields are being applied. In particular, Industrial Internet of Things (IIOT) technology is being used for automation of processes in industrial environments such as production, transportation, or energy fields. However, when data associated with IoT devices used in such an industrial environment is forged or falsified or infected with malicious codes, serious problems may occur in the industrial environment.
본 발명은 상기와 같은 문제점을 해결하기 위한 키 격리 기반의 서명 방법, 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램, 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능 매체 및 시스템(장치)을 제공한다. The present invention provides a key isolation-based signature method, a computer program stored in a computer readable medium, a computer readable medium and a system (device) in which the computer program is stored to solve the above problems.
본 발명은 방법, 시스템(장치) 또는 컴퓨터 판독 가능 매체에 저장된 컴퓨터 프로그램, 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능 매체를 포함한 다양한 방식으로 구현될 수 있다.The present invention can be implemented in a variety of ways, including a method, system (device) or computer program stored on a computer readable medium, and a computer readable medium on which the computer program is stored.
본 발명의 일 실시예에 따르면, 키 격리 기반의 서명 방법은, 복수의 컴퓨팅 장치의 각각에 의해, 공개키 및 개인키를 포함하는 키 쌍을 생성하고, 인증기관의 인증 시스템으로 생성된 키 쌍에 대한 인증서를 요청하는 단계, 인증 시스템은 복수의 컴퓨팅 장치의 각각에 대응하는 인증서를 생성하고, 생성된 인증서를 복수의 컴퓨팅 장치의 각각에 제공하는 단계, 인증 시스템에 의해 인증서가 생성된 경우, 복수의 컴퓨팅 장치의 각각은 키 격리를 수행하는 헬퍼 시스템으로부터 생성된 키 격리 값을 수신하는 단계, 복수의 컴퓨팅 장치의 각각은 수신된 키 격리 값을 이용하여 서명을 위한 서명 키를 생성하는 단계 및 복수의 컴퓨팅 장치의 각각은 공개키, 인증서 및 생성된 서명 키를 포함하는 서명 정보를 이용하여 데이터에 대한 서명을 수행하는 단계를 포함한다.According to an embodiment of the present invention, a key isolation-based signature method generates a key pair including a public key and a private key by each of a plurality of computing devices, and the key pair generated by an authentication system of a certification authority. Requesting a certificate for, the authentication system generating a certificate corresponding to each of the plurality of computing devices, and providing the generated certificate to each of the plurality of computing devices, when the certificate is generated by the authentication system, Each of the plurality of computing devices receives a key isolation value generated from a helper system that performs key isolation, each of the plurality of computing devices generates a signing key for signing using the received key isolation value, and Each of the plurality of computing devices performs signing on data using signature information including a public key, a certificate, and a generated signing key.
본 발명의 일 실시예에 따르면, 복수의 컴퓨팅 장치의 각각은 사전 결정된 시간 간격 마다 헬퍼 시스템에 의해 업데이트된 키 격리 값을 수신하는 단계 및 복수의 컴퓨팅 장치의 각각은 업데이트된 키 격리 값을 이용하여 서명을 위한 서명 키를 생성하는 단계를 더 포함한다.According to one embodiment of the present invention, each of the plurality of computing devices receives the key isolation value updated by the helper system at each predetermined time interval, and each of the plurality of computing devices uses the updated key isolation value Further comprising generating a signing key for signing.
본 발명의 일 실시예에 따르면, 복수의 컴퓨팅 장치의 각각은 서명된 데이터 및 서명을 게이트웨이에 전송하는 단계, 서명된 데이터 및 서명을 수신한 게이트웨이는 복수의 컴퓨팅 장치의 각각의 공개키 및 인증서를 포함하는 검증 정보를 이용하여, 서명된 데이터 및 서명을 검증하는 단계, 데이터 및 서명이 검증된 경우, 게이트웨이는 데이터를 결합하여 결합 데이터를 생성하는 단계, 게이트웨이는 결합 서명 정보를 이용하여 결합 데이터에 대한 결합 서명을 수행하는 단계 및 게이트웨이는 생성된 결합 데이터 및 결합 서명을 저장 장치에 제공하는 단계를 더 포함한다.According to an embodiment of the present invention, each of the plurality of computing devices transmits signed data and signatures to a gateway, and the gateway receiving the signed data and signatures transmits the public key and certificate of each of the plurality of computing devices. verifying the signed data and the signature using the included verification information; if the data and the signature are verified, combining the data and generating combined data by the gateway; Performing a binding signature for the binding signature and providing, by the gateway, the generated binding data and binding signature to a storage device.
본 발명의 일 실시예에 따르면, 저장 장치에 제공된 결합 데이터는 결합 서명의 검증에 의해 검증된다.According to one embodiment of the present invention, the binding data provided to the storage device is verified by verifying the binding signature.
본 발명의 일 실시예에 따르면, 인증서가 생성된 경우, 인증 시스템은 인증서와 연관된 인증서 정보를 생성하고, 생성된 인증서 정보를 헬퍼 시스템으로 전송하는 단계 및 헬퍼 시스템은 수신된 인증서 정보를 이용하여 키 격리 값을 생성하는 단계를 더 포함한다.According to an embodiment of the present invention, when a certificate is generated, the authentication system generates certificate information associated with the certificate, transmits the generated certificate information to a helper system, and the helper system uses the received certificate information to key Further comprising generating an isolation value.
본 발명의 일 실시예에 따르면, 복수의 컴퓨팅 장치의 각각은 수신된 키 격리 값을 이용하여 서명을 위한 서명 키를 생성하는 단계는, 복수의 컴퓨팅 장치의 각각은 공개 해시 함수 및 수신된 키 격리 값을 이용하여 서명을 위한 서명 키를 생성하는 단계를 포함한다.According to an embodiment of the present invention, the step of generating a signing key for a signature using each of the plurality of computing devices using the received key isolation value, wherein each of the plurality of computing devices uses the public hash function and the received key isolation value. and generating a signing key for signing using the value.
본 발명의 일 실시예에 따른 상술한 방법을 컴퓨터에서 실행하기 위해 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램이 제공된다.A computer program stored in a computer readable recording medium is provided to execute the above-described method according to an embodiment of the present invention on a computer.
본 발명의 다양한 실시예에서 키 격리에 의해 업데이트된 키를 이용하여 서명을 수행하는 경우, 데이터 등의 무결성을 효과적으로 유지할 수 있다.In various embodiments of the present invention, when signing is performed using a key updated by key isolation, integrity of data and the like can be effectively maintained.
본 발명의 다양한 실시예에서 서명을 위해 사용되는 서명 키는 정기적으로 업데이트될 수 있으며, 이에 따라, 키 대체 등을 이용한 공격자의 공격 등이 효과적으로 차단될 수 있다.In various embodiments of the present invention, a signing key used for signing may be regularly updated, and thus an attack by an attacker using key replacement may be effectively blocked.
본 발명의 다양한 실시예에서 하나의 서명으로 복수의 데이터에 대한 검증을 수행할 수 있으므로, 서명 검증에 소요되는 연산, 시간 등이 효과적으로 감소될 수 있다.In various embodiments of the present invention, since a plurality of data can be verified with one signature, calculations and time required for signature verification can be effectively reduced.
본 발명의 다양한 실시예에서 키 격리를 이용함으로써 서명 및 데이터에 대한 보안이 강화될 수 있으며, 데이터 및 서명을 결합하여 관리함으로써 키 에스크로 문제 등이 효과적으로 해결될 수 있다.Security of signatures and data can be enhanced by using key isolation in various embodiments of the present invention, and key escrow problems can be effectively solved by combining and managing data and signatures.
본 발명의 다양한 실시예에서 복잡한 연산을 수행하여 서명 등을 수행하고, 특정 시간 간격 마다 서명 키를 업데이트함으로써, 컴퓨팅 장치는 새로운 개인키 및 공개키를 생성하여 키 대체를 수행하려는 공격자의 공격을 효과적으로 차단할 수 있다.In various embodiments of the present invention, by performing complex operations such as signing and updating the signing key at specific time intervals, the computing device generates new private and public keys to effectively prevent an attacker's attack to perform key replacement. can block
본 발명의 다양한 실시예에서 복수의 데이터를 하나로 결합하여 관리함으로써, 데이터 관리 및 서명 검증에 소요되는 자원 등이 효율적으로 감소될 수 있다.By combining and managing a plurality of data in various embodiments of the present invention, resources required for data management and signature verification can be efficiently reduced.
본 발명의 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급되지 않은 다른 효과들은 청구범위의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자("통상의 기술자"라 함)에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned are clear to those skilled in the art (referred to as "ordinary technicians") from the description of the claims. will be understandable.
본 발명의 실시예들은, 이하 설명하는 첨부 도면들을 참조하여 설명될 것이며, 여기서 유사한 참조 번호는 유사한 요소들을 나타내지만, 이에 한정되지는 않는다.
도 1은 본 발명의 일 실시예에 따른 키 격리 기반의 서명 방법을 수행하는 구성을 나타내는 예시적인 블록도이다.
도 2는 본 발명의 일 실시예에 따른 인증기관, 컴퓨팅 장치 및 헬퍼 사이에서 서명 키가 생성되는 과정을 나타내는 예시적인 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 게이트웨이, 컴퓨팅 장치 및 헬퍼 사이에서 키 격리가 수행되는 과정을 나타내는 예시적인 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 제1 컴퓨팅 장치, 제2 컴퓨팅 장치 및 게이트웨이 사이에서 서명 검증 및 서명 결합이 수행되는 과정을 나타내는 예시적인 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 게이트웨이, 저장 장치 및 사용자 단말 사이에서 결합 서명 검증이 수행되는 과정을 나타내는 예시적인 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 키 격리 기반의 서명 방법의 예시를 나타내는 흐름도이다.
도 7은 본 발명의 일 실시예에 따른 키 격리 방법의 예시를 나타내는 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 컴퓨팅 장치의 내부 구성을 나타내는 블록도이다.BRIEF DESCRIPTION OF THE DRAWINGS Embodiments of the present invention will be described with reference to the accompanying drawings described below, wherein like reference numbers indicate like elements, but are not limited thereto.
1 is an exemplary block diagram showing a configuration for performing a key isolation-based signature method according to an embodiment of the present invention.
2 is an exemplary flowchart illustrating a process of generating a signing key between a certification authority, a computing device, and a helper according to an embodiment of the present invention.
3 is an exemplary flow diagram illustrating a process in which key isolation is performed between a gateway, a computing device and a helper according to an embodiment of the present invention.
4 is an exemplary flowchart illustrating a process of performing signature verification and signature combining between a first computing device, a second computing device and a gateway according to an embodiment of the present invention.
5 is an exemplary flowchart illustrating a process of performing combined signature verification between a gateway, a storage device, and a user terminal according to an embodiment of the present invention.
6 is a flowchart illustrating an example of a key isolation-based signature method according to an embodiment of the present invention.
7 is a flowchart illustrating an example of a key isolation method according to an embodiment of the present invention.
8 is a block diagram showing an internal configuration of a computing device according to an embodiment of the present invention.
이하, 본 발명의 실시를 위한 구체적인 내용을 첨부된 도면을 참조하여 상세히 설명한다. 다만, 이하의 설명에서는 본 발명의 요지를 불필요하게 흐릴 우려가 있는 경우, 널리 알려진 기능이나 구성에 관한 구체적 설명은 생략하기로 한다.Hereinafter, specific details for the implementation of the present invention will be described in detail with reference to the accompanying drawings. However, in the following description, if there is a risk of unnecessarily obscuring the gist of the present invention, detailed descriptions of well-known functions or configurations will be omitted.
첨부된 도면에서, 동일하거나 대응하는 구성요소에는 동일한 참조부호가 부여되어 있다. 또한, 이하의 실시예들의 설명에 있어서, 동일하거나 대응되는 구성요소를 중복하여 기술하는 것이 생략될 수 있다. 그러나, 구성요소에 관한 기술이 생략되어도, 그러한 구성요소가 어떤 실시예에 포함되지 않는 것으로 의도되지는 않는다.In the accompanying drawings, identical or corresponding elements are given the same reference numerals. In addition, in the description of the following embodiments, overlapping descriptions of the same or corresponding components may be omitted. However, omission of a description of a component does not intend that such a component is not included in an embodiment.
개시된 실시예의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명이 완전하도록 하고, 본 발명이 통상의 기술자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것일 뿐이다.Advantages and features of the disclosed embodiments, and methods of achieving them, will become apparent with reference to the following embodiments in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below and can be implemented in various different forms, only these embodiments make the present invention complete and the scope of the invention to those skilled in the art. It is provided only for complete information.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 개시된 실시예에 대해 구체적으로 설명하기로 한다. 본 명세서에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 관련 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서, 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.Terms used in this specification will be briefly described, and the disclosed embodiments will be described in detail. The terms used in this specification have been selected from general terms that are currently widely used as much as possible while considering the functions in the present invention, but these may vary depending on the intention or precedent of a person skilled in the related field, the emergence of new technologies, and the like. In addition, in a specific case, there is also a term arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the invention. Therefore, the term used in the present invention should be defined based on the meaning of the term and the overall content of the present invention, not simply the name of the term.
본 명세서에서의 단수의 표현은 문맥상 명백하게 단수인 것으로 특정하지 않는 한, 복수의 표현을 포함한다. 또한, 복수의 표현은 문맥상 명백하게 복수인 것으로 특정하지 않는 한, 단수의 표현을 포함한다. 명세서 전체에서 어떤 부분이 어떤 구성요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다.Expressions in the singular number in this specification include plural expressions unless the context clearly dictates that they are singular. Also, plural expressions include singular expressions unless the context clearly specifies that they are plural. When it is said that a certain part includes a certain component in the entire specification, this means that it may further include other components without excluding other components unless otherwise stated.
본 발명에서, '포함하다', '포함하는' 등의 용어는 특징들, 단계들, 동작들, 요소들 및/또는 구성 요소들이 존재하는 것을 나타낼 수 있으나, 이러한 용어가 하나 이상의 다른 기능들, 단계들, 동작들, 요소들, 구성 요소들 및/또는 이들의 조합이 추가되는 것을 배제하지는 않는다.In the present invention, the terms 'comprise', 'comprising' and the like may indicate that features, steps, operations, elements and/or components are present, but may indicate that such terms include one or more other functions, It is not excluded that steps, actions, elements, components, and/or combinations thereof may be added.
본 발명에서, 특정 구성 요소가 임의의 다른 구성 요소에 '결합', '조합', '연결' 되거나, '반응' 하는 것으로 언급된 경우, 특정 구성 요소는 다른 구성 요소에 직접 결합, 조합 및/또는 연결되거나, 반응할 수 있으나, 이에 한정되지 않는다. 예를 들어, 특정 구성 요소와 다른 구성 요소 사이에 하나 이상의 중간 구성 요소가 존재할 수 있다. 또한, 본 발명에서 "및/또는"은 열거된 하나 이상의 항목의 각각 또는 하나 이상의 항목의 적어도 일부의 조합을 포함할 수 있다.In the present invention, when a specific component is referred to as being 'coupled', 'combined', 'connected', or 'reacted' to any other component, the specific component is directly coupled to, combined with, and/or other components. or may be linked or reacted, but is not limited thereto. For example, one or more intermediate components may exist between certain components and other components. Also, in the present invention, “and/or” may include each of one or more items listed or a combination of at least a part of one or more items.
본 발명에서, '제1', '제2' 등의 용어는 특정 구성 요소를 다른 구성 요소와 구별하기 위해 사용되는 것으로, 이러한 용어에 의해 상술된 구성 요소가 제한되진 않는다. 예를 들어, "제1" 구성 요소는 "제2" 구성 요소와 동일하거나 유사한 형태의 요소일 수 있다.In the present invention, terms such as 'first' and 'second' are used to distinguish a specific component from other components, and the aforementioned components are not limited by these terms. For example, the “first” element may have the same or similar shape as the “second” element.
본 발명에서, '서명(signature)' 및/또는 '전자 서명(digital signature)'은 임의의 컴퓨팅 장치에 의해 생성된 데이터, 메시지 등의 실질적인 내용 등의 무결성 등을 보장하기 위해 전자적 문서에 서명하는 방법, 또는 이러한 서명을 지칭할 수 있다.In the present invention, 'signature' and/or 'digital signature' refers to signing an electronic document in order to guarantee the integrity of data, messages, etc. generated by an arbitrary computing device. method, or such a signature.
본 발명에서, '인증기관(certification authority)'은 컴퓨팅 장치의 공개키 등을 인증하는 인증 시스템 등을 지칭할 수 있다. 또한, '인증서(certificate)'는 컴퓨팅 장치의 신분과 공개키를 연결해주는 문서일 수 있으며, 인증기관의 비밀키 등으로 전자 서명되어 생성될 수 있다.In the present invention, a 'certification authority' may refer to an authentication system that authenticates a public key of a computing device. Also, a 'certificate' may be a document that connects the identity of a computing device and a public key, and may be digitally signed and generated with a private key of a certification authority.
본 발명에서, 'IoT(Internet of Things)'는 인터넷을 기반으로 모든 사물을 연결하여 정보를 상호 소통하는 지능형 기술 및/또는 서비스를 지칭할 수 있으며, 'IoT 장치'는 이와 같이 인터넷을 기반으로 다른 IoT 장치와 연결된 사물, 장치 등을 지칭할 수 있다. 예를 들어, 컴퓨팅 장치는 IoT 장치를 포함할 수 있다.In the present invention, 'IoT (Internet of Things)' may refer to an intelligent technology and/or service that mutually communicates information by connecting all objects based on the Internet, and 'IoT device' refers to an Internet-based It may refer to things, devices, etc. connected to other IoT devices. For example, a computing device may include an IoT device.
도 1은 본 발명의 일 실시예에 따른 키 격리 기반의 서명 방법을 수행하는 구성을 나타내는 예시적인 블록도이다. 일 실시예에 따르면, 키 격리(key insulation)는 서명에 사용되는 개인키(private key), 공개키(public key) 등의 노출을 차단하고 보안을 유지하기 위해, 공개키 등을 정기적으로 업데이트(update)하는 기법, 기술, 알고리즘 등을 지칭할 수 있다. 키 격리에 의해 업데이트된 키를 이용하여 서명(signature)을 수행하는 경우, 데이터 등의 무결성을 효과적으로 유지할 수 있다.1 is an exemplary block diagram showing a configuration for performing a key isolation-based signature method according to an embodiment of the present invention. According to one embodiment, the key insulation is to periodically update the public key, etc. update) can refer to techniques, technologies, algorithms, etc. When a signature is performed using a key updated by key isolation, integrity of data and the like can be effectively maintained.
도시된 것과 같이, 키 격리 기반의 서명 방법은 인증기관(또는 인증기관의 인증 시스템)(110), 헬퍼(또는 헬퍼 시스템)(120), 복수의 컴퓨팅 장치(130) 등에 의해 수행될 수 있다. 여기서, 인증기관(110)은 컴퓨팅 장치들(130)로부터 수신된 정보를 기초로 컴퓨팅 장치들(130)의 신분과 공개키 등을 인증하기 위한 시스템을 지칭할 수 있으며, 헬퍼(또는 헬퍼 시스템)(120)는 컴퓨팅 장치들(130)과 연관된 키 격리를 수행하기 위한 시스템을 지칭할 수 있다. 또한, 컴퓨팅 장치(130)는 데이터, 메시지 등을 생성하거나, 생성된 데이터, 메시지 등에 대한 서명을 수행하는 컴퓨팅 장치를 지칭할 수 있으며, 예를 들어, IoT(Internet of Things) 장치, 센서(sensor) 등을 포함할 수 있다.As shown, the key isolation-based signature method may be performed by a certification authority (or authentication system of the certification authority) 110, a helper (or helper system) 120, a plurality of
일 실시예에 따르면, 컴퓨팅 장치들(130)은 공개키 및 개인키를 포함하는 키 쌍(key pair)을 생성할 수 있다. 도시된 예에서, 제1 컴퓨팅 장치(130_1), 제2 컴퓨팅 장치(130_2), 제3 컴퓨팅 장치(130_3), 제4 컴퓨팅 장치(130_4), 제5 컴퓨팅 장치(130_5) 및 제6 컴퓨팅 장치(130_6)는 각각 자신에 대응하는 키 쌍을 생성할 수 있다. 예를 들어, 컴퓨팅 장치들(130)은 인증기관(110)으로부터 수신된 공개 파라미터(public parameter) 및 랜덤 값(random value)을 이용하여 키 쌍을 생성할 수 있다. 추가적으로, 인증기관(110)은 보안 파라미터(security parameter)를 수신하여 공개 파라미터, 마스터 비밀키(master secret key), 마스터 공개키(master public key) 등을 생성할 수 있다. 그리고 나서, 인증기관(110)은 컴퓨팅 장치들(130)이 키 쌍을 생성하도록, 공개 파라미터 등을 컴퓨팅 장치들(130)에 제공할 수 있다.According to one embodiment, the
키 쌍을 생성한 경우, 컴퓨팅 장치들(130)은 인증기관(110)으로 생성된 키 쌍에 대한 인증서(certificate)를 요청할 수 있다. 요청을 수신하는 경우, 인증기관(110)은 컴퓨팅 장치들(130)의 각각의 식별자(identifier, ID), 컴퓨팅 장치들(130)의 공개키, 공개 파라미터 및/또는 인증기관(110)의 마스터 비밀키 등을 이용하여 컴퓨팅 장치들(130)의 각각에 대응하는 인증서를 생성하여 제공할 수 있다. 추가적으로, 이와 같이 인증서가 생성된 경우, 인증기관(110)은 인증서 정보를 생성하고, 생성된 인증서 정보를 헬퍼(120)로 전송할 수 있다. 여기서, 헬퍼(120)는 인증서 정보를 통해 인증서가 생성된 컴퓨팅 장치들(130)을 확인하고, 컴퓨팅 장치들(130)의 각각에 대응하는 키 격리 값을 생성하여 컴퓨팅 장치들(130)에 제공할 수 있다. 여기서, 키 격리 값은 임의의 알고리즘에 의해 생성된 임의의 수 등일 수 있으며, 예를 들어, 컴퓨팅 장치들(130)의 각각에 대응하는 헬퍼(120)의 비밀키를 포함할 수 있다.When a key pair is generated, the
일 실시예에 따르면, 컴퓨팅 장치들(130)은 헬퍼(120)로부터 수신된 키 격리 값을 이용하여 서명을 위한 서명 키를 생성할 수 있다. 컴퓨팅 장치들(130)은 데이터, 메시지 등을 전송하는 경우, 이와 같이 생성된 서명 키를 이용하여 해당 데이터, 메시지 등에 대한 서명을 수행할 수 있다. 예를 들어, 컴퓨팅 장치들(130)은 사전 결정된 공개 해시 함수(public hash function)를 이용하여 서명 키를 생성하고, 생성된 서명 키를 포함하는 서명 정보를 이용하여 데이터, 메시지 등에 대한 서명을 수행할 수 있다.According to an embodiment, the
일 실시예에 따르면, 헬퍼(120)는 사전 결정된 시간 간격 마다 컴퓨팅 장치들(130)의 각각에 대응하는 키 격리 값을 업데이트하여 키 격리를 수행할 수 있다. 즉, 컴퓨팅 장치들(130)은 사전 결정된 시간 간격 마다 헬퍼(120)에 의해 업데이트된 키 격리 값을 수신하고, 업데이트된 키 격리 값을 이용하여 서명을 위한 서명 키를 재생성하거나 업데이트할 수 있다. 이와 같은 구성에 의해, 서명을 위해 사용되는 서명 키는 정기적으로 업데이트될 수 있으며, 이에 따라, 키 대체(key replacement) 등을 이용한 공격자의 공격 등이 효과적으로 차단될 수 있다.According to an embodiment, the
일 실시예에 따르면, 컴퓨팅 장치들(130)에 의해 생성되거나 처리된 데이터, 메시지 등은 저장 장치(150)에 저장되고 관리될 수 있다. 예를 들어, 저장 장치(150)는 클라우드 시스템(cloud system)을 포함할 수 있다. 이 경우, 컴퓨팅 장치들(130)에 의해 생성되거나 처리된 데이터, 메시지 등은 게이트웨이(140)를 통해 저장 장치(150)로 전달될 수 있다. 여기서, 게이트웨이(140)는 컴퓨팅 장치들(130)에 의해 수신된 데이터, 메시지 등에 대한 서명 검증을 수행하고, 데이터 및/또는 서명에 대한 결합(aggregation)을 수행하는 시스템 및/또는 장치를 지칭할 수 있다. 도시된 예에서, 제1 컴퓨팅 장치(130_1), 제2 컴퓨팅 장치(130_2) 및 제3 컴퓨팅 장치(130_3)에 의해 생성된 데이터는 제1 게이트웨이(140_1)로 전달되어 처리될 수 있으며, 제4 컴퓨팅 장치(130_4), 제5 컴퓨팅 장치(130_5) 및 제6 컴퓨팅 장치(130_6)에 의해 생성된 데이터는 제2 게이트웨이(140_2)로 전달되어 처리될 수 있다.According to one embodiment, data, messages, etc. generated or processed by the
일 실시예에 따르면, 서명된 데이터 및 서명을 수신한 게이트웨이(140)는 컴퓨팅 장치들(130) 각각의 공개키 및 인증서를 포함하는 검증 정보를 이용하여, 서명된 데이터 및 서명을 검증할 수 있다. 또한, 데이터 및 서명이 검증된 경우, 게이트웨이(140)는 데이터를 결합하여 결합 데이터를 생성할 수 있다. 또한, 게이트웨이(140)는 결합 서명 정보를 이용하여 결합 데이터에 대한 결합 서명을 수행할 수 있다. 즉, 컴퓨팅 장치들(130)로부터 수신된 복수의 서명은 단일한 결합 서명으로 변환될 수 있다. 이와 같이 생성된 결합 서명 및 결합 데이터는 저장 장치(150)에 제공되어 저장되고 관리될 수 있다.According to an embodiment, the
일 실시예에 따르면, 사용자는 사용자 단말(160)을 통해 저장 장치(150)에 저장된 결합 데이터를 확인할 수 있다. 예를 들어, 사용자 단말(160)은 저장 장치(150)로 결합 데이터에 대한 요청을 전송하고, 저장 장치(150)로부터 결합 데이터를 수신할 수 있다. 이 경우, 사용자 단말(160)은 수신된 결합 데이터에 대한 검증을 수행할 수 있다. 여기서, 사용자 단말(160)은 컴퓨팅 장치들(130)로부터 수신되어 생성된 결합 데이터에 대하여, 단일한 하나의 결합 서명만을 검증함으로써, 간단히 서명 검증을 수행할 수 있다. 이와 같은 구성에 의해, 하나의 서명으로 복수의 데이터에 대한 검증을 수행할 수 있으므로, 서명 검증에 소요되는 연산, 시간 등이 효과적으로 감소될 수 있다.According to an embodiment, a user may check combined data stored in the
도 1에서는 6개의 컴퓨팅 장치(130), 2개의 게이트웨이(140) 등이 존재하는 것으로 도시되었으나, 이에 한정되지 않으며, 임의의 개수의 컴퓨팅 장치 및/또는 게이트웨이가 존재할 수 있다. 또한, 도 1에서는 제1 컴퓨팅 장치(130_1), 제2 컴퓨팅 장치(130_2) 및 제3 컴퓨팅 장치(130_3)로부터 수신된 데이터가 결합되어 하나의 결합 데이터를 형성하고, 제4 컴퓨팅 장치(130_4), 제5 컴퓨팅 장치(130_5) 및 제6 컴퓨팅 장치(130_6)로부터 수신된 데이터가 결합되어 다른 하나의 결합 데이터를 형성하는 것으로 상술되었으나, 이에 한정되지 않으며, 임의의 개수의 컴퓨팅 장치로부터 수신된 데이터가 하나의 결합 데이터를 형성할 수도 있다. 이와 같은 구성에 의해, 키 격리를 이용함으로써 서명 및 데이터에 대한 보안이 강화될 수 있으며, 데이터 및 서명을 결합하여 관리함으로써 키 에스크로 문제(key escrow problem) 등이 효과적으로 해결될 수 있다.In FIG. 1 , six
도 2는 본 발명의 일 실시예에 따른 인증기관(110), 컴퓨팅 장치(130) 및 헬퍼(120) 사이에서 서명 키가 생성되는 과정을 나타내는 예시적인 흐름도이다. 일 실시예에 따르면, 인증기관(110)의 인증 시스템, 컴퓨팅 장치(130) 및 헬퍼(120)의 헬퍼 시스템은 키 격리 및 서명 키 생성에 필요한 데이터 및/또는 정보를 주고받을 수 있다.2 is an exemplary flowchart illustrating a process of generating a signing key between the
일 실시예에 따르면, 컴퓨팅 장치(130)는 공개키 및 개인키를 포함하는 키 쌍을 생성할 수 있다. 예를 들어, 컴퓨팅 장치(130)는 공개 파라미터 및 랜덤 값을 이용하여 키 쌍을 생성할 수 있다. 여기서, 공개키 및 개인키를 포함하는 키 쌍은 다음의 수학식 1과 같이 생성되거나 결정될 수 있다.According to one embodiment, the
여기서, 및 는 컴퓨팅 장치(130)에 의해 생성된 공개키 및 개인키를 나타낼 수 있고, 는 컴퓨팅 장치(130)의 식별자(identifier)를 나타낼 수 있다. 또한, 는 임의의 알고리즘에 의해 결정되거나 산출된 랜덤 값으로써, 를 만족하는 값일 수 있으며, 는 공개키 및 개인키 생성을 위한 임의의 알고리즘에서 사용되는 그룹 G의 특정 포인트(point)일 수 있다.here, and May represent a public key and a private key generated by the
일 실시예에 따르면, 컴퓨팅 장치(130)는 메시지에 대한 인증, 부인방지, 메시지의 무결성 검증 등을 위해 공개키 및 개인키를 이용하여 데이터, 메시지 등에 대한 전자 서명을 수행하여 전송할 수 있다. 또한, 메시지 등을 수신한 수신자는 송신자(예: 컴퓨팅 장치(130))의 공개키로 복호화하여 서명 검증을 수행할 수 있다. 이 경우, 전자 서명 시 사용된 공개키 등이 컴퓨팅 장치(130)의 공개키 인지 여부에 대한 증명이 필요할 수 있다.According to an embodiment, the
컴퓨팅 장치(130)의 공개키를 증명하기 위해 인증기관(110)의 인증 시스템으로부터 발급된 인증서(certificate)가 요구될 수 있다. 일 실시예에 따르면, 컴퓨팅 장치(130)는 인증기관(110)으로 인증서 요청(220)을 전송할 수 있다. 예를 들어, 인증서 요청(220)은 생성된 컴퓨팅 장치(130)의 식별자, 공개키 등을 포함할 수 있다.A certificate issued from the authentication system of the
인증서 요청(220)을 수신하는 경우, 인증기관(110)은 컴퓨팅 장치(130)의 식별자, 공개키 등을 이용하여 인증서를 생성할 수 있다(230). 예를 들어, 인증서는 다음의 수학식 2에 의해 생성될 수 있다.When receiving the certificate request 220 , the
여기서, 는 컴퓨팅 장치(130)에 대응하도록 생성된 인증서일 수 있으며, 및 는 인증기관(110)의 마스터 개인키() 및 마스터 공개키()를 포함하는 키 쌍을 이용하여 산출된 값일 수 있다. 예를 들어, 및 는 각각 다음의 수학식 3 및 수학식 4에 의해 산출되거나 결정될 수 있다.here, may be a certificate generated to correspond to the
여기서, 는 임의의 알고리즘에 의해 결정되거나 산출된 랜덤 값으로써, 를 만족하는 값일 수 있다.here, Is a random value determined or calculated by an arbitrary algorithm, may be a value that satisfies
여기서, 는 인증기관(110)의 마스터 공개키를 나타낼 수 있으며, s는 임의의 알고리즘에 의해 결정되거나 산출된 랜덤 값일 수 있다. 또한, 는 암호화 해시 함수(cryptographic hash function)로서, 를 만족하는 해시 함수를 나타낼 수 있다.here, may represent the master public key of the
일 실시예에 따르면, 인증기관(110)은 생성된 인증서(240)를 컴퓨팅 장치(130)로 전송할 수 있다. 또한, 인증기관(110)은 생성된 인증서(240)와 연관된 인증서 정보(250) 및/또는 랜덤 값을 헬퍼(120)로 전송할 수 있다. 이 경우, 헬퍼(120)의 헬퍼 시스템은 컴퓨팅 장치(130)에 대응되는 키 격리 값을 생성할 수 있다(260). 또한, 헬퍼(120)는 생성된 키 격리 값(270)을 컴퓨팅 장치(130)로 전송할 수 있다. 예를 들어, 컴퓨팅 장치(130)에 대응되도록 최초 생성되는 키 격리 값은 헬퍼 개인키(helper private key)()일 수 있다.According to one embodiment, the
일 실시예에 따르면, 컴퓨팅 장치(130)는 수신된 키 격리 값(270)을 이용하여 서명을 위한 서명 키를 생성할 수 있다(280). 예를 들어, 최초 생성되는 서명 키는 다음의 수학식 5에 의해 생성될 수 있다.According to an embodiment, the
여기서, 는 컴퓨팅 장치(130)에 의해 생성되는 최초 서명 키를 나타낼 수 있으며, 는 암호화 해시 함수로서, 를 만족하는 해시 함수를 나타낼 수 있다. 컴퓨팅 장치(130)는 이와 같이 생성된 서명 키를 포함하는 서명 정보를 이용하여 임의의 데이터에 대한 서명을 수행할 수 있다.here, May represent the initial signing key generated by the
도 3은 본 발명의 일 실시예에 따른 게이트웨이(140), 컴퓨팅 장치(130) 및 헬퍼(120) 사이에서 키 격리가 수행되는 과정을 나타내는 예시적인 흐름도이다. 일 실시예에 따르면, 게이트웨이(140), 컴퓨팅 장치(130) 및 헬퍼(120)의 헬퍼 시스템은 키 격리 및 키 격리 값의 업데이트에 필요한 데이터 및/또는 정보를 주고받을 수 있다.3 is an exemplary flowchart illustrating a process in which key isolation is performed between the
일 실시예에 따르면, 헬퍼(120)의 헬퍼 시스템은 상술한 바와 같이 생성된 최초 키 격리 값을 업데이트하여 업데이트된 키 격리 값을 생성할 수 있다(310). 또한, 헬퍼(120)는 업데이트된 키 격리 값(320)을 컴퓨팅 장치(130)에 제공할 수 있다. 예를 들어, 헬퍼(120)는 사전 결정된 시간 간격 마다 키 격리 값을 업데이트하고, 업데이트된 키 격리 값을 컴퓨팅 장치(130)에 제공할 수 있다. 여기서, 키 격리 값은 다음의 수학식 6에 의해 업데이트될 수 있다.According to an embodiment, the helper system of the
여기서, 는 업데이트된 키 격리 값을 나타낼 수 있으며, t는 사전 결정된 시간 간격 또는 사전 결정된 시간 간격이 경과한 횟수를 나타낼 수 있다. 사전 결정된 시간 간격은 임의의 사용자에 의해 입력되거나, 임의의 알고리즘에 의해 산출될 수 있다.here, may represent an updated key isolation value, and t may represent a predetermined time interval or the number of times the predetermined time interval has elapsed. The predetermined time interval may be input by an arbitrary user or calculated by an arbitrary algorithm.
이와 같이 생성된 업데이트된 키 격리 값(320)을 수신하는 경우, 컴퓨팅 장치(130)는 업데이트된 키 격리 값(320)을 이용하여 서명을 위한 서명 키를 생성하거나 업데이트할 수 있다(330). 예를 들어, 컴퓨팅 장치(130)는 다음의 수학식 7을 이용하여 서명 키를 업데이트할 수 있다.When receiving the updated key isolation value 320 generated in this way, the
여기서, 는 이전 시간 간격의 서명 키일 수 있으며, 는 이전 시간 간격의 키 격리 값일 수 있다.here, can be the signing key of the previous time interval, may be the key isolation value of the previous time interval.
일 실시예에 따르면, 컴퓨팅 장치(130)는 이와 같이 업데이트된 서명 키를 포함하는 서명 정보를 이용하여 데이터에 대한 서명을 수행할 수 있다(340). 다시 말해, 컴퓨팅 장치(130)는 서명, 식별자, 공개키 및/또는 인증서 등을 포함하는 서명 정보를 이용하여 메시지()에 대한 서명을 수행할 수 있다. 여기서, 서명은 다음의 수학식 8과 같이 결정될 수 있다.According to an embodiment, the
여기서, 는 컴퓨팅 장치(130)에 의해 수행된 서명일 수 있으며, 및 는 서명을 위해 생성된 임의의 값일 수 있다. 예를 들어, 및 는 다음의 수학식 9 및 수학식 10에 의해 생성될 수 있다.here, may be a signature performed by the
여기서, 는 임의의 알고리즘에 의해 결정되거나 산출된 랜덤 값으로써, 를 만족하는 값일 수 있다.here, Is a random value determined or calculated by an arbitrary algorithm, may be a value that satisfies
여기서, 는 암호화 해시 함수로서, 를 만족하는 해시 함수를 나타낼 수 있다. 컴퓨팅 장치(130)는 이와 같이 업데이트된 서명 키를 이용하여 데이터에 대한 서명을 수행할 수 있다(340). 또한, 컴퓨팅 장치(130)는 서명된 데이터 및 서명을 게이트웨이(140)에 전송할 수 있다(350).here, is a cryptographic hash function, It can represent a hash function that satisfies The
도 3에서는 하나의 컴퓨팅 장치(130)가 존재하는 것으로 상술되었으나, 이에 한정되지 않으며, 복수의 컴퓨팅 장치가 존재할 수 있다. 이 경우, 게이트웨이(140)는 복수의 컴퓨팅 장치의 각각으로부터 서명된 데이터 및 서명을 수신할 수 있다. 이와 같은 구성에 의해, 복잡한 연산을 수행하여 서명 등을 수행하고, 특정 시간 간격 마다 서명 키를 업데이트함으로써, 컴퓨팅 장치(130)는 새로운 개인키 및 공개키를 생성하여 키 대체(key replacement)를 수행하려는 공격자의 공격을 효과적으로 차단할 수 있다.In FIG. 3 , it has been described above that one
도 4는 본 발명의 일 실시예에 따른 제1 컴퓨팅 장치(130_1), 제2 컴퓨팅 장치(130_2) 및 게이트웨이(140) 사이에서 서명 검증 및 서명 결합이 수행되는 과정을 나타내는 예시적인 흐름도이다. 일 실시예에 따르면, 제1 컴퓨팅 장치(130_1), 제2 컴퓨팅 장치(130_2) 및 게이트웨이(140)는 서명 검증 및 서명 결합에 필요한 데이터 및/또는 정보를 주고받을 수 있다.4 is an exemplary flowchart illustrating a process of performing signature verification and signature combining between the first computing device 130_1 , the second computing device 130_2 , and the
상술된 바와 같이, 게이트웨이(140)는 제1 컴퓨팅 장치(130_1)로부터 제1 서명된 데이터(410), 제1 서명 등을 수신하고, 제2 컴퓨팅 장치(130_2)로부터 제2 서명된 데이터(420), 제2 서명 등을 수신할 수 있다. 이 경우, 게이트웨이(140)는 서명된 데이터(410, 420) 및 서명에 대한 서명 검증을 수행할 수 있다(430). 예를 들어, 게이트웨이(140)는 다음의 수학식 11에 의해 서명 검증을 수행할 수 있다.As described above, the
여기서, 는 헬퍼 시스템의 공개키를 나타낼 수 있다. 이와 같은 구성에 의해, 게이트웨이(140)는 컴퓨팅 장치(130)의 식별자, 공개키, 인증서 등을 이용하여 서명된 데이터(410, 420)에 대한 검증을 수행할 수 있다. 검증이 수행된 결과, 사전 결정된 기준이 충족되면, 서명된 데이터(410, 420)는 적법한 것으로 판정될 수 있다.here, may represent the public key of the helper system. With this configuration, the
서명 검증을 수행한 후, 게이트웨이(140)는 서명된 데이터(410, 420)를 결합할 수 있다. 예를 들어, 게이트웨이(140)는 제1 서명된 데이터(410) 및 제2 서명된 데이터(420)를 결합하여 결합 데이터를 생성할 수 있다. 그리고 나서, 게이트웨이(140)는 결합 서명 정보를 이용하여 결합 데이터에 대한 결합 서명을 수행할 수 있다. 여기서 결합 서명 정보 또는 결합 서명은 다음의 수학식 12에 의해 생성될 수 있다.After performing signature verification,
도 4에서는 게이트웨이(140)가 2개의 컴퓨팅 장치(130_1, 130_2)로부터 서명된 데이터(410, 420)를 수신하여 결합 데이터를 생성하는 것으로 상술되었으나, 이에 한정되지 않으며, 임의의 개수의 컴퓨팅 장치로부터 수신된 데이터가 결합되어 하나의 결합 데이터를 생성할 수도 있다. 이와 같은 구성에 의해, 복수의 데이터를 하나로 결합하여 관리함으로써, 데이터 관리 및 서명 검증에 소요되는 자원(resource) 등이 효율적으로 감소될 수 있다.In FIG. 4, it has been described above that the
도 5는 본 발명의 일 실시예에 따른 게이트웨이(140), 저장 장치(150) 및 사용자 단말(160) 사이에서 결합 서명 검증이 수행되는 과정을 나타내는 예시적인 흐름도이다. 일 실시예에 따르면, 게이트웨이(140), 저장 장치(150) 및 사용자 단말(160)은 결합 서명 검증에 필요한 데이터 및/또는 정보를 주고받을 수 있다. 여기서, 저장 장치(150)는 상술한 클라우드 시스템 등을 포함할 수 있다.5 is an exemplary flowchart illustrating a process of performing combined signature verification between the
일 실시예에 따르면, 게이트웨이(140)는 결합 데이터(510)를 저장 장치(150)에 제공할 수 있다. 또한, 저장 장치(150)는 수신된 결합 데이터(510)를 저장 및/또는 관리할 수 있다. 여기서, 저장 장치(150)는 하나의 게이트웨이(140)에서 결합 데이터(510)를 수신하고 저장하는 것으로 도시되었으나, 이에 한정되지 않으며, 저장 장치(150)는 복수의 게이트웨이에서 결합 데이터를 수신하고 저장할 수 있다.According to one embodiment, the
일 실시예에 따르면, 데이터를 확인하려는 사용자는 사용자 단말(160)을 이용하여 저장 장치(150)에 저장된 결합 데이터를 추출할 수 있다. 예를 들어, 사용자 단말(160)은 저장 장치(150)로 결합 데이터 요청(530)을 전송할 수 있으며, 이에 따라, 저장 장치(150)는 요청된 결합 데이터(540)를 사용자 단말(160)로 전송할 수 있다. 이 경우, 사용자 단말(160)은 결합 데이터(540)에 대한 결합 서명 검증을 수행할 수 있다(550). 다시 말해, 저장 장치(150)에 제공된 결합 데이터(540)는 결합 서명의 검증에 의해 검증될 수 있다. 예를 들어, 사용자 단말(160)은 다음의 수학식 13을 이용하여 결합 서명 검증을 수행할 수 있다.According to an embodiment, a user who wants to check data can extract combined data stored in the
이와 같은 구성에 의해, 사용자 단말(160)은 복수의 데이터에 대해 하나의 서명 검증만을 이용하여 유효성을 검증할 수 있으며, 이에 따라, 서명 검증에 소요되는 연산, 시간, 자원 등이 효과적으로 감소될 수 있다.With this configuration, the
도 6은 본 발명의 일 실시예에 따른 키 격리 기반의 서명 방법(600)의 예시를 나타내는 흐름도이다. 키 격리 기반의 서명 방법(600)은 프로세서에 의해 수행될 수 있다. 예를 들어, 키 격리 기반의 서명 방법(600)은 컴퓨팅 장치의 적어도 하나의 프로세서에 의해 수행될 수 있다. 다른 예에서, 키 격리 기반의 서명 방법(600)은 시스템(인증 시스템, 헬퍼 시스템, 게이트웨이 등)의 적어도 하나의 프로세서에 의해 수행될 수 있다. 또 다른 예에서, 키 격리 기반의 서명 방법(600)은 컴퓨팅 장치, 시스템 등의 상호작용에 의해 수행될 수 있다.6 is a flow diagram illustrating an example of a key isolation-based
일 실시예에 따르면, 복수의 컴퓨팅 장치의 각각은 공개키 및 개인키를 포함하는 키 쌍을 생성하고, 인증기관의 인증 시스템으로 생성된 키 쌍에 대한 인증서를 요청할 수 있다(S610). 이 경우, 인증 시스템은 복수의 컴퓨팅 장치의 각각에 대응하는 인증서를 생성하고, 생성된 인증서를 복수의 컴퓨팅 장치의 각각에 제공할 수 있다(S620).According to an embodiment, each of the plurality of computing devices may generate a key pair including a public key and a private key, and request a certificate for the generated key pair from an authentication system of a certification authority (S610). In this case, the authentication system may generate certificates corresponding to each of the plurality of computing devices and provide the generated certificates to each of the plurality of computing devices (S620).
일 실시예에 따르면, 인증 시스템에 의해 인증서가 생성된 경우, 복수의 컴퓨팅 장치의 각각은 키 격리를 수행하는 헬퍼 시스템으로부터 생성된 키 격리 값을 수신할 수 있다(S630). 여기서, 인증 시스템은 인증서 정보를 생성하고, 생성된 인증서 정보를 헬퍼 시스템으로 전송할 수 있으며, 헬퍼 시스템은 수신된 인증서 정보를 이용하여 키 격리 값을 생성할 수 있다. 이 경우, 복수의 컴퓨팅 장치의 각각은 수신된 키 격리 값을 이용하여 서명을 위한 서명 키를 생성할 수 있다(S640). 예를 들어, 복수의 컴퓨팅 장치의 각각은 공개 해시 함수 및 수신된 키 격리 값을 이용하여 서명을 위한 서명 키를 생성할 수 있다.According to an embodiment, when a certificate is generated by the authentication system, each of the plurality of computing devices may receive a key isolation value generated from a helper system that performs key isolation (S630). Here, the authentication system may generate certificate information and transmit the generated certificate information to a helper system, and the helper system may generate a key isolation value using the received certificate information. In this case, each of the plurality of computing devices may generate a signing key for signing using the received key isolation value (S640). For example, each of the plurality of computing devices may use the public hash function and the received key isolation value to generate a signing key for signing.
일 실시예에 따르면, 복수의 컴퓨팅 장치의 각각은 공개키, 인증서 및 생성된 서명 키를 포함하는 서명 정보를 이용하여 데이터에 대한 서명을 수행할 수 있다(S650). 또한, 복수의 컴퓨팅 장치의 각각은 서명된 데이터 및 서명을 게이트웨이에 전송할 수 있다. 서명된 데이터 및 서명을 수신한 게이트웨이는 복수의 컴퓨팅 장치의 각각의 공개키 및 인증서를 포함하는 검증 정보를 이용하여, 서명된 데이터 및 서명을 검증할 수 있다. 데이터 및 서명이 검증된 경우, 게이트웨이는 데이터를 결합하여 결합 데이터를 생성하고, 결합 서명 정보를 이용하여 결합 데이터에 대한 결합 서명을 수행할 수 있다. 그리고 나서, 게이트웨이는 생성된 결합 데이터를 저장 장치에 제공할 수 있다.According to an embodiment, each of the plurality of computing devices may sign data using signature information including a public key, a certificate, and a generated signing key (S650). Additionally, each of the plurality of computing devices may transmit signed data and signatures to the gateway. Upon receiving the signed data and signature, the gateway may verify the signed data and signature using verification information including public keys and certificates of each of the plurality of computing devices. When the data and the signature are verified, the gateway may combine the data to generate combined data, and perform combined signature on the combined data using the combined signature information. The gateway may then provide the generated combined data to a storage device.
도 7은 본 발명의 일 실시예에 따른 키 격리 방법(700)의 예시를 나타내는 흐름도이다. 키 격리 방법(700)은 프로세서에 의해 수행될 수 있다. 예를 들어, 키 격리 방법(700)은 컴퓨팅 장치의 적어도 하나의 프로세서에 의해 수행될 수 있다. 다른 예에서, 키 격리 방법(700)은 시스템(인증 시스템, 헬퍼 시스템 등)의 적어도 하나의 프로세서에 의해 수행될 수 있다. 또 다른 예에서, 키 격리 방법(700)은 컴퓨팅 장치, 시스템 등의 상호작용에 의해 수행될 수 있다.7 is a flow diagram illustrating an example of a
일 실시예에 따르면, 복수의 컴퓨팅 장치의 각각은 키 격리를 수행하는 헬퍼 시스템으로부터 생성된 키 격리 값을 수신할 수 있다(S710). 또한, 복수의 컴퓨팅 장치의 각각은 수신된 키 격리 값을 이용하여 서명을 위한 서명 키를 생성할 수 있다(S720). 상술한 바와 같이, 복수의 컴퓨팅 장치의 각각은 공개 해시 함수 및 수신된 키 격리 값을 이용하여 서명을 위한 서명 키를 생성할 수 있다.According to an embodiment, each of the plurality of computing devices may receive a key isolation value generated from a helper system that performs key isolation (S710). Also, each of the plurality of computing devices may generate a signing key for signing using the received key isolation value (S720). As described above, each of the plurality of computing devices may use the public hash function and the received key isolation value to generate a signing key for signing.
일 실시예에 따르면, 키 격리 값은 사전 결정된 시간 간격 마다 정기적으로 업데이트될 수 있다. 즉, 헬퍼 시스템은 사전 결정된 시간 간격 마다 복수의 컴퓨팅 장치의 각각에 대응하는 키 격리 값을 업데이트할 수 있다. 즉, 헬퍼 시스템은 사전 결정된 시간 간격이 경과했는지 여부를 판정할 수 있다(S730). 이 경우, 복수의 컴퓨팅 장치의 각각은 사전 결정된 시간 간격 마다 헬퍼 시스템에 의해 업데이트된 키 격리 값을 수신할 수 있다(S740). 또한, 복수의 컴퓨팅 장치의 각각은 업데이트된 키 격리 값을 이용하여 서명을 위한 서명 키를 생성하거나 업데이트할 수 있다(S750).According to one embodiment, the key isolation value may be regularly updated at predetermined time intervals. That is, the helper system may update the key isolation value corresponding to each of the plurality of computing devices at predetermined time intervals. That is, the helper system may determine whether a predetermined time interval has elapsed (S730). In this case, each of the plurality of computing devices may receive the key isolation value updated by the helper system every predetermined time interval (S740). Also, each of the plurality of computing devices may generate or update a signing key for signing using the updated key isolation value (S750).
도 8은 본 발명의 일 실시예에 따른 컴퓨팅 장치(800)의 내부 구성을 나타내는 블록도이다. 일 실시예에 따르면, 컴퓨팅 장치(800)는 IoT 장치, 센서 등을 포함할 수 있다. 컴퓨팅 장치(800)는 메모리(810), 프로세서(820), 통신 모듈(830) 및 입출력 인터페이스(840)를 포함할 수 있다. 도 8에 도시된 바와 같이, 컴퓨팅 장치(800)는 통신 모듈(830)을 이용하여 네트워크를 통해 정보 및/또는 데이터를 통신할 수 있도록 구성될 수 있다.8 is a block diagram showing an internal configuration of a
메모리(810)는 비-일시적인 임의의 컴퓨터 판독 가능한 기록매체를 포함할 수 있다. 일 실시예에 따르면, 메모리(810)는 RAM(random access memory), ROM(read only memory), 디스크 드라이브, SSD(solid state drive), 플래시 메모리(flash memory) 등과 같은 비소멸성 대용량 저장 장치(permanent mass storage device)를 포함할 수 있다. 다른 예로서, ROM, SSD, 플래시 메모리, 디스크 드라이브 등과 같은 비소멸성 대용량 저장 장치는 메모리와는 구분되는 별도의 영구 저장 장치로서 컴퓨팅 장치(800)에 포함될 수 있다. 또한, 메모리(810)에는 운영체제와 적어도 하나의 프로그램 코드가 저장될 수 있다.
이러한 소프트웨어 구성요소들은 메모리(810)와는 별도의 컴퓨터에서 판독 가능한 기록매체로부터 로딩될 수 있다. 이러한 별도의 컴퓨터에서 판독 가능한 기록매체는 이러한 컴퓨팅 장치(800)에 직접 연결가능한 기록 매체를 포함할 수 있는데, 예를 들어, 플로피 드라이브, 디스크, 테이프, DVD/CD-ROM 드라이브, 메모리 카드 등의 컴퓨터에서 판독 가능한 기록매체를 포함할 수 있다. 다른 예로서, 소프트웨어 구성요소들은 컴퓨터에서 판독 가능한 기록매체가 아닌 통신 모듈(830)을 통해 메모리(810)에 로딩될 수도 있다. 예를 들어, 적어도 하나의 프로그램은 개발자들 또는 어플리케이션의 설치 파일을 배포하는 파일 배포 시스템이 통신 모듈(830)을 통해 제공하는 파일들에 의해 설치되는 컴퓨터 프로그램에 기반하여 메모리(810)에 로딩될 수 있다.These software components may be loaded from a computer-readable recording medium separate from the
프로세서(820)는 기본적인 산술, 로직 및 입출력 연산을 수행함으로써, 컴퓨터 프로그램의 명령을 처리하도록 구성될 수 있다. 명령은 메모리(810) 또는 통신 모듈(830)에 의해 사용자 단말(미도시) 또는 다른 외부 시스템으로 제공될 수 있다.The
통신 모듈(830)은 네트워크를 통해 사용자 단말(미도시)과 컴퓨팅 장치(800)가 서로 통신하기 위한 구성 또는 기능을 제공할 수 있으며, 컴퓨팅 장치(800)가 외부 시스템(일례로 별도의 클라우드 시스템 등)과 통신하기 위한 구성 또는 기능을 제공할 수 있다. 일례로, 컴퓨팅 장치(800)의 프로세서(820)의 제어에 따라 제공되는 제어 신호, 명령, 데이터 등이 통신 모듈(830)과 네트워크를 거쳐 사용자 단말 및/또는 외부 시스템의 통신 모듈을 통해 사용자 단말 및/또는 외부 시스템으로 전송될 수 있다.The
또한, 컴퓨팅 장치(800)의 입출력 인터페이스(840)는 컴퓨팅 장치(800)와 연결되거나 컴퓨팅 장치(800)가 포함할 수 있는 입력 또는 출력을 위한 장치(미도시)와의 인터페이스를 위한 수단일 수 있다. 도 8에서는 입출력 인터페이스(840)가 프로세서(820)와 별도로 구성된 요소로서 도시되었으나, 이에 한정되지 않으며, 입출력 인터페이스(840)가 프로세서(820)에 포함되도록 구성될 수 있다. 컴퓨팅 장치(800)는 도 8의 구성요소들보다 더 많은 구성요소들을 포함할 수 있다. 그러나, 대부분의 종래기술적 구성요소들을 명확하게 도시할 필요성은 없다.Also, the input/
컴퓨팅 장치(800)의 프로세서(820)는 복수의 사용자 단말 및/또는 복수의 외부 시스템으로부터 수신된 정보 및/또는 데이터를 관리, 처리 및/또는 저장하도록 구성될 수 있다.The
상술된 방법 및/또는 다양한 실시예들은, 디지털 전자 회로, 컴퓨터 하드웨어, 펌웨어, 소프트웨어 및/또는 이들의 조합으로 실현될 수 있다. 본 발명의 다양한 실시예들은 데이터 처리 장치, 예를 들어, 프로그래밍 가능한 하나 이상의 프로세서 및/또는 하나 이상의 컴퓨팅 장치에 의해 실행되거나, 컴퓨터 판독 가능한 기록 매체 및/또는 컴퓨터 판독 가능한 기록 매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다. 상술된 컴퓨터 프로그램은 컴파일된 언어 또는 해석된 언어를 포함하여 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램, 모듈, 서브 루틴 등의 임의의 형태로 배포될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨팅 장치, 동일한 네트워크를 통해 연결된 복수의 컴퓨팅 장치 및/또는 복수의 상이한 네트워크를 통해 연결되도록 분산된 복수의 컴퓨팅 장치를 통해 배포될 수 있다.The above-described methods and/or various embodiments may be realized with digital electronic circuits, computer hardware, firmware, software, and/or combinations thereof. Various embodiments of the present invention may be performed by a data processing device, eg, one or more programmable processors and/or one or more computing devices, or as a computer readable recording medium and/or a computer program stored on a computer readable recording medium. can be implemented The above-described computer programs may be written in any form of programming language, including compiled or interpreted languages, and may be distributed in any form, such as a stand-alone program, module, or subroutine. A computer program may be distributed over one computing device, multiple computing devices connected through the same network, and/or distributed over multiple computing devices connected through multiple different networks.
상술된 방법 및/또는 다양한 실시예들은, 입력 데이터를 기초로 동작하거나 출력 데이터를 생성함으로써, 임의의 기능, 함수 등을 처리, 저장 및/또는 관리하는 하나 이상의 컴퓨터 프로그램을 실행하도록 구성된 하나 이상의 프로세서에 의해 수행될 수 있다. 예를 들어, 본 발명의 방법 및/또는 다양한 실시예는 FPGA(Field Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)과 같은 특수 목적 논리 회로에 의해 수행될 수 있으며, 본 발명의 방법 및/또는 실시예들을 수행하기 위한 장치 및/또는 시스템은 FPGA 또는 ASIC와 같은 특수 목적 논리 회로로서 구현될 수 있다.The methods and/or various embodiments described above may be performed by one or more processors configured to execute one or more computer programs that process, store, and/or manage any function, function, or the like, by operating on input data or generating output data. can be performed by For example, the method and/or various embodiments of the present invention may be performed by a special purpose logic circuit such as a Field Programmable Gate Array (FPGA) or an Application Specific Integrated Circuit (ASIC), and the method and/or various embodiments of the present invention may be performed. Apparatus and/or systems for performing the embodiments may be implemented as special purpose logic circuits such as FPGAs or ASICs.
컴퓨터 프로그램을 실행하는 하나 이상의 프로세서는, 범용 목적 또는 특수 목적의 마이크로 프로세서 및/또는 임의의 종류의 디지털 컴퓨팅 장치의 하나 이상의 프로세서를 포함할 수 있다. 프로세서는 읽기 전용 메모리, 랜덤 액세스 메모리의 각각으로부터 명령 및/또는 데이터를 수신하거나, 읽기 전용 메모리와 랜덤 액세스 메모리로부터 명령 및/또는 데이터를 수신할 수 있다. 본 발명에서, 방법 및/또는 실시예들을 수행하는 컴퓨팅 장치의 구성 요소들은 명령어들을 실행하기 위한 하나 이상의 프로세서, 명령어들 및/또는 데이터를 저장하기 위한 하나 이상의 메모리 디바이스를 포함할 수 있다.The one or more processors executing the computer program may include a general purpose or special purpose microprocessor and/or one or more processors of any kind of digital computing device. The processor may receive instructions and/or data from each of the read-only memory and the random access memory, or receive instructions and/or data from the read-only memory and the random access memory. In the present invention, components of a computing device performing methods and/or embodiments may include one or more processors for executing instructions, and one or more memory devices for storing instructions and/or data.
일 실시예에 따르면, 컴퓨팅 장치는 데이터를 저장하기 위한 하나 이상의 대용량 저장 장치와 데이터를 주고받을 수 있다. 예를 들어, 컴퓨팅 장치는 자기 디스크(magnetic disc) 또는 광 디스크(optical disc)로부터 데이터를 수신하거나/수신하고, 자기 디스크 또는 광 디스크로 데이터를 전송할 수 있다. 컴퓨터 프로그램과 연관된 명령어들 및/또는 데이터를 저장하기에 적합한 컴퓨터 판독 가능한 저장 매체는, EPROM(Erasable Programmable Read-Only Memory), EEPROM(Electrically Erasable PROM), 플래시 메모리 장치 등의 반도체 메모리 장치를 포함하는 임의의 형태의 비 휘발성 메모리를 포함할 수 있으나, 이에 한정되지 않는다. 예를 들어, 컴퓨터 판독 가능한 저장 매체는 내부 하드 디스크 또는 이동식 디스크와 같은 자기 디스크, 광 자기 디스크, CD-ROM 및 DVD-ROM 디스크를 포함할 수 있다.According to one embodiment, a computing device may exchange data with one or more mass storage devices for storing data. For example, a computing device may receive/receive data from and transfer data to a magnetic or optical disc. A computer-readable storage medium suitable for storing instructions and/or data associated with a computer program includes semiconductor memory devices such as Erasable Programmable Read-Only Memory (EPROM), Electrically Erasable PROM (EEPROM), and flash memory devices. Any type of non-volatile memory may be included, but is not limited thereto. For example, computer readable storage media may include magnetic disks such as internal hard disks or removable disks, magneto-optical disks, CD-ROM and DVD-ROM disks.
사용자와의 상호 작용을 제공하기 위해, 컴퓨팅 장치는 정보를 사용자에게 제공하거나 디스플레이하기 위한 디스플레이 장치(예를 들어, CRT (Cathode Ray Tube), LCD(Liquid Crystal Display) 등) 및 사용자가 컴퓨팅 장치 상에 입력 및/또는 명령 등을 제공할 수 있는 포인팅 장치(예를 들어, 키보드, 마우스, 트랙볼 등)를 포함할 수 있으나, 이에 한정되지 않는다. 즉, 컴퓨팅 장치는 사용자와의 상호 작용을 제공하기 위한 임의의 다른 종류의 장치들을 더 포함할 수 있다. 예를 들어, 컴퓨팅 장치는 사용자와의 상호 작용을 위해, 시각적 피드백, 청각 피드백 및/또는 촉각 피드백 등을 포함하는 임의의 형태의 감각 피드백을 사용자에게 제공할 수 있다. 이에 대해, 사용자는 시각, 음성, 동작 등의 다양한 제스처를 통해 컴퓨팅 장치로 입력을 제공할 수 있다.To provide interaction with a user, a computing device includes a display device (eg, a cathode ray tube (CRT), a liquid crystal display (LCD), etc.) It may include a pointing device (eg, a keyboard, mouse, trackball, etc.) capable of providing input and/or commands to, but is not limited thereto. That is, the computing device may further include any other type of device for providing interaction with a user. For example, a computing device may provide any form of sensory feedback to a user for interaction with the user, including visual feedback, auditory feedback, and/or tactile feedback. In this regard, the user may provide input to the computing device through various gestures such as visual, voice, and motion.
본 발명에서, 다양한 실시예들은 백엔드 구성 요소(예: 데이터 서버), 미들웨어 구성 요소(예: 애플리케이션 서버) 및/또는 프론트 엔드 구성 요소를 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 이 경우, 구성 요소들은 통신 네트워크와 같은 디지털 데이터 통신의 임의의 형태 또는 매체에 의해 상호 연결될 수 있다. 예를 들어, 통신 네트워크는 LAN(Local Area Network), WAN(Wide Area Network) 등을 포함할 수 있다.In the present invention, various embodiments may be implemented in a computing system including a back-end component (eg, a data server), a middleware component (eg, an application server), and/or a front-end component. In this case, the components may be interconnected by any form or medium of digital data communication, such as a communication network. For example, the communication network may include a local area network (LAN), a wide area network (WAN), and the like.
본 명세서에서 기술된 예시적인 실시예들에 기반한 컴퓨팅 장치는, 사용자 디바이스, 사용자 인터페이스(UI) 디바이스, 사용자 단말 또는 클라이언트 디바이스를 포함하여 사용자와 상호 작용하도록 구성된 하드웨어 및/또는 소프트웨어를 사용하여 구현될 수 있다. 예를 들어, 컴퓨팅 장치는 랩톱(laptop) 컴퓨터와 같은 휴대용 컴퓨팅 장치를 포함할 수 있다. 추가적으로 또는 대안적으로, 컴퓨팅 장치는, PDA(Personal Digital Assistants), 태블릿 PC, 게임 콘솔(game console), 웨어러블 디바이스(wearable device), IoT(internet of things) 디바이스, VR(virtual reality) 디바이스, AR(augmented reality) 디바이스 등을 포함할 수 있으나, 이에 한정되지 않는다. 컴퓨팅 장치는 사용자와 상호 작용하도록 구성된 다른 유형의 장치를 더 포함할 수 있다. 또한, 컴퓨팅 장치는 이동 통신 네트워크 등의 네트워크를 통한 무선 통신에 적합한 휴대용 통신 디바이스(예를 들어, 이동 전화, 스마트 전화, 무선 셀룰러 전화 등) 등을 포함할 수 있다. 컴퓨팅 장치는, 무선 주파수(RF; Radio Frequency), 마이크로파 주파수(MWF; Microwave Frequency) 및/또는 적외선 주파수(IRF; Infrared Ray Frequency)와 같은 무선 통신 기술들 및/또는 프로토콜들을 사용하여 네트워크 서버와 무선으로 통신하도록 구성될 수 있다.A computing device based on the example embodiments described herein may be implemented using hardware and/or software configured to interact with a user, including a user device, user interface (UI) device, user terminal, or client device. can For example, the computing device may include a portable computing device such as a laptop computer. Additionally or alternatively, the computing device may include personal digital assistants (PDAs), tablet PCs, game consoles, wearable devices, internet of things (IoT) devices, virtual reality (VR) devices, AR (augmented reality) device, etc. may be included, but is not limited thereto. A computing device may further include other types of devices configured to interact with a user. Further, the computing device may include a portable communication device (eg, a mobile phone, smart phone, wireless cellular phone, etc.) suitable for wireless communication over a network, such as a mobile communication network. A computing device communicates wirelessly with a network server using wireless communication technologies and/or protocols such as radio frequency (RF), microwave frequency (MWF) and/or infrared ray frequency (IRF). It can be configured to communicate with.
본 발명에서 특정 구조적 및 기능적 세부 사항을 포함하는 다양한 실시예들은 예시적인 것이다. 따라서, 본 발명의 실시예들은 상술된 것으로 한정되지 않으며, 여러 가지 다른 형태로 구현될 수 있다. 또한, 본 발명에서 사용된 용어는 일부 실시예를 설명하기 위한 것이며 실시예를 제한하는 것으로 해석되지 않는다. 예를 들어, 단수형 단어 및 상기는 문맥상 달리 명확하게 나타내지 않는 한 복수형도 포함하는 것으로 해석될 수 있다.The various embodiments herein, including specific structural and functional details, are exemplary. Accordingly, embodiments of the present invention are not limited to those described above and may be implemented in various other forms. In addition, terms used in the present invention are for describing some embodiments and are not construed as limiting the embodiments. For example, the singular and the above may be construed to include the plural as well, unless the context clearly dictates otherwise.
본 발명에서, 달리 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함하여 본 명세서에서 사용되는 모든 용어는 이러한 개념이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 또한, 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 맥락에서의 의미와 일치하는 의미를 갖는 것으로 해석되어야 한다.In the present invention, unless defined otherwise, all terms used in this specification, including technical or scientific terms, have the same meaning as commonly understood by a person of ordinary skill in the art to which such concept belongs. . In addition, terms commonly used, such as terms defined in a dictionary, should be interpreted as having a meaning consistent with the meaning in the context of the related art.
본 명세서에서는 본 발명이 일부 실시예들과 관련하여 설명되었지만, 본 발명의 발명이 속하는 기술분야의 통상의 기술자가 이해할 수 있는 본 발명의 범위를 벗어나지 않는 범위에서 다양한 변형 및 변경이 이루어질 수 있다. 또한, 그러한 변형 및 변경은 본 명세서에 첨부된 특허청구의 범위 내에 속하는 것으로 생각되어야 한다.Although the present invention has been described in relation to some embodiments in this specification, various modifications and changes can be made without departing from the scope of the present invention that can be understood by those skilled in the art. Moreover, such modifications and variations are intended to fall within the scope of the claims appended hereto.
110: 인증기관
120: 헬퍼
130: 컴퓨팅 장치
140: 게이트웨이
150: 클라우드 시스템
160: 사용자 단말110: certification authority
120: helper
130: computing device
140: gateway
150: cloud system
160: user terminal
Claims (7)
복수의 컴퓨팅 장치의 각각에 의해, 공개키 및 개인키를 포함하는 키 쌍을 생성하고, 인증기관(certification authority, CA)의 인증 시스템으로 상기 생성된 키 쌍에 대한 인증서(certificate)를 요청하는 단계;
상기 인증 시스템은 상기 복수의 컴퓨팅 장치의 각각에 대응하는 인증서를 생성하고, 상기 생성된 인증서를 상기 복수의 컴퓨팅 장치의 각각에 제공하는 단계;
상기 인증 시스템에 의해 인증서가 생성된 경우, 상기 복수의 컴퓨팅 장치의 각각은 키 격리를 수행하는 헬퍼(helper) 시스템으로부터 생성된 키 격리 값을 수신하는 단계;
상기 복수의 컴퓨팅 장치의 각각은 상기 수신된 키 격리 값을 이용하여 서명을 위한 서명 키를 생성하는 단계; 및
상기 복수의 컴퓨팅 장치의 각각은 상기 공개키, 상기 인증서 및 상기 생성된 서명 키를 포함하는 서명 정보를 이용하여 데이터에 대한 서명을 수행하는 단계;
를 포함하는 키 격리 기반의 서명 방법.
As a signature method based on key insulation,
Generating a key pair including a public key and a private key by each of a plurality of computing devices, and requesting a certificate for the generated key pair from a certification system of a certification authority (CA). ;
generating, by the authentication system, a certificate corresponding to each of the plurality of computing devices, and providing the generated certificate to each of the plurality of computing devices;
when the certificate is generated by the authentication system, each of the plurality of computing devices receiving a key isolation value generated from a helper system that performs key isolation;
generating, at each of the plurality of computing devices, a signing key for signing using the received key isolation value; and
each of the plurality of computing devices signing data using signature information including the public key, the certificate, and the generated signing key;
Key isolation-based signature method comprising a.
상기 복수의 컴퓨팅 장치의 각각은 사전 결정된 시간 간격 마다 상기 헬퍼 시스템에 의해 업데이트된 키 격리 값을 수신하는 단계; 및
상기 복수의 컴퓨팅 장치의 각각은 상기 업데이트된 키 격리 값을 이용하여 서명을 위한 서명 키를 생성하는 단계;
를 더 포함하는 키 격리 기반의 서명 방법.
According to claim 1,
receiving, at each of the plurality of computing devices, a key isolation value updated by the helper system at predetermined time intervals; and
generating, at each of the plurality of computing devices, a signing key for signing using the updated key isolation value;
Key isolation-based signature method further comprising a.
상기 복수의 컴퓨팅 장치의 각각은 상기 서명된 데이터 및 서명을 게이트웨이(gateway)에 전송하는 단계;
상기 서명된 데이터 및 서명을 수신한 게이트웨이는 상기 복수의 컴퓨팅 장치의 각각의 공개키 및 상기 인증서를 포함하는 검증 정보를 이용하여, 상기 서명된 데이터 및 서명을 검증하는 단계;
상기 데이터 및 서명이 검증된 경우, 상기 게이트웨이는 상기 데이터를 결합하여 결합 데이터를 생성하는 단계;
상기 게이트웨이는 결합 서명 정보를 이용하여 상기 결합 데이터에 대한 결합 서명을 수행하는 단계; 및
상기 게이트웨이는 상기 생성된 결합 데이터 및 결합 서명을 저장 장치에 제공하는 단계;
를 더 포함하는 키 격리 기반의 서명 방법.
According to claim 1,
each of the plurality of computing devices transmitting the signed data and signature to a gateway;
verifying, at the gateway receiving the signed data and signature, the signed data and signature using verification information including public keys of each of the plurality of computing devices and the certificate;
if the data and signature are verified, the gateway combining the data to generate combined data;
performing, by the gateway, a combined signature on the combined data using combined signature information; and
providing, by the gateway, the generated binding data and binding signature to a storage device;
Key isolation-based signature method further comprising a.
상기 저장 장치에 제공된 결합 데이터는 상기 결합 서명의 검증에 의해 검증되는 키 격리 기반의 서명 방법.
According to claim 3,
The combined data provided to the storage device is verified by verifying the combined signature.
상기 인증서가 생성된 경우, 상기 인증 시스템은 상기 인증서와 연관된 인증서 정보를 생성하고, 상기 생성된 인증서 정보를 상기 헬퍼 시스템으로 전송하는 단계; 및
상기 헬퍼 시스템은 상기 수신된 인증서 정보를 이용하여 상기 키 격리 값을 생성하는 단계;
를 더 포함하는 키 격리 기반의 서명 방법.
According to claim 1,
when the certificate is generated, the authentication system generating certificate information associated with the certificate and transmitting the generated certificate information to the helper system; and
generating, by the helper system, the key isolation value using the received certificate information;
Key isolation-based signature method further comprising a.
상기 복수의 컴퓨팅 장치의 각각은 상기 수신된 키 격리 값을 이용하여 서명을 위한 서명 키를 생성하는 단계는,
상기 복수의 컴퓨팅 장치의 각각은 공개 해시 함수(public hash function) 및 상기 수신된 키 격리 값을 이용하여 상기 서명을 위한 서명 키를 생성하는 단계;
를 포함하는 키 격리 기반의 서명 방법.
According to claim 1,
Generating, by each of the plurality of computing devices, a signing key for signing using the received key isolation value,
generating, at each of the plurality of computing devices, a signing key for the signature using a public hash function and the received key isolation value;
Key isolation-based signature method comprising a.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210140070A KR102626868B1 (en) | 2021-10-20 | 2021-10-20 | Signature method and system based on key insulation |
PCT/KR2021/014794 WO2023068402A1 (en) | 2021-10-20 | 2021-10-21 | Key isolation-based signature method and system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020210140070A KR102626868B1 (en) | 2021-10-20 | 2021-10-20 | Signature method and system based on key insulation |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20230056251A true KR20230056251A (en) | 2023-04-27 |
KR102626868B1 KR102626868B1 (en) | 2024-01-17 |
Family
ID=86058205
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210140070A KR102626868B1 (en) | 2021-10-20 | 2021-10-20 | Signature method and system based on key insulation |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR102626868B1 (en) |
WO (1) | WO2023068402A1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101601173B1 (en) * | 2014-12-09 | 2016-03-09 | 고려대학교 산학협력단 | Method and server for revocable identity-based signature |
US20200167833A1 (en) * | 2011-06-30 | 2020-05-28 | Intel Corporation | Method and apparatus for dynamic, real-time ad insertion based on meta-data within a hardware based root of trust |
-
2021
- 2021-10-20 KR KR1020210140070A patent/KR102626868B1/en active IP Right Grant
- 2021-10-21 WO PCT/KR2021/014794 patent/WO2023068402A1/en unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200167833A1 (en) * | 2011-06-30 | 2020-05-28 | Intel Corporation | Method and apparatus for dynamic, real-time ad insertion based on meta-data within a hardware based root of trust |
KR101601173B1 (en) * | 2014-12-09 | 2016-03-09 | 고려대학교 산학협력단 | Method and server for revocable identity-based signature |
Non-Patent Citations (1)
Title |
---|
Alfred J. Menezes 외 2명, Handbook of Applied Cryptography, CRC Press (1996.)* * |
Also Published As
Publication number | Publication date |
---|---|
WO2023068402A1 (en) | 2023-04-27 |
KR102626868B1 (en) | 2024-01-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4120114A1 (en) | Data processing method and apparatus, smart device and storage medium | |
US11489816B2 (en) | Blockchain joining for a limited processing capability device and device access security | |
US9386045B2 (en) | Device communication based on device trustworthiness | |
CN110601849B (en) | Trusted timestamp adding method and device and storage medium | |
US9641340B2 (en) | Certificateless multi-proxy signature method and apparatus | |
CN110933125A (en) | Block chain entity, down-link entity, authentication device and method for performing collaboration | |
EP2961094A1 (en) | System and method for generating a random number | |
JP2017509076A (en) | Method and apparatus for verifying processed data | |
US10447467B2 (en) | Revocable PKI signatures | |
JP6780771B2 (en) | Verification information granting device, verification device, information management system, method and program | |
CN111199037B (en) | Login method, system and device | |
JP6756056B2 (en) | Cryptographic chip by identity verification | |
EP4412152A1 (en) | Authentication method and communication apparatus | |
EP3133791B1 (en) | Double authentication system for electronically signed documents | |
US11943210B2 (en) | System and method for distributed, keyless electronic transactions with authentication | |
WO2019239094A1 (en) | Device, system, and method of generating and handling cryptographic parameters | |
CN110705985B (en) | Method and apparatus for storing information | |
CN116561820B (en) | Trusted data processing method and related device | |
CN111937013B (en) | Electronic device management | |
JP6939313B2 (en) | Distributed authentication system | |
KR102626868B1 (en) | Signature method and system based on key insulation | |
CN115150086A (en) | Identity authentication method and equipment of public key based on biological characteristics of cloud service | |
EP3200388B1 (en) | User permission check system | |
Zhu et al. | A Trusted Internet of Things Access Scheme for Cloud Edge Collaboration | |
KR102456935B1 (en) | Remote terminal tracking management method and system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |