KR102291579B1 - System and method for public key infrastructure based on block chain - Google Patents

System and method for public key infrastructure based on block chain Download PDF

Info

Publication number
KR102291579B1
KR102291579B1 KR1020190110855A KR20190110855A KR102291579B1 KR 102291579 B1 KR102291579 B1 KR 102291579B1 KR 1020190110855 A KR1020190110855 A KR 1020190110855A KR 20190110855 A KR20190110855 A KR 20190110855A KR 102291579 B1 KR102291579 B1 KR 102291579B1
Authority
KR
South Korea
Prior art keywords
issuing
node
certificate
user
nodes
Prior art date
Application number
KR1020190110855A
Other languages
Korean (ko)
Other versions
KR20210029517A (en
Inventor
황성운
한경현
Original Assignee
홍익대학교세종캠퍼스산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 홍익대학교세종캠퍼스산학협력단 filed Critical 홍익대학교세종캠퍼스산학협력단
Priority to KR1020190110855A priority Critical patent/KR102291579B1/en
Publication of KR20210029517A publication Critical patent/KR20210029517A/en
Application granted granted Critical
Publication of KR102291579B1 publication Critical patent/KR102291579B1/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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3263Cryptographic 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
    • H04L9/3268Cryptographic 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 using certificate validation, registration, distribution or revocation, e.g. certificate revocation list [CRL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic 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 using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38

Abstract

본 발명은 블록체인을 기반한 공개키 기반 구조 시스템 및 방법에 관한 것으로, 블록체인을 기반한 공개키 기반 구조 시스템의 방법은 발급 노드 별로 다른 발급 노드와 또 다른 발급 노드와 연계하여 각각의 발급자 인증서를 생성하고, 발급 노드에서 사용자 노드로부터 인증서 발급을 요청 받으면 다른 발급 노드와 또 다른 발급 노드와 연계하여 사용자 인증서를 생성하고, 발급 노드들 간의 합의를 통해서 발급 노드 별로 발급자 인증서 및 사용자 인증서를 블록 체인에 저장한다.The present invention relates to a public key infrastructure system and method based on a block chain, and the method of the public key infrastructure system based on the block chain generates each issuer certificate in connection with another issuing node and another issuing node for each issuing node. When the issuing node receives a request to issue a certificate from a user node, it creates a user certificate in conjunction with another issuing node and another issuing node, and stores the issuer certificate and user certificate in the block chain through agreement between the issuing nodes. do.

Description

블록체인에 기반한 공개키 기반 구조 시스템 및 방법{SYSTEM AND METHOD FOR PUBLIC KEY INFRASTRUCTURE BASED ON BLOCK CHAIN}A public key-based structure system and method based on blockchain

이하의 일 실시 예들은 공개키 기반 구조(PKI; Public Key Infrastructure) 시스템에 관한 것으로, 공개 키 기반 구조에서 인증 기관(TTP; Trusted Third Party)이 불필요한 공개키 기반 구조 시스템 및 방법에 관한 것이다.The following embodiments relate to a public key infrastructure (PKI) system, and to a public key infrastructure system and method in which a trusted third party (TTP) is unnecessary in a public key infrastructure.

인터넷 상에서 개인 또는 기업이 신뢰성 있게 데이터를 제공하기 위해 인증서를 사용한다. 이 인증서는 모든 사람이 신뢰할 수 있는 인증 기관(TTP; Trusted Third Party)에 의해 발급된다. 사용자는 각 인증서에 포함된 인증 기관의 디지털 서명을 검증함으로써 새로 수신되는 인증서를 신뢰하고 이용하게 된다. 일반적으로 모든 컴퓨터에는 주요 TTP의 인증서가 신뢰 목록에 추가되어 있어서, 이를 의식하지 않고 이용할 수 있다.Certificates are used by individuals or businesses on the Internet to reliably provide data. This certificate is issued by a Certificate Authority (TTP) that is trusted by everyone. The user trusts and uses the newly received certificate by verifying the digital signature of the certification authority included in each certificate. In general, every computer has a certificate of the main TTP added to the trust list, so you can use it without being aware of it.

하지만 반대로, TTP가 신뢰를 받지 못 하면, 해당 TTP가 발급한 모든 인증서를 신뢰할 수 없게 된다. 타 국가나 신설 등 신뢰 목록에 없는 TTP가 발급한 인증서는 디지털 서명을 검증할 방법이 없기 때문에, 송신자의 인증서가 맞는지 확신할 수 없다. 이 인증서를 사용하기 위해서는 사용자가 근거 없이 맹신하는 수밖에 없는 신뢰 문제가 발생한다.Conversely, if a TTP is not trusted, all certificates issued by that TTP will not be trusted. Since there is no way to verify the digital signature of a certificate issued by a TTP that is not on the trust list such as another country or a new establishment, it is not possible to be sure that the sender's certificate is correct. In order to use this certificate, there is a trust problem in which the user has no choice but to blindly trust.

본 발명은 상기와 같은 종래 기술의 문제점을 해결하고자 도출된 것으로서, TTP 없는 블록체인 기반 PKI 시스템 및 방법을 제공하는 것을 목적으로 한다.The present invention was derived to solve the problems of the prior art as described above, and an object of the present invention is to provide a TTP-free blockchain-based PKI system and method.

상기와 같은 목적을 달성하기 위하여, 본 발명의 일 실시 예에 따른 블록체인을 기반한 공개키 기반 구조 시스템의 방법은, 발급 노드 별로 각각의 발급자 인증서를 생성하는 단계; 발급 노드에서 사용자 노드로부터 인증서 발급을 요청 받으면, 사용자 인증서를 생성하는 단계; 및 상기 발급 노드 별로 상기 발급자 인증서 및 상기 사용자 인증서를 블록 체인에 저장하는 단계를 포함한다.In order to achieve the above object, a method of a public key infrastructure system based on a block chain according to an embodiment of the present invention includes: generating each issuer certificate for each issuing node; generating a user certificate when the issuing node receives a request for issuing a certificate from the user node; and storing the issuer certificate and the user certificate in a block chain for each issuing node.

이때, 상기 발급자 인증서는, 상기 발급 노드의 식별정보, 상기 발급 노드의 공개키, 모든 발급 노드들의 정보, 상기 모든 발급 노드들의 서명을 포함할 수 있다.In this case, the issuer certificate may include identification information of the issue node, a public key of the issue node, information on all issue nodes, and signatures of all issue nodes.

이때, 상기 사용자 인증서는, 상기 사용자 노드의 식별정보, 상기 사용자 노드의 공개키, 모든 발급 노드들의 정보, 상기 모든 발급 노드들의 서명을 포함할 수 있다.In this case, the user certificate may include identification information of the user node, a public key of the user node, information of all issuing nodes, and signatures of all issuing nodes.

이때, 상기 발급 노드 별로 각각의 발급자 인증서를 생성하는 단계는, 상기 발급 노드들 각각에서 발급 노드의 공개키에 자체 서명하여 상기 발급 노드의 자체 서명 인증서를 생성하여 다른 발급 노드들로 송신하는 단계; 상기 다른 발급 노드들 각각에서 상기 발급 노드의 자체 서명 인증서를 수신하면, 상기 발급 노드의 공개키와 상기 발급 노드의 서명을 검증하고, 검증에 성공하면 상기 발급 노드의 자체 서명 인증서와 상기 다른 발급 노드의 서명을 포함하는 상기 다른 발급 노드로 서명된 상기 발급 노드의 임시 인증서를 생성하여 또 다른 발급 노드들로 송신하는 단계; 상기 또 다른 발급 노드들 각각에서 상기 다른 발급 노드로 서명된 상기 발급 노드의 임시 인증서를 수신하면, 상기 다른 발급 노드의 서명을 검증하고, 검증 결과를 상기 발급 노드의 공개키로 암호화하여 상기 다른 발급 노드로 송신하는 단계; 상기 다른 발급 노드들 각각에서 상기 다른 발급 노드로 서명된 상기 발급 노드의 임시 인증서와 상기 또 다른 발급 노드들로부터 수신한 검증 결과를 상기 발급 노드로 송신하는 단계; 및 상기 발급 노드들 각각에서 상기 다른 발급 노드들의 서명을 모아서 각각의 상기 발급자 인증서를 생성하는 단계를 포함할 수 있다.In this case, the generating of each issuer certificate for each issuing node may include: generating a self-signed certificate of the issuing node by self-signing the public key of the issuing node in each of the issuing nodes, and transmitting the self-signed certificate to other issuing nodes; Upon receiving the self-signed certificate of the issuing node from each of the other issuing nodes, the public key of the issuing node and the signature of the issuing node are verified. If verification is successful, the self-signed certificate of the issuing node and the other issuing node generating a temporary certificate of the issuing node that is signed with the other issuing node including a signature of , and transmitting it to other issuing nodes; Upon receiving the temporary certificate of the issuing node signed by the other issuing node from each of the other issuing nodes, the signature of the other issuing node is verified, the verification result is encrypted with the public key of the issuing node, and the other issuing node sending to transmitting, in each of the other issuing nodes, the temporary certificate of the issuing node signed by the other issuing node and the verification result received from the other issuing nodes to the issuing node; and generating each of the issuer certificates by collecting the signatures of the other issuing nodes in each of the issuing nodes.

이때, 상기 사용자 인증서를 생성하는 단계는, 상기 사용자 노드에서 상기 사용자 노드의 공개키와 상기 사용자 노드의 서명을 포함하는 상기 사용자 노드의 자체 서명 인증서를 생성하여 상기 발급 노드로 송신함으로써 인증서 발급을 요청하는 단계; 상기 발급 노드에서 상기 사용자 노드의 자체 서명 인증서를 수신하면, 상기 사용자 노드를 인증하는 단계; 상기 발급 노드에서 상기 사용자 노드의 인증에 성공하면, 상기 사용자 노드의 자체 서명 인증서를 다른 발급 노드들로 송신하고, 상기 사용자 노드의 자체 서명 인증서에 포함된 상기 사용자 노드의 공개키와 상기 사용자 노드의 서명을 검증하고, 검증에 성공하면, 상기 사용자 노드의 자체 서명 인증서와 상기 발급 노드의 서명을 포함하는 상기 발급 노드로 서명된 상기 사용자 노드의 임시 인증서를 생성하는 단계; 상기 다른 발급 노드 각각에서 상기 사용자 노드의 자체 서명 인증서를 수신하면, 상기 사용자 노드의 자체 서명 인증서에 포함된 상기 사용자 노드의 공개키와 상기 사용자 노드의 서명을 검증하고, 검증에 성공하면, 상기 사용자 노드의 자체 서명 인증서와 상기 다른 발급 노드의 서명을 포함하는 상기 다른 발급 노드로 서명된 상기 사용자 노드의 임시 인증서를 생성하여 또 다른 발급 노드들로 송신하는 단계; 상기 또 다른 발급 노드들 각각에서 상기 다른 발급 노드로 서명된 상기 사용자 노드의 임시 인증서를 수신하면, 상기 사용자 노드의 공개키와 상기 다른 발급 노드의 서명을 검증하고, 검증 결과를 상기 발급 노드의 공개키로 암호화하여 상기 다른 발급 노드로 송신하는 단계; 상기 다른 발급 노드들 각각에서 상기 다른 발급 노드로 서명된 상기 사용자 노드의 임시 인증서와 상기 또 다른 발급 노드들로부터 수신한 검증 결과를 상기 발급 노드로 송신하는 단계; 및 상기 발급 노드에서 상기 다른 발급 노드들의 서명을 모아서 상기 사용자 인증서를 생성하는 단계를 포함할 수 있다.In this case, in the generating of the user certificate, the user node generates a self-signed certificate of the user node including the public key of the user node and the signature of the user node and transmits it to the issuing node to request the issuance of the certificate to do; authenticating the user node when the issuing node receives the self-signed certificate of the user node; If the issuing node succeeds in authentication of the user node, the self-signed certificate of the user node is transmitted to other issuing nodes, and the public key of the user node included in the self-signed certificate of the user node and the verifying the signature and, if successful, generating a temporary certificate of the user node signed by the issuing node including the self-signed certificate of the user node and the signature of the issuing node; Upon receiving the self-signed certificate of the user node from each of the other issuing nodes, the public key of the user node and the signature of the user node included in the self-signed certificate of the user node are verified, and if the verification is successful, the user generating a temporary certificate of the user node signed with the other issuing node including the node's self-signed certificate and the signature of the other issuing node, and transmitting it to other issuing nodes; Upon receiving the temporary certificate of the user node signed by the other issuing node from each of the other issuing nodes, the public key of the user node and the signature of the other issuing node are verified, and the verification result is disclosed to the issuing node encrypting it with a key and transmitting it to the other issuing node; transmitting, from each of the other issuing nodes, the temporary certificate of the user node signed by the other issuing node and the verification result received from the other issuing nodes to the issuing node; and generating the user certificate by collecting the signatures of the other issuing nodes in the issuing node.

이때, 상기 발급 노드 별로 상기 발급자 인증서 및 상기 사용자 인증서를 상기 블록체인에 저장하는 단계는, 상기 발급 노드 각각에서 자신이 생성한 인증서의 개수(n)와 상기 생성한 인증서의 머클 트리 해시값(mk)을 계산하여 다른 발급 노드들로 송신하여 공유하는 단계; 공유 결과 가장 많이 나타나는 상기 n과 상기 mk의 조합을 계산한 발급 노드를 선택하는 단계; 선택된 발급 노드들 각각에서 임시 블록을 생성하여 공유하는 단계; 상기 선택된 발급 노드들 각각에서 공유된 임시 블록들에 포함된 n과 mk를 확인하고, 상기 공유된 임시 블록 각각에 포함된 블록 서명을 확인하여 이상이 없으면, 상기 공유된 임시 블록들에 포함된 모든 블록 서명을 포함하는 블록을 생성하는 단계; 상기 선택된 발급 노드들 각각에서 상기 블록을 선택되지 않은 발급 노드들로 송신하는 단계; 및 상기 발급 노드들 각각에서 상기 블록을 저장하는 단계를 포함할 수 있다.In this case, the step of storing the issuer certificate and the user certificate in the block chain for each issuing node includes the number (n) of certificates generated by the issuing node at each of the issuing nodes and a Merkle tree hash value (mk) of the generated certificates. ) calculated and shared with other issuing nodes; selecting an issuing node that calculated a combination of n and mk that appears most frequently as a result of sharing; generating and sharing a temporary block in each of the selected issuing nodes; Check n and mk included in the shared temporary blocks in each of the selected issuing nodes, and check the block signature included in each of the shared temporary blocks. generating a block comprising a block signature; transmitting the block from each of the selected issuing nodes to unselected issuing nodes; and storing the block in each of the issuing nodes.

이때, 상기 발급 노드들 각각에서 상기 블록을 저장하는 단계는, 상기 발급 노드들은 상기 블록에 포함된 블록 서명들 중에서 기설정된 임계값 이상의 블록 서명이 검증되면 상기 블록을 저장할 수 있다.In this case, in the storing of the block in each of the issuing nodes, the issuing nodes may store the block when a block signature equal to or greater than a preset threshold value among block signatures included in the block is verified.

이때, 상기 임시 블록은, 상기 블록체인의 이전 블록의 헤더의 해시값, 상기 n, 상기 mk, 타임 스탬프 및 상기 선택된 발급 노드의 블록 서명을 포함할 수 있다.In this case, the temporary block may include a hash value of the header of the previous block of the block chain, the n, the mk, a time stamp, and a block signature of the selected issuing node.

이때, 상기 블록은, 상기 블록체인의 이전 블록의 헤더의 해시값, 상기 n, 상기 mk, 타임 스탬프 및 상기 선택된 발급 노드들의 모든 블록 서명을 포함할 수 있다.In this case, the block may include the hash value of the header of the previous block of the block chain, the n, the mk, a time stamp, and all block signatures of the selected issuing nodes.

이때, 상기 발급자 인증서를 생성하는 단계 이후에, 상기 사용자 노드에서 상기 발급자 인증서를 검증하는 단계를 더 포함할 수 있다.In this case, after generating the issuer certificate, the method may further include verifying the issuer certificate in the user node.

이때, 상기 사용자 노드에서 상기 발급자 인증서를 검증하는 단계는, 상기 사용자 노드에서 상기 블록체인 시스템에 포함된 모든 발급 노드로부터 상기 발급자 인증서를 획득하는 단계; 상기 사용자 노드에서 상기 발급 노드의 상기 발급자 인증서에 포함된 서명들을 다른 발급 노드의 발급자 인증서에 포함된 공개키들을 이용하여 검증하는 단계; 및 상기 사용자 노드에서 검증된 서명의 수가 기설정된 임계값 이상인 발급자 인증서만을 신뢰할 수 있다고 판단하는 단계를 포함할 수 있다.In this case, the step of verifying the issuer certificate in the user node may include: obtaining the issuer certificate from all issuing nodes included in the block chain system in the user node; verifying, at the user node, the signatures included in the issuer certificate of the issuing node using public keys included in the issuer certificate of another issuing node; and determining that only the issuer certificate in which the number of signatures verified by the user node is equal to or greater than a preset threshold is trusted.

이때, 상기 사용자 인증서를 생성하는 단계 이후에, 상기 사용자 노드에서 상기 사용자 인증서를 검증하는 단계를 더 포함할 수 있다.In this case, after generating the user certificate, the method may further include verifying the user certificate in the user node.

이때, 상기 사용자 노드에서 상기 사용자 인증서를 검증하는 단계는, 상기 사용자 노드에서 상기 사용자 인증서를 수신하는 단계; 상기 사용자 노드에서 상기 사용자 인증서에 포함된 상기 발급 노드들의 서명들을 신뢰하는 발급자 인증서들로 검증하는 단계; 및 검증 결과 상기 사용자 노드에서 상기 사용자 인증서에 포함된 상기 발급 노드들의 서명들 중에서 기설정된 임계값 이상의 서명이 검증되면 상기 사용자 인증서를 신뢰할 수 있다고 판단하는 단계를 포함할 수 있다.In this case, the step of verifying the user certificate at the user node may include: receiving the user certificate from the user node; verifying, at the user node, signatures of the issuing nodes included in the user certificate with trusted issuer certificates; and determining that the user certificate is trustworthy if the user node verifies a signature equal to or greater than a preset threshold value among the signatures of the issuing nodes included in the user certificate as a result of verification.

본 발명의 일 실시 예에 따른 블록체인을 기반한 공개키 기반 구조 시스템은, 복수의 발급 노드를 포함하고, 상기 복수의 발급 노드 각각은 다른 발급 노드와 또 다른 발급 노드들과 연계해서 각각의 발급자 인증서를 생성하고, 사용자 노드로부터 인증서 발급을 요청 받으면 상기 다른 발급 노드와 상기 또 다른 발급 노드들과 연계해서 사용자 인증서를 생성하고, 상기 발급자 인증서 및 상기 사용자 인증서를 포함하는 블록을 생성하여 블록 체인에 저장한다.A public key infrastructure system based on a block chain according to an embodiment of the present invention includes a plurality of issuing nodes, and each of the plurality of issuing nodes is associated with other issuing nodes and other issuing nodes to each issuer certificate generates a user certificate in association with the other issuing node and the other issuing nodes, and generates a block including the issuer certificate and the user certificate when requested to issue a certificate from the user node and stores it in the block chain do.

본 발명은 기존의 TTP를 이용하는 공개 키 기반 구조와 달리 TTP 없이 발급된 인증서에 대해 사용자가 신뢰할 수 있는 검증 방법을 제시함으로써, 사용자가 기존에 신뢰하지 않은 기관에서 발급된 인증서를 검증 후 이용할 수 있는 신뢰 검증 방법을 제공할 수 있다.The present invention provides a user-reliable verification method for a certificate issued without a TTP, unlike the public key-based structure using the existing TTP, so that the user can verify and use a certificate issued by an authority that is not previously trusted by the user. A trust verification method can be provided.

추가적으로 블록체인에서 데이터 블록을 생성할 때, 같은 방법으로 블록에 다수에 서명을 추가함으로써 일관성을 검증하는 합의 알고리즘을 통해 데이터를 저장 / 관리하도록 할 수 있다.Additionally, when creating a data block in the blockchain, data can be stored / managed through a consensus algorithm that verifies consistency by adding signatures to multiple blocks in the same way.

도 1은 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템의 개략적인 구조를 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 인증서를 생성하고 저장하는 과정을 도시한 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 발급자 인증서를 생성하는 과정을 도시한 흐름도이다.
도 4는 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 발급자 인증서를 생성하는 메시지 흐름을 도시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 발급자 인증서를 검증하는 과정을 도시한 흐름도이다.
도 6은 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 사용자 인증서를 생성하는 과정을 도시한 흐름도이다.
도 7a는 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 사용자 인증서를 생성하는 메시지 흐름의 일부를 도시한 도면이다.
도 7b는 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 사용자 인증서를 생성하는 메시지 흐름의 다른 일부를 도시한 도면이다.
도 8은 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 사용자 인증서를 검증하는 과정을 도시한 흐름도이다.
도 9는 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 인증서를 블록체인에 저장하는 과정을 도시한 흐름도이다.
도 10은 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 블록을 생성할 발급 노드를 선택하는 메시지 흐름을 도시한 도면이다.
도 11은 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템의 선택된 발급 노드에서 블록을 생성하고 공유하는 메시지 흐름을 도시한 도면이다.
1 is a diagram showing a schematic structure of a public key-based structure system based on a block chain according to an embodiment of the present invention.
2 is a flowchart illustrating a process of generating and storing a certificate in a public key infrastructure system based on a block chain according to an embodiment of the present invention.
3 is a flowchart illustrating a process of generating an issuer certificate in a public key infrastructure system based on a block chain according to an embodiment of the present invention.
4 is a diagram illustrating a message flow for generating an issuer certificate in a public key infrastructure system based on a block chain according to an embodiment of the present invention.
5 is a flowchart illustrating a process of verifying an issuer certificate in a public key infrastructure system based on a block chain according to an embodiment of the present invention.
6 is a flowchart illustrating a process of generating a user certificate in a public key infrastructure system based on a block chain according to an embodiment of the present invention.
7A is a diagram illustrating a part of a message flow for generating a user certificate in a public key infrastructure system based on a block chain according to an embodiment of the present invention.
7B is a diagram illustrating another part of a message flow for generating a user certificate in a public key infrastructure system based on a block chain according to an embodiment of the present invention.
8 is a flowchart illustrating a process of verifying a user certificate in a public key infrastructure system based on a block chain according to an embodiment of the present invention.
9 is a flowchart illustrating a process of storing a certificate in a block chain in a public key infrastructure system based on a block chain according to an embodiment of the present invention.
10 is a diagram illustrating a message flow for selecting an issuing node to generate a block in a block chain-based public key infrastructure system according to an embodiment of the present invention.
11 is a diagram illustrating a message flow for generating and sharing a block in a selected issuing node of a block chain-based public key infrastructure system according to an embodiment of the present invention.

이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, since various changes may be made to the embodiments, the scope of the patent application is not limited or limited by these embodiments. It should be understood that all modifications, equivalents and substitutes for the embodiments are included in the scope of the rights.

실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are used for description purposes only, and should not be construed as limiting. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present specification, terms such as “comprise” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, but one or more other features It should be understood that this does not preclude the existence or addition of numbers, steps, operations, components, parts, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the embodiment belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present application. does not

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same components are given the same reference numerals regardless of the reference numerals, and the overlapping description thereof will be omitted. In the description of the embodiment, if it is determined that a detailed description of a related known technology may unnecessarily obscure the gist of the embodiment, the detailed description thereof will be omitted.

도 1은 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템의 개략적인 구조를 도시한 도면이다.1 is a diagram showing a schematic structure of a public key-based structure system based on a block chain according to an embodiment of the present invention.

도 1을 참조하면, 블록체인을 기반한 공개키 기반 구조(PKI; Public Key Infrastructure) 시스템(100)은 복수의 발급 노드(111-114)를 포함하여 구성될 수 있다.Referring to FIG. 1 , a public key infrastructure (PKI) system 100 based on a block chain may be configured to include a plurality of issuing nodes 111-114.

복수의 발급 노드(111-114) 각각은 다른 발급 노드와 또 다른 발급 노드들과 연계해서 각각의 발급자 인증서를 생성하고, 사용자 노드(121-127)로부터 인증서 발급을 요청 받으면 다른 발급 노드 및 또 다른 발급 노드들과 연계해서 사용자 인증서를 생성하고, 발급자 인증서 및 사용자 인증서를 포함하는 블록을 생성하여 블록 체인에 저장할 수 있다.Each of the plurality of issuing nodes 111-114 generates respective issuer certificates in association with other issuing nodes and other issuing nodes, and when a certificate issuance is requested from the user nodes 121-127, other issuing nodes and another A user certificate can be generated in conjunction with the issuing nodes, and a block including the issuer certificate and the user certificate can be created and stored in the block chain.

본 발명의 설명에 있어서 “사용자 노드”는 주체(subject)로 표현될 수 있고, 사용자 노드는 기업 또는 일반 사용자가 될 수 있다.In the description of the present invention, a “user node” may be expressed as a subject, and the user node may be a company or a general user.

본 발명의 설명에 있어서, “다른 발급 노드”는 발급자 인증서 또는 사용자 인증서를 생성하는 발급 노드의 서명을 검증하고 인증서에 필요한 서명을 추가하는 발급 노드로서 공개키 기반 구조 시스템에 포함된 발급 노드들 중에서 인증서를 생성하는 발급 노드를 제외한 나머지 발급 노드를 의미한다.In the description of the present invention, “another issuing node” is an issuing node that verifies the signature of the issuing node that generates the issuer certificate or user certificate and adds a signature required for the certificate, among the issuing nodes included in the public key infrastructure system. It refers to the other issuing nodes except for the issuing node that generates the certificate.

본 발명의 설명에 있어서, “또 다른 발급 노드”는 다른 발급 노드에서 추가한 서명을 검증하는 발급 노드로서 공개키 기반 구조 시스템에 포함된 발급 노드들 중에서 인증서를 생성하는 발급 노드와 서명을 추가한 다른 발급 노드를 제외한 나머지 발급 노드를 의미한다. 따라서, 발급 노드는 인증서를 생성하는 주체가 아닌 경우, 다른 발급 노드가 될 수도 있고 또 다른 발급 노드가 될 수도 있다.In the description of the present invention, “another issuing node” is an issuing node that verifies the signature added by another issuing node, and includes an issuing node that generates a certificate among issuing nodes included in the public key infrastructure system and adding a signature. It means the remaining issuing nodes excluding other issuing nodes. Accordingly, if the issuing node is not a subject generating a certificate, it may be another issuing node or another issuing node.

예를 들어서, 제1 발급 노드(111)이 발급자 인증서를 생성하는 경우 발급 노드(112, 113, 114)가 다른 발급 노드가 될 수 있다. 그리고, 제1 발급 노드(111)에서 발급자 인증서를 생성할 때, 다른 발급 노드로 제2 발급 노드(112)의 서명을 획득하는 경우, 발급 노드(113, 114)가 또 다른 발급 노드가 될 수 있다. 그리고, 제1 발급 노드(111)에서 발급자 인증서를 생성하는 경우, 다른 발급 노드로 제3 발급 노드(113)의 서명을 획득하는 경우, 발급 노드(112, 114)가 또 다른 발급 노드가 될 수 있다. 그리고, 제1 발급 노드(111)에서 발급자 인증서를 생성할 때, 다른 발급 노드로 제4 발급 노드(114)의 서명을 획득하는 경우, 발급 노드(112, 113)가 또 다른 발급 노드가 될 수 있다.For example, when the first issuing node 111 generates an issuer certificate, the issuing nodes 112 , 113 , and 114 may be other issuing nodes. In addition, when the first issuing node 111 generates an issuer certificate and obtaining the signature of the second issuing node 112 with another issuing node, the issuing nodes 113 and 114 may become another issuing node. have. In addition, when the first issuing node 111 generates an issuer certificate, when obtaining the signature of the third issuing node 113 with another issuing node, the issuing nodes 112 and 114 may become another issuing node. have. In addition, when the first issuing node 111 generates the issuer certificate, when obtaining the signature of the fourth issuing node 114 with another issuing node, the issuing nodes 112 and 113 may become another issuing node. have.

블록체인을 기반한 공개키 기반 구조 시스템(100)에서 인증서를 생성하고 저장하는 구체적인 과정을 이후 도 2에서 도 11을 참조하여 보다 상세히 후술한다.A detailed process of generating and storing a certificate in the public key infrastructure system 100 based on the block chain will be described later in more detail with reference to FIGS. 2 to 11 .

도 2는 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 인증서를 생성하고 저장하는 과정을 도시한 흐름도이다.2 is a flowchart illustrating a process of generating and storing a certificate in a public key infrastructure system based on a block chain according to an embodiment of the present invention.

도 2를 참조하면 발급 노드 별로 각각의 발급자 인증서를 생성한다(210). 이때, 210단계의 보다 구체적인 설명은 이후 도 3과 도 4를 통해서 후술한다.Referring to FIG. 2 , each issuer certificate is generated for each issuing node ( 210 ). In this case, a more detailed description of step 210 will be described later with reference to FIGS. 3 and 4 .

그리고, 사용자 노드에서 발급자 인증서를 검증한다(220). 이때, 220단계의 보다 구체적인 설명은 이후 도 5를 통해서 후술한다.Then, the user node verifies the issuer certificate ( 220 ). In this case, a more detailed description of step 220 will be described later with reference to FIG. 5 .

그리고, 발급 노드에서 사용자 노드로부터 인증서 발급을 요청 받으면, 사용자 인증서를 생성한다(230). 이때, 230단계의 보다 구체적인 설명은 이후 도 6, 도 7a 및 도 7b를 통해서 후술한다.Then, when the issuing node receives a request for issuing a certificate from the user node, a user certificate is generated ( 230 ). In this case, a more detailed description of step 230 will be described later with reference to FIGS. 6, 7A, and 7B.

그리고, 사용자 노드에서 사용자 인증서를 검증한다(240). 이때, 240단계의 보다 구체적인 설명은 이후 도 8을 통해서 후술한다.Then, the user node verifies the user certificate (240). In this case, a more detailed description of step 240 will be described later with reference to FIG. 8 .

그리고, 발급 노드 별로 발급자 인증서 및 사용자 인증서를 블록 체인에 저장한다(250). 이때, 250단계의 보다 구체적인 설명은 이후 도 9, 도 10 및 도 11을 통해서 후술한다.Then, the issuer certificate and the user certificate are stored in the block chain for each issuing node ( 250 ). In this case, a more detailed description of step 250 will be described later with reference to FIGS. 9, 10 and 11 .

한편, 도 2의 설명에서 220단계가 210단계와 230단계 사이로 기재하고 있지만, 사실상 220 단계는 210 단계 이후 어느 시점에서 수행되어도 무방하다. 또한, 240단계가 230단계와 250단계 사이로 기재하고 있지만, 사실상 240 단계는 230 단계 이후 어느 시점에서 수행되어도 무방하다.Meanwhile, although step 220 is described as between steps 210 and 230 in the description of FIG. 2 , step 220 may be performed at any time after step 210 . In addition, although step 240 is described as between steps 230 and 250, step 240 may be performed at any time after step 230 .

도 3은 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 발급자 인증서를 생성하는 과정을 도시한 흐름도이다.3 is a flowchart illustrating a process of generating an issuer certificate in a public key infrastructure system based on a block chain according to an embodiment of the present invention.

도 4는 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 발급자 인증서를 생성하는 메시지 흐름을 도시한 도면이다.4 is a diagram illustrating a message flow for generating an issuer certificate in a public key infrastructure system based on a block chain according to an embodiment of the present invention.

도 3과 도 4를 참조하면 발급 노드 별로 각각의 발급자 인증서를 생성하는 방법은 다음과 같습니다.3 and 4, the method of generating each issuer certificate for each issuing node is as follows.

발급 노드(401)들 각각에서 발급 노드의 공개키에 자체 서명하여 발급 노드의 임시 인증서를 생성하고(410), 생성한 발급 노드의 자체 서명 인증서(Self-signed certificate)를 다른 발급 노드(402)들로 송신한다(310, 412). 여기서, 자체 서명 인증서란 자신의 개인키로 생성하는 자체 서명을 포함한 인증서이다. Each of the issuing nodes 401 self-signs the public key of the issuing node to generate a temporary certificate of the issuing node (410), and transferring the generated self-signed certificate of the issuing node to another issuing node (402) and transmits them (310, 412). Here, the self-signed certificate is a certificate including a self-signed generated by one's own private key.

다른 발급 노드(402)들 각각에서 발급 노드의 자체 서명 인증서를 수신하면, 422단계의 서명 검증을 위해서 다른 발급 노드(402)들 각각의 공개키를 또 다른 발급 노드들로 송신한다(414). 이때, 다른 발급 노드(402)들 각각의 공개키는 사전에 전달될 수 있으므로 해당 과정은 생략될 수 있다.When the self-signed certificate of the issuing node is received from each of the other issuing nodes 402, the public key of each of the other issuing nodes 402 is transmitted to other issuing nodes for signature verification in step 422 (414). At this time, since the public key of each of the other issuing nodes 402 may be transmitted in advance, the corresponding process may be omitted.

다른 발급 노드(402)들 각각에서 발급 노드의 자체 서명 인증서를 수신하면, 발급 노드의 공개키와 발급 노드의 서명을 검증하고(416), 검증에 성공하면 발급 노드의 자체 서명 인증서와 다른 발급 노드의 서명을 포함하는 다른 발급 노드로 서명된 발급 노드의 임시 인증서를 생성하여(418) 또 다른 발급 노드들로 송신한다(320, 420). 이때, 발급 노드의 자체 서명 인증서에 다른 발급 노드의 서명을 더 포함하는 것은 발급 노드의 임시 인증서에 포함된 발급 노드의 공개키를 다른 발급 노드에 개인키로 디지털 서명함을 의미할 수 있다.Upon receiving the self-signed certificate of the issuing node from each of the other issuing nodes 402, the public key of the issuing node and the signature of the issuing node are verified (416), and if the verification is successful, the issuing node's self-signed certificate and other issuing node A temporary certificate of the issuing node signed with another issuing node including the signature of is generated (418) and transmitted to other issuing nodes (320, 420). In this case, further including the signature of another issuing node in the self-signed certificate of the issuing node may mean digitally signing the public key of the issuing node included in the temporary certificate of the issuing node with the private key to the other issuing node.

또 다른 발급 노드(403)들 각각에서 다른 발급 노드로 서명된 발급 노드의 임시 인증서를 수신하면, 다른 발급 노드의 서명을 검증하고(422), 검증 결과를 발급 노드의 공개키로 암호화하여 다른 발급 노드로 송신한다(330, 424).Upon receiving the temporary certificate of the issuing node signed by the other issuing node from each of the other issuing nodes 403, the signature of the other issuing node is verified (422), the verification result is encrypted with the public key of the issuing node, and the other issuing node to (330, 424).

다른 발급 노드(403)들 각각에서 다른 발급 노드로 서명된 발급 노드의 임시 인증서와 또 다른 발급 노드들로부터 수신한 모든 검증 결과를 발급 노드로 송신한다(340, 426).Each of the other issuing nodes 403 transmits the temporary certificate of the issuing node signed by the other issuing node and all verification results received from the other issuing nodes to the issuing node (340, 426).

발급 노드(402)들 각각에서 모든 검증 결과를 확인하고(428), 검증 결과에 이상이 없으면 다른 발급 노드들의 서명을 모아서 각각의 발급자 인증서를 생성한다(350, 430).In each of the issuing nodes 402, all verification results are checked (428), and if there is no error in the verification result, signatures of other issuing nodes are collected to generate respective issuer certificates (350, 430).

이때, 발급자 인증서는 발급 노드의 식별정보, 발급 노드의 공개키, 모든 발급 노드들의 정보, 모든 발급 노드들의 서명을 포함할 수 있다.In this case, the issuer certificate may include identification information of the issuing node, the public key of the issuing node, information of all issuing nodes, and signatures of all issuing nodes.

도 5는 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 발급자 인증서를 검증하는 과정을 도시한 흐름도이다.5 is a flowchart illustrating a process of verifying an issuer certificate in a public key infrastructure system based on a block chain according to an embodiment of the present invention.

사용자 노드에서 블록체인 시스템에 포함된 모든 발급 노드로부터 발급자 인증서를 획득한다(510).In the user node, an issuer certificate is obtained from all issuing nodes included in the block chain system (510).

사용자 노드에서 발급 노드의 발급자 인증서에 포함된 서명들을 다른 발급 노드의 발급자 인증서에 포함된 공개키들을 이용하여 검증한다(520).The user node verifies signatures included in the issuer certificate of the issuing node using public keys included in the issuer certificate of another issuing node ( 520 ).

사용자 노드에서 검증된 서명의 수가 기설정된 임계값 이상인 발급자 인증서만을 신뢰할 수 있다고 판단한다(530). 이때, 사용자 노드는 판단결과 신뢰할 수 있으면 발급자 인증서를 저장하고, 발급자 인증서의 발급 노드를 신뢰목록에 저장하여 관리할 수 있다. 그리고, 판단결과 신뢰할 수 없으면 수신한 발급자 인증서를 삭제하거나, 발급 노드들로 신뢰할 수 없음을 응답할 수 있다.It is determined that only the issuer certificate in which the number of signatures verified by the user node is equal to or greater than a preset threshold is trusted ( 530 ). In this case, if the user node is trusted as a result of the determination, it can store the issuer certificate, and store and manage the issuing node of the issuer certificate in the trust list. In addition, if the determination result is not reliable, the received issuer certificate may be deleted or the issuing nodes may respond that the certificate is not trusted.

도 6은 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 사용자 인증서를 생성하는 과정을 도시한 흐름도이다.6 is a flowchart illustrating a process of generating a user certificate in a public key infrastructure system based on a block chain according to an embodiment of the present invention.

도 7a는 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 사용자 인증서를 생성하는 메시지 흐름의 일부를 도시한 도면이다.7A is a diagram illustrating a part of a message flow for generating a user certificate in a public key infrastructure system based on a block chain according to an embodiment of the present invention.

도 7b는 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 사용자 인증서를 생성하는 메시지 흐름의 다른 일부를 도시한 도면이다.7B is a diagram illustrating another part of a message flow for generating a user certificate in a public key infrastructure system based on a block chain according to an embodiment of the present invention.

도 6, 도 7a 및 도 7b를 참조하면 사용자 인증서를 생성하는 방법은 다음과 같습니다.6, 7A, and 7B, the method of generating a user certificate is as follows.

사용자 노드(701)에서 사용자 노드의 공개키와 사용자 노드의 서명을 포함하는 사용자 노드의 자체 서명 인증서를 생성하여(710) 발급 노드(401)로 송신함으로써 인증서 발급을 요청한다(610, 712).The user node 701 generates a self-signed certificate of the user node including the public key of the user node and the signature of the user node (710) and transmits it to the issuing node 401 to request certificate issuance (610, 712).

발급 노드(401)에서 사용자 노드의 자체 서명 인증서를 수신하면, 사용자 노드(701)를 인증한다(620, 714). 이때의 사용자 노드를 인증하는 것은 휴대폰 인증, 비밀번호 인증, ARS 인증 등을 이용해서 사용자 노드가 맞는지를 인증하는 것이다.Upon receiving the self-signed certificate of the user node from the issuing node 401, the user node 701 is authenticated (620, 714). Authenticating the user node at this time is to authenticate whether the user node is correct using mobile phone authentication, password authentication, ARS authentication, etc.

발급 노드(401)에서 사용자 노드의 인증에 성공하면, 사용자 노드의 자체 서명 인증서를 다른 발급 노드들로 송신하고(630, 716), 사용자 노드의 자체 서명 인증서에 포함된 사용자 노드의 공개키와 사용자 노드의 서명을 검증하고(718), 검증에 성공하면, 사용자 노드의 자체 서명 인증서와 발급 노드의 서명을 포함하는 발급 노드로 서명된 사용자 노드의 임시 인증서를 생성한다(640, 720). 그리고, 발급 노드(401)는 생성한 발급 노드로 서명된 사용자 노드의 임시 인증서를 또 다른 발급 노드(403)들로 송신할 수 있다(722). If the issuing node 401 succeeds in authentication of the user node, the user node's self-signed certificate is transmitted to other issuing nodes (630, 716), and the public key and user of the user node included in the user node's self-signed certificate The node's signature is verified (718), and if the verification is successful, a temporary certificate of the user node signed by the issuing node including the user node's self-signed certificate and the issuing node's signature is generated (640, 720). Then, the issuing node 401 may transmit the temporary certificate of the user node signed by the generated issuing node to other issuing nodes 403 ( 722 ).

다른 발급 노드(402) 각각에서 사용자 노드의 자체 서명 인증서를 수신하면, 사용자 노드의 자체 서명 인증서에 포함된 사용자 노드의 공개키와 사용자 노드의 서명을 검증하고(724), 검증에 성공하면, 사용자 노드의 자체 서명 인증서와 다른 발급 노드의 서명을 포함하는 다른 발급 노드로 서명된 사용자 노드의 임시 인증서를 생성하여(726) 또 다른 발급 노드(403)들로 송신한다(650, 728).Upon receiving the self-signed certificate of the user node from each of the other issuing nodes 402, the public key of the user node and the signature of the user node included in the self-signed certificate of the user node are verified (724), and if the verification is successful, the user A temporary certificate of the user node signed with another issuing node including the node's self-signed certificate and the signature of the other issuing node is generated (726) and transmitted to other issuing nodes (403) (650, 728).

또 다른 발급 노드(403)들 각각에서 다른 발급 노드로 서명된 사용자 노드의 임시 인증서를 수신하면, 사용자 노드의 공개키와 다른 발급 노드의 서명을 검증하고(730), 검증 결과를 발급 노드의 공개키로 암호화하여 다른 발급 노드(402)로 송신한다(660, 732).Upon receiving the temporary certificate of the user node signed by the other issuing node from each of the other issuing nodes 403, the public key of the user node and the signature of the other issuing node are verified (730), and the verification result is published by the issuing node It is encrypted with the key and transmitted to another issuing node 402 (660, 732).

다른 발급 노드(402)들 각각에서 다른 발급 노드로 서명된 사용자 노드의 임시 인증서와 또 다른 발급 노드(403)들로부터 수신한 검증 결과를 발급 노드로 송신한다(670, 734).Each of the other issuing nodes 402 transmits the temporary certificate of the user node signed by the other issuing node and the verification result received from the other issuing nodes 403 to the issuing node (670, 734).

발급 노드(401)에서 다른 발급 노드(402)들의 서명을 모아서 사용자 인증서를 생성하고(680,740), 생성된 사용자 인증서를 사용자 노드(701)로 송신한다(742).The issuing node 401 collects the signatures of other issuing nodes 402 to generate a user certificate ( 680 , 740 ), and transmits the generated user certificate to the user node 701 ( 742 ).

사용자 인증서는 사용자 노드의 식별정보, 사용자 노드의 공개키, 모든 발급 노드들의 정보, 모든 발급 노드들의 서명을 포함할 수 있다.The user certificate may include identification information of the user node, public key of the user node, information of all issuing nodes, and signatures of all issuing nodes.

한편, 도 7a 와 도 7b에서 722단계와 736단계는 발급 노드(401)에서 생성한 발급 노드로 서명된 사용자 노드의 임시 인증서를 검증 받는 과정이므로, 생략이 가능하다.Meanwhile, in FIGS. 7A and 7B, steps 722 and 736 are a process of verifying the temporary certificate of the user node signed by the issuing node generated by the issuing node 401, and thus can be omitted.

도 8은 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 사용자 인증서를 검증하는 과정을 도시한 흐름도이다.8 is a flowchart illustrating a process of verifying a user certificate in a public key infrastructure system based on a block chain according to an embodiment of the present invention.

사용자 노드에서 사용자 인증서를 수신하면(810), 사용자 노드에서 사용자 인증서에 포함된 발급 노드들의 서명들을 신뢰 목록에 포함된 신뢰하는 발급자 인증서들로 검증한다(820).When the user node receives the user certificate ( 810 ), the user node verifies the signatures of the issuing nodes included in the user certificate with trusted issuer certificates included in the trust list ( 820 ).

검증 결과 사용자 노드에서 사용자 인증서에 포함된 발급 노드들의 서명들 중에서 기설정된 임계값 이상의 서명이 검증되면 사용자 인증서를 신뢰할 수 있다고 판단한다(830). 사용자 노드는 판단결과 신뢰할 수 있으면 사용자 인증서를 사용하고, 판단결과 신뢰할 수 없으면 삭제할 수 있다.As a result of verification, if the user node verifies a signature greater than or equal to a preset threshold among the signatures of the issuing nodes included in the user certificate, it is determined that the user certificate is trustworthy ( 830 ). The user node uses the user certificate if it is trusted as a result of the judgment, and can be deleted if it is not trusted as a result of the judgment.

도 9는 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 인증서를 블록체인에 저장하는 과정을 도시한 흐름도이다.9 is a flowchart illustrating a process of storing a certificate in a block chain in a public key infrastructure system based on a block chain according to an embodiment of the present invention.

도 10은 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템에서 블록을 생성할 발급 노드를 선택하는 메시지 흐름을 도시한 도면이다.10 is a diagram illustrating a message flow for selecting an issuing node to generate a block in a block chain-based public key infrastructure system according to an embodiment of the present invention.

도 11은 본 발명의 일 실시예에 따른 블록체인을 기반한 공개키 기반 구조 시스템의 선택된 발급 노드에서 블록을 생성하고 공유하는 메시지 흐름을 도시한 도면이다.11 is a diagram illustrating a message flow for generating and sharing a block in a selected issuing node of a block chain-based public key infrastructure system according to an embodiment of the present invention.

도 9, 도 10 및 도 11을 참조하면, 발급 노드 별로 발급자 인증서 및 사용자 인증서를 블록체인에 저장하는 방법은 다음과 같습니다.9, 10, and 11, the method of storing the issuer certificate and the user certificate in the block chain for each issuing node is as follows.

발급 노드(1001, 1002) 각각에서 자신이 생성한 인증서의 개수(n)와 생성한 인증서의 머클 트리 해시값(mk)을 계산하여(1014, 1016) 다른 발급 노드들로 송신하여 공유한다(910, 1018, 1020).Each of the issuing nodes 1001 and 1002 calculates the number (n) of the certificates it generates and the Merkle tree hash value (mk) of the generated certificates (1014, 1016) and transmits it to other issuing nodes to share (910) , 1018, 1020).

공유 결과 가장 많이 나타나는 n과 mk의 조합을 계산한 발급 노드를 선택한다(920, 1022, 1024).The issuing node that calculates the combination of n and mk that appears the most as a result of sharing is selected (920, 1022, 1024).

선택된 발급 노드(1101, 1103)들 각각에서 임시 블록을 생성하여(1026, 1111, 1130) 공유한다(930, 1111, 1131). 이때, 선택된 발급 노드(1102)는 생성된 임시 블록을 공유 받을 때까지 대기한다(1120). 여기서, 임시 블록은 블록체인의 이전 블록의 헤더의 해시값, n, mk, 타임 스탬프 및 선택된 발급 노드의 블록 서명을 포함할 수 있다.A temporary block is generated (1026, 1111, 1130) in each of the selected issuing nodes (1101, 1103) and shared (930, 1111, 1131). At this time, the selected issuing node 1102 waits until it receives the shared temporary block (1120). Here, the temporary block may include the hash value of the header of the previous block of the block chain, n, mk, a timestamp, and the block signature of the selected issuing node.

선택된 발급 노드(1101, 1103)들 각각에서 공유된 임시 블록들에 포함된 n과 mk를 확인하고(1112, 1132), 공유된 임시 블록 각각에 포함된 블록 서명을 확인하여(1113, 1133) 이상이 없으면, 공유된 임시 블록들에 포함된 모든 블록 서명을 포함하는 블록을 생성한다(940, 1114, 1134). 여기서, 블록은 블록체인의 이전 블록의 헤더의 해시값, n, mk, 타임 스탬프 및 선택된 발급 노드들의 모든 블록 서명을 포함할 수 있다.In each of the selected issuing nodes 1101 and 1103, n and mk included in the shared temporary blocks are checked (1112, 1132), and the block signature included in each of the shared temporary blocks is checked (1113, 1133) or more If not, a block including all block signatures included in the shared temporary blocks is generated (940, 1114, 1134). Here, the block may include the hash value of the header of the previous block of the block chain, n, mk, time stamp, and all block signatures of the selected issuing nodes.

선택된 발급 노드(1101, 1103)들 각각에서 블록(1140)을 선택되지 않은 발급 노드(1120)들로 송신한다(950).Each of the selected issuing nodes 1101 and 1103 transmits ( 950 ) block 1140 to unselected issuing nodes 1120 .

발급 노드(1101, 1102, 1103)들 각각에서 블록을 저장한다(960).A block is stored in each of the issuing nodes (1101, 1102, 1103) (960).

960단계에서 발급 노드(1101, 1102, 1103)들은 블록에 포함된 블록 서명들 중에서 기설정된 임계값 이상의 블록 서명이 검증되면 블록을 저장할 수 있다. 이때, 선택된 발급 노드(1101, 1103)들은 검증을 생략할 수도 있다.In step 960 , the issuing nodes 1101 , 1102 , and 1103 may store the block when a block signature equal to or greater than a preset threshold value among block signatures included in the block is verified. In this case, the selected issuing nodes 1101 and 1103 may omit verification.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(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 execute 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. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(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. , or may be permanently or temporarily embody in a transmitted signal wave. 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.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited drawings, those skilled in the art may apply various technical modifications and variations based on the above. 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 (14)

발급 노드 별로 각각의 발급자 인증서를 생성하는 단계;
발급 노드에서 사용자 노드로부터 인증서 발급을 요청 받으면, 사용자 인증서를 생성하는 단계; 및
상기 발급 노드 별로 상기 발급자 인증서 및 상기 사용자 인증서를 블록 체인에 저장하는 단계
를 포함하고,
상기 발급자 인증서는,
상기 발급 노드의 식별정보, 상기 발급 노드의 공개키, 모든 발급 노드들의 정보, 상기 모든 발급 노드들의 서명
을 포함하는 블록체인을 기반한 공개키 기반 구조 시스템의 방법.
generating each issuer certificate for each issuing node;
generating a user certificate when the issuing node receives a request for issuing a certificate from the user node; and
Storing the issuer certificate and the user certificate in a block chain for each issuing node
including,
The issuer certificate is
Identification information of the issuing node, public key of the issuing node, information of all issuing nodes, and signatures of all issuing nodes
A method of a public key infrastructure system based on a block chain comprising a.
삭제delete 발급 노드 별로 각각의 발급자 인증서를 생성하는 단계;
발급 노드에서 사용자 노드로부터 인증서 발급을 요청 받으면, 사용자 인증서를 생성하는 단계; 및
상기 발급 노드 별로 상기 발급자 인증서 및 상기 사용자 인증서를 블록 체인에 저장하는 단계
를 포함하고,
상기 사용자 인증서는,
상기 사용자 노드의 식별정보, 상기 사용자 노드의 공개키, 모든 발급 노드들의 정보, 상기 모든 발급 노드들의 서명
을 포함하는 블록체인을 기반한 공개키 기반 구조 시스템의 방법.
generating each issuer certificate for each issuing node;
generating a user certificate when the issuing node receives a request for issuing a certificate from the user node; and
Storing the issuer certificate and the user certificate in a block chain for each issuing node
including,
The user certificate is
Identification information of the user node, public key of the user node, information of all issuing nodes, and signatures of all issuing nodes
A method of a public key infrastructure system based on a block chain comprising a.
발급 노드 별로 각각의 발급자 인증서를 생성하는 단계;
발급 노드에서 사용자 노드로부터 인증서 발급을 요청 받으면, 사용자 인증서를 생성하는 단계; 및
상기 발급 노드 별로 상기 발급자 인증서 및 상기 사용자 인증서를 블록 체인에 저장하는 단계
를 포함하고,
상기 발급 노드 별로 각각의 발급자 인증서를 생성하는 단계는,
상기 발급 노드들 각각에서 발급 노드의 공개키에 자체 서명하여 상기 발급 노드의 자체 서명 인증서를 생성하여 다른 발급 노드들로 송신하는 단계;
상기 다른 발급 노드들 각각에서 상기 발급 노드의 자체 서명 인증서를 수신하면, 상기 발급 노드의 공개키와 상기 발급 노드의 서명을 검증하고, 검증에 성공하면 상기 발급 노드의 자체 서명 인증서와 상기 다른 발급 노드의 서명을 포함하는 상기 다른 발급 노드로 서명된 상기 발급 노드의 임시 인증서를 생성하여 또 다른 발급 노드들로 송신하는 단계;
상기 또 다른 발급 노드들 각각에서 상기 다른 발급 노드로 서명된 상기 발급 노드의 임시 인증서를 수신하면, 상기 다른 발급 노드의 서명을 검증하고, 검증 결과를 상기 발급 노드의 공개키로 암호화하여 상기 다른 발급 노드로 송신하는 단계;
상기 다른 발급 노드들 각각에서 상기 다른 발급 노드로 서명된 상기 발급 노드의 임시 인증서와 상기 또 다른 발급 노드들로부터 수신한 검증 결과를 상기 발급 노드로 송신하는 단계; 및
상기 발급 노드들 각각에서 상기 다른 발급 노드들의 서명을 모아서 각각의 상기 발급자 인증서를 생성하는 단계
를 포함하는 블록체인을 기반한 공개키 기반 구조 시스템의 방법.
generating each issuer certificate for each issuing node;
generating a user certificate when the issuing node receives a request for issuing a certificate from the user node; and
Storing the issuer certificate and the user certificate in a block chain for each issuing node
including,
The step of generating each issuer certificate for each issuing node includes:
generating a self-signed certificate of the issuing node by self-signing the public key of the issuing node in each of the issuing nodes, and transmitting the self-signed certificate to other issuing nodes;
Upon receiving the self-signed certificate of the issuing node from each of the other issuing nodes, the public key of the issuing node and the signature of the issuing node are verified. If verification is successful, the self-signed certificate of the issuing node and the other issuing node generating a temporary certificate of the issuing node that is signed with the other issuing node including a signature of , and transmitting it to other issuing nodes;
Upon receiving the temporary certificate of the issuing node signed by the other issuing node from each of the other issuing nodes, the signature of the other issuing node is verified, the verification result is encrypted with the public key of the issuing node, and the other issuing node sending to
transmitting, in each of the other issuing nodes, the temporary certificate of the issuing node signed by the other issuing node and the verification result received from the other issuing nodes to the issuing node; and
generating each of the issuer certificates by collecting the signatures of the other issuing nodes in each of the issuing nodes
A method of a public key infrastructure system based on a block chain comprising a.
발급 노드 별로 각각의 발급자 인증서를 생성하는 단계;
발급 노드에서 사용자 노드로부터 인증서 발급을 요청 받으면, 사용자 인증서를 생성하는 단계; 및
상기 발급 노드 별로 상기 발급자 인증서 및 상기 사용자 인증서를 블록 체인에 저장하는 단계
를 포함하고,
상기 사용자 인증서를 생성하는 단계는,
상기 사용자 노드에서 상기 사용자 노드의 공개키와 상기 사용자 노드의 서명을 포함하는 상기 사용자 노드의 자체 서명 인증서를 생성하여 상기 발급 노드로 송신함으로써 인증서 발급을 요청하는 단계;
상기 발급 노드에서 상기 사용자 노드의 자체 서명 인증서를 수신하면, 상기 사용자 노드를 인증하는 단계;
상기 발급 노드에서 상기 사용자 노드의 인증에 성공하면, 상기 사용자 노드의 자체 서명 인증서를 다른 발급 노드들로 송신하고, 상기 사용자 노드의 자체 서명 인증서에 포함된 상기 사용자 노드의 공개키와 상기 사용자 노드의 서명을 검증하고, 검증에 성공하면, 상기 사용자 노드의 자체 서명 인증서와 상기 발급 노드의 서명을 포함하는 상기 발급 노드로 서명된 상기 사용자 노드의 임시 인증서를 생성하는 단계;
상기 다른 발급 노드 각각에서 상기 사용자 노드의 자체 서명 인증서를 수신하면, 상기 사용자 노드의 자체 서명 인증서에 포함된 상기 사용자 노드의 공개키와 상기 사용자 노드의 서명을 검증하고, 검증에 성공하면, 상기 사용자 노드의 자체 서명 인증서와 상기 다른 발급 노드의 서명을 포함하는 상기 다른 발급 노드로 서명된 상기 사용자 노드의 임시 인증서를 생성하여 또 다른 발급 노드들로 송신하는 단계;
상기 또 다른 발급 노드들 각각에서 상기 다른 발급 노드로 서명된 상기 사용자 노드의 임시 인증서를 수신하면, 상기 사용자 노드의 공개키와 상기 다른 발급 노드의 서명을 검증하고, 검증 결과를 상기 발급 노드의 공개키로 암호화하여 상기 다른 발급 노드로 송신하는 단계;
상기 다른 발급 노드들 각각에서 상기 다른 발급 노드로 서명된 상기 사용자 노드의 임시 인증서와 상기 또 다른 발급 노드들로부터 수신한 검증 결과를 상기 발급 노드로 송신하는 단계; 및
상기 발급 노드에서 상기 다른 발급 노드들의 서명을 모아서 상기 사용자 인증서를 생성하는 단계
를 포함하는 블록체인을 기반한 공개키 기반 구조 시스템의 방법.
generating each issuer certificate for each issuing node;
generating a user certificate when the issuing node receives a request for issuing a certificate from the user node; and
Storing the issuer certificate and the user certificate in a block chain for each issuing node
including,
The step of generating the user certificate comprises:
generating, in the user node, a self-signed certificate of the user node including the public key of the user node and a signature of the user node, and sending the requesting certificate issuance to the issuing node;
authenticating the user node when the issuing node receives the self-signed certificate of the user node;
If the issuing node succeeds in authentication of the user node, the self-signed certificate of the user node is transmitted to other issuing nodes, and the public key of the user node included in the self-signed certificate of the user node and the verifying the signature and, if successful, generating a temporary certificate of the user node signed by the issuing node including the self-signed certificate of the user node and the signature of the issuing node;
Upon receiving the self-signed certificate of the user node from each of the other issuing nodes, the public key of the user node and the signature of the user node included in the self-signed certificate of the user node are verified, and if the verification is successful, the user generating a temporary certificate of the user node signed with the other issuing node including the node's self-signed certificate and the signature of the other issuing node, and transmitting it to other issuing nodes;
Upon receiving the temporary certificate of the user node signed by the other issuing node from each of the other issuing nodes, the public key of the user node and the signature of the other issuing node are verified, and the verification result is disclosed to the issuing node encrypting it with a key and transmitting it to the other issuing node;
transmitting, from each of the other issuing nodes, the temporary certificate of the user node signed by the other issuing node and the verification result received from the other issuing nodes to the issuing node; and
generating the user certificate by collecting the signatures of the other issuing nodes in the issuing node
A method of a public key infrastructure system based on a block chain comprising a.
발급 노드 별로 각각의 발급자 인증서를 생성하는 단계;
발급 노드에서 사용자 노드로부터 인증서 발급을 요청 받으면, 사용자 인증서를 생성하는 단계; 및
상기 발급 노드 별로 상기 발급자 인증서 및 상기 사용자 인증서를 블록 체인에 저장하는 단계
를 포함하고,
상기 발급 노드 별로 상기 발급자 인증서 및 상기 사용자 인증서를 상기 블록체인에 저장하는 단계는,
상기 발급 노드 각각에서 자신이 생성한 인증서의 개수(n)와 상기 생성한 인증서의 머클 트리 해시값(mk)을 계산하여 다른 발급 노드들로 송신하여 공유하는 단계;
공유 결과 가장 많이 나타나는 상기 n과 상기 mk의 조합을 계산한 발급 노드를 선택하는 단계;
선택된 발급 노드들 각각에서 임시 블록을 생성하여 공유하는 단계;
상기 선택된 발급 노드들 각각에서 공유된 임시 블록들에 포함된 n과 mk를 확인하고, 상기 공유된 임시 블록 각각에 포함된 블록 서명을 확인하여 이상이 없으면, 상기 공유된 임시 블록들에 포함된 모든 블록 서명을 포함하는 블록을 생성하는 단계;
상기 선택된 발급 노드들 각각에서 상기 블록을 선택되지 않은 발급 노드들로 송신하는 단계; 및
상기 발급 노드들 각각에서 상기 블록을 저장하는 단계
를 포함하는 블록체인을 기반한 공개키 기반 구조 시스템의 방법.
generating each issuer certificate for each issuing node;
generating a user certificate when the issuing node receives a request for issuing a certificate from the user node; and
Storing the issuer certificate and the user certificate in a block chain for each issuing node
including,
Storing the issuer certificate and the user certificate in the block chain for each issuing node,
calculating the number (n) of certificates generated by each of the issuing nodes and a Merkle tree hash value (mk) of the generated certificates, and transmitting and sharing them with other issuing nodes;
selecting an issuing node that calculated a combination of n and mk that appears most frequently as a result of sharing;
generating and sharing a temporary block in each of the selected issuing nodes;
Check n and mk included in the shared temporary blocks in each of the selected issuing nodes, and check the block signature included in each of the shared temporary blocks. generating a block comprising a block signature;
transmitting the block from each of the selected issuing nodes to unselected issuing nodes; and
Storing the block at each of the issuing nodes
A method of a public key infrastructure system based on a block chain comprising a.
제6항에 있어서,
상기 발급 노드들 각각에서 상기 블록을 저장하는 단계는,
상기 발급 노드들은 상기 블록에 포함된 블록 서명들 중에서 기설정된 임계값 이상의 블록 서명이 검증되면 상기 블록을 저장하는
블록체인을 기반한 공개키 기반 구조 시스템의 방법.
7. The method of claim 6,
Storing the block in each of the issuing nodes comprises:
The issuing nodes store the block when a block signature greater than a preset threshold is verified among the block signatures included in the block.
A method of public key infrastructure system based on blockchain.
제6항에 있어서,
상기 임시 블록은,
상기 블록체인의 이전 블록의 헤더의 해시값, 상기 n, 상기 mk, 타임 스탬프 및 상기 선택된 발급 노드의 블록 서명
을 포함하는 블록체인을 기반한 공개키 기반 구조 시스템의 방법.
7. The method of claim 6,
The temporary block is
The hash value of the header of the previous block of the block chain, the n, the mk, the time stamp, and the block signature of the selected issuing node
A method of a public key infrastructure system based on a block chain comprising a.
제6항에 있어서,
상기 블록은,
상기 블록체인의 이전 블록의 헤더의 해시값, 상기 n, 상기 mk, 타임 스탬프 및 상기 선택된 발급 노드들의 모든 블록 서명
을 포함하는 블록체인을 기반한 공개키 기반 구조 시스템의 방법.
7. The method of claim 6,
The block is
The hash value of the header of the previous block of the blockchain, the n, the mk, the timestamp, and all block signatures of the selected issuing nodes
A method of a public key infrastructure system based on a block chain comprising a.
제1항에 있어서,
상기 발급자 인증서를 생성하는 단계 이후에,
상기 사용자 노드에서 상기 발급자 인증서를 검증하는 단계
를 더 포함하는 블록체인을 기반한 공개키 기반 구조 시스템의 방법.
According to claim 1,
After generating the issuer certificate,
verifying the issuer certificate at the user node
A method of a public key-based structure system based on a block chain further comprising a.
발급 노드 별로 각각의 발급자 인증서를 생성하는 단계;
사용자 노드에서 상기 발급자 인증서를 검증하는 단계;
발급 노드에서 사용자 노드로부터 인증서 발급을 요청 받으면, 사용자 인증서를 생성하는 단계; 및
상기 발급 노드 별로 상기 발급자 인증서 및 상기 사용자 인증서를 블록 체인에 저장하는 단계
를 포함하고,
상기 사용자 노드에서 상기 발급자 인증서를 검증하는 단계는,
상기 사용자 노드에서 상기 블록체인 시스템에 포함된 모든 발급 노드로부터 상기 발급자 인증서를 획득하는 단계;
상기 사용자 노드에서 상기 발급 노드의 상기 발급자 인증서에 포함된 서명들을 다른 발급 노드의 발급자 인증서에 포함된 공개키들을 이용하여 검증하는 단계; 및
상기 사용자 노드에서 검증된 서명의 수가 기설정된 임계값 이상인 발급자 인증서만을 신뢰할 수 있다고 판단하는 단계
를 포함하는 블록체인을 기반한 공개키 기반 구조 시스템의 방법.
generating each issuer certificate for each issuing node;
verifying the issuer certificate at a user node;
generating a user certificate when the issuing node receives a request for issuing a certificate from the user node; and
Storing the issuer certificate and the user certificate in a block chain for each issuing node
including,
The step of verifying the issuer certificate in the user node comprises:
obtaining the issuer certificate from all issuing nodes included in the block chain system in the user node;
verifying, at the user node, the signatures included in the issuer certificate of the issuing node using public keys included in the issuer certificate of another issuing node; and
Determining that only the issuer certificate in which the number of signatures verified by the user node is equal to or greater than a preset threshold is trustworthy;
A method of a public key infrastructure system based on a block chain comprising a.
제3항에 있어서,
상기 사용자 인증서를 생성하는 단계 이후에,
상기 사용자 노드에서 상기 사용자 인증서를 검증하는 단계
를 더 포함하는 블록체인을 기반한 공개키 기반 구조 시스템의 방법.
4. The method of claim 3,
After generating the user certificate,
verifying the user certificate at the user node
A method of a public key-based structure system based on a block chain further comprising a.
발급 노드 별로 각각의 발급자 인증서를 생성하는 단계;
발급 노드에서 사용자 노드로부터 인증서 발급을 요청 받으면, 사용자 인증서를 생성하는 단계;
상기 사용자 노드에서 상기 사용자 인증서를 검증하는 단계; 및
상기 발급 노드 별로 상기 발급자 인증서 및 상기 사용자 인증서를 블록 체인에 저장하는 단계
를 포함하고,
상기 사용자 노드에서 상기 사용자 인증서를 검증하는 단계는,
상기 사용자 노드에서 상기 사용자 인증서를 수신하는 단계;
상기 사용자 노드에서 상기 사용자 인증서에 포함된 상기 발급 노드들의 서명들을 신뢰하는 발급자 인증서들로 검증하는 단계; 및
검증 결과 상기 사용자 노드에서 상기 사용자 인증서에 포함된 상기 발급 노드들의 서명들 중에서 기설정된 임계값 이상의 서명이 검증되면 상기 사용자 인증서를 신뢰할 수 있다고 판단하는 단계
를 포함하는 블록체인을 기반한 공개키 기반 구조 시스템의 방법.
generating each issuer certificate for each issuing node;
generating a user certificate when the issuing node receives a request for issuing a certificate from the user node;
verifying the user certificate at the user node; and
Storing the issuer certificate and the user certificate in a block chain for each issuing node
including,
The step of verifying the user certificate in the user node comprises:
receiving the user certificate at the user node;
verifying, at the user node, signatures of the issuing nodes included in the user certificate with trusted issuer certificates; and
Determining that the user certificate is trustworthy if the user node verifies a signature equal to or greater than a preset threshold among the signatures of the issuing nodes included in the user certificate as a result of verification
A method of a public key infrastructure system based on a block chain comprising a.
복수의 발급 노드를 포함하고,
상기 복수의 발급 노드 각각은,
각각의 발급자 인증서를 생성하고, 사용자 노드로부터 인증서 발급을 요청 받으면 사용자 인증서를 생성하고, 상기 발급자 인증서 및 상기 사용자 인증서를 포함하는 블록을 생성하여 블록 체인에 저장하고,
상기 발급자 인증서는,
상기 발급 노드의 식별정보, 상기 발급 노드의 공개키, 모든 발급 노드들의 정보, 상기 모든 발급 노드들의 서명을 포함하는
블록체인을 기반한 공개키 기반 구조 시스템.
including a plurality of issuing nodes;
Each of the plurality of issuing nodes,
Generates each issuer certificate, generates a user certificate when requested to issue a certificate from a user node, generates a block including the issuer certificate and the user certificate, and stores it in a block chain;
The issuer certificate is
Identification information of the issuing node, the public key of the issuing node, information of all issuing nodes, and signatures of all issuing nodes
A public key infrastructure system based on blockchain.
KR1020190110855A 2019-09-06 2019-09-06 System and method for public key infrastructure based on block chain KR102291579B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190110855A KR102291579B1 (en) 2019-09-06 2019-09-06 System and method for public key infrastructure based on block chain

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190110855A KR102291579B1 (en) 2019-09-06 2019-09-06 System and method for public key infrastructure based on block chain

Publications (2)

Publication Number Publication Date
KR20210029517A KR20210029517A (en) 2021-03-16
KR102291579B1 true KR102291579B1 (en) 2021-08-19

Family

ID=75224099

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190110855A KR102291579B1 (en) 2019-09-06 2019-09-06 System and method for public key infrastructure based on block chain

Country Status (1)

Country Link
KR (1) KR102291579B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101723405B1 (en) 2016-07-04 2017-04-06 주식회사 코인플러그 Certificate authentication system and method based on block chain
KR101825320B1 (en) 2017-01-26 2018-03-22 (주)에이티솔루션즈 Method for Providing Certificate Management
KR101941625B1 (en) 2017-12-28 2019-01-24 주식회사 더봄에스 System for SNS finetech using authentication based selecting and method for operating the same

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180041055A (en) * 2017-09-06 2018-04-23 주식회사 코인플러그 Method for providing certificate service based on smart contract and server using the same
KR20180123967A (en) * 2018-04-30 2018-11-20 주식회사 코인플러그 METHOD FOR PAYING COST OF IoT DEVICE BASED ON BLOCKCHAIN, AND SERVER, SERVICE PROVIDING TERMINAL, AND DIGITAL WALLET USING THE SAME

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101723405B1 (en) 2016-07-04 2017-04-06 주식회사 코인플러그 Certificate authentication system and method based on block chain
KR101825320B1 (en) 2017-01-26 2018-03-22 (주)에이티솔루션즈 Method for Providing Certificate Management
KR101941625B1 (en) 2017-12-28 2019-01-24 주식회사 더봄에스 System for SNS finetech using authentication based selecting and method for operating the same

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Jean-Guillaume Dumas 외 1명, Matrix Powers algorithms for trust evaluation in PKI architectures, Researchgate.net (2011.07.12.)\*

Also Published As

Publication number Publication date
KR20210029517A (en) 2021-03-16

Similar Documents

Publication Publication Date Title
JP6684930B2 (en) Blockchain-based identity authentication method, device, node and system
US11463427B2 (en) Technologies for token-based authentication and authorization of distributed computing resources
US11228452B2 (en) Distributed certificate authority
US20190253260A1 (en) Electronic certification system
US7694329B2 (en) Secure delegation using public key authentication
US10567370B2 (en) Certificate authority
US10637818B2 (en) System and method for resetting passwords on electronic devices
US20110231662A1 (en) Certificate validation method and validation server
EP3966997B1 (en) Methods and devices for public key management using a blockchain
US20200344075A1 (en) Secure provisioning of keys
CN114008968A (en) System, method and storage medium for license authorization in a computing environment
CN112600831B (en) Network client identity authentication system and method
KR102291579B1 (en) System and method for public key infrastructure based on block chain
CN116707983A (en) Authorization authentication method and device, access authentication method and device, equipment and medium
CN110855442A (en) PKI (public key infrastructure) technology-based inter-device certificate verification method
US11595218B2 (en) Authorization delegation
KR101749449B1 (en) Two Level Privacy Preserving Pseudonymous Authentication Method for Vehicular Ad-Hoc Network and System Therefor
WO2015173900A1 (en) Certificate-authority management method, network apparatus, and program
KR20210123575A (en) Termimal, server, lightweight authentication method using the same
KR102561247B1 (en) Method for transmitting data using a secret distributed
JP5641493B2 (en) Public key certificate verification processing system
CN106375340B (en) Method and system for improving certificate verification security
CN114154125A (en) Certificateless identity authentication scheme of blockchain under cloud computing environment
Ali Adding Public Key Security to SSH
JP2005252952A (en) Data verification certification system and data verification certification processing program

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