KR102561247B1 - Method for transmitting data using a secret distributed - Google Patents

Method for transmitting data using a secret distributed Download PDF

Info

Publication number
KR102561247B1
KR102561247B1 KR1020210093186A KR20210093186A KR102561247B1 KR 102561247 B1 KR102561247 B1 KR 102561247B1 KR 1020210093186 A KR1020210093186 A KR 1020210093186A KR 20210093186 A KR20210093186 A KR 20210093186A KR 102561247 B1 KR102561247 B1 KR 102561247B1
Authority
KR
South Korea
Prior art keywords
verification value
secret
distributed
verification
distribution
Prior art date
Application number
KR1020210093186A
Other languages
Korean (ko)
Other versions
KR20230012676A (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 KR1020210093186A priority Critical patent/KR102561247B1/en
Publication of KR20230012676A publication Critical patent/KR20230012676A/en
Application granted granted Critical
Publication of KR102561247B1 publication Critical patent/KR102561247B1/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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/3218Cryptographic 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 proof of knowledge, e.g. Fiat-Shamir, GQ, Schnorr, ornon-interactive zero-knowledge proofs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures

Abstract

본 발명은 비밀 분산을 이용한 데이터 전송 방법에 관한 것으로, 사용자 단말기와 발급 서버가 비밀 분산을 이용해서 사용자의 비밀 데이터를 분산하여 저장하고, 증명서를 생성하고, 검증 단말기에서 사용자 단말기로부터 증명서를 수신하면 발급 서버를 통해서 사용자의 분산된 데이터를 수신하고, 수신한 분산된 데이터와 증명서를 이용해서 비밀 데이터를 복구하고, 검증한다.The present invention relates to a data transmission method using secret distribution, wherein a user terminal and an issuing server distribute and store secret data of a user using secret distribution, generate a certificate, and when a verification terminal receives the certificate from the user terminal, The distributed data of the user is received through the issuing server, and the secret data is restored and verified using the received distributed data and certificate.

Description

비밀 분산을 이용한 데이터 전송 방법{METHOD FOR TRANSMITTING DATA USING A SECRET DISTRIBUTED}Data transmission method using secret distribution {METHOD FOR TRANSMITTING DATA USING A SECRET DISTRIBUTED}

이하의 일 실시 예들은 안전한 데이터 전송 기법에 관한 것으로, 특히, 신뢰기관과 공유하고 있는 개인의 비밀 데이터를 제3의 다른 기관 또는 사람에게 안전하게 전달하기 위한 비밀 데이터 전송하는 기술에 관한 것입니다.The following embodiments relate to a secure data transmission technique, and in particular, to a technique for transmitting confidential data to safely deliver personal confidential data shared with a trusted institution to a third party or other person.

단말기가 고성능/고용량화 되어 감에 따라, 단말기의 내부의 중요 데이터인 비밀 데이터에 대한 보호 및 관리의 중요성이 대두되고 있다.As terminals become high-performance/high-capacity, the importance of protecting and managing confidential data, which is important data inside the terminal, is emerging.

이러한 비밀 데이터의 보호 및 관리를 위해서 종래에는 단말기의 비밀 데이터를 암호화하여 외부 저장 장치에 저장하여 백업하는 방법이 이용되고 있다.In order to protect and manage such secret data, a method of encrypting secret data of a terminal and storing them in an external storage device for backup has been conventionally used.

하지만, 비밀 데이터가 하나의 외부 저장 장치에 저장되는 경우, 저장 장치가 해킹되는 경우 비밀 데이터가 손쉽게 유출되는 문제가 발생할 수 있다.However, when secret data is stored in an external storage device, if the storage device is hacked, secret data may be easily leaked.

따라서, 비밀 데이터를 외부 저장 장치에 저장함에 있어서, 보다 안전한 방법에 요구되고 있다.Therefore, there is a need for a more secure method for storing confidential data in an external storage device.

또한, 비밀 데이터를 다른 사람에는 기관으로 안전하게 송부하는 방법이 요구되고 있다.In addition, there is a demand for a method of safely sending confidential data to other people or institutions.

본 발명은 비밀 분산을 이용한 데이터 전송 방법을 제공하는 것을 목적으로 한다.An object of the present invention is to provide a data transmission method using secret distribution.

본 발명의 일 실시 예에 따른 비밀 분산을 이용한 데이터 전송 방법은, 사용자 단말기에서 발급 서버로 비밀 데이터를 전송하는 단계; 상기 사용자 단말기에서 상기 발급 서버로 증명서 발급을 요청하는 단계; 상기 발급 서버에서 상기 비밀 데이터를 암호학적 비밀 분산 알고리즘을 이용해서 복수의 조각으로 분산하는 단계; 상기 발급 서버에서 분산된 조각들 중 하나를 제3 분산 조각으로 선택하고, 상기 제3 분산 조각으로 검증값을 생성하는 단계; 상기 발급 서버에서 상기 분산된 조각들 중에서 상기 제3 분산 조각을 제외한 하나를 제1 분산 조각으로 선택하고, 상기 제1 분산 조각과 상기 검증값을 포함하는 증명서를 생성하는 단계; 상기 발급 서버에서 상기 분산된 조각들 중에서 상기 제1 분산 조각과 상기 제3 분산 조각을 제외한 나머지를 제2 분산 조각으로 선택하고, 상기 제2 분산 조각과 상기 검증값을 저장하는 단계; 및 상기 발급 서버에서 상기 증명서를 상기 사용자 단말기로 전송하는 단계를 포함한다.A data transmission method using secret distribution according to an embodiment of the present invention includes transmitting secret data from a user terminal to an issuing server; requesting certificate issuance from the user terminal to the issuing server; distributing the secret data into a plurality of pieces using a cryptographic secret distribution algorithm in the issuing server; selecting one of the pieces distributed by the issuing server as a third distribution piece and generating a verification value with the third distribution piece; selecting, in the issuing server, one of the distributed pieces except for the third distribution piece as a first distribution piece, and generating a certificate including the first distribution piece and the verification value; selecting, in the issuing server, other than the first distribution pieces and the third distribution pieces from among the distributed pieces as second distribution pieces, and storing the second distribution pieces and the verification value; and transmitting the certificate from the issuing server to the user terminal.

이때, 상기 발급 서버에서 상기 비밀 데이터를 암호학적 비밀 분산 알고리즘을 이용해서 복수의 조각으로 분산하는 단계는, 샤미르 비밀 공유(Shamir Secret Sharing) 기법에서 정의하는 비밀 분산 알고리즘을 이용해서 상기 비밀 데이터를 복수의 조각으로 분산할 수 있다.At this time, the step of distributing the secret data into a plurality of pieces using a cryptographic secret distribution algorithm in the issuing server may include dividing the secret data into a plurality of pieces using a secret distribution algorithm defined in the Shamir Secret Sharing technique. can be dispersed into fragments of

이때, 상기 검증값을 생성하는 단계는, 상기 제3 분산 조각을 해쉬하여 상기 검증값을 생성할 수 있다.In this case, in the generating of the verification value, the verification value may be generated by hashing the third distributed fragment.

이때, 상기 제1 분산 조각과 상기 검증값을 포함하는 증명서를 생성하는 단계는, 상기 제1 분산 조각과 상기 검증값을 상기 발급 서버의 서명으로 전자서명하여 상기 증명서를 생성할 수 있다.In this case, in the generating of the certificate including the first distributed fragment and the verification value, the certificate may be generated by digitally signing the first distributed fragment and the verification value with the signature of the issuing server.

이때, 비밀 분산을 이용한 데이터 전송 방법은, 상기 사용자 단말기에서 상기 증명서에 전자서명하여 서명된 증명서를 생성하는 단계; 상기 사용자 단말기에서 검증 단말기로 상기 서명된 증명서를 전송하는 단계; 상기 검증 단말기에서 상기 서명된 증명서를 검증하고, 상기 증명서를 획득하는 단계; 상기 검증 단말기에서 상기 증명서에 포함된 상기 제1 분산 조각과 상기 검증값을 추출하는 단계; 상기 검증 단말기에서 상기 발급 서버로 상기 검증값을 전송하여 상기 비밀 데이터의 복구에 필요한 분산 조각을 요청하는 단계; 상기 발급 서버에서 분산 조각을 요청받으면, 상기 발급 서버에 저장된 검증값과 상기 검증 단말기로부터 수신된 검증값이 일치하는지 확인하는 단계; 상기 발급 서버에서 상기 발급 서버에 저장된 검증값과 상기 검증 단말기로부터 수신된 검증값이 일치하면, 상기 발급 서버에 저장된 상기 제2 분산 조각을 검색하여 상기 검증 단말기로 전송하는 단계; 상기 검증 단말기에서 상기 비밀 분산 알고리즘에 대응하는 비밀 복구 알고리즘을 이용해서 상기 제1 분산 조각과 상기 발급 서버로부터 수신한 상기 제2 분산 조각으로부터 비밀 데이터를 복구하여 복구된 비밀 데이터를 생성하는 단계; 상기 검증 단말기에서 상기 비밀 복구 알고리즘을 이용해서 상기 복구된 비밀 데이터와 상기 제1 분산 조각으로부터 제3 분산 조각을 복구하여 복구된 제3 분산 조각을 생성하는 단계; 및 상기 검증 단말기에서 상기 복구된 제3 분산 조각을 이용해서 임시 검증값을 생성하고, 상기 임시 검증값이 상기 증명서에 포함된 상기 검증값과 일치하면 상기 복구된 비밀 데이터가 상기 비밀 데이터와 동일하다고 확인하는 단계를 더 포함할 수 있다.At this time, the data transmission method using secret distribution may include generating a signed certificate by digitally signing the certificate in the user terminal; transmitting the signed certificate from the user terminal to a verification terminal; verifying the signed certificate at the verification terminal and obtaining the certificate; extracting the first distributed fragment and the verification value included in the certificate in the verification terminal; transmitting the verification value from the verification terminal to the issuing server and requesting a distributed fragment required for recovery of the secret data; checking whether the verification value stored in the issuing server and the verification value received from the verification terminal match when the issuing server receives a request for distributed fragments; in the issuing server, when the verification value stored in the issuing server and the verification value received from the verification terminal match, searching for the second distributed fragment stored in the issuing server and transmitting the same to the verification terminal; generating recovered secret data by recovering secret data from the first distributed fragment and the second distributed fragment received from the issuing server using a secret recovery algorithm corresponding to the secret distribution algorithm in the verification terminal; generating a recovered third distributed fragment by recovering a third distributed fragment from the recovered secret data and the first distributed fragment using the secret recovery algorithm in the verification terminal; and the verification terminal generates a temporary verification value using the recovered third distributed fragment, and if the temporary verification value matches the verification value included in the certificate, the recovered secret data is identical to the secret data. A confirmation step may be further included.

이때, 상기 검증 단말기에서 상기 서명된 증명서를 검증하고, 상기 증명서를 획득하는 단계는, 상기 서명된 증명서가 상기 사용자 단말기의 사용자의 서명으로 전자 서명되었는지 확인하고, 상기 서명된 증명서에 포함된 상기 증명서가 상기 발급 서버의 서명으로 전자서명 되었는지 확인하여 검증할 수 있다.In this case, the verifying the signed certificate in the verification terminal and obtaining the certificate may include checking whether the signed certificate is electronically signed with the signature of the user of the user terminal, and the certificate included in the signed certificate It can be verified by checking whether the digital signature is signed with the signature of the issuing server.

이때, 상기 검증 단말기에서 상기 복구된 제3 분산 조각을 이용해서 임시 검증값을 생성하고, 상기 임시 검증값이 상기 증명서에 포함된 상기 검증값과 일치하면 상기 복구된 비밀 데이터가 상기 비밀 데이터와 동일하다고 확인하는 단계는, 상기 복구된 제3 분산 조각을 해쉬하여 상기 임시 검증값을 생성할 수 있다.At this time, the verification terminal generates a temporary verification value using the recovered third distributed fragment, and if the temporary verification value matches the verification value included in the certificate, the recovered secret data is identical to the secret data In the step of confirming that it is, the temporary verification value may be generated by hashing the restored third distributed fragment.

본 발명의 다른 실시 예에 따른 비밀 분산을 이용한 데이터 전송 방법은, 사용자 단말기에서 발급 서버로 비밀 데이터를 전송하는 단계; 상기 사용자 단말기에서 상기 비밀 데이터를 암호학적 비밀 분산 알고리즘을 이용해 복수의 조각으로 분산하는 단계; 상기 사용자 단말기에서 분산된 조각들 중 하나를 제3 분산 조각으로 선택하고, 상기 제3 분산 조각과 상기 비밀 데이터를 이용해서 발급자 검증값을 생성하는 단계; 상기 사용자 단말기에서 상기 분산된 조각들 중에서 증명서에 포함될 제1 분산 조각을 선택하는 단계; 상기 사용자 단말기에서 상기 분산된 조각들 중에서 상기 제1 분산 조각과 상기 제3 분산 조각을 제외한 나머지를 제2 분산 조각으로 선택하고, 상기 제2 분산 조각과 상기 발급자 검증값을 상기 발급 서버로 전송하는 단계; 상기 발급 서버에서 상기 비밀 분산 알고리즘에 대응하는 비밀 복구 알고리즘을 이용해서 상기 제2 분산 조각과 상기 발급자 검증값으로부터 제3 분산 조각을 복구하여 복구된 제3 분산 조각을 생성하는 단계; 상기 발급 서버에서 상기 비밀 데이터와 상기 복구된 제3 분산 조각을 이용해서 임시 발급자 검증값을 생성하고, 상기 임시 발급자 검증값과 상기 발급자 검증값이 일치하는지 확인하는 단계; 상기 발급 서버에서 상기 임시 발급자 검증값과 상기 발급자 검증값이 일치하면, 상기 복구된 제3 분산 조각을 이용해서 검증값을 생성하고, 상기 검증값과 제2 분산 조각을 저장하는 단계; 상기 발급 서버에서 상기 검증값을 상기 사용자 단말기로 전송하는 단계; 및 상기 사용자 단말기에서 상기 검증값을 수신하면, 상기 제1 분산 조각과 상기 검증값을 포함하는 증명서를 생성하는 단계를 포함한다.A data transmission method using secret distribution according to another embodiment of the present invention includes transmitting secret data from a user terminal to an issuing server; distributing the secret data into a plurality of pieces using a cryptographic secret distribution algorithm in the user terminal; selecting one of the fragments distributed in the user terminal as a third distributed fragment and generating an issuer verification value using the third distributed fragment and the secret data; selecting a first distributed fragment to be included in a certificate from among the distributed fragments in the user terminal; The user terminal selects other distributed pieces other than the first distributed piece and the third distributed piece from among the distributed pieces as a second distributed piece, and transmits the second distributed piece and the issuer verification value to the issuing server. step; generating a recovered third distribution fragment by recovering a third distribution fragment from the second distribution fragment and the issuer verification value by using a secret recovery algorithm corresponding to the secret distribution algorithm in the issuing server; generating a temporary issuer verification value by using the secret data and the restored third distributed fragment in the issuing server, and verifying whether the temporary issuer verification value and the issuer verification value match; generating a verification value using the restored third distribution fragment and storing the verification value and the second distribution fragment when the temporary issuer verification value and the issuer verification value coincide with each other in the issuing server; transmitting the verification value from the issuing server to the user terminal; and generating a certificate including the first distributed fragment and the verification value when the user terminal receives the verification value.

이때, 상기 사용자 단말기에서 분산된 조각들 중 하나를 제3 분산 조각으로 선택하고, 상기 제3 분산 조각과 상기 비밀 데이터를 이용해서 발급자 검증값을 생성하는 단계는, 상기 비밀 데이터와 상기 제3 분산 조각을 연접하고, 해쉬하여 상기 발급자 검증값을 생성할 수 있다.In this case, the step of selecting one of the fragments distributed in the user terminal as the third distributed fragment and generating an issuer verification value using the third distributed fragment and the secret data, the secret data and the third distributed fragment. The issuer verification value can be generated by concatenating and hashing the pieces.

이때, 상기 발급 서버에서 상기 비밀 데이터와 상기 복구된 제3 분산 조각을 이용해서 임시 발급자 검증값을 생성하고, 상기 임시 발급자 검증값과 상기 발급자 검증값이 일치하는지 확인하는 단계는, 상기 비밀 데이터와 상기 복구된 제3 분산 조각을 연접하고, 해쉬하여 상기 임시 발급자 검증값을 생성할 수 있다.In this case, the step of generating a temporary issuer verification value using the secret data and the restored third distributed fragment in the issuing server and confirming whether the temporary issuer verification value and the issuer verification value match the secret data and The temporary issuer verification value may be generated by concatenating and hashing the recovered third distributed fragments.

이때, 상기 발급 서버에서 상기 임시 발급자 검증값과 상기 발급자 검증값이 일치하면, 상기 복구된 제3 분산 조각을 이용해서 검증값을 생성하고, 상기 검증값과 제2 분산 조각을 저장하는 단계는, 상기 복구된 제3 분산 조각을 해쉬하여 상기 검증값을 생성할 수 있다.In this case, in the issuing server, if the temporary issuer verification value and the issuer verification value match, generating a verification value using the restored third distribution fragment and storing the verification value and the second distribution fragment, The verification value may be generated by hashing the restored third distributed fragment.

이때, 상기 사용자 단말기에서 상기 검증값을 수신하면, 상기 제1 분산 조각과 상기 검증값을 포함하는 증명서를 생성하는 단계는, 상기 제1 분산 조각과 상기 검증값을 상기 사용자 단말기의 사용자의 서명으로 전자서명하여 상기 증명서를 생성할 수 있다.At this time, when the user terminal receives the verification value, generating a certificate including the first distributed fragment and the verification value comprises using the first distributed fragment and the verification value as a signature of a user of the user terminal. The certificate may be generated by digital signature.

이때, 비밀 분산을 이용한 데이터 전송 방법은, 상기 사용자 단말기에서 상기 증명서에 전자서명하여 서명된 증명서를 생성하는 단계; 상기 사용자 단말기에서 검증 단말기로 상기 서명된 증명서를 전송하는 단계; 상기 검증 단말기에서 상기 서명된 증명서를 검증하고, 상기 증명서를 획득하는 단계; 상기 검증 단말기에서 상기 증명서에 포함된 상기 제1 분산 조각과 상기 검증값을 추출하는 단계; 상기 검증 단말기에서 상기 발급 서버로 상기 검증값을 전송하여 상기 비밀 데이터의 복구에 필요한 분산 조각을 요청하는 단계; 상기 발급 서버에서 분산 조각을 요청받으면, 상기 발급 서버에 저장된 검증값과 상기 검증 단말기로부터 수신된 검증값이 일치하는지 확인하는 단계; 상기 발급 서버에서 상기 발급 서버에 저장된 검증값과 상기 검증 단말기로부터 수신된 검증값이 일치하면, 상기 발급 서버에 저장된 상기 제2 분산 조각을 검색하여 상기 검증 단말기로 전송하는 단계; 상기 검증 단말기에서 상기 비밀 분산 알고리즘에 대응하는 비밀 복구 알고리즘을 이용해서 상기 제1 분산 조각과 상기 발급 서버로부터 수신한 상기 제2 분산 조각으로부터 비밀 데이터를 복구하여 복구된 비밀 데이터를 생성하는 단계; 상기 검증 단말기에서 상기 비밀 복구 알고리즘을 이용해서 상기 복구된 비밀 데이터와 상기 제1 분산 조각으로부터 제3 분산 조각을 복구하여 복구된 제3 분산 조각을 생성하는 단계; 및 상기 검증 단말기에서 상기 복구된 제3 분산 조각을 이용해서 임시 검증값을 생성하고, 상기 임시 검증값이 상기 증명서에 포함된 상기 검증값과 일치하면 상기 복구된 비밀 데이터가 상기 비밀 데이터와 동일하다고 확인하는 단계를 더 포함할 수 있다.At this time, the data transmission method using secret distribution may include generating a signed certificate by digitally signing the certificate in the user terminal; transmitting the signed certificate from the user terminal to a verification terminal; verifying the signed certificate at the verification terminal and obtaining the certificate; extracting the first distributed fragment and the verification value included in the certificate in the verification terminal; transmitting the verification value from the verification terminal to the issuing server and requesting a distributed fragment required for recovery of the secret data; checking whether the verification value stored in the issuing server and the verification value received from the verification terminal match when the issuing server receives a request for distributed fragments; in the issuing server, when the verification value stored in the issuing server and the verification value received from the verification terminal match, searching for the second distributed fragment stored in the issuing server and transmitting the same to the verification terminal; generating recovered secret data by recovering secret data from the first distributed fragment and the second distributed fragment received from the issuing server using a secret recovery algorithm corresponding to the secret distribution algorithm in the verification terminal; generating a recovered third distributed fragment by recovering a third distributed fragment from the recovered secret data and the first distributed fragment using the secret recovery algorithm in the verification terminal; and the verification terminal generates a temporary verification value using the recovered third distributed fragment, and if the temporary verification value matches the verification value included in the certificate, the recovered secret data is identical to the secret data. A confirmation step may be further included.

이때, 상기 검증 단말기에서 상기 서명된 증명서를 검증하고, 상기 증명서를 획득하는 단계는, 상기 서명된 증명서가 상기 사용자 단말기의 사용자의 서명으로 전자 서명되었는지 확인하여 검증할 수 있다.In this case, the verifying the signed certificate in the verification terminal and obtaining the certificate may include verifying whether the signed certificate is electronically signed with the signature of the user of the user terminal.

이때, 상기 검증 단말기에서 상기 복구된 제3 분산 조각을 이용해서 임시 검증값을 생성하고, 상기 임시 검증값이 상기 증명서에 포함된 상기 검증값과 일치하면 상기 복구된 비밀 데이터가 상기 비밀 데이터와 동일하다고 확인하는 단계는, 상기 복구된 제3 분산 조각을 해쉬하여 상기 임시 검증값을 생성할 수 있다.At this time, the verification terminal generates a temporary verification value using the recovered third distributed fragment, and if the temporary verification value matches the verification value included in the certificate, the recovered secret data is identical to the secret data In the step of confirming that it is, the temporary verification value may be generated by hashing the restored third distributed fragment.

본 발명은 비밀 분산을 이용한 데이터 전송 방법에 관한 것으로, 사용자 단말기와 발급 서버가 비밀 분산을 이용해서 사용자의 비밀 데이터를 분산하여 저장함으로써, 사용자 단말기를 분실하거나 발급 서버가 해킹되어도 비밀 데이터의 보안이 유지될 수 있으며, 사용자는 증명서를 전송함으로써 비밀 데이터를 안전하게 전송할 수 있다.The present invention relates to a data transmission method using secret distribution, wherein a user terminal and an issuing server distribute and store secret data of a user using secret distribution, so that even if the user terminal is lost or the issuing server is hacked, the security of the secret data is guaranteed. It can be maintained, and the user can safely transmit secret data by sending a certificate.

도 1은 본 발명의 일 실시 예에 따른 비밀 분산을 이용한 데이터 전송 시스템의 개략적인 구성을 도시한 도면이다.
도 2는 본 발명의 일 실시 예에 따른 데이터 전송 시스템에서 사용자 단말기와 발급 서버에서 비밀 데이터를 저장하고 발급 서버에서 증명서를 생성하는 과정을 도시한 흐름도이다.
도 3은 본 발명의 일 실시 예에 따른 데이터 전송 시스템에서 사용자 단말기와 발급 서버에서 비밀 데이터를 저장하고, 사용자 단말기에서 증명서를 생성하는 과정을 도시한 흐름도이다.
도 4는 본 발명의 일 실시 예에 따른 데이터 전송 시스템에서 비밀 데이터를 전송하는 과정을 도시한 흐름도이다.
1 is a diagram showing a schematic configuration of a data transmission system using secret distribution according to an embodiment of the present invention.
2 is a flowchart illustrating a process of storing secret data in a user terminal and an issuing server and generating a certificate in the issuing server in a data transmission system according to an embodiment of the present invention.
3 is a flowchart illustrating a process of storing secret data in a user terminal and an issuing server and generating a certificate in a user terminal in a data transmission system according to an embodiment of the present invention.
4 is a flowchart illustrating a process of transmitting confidential data in a data transmission 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 can 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 changes, equivalents or substitutes to the embodiments are included within the scope of rights.

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

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by a person 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 unless explicitly defined in the present application, they should not be interpreted in an ideal or excessively formal meaning. don't

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same reference numerals are given to the same components regardless of reference numerals, and overlapping descriptions thereof will be omitted. In describing 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 will be omitted.

또한, 실시 예의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 어떤 구성 요소가 다른 구성요소에 "연결", "결합" 또는 "접속"된다고 기재된 경우, 그 구성 요소는 그 다른 구성요소에 직접적으로 연결되거나 접속될 수 있지만, 각 구성 요소 사이에 또 다른 구성 요소가 "연결", "결합" 또는 "접속"될 수도 있다고 이해되어야 할 것이다. In addition, in describing the components of the embodiment, terms such as first, second, A, B, (a), and (b) may be used. These terms are only used to distinguish the component from other components, and the nature, order, or order of the corresponding component is not limited by the term. When an element is described as being “connected,” “coupled to,” or “connected” to another element, that element may be directly connected or connected to the other element, but there may be another element between the elements. It should be understood that may be "connected", "coupled" or "connected".

어느 하나의 실시 예에 포함된 구성요소와, 공통적인 기능을 포함하는 구성요소는, 다른 실시 예에서 동일한 명칭을 사용하여 설명하기로 한다. 반대되는 기재가 없는 이상, 어느 하나의 실시 예에 기재한 설명은 다른 실시 예에도 적용될 수 있으며, 중복되는 범위에서 구체적인 설명은 생략하기로 한다.Components included in one embodiment and components having common functions will be described using the same names in other embodiments. Unless stated to the contrary, descriptions described in one embodiment may be applied to other embodiments, and detailed descriptions will be omitted to the extent of overlap.

이하에서는, 본 발명의 일 실시 예에 따른 비밀 분산을 이용한 데이터 전송 시스템 및 방법을 첨부된 도 1 내지 도 4를 참조하여 상세히 설명한다.Hereinafter, a data transmission system and method using secret distribution according to an embodiment of the present invention will be described in detail with reference to FIGS. 1 to 4 attached.

도 1은 본 발명의 일 실시 예에 따른 비밀 분산을 이용한 데이터 전송 시스템의 개략적인 구성을 도시한 도면이다.1 is a diagram showing a schematic configuration of a data transmission system using secret distribution according to an embodiment of the present invention.

도 1을 참조하면, 비밀 분산을 이용한 데이터 전송 시스템은 사용자 단말기(110), 발급 서버(120) 및 검증 단말기(130)으로 구성될 수 있다.Referring to FIG. 1 , a data transmission system using secret distribution may include a user terminal 110 , an issue server 120 and a verification terminal 130 .

사용자 단말기(110)와 발급 서버(120)는 비밀 분산 방법을 이용해서 사용자의 비밀 데이터를 분산하여 저장하고, 사용자가 비밀 데이터의 전달을 허가했음을 증명할 수 있는 증명서를 생성한다.The user terminal 110 and the issuance server 120 distribute and store user secret data using a secret distribution method, and generate a certificate proving that the user permits the transmission of the secret data.

증명서는 사용자 단말기(110) 또는 발급 서버(120)를 통해서 생성될 수 있으며, 도 2에서는 발급 서버(120)에서 증명서를 생성하는 경우를 설명하고, 도 3에서는 사용자 단말기(110)에서 증명서를 생성하는 경우를 설명하다.The certificate may be generated through the user terminal 110 or the issuing server 120. In FIG. 2, a case in which the issuing server 120 generates the certificate is described, and in FIG. 3, the user terminal 110 generates the certificate explain the case

검증 단말기(130)는 사용자 단말기(110)로부터 증명서를 수신하면 발급 서버(120)를 통해서 사용자의 분산된 데이터를 수신하고, 수신한 분산된 데이터와 증명서를 이용해서 비밀 데이터를 복구하고, 검증할 수 있다.When the verification terminal 130 receives the certificate from the user terminal 110, it receives the distributed data of the user through the issuing server 120, recovers the secret data using the received distributed data and the certificate, and verifies the confidential data. can

검증 단말기(130)에서 증명서를 수신하고, 비밀 데이터를 복구하고, 검증하는 구체적인 내용은 이후 도 4를 통해서 보다 상세히 후술하고자 한다.Details of receiving a certificate, recovering secret data, and verifying the verification terminal 130 will be described later in detail with reference to FIG. 4 .

이하, 상기와 같이 구성된 본 발명에 따른 방법을 아래에서 도면을 참조하여 설명한다.Hereinafter, the method according to the present invention configured as described above will be described with reference to the drawings below.

도 2는 본 발명의 일 실시 예에 따른 데이터 전송 시스템에서 사용자 단말기와 발급 서버에서 비밀 데이터를 저장하고 발급 서버에서 증명서를 생성하는 과정을 도시한 흐름도이다.2 is a flowchart illustrating a process of storing secret data in a user terminal and an issuing server and generating a certificate in the issuing server in a data transmission system according to an embodiment of the present invention.

도 2를 참조하면, 사용자 단말기(110)는 발급 서버(120)로 비밀 데이터(S)를 전송한다(210).Referring to FIG. 2 , the user terminal 110 transmits secret data S to the issuing server 120 (210).

그리고, 사용자 단말기(110)는 발급 서버(120)로 증명서 발급을 요청한다(212).Then, the user terminal 110 requests certificate issuance to the issuing server 120 (212).

이후, 발급 서버(120)에서 비밀 데이터를 암호학적 비밀 분산 알고리즘을 이용해서 복수의 조각(C1, C2, C3)으로 분산한다(214).Thereafter, the issuing server 120 distributes the secret data into a plurality of pieces C1, C2, and C3 using a cryptographic secret distribution algorithm (214).

비밀 데이터(S)에 대하여 임계값(t, threshold)을 갖는 암호학적 비밀 분산 기법을 이용해 복수(n)개의 조각으로 분산한다. 이때, n은 t+1보다 크다.The secret data (S) is distributed into multiple (n) pieces using a cryptographic secret distribution technique having a threshold (t, threshold). At this time, n is greater than t+1.

비밀 데이터(S)는 n개의 조각(c1, c2, ??, cn)으로 분산되고, t+1개 이상의 분산 조각이 모였을 때만 S를 복구할 수 있다.The secret data (S) is distributed into n pieces (c1, c2, ??, cn), and S can be recovered only when t+1 or more distributed pieces are gathered.

비밀 분산(SecretSharing)은 아래 <수학식 1>의 예와 같이 수행될 수 있다.Secret Sharing may be performed as in the example of Equation 1 below.

[수학식 1][Equation 1]

(c1, c2, ??, cn) = SS(S)(c1, c2, ??, cn) = SS(S)

여기서, c1, c2, ??, cn는 분산 조각이고, S는 비밀 데이터이고, SS()는 암호학적 비밀 분산 기법에 해당하는 비밀 분산 알고리즘이다.Here, c1, c2, ??, cn are distributed pieces, S is secret data, and SS() is a secret distribution algorithm corresponding to a cryptographic secret distribution technique.

비밀 복구(SecretReconstruct)는 <수학식 2>의 예와 같이 수행될 수 있다.Secret Reconstruct may be performed as in the example of Equation 2.

[수학식 2][Equation 2]

S = SR(c1, c2, ??, ct+1)S = SR(c1, c2, ??, ct+1)

여기서, c1, c2, ??, ct+1는 분산 조각이고, t는 (n > t+1)의 특징을 가진 임계값이고, S는 비밀 데이터이고, SR은 비밀 복구 알고리즘이다.Here, c1, c2, ??, ct+1 are distributed fragments, t is a threshold value with characteristics of (n > t+1), S is secret data, and SR is a secret recovery algorithm.

이때, 암호학적 비밀 분산 기법으로 샤미르 비밀 공유(Shamir Secret Sharing) 기법이 적용될 수 있으며, 샤미르 비밀 공유 기법의 구체적인 설명은 도 4 이후에 후술한다.In this case, a Shamir Secret Sharing technique may be applied as a cryptographic secret distribution technique, and a detailed description of the Shamir Secret Sharing technique will be described later after FIG. 4 .

214단계에서 발급 서버(120)는 샤미르 비밀 공유(Shamir Secret Sharing) 기법에서 정의하는 비밀 분산 알고리즘(SS)을 이용해서 아래 <수학식 3>의 예와 같이 비밀 데이터를 복수의 조각(C1, C2, C3)으로 분산할 수 있다.In step 214, the issuing server 120 uses the secret distribution algorithm (SS) defined in the Shamir Secret Sharing technique to divide the secret data into a plurality of pieces (C1, C2) as shown in Equation 3 below. , C3).

[수학식 3][Equation 3]

(C1, C2, C3) = SS(S)(C1, C2, C3) = SS(S)

여기서, C1은 분산 조각(c1, c2, ??, cn) 중에서 증명서에 포함되는 하나의 분산 조각으로 제1 분산 조각이라 칭하고, C3는 분산 조각(c1, c2, ??, cn) 중에서 검증값을 생성하기 위해서 선택된 하나의 분산 조각으로 제3 분산 조각이라 칭하고, C2는 분산 조각(c1, c2, ??, cn) 중에서 C1와 C3를 제외한 나머지 분산조각(c1, c2, ??, ct+1)으로 제2 분산 조각이라고 칭하고, S는 비밀 데이터이고, SS()는 비밀 분산 알고리즘이다. Here, C1 is one of the distributed pieces (c1, c2, ??, cn) included in the certificate and is referred to as the first distributed piece, and C3 is a verification value among the distributed pieces (c1, c2, ??, cn) One of the dispersion pieces selected to generate is called the third dispersion piece, and C2 is the dispersion pieces (c1, c2, ??, ct+ 1) is called the second distributed fragment, S is the secret data, and SS() is the secret distribution algorithm.

즉, 제2 분산 조각은 복수개가 될 수 있다.That is, the number of second dispersion pieces may be plural.

발급 서버(120)는 분산된 조각들 중 하나를 제3 분산 조각(C3)으로 선택하고, 제3 분산 조각(C3)으로 검증값(V)을 생성한다(216). 이때, 제3 분산 조각(C3)의 선택은 분산된 조각들의 순서와 무관하게 선택될 수 있다.The issuing server 120 selects one of the distributed pieces as the third distribution piece C3 and generates a verification value V with the third distribution piece C3 (216). At this time, the selection of the third dispersion pieces C3 may be selected regardless of the order of the dispersed pieces.

216단계에서 발급 서버(120)는 아래 <수학식4>의 예와 같이 제3 분산 조각(C3)을 해쉬하여 검증값(V)을 생성한다. 비밀 분산 알고리즘은 복구에 사용된 분산 조각 중 어느 하나가 잘못된 경우에 원하지 않는 값으로 복구된다. 복구된 비밀 데이터(S')와 원래의 비밀 데이터(S)가 동일함을 확인하기 위한 검증값(V)이 사용된다.In step 216, the issuing server 120 generates a verification value (V) by hashing the third distributed piece (C3) as in the example of Equation 4 below. The secret distribution algorithm recovers to an undesirable value if any one of the distribution pieces used for recovery is incorrect. A verification value (V) is used to confirm that the recovered secret data (S') and the original secret data (S) are the same.

[수학식 4][Equation 4]

V = Hash(C3)V = Hash(C3)

여기서, V는 검증값이고, C3는 제3 분산 조각이고, Hash()는 해쉬 함수 이다.Here, V is the verification value, C3 is the third distributed fragment, and Hash() is the hash function.

발급 서버(120)는 분산된 조각들(C1, C2, C3) 중에서 제3 분산 조각(C3)을 제외한 하나를 제1 분산 조각(C1)으로 선택하고, 제1 분산 조각(C1)과 검증값(V)을 포함하는 증명서(VC)를 생성한다(218). 이때, 제1 분산 조각(C1)의 선택은 분산된 조각들의 순서와 무관하게 선택될 수 있다.The issuing server 120 selects one of the distributed pieces (C1, C2, C3) except for the third distributed piece (C3) as the first distributed piece (C1), and selects the first distributed piece (C1) and the verification value. A certificate (VC) including (V) is generated (218). At this time, the selection of the first dispersion pieces C1 may be selected regardless of the order of the dispersed pieces.

218단계에서 발급 서버(120)는 아래 <수학식 5>의 예와 같이 제1 분산 조각(C1)과 검증값(V)을 발급 서버(120)의 서명으로 전자서명하여 증명서(VC)를 생성할 수 있다.In step 218, the issuing server 120 digitally signs the first distributed piece (C1) and the verification value (V) with the signature of the issuing server 120 as in the example of Equation 5 below to generate a certificate (VC) can do.

[수학식 5][Equation 5]

VC = Sign(C1, V)VC = Sign(C1, V)

여기서, VC는 증명서이고, V는 검증값이고, C1는 제1 분산 조각이고, Sign()는 전자서명이다.Here, VC is a certificate, V is a verification value, C1 is a first distributed fragment, and Sign() is a digital signature.

이때, Sign()에 이용되는 발급자의 서명은 분산 식별자(DID; Decentralized Identifier) 기반 또는 공개키 기반(PKI; Public Key Infrastructure) 등으로 발급자가 생성할 수 있다.At this time, the issuer's signature used in Sign() may be generated by the issuer based on a decentralized identifier (DID) or public key infrastructure (PKI).

발급 서버(120)는 분산된 조각들(C1, C2, C3) 중에서 제1 분산 조각(C1)과 제3 분산 조각(C3)을 제외한 나머지를 제2 분산 조각(C2)으로 선택하고, 제2 분산 조각(C2)과 검증값(V)을 저장한다(220). 이때, 제2 분산 조각(C2)은 복수개 일 수 있다. 발급 서버(120)는 제2 분산 조각(C2)과 검증값(V)을 저장할 때, 사용자 단말기(110)로부터 수신한 비밀 데이터(S)는 삭제한다.The issuing server 120 selects the rest of the distributed pieces (C1, C2, C3) except for the first distributed piece (C1) and the third distributed piece (C3) as the second distributed piece (C2), and the second distributed piece (C2). The variance fragment (C2) and the verification value (V) are stored (220). At this time, the number of second dispersion pieces C2 may be plural. When the issuing server 120 stores the second distributed piece C2 and the verification value V, it deletes the secret data S received from the user terminal 110.

그리고, 발급 서버(120)는 증명서(VC)를 사용자 단말기(110)로 전송한다(222).Then, the issuing server 120 transmits the certificate VC to the user terminal 110 (222).

한편, 사용자 단말기(110)는 증명서(VC)를 수신하는 경우 보안을 위해서 비밀 데이터(S)는 삭제할 수 있으며, 이 경우, 도 4의 방법과 같이 사용자 단말기(110)가 검증 단말기(130)의 416단계에서 428단계를 수행하여 비밀 데이터를 복구할 수 있다.On the other hand, when the user terminal 110 receives the certificate (VC), the secret data (S) can be deleted for security. Secret data can be recovered by performing steps 416 to 428.

도 3은 본 발명의 일 실시 예에 따른 데이터 전송 시스템에서 사용자 단말기와 발급 서버에서 비밀 데이터를 저장하고, 사용자 단말기에서 증명서를 생성하는 과정을 도시한 흐름도이다.3 is a flowchart illustrating a process of storing secret data in a user terminal and an issuing server and generating a certificate in a user terminal in a data transmission system according to an embodiment of the present invention.

도 3을 참조하면, 사용자 단말기(110)는 발급 서버(120)로 비밀 데이터(S)를 전송한다(310).Referring to FIG. 3 , the user terminal 110 transmits secret data S to the issuing server 120 (310).

그리고, 사용자 단말기(110)에서 비밀 데이터를 암호학적 비밀 분산 알고리즘을 이용해 복수의 조각으로 분산한다(312).Then, the user terminal 110 distributes the secret data into a plurality of pieces using a cryptographic secret distribution algorithm (312).

312단계에서 사용자 단말기(110)는 샤미르 비밀 공유(Shamir Secret Sharing) 기법에서 정의하는 비밀 분산 알고리즘(SS)을 이용해서 <수학식 1>과 같이 비밀 데이터를 복수의 조각(C1, C2, C3)으로 분산할 수 있다.In step 312, the user terminal 110 divides the secret data into a plurality of pieces (C1, C2, C3) as in <Equation 1> using the secret distribution algorithm (SS) defined in the Shamir Secret Sharing technique. can be distributed as

사용자 단말기(110)는 분산된 조각들(C1, C2, C3) 중 하나를 제3 분산 조각(C3)으로 선택하고, 제3 분산 조각(C3)과 비밀 데이터(S)를 이용해서 발급자 검증값(IV)를 생성한다(314). 이때, 제3 분산 조각(C3)의 선택은 분산된 조각들의 순서와 무관하게 선택될 수 있다.The user terminal 110 selects one of the distributed pieces C1, C2, and C3 as the third distributed piece C3, and uses the third distributed piece C3 and the secret data S to verify the issuer verification value. (IV) is generated (314). At this time, the selection of the third dispersion pieces C3 may be selected regardless of the order of the dispersed pieces.

314단계에서 사용자 단말기(110)는 비밀 데이터(S)와 제3 분산 조각(C3)을 연접하고, 해쉬하여 아래 <수학식 6>의 예와 같이 발급자 검증값(IV)을 생성할 수 있다.In step 314, the user terminal 110 may concatenate the secret data S and the third distributed fragment C3 and hash them to generate an issuer verification value IV as shown in Equation 6 below.

[수학식 6][Equation 6]

IV = Hash(S||C3)IV = Hash(S||C3)

여기서, IV는 발급자 검증값이고, S는 비밀 데이터이고, C3는 제3 분산 조각이고, Hash()는 해쉬 함수 이다.Here, IV is the issuer verification value, S is the secret data, C3 is the third distributed fragment, and Hash() is the hash function.

사용자 단말기(110)는 분산된 조각들(C1, C2, C3) 중에서 증명서에 포함될 제1 분산 조각(C1)을 선택하고, 분산된 조각들(C1, C2, C3) 중에서 제1 분산 조각(C1)과 제3 분산 조각(C3)을 제외한 나머지를 제2 분산 조각(C2)으로 선택하고, 제2 분산 조각(C2)과 발급자 검증값(IV)을 발급 서버(120)로 전송한다(316). 316단계를 통해서 사용자 단말기(110)는 발급 서버(120)로 사용자 데이터(제2 분산 조각(C2) 및 검증값(V))의 저장을 요청한다. 이때, 제1 분산 조각(C1)의 선택은 분산된 조각들의 순서와 무관하게 선택될 수 있다.The user terminal 110 selects the first distribution piece C1 to be included in the certificate from among the distributed pieces C1, C2, and C3, and selects the first distribution piece C1 from among the distributed pieces C1, C2, and C3. ) and the third distribution fragment (C3) are selected as the second distribution fragment (C2), and the second distribution fragment (C2) and the issuer verification value (IV) are transmitted to the issuing server 120 (316). . Through step 316, the user terminal 110 requests the issuing server 120 to store the user data (the second distributed piece C2 and the verification value V). At this time, the selection of the first dispersion pieces C1 may be selected regardless of the order of the dispersed pieces.

발급 서버(120)는 비밀 분산 알고리즘에 대응하는 비밀 복구 알고리즘을 이용해서 제2 분산 조각(C2)과 발급자 검증값(IV)으로부터 제3 분산 조각을 아래 <수학식 7>의 예와 같이 복구하여 복구된 제3 분산 조각(C3')을 생성한다(318).The issuing server 120 recovers the third distributed fragment from the second distributed fragment (C2) and the issuer verification value (IV) using a secret recovery algorithm corresponding to the secret distribution algorithm as in the example of Equation 7 below. A restored third dispersion fragment (C3') is created (318).

[수학식 7][Equation 7]

C3'= SR(S, C2)C3' = SR(S, C2)

여기서, C3'는 복구된 제3 분산 조각이고, S는 비밀 데이터이고, C2는 제2 분산 조각이고, SR()는 비밀 복구 알고리즘이다.Here, C3' is the recovered third distributed fragment, S is the secret data, C2 is the second distributed fragment, and SR() is the secret recovery algorithm.

발급 서버(120)는 비밀 데이터(S)와 복구된 제3 분산 조각(C3')을 이용해서 임시 발급자 검증값(IV')을 생성하고, 임시 발급자 검증값(IV')과 발급자 검증값(IV)이 일치하는지 확인하여 발급자 검증값(IV)을 검증한다(320). 즉, 임시 발급자 검증값(IV')과 발급자 검증값(IV)이 일치하면, 검증에 성공했다고 판단하고, 임시 발급자 검증값(IV')과 발급자 검증값(IV)이 일치하지 않으면, 검증에 실패했다고 판단한다.The issuance server 120 generates a temporary issuer verification value (IV') using the secret data (S) and the restored third distributed piece (C3'), and the temporary issuer verification value (IV') and the issuer verification value ( IV) is matched to verify the issuer verification value (IV) (320). That is, if the temporary issuer verification value (IV') and the issuer verification value (IV) match, it is determined that the verification was successful, and if the temporary issuer verification value (IV') and the issuer verification value (IV) do not match, verification judge you to have failed

320단계에서 발급 서버(120)는 아래 <수학식 8>의 예와 같이 비밀 데이터와 복구된 제3 분산 조각(C3')을 연접하고, 해쉬하여 임시 발급자 검증값(IV')을 생성할 수 있다.In step 320, the issuing server 120 may generate a temporary issuer verification value (IV') by concatenating the secret data and the recovered third distributed fragment (C3') and hashing them as in the example of Equation 8 below. there is.

[수학식 8][Equation 8]

IV == Hash(S||C3')IV == Hash(S||C3')

여기서, IV는 발급자 검증값이고, S는 비밀 데이터이고, C3'는 복구된 제3 분산 조각이고, Hash()는 해쉬 함수 이다.Here, IV is the issuer verification value, S is the secret data, C3' is the third distributed fragment recovered, and Hash() is the hash function.

발급 서버(120)는 임시 발급자 검증값(IV')과 발급자 검증값(IV)이 일치하면, 복구된 제3 분산 조각(C3')을 이용해서 검증값(V)을 생성하고, 검증값(V)과 제2 분산 조각(C2)을 저장한다(322). 이때, 발급 서버(120)는 제2 분산 조각(C2)과 검증값(V)을 저장할 때, 사용자 단말기(110)로부터 수신한 비밀 데이터(S)는 삭제한다.The issuance server 120 generates a verification value (V) using the restored third distributed piece (C3') when the temporary issuer verification value (IV') and the issuer verification value (IV) are identical, and the verification value ( V) and the second dispersion piece C2 are stored (322). At this time, the issuing server 120 deletes the secret data S received from the user terminal 110 when storing the second distributed piece C2 and the verification value V.

322단계에서 발급 서버(120)는 아래 <수학식 9>의 예와 같이 복구된 제3 분산 조각(C3')을 해쉬하여 검증값(V)을 생성할 수 있다.In step 322, the issuing server 120 may generate a verification value (V) by hashing the recovered third distributed fragment (C3') as in the example of Equation 9 below.

[수학식 9][Equation 9]

V=Hash(C3')V=Hash(C3')

여기서, V는 검증값이고, C3'는 복구된 제3 분산 조각이고, Hash()는 해쉬 함수 이다.Here, V is a verification value, C3' is a restored third distributed fragment, and Hash() is a hash function.

발급 서버(120)는 검증값(V)을 사용자 단말기(110)로 전송한다(324).The issuing server 120 transmits the verification value (V) to the user terminal 110 (324).

사용자 단말기(110)는 검증값(V)을 수신하면, 제1 분산 조각(C1)과 검증값(V)을 포함하는 증명서(VC)를 생성한다(326).Upon receiving the verification value V, the user terminal 110 generates a certificate VC including the first distributed fragment C1 and the verification value V (326).

326단계에서 사용자 단말기(110)는 상술한 <수학식 3>의 예와 같이 제1 분산 조각(C1)과 검증값(V)을 사용자 단말기(110)의 사용자의 서명으로 전자서명하여 증명서(VC)를 생성할 수 있다.In step 326, the user terminal 110 digitally signs the first distributed fragment C1 and the verification value V with the signature of the user of the user terminal 110, as in the example of Equation 3 described above, and obtains a certificate (VC). ) can be created.

다만, <수학식 5>에서 Sign()에 이용되는 사용자의 서명은 분산 식별자(DID; Decentralized Identifier) 기반 또는 공개키 기반(PKI; Public Key Infrastructure) 등으로 사용자가 생성할 수 있다.However, the user's signature used for Sign() in <Equation 5> can be generated by the user based on a decentralized identifier (DID) or public key infrastructure (PKI).

한편, 사용자 단말기(110)는 증명서(VC)를 수신하는 경우 보안을 위해서 비밀 데이터(S)는 삭제할 수 있으며, 이 경우, 도 4의 방법과 같이 사용자 단말기(110)가 검증 단말기(130)의 416단계에서 428단계를 수행하여 비밀 데이터를 복구할 수 있다.On the other hand, when the user terminal 110 receives the certificate (VC), the secret data (S) can be deleted for security. Secret data can be recovered by performing steps 416 to 428.

도 4는 본 발명의 일 실시 예에 따른 데이터 전송 시스템에서 비밀 데이터를 전송하는 과정을 도시한 흐름도이다.4 is a flowchart illustrating a process of transmitting confidential data in a data transmission system according to an embodiment of the present invention.

도 4를 참조하면, 사용자 단말기(110)는 증명서에 사용자의 서명으로 전자서명하여 서명된 증명서를 아래 <수학식 10>의 예와 같이 생성한다(410).Referring to FIG. 4 , the user terminal 110 digitally signs the certificate with the user's signature and generates a signed certificate as shown in Equation 10 below (410).

[수학식 10][Equation 10]

VP = Sign(VC)VP = Sign(VC)

여기서, VP는 서명된 증명서이고, VC는 증명서이고, Sign()는 전자서명이다.Here, VP is a signed certificate, VC is a certificate, and Sign() is a digital signature.

이때, Sign()에 이용되는 사용자의 서명은 분산 식별자(DID; Decentralized Identifier) 기반 또는 공개키 기반(PKI; Public Key Infrastructure) 등으로 사용자가 생성할 수 있다.At this time, the user's signature used in Sign() may be generated by the user based on a decentralized identifier (DID) or public key infrastructure (PKI).

사용자 단말기(110)는 검증 단말기(130)로 서명된 증명서를 전송한다(412).The user terminal 110 transmits the signed certificate to the verification terminal 130 (412).

검증 단말기(130)는 서명된 증명서를 검증하고, 증명서를 획득한다(414).The verification terminal 130 verifies the signed certificate and obtains the certificate (414).

414단계에서 검증 단말기(130)는 서명된 증명서가 사용자 단말기(110)의 사용자의 서명으로 전자 서명되었는지 확인하여 서명된 증명서를 검증할 수 있다.In step 414, the verification terminal 130 may verify the signed certificate by checking whether the signed certificate is electronically signed with the signature of the user of the user terminal 110.

이때, 서명된 증명서에 포함된 증명서는 사용자 단말기(110)에서 생성된 경우 사용자의 서명으로 전자서명 되어 있고, 발급 서버(120)에서 생성된 경우 발급 서버(120)의 서명으로 전자서명 되어 있으므로, 증명서를 생성한 주체에 따른 서명을 이용해서 증명서를 검증할 수 있다.At this time, since the certificate included in the signed certificate is digitally signed with the user's signature when generated by the user terminal 110 and digitally signed with the signature of the issuing server 120 when generated by the issuing server 120, A certificate can be verified using the signature of the subject that created the certificate.

검증 단말기(130)는 증명서에 포함된 제1 분산 조각(C1)과 검증값(V)을 추출한다(416).The verification terminal 130 extracts the first distributed fragment C1 and the verification value V included in the certificate (416).

검증 단말기(130)는 발급 서버(120)로 검증값(V)을 전송하여 비밀 데이터(S)의 복구에 필요한 분산 조각을 요청한다.The verification terminal 130 transmits the verification value (V) to the issuing server 120 and requests a distributed piece required for recovery of the secret data (S).

발급 서버(120)는 분산 조각을 요청받으면, 발급 서버(120)에 저장된 검증값(V)과 검증 단말기(130)로부터 수신된 검증값(V)이 일치하는지 확인하고, 발급 서버(120)에 저장된 검증값(V)과 검증 단말기(130)로부터 수신된 검증값(V)이 일치하면, 발급 서버(120)에 저장된 제2 분산 조각(C2)을 검색하고(420), 저장된 제2 분산 조각(C2)을 검증 단말기(130)로 전송한다(422).When the issuing server 120 receives a request for a distributed piece, it checks whether the verification value V stored in the issuing server 120 and the verification value V received from the verification terminal 130 match, and sends the issuing server 120 When the stored verification value (V) and the verification value (V) received from the verification terminal 130 match, the second distributed fragment C2 stored in the issuing server 120 is retrieved (420), and the stored second distributed fragment (C2) is transmitted to the verification terminal 130 (422).

한편, 발급 서버(120)는 422단계 전에 분산 조각의 안전한 전달을 위하여 검증 단말기(130)에 대한 별도의 인증을 수행할 수 있다. 이때, 인증 방법은 공지된 인증 방법을 이용할 수 있다.Meanwhile, the issuing server 120 may perform separate authentication for the verification terminal 130 before step 422 to safely deliver the distributed fragments. At this time, the authentication method may use a known authentication method.

검증 단말기(130)는 비밀 분산 알고리즘(SS)에 대응하는 비밀 복구 알고리즘(SR)을 이용해서 제1 분산 조각(C1)과 발급 서버(120)로부터 수신한 제2 분산 조각(C2)으로부터 비밀 데이터(S)를 복구하여 복구된 비밀 데이터(S')를 생성한다(424).The verification terminal 130 uses the secret recovery algorithm (SR) corresponding to the secret distribution algorithm (SS) to obtain secret data from the first distributed fragment (C1) and the second distributed fragment (C2) received from the issuing server 120. (S) is recovered to generate the recovered secret data (S') (424).

검증 단말기(130)는 비밀 복구 알고리즘(SR)을 이용해서 복구된 비밀 데이터(S')와 제1 분산 조각(C1)으로부터 제3 분산 조각을 복구하여 복구된 제3 분산 조각(C3')을 생성한다(426).The verification terminal 130 recovers the third distributed fragment from the recovered secret data S' and the first distributed fragment C1 by using the secret recovery algorithm (SR), and obtains the recovered third distributed fragment C3'. Create (426).

검증 단말기(130)는 복구된 제3 분산 조각(C3')을 이용해서 임시 검증값(V')을 생성하고, 임시 검증값(V')이 증명서(VC)에 포함된 검증값(V)과 일치하면 복구된 비밀 데이터(S')가 비밀 데이터(S)와 동일하다고 확인한다(428). 428단계에서 검증 단말기(130)는 복구된 제3 분산 조각(C3')을 해쉬하여 임시 검증값(V')을 생성할 수 있다.The verification terminal 130 generates a temporary verification value (V') using the restored third distributed fragment (C3'), and the temporary verification value (V') is a verification value (V) included in the certificate (VC) If it matches, it is confirmed that the recovered secret data (S') is the same as the secret data (S) (428). In step 428, the verification terminal 130 may generate a temporary verification value V' by hashing the restored third distributed fragment C3'.

본 발명의 비밀 분산 알고리즘(SS)와 비밀 복구 알고리즘(SR)은 샤미르 비밀 공유(Shamir Secret Sharing) 기법을 이용하여 적용될 수 있으며, 샤미르 비밀 공유 기법이 적용된 비밀 분산 알고리즘(SS)와 비밀 복구 알고리즘(SR)은 다음과 같다.The secret distribution algorithm (SS) and the secret recovery algorithm (SR) of the present invention can be applied using the Shamir Secret Sharing technique, and the secret distribution algorithm (SS) to which the Shamir secret sharing technique is applied and the secret recovery algorithm ( SR) is as follows.

비밀 분산 알고리즘(SS)은 비밀 데이터를 다음의 방법으로 n개의 분산 조각을 생성할 수 있다.Secret distribution algorithm (SS) can generate n number of distributed pieces of secret data in the following way.

첫번째로 아래 <수학식 11>의 예와 같이 t 차 랜덤 다항식 f(x)를 생성한다.First, as in the example of Equation 11 below, a t-order random polynomial f(x) is generated.

[수학식 11][Equation 11]

여기서 는 비밀 데이터(S)를 사용하고, 나머지 는 랜덤하게 생성한다. here uses the secret data (S), and the rest is randomly generated.

두번째로 다항식 에 1부터 n까지 대입하여 n개의 분산 조각을 생성한다.second polynomial By substituting from 1 to n in , n distributed pieces are created.

분산 조각(c1, c2, ?? , cn)는 아래의 <수학식 12>의 예와 같이 포인트로 표현할 수 있다.The dispersion pieces (c1, c2, ??, cn) can be expressed as points as in the example of Equation 12 below.

[수학식 12][Equation 12]

c1 = (1, f(1)), c2 =(2, f(2)), ?? , cn = (n, f(n))c1 = (1, f(1)), c2 = (2, f(2)), ?? , cn = (n, f(n))

비밀 복구 알고리즘(SR)은 다음의 방법으로 t+1개 분산 조각으로 비밀 데이터(S)를 복구할 수 있다.The secret recovery algorithm (SR) can recover the secret data (S) with t+1 distributed pieces in the following way.

첫번째로 아래 <수학식 13>의 예와 같이 t+1개의 포인트 로부터 라그랑주 보간법(Lagrangian interpolation) 이용하여 f(x)를 복구한다.First, as in the example of Equation 13 below, t + 1 points Recover f(x) from , using Lagrangian interpolation.

[수학식 13][Equation 13]

두번째로 복구된 함수 f(x)에서 f(0)를 계산하면 비밀 데이터(S)가 된다.Second, if f(0) is calculated from the recovered function f(x), the secret data (S) is obtained.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 저장할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(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 on a computer readable medium. The computer readable medium may store program instructions, data files, data structures, etc. alone or in combination. Program commands recorded on the medium may be specially designed and configured for the embodiment or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. - includes hardware devices specially configured to store and execute program instructions, such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of program instructions include high-level language codes that can be executed by a computer using an interpreter, as well as machine language codes such as those produced by a compiler. 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)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.Software may include a computer program, code, instructions, or a combination of one or more of the foregoing, which configures a processing device to operate as desired or processes independently or collectively. The device can be commanded. Software and/or data may be any tangible machine, component, physical device, virtual equipment, computer storage medium or device, intended to be interpreted by or provide instructions or data to a processing device. , or may be permanently or temporarily embodied in a transmitted signal wave. Software may be distributed on networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer readable media.

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

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

Claims (15)

사용자 단말기에서 발급 서버로 비밀 데이터를 전송하는 단계;
상기 사용자 단말기에서 상기 발급 서버로 증명서 발급을 요청하는 단계;
상기 발급 서버에서 상기 비밀 데이터를 암호학적 비밀 분산 알고리즘을 이용해서 복수의 조각으로 분산하는 단계;
상기 발급 서버에서 분산된 조각들 중 하나를 제3 분산 조각으로 선택하고, 상기 제3 분산 조각으로 검증값을 생성하는 단계;
상기 발급 서버에서 상기 분산된 조각들 중에서 상기 제3 분산 조각을 제외한 하나를 제1 분산 조각으로 선택하고, 상기 제1 분산 조각과 상기 검증값을 포함하는 증명서를 생성하는 단계;
상기 발급 서버에서 상기 분산된 조각들 중에서 상기 제1 분산 조각과 상기 제3 분산 조각을 제외한 나머지를 제2 분산 조각으로 선택하고, 상기 제2 분산 조각과 상기 검증값을 저장하는 단계; 및
상기 발급 서버에서 상기 증명서를 상기 사용자 단말기로 전송하는 단계
를 포함하는 비밀 분산을 이용한 데이터 전송 방법.
Transmitting secret data from the user terminal to the issuing server;
requesting certificate issuance from the user terminal to the issuing server;
distributing the secret data into a plurality of pieces using a cryptographic secret distribution algorithm in the issuing server;
selecting one of the pieces distributed by the issuing server as a third distribution piece and generating a verification value with the third distribution piece;
selecting, in the issuing server, one of the distributed pieces except for the third distribution piece as a first distribution piece, and generating a certificate including the first distribution piece and the verification value;
selecting, in the issuing server, other than the first distribution pieces and the third distribution pieces from among the distributed pieces as second distribution pieces, and storing the second distribution pieces and the verification value; and
Transmitting the certificate from the issuing server to the user terminal
Data transmission method using secret distribution comprising a.
제1항에 있어서,
상기 발급 서버에서 상기 비밀 데이터를 암호학적 비밀 분산 알고리즘을 이용해서 복수의 조각으로 분산하는 단계는,
샤미르 비밀 공유(Shamir Secret Sharing) 기법에서 정의하는 비밀 분산 알고리즘을 이용해서 상기 비밀 데이터를 복수의 조각으로 분산하는
비밀 분산을 이용한 데이터 전송 방법.
According to claim 1,
The step of distributing the secret data into a plurality of pieces using a cryptographic secret distribution algorithm in the issuing server,
Distributing the secret data into a plurality of pieces using the secret distribution algorithm defined in the Shamir Secret Sharing technique
Data transmission method using secret distribution.
제1항에 있어서,
상기 검증값을 생성하는 단계는,
상기 제3 분산 조각을 해쉬하여 상기 검증값을 생성하는
비밀 분산을 이용한 데이터 전송 방법.
According to claim 1,
The step of generating the verification value is,
Generating the verification value by hashing the third distributed fragment
Data transmission method using secret distribution.
제1항에 있어서,
상기 제1 분산 조각과 상기 검증값을 포함하는 증명서를 생성하는 단계는,
상기 제1 분산 조각과 상기 검증값을 상기 발급 서버의 서명으로 전자서명하여 상기 증명서를 생성하는
비밀 분산을 이용한 데이터 전송 방법.
According to claim 1,
Generating a certificate including the first distributed fragment and the verification value,
Generating the certificate by digitally signing the first distributed fragment and the verification value with the signature of the issuing server
Data transmission method using secret distribution.
제1항에 있어서,
상기 사용자 단말기에서 상기 증명서에 전자서명하여 서명된 증명서를 생성하는 단계;
상기 사용자 단말기에서 검증 단말기로 상기 서명된 증명서를 전송하는 단계;
상기 검증 단말기에서 상기 서명된 증명서를 검증하고, 상기 증명서를 획득하는 단계;
상기 검증 단말기에서 상기 증명서에 포함된 상기 제1 분산 조각과 상기 검증값을 추출하는 단계;
상기 검증 단말기에서 상기 발급 서버로 상기 검증값을 전송하여 상기 비밀 데이터의 복구에 필요한 분산 조각을 요청하는 단계;
상기 발급 서버에서 분산 조각을 요청받으면, 상기 발급 서버에 저장된 검증값과 상기 검증 단말기로부터 수신된 검증값이 일치하는지 확인하는 단계;
상기 발급 서버에서 상기 발급 서버에 저장된 검증값과 상기 검증 단말기로부터 수신된 검증값이 일치하면, 상기 발급 서버에 저장된 상기 제2 분산 조각을 검색하여 상기 검증 단말기로 전송하는 단계;
상기 검증 단말기에서 상기 비밀 분산 알고리즘에 대응하는 비밀 복구 알고리즘을 이용해서 상기 제1 분산 조각과 상기 발급 서버로부터 수신한 상기 제2 분산 조각으로부터 비밀 데이터를 복구하여 복구된 비밀 데이터를 생성하는 단계;
상기 검증 단말기에서 상기 비밀 복구 알고리즘을 이용해서 상기 복구된 비밀 데이터와 상기 제1 분산 조각으로부터 제3 분산 조각을 복구하여 복구된 제3 분산 조각을 생성하는 단계; 및
상기 검증 단말기에서 상기 복구된 제3 분산 조각을 이용해서 임시 검증값을 생성하고, 상기 임시 검증값이 상기 증명서에 포함된 상기 검증값과 일치하면 상기 복구된 비밀 데이터가 상기 비밀 데이터와 동일하다고 확인하는 단계
를 더 포함하는 비밀 분산을 이용한 데이터 전송 방법.
According to claim 1,
generating a signed certificate by digitally signing the certificate in the user terminal;
transmitting the signed certificate from the user terminal to a verification terminal;
verifying the signed certificate at the verification terminal and obtaining the certificate;
extracting the first distributed fragment and the verification value included in the certificate in the verification terminal;
transmitting the verification value from the verification terminal to the issuing server and requesting a distributed fragment required for recovery of the secret data;
checking whether the verification value stored in the issuing server and the verification value received from the verification terminal match when the issuing server receives a request for distributed fragments;
in the issuing server, when the verification value stored in the issuing server and the verification value received from the verification terminal match, searching for the second distributed fragment stored in the issuing server and transmitting the same to the verification terminal;
generating recovered secret data by recovering secret data from the first distributed fragment and the second distributed fragment received from the issuing server using a secret recovery algorithm corresponding to the secret distribution algorithm in the verification terminal;
generating a recovered third distributed fragment by recovering a third distributed fragment from the recovered secret data and the first distributed fragment using the secret recovery algorithm in the verification terminal; and
The verification terminal generates a temporary verification value using the recovered third distributed fragment, and if the temporary verification value matches the verification value included in the certificate, it is confirmed that the recovered secret data is the same as the secret data. step to do
Data transmission method using secret distribution further comprising a.
제5항에 있어서,
상기 검증 단말기에서 상기 서명된 증명서를 검증하고, 상기 증명서를 획득하는 단계는,
상기 서명된 증명서가 상기 사용자 단말기의 사용자의 서명으로 전자 서명되었는지 확인하고, 상기 서명된 증명서에 포함된 상기 증명서가 상기 발급 서버의 서명으로 전자서명 되었는지 확인하여 검증하는
비밀 분산을 이용한 데이터 전송 방법.
According to claim 5,
The step of verifying the signed certificate in the verification terminal and obtaining the certificate,
Verifying whether the signed certificate is electronically signed with the signature of the user of the user terminal, and confirming and verifying whether the certificate included in the signed certificate is digitally signed with the signature of the issuing server
Data transmission method using secret distribution.
제5항에 있어서,
상기 검증 단말기에서 상기 복구된 제3 분산 조각을 이용해서 임시 검증값을 생성하고, 상기 임시 검증값이 상기 증명서에 포함된 상기 검증값과 일치하면 상기 복구된 비밀 데이터가 상기 비밀 데이터와 동일하다고 확인하는 단계는,
상기 복구된 제3 분산 조각을 해쉬하여 상기 임시 검증값을 생성하는
비밀 분산을 이용한 데이터 전송 방법.
According to claim 5,
The verification terminal generates a temporary verification value using the recovered third distributed fragment, and if the temporary verification value matches the verification value included in the certificate, it is confirmed that the recovered secret data is the same as the secret data. The steps are,
Generating the temporary verification value by hashing the recovered third distributed fragment
Data transmission method using secret distribution.
사용자 단말기에서 발급 서버로 비밀 데이터를 전송하는 단계;
상기 사용자 단말기에서 상기 비밀 데이터를 암호학적 비밀 분산 알고리즘을 이용해 복수의 조각으로 분산하는 단계;
상기 사용자 단말기에서 분산된 조각들 중 하나를 제3 분산 조각으로 선택하고, 상기 제3 분산 조각과 상기 비밀 데이터를 이용해서 발급자 검증값을 생성하는 단계;
상기 사용자 단말기에서 상기 분산된 조각들 중에서 증명서에 포함될 제1 분산 조각을 선택하는 단계;
상기 사용자 단말기에서 상기 분산된 조각들 중에서 상기 제1 분산 조각과 상기 제3 분산 조각을 제외한 나머지를 제2 분산 조각으로 선택하고, 상기 제2 분산 조각과 상기 발급자 검증값을 상기 발급 서버로 전송하는 단계;
상기 발급 서버에서 상기 비밀 분산 알고리즘에 대응하는 비밀 복구 알고리즘을 이용해서 상기 제2 분산 조각과 상기 발급자 검증값으로부터 제3 분산 조각을 복구하여 복구된 제3 분산 조각을 생성하는 단계;
상기 발급 서버에서 상기 비밀 데이터와 상기 복구된 제3 분산 조각을 이용해서 임시 발급자 검증값을 생성하고, 상기 임시 발급자 검증값과 상기 발급자 검증값이 일치하는지 확인하는 단계;
상기 발급 서버에서 상기 임시 발급자 검증값과 상기 발급자 검증값이 일치하면, 상기 복구된 제3 분산 조각을 이용해서 검증값을 생성하고, 상기 검증값과 제2 분산 조각을 저장하는 단계;
상기 발급 서버에서 상기 검증값을 상기 사용자 단말기로 전송하는 단계; 및
상기 사용자 단말기에서 상기 검증값을 수신하면, 상기 제1 분산 조각과 상기 검증값을 포함하는 증명서를 생성하는 단계
를 포함하는 비밀 분산을 이용한 데이터 전송 방법.
Transmitting secret data from the user terminal to the issuing server;
distributing the secret data into a plurality of pieces using a cryptographic secret distribution algorithm in the user terminal;
selecting one of the fragments distributed in the user terminal as a third distributed fragment and generating an issuer verification value using the third distributed fragment and the secret data;
selecting a first distributed fragment to be included in a certificate from among the distributed fragments in the user terminal;
The user terminal selects remaining pieces other than the first distributed piece and the third distributed piece from among the distributed pieces as a second distributed piece, and transmits the second distributed piece and the issuer verification value to the issuing server. step;
generating a recovered third distribution fragment by recovering a third distribution fragment from the second distribution fragment and the issuer verification value by using a secret recovery algorithm corresponding to the secret distribution algorithm in the issuing server;
generating a temporary issuer verification value using the secret data and the restored third distributed fragment in the issuing server, and verifying whether the temporary issuer verification value and the issuer verification value match;
generating a verification value using the restored third distribution fragment and storing the verification value and a second distribution fragment when the temporary issuer verification value and the issuer verification value coincide with each other in the issuing server;
transmitting the verification value from the issuing server to the user terminal; and
generating a certificate including the first distributed fragment and the verification value when the user terminal receives the verification value;
Data transmission method using secret distribution comprising a.
제8항에 있어서,
상기 사용자 단말기에서 분산된 조각들 중 하나를 제3 분산 조각으로 선택하고, 상기 제3 분산 조각과 상기 비밀 데이터를 이용해서 발급자 검증값을 생성하는 단계는,
상기 비밀 데이터와 상기 제3 분산 조각을 연접하고, 해쉬하여 상기 발급자 검증값을 생성하는
비밀 분산을 이용한 데이터 전송 방법.
According to claim 8,
The step of selecting one of the fragments distributed in the user terminal as a third distributed fragment and generating an issuer verification value using the third distributed fragment and the secret data,
Concatenating and hashing the secret data and the third distributed fragment to generate the issuer verification value
Data transmission method using secret distribution.
제8항에 있어서,
상기 발급 서버에서 상기 비밀 데이터와 상기 복구된 제3 분산 조각을 이용해서 임시 발급자 검증값을 생성하고, 상기 임시 발급자 검증값과 상기 발급자 검증값이 일치하는지 확인하는 단계는,
상기 비밀 데이터와 상기 복구된 제3 분산 조각을 연접하고, 해쉬하여 상기 임시 발급자 검증값을 생성하는
비밀 분산을 이용한 데이터 전송 방법.
According to claim 8,
The step of generating a temporary issuer verification value using the secret data and the recovered third distributed fragment in the issuing server, and checking whether the temporary issuer verification value and the issuer verification value match,
generating the temporary issuer verification value by concatenating and hashing the secret data and the recovered third distributed fragment;
Data transmission method using secret distribution.
제8항에 있어서,
상기 발급 서버에서 상기 임시 발급자 검증값과 상기 발급자 검증값이 일치하면, 상기 복구된 제3 분산 조각을 이용해서 검증값을 생성하고, 상기 검증값과 제2 분산 조각을 저장하는 단계는,
상기 복구된 제3 분산 조각을 해쉬하여 상기 검증값을 생성하는
비밀 분산을 이용한 데이터 전송 방법.
According to claim 8,
In the issuing server, if the temporary issuer verification value and the issuer verification value match, generating a verification value using the restored third distribution fragment and storing the verification value and the second distribution fragment,
Generating the verification value by hashing the recovered third distributed fragment
Data transmission method using secret distribution.
제8항에 있어서,
상기 사용자 단말기에서 상기 검증값을 수신하면, 상기 제1 분산 조각과 상기 검증값을 포함하는 증명서를 생성하는 단계는,
상기 제1 분산 조각과 상기 검증값을 상기 사용자 단말기의 사용자의 서명으로 전자서명하여 상기 증명서를 생성하는
비밀 분산을 이용한 데이터 전송 방법.
According to claim 8,
When the user terminal receives the verification value, generating a certificate including the first distributed fragment and the verification value,
Generating the certificate by digitally signing the first distributed fragment and the verification value with the signature of the user of the user terminal
Data transmission method using secret distribution.
제8항에 있어서,
상기 사용자 단말기에서 상기 증명서에 전자서명하여 서명된 증명서를 생성하는 단계;
상기 사용자 단말기에서 검증 단말기로 상기 서명된 증명서를 전송하는 단계;
상기 검증 단말기에서 상기 서명된 증명서를 검증하고, 상기 증명서를 획득하는 단계;
상기 검증 단말기에서 상기 증명서에 포함된 상기 제1 분산 조각과 상기 검증값을 추출하는 단계;
상기 검증 단말기에서 상기 발급 서버로 상기 검증값을 전송하여 상기 비밀 데이터의 복구에 필요한 분산 조각을 요청하는 단계;
상기 발급 서버에서 분산 조각을 요청받으면, 상기 발급 서버에 저장된 검증값과 상기 검증 단말기로부터 수신된 검증값이 일치하는지 확인하는 단계;
상기 발급 서버에서 상기 발급 서버에 저장된 검증값과 상기 검증 단말기로부터 수신된 검증값이 일치하면, 상기 발급 서버에 저장된 상기 제2 분산 조각을 검색하여 상기 검증 단말기로 전송하는 단계;
상기 검증 단말기에서 상기 비밀 분산 알고리즘에 대응하는 비밀 복구 알고리즘을 이용해서 상기 제1 분산 조각과 상기 발급 서버로부터 수신한 상기 제2 분산 조각으로부터 비밀 데이터를 복구하여 복구된 비밀 데이터를 생성하는 단계;
상기 검증 단말기에서 상기 비밀 복구 알고리즘을 이용해서 상기 복구된 비밀 데이터와 상기 제1 분산 조각으로부터 제3 분산 조각을 복구하여 복구된 제3 분산 조각을 생성하는 단계; 및
상기 검증 단말기에서 상기 복구된 제3 분산 조각을 이용해서 임시 검증값을 생성하고, 상기 임시 검증값이 상기 증명서에 포함된 상기 검증값과 일치하면 상기 복구된 비밀 데이터가 상기 비밀 데이터와 동일하다고 확인하는 단계
를 더 포함하는 비밀 분산을 이용한 데이터 전송 방법.
According to claim 8,
generating a signed certificate by digitally signing the certificate in the user terminal;
transmitting the signed certificate from the user terminal to a verification terminal;
verifying the signed certificate at the verification terminal and obtaining the certificate;
extracting the first distributed fragment and the verification value included in the certificate in the verification terminal;
transmitting the verification value from the verification terminal to the issuing server and requesting a distributed fragment required for recovery of the secret data;
checking whether the verification value stored in the issuing server and the verification value received from the verification terminal match when the issuing server receives a request for distributed fragments;
in the issuing server, when the verification value stored in the issuing server and the verification value received from the verification terminal match, searching for the second distributed fragment stored in the issuing server and transmitting the same to the verification terminal;
generating recovered secret data by recovering secret data from the first distributed fragment and the second distributed fragment received from the issuing server using a secret recovery algorithm corresponding to the secret distribution algorithm in the verification terminal;
generating a recovered third distributed fragment by recovering a third distributed fragment from the recovered secret data and the first distributed fragment using the secret recovery algorithm in the verification terminal; and
The verification terminal generates a temporary verification value using the recovered third distributed fragment, and if the temporary verification value matches the verification value included in the certificate, it is confirmed that the recovered secret data is the same as the secret data. step to do
Data transmission method using secret distribution further comprising a.
제13항에 있어서,
상기 검증 단말기에서 상기 서명된 증명서를 검증하고, 상기 증명서를 획득하는 단계는,
상기 서명된 증명서가 상기 사용자 단말기의 사용자의 서명으로 전자 서명되었는지 확인하여 검증하는
비밀 분산을 이용한 데이터 전송 방법.
According to claim 13,
The step of verifying the signed certificate in the verification terminal and obtaining the certificate,
Verifying and verifying whether the signed certificate is electronically signed with the signature of the user of the user terminal
Data transmission method using secret distribution.
제13항에 있어서,
상기 검증 단말기에서 상기 복구된 제3 분산 조각을 이용해서 임시 검증값을 생성하고, 상기 임시 검증값이 상기 증명서에 포함된 상기 검증값과 일치하면 상기 복구된 비밀 데이터가 상기 비밀 데이터와 동일하다고 확인하는 단계는,
상기 복구된 제3 분산 조각을 해쉬하여 상기 임시 검증값을 생성하는
비밀 분산을 이용한 데이터 전송 방법.
According to claim 13,
The verification terminal generates a temporary verification value using the recovered third distributed fragment, and if the temporary verification value matches the verification value included in the certificate, it is confirmed that the recovered secret data is the same as the secret data. The steps are,
Generating the temporary verification value by hashing the recovered third distributed fragment
Data transmission method using secret distribution.
KR1020210093186A 2021-07-16 2021-07-16 Method for transmitting data using a secret distributed KR102561247B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210093186A KR102561247B1 (en) 2021-07-16 2021-07-16 Method for transmitting data using a secret distributed

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210093186A KR102561247B1 (en) 2021-07-16 2021-07-16 Method for transmitting data using a secret distributed

Publications (2)

Publication Number Publication Date
KR20230012676A KR20230012676A (en) 2023-01-26
KR102561247B1 true KR102561247B1 (en) 2023-07-31

Family

ID=85110556

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210093186A KR102561247B1 (en) 2021-07-16 2021-07-16 Method for transmitting data using a secret distributed

Country Status (1)

Country Link
KR (1) KR102561247B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020064245A (en) 2018-10-19 2020-04-23 株式会社日立製作所 Secret distribution device, secret distribution system, and secret distribution method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2905922A1 (en) * 2014-02-10 2015-08-12 Thomson Licensing Signing method delivering a partial signature associated to a message, threshold signing method, signature verification method, and corresponding computer program and electronic devices
KR102181645B1 (en) * 2018-12-26 2020-11-24 주식회사 아이콘루프 System and method for distributing and storing data
KR20210066640A (en) * 2019-11-28 2021-06-07 한국전자통신연구원 System and method for processing secret sharing authentication

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020064245A (en) 2018-10-19 2020-04-23 株式会社日立製作所 Secret distribution device, secret distribution system, and secret distribution method

Also Published As

Publication number Publication date
KR20230012676A (en) 2023-01-26

Similar Documents

Publication Publication Date Title
CN109194466B (en) Block chain-based cloud data integrity detection method and system
US20220191012A1 (en) Methods For Splitting and Recovering Key, Program Product, Storage Medium, and System
US8369521B2 (en) Smart card based encryption key and password generation and management
US7925023B2 (en) Method and apparatus for managing cryptographic keys
CN106130716B (en) Key exchange system and method based on authentication information
JP2020502857A5 (en)
CN109194465B (en) Method for managing keys, user equipment, management device and storage medium
US10637818B2 (en) System and method for resetting passwords on electronic devices
US20100005318A1 (en) Process for securing data in a storage unit
CA3164765A1 (en) Secure communication method and device based on identity authentication
JP2016515235A5 (en)
US11212082B2 (en) Ciphertext based quorum cryptosystem
KR102218188B1 (en) Node device for performing certificate management based on a block chain and operating method thereof
US10887110B2 (en) Method for digital signing with multiple devices operating multiparty computation with a split key
KR102011043B1 (en) Method for digital signature based on quantum key distribution and system performing the same
CN103414699A (en) Authentication method for client certificate, server and client
CN109450951B (en) Server-side security file management method, device and system
Mukundan et al. Replicated Data Integrity Verification in Cloud.
KR101586439B1 (en) User data integrity verification method and apparatus capable of guaranteeing privacy
KR102181645B1 (en) System and method for distributing and storing data
KR102561247B1 (en) Method for transmitting data using a secret distributed
CN112118245A (en) Key management method, system and equipment
CN115426106B (en) Identity authentication method, device and system, electronic equipment and storage medium
KR102337675B1 (en) System and method for remittance of cryptocurrency that can verify payee
CN113139209B (en) Verification credential realization method and system based on atomic signature

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant