KR20210127063A - Private Key backup Key recovery framework in a distributed service environment - Google Patents

Private Key backup Key recovery framework in a distributed service environment Download PDF

Info

Publication number
KR20210127063A
KR20210127063A KR1020200117422A KR20200117422A KR20210127063A KR 20210127063 A KR20210127063 A KR 20210127063A KR 1020200117422 A KR1020200117422 A KR 1020200117422A KR 20200117422 A KR20200117422 A KR 20200117422A KR 20210127063 A KR20210127063 A KR 20210127063A
Authority
KR
South Korea
Prior art keywords
private key
backup
user node
key
trust group
Prior art date
Application number
KR1020200117422A
Other languages
Korean (ko)
Other versions
KR102400455B1 (en
Inventor
문종섭
윤태연
Original Assignee
고려대학교 세종산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 고려대학교 세종산학협력단 filed Critical 고려대학교 세종산학협력단
Publication of KR20210127063A publication Critical patent/KR20210127063A/en
Application granted granted Critical
Publication of KR102400455B1 publication Critical patent/KR102400455B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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/0825Key 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key 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/083Key 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]

Abstract

According to one embodiment of the present invention, a private key backup and restore method performed in a private key management system includes the steps of: duplicating a private key of a user node encrypted based on information for backing up the private key set in the user node by the number of trust groups according to a backup request of the private key of the user node, backing up the private key by dividing a cloned private key of the user node according to the number of user nodes in each trust group, distributing and storing it in a distributed service environment; and restoring the private key of the user node through the restoration information for restoring the private key stored in the distributed service environment provided as backup administrator's restoration authority for the user node and policy verification are performed in relation to a private key restoration request.

Description

분산 서비스 환경에서의 사용자 개인키 백업 및 복원 프레임워크{Private Key backup Key recovery framework in a distributed service environment}{Private Key backup Key recovery framework in a distributed service environment}

아래의 설명은 분산 서비스 환경에서의 사용자 개인키 백업 및 복원 프레임워크에 관한 것이다.The following description relates to a user private key backup and restoration framework in a distributed service environment.

개인키를 임의의 대칭키로 암호화하고, 암호화된 개인키를 여러 개로 복제하고 복제된 키를 다시 여러 조각으로 나누어, 각 조각마다, 개인키의 사용자가 신뢰하는, 참여자의 공개키로 다시 암호화 하여, 분산 환경에 저장하고 복원한다. 관련된 연구 분야는 아래의 두 가지 방식이 존재한다.The private key is encrypted with an arbitrary symmetric key, the encrypted private key is duplicated into several pieces, and the replicated key is divided into several pieces, and for each piece, the private key is re-encrypted with the public key of the participant trusted by the user, and distributed. Save and restore to environment. There are two types of related research fields as follows.

비특허문헌 1<Wikipedia, "Key escrow", https://en.wikipedia.org/wiki/Key_escrow>을 참고하면, 키 위탁(Key Escrow) 방식은 키를 외부의 신뢰 할 수 있는 기관에 위탁한다. 해킹에 의해 키가 유출될 경우, 각 사용자의 개인키 전체가 한곳에 보관되어 있어서, 블록체인과 같은 분산서비스 환경 전체 사용자의 개인키가 노출될 위험이 존재한다.Referring to Non-Patent Document 1 <Wikipedia, "Key escrow", https://en.wikipedia.org/wiki/Key_escrow>, the key escrow method entrusts the key to an external trusted organization. . If the key is leaked by hacking, the entire private key of each user is stored in one place, so there is a risk of exposing the private key of all users in a distributed service environment such as a block chain.

비특허문헌 2<Shamir, Adi. "How to share a secret." Communications of the ACM 22.11 (1979): 612-613.>를 참고하면, 비밀키 공유 방식(Secret Sharing Scheme)은 개인의 비밀키 하나를 n 로 조각내고, 각 조각을 여러 군데 분산 보관한다. 여러 개의 분산 중에, k 개 이상이 모여야 복원이 가능하다. 각 조각들은 암호화되어 있지 않다. 유한체상의 다항식 계산 복잡도에 의존하는 방식이다. 일정 주기마다, 새로운 조각으로 나누어 다시 저장해야 한다. 이 방법은 블록체인과 같은 분산서비스 환경에 적합하지 않다.Non-Patent Document 2 <Shamir, Adi. "How to share a secret." Referring to Communications of the ACM 22.11 (1979): 612-613.>, in the Secret Sharing Scheme, one individual's private key is fragmented into n, and each fragment is distributed and stored in several places. Among multiple variances, k or more must be gathered for restoration. Each piece is not encrypted. It is a method that relies on the computational complexity of polynomials on a finite field. At regular intervals, it must be divided into new pieces and stored again. This method is not suitable for distributed service environments such as blockchain.

분산 시스템 기반의 서비스 환경에서는 중요한 데이터를 암호화하여 처리한다. 특히, 분산 시스템에서는 비대칭 암호화 방식을 사용하기 때문에 사용자의 개인키 관리가 매우 중요하다. 블록체인과 같이 중앙 키 관리 서버가 없는 분산 서비스환경에서는 사용자가 사망하거나 개인키를 분실한 경우, 개인키 복원이 어렵다. 예를 들어, 개인이 비트코인(Bitcoin)을 저장한 전자 지갑의 개인키를 사용할 수 없는 경우에는 자신의 비트코인에 대한 권리를 행사할 수 없다. 이러한 과제를 해결하기 위하여, 별도의 키 관리 서버가 없는 분산 서비스 환경에서의 사용자 개인키를 백업 및 복원하는 방법 및 시스템을 제공할 수 있다.In a distributed system-based service environment, sensitive data is encrypted and processed. In particular, since the asymmetric encryption method is used in a distributed system, it is very important to manage the user's private key. In a distributed service environment that does not have a central key management server, such as a blockchain, if a user dies or loses the private key, it is difficult to restore the private key. For example, if an individual cannot use the private key of an electronic wallet that stores Bitcoin, he cannot exercise his rights to his or her Bitcoin. In order to solve this problem, it is possible to provide a method and system for backing up and restoring a user's private key in a distributed service environment without a separate key management server.

개인키 관리 시스템에서 수행되는 개인키 백업 및 복원 방법은, 사용자 노드의 개인키 백업 요청에 따라 상기 사용자 노드에 설정된 개인키 백업을 위한 정보에 기초하여 암호화된 사용자 노드의 개인키를 신뢰 그룹 개수만큼 복제하고, 상기 복제된 사용자 노드의 개인키를 각 신뢰 그룹(Gi)의 사용자 노드 수에 따라 분할하여 분산 서비스 환경에 분산 저장하여 개인키를 백업하는 단계; 및 개인키 복원 요청과 관련하여 백업 관리자의 상기 사용자 노드에 대한 복원 권한 및 정책 검증이 수행됨에 따라 제공되는 상기 분산 서비스 환경에 저장된 개인키 복원을 위한 복원 정보를 통해 상기 사용자 노드의 개인키를 복원하는 단계를 포함할 수 있다.In the private key backup and restore method performed in the private key management system, the private key of the user node encrypted based on the information for the private key backup set in the user node according to the private key backup request of the user node by the number of trust groups backing up the private key by cloning, dividing the cloned private key of the user node according to the number of user nodes in each trust group (G i ), and distributing and storing it in a distributed service environment; and restore the private key of the user node through the restoration information for restoring the private key stored in the distributed service environment provided as the backup administrator's restoration authority and policy verification for the user node in relation to the private key restoration request are performed may include the step of

상기 개인키 백업 및 복원 방법은, 상기 사용자 노드로부터 상기 백업 관리자에게 상기 사용자 노드를 포함하는 신뢰 그룹 리스트(TGL)의 정보가 전달되고, 상기 백업 관리자가 상기 사용자 노드의 신뢰 그룹 리스트(TGL)의 정보를 저장하는 단계를 더 포함할 수 있다. In the private key backup and restoration method, information of a trust group list (TGL) including the user node is transmitted from the user node to the backup manager, and the backup manager determines the trust group list (TGL) of the user node. It may further include the step of storing the information.

상기 개인키를 백업하는 단계는, 분산 서비스 환경에 존재하는 복수 개의 노드들 중 사용자 노드에서 개인키 백업을 위해 지정된 신뢰 그룹 리스트(TGL), 백업 관리자, 분산 서비스 환경에 분산 저장할 데이터의 개수를 설정하여 개인키 백업을 준비하고, .상기 사용자 노드의 개인키(Apriv)를 암호화하기 위하여 대칭키(k)를 랜덤하게 생성하고, 상기 생성된 대칭키(k)를 이용하여 개인키(Apriv)를 암호화하여 암호화된 사용자 노드의 개인키(A'priv)를 생성하는 단계를 포함할 수 있다. In the step of backing up the private key, a trust group list (TGL) designated for private key backup in a user node among a plurality of nodes existing in the distributed service environment, a backup manager, and the number of data to be distributed and stored in the distributed service environment are set. to prepare a private key backup, and randomly generate a symmetric key k to encrypt the private key A priv of the user node, and use the generated symmetric key k to encrypt the private key A priv ) to generate an encrypted private key (A' priv ) of the user node by encrypting it.

상기 개인키를 백업하는 단계는, 상기 암호화된 사용자 노드의 개인키(A'priv)를 분할하기 전에, 상기 암호화된 사용자 노드의 개인키(A'priv)를 대상으로 암호화를 위한 정보를 추가하여 제1 추가 데이터(Bi)를 생성하고, 상기 생성된 제1 추가 데이터(Bi)를 신뢰 그룹의 개수만큼 복제하고, 상기 생성된 제 1 추가 데이터(Bi)를 신뢰 그룹 리스트(TGL)에 등록된 신뢰 그룹(Gi)의 각 사용자의 수에 기초하여 분할하는 단계를 포함할 수 있다. Step to back up the private key, 'prior to dividing the (priv, private key (A in the encrypted user node, the private key A)' of the encrypted user nodes by adding the information for encryption targeting priv) First additional data (B i ) is generated, the generated first additional data (B i ) is duplicated by the number of trust groups, and the generated first additional data (B i ) is used as a trust group list (TGL) It may include dividing based on the number of each user of the trust group (G i ) registered in the.

상기 개인키를 백업하는 단계는, 상기 신뢰 그룹(Gi)에 등록된 j번째 사용자의 공개키(

Figure pat00001
)를 이용하여, 암호화된 사용자 노드의 개인키(A'priv)를 신뢰 그룹 리스트(TGL)에 등록된 신뢰 그룹(Gi)의 각 사용자에 대응하여 분할된 분할 블록(Bi,j)을 암호화하여 상기 분할 블록(Bi,j)을 신뢰 그룹 리스트(TGL)의 각 신뢰 그룹(Gi)에 구성된 각 사용자의 공개키로 암호화한 제 1암호 블록(B'i,j)을 생성하고, 상기 생성된 제 1 암호 블록(B'i,j) 복원을 위한 정보를 추가한 제2 암호 블록(B''i,j)을 생성하는 단계를 포함할 수 있다. In the step of backing up the private key, the public key of the j-th user registered in the trust group (G i ) (
Figure pat00001
) by using the encrypted user node's private key (A' priv ) to correspond to each user of the trust group (G i ) registered in the trust group list (TGL), the divided partition block (B i,j ) encryption to generate the divided block (B i, j) a first cryptographic block (B 'i, j) encrypted for each user of the public key comprised in each trust group (G i) of the trusted group list (TGL) a, and It may include a step of generating a first encryption block (B 'i, j) by adding information for restoring the second encrypted block (B''i, j) the created.

상기 개인키를 백업하는 단계는, 각 신뢰 그룹(Gi)의 임의 사용자(TUi,j) 노드의 공개키를 이용하여 대칭키(k)를 암호화한 신뢰 그룹(Gi)의 제1 대칭키 암호값(k'i)을 생성하고, 상기 생성된 제 1 대칭키 암호값(k'i)을 백업 관리자의 공개키(BApub)으로 암호화하여 신뢰 그룹(Gi)의 제2 대칭키 암호값(k''i)을 생성하는 것을 포함하는 이중 암호화 과정을 수행하는 단계를 포함할 수 있다. Step to back up the private key, first symmetric for each trust group (G i) any user (TU i, j) using the public key of the node, the encrypted symmetric key (k) trust group (G i) of the A key encryption value (k' i ) is generated, and the generated first symmetric key encryption value (k' i ) is encrypted with the backup manager's public key (BA pub ), and the second symmetric key of the trust group (G i ) It may include performing a double encryption process including generating an encryption value (k'' i ).

상기 개인키를 백업하는 단계는, 상기 생성된 신뢰 그룹(Gi)의 제2 대칭키 암호값(k''i), 개인키를 백업하는 사용자 노드의 id(Uid), 신뢰 그룹 리스트(TGL)의 각 신뢰 그룹(Gi)의 데이터를 추가하여 복원을 위한 백업 데이터(k backup data)를 구성하고, 상기 구성된 백업 데이터(k backup data)와 제2 암호 블록(B''i,j)을 분산 서비스 환경에 저장하는 단계를 포함할 수 있다. In the step of backing up the private key, the second symmetric key encryption value (k'' i ) of the created trust group (G i ), the id of the user node backing up the private key (U id ), the trust group list ( TGL) by adding the data of each trust group (G i ) to configure the backup data for restoration (k backup data), the configured backup data (k backup data) and the second cipher block (B'' i,j) ) may include the step of storing it in a distributed service environment.

상기 개인키를 복원하는 단계는, 상기 사용자 노드의 개인키 복원을 담당하는 에이전트로부터 백업 관리자에게 상기 사용자 노드의 개인키 복원을 담당하는 에이전트 또는 사용자 노드 개인키의 소유자임을 증명하는 자료를 제출하고, 상기 백업 관리자가 상기 제출된 자료를 통해 복원 대상이 되는 개인키 소유자가 신뢰 그룹 리스트(TGL)에 등록된 노드인지 검토하는 단계를 포함할 수 있다. In the step of restoring the private key, the agent in charge of restoring the private key of the user node submits data to the backup manager to prove that the agent in charge of restoring the private key of the user node or the owner of the user node private key, It may include the step of the backup manager reviewing whether the owner of the private key to be restored through the submitted data is a node registered in the Trust Group List (TGL).

상기 개인키를 복원하는 단계는, 상기 에이전트가 상기 백업 관리자에 등록된 신뢰 그룹 리스트(TGL)에 존재하는 노드일 경우, 인증 증명서를 생성하고, 상기 생성된 인증 증명서를 상기 에이전트의 공개키로 암호화하고 백업 관리자의 개인키로 전자 서명하여 상기 에이전트에게 전달하는 단계를 포함할 수 있다. In the step of restoring the private key, if the agent is a node existing in a trust group list (TGL) registered in the backup manager, generating an authentication certificate, encrypting the generated authentication certificate with the public key of the agent, The method may include digitally signing the backup manager's private key and delivering it to the agent.

상기 개인키를 복원하는 단계는, 상기 에이전트에서 상기 사용자 노드의 개인키 복원을 수행하며, 상기 백업 관리자로부터 전달받은 인증 증명서를 상기 백업 관리자의 공개키를 이용하여 상기 백업 관리자의 전자서명을 확인한 후, 상기 에이전트의 개인키를 이용하여 상기 전달받은 인증 증명서를 복호화함에 따라 분산 서비스 환경으로부터 사용자 노드의 id(Uid)와 신뢰 그룹 리스트(TGL)의 각 신뢰 그룹(Gi)의 데이터를 이용하여 백업 데이터(k backup data)와 제2 암호 블록(B''i,j)를 획득하는 단계를 포함할 수 있다. In the step of restoring the private key, the agent restores the private key of the user node, and after confirming the electronic signature of the backup manager using the public key of the backup manager, the authentication certificate delivered from the backup manager , by using the agent's private key to decrypt the received authentication certificate, the user node's id (U id ) from the distributed service environment and the data of each trust group (G i ) in the trust group list (TGL) It may include obtaining the backup data (k backup data) and the second cipher block (B'' i,j ).

상기 개인키를 복원하는 단계는, 상기 에이전트에서 상기 백업 데이터로부터 사용자 노드의 id(Uid)와 신뢰 그룹 리스트(TGL)의 각 신뢰 그룹(Gi)의 데이터를 이용하여 제2 대칭키 암호값(k''i)이 추출되고, 상기 추출된 제2 대칭키 암호값(k''i)과 인증 증명서를 백업 관리자에게 제출하고, 상기 백업 관리자로부터 상기 인증 증명서가 검토됨에 따라 상기 백업 관리자의 개인키(BApriv)를 이용하여 상기 추출된 제2 대칭키 암호값(k''i)을 복호화하여 제 1 대칭키 암호값(k'i)을 획득하고, 상기 획득된 제 1 대칭키 암호값(k'i)을 에이전트에게 전달하는 단계를 포함할 수 있다. In the restoring of the private key, the agent uses the id (U id ) of the user node from the backup data and the data of each trust group (G i ) of the trust group list (TGL) to a second symmetric key encryption value (k'' i ) is extracted, the extracted second symmetric key encryption value (k'' i ) and the authentication certificate are submitted to the backup manager, and as the authentication certificate is reviewed from the backup manager, the backup manager's Decrypting the extracted second symmetric key encryption value (k'' i ) using the private key (BA priv ) to obtain a first symmetric key encryption value (k' i ), and the obtained first symmetric key encryption value (k' i) passing the value k' i to the agent.

상기 개인키를 복원하는 단계는, 상기 에이전트에서 제2 암호 블록(B''i,j)에 포함된 개인키 복원을 위한 정보와 제 1암호 블록(B'i,j)을 추출하고, 신뢰 그룹 리스트(TGL)에 등록된 각 신뢰 그룹(Gi)의 노드(TUi,j)에게 인증 증명서, 상기 암호 블록 및 제 1 대칭키 암호값(k'i)을 전송하여 복호화를 요청하고, 상기 신뢰 그룹 리스트(TGL)에 등록된 각 신뢰 그룹(Gi)의 노드(TUi,j)로부터 상기 에이전트가 인증되면, 상기 신뢰그룹 리스트(TGL)에 등록된 각 신뢰 그룹(Gi)의 노드의 개인키를 이용하여 상기 제 1암호 블록(B'i,j)을 복호화하여 분할 블록(Bi,j)을 생성하고, 상기 신뢰 그룹(Gi)에서 대칭키(k) 암호화를 위하여 선정된 사용자 노드의 개인키를 이용하여 제 1 대칭키 암호값(k'i)을 복호화하여 대칭키(k)를 생성하고, 상기 에이전트의 공개키를 이용하여 분할 블록(Bi,j)및 대칭키(k)를 암호화하여 상기 에이전트에게 전달하는 단계를 포함할 수 있다. In the step of restoring the private key, the agent extracts the information for restoring the private key included in the second cipher block (B'' i,j ) and the first cipher block (B' i,j ), and trusts it. Request decryption by sending the authentication certificate, the cipher block and the first symmetric key encryption value (k' i ) to the node (TU i,j ) of each trust group (G i ) registered in the group list (TGL), node if from (TU i, j) the agents are authenticated, each trust group (G i), registered in the trust group list (TGL) of each trust group (G i) registered in the trust group list (TGL) Decrypting the first cipher block (B' i,j ) using the private key of the node to generate a split block (B i,j ), and encrypting the symmetric key (k) in the trust group (G i ) The first symmetric key encryption value (k' i ) is decrypted using the selected user node's private key to generate a symmetric key (k), and a partition block (B i,j ) and It may include encrypting the symmetric key (k) and transmitting it to the agent.

상기 개인키를 복원하는 단계는, 상기 에이전트에서 상기 암호화된 분할 블록(Bi,j)및 대칭키(k)를 상기 에이전트의 개인키로 복호화하고, 상기 신뢰 그룹 리스트(TGL)에 등록된 각 신뢰 그룹(Gi)의 노드로부터 분할 블록(Bi,j)을 이용하여 제1 추가 데이터(Bi)를 획득하고, 상기 에이전트가 상기 획득된 제1 추가 데이터(Bi)에 포함된 추가정보 처리 후, 암호화된 사용자 노드의 개인키(A'priv)를 복호화하고, 상기 에이전트에서 상기 암호화된 사용자 노드의 개인키(A'priv)를 대칭키(k)를 이용하여 복호화하여 사용자 노드의 개인키(Apriv)를 복원하는 단계를 포함할 수 있다. In the step of restoring the private key, the agent decrypts the encrypted partition block (B i,j ) and the symmetric key (k) with the agent's private key, and each trust registered in the trust group list (TGL) The first additional data (B i ) is obtained from the node of the group (G i ) by using the partition block (B i,j ), and the agent obtains additional information included in the obtained first additional data (B i ) After processing, the encrypted private key (A' priv ) of the user node is decrypted, and the agent decrypts the encrypted private key (A' priv ) of the user node using the symmetric key (k) to It may include restoring the key (A priv ).

개인키 백업 및 복원을 위한 개인키 관리 시스템은, 사용자 노드의 개인키 백업 요청에 따라 상기 사용자 노드에 설정된 개인키 백업을 위한 정보에 기초하여 암호화된 사용자 노드의 개인키를 신뢰 그룹 개수만큼 복제하고, 상기 복제된 정보를 각 신뢰 그룹의 사용자 노드 수에 따라 분할하여 분산 서비스 환경에 분산 저장하여 개인키를 백업하는 개인키 백업부; 및 개인키 복원 요청과 관련하여 백업 관리자의 상기 사용자 노드에 대한 복원 권한 및 정책 검증이 수행됨에 따라 제공되는 상기 분산 서비스 환경에 저장된 개인키 복원을 위한 복원 정보를 통해 상기 사용자 노드의 개인키를 복원하는 개인키 복원부를 포함할 수 있다. The private key management system for backing up and restoring the private key duplicates the private key of the user node encrypted based on the information for the private key backup set in the user node according to the private key backup request of the user node by the number of trust groups, , a private key backup unit for backing up the private key by dividing the duplicated information according to the number of user nodes in each trust group and distributing and storing the duplicated information in a distributed service environment; and restore the private key of the user node through the restoration information for restoring the private key stored in the distributed service environment provided as the backup administrator's restoration authority and policy verification for the user node in relation to the private key restoration request are performed It may include a private key restoration unit.

현재 블록체인을 보관한 전자지갑을 분실한 경우에는, 전자 자산을 모두 분실한 것(현금을 모두 분실)한 것과 같다. 즉, 금전상의 손해가 온다. 그러나, 발명의 방법을 사용하면, 다시 전자지갑을 설치하고, 개인키를 복원하면, 자신의 전자 자산이 온전히 살아난다.If you lose the electronic wallet that currently stores the block chain, it is the same as losing all electronic assets (lost all cash). In other words, there is a financial loss. However, if the method of the invention is used, if the electronic wallet is installed again and the private key is restored, one's electronic assets are fully revived.

전자지갑을 분실하지 않은 채, 개인키 정보를 기억하지 못하는 경우에도, 안전하게 자신의 개인키를 복구할 수 있다.Even if you do not lose your e-wallet and do not remember the private key information, you can safely recover your private key.

전자지갑을 소유한 소유자가 사망한 경우에도, 법적인 상속자가 사망한 자의 개인키를 복구할 수 있어서, 안전하게 전자 자산을 상속받을 수 있다.Even if the owner of the electronic wallet dies, the legal heir can recover the private key of the deceased, so that the electronic assets can be safely inherited.

도 1은 일 실시예에 따른 개인키 관리 시스템에서 개인키 백업 및 복구를 위한 개괄적인 동작을 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 개인키 관리 시스템의 구성을 설명하기 위한 블록도이다.
도 3은 일 실시예에 따른 개인키 관리 시스템에서 개인키 관리 방법을 설명하기 위한 흐름도이다.
도 4는 일 실시예에 따른 개인키 관리 시스템에서 개인키 백업 동작을 설명하기 위한 도면이다.
도 5 및 도 6은 일 실시예에 따른 개인키 관리 시스템에서 신뢰 그룹 리스트(TGL)를 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 개인키 관리 시스템에서 신뢰 그룹 리스트(TGL)에 구성된 사용자 노드의 명단을 설명하기 위한 예이다.
도 8은 일 실시예에 따른 개인키 관리 시스템에서 제1 추가 데이터(Bi)의 구조를 설명하기 위한 도면이다.
도 9는 일 실시예에 따른 개인키 관리 시스템에서 제1 추가 데이터(Bi)의 분할 구조를 설명하기 위한 도면이다.
도 10 은 일 실시예에 따른 개인키 관리 시스템에서 제1 추가 데이터(Bi)를 암호화하는 과정을 설명하기 위한 도면이다.
도 11은 일 실시예에 따른 개인키 관리 시스템에서 제2 암호 블록(B''i,j)의 구조를 설명하기 위한 도면이다.
도 12는 일 실시예에 따른 개인키 관리 시스템에서 제2 암호 블록(B''i,j)를 암호화하는 과정을 설명하기 위한 도면이다.
도 13은 일 실시예에 따른 개인키 관리 시스템에서 백업 데이터의 구조를 설명하기 위한 도면이다.
도 14는 일 실시예에 따른 개인키 관리 시스템에서 개인키 복원 동작을 설명하기 위한 도면이다.
도 15는 일 실시예에 따른 개인키 관리 시스템에서 개인키 암호화에 사용된 대칭키(k)에 대한 복호화 과정을 설명하기 위한 도면이다.
도 16은 일 실시예에 따른 개인키 관리 시스템에서 분할 블록에 대한 복호화 과정을 설명하기 위한 도면이다.
도 17은 일 실시예에 따른 개인키 관리 시스템에서 제1 추가 데이터(Bi)에 대한 복호화 과정을 설명하기 위한 도면이다.
1 is a diagram for explaining a general operation for private key backup and recovery in a private key management system according to an embodiment.
2 is a block diagram illustrating the configuration of a private key management system according to an embodiment.
3 is a flowchart illustrating a private key management method in a private key management system according to an embodiment.
4 is a diagram for explaining a private key backup operation in a private key management system according to an embodiment.
5 and 6 are diagrams for explaining a trust group list (TGL) in a private key management system according to an embodiment.
7 is an example for explaining a list of user nodes configured in a trust group list (TGL) in a private key management system according to an embodiment.
8 is a diagram for explaining the structure of the first additional data (B i ) in the private key management system according to an embodiment.
FIG. 9 is a diagram for explaining the division structure of the first additional data (B i ) in the private key management system according to an embodiment.
10 is a diagram for explaining a process of encrypting the first additional data (B i ) in the private key management system according to an embodiment.
11 is a diagram for explaining the structure of the second cipher block (B'' i,j ) in the private key management system according to an embodiment.
12 is a view for explaining a process of encrypting the second cipher block (B'' i,j ) in the private key management system according to an embodiment.
13 is a diagram for explaining the structure of backup data in a private key management system according to an embodiment.
14 is a diagram for explaining a private key restoration operation in a private key management system according to an embodiment.
15 is a diagram for explaining a decryption process for a symmetric key (k) used for private key encryption in the private key management system according to an embodiment.
16 is a diagram for explaining a decryption process for a divided block in a private key management system according to an embodiment.
17 is a view for explaining a decryption process for the first additional data (B i ) in the private key management system according to an embodiment.

이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings.

도 1은 일 실시예에 따른 개인키 관리 시스템에서 개인키 백업 및 복구를 위한 개괄적인 동작을 설명하기 위한 도면이다.1 is a diagram for explaining a general operation for private key backup and recovery in a private key management system according to an embodiment.

개인키 관리 시스템(100)은 개인키 백업 및 복원을 수행하기 위한 것으로, 사용자 노드(User A node)(110), 신뢰 그룹 리스트(TGL)(130), 백업 관리자(140) 및 분산 서비스 환경 시스템(150)을 포함할 수 있다. The private key management system 100 is for performing private key backup and restoration, and a user node (User A node) 110, a trust group list (TGL) 130, a backup manager 140, and a distributed service environment system (150).

사용자 노드(User A node)(110)는 자신의 개인키를 분산 서비스 환경(예를 들면, 블록체인 시스템)에 백업하려는 사용자로 개인키 백업을 실행할 수 있다. A user node (User A node) 110 may execute a private key backup as a user who wants to back up his/her private key in a distributed service environment (eg, a block chain system).

신뢰 그룹 리스트(TGL: Trust Group List)(130)는 사용자 노드가 지정한 신뢰그룹의 목록으로, 사용자 노드의 개인키를 복원 권한이 있는 사용자의 목록이다. 신뢰 그룹 리스트(TGL)에 등록된 노드들은 개인키가 백업되는 분산 서비스 환경(예를 들면, 블록체인)에 사용자로 등록되어 있어야 한다. A trust group list (TGL: Trust Group List) 130 is a list of trust groups designated by the user node, and is a list of users authorized to restore the private key of the user node. Nodes registered in the Trust Group List (TGL) must be registered as users in a distributed service environment (eg, blockchain) where private keys are backed up.

백업 관리자(BA: Backup Admin)(140)는 사용자 노드가 지정한 신뢰할 수 있는 제3의 기관인 백업 관리자로, 대칭키 복원에 관여하고 적법한 복원 요청자임을 나타내는 증명서를 발급하는 기관을 의미한다. The backup administrator (BA: Backup Admin) 140 is a backup administrator, which is a trusted third party designated by the user node, and refers to an organization that is involved in symmetric key restoration and issues a certificate indicating that it is a legitimate restoration requester.

분산 서비스 환경 시스템(150)은 사용자 노드(110)가 사용하는 분산 서비스 환경으로 분할된 키 정보를 보관할 수 있다. 도 1에서는 분산 서비스 환경을 제공하는 분산 서비스 환경 시스템의 예로써, 블록체인 서비스 시스템을 나타낸 것이다. 실시예에서는 블록체인 서비스 환경으로 가정하여 설명하기로 한다. The distributed service environment system 150 may store key information divided into the distributed service environment used by the user node 110 . 1 shows a blockchain service system as an example of a distributed service environment system that provides a distributed service environment. In the embodiment, a description will be made on the assumption that a blockchain service environment is used.

도 1을 기준으로 설명하면, 이 구조의 주요 참여자인 노드들(110, 130)은 블록체인 서비스 시스템(150)에 가입되어 있을 수 있다. 여기서, 사용자 노드(실시예에서는 사용자A 노드)(110)와, 신뢰 그룹의 각 사용자는 모두 동일한 블록체인 노드들이다. 실시예에서 사용자 노드(사용자A 노드)(110)는 동시에 신뢰 그룹 리스트(TGL)(130)의 각 개인이 될 수 있다. 실시예에서 블록체인 서비스 시스템에 가입된 사용자 노드(A의 전자지갑, '사용자 노드')의 개인키를 기준으로 설명할 수 있다. 블록체인 서비스 시스템(150)은 인터넷(120)에 연결되어, 특정 블록체인 시스템(예를 들면, 이더리움)에 가입되어 있는 사용자들일 수 있다.Referring to FIG. 1 , the nodes 110 and 130 that are major participants in this structure may be subscribed to the blockchain service system 150 . Here, the user node (user A node in the embodiment) 110 and each user of the trust group are all the same blockchain nodes. In an embodiment, the user node (user A node) 110 may be each individual in the trust group list (TGL) 130 at the same time. In the embodiment, it can be described based on the private key of the user node (A's electronic wallet, 'user node') subscribed to the blockchain service system. The block chain service system 150 may be users connected to the Internet 120 and subscribed to a specific block chain system (eg, Ethereum).

개인키 복원을 원하는 특정 노드는, 신뢰 그룹 리스트(TGL)(130)로부터 복원하고자 하는 개인키에 대한 정보를 취득할 수 있다. 백업 관리자(140)의 보증 하에서, 신뢰 그룹 리스트(TGL)로부터 자신의 비밀키에 대한 정보를 취득할 수 있다. 즉, 백업 관리자는 개인키 복원을 하려는 3자를 보증하는 보증서를 제공하는 역할을 한다. 각 노드는 백업 관리자에 접근할 수 있는 각종 정보(예를 들면, 정적 IP 와 포트번호)와 백업 관리자의 공개키를 가지고 있다. A specific node desiring to restore the private key may acquire information about the private key to be restored from the trust group list (TGL) 130 . Under the guarantee of the backup manager 140 , information on its own private key may be obtained from the trust group list (TGL). In other words, the backup manager serves to provide a certificate of guarantee to the third party who intends to restore the private key. Each node has various information (eg, static IP and port number) that can access the backup manager and the public key of the backup manager.

백업 관리자(140)는 개인키 복원을 요청하는 요청자(노드)에게 보증서를 발급하는 역할을 한다. 특정의 인증과정을 거치면(예를 들면, 온라인 또는 오프라인 상으로, 요청자가 본인임을 증명하거나, 요청자가 법적인 상속자이거나 하는 등) 요청자에게 인증서를 발급할 수 있다. 이때 발급하는, 보증서 내용에는 {개인키 소유자 정보, 요청자의 아이디} 같은 정보를 담고 있다. 사용자 노드(110)로부터 상기 백업 관리자(140)에게 사용자 노드(110)를 포함하는 신뢰 그룹 리스트(TGL)의 정보가 전달될 수 있다. 백업 관리자(140)는 사용자 노드(110)에 대한 신뢰 그룹 리스트(TGL)의 정보를 저장할 수 있다The backup manager 140 serves to issue a certificate to a requestor (node) requesting restoration of the private key. A certificate can be issued to a requestor after a specific authentication process (eg, online or offline, proving that the requestor is a person, or the requestor is a legal heir, etc.). The certificate issued at this time contains information such as {private key owner information, requester's ID}. Information of a trust group list (TGL) including the user node 110 may be transmitted from the user node 110 to the backup manager 140 . The backup manager 140 may store information of the Trust Group List (TGL) for the user node 110 .

이와 같이, 사용자 노드(백업을 원하는 노드와 신뢰자 노드)와 백업 관리자가 기본적으로 가지고 있어야 하는 데이터를 기준으로, 특정 사용자 노드(예를 들면, 여기서 Node A 라 하면)를 기준으로 백업을 하는 동작은 도 4에 나타나 있다.In this way, based on the data that the user node (the node that wants to be backed up and the node of the trustee) and the backup manager basically has, the operation of backing up based on a specific user node (for example, if it is called Node A here) is shown in FIG. 4 .

각 노드는 전자지갑 설치 시에 각 노드의 <개인키, 공개키>, 백업 관리자 정보를 가지고 있어야 한다. 다시 말해서, Data Structure of Node_i= {<개인키, 공개키>, BackupAdmin Info} 이루어진다. 여기서 BackupAdmin Info는 백업 관리자의 정보이다. 여기서 노드의 개인키는 Apriv로 표시하기로 한다. 백업 관리자의 정보에는 백업 관리자의 공개키(BApub)를 포함하고, 통신을 위하여, 백업 관리자 서버의 URL 이나, IP 주소와 포트 정보를 추가로 포함할 수 있다. Each node must have <private key, public key> and backup manager information of each node when installing the electronic wallet. In other words, Data Structure of Node_i= {<private key, public key>, BackupAdmin Info} is done. Here, BackupAdmin Info is the information of the backup administrator. Here, the node's private key is denoted as A priv . The backup manager information includes the backup manager's public key (BA pub ), and for communication, the URL of the backup manager server or IP address and port information may be additionally included.

또한, 노드 자신의 개인키를 블록체인에 백업하기 위하여, 신뢰 그룹 리스트(TGL)의 정보를 저장해야 한다. 이 신뢰 그룹 리스트(TGL) 정보는 백업을 시작할 때, 만들어질 수 있다. 또한, 다른 노드가 자신을 신뢰 그룹의 대상으로 지정하게 되면, 자신의 노드 정보에 자신을 신뢰 그룹의 대상으로 지정한 다른 참여자의 전자지갑 아이디가 저장될 수 있다. 따라서, 필요한 최소한의 데이터 구조는 In addition, in order to back up the node's own private key to the block chain, information on the Trust Group List (TGL) must be stored. This Trust Group List (TGL) information can be created when starting a backup. In addition, when another node designates itself as a target of a trust group, the electronic wallet ID of another participant who has designated itself as a target of the trust group may be stored in its node information. Therefore, the minimum data structure required is

Data Structure of Node_i= { <개인키, 공개키>,Data Structure of Node_i= { <private key, public key>,

BackupAdmin Info,BackupAdmin Info,

{Trust Group List info},{Trust Group List info},

{List of Trustee info } }{List of Trustee info } }

로 구성될 수 있다. 기호에서 { } 기호는 집합(다수)을 나타낸다.can be composed of The { } symbol in the symbol indicates a set (many).

도 6을 참고하면, 신뢰 그룹 리스트(Trust Group List, TGL)는 대상 노드의 id 와 대상 노드의 공개키로 이루어져 있다. 신뢰 그룹 리스트(TGL)에는 적어도 하나 이상의 그룹이 참여한다. 각 그룹은 동일한 개인키를 신뢰 그룹(Gi)별로 다르게 암호화하는 역할을 한다. 즉, 내용을 중복하여 보관한다. 그러나, 대상에 참여하는 각 노드의 공개키로 비밀키를 암호화하기 때문에, 형식상 모두 다른 값들을 갖게 된다. 예를 들면, Uid가 신뢰하는 참여자들에 대해서는 3개의 그룹이 있고, 첫 번째 그룹(G1)은 3명의 참여자로 각각 TU1,1, TU1,2, 그리고 TU1,3, 두 번째 그룹(G2)은 2명의 참여자(TU2,1, TU2,2), 세 번째 그룹에는(G3)는 4명의 참여자(TU3,1, TU3,2, TU3,3, TU3,4)로 되어 있으며, 총 9명으로 구성되어 있다. 여기서 TUx,y 는 x 번째 그룹, y 번째 신뢰자를 의미한다. 일반적으로, n 개의 그룹(n >=1)으로 되어 있으며, i 그룹 내의 참여자는 mi 개로 최소 1명 이상으로, TGL내의 각 그룹마다, 각 그룹마다 구성원의 숫자는 다를 수도 있다.Referring to FIG. 6 , a trust group list (TGL) includes an id of a target node and a public key of the target node. At least one group participates in the trust group list (TGL). Each group plays a role in encrypting the same private key differently for each trust group (G i ). That is, the contents are duplicated and stored. However, since the private key is encrypted with the public key of each node participating in the target, they all have different values in form. For example, there are three groups for the participants that U id trusts, and the first group (G 1 ) is three participants, respectively, TU 1,1 , TU 1,2 , and TU 1,3 , and the second Group (G 2 ) has 2 participants (TU 2,1 , TU 2,2 ), and the third group (G 3 ) has 4 participants (TU 3,1 , TU 3,2 , TU 3,3 , TU 3,4 ), and consists of a total of 9 people. Here, TU x,y means the x-th group and the y-th trustee. In general, there are n groups (n >=1), and the number of participants in the i group is m i at least 1 or more. Each group in the TGL and the number of members in each group may be different.

신뢰 그룹 리스트(TGL)는 수학식 1과 같이 표현될 수 있다. 신뢰 그룹 리스트(TGL)는 도 5와 같이 나타낼 수 있다.The trust group list (TGL) may be expressed as in Equation (1). The trust group list (TGL) may be represented as shown in FIG. 5 .

수학식 1:Equation 1:

Figure pat00002
Figure pat00002

도 7을 참고하면, 신뢰 그룹 리스트(TGL)에 구성된 사용자 노드의 명단을 설명하기 위한 예이다. 신뢰 그룹 리스트(TGL)에 구성된 사용자 노드의 명단(List of Trustee Info)은 대상 노드의 id 또는 대상 노드의 id 와 대상 노드가 지정한 대리인(상속자)들의 집합으로 이루어질 수 있다. 이 명단의 구성은 백업/복원 시스템의 작동 방법에 따라서, 두 방법이 있을 수 있다. 예를 들어, 사용자 A가 신뢰하는 참여자 중 한명인 TU1,1는 첫째, 자신을 신뢰 그룹에 넣은 참여자들의 명단을 가지고 있든지, 둘째, 자신을 참여자 명단과 참여자가 지정한 상속자 명단으로 구성되어 있다. 첫 번째의 경우 TU1,1는 추후 복원 시에 복원 수행자를 알게 된다. 두 번째의 경우 TU1,1는 참여자 명단 및 상속자 리스트(TGL)를 모두 가지고 있어 추후 복원을 요청하는 복원 수행자가 복원 요청을 할 경우 자신의 명단과 비교하여 복원 수행을 수행/거부할 수 있다. 이 경우 예를 들면, Ua의 상속자(또는 추후 복원 요청자)는 자신을 포함한, {Ua, Ua1,..Uax}가 가능하다는 의미이다. 단, 상속의 경우 상속자가 미리 상속의 내용을 파악 유무는 달라질 수 있으므로 백업 시 사용자가 선택적으로 신뢰 그룹 리스트(TGL)에 구성된 사용자 노드의 명단을 구성한다. 신뢰 그룹 리스트(TGL)에 구성된 사용자 노드의 명단을 구성하는 방법은 정책적이므로 실시예에서는 제한되지 않는다.Referring to FIG. 7 , it is an example for describing a list of user nodes configured in the trust group list (TGL). A list of user nodes (List of Trustee Info) configured in the trust group list (TGL) may be composed of the id of the target node or a set of the id of the target node and a set of agents (inheritors) designated by the target node. There can be two ways to organize this list, depending on how the backup/restore system works. For example, TU 1,1 , one of the participants trusted by user A, firstly has a list of participants who put it in the trust group, and secondly, it consists of a list of participants and a list of heirs designated by the participant. . In the first case, TU 1,1 knows the restoration performer during restoration later. In the second case, TU 1,1 has both a list of participants and a list of heirs (TGL), so when a restoration performer who requests restoration in the future makes a restoration request, it can perform/reject restoration by comparing it with his/her own list. In this case, for example, it means that the heirs of U a (or the requestor of restoration later) can have {U a , U a1 ,..U ax } including themselves. However, in the case of inheritance, whether or not the heir knows the contents of inheritance in advance may be different, so the user selectively configures the list of user nodes configured in the trust group list (TGL) when backing up. A method of configuring the list of user nodes configured in the trust group list (TGL) is not limited in the embodiment because it is a policy.

도 2는 일 실시예에 따른 개인키 관리 시스템의 구성을 설명하기 위한 블록도이고, 도 3은 일 실시예에 따른 개인키 관리 시스템에서 개인키 관리 방법을 설명하기 위한 흐름도이다. 2 is a block diagram illustrating the configuration of a private key management system according to an embodiment, and FIG. 3 is a flowchart illustrating a private key management method in the private key management system according to an embodiment.

개인키 관리 시스템(100)의 프로세서는 개인키 백업부(210) 및 개인키 복원부(220)를 포함할 수 있다. 이러한 프로세서의 구성요소들은 개인키 관리 시스템에 저장된 프로그램 코드가 제공하는 제어 명령에 따라 프로세서에 의해 수행되는 서로 다른 기능들(different functions)의 표현들일 수 있다. 프로세서 및 프로세서의 구성요소들은 도 3의 개인키 관리 방법이 포함하는 단계들(310 내지 320)을 수행하도록 개인키 관리 시스템을 제어할 수 있다. 이때, 프로세서 및 프로세서의 구성요소들은 메모리가 포함하는 운영체제의 코드와 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다.The processor of the private key management system 100 may include a private key backup unit 210 and a private key restore unit 220 . These components of the processor may be representations of different functions performed by the processor according to control instructions provided by program code stored in the private key management system. The processor and components of the processor may control the private key management system to perform steps 310 to 320 included in the private key management method of FIG. 3 . In this case, the processor and components of the processor may be implemented to execute instructions according to the code of the operating system and the code of at least one program included in the memory.

프로세서는 개인키 관리 방법을 위한 프로그램의 파일에 저장된 프로그램 코드를 메모리에 로딩할 수 있다. 예를 들면, 개인키 관리 시스템(100)에서 프로그램이 실행되면, 프로세서는 운영체제의 제어에 따라 프로그램의 파일로부터 프로그램 코드를 메모리에 로딩하도록 개인키 관리 시스템(100)을 제어할 수 있다. 이때, 프로세서 및 프로세서가 포함하는 개인키 백업부(210) 및 개인키 복원부(220) 각각은 메모리에 로딩된 프로그램 코드 중 대응하는 부분의 명령을 실행하여 이후 단계들(310 내지 320)을 실행하기 위한 프로세서의 서로 다른 기능적 표현들일 수 있다.The processor may load the program code stored in the file of the program for the private key management method into the memory. For example, when a program is executed in the private key management system 100 , the processor may control the private key management system 100 to load a program code from a file of the program into the memory according to the control of the operating system. At this time, each of the processor and the private key backup unit 210 and the private key restoration unit 220 included in the processor executes the commands of the corresponding portions of the program codes loaded in the memory to execute the subsequent steps 310 to 320 . may be different functional representations of a processor for

단계(310)에서 개인키 백업부(210)는 사용자 노드의 개인키 백업 요청에 따라 사용자 노드에 설정된 개인키 백업을 위한 정보에 기초하여 암호화된 사용자 노드의 개인키를 신뢰 그룹 개수만큼 복제하고, 복제된 정보를 각 신뢰 그룹의 사용자 노드 수에 따라 분할하여 분산 서비스 환경에 분산 저장하여 개인키를 백업할 수 있다. 이때, 사용자 노드는 백업대상 노드일 수 있다. 개인키 백업 동작에 대한 설명을 도 4에서 보다 상세히 설명하기로 한다. In step 310, the private key backup unit 210 copies the private key of the user node encrypted based on the information for the private key backup set in the user node according to the private key backup request of the user node by the number of trust groups, The private key can be backed up by dividing the replicated information according to the number of user nodes in each trust group and storing it in a distributed service environment. In this case, the user node may be a backup target node. A description of the private key backup operation will be described in more detail with reference to FIG. 4 .

도 4를 참고하면, 개인키 백업을 위한 8단계 과정이 수행될 수 있다. 사용자 노드에서 개인키 백업을 준비할 수 있다(410). 사용자 노드의 개인키(Apriv), 사용자 노드에서 랜덤하게 생성된 대칭키(k), n번째 신뢰 그룹(Gi)에 등록된 m번째 사용자의 공개키(

Figure pat00003
), 백업 관리자의 공개키(BApub)를 포함하는 백업에 사용되는 데이터를 사용자 노드에 저장할 수 있다. Referring to FIG. 4 , an eight-step process for backing up the private key may be performed. The user node may prepare a private key backup ( 410 ). The private key (A priv ) of the user node, the symmetric key (k) randomly generated in the user node, and the public key of the mth user registered in the nth trust group (G i )
Figure pat00003
) and the backup manager's public key (BA pub ), data used for backup can be stored in the user node.

사용자 노드로부터 상기 백업 관리자에게 사용자 노드를 포함하는 신뢰 그룹 리스트(TGL)의 정보가 전달될 수 있다. 백업 관리자는 사용자 노드(110)에 대한 신뢰 그룹 리스트(TGL)의 정보를 저장할 수 있다Information of a trust group list (TGL) including the user node may be transmitted from the user node to the backup manager. The backup manager may store information in the Trust Group List (TGL) for the user node 110 .

사용자 노드가 무작위로 암호화 및 복호화 겸용 대칭키(k)를 생성할 수 있다(420). 이때, 대칭키(k)는 사용자 노드의 개인키(Apriv)를 암호화하기 위하여 사용될 수 있다. 여기서 사용되는 암호화 알고리즘은, 표준으로 지정되어 있는 알고리즘을 사용하되, 제한을 두지 않는다. 단, 사용하는 알고리즘에 따라 키의 길이가 달라질 수 있다. 실시예에서도 길이에 제한을 두지 아니한다. A user node may randomly generate a symmetric key k for both encryption and decryption ( 420 ). In this case, the symmetric key k may be used to encrypt the private key A priv of the user node. The encryption algorithm used here uses an algorithm designated as a standard, but is not limited. However, the length of the key may vary depending on the algorithm used. The embodiment does not limit the length.

사용자 노드는 대칭키(k)를 이용하여 사용자 노드의 개인키(Apriv)를 암호화하여 대칭키(k)로 암호화된 사용자 노드의 개인키(A'priv)를 생성할 수 있다(430). The user node may encrypt the private key A priv of the user node using the symmetric key k to generate the private key A' priv of the user node encrypted with the symmetric key k ( 430 ).

사용자 노드는 암호화 알고리즘 별로 필요한 데이터(예를 들면, 에러 보상 코드(Cyclic Redundancy Code), Padding 등)를 추가할 수 있다. 실시예에서는 에러 보상 코드에 대하여 예를 들어 설명하기로 한다. 사용자 노드는 에러 보상 코드(CRC: Cyclic Redundancy Code)를 계산할 수 있다(440). 사용자 노드는 대칭키(k)로 암호화된 사용자 노드의 개인키(A'priv)를 대상으로 에러 보상 코드를 생성할 수 있다. 이때, 에러 보상 코드는 대상 데이터(여기서는 대칭키(k)로 암호화된 사용자 노드의 개인키(A'priv))에 대한 에러 보상 코드인데, 즉, 불특정 이유로 데이터의 일부가 변경되었을 때, 교정해줄 수 있는 값이다. 개인키는 사용하는 알고리즘에 따라 길이가 정해져 있다. 예를 들면, 128 비트 또는 256 비트에 따라 일정한 길이의 에러 보상 코드가 정해져 있을 수 있다. The user node may add necessary data for each encryption algorithm (eg, an error compensation code (Cyclic Redundancy Code), Padding, etc.). In the embodiment, the error compensation code will be described as an example. The user node may calculate an error compensation code (CRC: Cyclic Redundancy Code) ( 440 ). The user node may generate an error compensation code for the private key (A' priv ) of the user node encrypted with the symmetric key (k). At this time, the error compensation code is an error compensation code for the target data (here, the private key (A' priv ) of the user node encrypted with the symmetric key (k)), that is, when a part of the data is changed for an unspecified reason, value that can be The length of the private key is determined according to the algorithm used. For example, an error compensation code of a certain length may be determined according to 128 bits or 256 bits.

도 8을 참고하면, 410 내지 440을 통하여 최종적으로 생성된 정보(제1 추가 데이터(Bi))의 구조를 나타낸 것이다. 다시 말해서, 대칭키(k)로 암호화된 사용자 노드의 개인키(A'priv)(810)와 암호화된 사용자 노드의 개인키에 대한 에러 보상 코드 값(820)이 제1 추가 데이터(Bi)(800)가 될 수 있다. 더욱 상세하게는, 에러 보상 코드를 추가한 길이에 기초하여 패딩값(padding)을 추가함으로써 최종적으로 생성된 제1 추가 데이터(Bi)(800)가 획득될 수 있다. 예를 들면, 대칭키로 암호화된 사용자 노드의 개인키(A'priv)와 에러 보상 코드를 추가한 길이가 각 그룹의 노드 수 mi의 배수가 아닐 경우, 패딩값을 추가하여 제1 추가 데이터(Bi)(800)를 생성할 수 있다. Referring to FIG. 8 , the structure of information (first additional data B i ) finally generated through 410 to 440 is shown. In other words, the error compensation code value 820 for the private key (A' priv ) 810 of the user node encrypted with the symmetric key k and the private key of the encrypted user node is the first additional data (B i ) (800). More specifically, the finally generated first additional data (B i ) 800 may be obtained by adding a padding value based on the length to which the error compensation code is added. For example, if the length of adding the private key (A'priv ) of the user node encrypted with the symmetric key and the error compensation code is not a multiple of the number of nodes in each group m i , a padding value is added to the first additional data ( B i ) 800 can be generated.

사용자 노드는 신뢰 그룹 리스트(TGL)의 병렬 처리를 수행할 수 있다. 사용자 노드는 신뢰 그룹 리스트(TGL)의 그룹 개수(Gi)만큼 제1 추가 데이터(Bi)를 복제할 수 있다. 이때, 제1 추가 데이터(Bi)의 값을 모든 신뢰 그룹 G1, G2,??, Gn에 구성된 각각의 노드의 수에 기초하여 분할(450)할 수 있다. 각 신뢰 그룹 별로 분할한 제1 추가 데이터(Bi)의 구조는 도 9와 같이 나타낼 수 있다. 도 9에서 동일한 제1 추가 데이터(Bi)가 그룹 1(G1) 용으로는 4개로 분할하고, 그룹 2(G2) 용으로 3개로 분할하고, 그룹 3(G3) 용으로 2개로 분할할 수 있다. 그러나, 시스템에 적용시에는, 암복호화에 사용되는 알고리즘은 모두 동일한 것이기 때문에, 신뢰 그룹의 각 노드에 보내는 값의 크기는 항상 같아야 한다. 따라서, 분할된 각각의 제1 추가 데이터(예를 들면, 910의 B1,1,B1,2,B1,3, 그리고 B1,4)에 필요한 길이 만큼을 패딩해야 한다. 예를 들어 각각의 제1 추가 데이터의 각각 100비트(전체는 400비트)이고, 각 전송 데이터의 길이가 256비트이라고 가정하면, 100비트를 제외한 156비트만큼 각각에 특정 값(예를 들면, 0)으로 채운다. 만일 2개의 데이터로 분할된다면(예, 730번의, B3,1, & B3,2) 경우, 전체는 400비트이고, 각각은 200비트씩으로 나누어지므로, 패딩해야 할 정보는 각 56비트가 된다. 이렇게 패딩된 데이터를 분할 블록(Bi,j)이라고 기재하기로 한다. 사용자 노드는 분할 블록(Bi,j)을 암호화(460)할 수 있다. 도 10 및 도 11을 참고하면, i번째 신뢰 그룹(Gi)에 등록된 j번째 사용자의 공개키(

Figure pat00004
)(1020)를 이용하여 분할 블록(Bi,j)을 암호화하여 분할 블록(Bi,j)을 신뢰 그룹 리스트(TGL)의 각 그룹(Gi)에 구성된 각 사용자의 공개키로 암호화한 제 1암호 블록(B'i,j)을 생성할 수 있다. 다시 말해서,
Figure pat00005
이다. 분할 블록(Bi,j)을 이용하여 신뢰 그룹 리스트(TGL)의 각 그룹(Gi)에 구성된 각 사용자의 공개키(
Figure pat00006
)(1020)로 암호화한 제 1암호 블록(B'i,j)(1120)을 생성한 후, 제 1암호 블록(B'i,j)(1120)에 복원을 위한 블록 정보를 추가한 제2 암호 블록(B''i,j)(1110)를 생성할 수 있다. 복원에 필요한 정보는 Uid(1130), Gi(1140), seq(1150)이다. 여기서, Uid(1130)은 사용자 노드의 id이고, Gi(1140)은 그룹의 번호이고, seq(1150)은 그룹 내에서 분할된 블록의 순서 정보를 의미한다.User nodes can perform parallel processing of the Trust Group List (TGL). The user node may duplicate the first additional data (B i ) as much as the number of groups (G i ) of the trust group list (TGL). In this case, the value of the first additional data (B i ) may be divided ( 450 ) based on the number of each node configured in all the trust groups G 1 , G 2 ,??, and G n . The structure of the first additional data B i divided for each trust group may be represented as shown in FIG. 9 . 9, the same first additional data (B i ) is divided into four for group 1 (G 1 ), divided into three for group 2 (G 2 ), and divided into two for group 3 (G 3 ). can be divided However, when applied to the system, since the algorithms used for encryption and decryption are all the same, the size of the value sent to each node of the trust group must always be the same. Accordingly, it is necessary to pad each of the divided first additional data (eg, B 1,1 , B 1,2 , B 1,3 , and B 1,4 of 910 ) by a required length. For example, assuming that each of the first additional data is 100 bits (400 bits in total), and the length of each transmission data is 256 bits, a specific value (for example, 0 ) is filled with If it is divided into two pieces of data (eg, number 730, B 3,1 , & B 3,2 ), the total is 400 bits, and each is divided into 200 bits, so the information to be padded is 56 bits each. . This padded data will be referred to as a partition block (B i,j ). The user node may encrypt 460 the partition block (B i,j ). 10 and 11, the public key of the j-th user registered in the i-th trust group (G i ) (
Figure pat00004
) 1020 to encrypt the partition block (B i,j ) to encrypt the partition block (B i,j ) with the public key of each user configured in each group (G i ) of the trust group list (TGL). One cipher block (B' i,j ) can be created. In other words,
Figure pat00005
am. Divided blocks (B i, j) of the public, each user is configured for each group (G i) of the trusted group list (TGL) using a key (
Figure pat00006
After generating the first cipher block (B' i,j ) 1120 encrypted with ) (1020), the first cipher block (B' i,j ) (1120) with block information for restoration added 2 cipher blocks (B'' i,j ) 1110 may be generated. Information required for restoration is U id (1130), G i (1140), and seq (1150). Here, U id 1130 is an id of a user node, G i 1140 is a group number, and seq 1150 means order information of blocks divided within the group.

도 12를 참고하면, 대칭키(k)(1200)를 분할하지 않고 이중으로 암호화(470)할 수 있다. 각 그룹의 임의의 사용자 노드(TUi,j)(예를 들어, 각 그룹의 첫 번째 사용자(TUi,1))(1210)의 공개키를 이용하여 대칭키(k)(1200)를 암호화한 제 1 대칭키 암호값(k'i)(1220)을 생성할 수 있다. 그리고, 제 1 대칭키 암호값(k'i)(1220)을 백업 관리자의 공개키(BApub)(1230)로 암호화하여 제2 대칭키 암호값(k''i)(1240)을 생성할 수 있다. 모든 신뢰 그룹(Gi)에 대하여 이중 암호화 과정이 수행될 수 있다. 이때, 동일한 대칭키(k)이지만 각 신뢰 그룹(Gi)에 대하여 수행되어 출력된 각 제2 대칭키 암호값(k''i)은 모두 다르다. Referring to FIG. 12 , the symmetric key (k) 1200 may be double encrypted (470) without being divided. A symmetric key (k) 1200 is encrypted using the public key of a random user node (TU i,j ) of each group (eg, the first user (TU i,1 ) of each group) 1210 A first symmetric key encryption value (k' i ) 1220 may be generated. Then, the first symmetric key encryption value (k' i ) 1220 is encrypted with the backup manager's public key (BA pub ) 1230 to generate the second symmetric key encryption value (k'' i ) 1240 . can A double encryption process may be performed for all trust groups (G i ). At this time, although the same symmetric key (k), each second symmetric key encryption value (k'' i ) performed and output for each trust group (G i ) is different.

도 13의 제2 대칭키 암호값(k''i)(1310)을 생성한 후, 사용자 노드의 id(Uid)(1320) 및 모든 신뢰 그룹의 번호(Gi)(1330)을 추가하여 복원 과정에서 사용할 수 있는 백업 데이터(k backup data(1300))을 생성할 수 있다. After generating the second symmetric key cryptographic value (k'' i ) 1310 of FIG. 13, the user node's id (U id ) (1320) and the number (G i ) (1330) of all trust groups are added. Backup data (k backup data 1300) that can be used in the restoration process may be generated.

전자 지갑에서 생성된 복수의 서로 다른 백업 데이터(k backup data)들과 각 암호화 블록에 복원을 위한 블록 정보를 추가한 제2 암호 블록(B''i,j)를 블록체인에 분산 저장할 수 있다(480). A plurality of different backup data (k backup data) generated in the electronic wallet and the second cryptographic block (B'' i,j ) with block information for restoration added to each cryptographic block can be distributed and stored in the block chain. (480).

단계(320)에서 개인키 복원부(220)는 개인키 복원 요청과 관련하여 백업 관리자의 사용자 노드에 대한 복원 권한 및 정책 검증이 수행됨에 따라 제공되는 분산 서비스 환경에 저장된 개인키 복원을 위한 복원 정보를 통해 사용자 노드의 개인키를 복원할 수 있다. 이때, 사용자 노드는 개인키가 백업된 백업요청 노드일 수 있다. 개인키 복원 동작에 대한 설명을 도 14에서 보다 상세히 설명하기로 한다.In step 320, the private key restoration unit 220 restores the private key restoration information stored in the distributed service environment provided as the restoration authority and policy verification for the user node of the backup manager are performed in relation to the private key restoration request. can restore the user node's private key. In this case, the user node may be a backup request node in which the private key is backed up. A description of the private key restoration operation will be described in more detail with reference to FIG. 14 .

도 14를 참고하면, 개인키 복원을 위한 8단계의 과정이 수행될 수 있다. 이때, 복원에 사용되는 데이터는 복원을 위한 블록 정보를 추가한 제2 암호 블록(B''i,j), 제2 대칭키 암호값(k''i), 백업 관리자의 개인키(BApriv), i번째 신뢰 그룹(Gi)에 등록된 j번째 노드의 개인키(

Figure pat00007
)이다. 여기서, 제2 암호 블록(B''i,j)와 제2 대칭키 암호값(k''i)는 분산 서비스 환경(예를 들면, 블록체인)에 저장되어 있고, i번째 신뢰 그룹(Gi)에 등록된 j번째 노드의 개인키(
Figure pat00008
)는 각 사용자 노드에 저장되어 있고, 백업 관리자의 개인키(BApriv)는 백업 관리자에 저장될 수 있다. Referring to FIG. 14 , the process of step 8 for restoring the private key may be performed. At this time, the data used for restoration includes a second cipher block (B'' i,j ) to which block information for restoration is added, a second symmetric key encryption value (k'' i ), and the private key of the backup manager (BA priv). ), the private key of the j-th node registered in the i-th trust group (G i )
Figure pat00007
)am. Here, the second cipher block (B'' i,j ) and the second symmetric key cryptographic value (k'' i ) are stored in a distributed service environment (eg, blockchain), and the i-th trust group (G The private key of the j-th node registered in i ) (
Figure pat00008
) is stored in each user node, and the backup manager's private key (BA priv ) may be stored in the backup manager.

백업 관리자는 에이전트를 증명할 수 있다(1410). 복원 프로세스를 수행하는 에이전트(원래 소유자 또는 법적 대리인)는 백업 관리자에게 에이전트 자신이 개인키의 주인을 대리하는 정당한 에이전트 또는 개인키의 소유자임을 증명하는 필요한 모든 서류를 제출할 수 있다. 이 문서는 온라인 또는 오프라인으로 제출하며, 제출 방법은 정책적으로 결정될 수 있다. 백업 관리자는 문서를 검토하여 에이전트가 복원 대상이 되는 개인키의 소유자가 지정한 신뢰 그룹 리스트(TGL)에 등록된 사용자인지 검토할 수 있다. 이때, 문서는 에이전트가 사용자 노드의 대리인임을 증명하는 인증서(또는 공증서)가 될 수 있다. 또한, 사용자 노드가 자신의 전자 자산을 유산으로 남기기 위하여 신뢰 그룹 리스트(TGL)를 작성한 경우, 문서는 사용자 노드의 사망 진단서가 될 수 있다. 사용자 노드가 사망하였다고 가정하면 에이전트는 각 노드(Ti,j)를 대표하여 사용자 노드의 사망 진단서와 함께 본인 증명 인증서를 백업 관리자에게 제출할 수 있다. 사용자 본인이 개인키를 분실한 경우에, 사망 진단서 대신 신분 증명서를 기반으로 동일한 프로세스가 적용될 수 있다. 이러한 요건은 복원을 위한 정책에 따라 프로세스가 처리될 수 있다. The backup manager may certify the agent ( 1410 ). The agent performing the restore process (original owner or legal representative) may submit to the backup administrator any necessary documentation proving that the agent is a legitimate agent acting on behalf of the owner of the private key or the owner of the private key. This document must be submitted online or offline, and the method of submission may be determined by policy. The backup administrator can review the document to see if the agent is a registered user in the Trust Group List (TGL) specified by the owner of the private key to be restored. In this case, the document may be a certificate (or notarization) proving that the agent is a representative of the user node. In addition, when a user node creates a Trust Group List (TGL) to leave its electronic assets as a legacy, the document may be a death certificate of the user node. Assuming that the user node is dead, the agent can represent each node (T i,j ) and submit the identity certificate along with the death certificate of the user node to the backup manager. If the user himself loses the private key, the same process can be applied based on the identity certificate instead of the death certificate. These requirements can be processed according to the policy for restoration.

에이전트가 제출한 모든 문서가 검증되고, 에이전트가 백업 관리자에 등록해놓은 신뢰 그룹 리스트(TGL)에 등록된 경우, 백업 관리자는 인증 증명서(Vcert)를 생성할 수 있다. 이때, 인증 증명서(Vcert)는 백업 관리자가 적법한 요청자에게 제공하는 인증 증명서로, 복원 요청자가 신뢰 그룹(Gi) 내에 등록된 적법한 요청자임을 증명할 수 있는 증명서 또는 전자 인증서를 의미한다. 인증 증명서(Vcert)는 에이전트의 id와 해당 신뢰 그룹의 모든 개인키 백업을 사용하는 노드의 아이디(Uid)와 신뢰 그룹 리스트(TGL)의 i번째 신뢰 그룹(Gi)에 등록된 j번째 노드(TUi,j)를 나타내는 내용을 포함할 수 있다. 백업 관리자는 인증 증명서(Vcert)를 에이전트의 공개키로 암호화하고, 백업 관리자의 개인키로 전자 서명한 데이터를 에이전트에게 전달할 수 있다. When all documents submitted by the agent are verified and registered in the trust group list (TGL) registered by the agent in the backup manager, the backup manager can generate a certification certificate (Vcert). At this time, the authentication certificate (Vcert) is an authentication certificate provided by the backup manager to a legitimate requester, and means a certificate or an electronic certificate that can prove that the restoration requester is a legitimate requester registered in the trust group (G i ). The authentication certificate (Vcert) is the agent's id, the node's ID (U id ) using the backup of all private keys in the trust group, and the j-th node registered in the i-th trust group (G i ) of the trust group list (TGL). It may include content indicating (TU i,j ). The backup manager may encrypt the authentication certificate (Vcert) with the agent's public key and deliver data digitally signed with the backup manager's private key to the agent.

에이전트는 에이전트의 노드에서 복원 대상인 개인키 복원을 수행할 수 있다. 사용자 노드는 백업 데이터(k backup data)와 복원에 사용되는 데이터는 복원을 위한 블록 정보를 추가한 제2 암호 블록(B''i,j)를 수신할 수 있다(1420). 에이전트는 전달받은 데이터를 백업 관리자의 공개키로 전사 서명이 맞는지 확인한 후에 맞으면, 에이전트의 개인키로 데이터를 복호화할 수 있다. 복호화된 정보는 인증 증명서(Vcert)일 수 있으며, 여기서, 사용자의 아이디(Uid)와 신뢰 그룹 리스트(TGL)의 각 신뢰 그룹(Gi)을 추출하여, 대응되는 분산 서비스 환경에 요청할 수 있다. 에이전트는 분산 서비스 환경으로부터 사용자의 아이디(Uid)와 신뢰 그룹 리스트(TGL)의 각 신뢰 그룹(Gi)을 이용하여 백업 데이터(k backup data)와 제2 암호 블록(B''i,j)를 획득할 수 있다. 제2 암호 블록(B''i,j)에는 사용자의 아이디(Uid), 신뢰 그룹(Gi) 번호, 신뢰 그룹 내에서 분할된 블록의 순서 정보(seq) 및 제 1암호 블록(B'i,j)이 포함될 수 있다. The agent can restore the private key to be restored from the agent's node. The user node may receive the backup data (k backup data) and the second cipher block (B'' i,j ) to which block information for restoration is added to the data used for restoration ( 1420 ). The agent verifies that the transfer signature is correct with the backup manager's public key. If it is, the agent can decrypt the data with the agent's private key. The decrypted information may be a certification certificate (Vcert), where the user ID (U id ) and each trust group (G i ) of the trust group list (TGL) are extracted and requested to the corresponding distributed service environment. . The agent uses the user ID (U id ) and each trust group (G i ) of the trust group list (TGL) from the distributed service environment to obtain backup data (k backup data) and the second cipher block (B'' i,j) ) can be obtained. In the second cipher block (B'' i,j ), the user's ID (U id ), trust group (G i ) number, sequence information (seq) of blocks divided within the trust group, and the first cipher block (B') i,j ) may be included.

백업 관리자는 제2 대칭키 암호값(k''i)을 복호화할 수 있다(1430). 에이전트는 백업 데이터(k backup data)로부터 제2 대칭키 암호값(k''i)을 추출할 수 있다. 이때, 사용자의 아이디(Uid)와 신뢰 그룹 리스트(TGL)의 각 신뢰 그룹(Gi)도 같이 추출해놓을 수 있다. 에이전트는 추출한 제2 대칭키 암호값(k''i)와 인증 증명서(Vcert)를 온라인 또는 오프라인으로 백업 관리자에게 제출할 수 있다. 백업 관리자는 인증 증명서(Vcert)를 검토하여 타당할 경우, 백업 관리자의 개인키(BApriv)를 이용하여 각 제2 대칭키 암호값(k''i)을 복호화하여 제 1 대칭키 암호값(k'i)을 추출할 수 있다. 추출된 제 1 대칭키 암호값(k'i)이 에이전트에게 전달될 수 있다.The backup manager may decrypt the second symmetric key encryption value (k'' i ) ( 1430 ). The agent may extract the second symmetric key encryption value (k'' i ) from the backup data (k backup data). In this case, the user ID (U id ) and each trust group (G i ) of the trust group list (TGL) may also be extracted. The agent may submit the extracted second symmetric key encryption value (k'' i ) and the authentication certificate (Vcert) to the backup manager online or offline. The backup administrator reviews the authentication certificate (Vcert) and, if appropriate , uses the backup administrator's private key (BA priv ) to decrypt each second symmetric key encryption value (k'' i ) to decrypt the first symmetric key encryption value ( k' i ) can be extracted. The extracted first symmetric key encryption value (k' i ) may be delivered to the agent.

에이전트는 제2 암호 블록(B''i,j)에 포함된 사용자의 아이디(Uid)에 해당하는 제 1암호 블록(B'i,j)을 추출할 수 있다. 에이전트에서 제2 암호 블록(B''i,j)에 포함된 사용자 노드의 id(Uid)에 해당하는 제 1암호 블록(B'i,j)을 추출하고, 신뢰 그룹 리스트(TGL)에 등록된 각 신뢰 그룹(Gi)의 노드(TUi,j)에게 인증 증명서, 제 1암호 블록(B'i,j) 및 제 1 대칭키 암호값(k'i)을 전송하여 복호화를 요청할 수 있다(1440). 이때, 에이전트의 id와 인증 증명서(Vcert)도 함께 전송할 수 있다. 또한, 사용자의 아이디(Uid)가 대칭키 복원에 필요한 대상일 경우(즉, 백업 관리자에서 제 1 대칭키 암호값(k'i)를 전달받은 대상), 제 1 대칭키 암호값(k'i)도 같이 전송할 수 있다. The agent can be extracted second encrypted block (B '' i, j) the first ciphertext block (B that correspond to the user's identity (U id) included in the 'i, j). The agent extracts the first cipher block (B' i,j ) corresponding to the id (U id ) of the user node included in the second cipher block (B'' i,j ), and adds it to the trust group list (TGL). Request for decryption by sending the authentication certificate, the first cipher block (B' i,j ), and the first symmetric key encryption value (k' i ) to the node (TU i,j ) of each registered trust group (G i ) may (1440). In this case, the agent's id and authentication certificate (Vcert) may also be transmitted. In addition, when the user's ID (U id ) is a target required for symmetric key restoration (that is, the target that receives the first symmetric key encryption value (k' i ) from the backup manager), the first symmetric key encryption value (k') i ) can also be transmitted.

도 15 및 16을 참고하면, 신뢰 그룹 리스트(TGL)의 i번째 신뢰 그룹(Gi)에 등록된 j번째 사용자(TUi,j)는 에이전트가 인증되면, 노드의 개인키(1620)를 이용하여 제 1암호 블록(B'i,j)(1610)을 복호화하여 분할 블록(Bi,j)(1630)을 생성할 수 있다(1450). 또한, 자신이 대상이 되는 경우, 노드의 개인키(1520)로 제 1 대칭키 암호값(k'i)(1510)를 복호화하여 대칭키(k)(1530)를 생성할 수 있다. 15 and 16, the j-th user (TU i,j ) registered in the i-th trust group (G i ) of the trust group list (TGL) uses the node's private key 1620 when the agent is authenticated Thus, the first cipher block (B' i,j ) 1610 may be decrypted to generate a split block (B i,j ) 1630 ( 1450 ). In addition, when the user is the target, the symmetric key (k) 1530 may be generated by decrypting the first symmetric key encryption value (k′ i ) 1510 with the private key 1520 of the node.

신뢰 그룹 리스트(TGL)의 i번째 신뢰 그룹(Gi)에 등록된 j번째 사용자(TUi,j)는 에이전트의 공개키로 분할 블록(Bi,j)과 대칭키(k)를 에이전트에게 전달할 수 있다. 대칭키(k)를 복원하는 동작은 도 15, 분할 블록(Bi,j)을 복원하는 과정은 도 16에 도시되어 있다. 다시 말해서, 제 1 대칭키 암호값(k'i)을 각 신뢰 그룹(Gi)의 임의의 사용자 노드(TUi,j)(예를 들어 각 신뢰 그룹의 첫 번째 사용자 노드(TUi,1))의 개인키로 복호화하면, 대칭키(k)가 생성되고, 제 1암호 블록(B'i,j)을 신뢰 그룹 리스트(TGL)의 i번째 신뢰 그룹(Gi)에 등록된 j번째 사용자(TUi,j)의 개인키로 복호화하면 분할 블록(Bi,j)이 생성될 수 있다. The j-th user (TU i,j ) registered in the i-th trust group (G i ) of the trust group list (TGL) transmits the partition block (B i,j ) and the symmetric key (k) to the agent as the agent’s public key. can The operation of restoring the symmetric key (k) is illustrated in FIG. 15 and the process of restoring the partition block (B i,j ) is illustrated in FIG. 16 . In other words, the first symmetric key encryption value (k' i ) is assigned to an arbitrary user node (TU i,j ) of each trust group (G i ) (for example, the first user node (TU i,1 ) of each trust group ))), a symmetric key (k) is generated, and the first encryption block (B' i,j ) is the j-th user registered in the i-th trust group (G i ) of the trust group list (TGL). When decrypting with the private key of (TU i,j ), a partition block (B i,j ) can be generated.

각각의 신뢰 그룹 리스트(TGL)의 i번째 신뢰 그룹(Gi)에 등록된 j번째 사용자(TUi,j)는 분할 블록(Bi,j)과 대칭키(k)를 에이전트의 공개키로 암호화하여 전송할 수 있다. 에이전트는 암호화된 분할 블록(Bi,j)와 대칭키(k)를 에이전트의 개인키로 복호화할 수 있다. 에이전트는 모든 신뢰 그룹 리스트(TGL)의 i번째 신뢰 그룹(Gi)에 등록된 j번째 사용자(TUi,j)로부터 전달받은 분할 블록(Bi,j)을 순서대로 조립하면, 추가 데이터(Bi)가 된다(도 17). 이때, 신뢰 그룹 리스트(TGL)에는 적어도 하나 이상의 그룹(Gi)가 존재하므로, 제1 추가 데이터(Bi)도 한 개 이상이 된다. The j-th user (TU i,j ) registered in the i-th trust group (G i ) of each trust group list (TGL) encrypts the partition block (B i,j ) and the symmetric key (k) with the agent’s public key can be transmitted. The agent can decrypt the encrypted partition block (B i,j ) and the symmetric key (k) with the agent's private key. When the agent assembles the partition block (B i,j ) received from the j-th user (TU i,j ) registered in the i-th trust group (G i ) of all trust group lists (TGL) in order, additional data ( B i ) becomes (FIG. 17). At this time, since at least one group (G i ) exists in the trust group list (TGL), the first additional data (B i ) is also one or more.

에이전트는 추가 데이터(Bi)에 들어있는 에러 보상 코드(CRC)와 대칭키(k)로 암호화된 사용자 노드의 개인키(A'priv)의 비트 길이를 알고 있으므로, 패딩을 제거하고, 대칭키(k)로 암호화된 사용자 노드의 개인키(A'priv)의 에러 보상 코드(CRC)를 다시 계산하여 추가 데이터(Bi)에서 추출한 에러 보상 코드(CRC)와 비교하여 이상이 없는지 확인할 수 있다. 이상이 없는 경우, 대칭키(k)로 암호화된 사용자 노드의 개인키(A'priv)를 복호화할 수 있다. 이 과정은 복원을 수행하는 신뢰 그룹(Gi)의 추가 데이터(Bi)에 대해서 수행될 수 있다. Since the agent knows the bit length of the user node's private key (A' priv ) encrypted with the error compensation code (CRC) and the symmetric key (k) contained in the additional data (B i ), the padding is removed and the symmetric key (k) The error compensation code (CRC) of the private key (A' priv ) of the encrypted user node is calculated again and compared with the error compensation code (CRC) extracted from the additional data (B i ). . If there is no abnormality, the private key (A' priv ) of the user node encrypted with the symmetric key (k) can be decrypted. This process may be performed on additional data (B i ) of the trust group (G i ) performing restoration.

에이전트는 암호화된 사용자 노드의 개인키(A'priv)에 대하여 대칭키(k)를 이용한 복호화를 수행함으로써 원래의 개인키(Apriv)를 복원할 수 있다. The agent can restore the original private key (A priv ) by performing decryption using the symmetric key (k) on the encrypted private key (A' priv) of the user node.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The device described above may be implemented as a hardware component, a software component, and/or a combination of the hardware component and the software component. For example, devices and components described in the embodiments may include, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA). , a programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions, may be implemented using one or more general purpose or special purpose computers. The processing device may execute an operating system (OS) and one or more software applications running on the operating system. The processing device may also access, store, manipulate, process, and generate data in response to execution of the software. For convenience of understanding, although one processing device is sometimes described as being used, one of ordinary skill in the art will recognize that the processing device includes a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that can include For example, the processing device may include a plurality of processors or one processor and one controller. Other processing configurations are also possible, such as parallel processors.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may comprise a computer program, code, instructions, or a combination of one or more thereof, which configures a processing device to operate as desired or is independently or collectively processed You can command the device. The software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or device, to be interpreted by or to provide instructions or data to the processing device. may be embodied in The software may be distributed over networked computer systems, and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and carry out program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited embodiments and drawings, various modifications and variations are possible from the above description by those skilled in the art. For example, the described techniques are performed in a different order than the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.

Claims (13)

개인키 관리 시스템에서 수행되는 개인키 백업 및 복원 방법에 있어서,
사용자 노드의 개인키 백업 요청에 따라 상기 사용자 노드에 설정된 개인키 백업을 위한 정보에 기초하여 암호화된 사용자 노드의 개인키를 신뢰 그룹 개수만큼 복제하고, 상기 복제된 정보를 각 신뢰 그룹(Gi)의 사용자 노드 수에 따라 분할하여 분산 서비스 환경에 분산 저장하여 개인키를 백업하는 단계; 및
개인키 복원 요청과 관련하여 백업 관리자의 상기 사용자 노드에 대한 복원 권한 및 정책 검증이 수행됨에 따라 제공되는 상기 분산 서비스 환경에 저장된 개인키 복원을 위한 복원 정보를 통해 상기 사용자 노드의 개인키를 복원하는 단계
를 포함하는 개인키 백업 및 복원 방법.
In the private key backup and restore method performed in the private key management system,
According to the private key backup request of the user node, based on the information for the private key backup set in the user node, the encrypted private key of the user node is copied as much as the number of trust groups, and the duplicated information is copied to each trust group (G i ) backing up the private key by dividing it according to the number of user nodes and storing it distributedly in a distributed service environment; and
Restoring the private key of the user node through the restoration information for restoring the private key stored in the distributed service environment provided as the backup administrator's restoration authority for the user node and policy verification are performed in relation to the private key restoration request step
Private key backup and restore method, including.
제1항에 있어서,
상기 사용자 노드로부터 상기 백업 관리자에게 상기 사용자 노드를 포함하는 신뢰 그룹 리스트(TGL)의 정보가 전달되고, 상기 백업 관리자가 상기 사용자 노드의 신뢰 그룹 리스트(TGL)의 정보를 저장하는 단계
를 더 포함하는 개인키 백업 및 복원 방법.
According to claim 1,
transmitting information of a trust group list (TGL) including the user node from the user node to the backup manager, and storing information of the trust group list (TGL) of the user node by the backup manager
Private key backup and restore method further comprising.
제1항에 있어서,
상기 개인키를 백업하는 단계는,
분산 서비스 환경에 존재하는 복수 개의 노드들 중 사용자 노드에서 개인키 백업을 위해 지정된 신뢰 그룹 리스트(TGL), 백업 관리자, 분산 서비스 환경에 분산 저장할 데이터의 개수를 설정하여 개인키 백업을 준비하고, 상기 사용자 노드의 개인키(Apriv)를 암호화하기 위하여 대칭키(k)를 랜덤하게 생성하고, 상기 생성된 대칭키(k)를 이용하여 개인키(Apriv)를 암호화하여 암호화된 사용자 노드의 개인키(A'priv)를 생성하고, 상기 암호화된 사용자 노드의 개인키(A'priv)를 분할하기 전에, 상기 암호화된 사용자 노드의 개인키(A'priv)를 대상으로 암호화를 위한 정보를 추가하여 제1 추가 데이터(Bi)를 생성하고, 상기 생성된 제1 추가 데이터(Bi)를 신뢰 그룹(Gi)의 개수만큼 복제하고, 상기 생성된 제1 추가 데이터(Bi)를 신뢰 그룹 리스트(TGL)에 등록된 신뢰 그룹(Gi)의 각 사용자의 수에 기초하여 분할하는 단계
를 포함하는 개인키 백업 및 복원 방법.
According to claim 1,
The step of backing up the private key comprises:
Among a plurality of nodes existing in the distributed service environment, the user node prepares the private key backup by setting the trusted group list (TGL) designated for private key backup, the backup manager, and the number of data to be distributed and stored in the distributed service environment, and To encrypt the private key (A priv ) of the user node, a symmetric key (k) is randomly generated, and the private key (A priv ) is encrypted using the generated symmetric key (k) to encrypt the private of the user node. key (a 'generate priv), and the private key (a in the encrypted user node, add the private key information for encryption to the target (a' priv) before dividing the priv), the encrypted user node the first supplemental data (B i) to generate and replicate as many as the number of first additional data (B i) the trust group (G i) the generated and the first additional data (B i) the generated trust Splitting based on the number of each user in the trust group (G i ) registered in the group list (TGL)
Private key backup and restore method, including.
제3항에 있어서,
상기 개인키를 백업하는 단계는,
상기 신뢰 그룹(Gi)에 등록된 j번째 사용자의 공개키(
Figure pat00009
)를 이용하여 암호화된 사용자 노드의 개인키(A'priv)를 신뢰 그룹 리스트(TGL)에 등록된 각 신뢰 그룹(Gi)의 각 사용자에 대응하여 분할된 분할 블록(Bi,j)을 암호화하여 상기 분할 블록(Bi,j)을 신뢰 그룹 리스트(TGL)의 각 신뢰 그룹(Gi)에 구성된 각 사용자의 공개키로 암호화한 제 1 암호 블록(B'i,j)을 생성하고, 상기 생성된 제 1 암호 블록(B'i,j)에 복원을 위한 블록 정보를 추가한 제2 암호 블록(B''i,j)을 생성하는 단계
를 포함하는 개인키 백업 및 복원 방법.
4. The method of claim 3,
The step of backing up the private key comprises:
The public key of the j-th user registered in the trust group (G i ) (
Figure pat00009
) using the encrypted user node's private key (A' priv ) to generate a divided partition block (B i,j ) corresponding to each user of each trust group (G i ) registered in the trust group list (TGL). A first cipher block (B' i,j ) obtained by encrypting the divided block (B i,j ) with the public key of each user configured in each trust group (G i ) of the trust group list (TGL) is generated, Generating a second cipher block (B'' i,j ) in which block information for restoration is added to the generated first cipher block (B' i,j )
Private key backup and restore method, including.
제4항에 있어서,
상기 개인키를 백업하는 단계는,
각 신뢰 그룹(Gi)의 임의의 사용자 노드(TUi,j)의 공개키를 이용하여 대칭키(k)를 암호한 신뢰 그룹(Gi)의 제 1 대칭키 암호값(k'i)을 생성하고, 상기 생성된 제 1 대칭키 암호값(k'i)을 백업 관리자의 공개키(BApub)으로 암호화하여 신뢰 그룹(Gi)의 제2 대칭키 암호값(k''i)을 생성하는 것을 포함하는 이중 암호화 과정을 수행하는 단계
를 포함하는 개인키 백업 및 복원 방법.
5. The method of claim 4,
The step of backing up the private key comprises:
First symmetric key encrypted value for each trust group (G i) any of the user node (TU i, j) symmetric key (G i) trusted group password to (k) using the public key of the (k 'i) generated and the 'second symmetric key encryption value (k in the (i encrypted with the public key (BA pub) in backup manager trust group (G i), i) the generated first symmetric key encrypted value k), the performing a double encryption process including generating
Private key backup and restore method, including.
제5항에 있어서,
상기 개인키를 백업하는 단계는,
상기 생성된 신뢰 그룹(Gi)의 제2 대칭키 암호값(k''i), 개인키를 백업하는 사용자 노드의 id(Uid), 신뢰 그룹 리스트(TGL)의 각 신뢰 그룹(Gi)의 데이터를 추가하여 복원을 위한 백업 데이터(k backup data)를 구성하고, 상기 구성된 백업 데이터(k backup data)와 제2 암호 블록(B''i,j)을 분산 서비스 환경에 저장하는 단계
를 포함하는 개인키 백업 및 복원 방법.
6. The method of claim 5,
The step of backing up the private key comprises:
The second symmetric key encryption value (k'' i ) of the created trust group (G i ), the id (U id ) of the user node backing up the private key, and each trust group (G i ) of the trust group list (TGL) ) to configure the backup data (k backup data) for restoration by adding the data of, and storing the configured backup data (k backup data) and the second cipher block (B'' i,j ) in a distributed service environment
Private key backup and restore method, including.
제1항에 있어서,
상기 개인키를 복원하는 단계는,
상기 사용자 노드의 개인키 복원을 담당하는 에이전트로부터 백업 관리자에게 상기 사용자 노드의 개인키 복원을 담당하는 에이전트 또는 사용자 노드 개인키의 소유자임을 증명하는 자료를 제출하고, 상기 백업 관리자가 상기 제출된 자료를 통해 복원 대상이 되는 개인키 소유자가 신뢰 그룹 리스트(TGL)에 등록된 노드인지 검토하는 단계
를 포함하는 개인키 백업 및 복원 방법.
According to claim 1,
Restoring the private key comprises:
The agent in charge of restoring the private key of the user node submits data to the backup manager to prove that the agent in charge of restoring the private key of the user node or the owner of the user node private key is provided, and the backup manager stores the submitted data The step of reviewing whether the owner of the private key to be restored is a node registered in the Trust Group List (TGL) through
Private key backup and restore method, including.
제7항에 있어서,
상기 개인키를 복원하는 단계는,
상기 에이전트가 상기 백업 관리자에 등록된 신뢰 그룹 리스트(TGL)에 존재하는 노드일 경우, 인증 증명서를 생성하고, 상기 생성된 인증 증명서를 상기 에이전트의 공개키로 암호화하고 백업 관리자의 개인키로 전자 서명하여 상기 에이전트에게 전달하는 단계
를 포함하는 개인키 백업 및 복원 방법.
8. The method of claim 7,
Restoring the private key comprises:
When the agent is a node existing in the Trust Group List (TGL) registered with the backup manager, an authentication certificate is generated, the generated authentication certificate is encrypted with the agent's public key, and digitally signed with the backup manager's private key. Steps to Forward to Agent
Private key backup and restore method, including.
제8항에 있어서,
상기 개인키를 복원하는 단계는,
상기 에이전트에서 상기 사용자 노드의 개인키 복원을 수행하며, 상기 백업 관리자로부터 전달받은 인증 증명서를 상기 백업 관리자의 공개키를 이용하여 상기 백업 관리자의 전자서명을 확인한 후, 상기 에이전트의 개인키를 이용하여 상기 전달받은 인증 증명서를 복호화함에 따라 분산 서비스 환경으로부터 사용자 노드의 id(Uid)와 신뢰 그룹 리스트(TGL)의 각 신뢰 그룹(Gi)의 데이터를 이용하여 백업 데이터(k backup data)와 제2 암호 블록(B''i,j)을 획득하는 단계
를 포함하는 개인키 백업 및 복원 방법.
9. The method of claim 8,
Restoring the private key comprises:
The agent restores the user node's private key, and after confirming the electronic signature of the backup manager using the backup manager's public key for the authentication certificate delivered from the backup manager, the agent's private key is used to restore the user node's private key. and backup data (k backup data) by using the data of each trust group (G i) of the id (U id) and a trust group list (TGL) in the user's node from the distributed services environment as decoding the transmission by a certified certificate claim Step 2 to obtain a cipher block (B'' i,j )
Private key backup and restore method, including.
제9항에 있어서,
상기 개인키를 복원하는 단계는,
상기 에이전트에서 상기 백업 데이터로부터 사용자 노드의 id(Uid)와 신뢰 그룹 리스트(TGL)의 각 신뢰 그룹(Gi)의 데이터를 이용하여 제2 대칭키 암호값(k''i)이 추출되고, 상기 추출된 제2 대칭키 암호값(k''i)과 인증 증명서를 백업 관리자에게 제출하고, 상기 백업 관리자로부터 상기 인증 증명서가 검토됨에 따라 상기 백업 관리자의 개인키(BApriv)를 이용하여 상기 추출된 제2 대칭키 암호값(k''i)을 복호화하여 제 1 대칭키 암호값(k'i)을 획득하고, 상기 획득된 제 1 대칭키 암호값(k'i)을 에이전트에게 전달하는 단계
를 포함하는 개인키 백업 및 복원 방법.
10. The method of claim 9,
Restoring the private key comprises:
In the agent, a second symmetric key encryption value (k'' i ) is extracted from the backup data by using the id of the user node (U id ) and the data of each trust group (G i ) of the trust group list (TGL), , the extracted second symmetric key encryption value (k'' i ) and the authentication certificate are submitted to the backup manager, and as the authentication certificate is reviewed from the backup manager, the backup manager's private key (BA priv ) is used to The extracted second symmetric key encryption value (k'' i ) is decrypted to obtain a first symmetric key encryption value (k' i ), and the obtained first symmetric key encryption value (k' i ) is sent to the agent. step to pass
Private key backup and restore method, including.
제10항에 있어서,
상기 개인키를 복원하는 단계는,
상기 에이전트에서 제2 암호 블록(B''i,j)에 포함된 사용자 노드의 id(Uid)에 해당하는 제 1암호 블록(B'i,j)을 추출하고, 신뢰 그룹 리스트(TGL)에 등록된 각 신뢰 그룹(Gi)의 노드(TUi,j)에게 인증 증명서, 상기 암호 블록 및 제 1 대칭키 암호값(k'i)을 전송하여 복호화를 요청하고, 상기 신뢰 그룹 리스트(TGL)에 등록된 각 신뢰 그룹(Gi)의 노드(TUi,j)로부터 상기 에이전트가 인증되면, 상기 신뢰 그룹 리스트(TGL)에 등록된 각 그룹(Gi)의 노드의 개인키를 이용하여 상기 제 1암호 블록(B'i,j)을 복호화하여 분할 블록(Bi,j)을 생성하고, 상기 신뢰 그룹(Gi)에서 대칭키(k) 암호화를 위하여 선정된 사용자 노드의 개인키를 이용하여 제 1 대칭키 암호값(k'i)을 복호화하여 대칭키(k)를 생성하고, 상기 에이전트의 공개키를 이용하여 분할 블록(Bi,j) 및 대칭키(k)를 암호화하여 상기 에이전트에게 전달하는 단계
를 포함하는 개인키 백업 및 복원 방법.
11. The method of claim 10,
Restoring the private key comprises:
In the agent, the first cipher block (B' i,j ) corresponding to the id (U id ) of the user node included in the second cipher block (B'' i,j ) is extracted, and the trust group list (TGL) Send the authentication certificate, the cipher block, and the first symmetric key encryption value (k' i ) to the node (TU i,j ) of each trust group (G i ) registered in to request decryption, and the trust group list ( When the agent is authenticated from the node (TU i,j ) of each trust group (G i ) registered in TGL), the private key of the node of each group (G i ) registered in the trust group list (TGL) is used to decrypt the first cipher block (B' i,j ) to generate a divided block (B i,j ), and to encrypt the symmetric key (k) in the trust group (G i ) The first symmetric key encryption value (k' i ) is decrypted using the key to generate a symmetric key (k), and a partition block (B i,j ) and a symmetric key (k) are generated using the agent's public key. Encrypted and delivered to the agent
Private key backup and restore method, including.
제11항에 있어서,
상기 개인키를 복원하는 단계는,
상기 에이전트에서 상기 암호화된 분할 블록(Bi,j)및 대칭키(k)를 상기 에이전트의 개인키로 복호화하고, 상기 신뢰 그룹 리스트(TGL)에 등록된 각 신뢰 그룹(Gi)의 노드로부터 분할 블록(Bi,j)을 이용하여 제1 추가 데이터(Bi)를 획득하고,
상기 에이전트가 상기 획득된 제1 추가 데이터(Bi)에 포함된 추가정보처리 후, 계산된 암호화된 사용자 노드의 개인키(A'priv)의 에러 보상 코드를 비교한 후, 암호화된 사용자 노드의 개인키(A'priv)를 복호화하고,
상기 에이전트에서 상기 암호화된 사용자 노드의 개인키(A'priv)를 대칭키(k)를 이용하여 복호화하여 사용자 노드의 개인키(Apriv)를 복원하는 단계
를 포함하는 개인키 백업 및 복원 방법.
12. The method of claim 11,
Restoring the private key comprises:
The agent decrypts the encrypted partition block (B i,j ) and the symmetric key (k) with the agent's private key, and splits from the node of each trust group (G i ) registered in the trust group list (TGL) Obtaining the first additional data (B i ) using the block (B i,j ),
After the agent processes the additional information included in the obtained first additional data (B i ), and compares the error compensation code of the calculated private key (A' priv) of the encrypted user node, Decrypt the private key ( A'priv),
Decrypting the encrypted private key (A' priv ) of the user node by the agent using a symmetric key (k) to restore the private key (A priv) of the user node
Private key backup and restore method, including.
개인키 백업 및 복원을 위한 개인키 관리 시스템에 있어서,
사용자 노드의 개인키 백업 요청에 따라 상기 사용자 노드에 설정된 개인키 백업을 위한 정보에 기초하여 암호화된 사용자 노드의 개인키를 신뢰 그룹 개수만큼 복제하고, 상기 복제된 사용자 노드의 개인키를 각 신뢰 그룹(Gi)의 사용자 노드 수에 따라 분할하여 분산 서비스 환경에 분산 저장하여 개인키를 백업하는 개인키 백업부; 및
개인키 복원 요청과 관련하여 백업 관리자의 상기 사용자 노드에 대한 복원 권한 및 정책 검증이 수행됨에 따라 제공되는 상기 분산 서비스 환경에 저장된 개인키 복원을 위한 복원 정보를 통해 상기 사용자 노드의 개인키를 복원하는 개인키 복원부
를 포함하는 개인키 관리 시스템.
In the private key management system for private key backup and restoration,
According to the private key backup request of the user node, the private key of the user node encrypted based on the information for backing up the private key set in the user node is copied as many as the number of trust groups, and the private key of the cloned user node is copied to each trust group a private key backup unit that backs up the private key by dividing it according to the number of user nodes of (G i ) and storing it distributedly in a distributed service environment; and
Restoring the private key of the user node through the restoration information for restoring the private key stored in the distributed service environment provided as the backup administrator's restoration authority for the user node and policy verification are performed in relation to the private key restoration request private key recovery unit
A private key management system comprising a.
KR1020200117422A 2020-04-13 2020-09-14 Private Key backup Key recovery framework in a distributed service environment KR102400455B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020200044403 2020-04-13
KR20200044403 2020-04-13

Publications (2)

Publication Number Publication Date
KR20210127063A true KR20210127063A (en) 2021-10-21
KR102400455B1 KR102400455B1 (en) 2022-05-20

Family

ID=78268942

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200117422A KR102400455B1 (en) 2020-04-13 2020-09-14 Private Key backup Key recovery framework in a distributed service environment

Country Status (1)

Country Link
KR (1) KR102400455B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240016732A (en) * 2022-07-29 2024-02-06 주식회사 스탬퍼 Electronic wallet management method of blockchain network for cryptocurrency transaction security enhancement and system thereof

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101994455B1 (en) * 2018-07-27 2019-06-28 박기업 distributed network system operating a group for the nodes included in the system
KR20190075772A (en) * 2017-12-21 2019-07-01 바스아이디 랩 재팬 컴퍼니 리미티드 AuthenticationSystem Using Block Chain Through Combination of Data after Separating Personal Information
KR20190124552A (en) * 2018-04-26 2019-11-05 한국조폐공사 Method for storing and restroring block chain-based key and user terminal using the same
KR20200000161A (en) * 2018-06-22 2020-01-02 블록체인보안협동조합 Personal information protection system using block chain

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190075772A (en) * 2017-12-21 2019-07-01 바스아이디 랩 재팬 컴퍼니 리미티드 AuthenticationSystem Using Block Chain Through Combination of Data after Separating Personal Information
KR20190124552A (en) * 2018-04-26 2019-11-05 한국조폐공사 Method for storing and restroring block chain-based key and user terminal using the same
KR20200000161A (en) * 2018-06-22 2020-01-02 블록체인보안협동조합 Personal information protection system using block chain
KR101994455B1 (en) * 2018-07-27 2019-06-28 박기업 distributed network system operating a group for the nodes included in the system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240016732A (en) * 2022-07-29 2024-02-06 주식회사 스탬퍼 Electronic wallet management method of blockchain network for cryptocurrency transaction security enhancement and system thereof

Also Published As

Publication number Publication date
KR102400455B1 (en) 2022-05-20

Similar Documents

Publication Publication Date Title
EP3654578B1 (en) Methods and systems for cryptographic private key management for secure multiparty storage and transfer of information
CN106664202B (en) Method, system and computer readable medium for providing encryption on multiple devices
Ali et al. SeDaSC: secure data sharing in clouds
JP6753403B2 (en) Information processing equipment, authentication systems, authentication methods, and computer programs
US20160241391A1 (en) Computerized system and method of secret key management
US20110276490A1 (en) Security service level agreements with publicly verifiable proofs of compliance
US11387999B2 (en) Access to secured information
JP6040313B2 (en) Multi-party secure authentication system, authentication server, multi-party secure authentication method and program
Mukundan et al. Efficient integrity verification of replicated data in cloud using homomorphic encryption
US11075753B2 (en) System and method for cryptographic key fragments management
CN111193703A (en) Communication apparatus and communication method used in distributed network
US11893577B2 (en) Cryptographic key storage system and method
JP6401875B2 (en) Data processing system
KR102400455B1 (en) Private Key backup Key recovery framework in a distributed service environment
CN112003690B (en) Password service system, method and device
CN113326522A (en) Data processing method, device, equipment and computer storage medium
CN111314059B (en) Processing method, device and equipment for account authority proxy and readable storage medium
KR20210020699A (en) Method for performing backup and recovery private key in consortium blockchain network, and device using them
Bharat et al. A Secured and Authorized Data Deduplication in Hybrid Cloud with Public Auditing
Ghutugade et al. Privacy preserving auditing for shared data in cloud
CN112673591B (en) System and method for providing authorized third parties with secure key escrow access to a secret public ledger
KR102199464B1 (en) Method of authentication among nodes participating in consortium blockchain
Kamboj et al. DEDUP: Deduplication system for encrypted data in cloud
US20230327859A1 (en) System and method for distributed custody access token management
Manasa et al. An evidence multi-copy dynamic data possession in multi cloud computing 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