KR102303431B1 - Blockchain-based electronic contract management system apparatus that supports electronic contracts between parties and operating method thereof - Google Patents

Blockchain-based electronic contract management system apparatus that supports electronic contracts between parties and operating method thereof Download PDF

Info

Publication number
KR102303431B1
KR102303431B1 KR1020200167579A KR20200167579A KR102303431B1 KR 102303431 B1 KR102303431 B1 KR 102303431B1 KR 1020200167579 A KR1020200167579 A KR 1020200167579A KR 20200167579 A KR20200167579 A KR 20200167579A KR 102303431 B1 KR102303431 B1 KR 102303431B1
Authority
KR
South Korea
Prior art keywords
value
user
terminal
node
authentication
Prior art date
Application number
KR1020200167579A
Other languages
Korean (ko)
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 KR1020200167579A priority Critical patent/KR102303431B1/en
Application granted granted Critical
Publication of KR102303431B1 publication Critical patent/KR102303431B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/02Reservations, e.g. for tickets, services or events
    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06QDATA PROCESSING SYSTEMS OR METHODS, SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL, SUPERVISORY OR FORECASTING PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation, e.g. computer aided management of electronic mail or groupware; Time management, e.g. calendars, reminders, meetings or time accounting
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communication
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communication
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communication 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 communication 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 communication
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communication 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 communication 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/38Chaining, e.g. hash chain or certificate chain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/72Signcrypting, i.e. digital signing and encrypting simultaneously

Abstract

당사자 간의 전자 계약을 지원하는 블록체인 기반의 전자 계약 관리 시스템 장치 및 그 동작 방법이 개시된다. 본 발명에 따른 전자 계약 관리 시스템 장치 및 그 동작 방법은 제1 사용자와 제2 사용자 간의 전자 계약이 진행되는 경우, 전자 계약 내용을 담고 있는 전자 계약서에 대한 데이터를 제1 사용자의 단말에 전송하면서 전자 서명을 요청하고, 제1 사용자의 단말로부터 제1 사용자의 단말에 저장되어 있는 개인키로 서명된 전자 서명 값이 수신되면, 해당 개인키에 대응되는 공개키로 상기 전자 서명 값을 검증한 후 제2 사용자의 단말로 상기 전자 계약서에 대한 데이터를 전송하면서 전자 서명을 요청하고, 제2 사용자의 단말로부터 제2 사용자의 단말에 저장되어 있는 개인키로 서명된 전자 서명 값이 수신되면, 해당 개인키에 대응되는 공개키로 상기 전자 서명 값을 검증함으로써, 상기 제1 사용자와 상기 제2 사용자 쌍방에 대한 서명 검증 작업을 완료하고, 이러한 서명 검증 작업이 완료되면, 전자 계약이 완료되었음을 지시하는 계약 완료 메시지를 생성하여 제1 사용자의 단말과 제2 사용자의 단말로 전송함으로써, 상기 제1 사용자와 상기 제2 사용자가 강화된 보안 인증 환경하에서 보다 손쉽게 전자 계약을 진행할 수 있도록 지원할 수 있다.Disclosed are a block chain-based electronic contract management system device supporting an electronic contract between parties and an operating method thereof. The electronic contract management system device and the method for operating the same according to the present invention, when an electronic contract between a first user and a second user is in progress, while transmitting data on the electronic contract containing the content of the electronic contract to the terminal of the first user When a signature is requested and an electronic signature value signed with the private key stored in the terminal of the first user is received from the terminal of the first user, the second user verifies the value of the electronic signature with the public key corresponding to the corresponding private key Requesting an electronic signature while transmitting the data for the electronic contract to the terminal of, and receiving an electronic signature value signed with the private key stored in the second user's terminal from the second user's terminal, By verifying the electronic signature value with the public key, the signature verification operation for both the first user and the second user is completed, and when the signature verification operation is completed, a contract completion message indicating that the electronic contract is completed is generated. By transmitting to the terminal of the first user and the terminal of the second user, it is possible to support the first user and the second user to more easily proceed with the electronic contract under the enhanced security authentication environment.

Description

당사자 간의 전자 계약을 지원하는 블록체인 기반의 전자 계약 관리 시스템 장치 및 그 동작 방법{BLOCKCHAIN-BASED ELECTRONIC CONTRACT MANAGEMENT SYSTEM APPARATUS THAT SUPPORTS ELECTRONIC CONTRACTS BETWEEN PARTIES AND OPERATING METHOD THEREOF}A block-chain-based electronic contract management system device that supports electronic contracts between parties and its operation method
본 발명은 당사자 간의 전자 계약을 지원하는 블록체인 기반의 전자 계약 관리 시스템 장치 및 그 동작 방법에 대한 것이다.The present invention relates to a block chain-based electronic contract management system device supporting an electronic contract between parties and an operating method thereof.
기존에는 당사자 간에 계약을 체결할 때, 계약 정보가 담긴 소정의 계약서를 작성한 후 계약서에 당사자의 도장을 날인하거나 서명을 하는 방식으로 진행되었다. 이때, 계약서의 내용을 보증하기 위해서 공증인과 같은 제3자가 개입하여 제3자가 보는 앞에서 당사자 간에 계약서를 작성하고, 계약서 상에 계약 당사자와 제3자의 도장을 함께 날인하는 형태로 계약이 진행되곤 했었다.In the past, when a contract was concluded between parties, a predetermined contract containing contract information was drawn up, and then the contract was sealed or signed by the parties. At this time, in order to guarantee the contents of the contract, a third party such as a notary public intervenes to draw up a contract between the parties in front of the third party, and the contract was carried out in the form of sealing the seal of the contracting party and the third party together on the contract. .
최근에는 온라인을 통해서 당사자 간의 계약을 체결해야 하는 전자 계약의 필요성이 증대됨에 따라 당사자가 전자 계약을 보다 쉽게 진행할 수 있도록 지원하고, 이러한 전자 계약을 보증해줄 수 있는 계약 관리 서비스에 대한 요구가 증대되고 있다.Recently, as the need for an electronic contract to conclude a contract between the parties through online increases, the demand for a contract management service that can support the parties to proceed with the electronic contract more easily and guarantee such an electronic contract is increasing. have.
이러한 계약 관리 서비스에서는 계약 당사자가 계약을 체결하려는 진정한 당사자가 맞는지 여부를 확인하는 과정이 필수로 포함되어야 한다는 점에서, 소정의 전자 서명 기술을 활용하여 계약 당사자가 진정한 당사자가 맞는지 여부를 확인하고, 이를 기초로 계약 당사자 간의 전자 계약이 가능하도록 지원하는 계약 관리 서비스의 도입을 고려할 수 있다.In this contract management service, in that the process of confirming whether the contracting party is the true party who intends to conclude the contract is essential, it uses a predetermined electronic signature technology to check whether the contracting party is the true party, Based on this, the introduction of a contract management service that supports electronic contracts between contracting parties may be considered.
또한, 최근에는 소정의 데이터를 체인화된 블록으로 구성하여 중앙 서버가 아닌 노드들에 분산 저장함으로써, 해당 데이터에 대한 무결성을 보장할 수 있는 블록체인 기술이 널리 활용되고 있다.Also, recently, block chain technology that can ensure the integrity of data by composing predetermined data into chained blocks and storing them distributedly in nodes rather than in a central server has been widely used.
블록체인 기술은 트랜잭션이라고 하는 소정의 데이터가 생성되면, 블록체인 네트워크에 참여하고 있는 복수의 노드 장치들 중 어느 하나의 노드 장치가 여러 블록들이 체인으로 연결되어 있는 블록체인 데이터에 포함된 이전 블록을 기초로 상기 트랜잭션이 포함된 새로운 블록을 생성하고, 상기 블록을 상기 블록체인 데이터에 체인으로 연결한 후 상기 블록을 상기 블록체인 네트워크를 통해 다른 노드 장치들로 배포함으로써, 소정의 데이터가 복수의 노드 장치들에 분산 저장되도록 하는 기술을 의미한다.In blockchain technology, when predetermined data called a transaction is generated, any one node device among a plurality of node devices participating in the blockchain network uses the previous block included in the blockchain data in which several blocks are connected in a chain. By creating a new block containing the transaction based on a chain, linking the block to the block chain data, and distributing the block to other node devices through the block chain network, predetermined data is transferred to a plurality of nodes. It refers to a technology that allows distributed storage in devices.
따라서, 당사자 간의 전자 계약을 가능하게 하는 계약 관리 서비스에서 당사자 간의 계약 체결이 완료되면, 이에 대한 계약 정보를 블록체인 네트워크에 등록해둠으로써, 계약 정보에 대한 무결성을 보장할 수 있는 기술에 대한 연구가 필요하다.Therefore, when the contract between the parties is completed in the contract management service that enables the electronic contract between the parties, research on technology that can ensure the integrity of the contract information by registering the contract information in the blockchain network necessary.
본 발명에 따른 전자 계약 관리 시스템 장치 및 그 동작 방법은 제1 사용자와 제2 사용자 간의 전자 계약이 진행되는 경우, 전자 계약 내용을 담고 있는 전자 계약서에 대한 데이터를 제1 사용자의 단말에 전송하면서 전자 서명을 요청하고, 제1 사용자의 단말로부터 제1 사용자의 단말에 저장되어 있는 개인키로 서명된 전자 서명 값이 수신되면, 해당 개인키에 대응되는 공개키로 상기 전자 서명 값을 검증한 후 제2 사용자의 단말로 상기 전자 계약서에 대한 데이터를 전송하면서 전자 서명을 요청하고, 제2 사용자의 단말로부터 제2 사용자의 단말에 저장되어 있는 개인키로 서명된 전자 서명 값이 수신되면, 해당 개인키에 대응되는 공개키로 상기 전자 서명 값을 검증함으로써, 상기 제1 사용자와 상기 제2 사용자 쌍방에 대한 서명 검증 작업을 완료하고, 이러한 서명 검증 작업이 완료되면, 전자 계약이 완료되었음을 지시하는 계약 완료 메시지를 생성하여 제1 사용자의 단말과 제2 사용자의 단말로 전송함으로써, 상기 제1 사용자와 상기 제2 사용자가 강화된 보안 인증 환경하에서 보다 손쉽게 전자 계약을 진행할 수 있도록 지원하고자 한다.The electronic contract management system device and the method for operating the same according to the present invention, when an electronic contract between a first user and a second user is in progress, while transmitting data on the electronic contract containing the content of the electronic contract to the terminal of the first user When a signature is requested and an electronic signature value signed with the private key stored in the terminal of the first user is received from the terminal of the first user, the second user verifies the value of the electronic signature with the public key corresponding to the corresponding private key Requesting an electronic signature while transmitting the data for the electronic contract to the terminal of, and receiving an electronic signature value signed with the private key stored in the second user's terminal from the second user's terminal, By verifying the electronic signature value with the public key, the signature verification operation for both the first user and the second user is completed, and when the signature verification operation is completed, a contract completion message indicating that the electronic contract is completed is generated. By transmitting to the terminal of the first user and the terminal of the second user, it is intended to support the first user and the second user to more easily proceed with the electronic contract under the enhanced security authentication environment.
본 발명의 일실시예에 따른 제1 사용자와 제2 사용자 간의 전자 계약을 가능하게 하는 전자 계약 관리 시스템 장치는 사전 설정된 검증용 개인키 - 상기 제1 사용자의 단말과 상기 제2 사용자의 단말에는 상기 검증용 개인키에 대응되는 검증용 공개키가 사전 발급되어 저장되어 있음 - 와 사전 설정된 해시 함수 - 상기 해시 함수는 상기 제1 사용자의 단말과 상기 제2 사용자의 단말에도 사전 저장되어 있음 - 가 저장되어 있는 정보 저장부, 상기 제1 사용자의 단말에 사전 저장되어 있는 제1 개인키에 대응되는 제1 공개키와 상기 제2 사용자의 단말에 사전 저장되어 있는 제2 개인키에 대응되는 제2 공개키가 저장되어 있는 공개키 저장부, 상기 전자 계약에 대한 계약 정보가 포함된 전자 계약서에 대한 데이터를 상기 제1 사용자의 단말로 전송하면서, 상기 제1 사용자의 단말로 상기 전자 계약서에 대한 데이터를 기초로 한 전자 서명을 요청하는 제1 서명 요청부, 상기 제1 사용자의 단말에서 상기 전자 계약서에 대한 데이터가 상기 제1 사용자의 단말에 저장되어 있는 상기 해시 함수에 입력으로 인가되어 제1 해시 값이 생성된 후 상기 제1 해시 값이 상기 제1 사용자의 단말에 저장되어 있는 상기 제1 개인키로 암호화되어 제1 전자 서명 값이 생성됨에 따라, 상기 제1 사용자의 단말로부터 상기 제1 전자 서명 값이 수신되면, 상기 공개키 저장부로부터 상기 제1 공개키를 추출한 후 상기 제1 공개키로 상기 제1 전자 서명 값을 복호화하여 제1 복호화 값을 생성하는 제1 복호화부, 상기 전자 계약서에 대한 데이터를 상기 정보 저장부에 저장되어 있는 상기 해시 함수에 입력으로 인가하여 제2 해시 값을 생성한 후 상기 제2 해시 값이 상기 제1 복호화 값과 서로 일치하는지 확인하여, 상기 제2 해시 값이 상기 제1 복호화 값과 서로 일치하는 것으로 확인되면, 상기 제1 전자 서명 값에 대한 검증을 완료하고, 상기 제2 사용자의 단말로 상기 전자 계약서에 대한 데이터를 전송하면서, 상기 제2 사용자의 단말로 상기 전자 계약서에 대한 데이터를 기초로 한 전자 서명을 요청하는 제2 서명 요청부, 상기 제2 사용자의 단말에서 상기 전자 계약서에 대한 데이터가 상기 제2 사용자의 단말에 저장되어 있는 상기 해시 함수에 입력으로 인가되어 제3 해시 값이 생성된 후 상기 제3 해시 값이 상기 제2 사용자의 단말에 저장되어 있는 상기 제2 개인키로 암호화되어 제2 전자 서명 값이 생성됨에 따라, 상기 제2 사용자의 단말로부터 상기 제2 전자 서명 값이 수신되면, 상기 공개키 저장부로부터 상기 제2 공개키를 추출한 후 상기 제2 공개키로 상기 제2 전자 서명 값을 복호화하여 제2 복호화 값을 생성하는 제2 복호화부, 상기 제2 해시 값이 상기 제2 복호화 값과 서로 일치하는지 확인하여, 상기 제2 해시 값이 상기 제2 복호화 값과 서로 일치하는 것으로 확인되면, 상기 제2 전자 서명 값에 대한 검증을 완료하고, 상기 제1 사용자와 상기 제2 사용자 간의 계약이 완료되었음을 지시하는 계약 완료 메시지를 생성하는 메시지 생성부 및 상기 제1 사용자의 단말과 상기 제2 사용자의 단말로 상기 계약 완료 메시지를 전송하는 메시지 전송부를 포함한다.An electronic contract management system device that enables an electronic contract between a first user and a second user according to an embodiment of the present invention is a preset private key for verification - the terminal of the first user and the terminal of the second user include the A public key for verification corresponding to the private key for verification is issued and stored in advance - and a preset hash function - The hash function is also pre-stored in the terminal of the first user and the terminal of the second user - is stored information storage unit, the first public key corresponding to the first private key pre-stored in the terminal of the first user, and the second public key corresponding to the second private key pre-stored in the terminal of the second user A public key storage unit in which a key is stored and data on an electronic contract including contract information on the electronic contract are transmitted to the first user's terminal, and data on the electronic contract is transmitted to the first user's terminal A first signature request unit for requesting an electronic signature based on the first user's terminal, the data for the electronic contract is applied as an input to the hash function stored in the first user's terminal, a first hash value After this is generated, the first hash value is encrypted with the first private key stored in the terminal of the first user to generate a first digital signature value, the first digital signature value from the terminal of the first user When this is received, a first decryption unit that extracts the first public key from the public key storage unit and then decrypts the first digital signature value with the first public key to generate a first decrypted value, data on the electronic contract is applied to the hash function stored in the information storage unit as an input to generate a second hash value, and then check whether the second hash value matches the first decryption value, so that the second hash value is the When it is confirmed that the first decryption value matches each other, the verification of the first electronic signature value is completed, and the data on the electronic contract is transmitted to the terminal of the second user, the A second signature requesting unit for requesting an electronic signature based on the data on the electronic contract to the terminal of the second user, the data for the electronic contract in the terminal of the second user is stored in the terminal of the second user After the third hash value is generated by being applied as an input to the hash function, the third hash value is encrypted with the second private key stored in the second user's terminal, When the second digital signature value is received from the second user's terminal, after extracting the second public key from the public key storage unit, the second digital signature value is decrypted with the second public key to obtain a second decryption value A second decryption unit that generates, checks whether the second hash value matches the second decryption value, and when it is confirmed that the second hash value matches the second decryption value, the second digital signature value a message generating unit generating a contract completion message indicating that the contract between the first user and the second user has been completed, and the contract is completed with the terminal of the first user and the terminal of the second user and a message transmission unit for transmitting a message.
또한, 본 발명의 일실시예에 따른 제1 사용자와 제2 사용자 간의 전자 계약을 가능하게 하는 전자 계약 관리 시스템 장치의 동작 방법은 사전 설정된 검증용 개인키 - 상기 제1 사용자의 단말과 상기 제2 사용자의 단말에는 상기 검증용 개인키에 대응되는 검증용 공개키가 사전 발급되어 저장되어 있음 - 와 사전 설정된 해시 함수 - 상기 해시 함수는 상기 제1 사용자의 단말과 상기 제2 사용자의 단말에도 사전 저장되어 있음 - 가 저장되어 있는 정보 저장부를 유지하는 단계, 상기 제1 사용자의 단말에 사전 저장되어 있는 제1 개인키에 대응되는 제1 공개키와 상기 제2 사용자의 단말에 사전 저장되어 있는 제2 개인키에 대응되는 제2 공개키가 저장되어 있는 공개키 저장부를 유지하는 단계, 상기 전자 계약에 대한 계약 정보가 포함된 전자 계약서에 대한 데이터를 상기 제1 사용자의 단말로 전송하면서, 상기 제1 사용자의 단말로 상기 전자 계약서에 대한 데이터를 기초로 한 전자 서명을 요청하는 단계, 상기 제1 사용자의 단말에서 상기 전자 계약서에 대한 데이터가 상기 제1 사용자의 단말에 저장되어 있는 상기 해시 함수에 입력으로 인가되어 제1 해시 값이 생성된 후 상기 제1 해시 값이 상기 제1 사용자의 단말에 저장되어 있는 상기 제1 개인키로 암호화되어 제1 전자 서명 값이 생성됨에 따라, 상기 제1 사용자의 단말로부터 상기 제1 전자 서명 값이 수신되면, 상기 공개키 저장부로부터 상기 제1 공개키를 추출한 후 상기 제1 공개키로 상기 제1 전자 서명 값을 복호화하여 제1 복호화 값을 생성하는 단계, 상기 전자 계약서에 대한 데이터를 상기 정보 저장부에 저장되어 있는 상기 해시 함수에 입력으로 인가하여 제2 해시 값을 생성한 후 상기 제2 해시 값이 상기 제1 복호화 값과 서로 일치하는지 확인하여, 상기 제2 해시 값이 상기 제1 복호화 값과 서로 일치하는 것으로 확인되면, 상기 제1 전자 서명 값에 대한 검증을 완료하고, 상기 제2 사용자의 단말로 상기 전자 계약서에 대한 데이터를 전송하면서, 상기 제2 사용자의 단말로 상기 전자 계약서에 대한 데이터를 기초로 한 전자 서명을 요청하는 단계, 상기 제2 사용자의 단말에서 상기 전자 계약서에 대한 데이터가 상기 제2 사용자의 단말에 저장되어 있는 상기 해시 함수에 입력으로 인가되어 제3 해시 값이 생성된 후 상기 제3 해시 값이 상기 제2 사용자의 단말에 저장되어 있는 상기 제2 개인키로 암호화되어 제2 전자 서명 값이 생성됨에 따라, 상기 제2 사용자의 단말로부터 상기 제2 전자 서명 값이 수신되면, 상기 공개키 저장부로부터 상기 제2 공개키를 추출한 후 상기 제2 공개키로 상기 제2 전자 서명 값을 복호화하여 제2 복호화 값을 생성하는 단계, 상기 제2 해시 값이 상기 제2 복호화 값과 서로 일치하는지 확인하여, 상기 제2 해시 값이 상기 제2 복호화 값과 서로 일치하는 것으로 확인되면, 상기 제2 전자 서명 값에 대한 검증을 완료하고, 상기 제1 사용자와 상기 제2 사용자 간의 계약이 완료되었음을 지시하는 계약 완료 메시지를 생성하는 단계 및 상기 제1 사용자의 단말과 상기 제2 사용자의 단말로 상기 계약 완료 메시지를 전송하는 단계를 포함한다.In addition, the operating method of the electronic contract management system device that enables the electronic contract between the first user and the second user according to an embodiment of the present invention is a preset private key for verification - the first user's terminal and the second A public key for verification corresponding to the private key for verification is previously issued and stored in the user's terminal - and a preset hash function - The hash function is also pre-stored in the terminal of the first user and the terminal of the second user maintaining an information storage unit in which - is stored, a first public key corresponding to the first private key pre-stored in the terminal of the first user and a second pre-stored in the terminal of the second user maintaining a public key storage unit in which a second public key corresponding to the private key is stored; while transmitting data on the electronic contract including contract information on the electronic contract to the terminal of the first user, the first requesting an electronic signature based on data on the electronic contract from a user's terminal, and inputting data on the electronic contract from the first user's terminal into the hash function stored in the first user's terminal After the first hash value is generated by being applied as , the first hash value is encrypted with the first private key stored in the first user's terminal to generate a first digital signature value, the first user's terminal generating a first decryption value by extracting the first public key from the public key storage unit when the first digital signature value is received from the After generating a second hash value by applying data about a contract as an input to the hash function stored in the information storage unit, it is checked whether the second hash value matches the first decryption value, and the second When it is confirmed that the hash value matches the first decryption value, verification of the first electronic signature value is completed, and the electronic contract is written to the electronic contract by the terminal of the second user. requesting an electronic signature based on the data on the electronic contract to the second user's terminal while transmitting the data for the second user, the data on the electronic contract in the second user's terminal After being applied as an input to the hash function stored in and generating a third hash value, the third hash value is encrypted with the second private key stored in the second user's terminal to generate a second digital signature value Accordingly, when the second digital signature value is received from the terminal of the second user, the second public key is extracted from the public key storage unit, and the second digital signature value is decrypted with the second public key to obtain a second generating a decrypted value; checking whether the second hash value matches the second decrypted value; if it is confirmed that the second hash value matches the second decrypted value, the second digital signature value generating a contract completion message indicating that the contract between the first user and the second user has been completed, and sending the contract completion message to the terminal of the first user and the terminal of the second user. sending it.
본 발명에 따른 전자 계약 관리 시스템 장치 및 그 동작 방법은 제1 사용자와 제2 사용자 간의 전자 계약이 진행되는 경우, 전자 계약 내용을 담고 있는 전자 계약서에 대한 데이터를 제1 사용자의 단말에 전송하면서 전자 서명을 요청하고, 제1 사용자의 단말로부터 제1 사용자의 단말에 저장되어 있는 개인키로 서명된 전자 서명 값이 수신되면, 해당 개인키에 대응되는 공개키로 상기 전자 서명 값을 검증한 후 제2 사용자의 단말로 상기 전자 계약서에 대한 데이터를 전송하면서 전자 서명을 요청하고, 제2 사용자의 단말로부터 제2 사용자의 단말에 저장되어 있는 개인키로 서명된 전자 서명 값이 수신되면, 해당 개인키에 대응되는 공개키로 상기 전자 서명 값을 검증함으로써, 상기 제1 사용자와 상기 제2 사용자 쌍방에 대한 서명 검증 작업을 완료하고, 이러한 서명 검증 작업이 완료되면, 전자 계약이 완료되었음을 지시하는 계약 완료 메시지를 생성하여 제1 사용자의 단말과 제2 사용자의 단말로 전송함으로써, 상기 제1 사용자와 상기 제2 사용자가 강화된 보안 인증 환경하에서 보다 손쉽게 전자 계약을 진행할 수 있도록 지원할 수 있다.The electronic contract management system device and the method for operating the same according to the present invention, when an electronic contract between a first user and a second user is in progress, while transmitting data on the electronic contract containing the content of the electronic contract to the terminal of the first user When a signature is requested and an electronic signature value signed with the private key stored in the terminal of the first user is received from the terminal of the first user, the second user verifies the value of the electronic signature with the public key corresponding to the corresponding private key Requesting an electronic signature while transmitting the data for the electronic contract to the terminal of, and receiving an electronic signature value signed with the private key stored in the second user's terminal from the second user's terminal, By verifying the electronic signature value with the public key, the signature verification operation for both the first user and the second user is completed, and when the signature verification operation is completed, a contract completion message indicating that the electronic contract is completed is generated. By transmitting to the terminal of the first user and the terminal of the second user, it is possible to support the first user and the second user to more easily proceed with the electronic contract under the enhanced security authentication environment.
도 1은 본 발명의 일실시예에 따른 전자 계약 관리 시스템 장치의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 전자 계약 관리 시스템 장치의 동작 방법을 도시한 순서도이다.
1 is a diagram showing the structure of an electronic contract management system device according to an embodiment of the present invention.
2 is a flowchart illustrating an operating method of an electronic contract management system device according to an embodiment of the present invention.
이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.Hereinafter, embodiments according to the present invention will be described in detail with reference to the accompanying drawings. These descriptions are not intended to limit the present invention to specific embodiments, and should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention. While describing each drawing, like reference numerals are used for similar components, and unless otherwise defined, all terms used in this specification, including technical or scientific terms, refer to those of ordinary skill in the art to which the present invention belongs. It has the same meaning as is commonly understood by those who have it.
본 문서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 본 발명의 다양한 실시예들에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있고, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다. In this document, when a part "includes" a certain component, it means that other components may be further included, rather than excluding other components, unless otherwise stated. In addition, in various embodiments of the present invention, each of the components, functional blocks or means may be composed of one or more sub-components, and the electrical, electronic, and mechanical functions performed by each component are electronic. A circuit, an integrated circuit, an ASIC (Application Specific Integrated Circuit), etc. may be implemented with various well-known devices or mechanical elements, and may be implemented separately or two or more may be integrated into one.
한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 명령들(instructions)을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 명령들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 명령 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 가능한 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.On the other hand, the blocks in the accompanying block diagram or steps in the flowchart are computer program instructions that are loaded in a processor or memory of equipment capable of data processing, such as a general-purpose computer, a special-purpose computer, a portable notebook computer, and a network computer, and perform specified functions. can be interpreted as meaning Since these computer program instructions may be stored in a memory provided in a computer device or in a memory readable by a computer, the functions described in the blocks of the block diagrams or the steps of the flowcharts are produced as articles of manufacture containing instruction means for performing the same. could be In addition, each block or each step may represent a module, segment, or portion of code comprising one or more executable instructions for executing the specified logical function(s). It should also be noted that, in some alternative embodiments, it is also possible for the functions recited in blocks or steps to be executed out of the prescribed order. For example, two blocks or steps shown one after another may be performed substantially simultaneously or in the reverse order, and in some cases, some blocks or steps may be omitted.
도 1은 본 발명의 일실시예에 따른 전자 계약 관리 시스템 장치의 구조를 도시한 도면이다.1 is a diagram showing the structure of an electronic contract management system device according to an embodiment of the present invention.
도 1을 참조하면, 본 발명에 따른 전자 계약 관리 시스템 장치(110)는 제1 사용자와 제2 사용자 간의 전자 계약을 가능하게 하는 장치로서, 정보 저장부(111), 공개키 저장부(112), 제1 서명 요청부(113), 제1 복호화부(114), 제2 서명 요청부(115), 제2 복호화부(116), 메시지 생성부(117) 및 메시지 전송부(118)를 포함한다.Referring to FIG. 1 , an electronic contract management system device 110 according to the present invention is a device that enables an electronic contract between a first user and a second user, and includes an information storage unit 111 and a public key storage unit 112 . , including a first signature requesting unit 113 , a first decrypting unit 114 , a second signature requesting unit 115 , a second decrypting unit 116 , a message generating unit 117 , and a message transmitting unit 118 . do.
우선, 정보 저장부(111)에는 사전 설정된 검증용 개인키와 사전 설정된 해시 함수가 저장되어 있다.First, the information storage unit 111 stores a preset private key for verification and a preset hash function.
이때, 제1 사용자의 단말(101)과 제2 사용자의 단말(102)에는 상기 검증용 개인키에 대응되는 검증용 공개키가 사전 발급되어 저장되어 있고, 상기 해시 함수는 제1 사용자의 단말(101)과 제2 사용자의 단말(102)에도 사전 저장되어 있다. 그리고, 제1 사용자의 단말(101)에는 전자 서명을 위한 제1 개인키가 사전 저장되어 있고, 제2 사용자의 단말(102)에는 전자 서명을 위한 제2 개인키가 사전 저장되어 있다.At this time, in the terminal 101 of the first user and the terminal 102 of the second user, a public key for verification corresponding to the private key for verification is issued and stored in advance, and the hash function is the terminal of the first user ( 101) and the second user's terminal 102 are also pre-stored. In addition, the first private key for electronic signature is pre-stored in the terminal 101 of the first user, and the second private key for the electronic signature is pre-stored in the terminal 102 of the second user.
이때, 공개키 저장부(112)에는 제1 사용자의 단말(101)에 사전 저장되어 있는 상기 제1 개인키에 대응되는 제1 공개키와 제2 사용자의 단말(102)에 사전 저장되어 있는 상기 제2 개인키에 대응되는 제2 공개키가 저장되어 있다.In this case, the public key storage unit 112 includes the first public key corresponding to the first private key pre-stored in the terminal 101 of the first user and the first public key previously stored in the terminal 102 of the second user. A second public key corresponding to the second private key is stored.
이러한 상황에서, 제1 사용자의 단말(101) 또는 제2 사용자의 단말(102)로부터 전자 계약 관리 시스템 장치(110)에 상기 제1 사용자와 상기 제2 사용자 간의 전자 계약과 관련된 계약 정보가 수신되면서, 전자 계약 진행을 위한 프로세스 처리 요청이 수신되면, 전자 계약 관리 시스템 장치(110)는 상기 제1 사용자와 상기 제2 사용자 간의 전자 계약을 진행하기 위한 프로세스를 시작할 수 있다.In this situation, as contract information related to the electronic contract between the first user and the second user is received from the first user's terminal 101 or the second user's terminal 102 to the electronic contract management system device 110 , , when a process processing request for electronic contract progress is received, the electronic contract management system device 110 may start a process for performing an electronic contract between the first user and the second user.
이와 관련해서, 먼저, 제1 서명 요청부(113)는 상기 제1 사용자와 상기 제2 사용자 간의 전자 계약에 대한 계약 정보가 포함된 소정의 전자 계약서를 생성할 수 있다. 여기서, 상기 전자 계약서는 상기 제1 사용자와 상기 제2 사용자 간에 체결하기로 한 계약 내용과 관련된 계약 정보를 포함하는 소정의 전자 문서 형식으로 생성될 수 있다.In this regard, first, the first signature requesting unit 113 may generate a predetermined electronic contract including contract information on the electronic contract between the first user and the second user. Here, the electronic contract may be generated in the form of a predetermined electronic document including contract information related to a contract to be concluded between the first user and the second user.
그리고, 제1 서명 요청부(113)는 상기 전자 계약에 대한 계약 정보가 포함된 전자 계약서에 대한 데이터를 제1 사용자의 단말(101)로 전송하면서, 제1 사용자의 단말(101)로 상기 전자 계약서에 대한 데이터를 기초로 한 전자 서명을 요청한다.In addition, the first signature request unit 113 transmits data on the electronic contract including the contract information for the electronic contract to the first user's terminal 101, while transmitting the electronic contract to the first user's terminal 101 . Request an electronic signature based on the data on the contract.
이때, 제1 사용자의 단말(101)은 전자 계약 관리 시스템 장치(110)로부터 상기 전자 계약서에 대한 데이터와 전자 서명 요청이 수신되면, 제1 사용자의 단말(101)에 저장되어 있는 상기 해시 함수에 상기 전자 계약서에 대한 데이터를 입력으로 인가하여 제1 해시 값을 생성한 후 상기 제1 해시 값에 대해 제1 사용자의 단말(101)에 저장되어 있는 상기 제1 개인키로 암호화하여 제1 전자 서명 값을 생성할 수 있다. 그러고 나서, 제1 사용자의 단말(101)은 상기 제1 전자 서명 값을 전자 계약 관리 시스템 장치(110)로 전송할 수 있다.At this time, when the first user's terminal 101 receives the data for the electronic contract and the electronic signature request from the electronic contract management system device 110, the hash function stored in the first user's terminal 101 is After generating a first hash value by applying data for the electronic contract as an input, the first hash value is encrypted with the first private key stored in the first user's terminal 101 to obtain a first electronic signature value can create Then, the terminal 101 of the first user may transmit the first electronic signature value to the electronic contract management system device 110 .
이렇게, 제1 사용자의 단말(101)에서 상기 전자 계약서에 대한 데이터가 제1 사용자의 단말(101)에 저장되어 있는 해시 함수에 입력으로 인가되어 상기 제1 해시 값이 생성된 후 상기 제1 해시 값이 제1 사용자의 단말(101)에 저장되어 있는 상기 제1 개인키로 암호화되어 상기 제1 전자 서명 값이 생성됨에 따라, 제1 사용자의 단말(101)로부터 상기 제1 전자 서명 값이 전자 계약 관리 시스템 장치(110)에 수신되면, 제1 복호화부(114)는 공개키 저장부(112)로부터 상기 제1 공개키를 추출한 후 상기 제1 공개키로 상기 제1 전자 서명 값을 복호화하여 제1 복호화 값을 생성한다.In this way, in the terminal 101 of the first user, the data for the electronic contract is applied as an input to the hash function stored in the terminal 101 of the first user to generate the first hash value, and then the first hash As the value is encrypted with the first private key stored in the first user's terminal 101 to generate the first electronic signature value, the first electronic signature value from the first user's terminal 101 is an electronic contract When received by the management system device 110, the first decryption unit 114 extracts the first public key from the public key storage unit 112, and then decrypts the first digital signature value with the first public key to first Generates a decrypted value.
그 이후, 제2 서명 요청부(115)는 상기 전자 계약서에 대한 데이터를 정보 저장부(111)에 저장되어 있는 상기 해시 함수에 입력으로 인가하여 제2 해시 값을 생성한 후 상기 제2 해시 값이 상기 제1 복호화 값과 서로 일치하는지 확인하여, 상기 제2 해시 값이 상기 제1 복호화 값과 서로 일치하는 것으로 확인되면, 상기 제1 전자 서명 값에 대한 검증을 완료할 수 있다.After that, the second signature request unit 115 applies the data for the electronic contract as an input to the hash function stored in the information storage unit 111 to generate a second hash value, and then the second hash value It is checked whether the first decrypted value matches each other, and when it is confirmed that the second hash value matches the first decrypted value, verification of the first digital signature value may be completed.
그러고 나서, 제2 서명 요청부(115)는 제2 사용자의 단말(102)로 상기 전자 계약서에 대한 데이터를 전송하면서, 제2 사용자의 단말(102)로 상기 전자 계약서에 대한 데이터를 기초로 한 전자 서명을 요청한다.Then, the second signature requesting unit 115 transmits the data on the electronic contract to the second user's terminal 102, based on the data on the electronic contract to the second user's terminal 102. Request an electronic signature.
이때, 제2 사용자의 단말(102)은 전자 계약 관리 시스템 장치(110)로부터 상기 전자 계약서에 대한 데이터와 전자 서명 요청이 수신되면, 제2 사용자의 단말(102)에 저장되어 있는 상기 해시 함수에 상기 전자 계약서에 대한 데이터를 입력으로 인가하여 제3 해시 값을 생성한 후 상기 제3 해시 값에 대해 제2 사용자의 단말(102)에 저장되어 있는 상기 제2 개인키로 암호화하여 제2 전자 서명 값을 생성할 수 있다. 그러고 나서, 제2 사용자의 단말(102)은 상기 제2 전자 서명 값을 전자 계약 관리 시스템 장치(110)로 전송할 수 있다.At this time, when the second user's terminal 102 receives the data for the electronic contract and the electronic signature request from the electronic contract management system device 110, the hash function stored in the second user's terminal 102 is After generating a third hash value by applying data for the electronic contract as an input, the third hash value is encrypted with the second private key stored in the second user's terminal 102 to obtain a second electronic signature value can create Then, the second user's terminal 102 may transmit the second electronic signature value to the electronic contract management system device 110 .
이렇게, 제2 사용자의 단말(102)에서 상기 전자 계약서에 대한 데이터가 제2 사용자의 단말(102)에 저장되어 있는 상기 해시 함수에 입력으로 인가되어 상기 제3 해시 값이 생성된 후 상기 제3 해시 값이 제2 사용자의 단말(102)에 저장되어 있는 상기 제2 개인키로 암호화되어 상기 제2 전자 서명 값이 생성됨에 따라, 제2 사용자의 단말(102)로부터 상기 제2 전자 서명 값이 전자 계약 관리 시스템 장치(110)에 수신되면, 제2 복호화부(116)는 공개키 저장부(112)로부터 상기 제2 공개키를 추출한 후 상기 제2 공개키로 상기 제2 전자 서명 값을 복호화하여 제2 복호화 값을 생성한다.In this way, the data for the electronic contract in the second user's terminal 102 is applied as an input to the hash function stored in the second user's terminal 102 to generate the third hash value, and then the third As the hash value is encrypted with the second private key stored in the second user's terminal 102 to generate the second electronic signature value, the second electronic signature value is transferred from the second user's terminal 102 electronically. When received by the contract management system device 110, the second decryption unit 116 extracts the second public key from the public key storage unit 112, then decrypts the second digital signature value with the second public key to obtain a second 2 Generate a decrypted value.
그 이후, 메시지 생성부(117)는 상기 제2 해시 값이 상기 제2 복호화 값과 서로 일치하는지 확인하여, 상기 제2 해시 값이 상기 제2 복호화 값과 서로 일치하는 것으로 확인되면, 상기 제2 전자 서명 값에 대한 검증을 완료하고, 상기 제1 사용자와 상기 제2 사용자 간의 계약이 완료되었음을 지시하는 계약 완료 메시지를 생성한다.Thereafter, the message generating unit 117 checks whether the second hash value matches the second decrypted value, and when it is confirmed that the second hash value matches the second decrypted value, the second Verification of the electronic signature value is completed, and a contract completion message indicating that the contract between the first user and the second user is completed is generated.
이렇게, 상기 계약 완료 메시지가 생성되면, 메시지 전송부(118)는 제1 사용자의 단말(101)과 제2 사용자의 단말(102)로 상기 계약 완료 메시지를 전송한다.In this way, when the contract completion message is generated, the message transmission unit 118 transmits the contract completion message to the terminal 101 of the first user and the terminal 102 of the second user.
즉, 본 발명에 따른 전자 계약 관리 시스템 장치(110)는 제1 사용자와 제2 사용자 간의 전자 계약이 진행되는 경우, 전자 계약 내용을 담고 있는 전자 계약서에 대한 데이터를 제1 사용자의 단말(101)에 전송하면서 전자 서명을 요청하고, 제1 사용자의 단말(101)로부터 제1 사용자의 단말(101)에 저장되어 있는 개인키로 서명된 전자 서명 값이 수신되면, 해당 개인키에 대응되는 공개키로 상기 전자 서명 값을 검증한 후 제2 사용자의 단말(102)로 상기 전자 계약서에 대한 데이터를 전송하면서 전자 서명을 요청하고, 제2 사용자의 단말(102)로부터 제2 사용자의 단말(102)에 저장되어 있는 개인키로 서명된 전자 서명 값이 수신되면, 해당 개인키에 대응되는 공개키로 상기 전자 서명 값을 검증함으로써, 상기 제1 사용자와 상기 제2 사용자 쌍방에 대한 서명 검증 작업을 완료하고, 이러한 서명 검증 작업이 완료되면, 전자 계약이 완료되었음을 지시하는 계약 완료 메시지를 생성하여 제1 사용자의 단말(101)과 제2 사용자의 단말(102)로 전송함으로써, 상기 제1 사용자와 상기 제2 사용자가 강화된 보안 인증 환경하에서 보다 손쉽게 전자 계약을 진행할 수 있도록 지원할 수 있다.That is, when the electronic contract between the first user and the second user is in progress, the electronic contract management system device 110 according to the present invention transmits data about the electronic contract containing the electronic contract content to the first user's terminal 101 . When an electronic signature is requested while transmitting to the first user, and an electronic signature value signed with the private key stored in the terminal 101 of the first user is received from the terminal 101 of the first user, the public key corresponding to the private key After verifying the electronic signature value, while transmitting the data for the electronic contract to the second user's terminal 102, the electronic signature is requested, and stored in the second user's terminal 102 from the second user's terminal 102 When the digital signature value signed with the private key is received, the signature verification operation for both the first user and the second user is completed by verifying the digital signature value with the public key corresponding to the corresponding private key, and the signature When the verification operation is completed, a contract completion message indicating that the electronic contract is completed is generated and transmitted to the terminal 101 of the first user and the terminal 102 of the second user, whereby the first user and the second user It can support easier electronic contract processing under the enhanced security authentication environment.
본 발명의 일실시예에 따르면, 전자 계약 관리 시스템 장치(110)는 트랜잭션 생성부(119) 및 등록 요청부(120)를 더 포함할 수 있다.According to an embodiment of the present invention, the electronic contract management system device 110 may further include a transaction generation unit 119 and a registration request unit 120 .
트랜잭션 생성부(119)는 제1 사용자의 단말(101)과 제2 사용자의 단말(102)로 상기 계약 완료 메시지가 전송되면, 상기 제2 해시 값에 대해 정보 저장부(111)에 저장되어 있는 상기 검증용 개인키로 암호화하여 검증용 전자 서명 값을 생성한 후 상기 제2 해시 값과 상기 검증용 전자 서명 값이 포함된 트랜잭션을 생성한다.When the contract completion message is transmitted to the first user's terminal 101 and the second user's terminal 102, the transaction generating unit 119 is stored in the information storage unit 111 for the second hash value. After generating an electronic signature value for verification by encryption with the private key for verification, a transaction including the second hash value and the electronic signature value for verification is generated.
등록 요청부(120)는 상기 트랜잭션이 생성되면, 블록체인 네트워크를 구성하고 있는 복수의 노드 장치들(11, 12, 13, 14) 중 어느 하나인 제1 노드 장치를 랜덤하게 선택하고, 상기 제1 노드 장치에 대한 인증을 진행한 후 상기 제1 노드 장치로 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송한다.When the transaction is generated, the registration request unit 120 randomly selects a first node device that is any one of a plurality of node devices 11, 12, 13, and 14 constituting the block chain network, and After authenticating the first node device, while transmitting the transaction to the first node device, a registration request of the transaction to the blockchain network is transmitted.
이때, 상기 제1 노드 장치는 전자 계약 관리 시스템 장치(110)로부터 상기 트랜잭션과 함께 상기 등록 요청이 수신되면, 메모리 상에 저장되어 있는 블록체인 데이터에 체인으로 연결된 이전 블록을 기초로 상기 트랜잭션이 포함된 제1 블록을 생성하고, 상기 제1 블록을 상기 블록체인 데이터에 체인으로 연결함으로써, 상기 제1 블록에 대한 저장을 완료한 후 상기 블록체인 네트워크를 통해 상기 제1 블록을 복수의 노드 장치들(11, 12, 13, 14) 중 상기 제1 노드 장치를 제외한 나머지 노드 장치들로 전파할 수 있다.At this time, when the registration request is received with the transaction from the electronic contract management system device 110, the first node device includes the transaction based on the previous block chained to the block chain data stored in the memory. After completing the storage of the first block by creating a first block and linking the first block to the block chain data in a chain, the first block is transferred to a plurality of node devices through the block chain network. Among (11, 12, 13, 14), propagation may be performed to other node devices except for the first node device.
구체적으로, 상기 제1 노드 장치는 전자 계약 관리 시스템 장치(110)로부터 상기 트랜잭션과 함께 상기 등록 요청이 수신되면, 상기 블록체인 데이터에 체인으로 연결되어 있는 이전 블록의 블록 헤더를 참조하여 상기 트랜잭션이 포함된 새로운 블록인 상기 제1 블록을 생성할 수 있다. 그러고 나서, 상기 제1 노드 장치는 상기 제1 블록을 상기 블록체인 데이터에 체인으로 연결함으로써, 상기 제1 블록에 대한 저장을 완료한 후 상기 블록체인 네트워크를 통해 상기 제1 블록을 상기 복수의 노드 장치들(11, 12, 13, 14) 중 상기 제1 노드 장치를 제외한 나머지 노드 장치들로 전파할 수 있다.Specifically, when the registration request is received with the transaction from the electronic contract management system device 110, the first node device refers to the block header of a previous block connected to the block chain data in a chain, and the transaction is executed. The first block, which is a new included block, may be generated. Then, the first node device connects the first block to the block chain data by chaining the first block to the plurality of nodes after completing the storage of the first block through the block chain network. Among the devices 11 , 12 , 13 , and 14 , propagation may be performed to other node devices except for the first node device.
이렇게, 본 발명에 따른 전자 계약 관리 시스템 장치(110)는 제1 사용자의 단말(101)과 제2 사용자의 단말(102)로 상기 계약 완료 메시지가 전송되면, 전자 계약서에 대한 해시 값에 대해 상기 검증용 개인키로 서명하여 전자 서명 값을 생성한 후 이러한 전자 서명 값을 블록체인 네트워크에 등록해 둠으로써, 상기 제1 사용자와 상기 제2 사용자 간의 전자 계약에 대한 무결성을 보증해줄 수 있다.In this way, when the contract completion message is transmitted to the terminal 101 of the first user and the terminal 102 of the second user, the electronic contract management system device 110 according to the present invention relates to the hash value for the electronic contract. By signing with the private key for verification to generate an electronic signature value and then registering the electronic signature value in the blockchain network, the integrity of the electronic contract between the first user and the second user can be guaranteed.
이때, 본 발명의 일실시예에 따르면, 등록 요청부(120)는 상기 제1 노드 장치로 상기 트랜잭션과 상기 등록 요청을 전송하기 전에 상기 제1 노드 장치가 신뢰할 수 있는 노드 장치가 맞는지 여부를 인증하기 위한 구성으로, OTP 저장부(121), 인증용 숫자 저장부(122), 인증 이벤트 발생부(123), 연산 값 산출부(124), 랜덤 값 생성부(125), 피드백 값 요청부(126), 확인부(127) 및 인증 완료부(128)를 포함할 수 있다.At this time, according to an embodiment of the present invention, the registration request unit 120 authenticates whether the first node device is a trusted node device before transmitting the transaction and the registration request to the first node device. As a configuration for the following, the OTP storage unit 121, the authentication number storage unit 122, the authentication event generation unit 123, the calculation value calculation unit 124, the random value generation unit 125, the feedback value request unit ( 126 ), a verification unit 127 , and an authentication completion unit 128 .
OTP 저장부(121)에는 복수의 노드 장치들(11, 12, 13, 14)과 사전 공유하고 있는 사전 설정된 제1 OTP(One Time Password) 생성 함수와 사전 설정된 제2 OTP 생성 함수가 저장되어 있다.The OTP storage unit 121 stores a preset first OTP (One Time Password) generating function and a preset second OTP generating function that are pre-shared with the plurality of node devices 11 , 12 , 13 , and 14 . .
여기서, OTP란 고정된 패스워드 대신 무작위로 생성되는 일회용 인증 번호를 의미하고, 상기 제1 OTP 생성 함수와 상기 제2 OTP 생성 함수는 개발자에 의해 사전 설정될 수 있는 함수이다.Here, OTP means a one-time authentication number that is randomly generated instead of a fixed password, and the first OTP generating function and the second OTP generating function are functions that can be preset by a developer.
인증용 숫자 저장부(122)에는 복수의 노드 장치들(11, 12, 13, 14)과 사전 공유하고 있는 사전 설정된 제1 인증용 숫자 m(m은 2 이상의 자연수임)과 사전 설정된 제2 인증용 숫자 k(k는 m과 다른 2 이상의 자연수임)가 저장되어 있다.The number storage unit 122 for authentication includes a preset first authentication number m (m is a natural number greater than or equal to 2) and a preset second authentication that is shared with the plurality of node devices 11, 12, 13, and 14 in advance. A number k (where k is a natural number greater than or equal to 2 different from m) is stored.
인증 이벤트 발생부(123)는 상기 복수의 노드 장치들 중 어느 하나인 상기 제1 노드 장치가 랜덤하게 선택되면, 상기 제1 노드 장치의 인증을 수행하기 위한 인증 이벤트를 발생시킨다.When the first node device, which is any one of the plurality of node devices, is randomly selected, the authentication event generator 123 generates an authentication event for performing authentication of the first node device.
연산 값 산출부(124)는 상기 인증 이벤트가 발생되면, 상기 제1 OTP 생성 함수를 기초로 제1 일회용 인증 번호를 생성한 후 상기 제1 일회용 인증 번호를 피제수로, 상기 제1 인증용 숫자 m을 제수로 하는 모듈로(Modulo) 연산을 수행함으로써, 제1 연산 값 x를 산출하고, 상기 제2 OTP 생성 함수를 기초로 제2 일회용 인증 번호를 생성한 후 상기 제2 일회용 인증 번호를 피제수로, 상기 제2 인증용 숫자 k를 제수로 하는 모듈로 연산을 수행함으로써, 제2 연산 값 y를 산출한다.When the authentication event occurs, the calculation value calculation unit 124 generates a first one-time authentication number based on the first OTP generation function, and then sets the first one-time authentication number as a dividend, the first authentication number m By performing a modulo operation in which is a divisor, a first operation value x is calculated, a second one-time authentication number is generated based on the second OTP generation function, and the second one-time authentication number is converted to a dividend. , a second operation value y is calculated by performing a modulo operation of dividing the second authentication number k as a divisor.
여기서, 모듈로 연산은 피제수를 제수로 나누는 나눗셈을 수행하여 그에 대한 나머지(remainder)를 산출하는 연산을 의미한다.Here, the modulo operation refers to an operation of dividing a dividend by a divisor to calculate a remainder thereof.
랜덤 값 생성부(125)는 랜덤한 성분 값들로 구성된 m x k의 크기를 갖는 랜덤 행렬을 생성하고, 제1 랜덤 값을 랜덤하게 생성한다.The random value generator 125 generates a random matrix having a size of m x k composed of random component values and randomly generates a first random value.
피드백 값 요청부(126)는 상기 랜덤 행렬에서 (x+1)행(y+1)열에 위치하는 성분을 상기 제1 랜덤 값으로 치환함으로써, m x k의 크기를 갖는 치환 행렬을 생성하고, 상기 치환 행렬을 상기 제1 노드 장치로 전송하면서, 상기 제1 노드 장치로 상기 치환 행렬에 대응되는 피드백 값의 전송을 요청한다.The feedback value requesting unit 126 generates a permutation matrix having a size of mxk by substituting the first random value for a component located in (x+1) row (y+1) column in the random matrix, and the permutation While transmitting the matrix to the first node device, it requests transmission of a feedback value corresponding to the permutation matrix to the first node device.
예컨대, 제1 일회용 인증 번호로 '12341234'가 생성되었고, 제2 일회용 인증 번호로 '56785678'이 생성되었으며, 사전 설정된 제1 인증용 숫자 m이 '4', 사전 설정된 제2 인증용 숫자 k가 '3'이라고 하는 경우, 연산 값 산출부(124)는 상기 제1 일회용 인증 번호인 '12341234'를 피제수로, 상기 제1 인증용 숫자 '4'를 제수로 하는 모듈로 연산을 수행함으로써, 제1 연산 값 '2'를 산출할 수 있고, 상기 제2 일회용 인증 번호인 '56785678'을 피제수로, 상기 제2 인증용 숫자 '3'을 제수로 하는 모듈로 연산을 수행함으로써, 제2 연산 값 '1'을 산출할 수 있다.For example, '12341234' is generated as the first one-time authentication number, '56785678' is generated as the second one-time authentication number, the preset number m for the first authentication is '4', and the preset number k for the second authentication is '4'. In the case of '3', the calculation value calculating unit 124 performs a modulo operation in which '12341234', which is the first one-time authentication number, is a dividend, and the first authentication number '4' is a divisor. 1 operation value '2' can be calculated, and by performing a modulo operation in which the second one-time authentication number '56785678' is a dividend and the second authentication number '3' is a divisor, the second operation value '1' can be calculated.
그러고 나서, 랜덤 값 생성부(125)는 랜덤한 성분 값들로 구성된 4 x 3의 크기를 갖는 랜덤 행렬인 '
Figure 112020131023411-pat00001
'을 생성할 수 있고, 제1 랜덤 값인 'R'을 랜덤하게 생성할 수 있다.
Then, the random value generator 125 is a random matrix having a size of 4 x 3 composed of random component values '
Figure 112020131023411-pat00001
' may be generated, and a first random value of 'R' may be randomly generated.
그 이후, 피드백 값 요청부(126)는 상기 랜덤 행렬에서 (2+1)행(1+1)열인 '3행2열'에 위치하는 성분을 상기 제1 랜덤 값인 'R'로 치환함으로써, 4 x 3의 크기를 갖는 치환 행렬인 '
Figure 112020131023411-pat00002
'을 생성할 수 있고, 상기 치환 행렬을 상기 제1 노드 장치로 전송하면서, 상기 제1 노드 장치로 상기 치환 행렬에 대응되는 피드백 값의 전송을 요청할 수 있다.
After that, the feedback value requesting unit 126 replaces the component located in '3 rows and 2 columns', which is the (2+1) row (1+1) column in the random matrix, with the first random value 'R', ', which is a permutation matrix of size 4 x 3
Figure 112020131023411-pat00002
', and while transmitting the permutation matrix to the first node device, it is possible to request transmission of a feedback value corresponding to the permutation matrix to the first node device.
이때, 본 발명의 일실시예에 따르면, 상기 제1 노드 장치는 상기 제1 노드 장치의 메모리 상에 상기 제1 OTP 생성 함수, 상기 제2 OTP 생성 함수, 상기 제1 인증용 숫자 m 및 상기 제2 인증용 숫자 k를 사전 저장하고 있고, 전자 계약 관리 시스템 장치(110)로부터 상기 치환 행렬이 수신되면, 상기 제1 노드 장치의 메모리 상에 저장되어 있는 상기 제1 OTP 생성 함수를 기초로 상기 제1 일회용 인증 번호를 생성한 후 상기 제1 일회용 인증 번호를 피제수로, 상기 제1 인증용 숫자 m을 제수로 하는 모듈로 연산을 수행함으로써, 상기 제1 연산 값 x를 산출하고, 상기 제1 노드 장치의 메모리 상에 저장되어 있는 상기 제2 OTP 생성 함수를 기초로 상기 제2 일회용 인증 번호를 생성한 후 상기 제2 일회용 인증 번호를 피제수로, 상기 제2 인증용 숫자 k를 제수로 하는 모듈로 연산을 수행함으로써, 상기 제2 연산 값 y를 산출할 수 있다.At this time, according to an embodiment of the present invention, the first node device has the first OTP generating function, the second OTP generating function, the first authentication number m, and the second in the memory of the first node device. 2 The number k for authentication is stored in advance, and when the substitution matrix is received from the electronic contract management system device 110, based on the first OTP generation function stored in the memory of the first node device, the After generating a one-time authentication number, the first operation value x is calculated by performing a modulo operation in which the first one-time authentication number is a dividend and the first authentication number m is a divisor, and the first node A module for generating the second one-time authentication number based on the second OTP generation function stored in the memory of the device, and then dividing the second one-time authentication number as a dividend and the second authentication number k as a divisor By performing the operation, the second operation value y may be calculated.
이후, 상기 제1 노드 장치는 상기 제1 연산 값 x와 상기 제2 연산 값 y를 기초로 상기 치환 행렬에서 (x+1)행(y+1)열에 위치하는 성분 값을 제1 피드백 값으로 추출한 후 상기 제1 피드백 값을 전자 계약 관리 시스템 장치(110)로 전송할 수 있다.Then, the first node device uses the component value located in the (x+1) row (y+1) column in the permutation matrix based on the first calculated value x and the second calculated value y as the first feedback value. After extraction, the first feedback value may be transmitted to the electronic contract management system device 110 .
예컨대, 전술한 예에 따르면, 상기 제1 노드 장치는 상기 제1 노드 장치의 메모리 상에 상기 제1 OTP 생성 함수, 상기 제2 OTP 생성 함수, 상기 제1 인증용 숫자 '4' 및 상기 제2 인증용 숫자 '3'을 사전 저장하고 있을 수 있고, 전자 계약 관리 시스템 장치(110)로부터 상기 치환 행렬인 '
Figure 112020131023411-pat00003
'이 수신되는 경우, 상기 제1 노드 장치의 메모리 상에 저장되어 있는 상기 제1 OTP 생성 함수를 기초로 상기 제1 일회용 인증 번호인 '12341234'를 생성한 후, 상기 제1 일회용 인증 번호인 '12341234'를 피제수로, 상기 제1 인증용 숫자 '4'를 제수로 하는 모듈로 연산을 수행함으로써, 상기 제1 연산 값 '2'를 산출할 수 있다.
For example, according to the above-described example, the first node device has the first OTP generating function, the second OTP generating function, the first authentication digit '4' and the second in the memory of the first node device. The number '3' for authentication may be pre-stored, and from the electronic contract management system device 110, the substitution matrix '
Figure 112020131023411-pat00003
When ' is received, after generating '12341234', which is the first one-time authentication number, based on the first OTP generation function stored in the memory of the first node device, ' The first operation value '2' may be calculated by performing a modulo operation in which 12341234' is a dividend and the first authentication number '4' is a divisor.
그리고, 상기 제1 노드 장치는 상기 제1 노드 장치의 메모리 상에 저장되어 있는 상기 제2 OTP 생성 함수를 기초로 상기 제2 일회용 인증 번호인 '56785678'을 생성한 후 상기 제2 일회용 인증 번호인 '56785678'을 피제수로, 상기 제2 인증용 숫자 '3'을 제수로 하는 모듈로 연산을 수행함으로써, 상기 제2 연산 값 '1'을 산출할 수 있다.And, the first node device generates the second one-time authentication number '56785678' based on the second OTP generation function stored in the memory of the first node device, and then the second one-time authentication number By performing a modulo operation in which '56785678' is a dividend and the second authentication number '3' is a divisor, the second operation value '1' may be calculated.
그 이후, 상기 제1 노드 장치는 상기 제1 연산 값 '2'와 상기 제2 연산 값 '1'을 기초로 상기 치환 행렬에서 (2+1)행(1+1)열인 '3행2열'에 위치하는 성분 값인 'R'을 상기 제1 피드백 값으로 추출한 후, 상기 제1 피드백 값인 'R'을 전자 계약 관리 시스템 장치(110)로 전송할 수 있다.Thereafter, the first node device '3 rows, 2 columns, (2+1) rows (1+1) columns in the substitution matrix based on the first operation value '2' and the second operation value '1' After extracting 'R', which is a component value located in ', as the first feedback value, 'R', which is the first feedback value, may be transmitted to the electronic contract management system device 110 .
확인부(127)는 상기 제1 노드 장치로부터 상기 치환 행렬에 대응되는 피드백 값으로 상기 제1 피드백 값이 수신되면, 상기 제1 피드백 값이 상기 제1 랜덤 값과 동일한지 확인한다.When the first feedback value is received as a feedback value corresponding to the permutation matrix from the first node device, the check unit 127 checks whether the first feedback value is the same as the first random value.
인증 완료부(128)는 상기 제1 피드백 값이 상기 제1 랜덤 값과 동일한 것으로 확인되면, 상기 제1 노드 장치에 대한 인증을 완료한다.When it is confirmed that the first feedback value is the same as the first random value, the authentication completion unit 128 completes the authentication of the first node device.
예컨대, 전술한 예에 따르면, 확인부(127)는 상기 제1 노드 장치로부터 상기 치환 행렬인 '
Figure 112020131023411-pat00004
'에 대응되는 상기 제1 피드백 값으로 'R'이 수신되는 경우, 상기 제1 피드백 값인 'R'이 상기 제1 랜덤 값인 'R'과 동일한지 확인할 수 있다. 이때, 확인부(127)에 의해 상기 제1 피드백 값인 'R'이 상기 제1 랜덤 값인 'R'과 동일한 것으로 확인되면, 인증 완료부(128)는 상기 제1 노드 장치에 대한 인증을 완료할 수 있다.
For example, according to the above-described example, the confirmation unit 127 is the permutation matrix ' from the first node device.
Figure 112020131023411-pat00004
When 'R' is received as the first feedback value corresponding to ', it may be checked whether 'R', which is the first feedback value, is the same as 'R', which is the first random value. At this time, if it is confirmed by the verification unit 127 that the first feedback value 'R' is the same as the first random value 'R', the authentication completion unit 128 completes the authentication for the first node device. can
이렇게, 등록 요청부(120)는 OTP 저장부(121), 인증용 숫자 저장부(122), 인증 이벤트 발생부(123), 연산 값 산출부(124), 랜덤 값 생성부(125), 피드백 값 요청부(126), 확인부(127) 및 인증 완료부(128)를 통해서 상기 제1 노드 장치에 대한 인증을 진행한 후, 상기 제1 노드 장치에 대한 인증이 완료되면, 상기 제1 노드 장치로 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송할 수 있다.In this way, the registration request unit 120 includes the OTP storage unit 121 , the authentication number storage unit 122 , the authentication event generation unit 123 , the calculation value calculation unit 124 , the random value generation unit 125 , and the feedback. After authentication for the first node device is performed through the value requesting unit 126 , the verification unit 127 , and the authentication completion unit 128 , when the authentication for the first node device is completed, the first node While sending the transaction to the device, it is possible to send a registration request of the transaction to the blockchain network.
본 발명의 일실시예에 따르면, 전자 계약 관리 시스템 장치(110)는 데이터 요청부(129) 및 서명 전송부(130)를 더 포함할 수 있다.According to an embodiment of the present invention, the electronic contract management system device 110 may further include a data request unit 129 and a signature transmission unit 130 .
데이터 요청부(129)는 상기 트랜잭션이 상기 블록체인 네트워크에 등록이 완료된 이후, 제1 사용자의 단말(101)과 제2 사용자의 단말(102) 중 어느 하나의 단말로부터 상기 전자 계약서에 대한 검증 처리 요청이 수신되면, 복수의 노드 장치들(11, 12, 13, 14) 중 사전 설정된 기준 개수의 제2 노드 장치들을 랜덤하게 선택한 후 상기 제2 노드 장치들로 상기 제2 노드 장치들 각각의 메모리 상에 저장되어 있는 상기 블록체인 데이터로부터 상기 제2 해시 값과 상기 검증용 전자 서명 값을 추출하여 전송할 것을 요청한다.After the transaction is registered in the block chain network, the data request unit 129 performs verification processing for the electronic contract from any one of the terminal 101 of the first user and the terminal 102 of the second user. When a request is received, after randomly selecting a preset reference number of second node devices from among the plurality of node devices 11, 12, 13, and 14, the memory of each of the second node devices as the second node devices Requests to extract and transmit the second hash value and the digital signature value for verification from the block chain data stored on the
예컨대, 상기 제1 사용자와 상기 제2 사용자 간의 전자 계약이 완료되어, 상기 트랜잭션이 상기 블록체인 네트워크에 등록이 완료된 이후, 상기 제1 사용자가 전자 계약 관리 시스템 장치(110)를 통해서 상기 제2 사용자와 체결한 상기 전자 계약에 대한 검증이 필요한 상황이 발생함에 따라, 제1 사용자의 단말(101)에 전자 계약서를 검증하기 위한 검증 명령을 인가하였다고 하는 경우, 제1 사용자의 단말(101)은 전자 계약 관리 시스템 장치(110)로 상기 전자 계약서에 대한 검증 처리 요청을 전송할 수 있다.For example, after the electronic contract between the first user and the second user is completed and the transaction is registered in the blockchain network, the first user is the second user through the electronic contract management system device 110 . When a verification command for verifying the electronic contract is applied to the first user's terminal 101 as a situation arises requiring verification of the electronic contract concluded with A verification processing request for the electronic contract may be transmitted to the contract management system device 110 .
이때, 데이터 요청부(129)는 제1 사용자의 단말(101)로부터 상기 전자 계약서에 대한 검증 처리 요청이 수신되면, 복수의 노드 장치들(11, 12, 13, 14) 중 사전 설정된 기준 개수의 제2 노드 장치들을 랜덤하게 선택한 후 상기 제2 노드 장치들로 상기 제2 노드 장치들 각각의 메모리 상에 저장되어 있는 상기 블록체인 데이터로부터 상기 제2 해시 값과 상기 검증용 전자 서명 값을 추출하여 전송할 것을 요청할 수 있다.At this time, when the data request unit 129 receives a verification processing request for the electronic contract from the terminal 101 of the first user, a preset reference number of the plurality of node devices 11, 12, 13, 14 is After randomly selecting second node devices, the second node devices extract the second hash value and the digital signature value for verification from the block chain data stored in the memory of each of the second node devices. You can request it to be sent.
관련해서, 상기 기준 개수를 '30개'라고 하는 경우, 데이터 요청부(129)는 복수의 노드 장치들(11, 12, 13, 14) 중 30개의 제2 노드 장치들을 랜덤하게 선택한 후 상기 제2 노드 장치들로 상기 제2 노드 장치들 각각의 메모리 상에 저장되어 있는 상기 블록체인 데이터로부터 상기 제2 해시 값과 상기 검증용 전자 서명 값을 추출하여 전송할 것을 요청할 수 있다.In relation to this, if the reference number is '30', the data request unit 129 randomly selects 30 second node devices from among the plurality of node devices 11, 12, 13, and 14, and then The second node devices may request to extract and transmit the second hash value and the digital signature value for verification from the block chain data stored in the memory of each of the second node devices.
이렇게, 데이터 요청부(129)에 의해 상기 제2 노드 장치들에 상기 제2 해시 값과 상기 검증용 전자 서명 값의 전송 요청이 수신되면, 상기 제2 노드 장치들은 상기 제2 노드 장치들 각각의 메모리 상에 저장되어 있는 상기 블록체인 데이터로부터 상기 제2 해시 값과 상기 검증용 전자 서명 값을 추출하여 전자 계약 관리 시스템 장치(110)로 전송할 수 있다.In this way, when a request for transmission of the second hash value and the digital signature value for verification is received by the data requesting unit 129 to the second node devices, the second node devices perform each of the second node devices. The second hash value and the electronic signature value for verification may be extracted from the block chain data stored in the memory and transmitted to the electronic contract management system device 110 .
이때, 서명 전송부(130)는 상기 제2 노드 장치들로부터, 상기 제2 노드 장치들 각각이 상기 블록체인 데이터로부터 추출한 상기 제2 해시 값과 상기 검증용 전자 서명 값이 수신되면, 상기 제2 노드 장치들 각각으로부터 수신된 상기 제2 해시 값과 상기 검증용 전자 서명 값이 모두 일치하는지 확인할 수 있다.At this time, when the signature transmission unit 130 receives the second hash value extracted from the block chain data by each of the second node devices and the digital signature value for verification from the second node devices, the second It may be checked whether the second hash value received from each of the node devices matches the digital signature value for verification.
관련해서, 전술한 예와 같이, 상기 제2 노드 장치들이 30개의 노드 장치들이라고 하는 경우, 서명 전송부(130)는 30개의 제2 노드 장치들로부터 각각 상기 제2 해시 값과 상기 검증용 전자 서명 값이 수신되면, 각 노드 장치로부터 수신된 제2 해시 값이 서로 모두 일치하는지 확인하고, 각 노드 장치로부터 수신된 검증용 전자 서명 값이 서로 모두 일치하는지 확인할 수 있다.In this regard, as in the above example, when the second node devices are 30 node devices, the signature transmitter 130 receives the second hash value and the verification electrons from the 30 second node devices, respectively. When the signature value is received, it may be checked whether the second hash values received from each node device all match each other, and it may be checked whether the verification digital signature values received from each node device all match each other.
그 이후, 서명 전송부(130)는 상기 제2 노드 장치들 각각으로부터 수신된 상기 제2 해시 값과 상기 검증용 전자 서명 값이 모두 일치하는 것으로 확인되면, 제1 사용자의 단말(101)과 제2 사용자의 단말(102) 중 상기 전자 계약서에 대한 검증 처리 요청을 전송한 단말로 상기 제2 해시 값과 상기 검증용 전자 서명 값을 전송할 수 있다.After that, when it is confirmed that the second hash value received from each of the second node devices and the electronic signature value for verification are all identical, the signature transmitter 130 performs the first user's terminal 101 and the second The second hash value and the electronic signature value for verification may be transmitted to the terminal that has transmitted the verification processing request for the electronic contract among the terminals 102 of the two users.
이때, 제1 사용자의 단말(101)과 제2 사용자의 단말(102) 중 상기 전자 계약서에 대한 검증 처리 요청을 전송한 단말은 전자 계약 관리 시스템 장치(110)로부터 상기 제2 해시 값과 상기 검증용 전자 서명 값이 수신되면, 상기 검증용 전자 서명 값을, 단말 내에 사전 발급되어 저장되어 있는 상기 검증용 공개키로 복호화하여 검증용 복호화 값을 생성한 후 상기 검증용 복호화 값이 상기 제2 해시 값과 서로 일치하는 것으로 확인되면, 상기 전자 계약서에 대한 검증이 완료되었음을 지시하는 검증 완료 메시지를 생성하여 화면 상에 표시할 수 있다.At this time, the terminal that has transmitted the verification processing request for the electronic contract among the terminal 101 of the first user and the terminal 102 of the second user receives the second hash value and the verification from the electronic contract management system device 110 . When the digital signature value for verification is received, the verification digital signature value is decrypted with the verification public key previously issued and stored in the terminal to generate a verification decrypted value, and then the verification decrypted value is the second hash value and, when it is confirmed that the electronic contract has been verified, a verification completion message indicating that verification of the electronic contract has been completed may be generated and displayed on the screen.
관련해서, 전술한 예와 같이, 상기 전자 계약서에 대한 검증 처리 요청을 전송한 단말이 제1 사용자의 단말(101)이라고 하는 경우, 서명 전송부(130)는 제1 사용자의 단말(101)로 상기 제2 해시 값과 상기 검증용 전자 서명 값을 전송할 수 있고, 이때, 제1 사용자의 단말(101)은 전자 계약 관리 시스템 장치(110)로부터 상기 제2 해시 값과 상기 검증용 전자 서명 값이 수신되면, 상기 검증용 전자 서명 값을, 제1 사용자의 단말(101) 내에 사전 발급되어 저장되어 있는 상기 검증용 공개키로 복호화하여 검증용 복호화 값을 생성한 후 상기 검증용 복호화 값이 상기 제2 해시 값과 서로 일치하는 것으로 확인되면, 상기 전자 계약서에 대한 검증이 완료되었음을 지시하는 검증 완료 메시지를 생성하여 화면 상에 표시할 수 있다.In relation to, as in the above-described example, when the terminal that transmitted the verification processing request for the electronic contract is the first user's terminal 101 , the signature transmitting unit 130 sends the first user's terminal 101 to the first user's terminal 101 . The second hash value and the electronic signature value for verification may be transmitted, and in this case, the terminal 101 of the first user receives the second hash value and the electronic signature value for verification from the electronic contract management system device 110 . When received, the verification digital signature value is decrypted with the verification public key previously issued and stored in the terminal 101 of the first user to generate a verification decrypted value, and then the verification decrypted value is the second When it is confirmed that the hash value matches each other, a verification completion message indicating that verification of the electronic contract is completed may be generated and displayed on the screen.
이를 통해, 상기 제1 사용자는 전자 계약 관리 시스템 장치(110)를 통해서 상기 제2 사용자와 체결한 전자 계약이 진정한 전자 계약이 맞음을 검증받을 수 있다.Through this, the first user can be verified that the electronic contract concluded with the second user through the electronic contract management system device 110 is a true electronic contract.
도 2는 본 발명의 일실시예에 따른 제1 사용자와 제2 사용자 간의 전자 계약을 가능하게 하는 전자 계약 관리 시스템 장치의 동작 방법을 도시한 순서도이다.2 is a flowchart illustrating an operation method of an electronic contract management system device that enables an electronic contract between a first user and a second user according to an embodiment of the present invention.
단계(S210)에서는 사전 설정된 검증용 개인키(상기 제1 사용자의 단말과 상기 제2 사용자의 단말에는 상기 검증용 개인키에 대응되는 검증용 공개키가 사전 발급되어 저장되어 있음)와 사전 설정된 해시 함수(상기 해시 함수는 상기 제1 사용자의 단말과 상기 제2 사용자의 단말에도 사전 저장되어 있음)가 저장되어 있는 정보 저장부를 유지한다.In step S210, a preset private key for verification (a public key for verification corresponding to the private key for verification is previously issued and stored in the terminal of the first user and the terminal of the second user) and a preset hash An information storage unit in which a function (the hash function is pre-stored also in the terminal of the first user and the terminal of the second user) is stored is maintained.
단계(S220)에서는 상기 제1 사용자의 단말에 사전 저장되어 있는 제1 개인키에 대응되는 제1 공개키와 상기 제2 사용자의 단말에 사전 저장되어 있는 제2 개인키에 대응되는 제2 공개키가 저장되어 있는 공개키 저장부를 유지한다.In step S220, the first public key corresponding to the first private key pre-stored in the terminal of the first user and the second public key corresponding to the second private key pre-stored in the terminal of the second user Maintains a public key storage in which is stored.
단계(S230)에서는 상기 전자 계약에 대한 계약 정보가 포함된 전자 계약서에 대한 데이터를 상기 제1 사용자의 단말로 전송하면서, 상기 제1 사용자의 단말로 상기 전자 계약서에 대한 데이터를 기초로 한 전자 서명을 요청한다.In step S230, while transmitting the data on the electronic contract including the contract information for the electronic contract to the terminal of the first user, the electronic signature based on the data on the electronic contract to the terminal of the first user to request
단계(S240)에서는 상기 제1 사용자의 단말에서 상기 전자 계약서에 대한 데이터가 상기 제1 사용자의 단말에 저장되어 있는 상기 해시 함수에 입력으로 인가되어 제1 해시 값이 생성된 후 상기 제1 해시 값이 상기 제1 사용자의 단말에 저장되어 있는 상기 제1 개인키로 암호화되어 제1 전자 서명 값이 생성됨에 따라, 상기 제1 사용자의 단말로부터 상기 제1 전자 서명 값이 수신되면, 상기 공개키 저장부로부터 상기 제1 공개키를 추출한 후 상기 제1 공개키로 상기 제1 전자 서명 값을 복호화하여 제1 복호화 값을 생성한다.In step S240, the first hash value is generated by applying the data for the electronic contract in the terminal of the first user as an input to the hash function stored in the terminal of the first user, and then the first hash value When the first electronic signature value is received from the terminal of the first user as the first electronic signature value is generated by being encrypted with the first private key stored in the terminal of the first user, the public key storage unit After extracting the first public key from , the first digital signature value is decrypted with the first public key to generate a first decrypted value.
단계(S250)에서는 상기 전자 계약서에 대한 데이터를 상기 정보 저장부에 저장되어 있는 상기 해시 함수에 입력으로 인가하여 제2 해시 값을 생성한 후 상기 제2 해시 값이 상기 제1 복호화 값과 서로 일치하는지 확인하여, 상기 제2 해시 값이 상기 제1 복호화 값과 서로 일치하는 것으로 확인되면, 상기 제1 전자 서명 값에 대한 검증을 완료하고, 상기 제2 사용자의 단말로 상기 전자 계약서에 대한 데이터를 전송하면서, 상기 제2 사용자의 단말로 상기 전자 계약서에 대한 데이터를 기초로 한 전자 서명을 요청한다.In step S250, a second hash value is generated by applying the data on the electronic contract as an input to the hash function stored in the information storage unit, and then the second hash value matches the first decryption value If it is confirmed that the second hash value matches the first decryption value, verification of the first electronic signature value is completed, and the data on the electronic contract is transmitted to the second user's terminal. While transmitting, an electronic signature based on data on the electronic contract is requested from the terminal of the second user.
단계(S260)에서는 상기 제2 사용자의 단말에서 상기 전자 계약서에 대한 데이터가 상기 제2 사용자의 단말에 저장되어 있는 상기 해시 함수에 입력으로 인가되어 제3 해시 값이 생성된 후 상기 제3 해시 값이 상기 제2 사용자의 단말에 저장되어 있는 상기 제2 개인키로 암호화되어 제2 전자 서명 값이 생성됨에 따라, 상기 제2 사용자의 단말로부터 상기 제2 전자 서명 값이 수신되면, 상기 공개키 저장부로부터 상기 제2 공개키를 추출한 후 상기 제2 공개키로 상기 제2 전자 서명 값을 복호화하여 제2 복호화 값을 생성한다.In step S260, the data for the electronic contract is applied as an input to the hash function stored in the terminal of the second user in the terminal of the second user to generate a third hash value, and then the third hash value As the second digital signature value is generated by being encrypted with the second private key stored in the second user's terminal, when the second electronic signature value is received from the second user's terminal, the public key storage unit After extracting the second public key from , the second digital signature value is decrypted with the second public key to generate a second decrypted value.
단계(S270)에서는 상기 제2 해시 값이 상기 제2 복호화 값과 서로 일치하는지 확인하여, 상기 제2 해시 값이 상기 제2 복호화 값과 서로 일치하는 것으로 확인되면, 상기 제2 전자 서명 값에 대한 검증을 완료하고, 상기 제1 사용자와 상기 제2 사용자 간의 계약이 완료되었음을 지시하는 계약 완료 메시지를 생성한다.In step S270, it is checked whether the second hash value matches the second decryption value, and when it is confirmed that the second hash value matches the second decryption value, the second digital signature value is The verification is completed, and a contract completion message indicating that the contract between the first user and the second user has been completed is generated.
단계(S280)에서는 상기 제1 사용자의 단말과 상기 제2 사용자의 단말로 상기 계약 완료 메시지를 전송한다.In step S280, the contract completion message is transmitted to the terminal of the first user and the terminal of the second user.
이때, 본 발명의 일실시예에 따르면, 상기 전자 계약 관리 시스템 장치의 동작 방법은 상기 제1 사용자의 단말과 상기 제2 사용자의 단말로 상기 계약 완료 메시지가 전송되면, 상기 제2 해시 값에 대해 상기 정보 저장부에 저장되어 있는 상기 검증용 개인키로 암호화하여 검증용 전자 서명 값을 생성한 후 상기 제2 해시 값과 상기 검증용 전자 서명 값이 포함된 트랜잭션을 생성하는 단계 및 상기 트랜잭션이 생성되면, 블록체인 네트워크를 구성하고 있는 복수의 노드 장치들 중 어느 하나인 제1 노드 장치를 랜덤하게 선택하고, 상기 제1 노드 장치에 대한 인증을 진행한 후 상기 제1 노드 장치로 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송하는 단계를 더 포함할 수 있다.At this time, according to an embodiment of the present invention, in the method of operating the electronic contract management system device, when the contract completion message is transmitted to the terminal of the first user and the terminal of the second user, the second hash value is generating a transaction including the second hash value and the electronic signature value for verification after generating an electronic signature value for verification by encrypting it with the private key for verification stored in the information storage unit; and when the transaction is generated , while randomly selecting a first node device that is any one of a plurality of node devices constituting a block chain network, performing authentication on the first node device, and transmitting the transaction to the first node device. , sending a registration request of the transaction to the blockchain network.
이때, 상기 제1 노드 장치는 상기 전자 계약 관리 시스템 장치로부터 상기 트랜잭션과 함께 상기 등록 요청이 수신되면, 메모리 상에 저장되어 있는 블록체인 데이터에 체인으로 연결된 이전 블록을 기초로 상기 트랜잭션이 포함된 제1 블록을 생성하고, 상기 제1 블록을 상기 블록체인 데이터에 체인으로 연결함으로써, 상기 제1 블록에 대한 저장을 완료한 후 상기 블록체인 네트워크를 통해 상기 제1 블록을 상기 복수의 노드 장치들 중 상기 제1 노드 장치를 제외한 나머지 노드 장치들로 전파할 수 있다.At this time, when the registration request is received together with the transaction from the electronic contract management system device, the first node device includes a first block including the transaction based on the previous block chained to the block chain data stored in the memory. By generating one block and linking the first block to the block chain data in a chain, the first block is stored among the plurality of node devices through the block chain network after the storage of the first block is completed. It can propagate to other node devices except for the first node device.
또한, 본 발명의 일실시예에 따르면, 상기 등록 요청을 전송하는 단계는 상기 복수의 노드 장치들과 사전 공유하고 있는 사전 설정된 제1 OTP 생성 함수와 사전 설정된 제2 OTP 생성 함수가 저장되어 있는 OTP 저장부를 유지하는 단계, 상기 복수의 노드 장치들과 사전 공유하고 있는 사전 설정된 제1 인증용 숫자 m(m은 2 이상의 자연수임)과 사전 설정된 제2 인증용 숫자 k(k는 m과 다른 2 이상의 자연수임)가 저장되어 있는 인증용 숫자 저장부를 유지하는 단계, 상기 복수의 노드 장치들 중 어느 하나인 상기 제1 노드 장치가 랜덤하게 선택되면, 상기 제1 노드 장치의 인증을 수행하기 위한 인증 이벤트를 발생시키는 단계, 상기 인증 이벤트가 발생되면, 상기 제1 OTP 생성 함수를 기초로 제1 일회용 인증 번호를 생성한 후 상기 제1 일회용 인증 번호를 피제수로, 상기 제1 인증용 숫자 m을 제수로 하는 모듈로 연산을 수행함으로써, 제1 연산 값 x를 산출하고, 상기 제2 OTP 생성 함수를 기초로 제2 일회용 인증 번호를 생성한 후 상기 제2 일회용 인증 번호를 피제수로, 상기 제2 인증용 숫자 k를 제수로 하는 모듈로 연산을 수행함으로써, 제2 연산 값 y를 산출하는 단계, 랜덤한 성분 값들로 구성된 m x k의 크기를 갖는 랜덤 행렬을 생성하고, 제1 랜덤 값을 랜덤하게 생성하는 단계, 상기 랜덤 행렬에서 (x+1)행(y+1)열에 위치하는 성분을 상기 제1 랜덤 값으로 치환함으로써, m x k의 크기를 갖는 치환 행렬을 생성하고, 상기 치환 행렬을 상기 제1 노드 장치로 전송하면서, 상기 제1 노드 장치로 상기 치환 행렬에 대응되는 피드백 값의 전송을 요청하는 단계, 상기 제1 노드 장치로부터 상기 치환 행렬에 대응되는 피드백 값으로 제1 피드백 값(상기 제1 피드백 값은 상기 제1 노드 장치에서 상기 제1 노드 장치의 메모리 상에 사전 저장되어 있는 상기 제1 OTP 생성 함수, 상기 제2 OTP 생성 함수, 상기 제1 인증용 숫자 m 및 상기 제2 인증용 숫자 k를 기초로 상기 제1 연산 값 x와 상기 제2 연산 값 y가 산출된 후 상기 치환 행렬에서 (x+1)행(y+1)열에 위치하는 성분 값이 추출되어 생성된 피드백 값임)이 수신되면, 상기 제1 피드백 값이 상기 제1 랜덤 값과 동일한지 확인하는 단계 및 상기 제1 피드백 값이 상기 제1 랜덤 값과 동일한 것으로 확인되면, 상기 제1 노드 장치에 대한 인증을 완료하는 단계를 포함할 수 있다.In addition, according to an embodiment of the present invention, the step of transmitting the registration request includes an OTP in which a preset first OTP generating function and a preset second OTP generating function shared in advance with the plurality of node devices are stored. maintaining a storage unit, a preset first authentication number m (m is a natural number greater than or equal to 2) and a preset second authentication number k (k is 2 or more different from m) shared with the plurality of node devices in advance maintaining a number storage unit for authentication in which a natural number) is stored, and when the first node device, which is any one of the plurality of node devices, is randomly selected, an authentication event for performing authentication of the first node device generating, when the authentication event occurs, a first one-time authentication number is generated based on the first OTP generation function, and then the first one-time authentication number is a dividend number, and the first authentication number m is a divisor by performing a modulo operation to calculate a first calculated value x, generate a second one-time authentication number based on the second OTP generation function, and then use the second one-time authentication number as a dividend, for the second authentication Calculating a second operation value y by performing a modulo operation with the number k as a divisor, generating a random matrix having a size of mxk composed of random component values, and randomly generating a first random value , a permutation matrix having a size of mxk is generated by substituting a component located in a (x+1) row (y+1) column in the random matrix with the first random value, and the permutation matrix is converted into the first node device requesting transmission of a feedback value corresponding to the permutation matrix to the first node device while transmitting to, a first feedback value (the first feedback value) as a feedback value corresponding to the permutation matrix from the first node device is the first OTP generating function, the second OTP generating function, the first authentication number m, and the first stored in the memory of the first node device in the first node device. 2 After the first operation value x and the second operation value y are calculated based on the number k for authentication, the component values located in the (x+1) row (y+1) column are extracted and generated in the substitution matrix. feedback value) is received, checking whether the first feedback value is equal to the first random value, and when it is confirmed that the first feedback value is equal to the first random value, authentication for the first node device may include the step of completing
이때, 본 발명의 일실시예에 따르면, 상기 제1 노드 장치는 상기 제1 노드 장치의 메모리 상에 상기 제1 OTP 생성 함수, 상기 제2 OTP 생성 함수, 상기 제1 인증용 숫자 m 및 상기 제2 인증용 숫자 k를 사전 저장하고 있고, 상기 전자 계약 관리 시스템 장치로부터 상기 치환 행렬이 수신되면, 상기 제1 노드 장치의 메모리 상에 저장되어 있는 상기 제1 OTP 생성 함수를 기초로 상기 제1 일회용 인증 번호를 생성한 후 상기 제1 일회용 인증 번호를 피제수로, 상기 제1 인증용 숫자 m을 제수로 하는 모듈로 연산을 수행함으로써, 상기 제1 연산 값 x를 산출하고, 상기 제1 노드 장치의 메모리 상에 저장되어 있는 상기 제2 OTP 생성 함수를 기초로 상기 제2 일회용 인증 번호를 생성한 후 상기 제2 일회용 인증 번호를 피제수로, 상기 제2 인증용 숫자 k를 제수로 하는 모듈로 연산을 수행함으로써, 상기 제2 연산 값 y를 산출하며, 상기 제1 연산 값 x와 상기 제2 연산 값 y를 기초로 상기 치환 행렬에서 (x+1)행(y+1)열에 위치하는 성분 값을 상기 제1 피드백 값으로 추출한 후 상기 제1 피드백 값을 상기 전자 계약 관리 시스템 장치로 전송할 수 있다.At this time, according to an embodiment of the present invention, the first node device has the first OTP generating function, the second OTP generating function, the first authentication number m, and the second in the memory of the first node device. 2 The number k for authentication is pre-stored, and when the substitution matrix is received from the electronic contract management system device, the first one-time use function is based on the first OTP generation function stored in the memory of the first node device. After generating an authentication number, by performing a modulo operation in which the first one-time authentication number is a dividend and the first authentication number m is a divisor, the first operation value x is calculated, and the After generating the second one-time authentication number based on the second OTP generation function stored in the memory, a modulo operation is performed in which the second one-time authentication number is a dividend and the second authentication number k is a divisor. By performing the calculation, the second calculated value y is calculated, and the component value located in the (x+1) row (y+1) column in the substitution matrix based on the first calculated value x and the second calculated value y is calculated After extracting the first feedback value, the first feedback value may be transmitted to the electronic contract management system device.
또한, 본 발명의 일실시예에 따르면, 상기 전자 계약 관리 시스템 장치의 동작 방법은 상기 트랜잭션이 상기 블록체인 네트워크에 등록이 완료된 이후, 상기 제1 사용자의 단말과 상기 제2 사용자의 단말 중 어느 하나의 단말로부터 상기 전자 계약서에 대한 검증 처리 요청이 수신되면, 상기 복수의 노드 장치들 중 사전 설정된 기준 개수의 제2 노드 장치들을 랜덤하게 선택한 후 상기 제2 노드 장치들로 상기 제2 노드 장치들 각각의 메모리 상에 저장되어 있는 상기 블록체인 데이터로부터 상기 제2 해시 값과 상기 검증용 전자 서명 값을 추출하여 전송할 것을 요청하는 단계 및 상기 제2 노드 장치들로부터, 상기 제2 노드 장치들 각각이 상기 블록체인 데이터로부터 추출한 상기 제2 해시 값과 상기 검증용 전자 서명 값이 수신되면, 상기 제2 노드 장치들 각각으로부터 수신된 상기 제2 해시 값과 상기 검증용 전자 서명 값이 모두 일치하는지 확인하여, 모두 일치하는 것으로 확인되면, 상기 제1 사용자의 단말과 상기 제2 사용자의 단말 중 상기 전자 계약서에 대한 검증 처리 요청을 전송한 단말로 상기 제2 해시 값과 상기 검증용 전자 서명 값을 전송하는 단계를 더 포함할 수 있다.In addition, according to an embodiment of the present invention, in the method of operating the electronic contract management system device, after the transaction is registered in the block chain network, any one of the first user's terminal and the second user's terminal When a verification processing request for the electronic contract is received from a terminal of requesting to extract and transmit the second hash value and the digital signature value for verification from the block chain data stored in the memory of When the second hash value extracted from the block chain data and the verification electronic signature value are received, it is checked whether the second hash value received from each of the second node devices and the verification electronic signature value match, When it is confirmed that they all match, transmitting the second hash value and the electronic signature value for verification to a terminal that has transmitted a verification processing request for the electronic contract among the terminals of the first user and the second user may further include.
이때, 상기 제1 사용자의 단말과 상기 제2 사용자의 단말 중 상기 전자 계약서에 대한 검증 처리 요청을 전송한 단말은 상기 전자 계약 관리 시스템 장치로부터 상기 제2 해시 값과 상기 검증용 전자 서명 값이 수신되면, 상기 검증용 전자 서명 값을, 단말 내에 사전 발급되어 저장되어 있는 상기 검증용 공개키로 복호화하여 검증용 복호화 값을 생성한 후 상기 검증용 복호화 값이 상기 제2 해시 값과 서로 일치하는 것으로 확인되면, 상기 전자 계약서에 대한 검증이 완료되었음을 지시하는 검증 완료 메시지를 생성하여 화면 상에 표시할 수 있다.At this time, the terminal transmitting the verification processing request for the electronic contract among the terminals of the first user and the second user receives the second hash value and the electronic signature value for verification from the electronic contract management system device. , the verification digital signature value is decrypted with the verification public key previously issued and stored in the terminal to generate a verification decrypted value, and the verification decrypted value matches the second hash value. When done, a verification completion message indicating that verification of the electronic contract has been completed may be generated and displayed on the screen.
이상, 도 2를 참조하여 본 발명의 일실시예에 따른 전자 계약 관리 시스템 장치의 동작 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 전자 계약 관리 시스템 장치의 동작 방법은 도 1을 이용하여 설명한 전자 계약 관리 시스템 장치(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.Above, an operation method of the electronic contract management system device according to an embodiment of the present invention has been described with reference to FIG. 2 . Here, the operating method of the electronic contract management system device according to an embodiment of the present invention may correspond to the configuration of the operation of the electronic contract management system device 110 described with reference to FIG. to be omitted.
본 발명의 일실시예에 따른 전자 계약 관리 시스템 장치의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.The operating method of the electronic contract management system device according to an embodiment of the present invention may be implemented as a computer program stored in a storage medium for execution through combination with a computer.
또한, 본 발명의 일실시예에 따른 전자 계약 관리 시스템 장치의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. In addition, the operating method of the electronic contract management system device according to an embodiment of the present invention may be implemented in the form of a program command 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 present invention, 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 media 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.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, the present invention has been described with specific matters such as specific components and limited embodiments and drawings, but these are provided to help a more general understanding of the present invention, and the present invention is not limited to the above embodiments. , various modifications and variations are possible from these descriptions by those of ordinary skill in the art to which the present invention pertains.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention should not be limited to the described embodiments, and not only the claims to be described later, but also all those with equivalent or equivalent modifications to the claims will be said to belong to the scope of the spirit of the present invention. .
110: 전자 계약 관리 시스템 장치
111: 정보 저장부 112: 공개키 저장부
113: 제1 서명 요청부 114: 제1 복호화부
115: 제2 서명 요청부 116: 제2 복호화부
117: 메시지 생성부 118: 메시지 전송부
119: 트랜잭션 생성부 120: 등록 요청부
121: OTP 저장부 122: 인증용 숫자 저장부
123: 인증 이벤트 발생부 124: 연산 값 산출부
125: 랜덤 값 생성부 126: 피드백 값 요청부
127: 확인부 128: 인증 완료부
129: 데이터 요청부 130: 서명 전송부
101: 제1 사용자의 단말
102: 제2 사용자의 단말
11, 12, 13, 14: 복수의 노드 장치들
110: electronic contract management system device
111: information storage unit 112: public key storage unit
113: first signature request unit 114: first decryption unit
115: second signature request unit 116: second decryption unit
117: message generating unit 118: message transmitting unit
119: transaction generation unit 120: registration request unit
121: OTP storage unit 122: number storage unit for authentication
123: authentication event generation unit 124: calculation value calculation unit
125: random value generating unit 126: feedback value requesting unit
127: confirmation unit 128: authentication completion unit
129: data request unit 130: signature transmission unit
101: terminal of the first user
102: second user's terminal
11, 12, 13, 14: multiple node devices

Claims (12)

  1. 제1 사용자와 제2 사용자 간의 전자 계약을 가능하게 하는 전자 계약 관리 시스템 장치에 있어서,
    사전 설정된 검증용 개인키 - 상기 제1 사용자의 단말과 상기 제2 사용자의 단말에는 상기 검증용 개인키에 대응되는 검증용 공개키가 사전 발급되어 저장되어 있음 - 와 사전 설정된 해시 함수 - 상기 해시 함수는 상기 제1 사용자의 단말과 상기 제2 사용자의 단말에도 사전 저장되어 있음 - 가 저장되어 있는 정보 저장부;
    상기 제1 사용자의 단말에 사전 저장되어 있는 제1 개인키에 대응되는 제1 공개키와 상기 제2 사용자의 단말에 사전 저장되어 있는 제2 개인키에 대응되는 제2 공개키가 저장되어 있는 공개키 저장부;
    상기 전자 계약에 대한 계약 정보가 포함된 전자 계약서에 대한 데이터를 상기 제1 사용자의 단말로 전송하면서, 상기 제1 사용자의 단말로 상기 전자 계약서에 대한 데이터를 기초로 한 전자 서명을 요청하는 제1 서명 요청부;
    상기 제1 사용자의 단말에서 상기 전자 계약서에 대한 데이터가 상기 제1 사용자의 단말에 저장되어 있는 상기 해시 함수에 입력으로 인가되어 제1 해시 값이 생성된 후 상기 제1 해시 값이 상기 제1 사용자의 단말에 저장되어 있는 상기 제1 개인키로 암호화되어 제1 전자 서명 값이 생성됨에 따라, 상기 제1 사용자의 단말로부터 상기 제1 전자 서명 값이 수신되면, 상기 공개키 저장부로부터 상기 제1 공개키를 추출한 후 상기 제1 공개키로 상기 제1 전자 서명 값을 복호화하여 제1 복호화 값을 생성하는 제1 복호화부;
    상기 전자 계약서에 대한 데이터를 상기 정보 저장부에 저장되어 있는 상기 해시 함수에 입력으로 인가하여 제2 해시 값을 생성한 후 상기 제2 해시 값이 상기 제1 복호화 값과 서로 일치하는지 확인하여, 상기 제2 해시 값이 상기 제1 복호화 값과 서로 일치하는 것으로 확인되면, 상기 제1 전자 서명 값에 대한 검증을 완료하고, 상기 제2 사용자의 단말로 상기 전자 계약서에 대한 데이터를 전송하면서, 상기 제2 사용자의 단말로 상기 전자 계약서에 대한 데이터를 기초로 한 전자 서명을 요청하는 제2 서명 요청부;
    상기 제2 사용자의 단말에서 상기 전자 계약서에 대한 데이터가 상기 제2 사용자의 단말에 저장되어 있는 상기 해시 함수에 입력으로 인가되어 제3 해시 값이 생성된 후 상기 제3 해시 값이 상기 제2 사용자의 단말에 저장되어 있는 상기 제2 개인키로 암호화되어 제2 전자 서명 값이 생성됨에 따라, 상기 제2 사용자의 단말로부터 상기 제2 전자 서명 값이 수신되면, 상기 공개키 저장부로부터 상기 제2 공개키를 추출한 후 상기 제2 공개키로 상기 제2 전자 서명 값을 복호화하여 제2 복호화 값을 생성하는 제2 복호화부;
    상기 제2 해시 값이 상기 제2 복호화 값과 서로 일치하는지 확인하여, 상기 제2 해시 값이 상기 제2 복호화 값과 서로 일치하는 것으로 확인되면, 상기 제2 전자 서명 값에 대한 검증을 완료하고, 상기 제1 사용자와 상기 제2 사용자 간의 계약이 완료되었음을 지시하는 계약 완료 메시지를 생성하는 메시지 생성부;
    상기 제1 사용자의 단말과 상기 제2 사용자의 단말로 상기 계약 완료 메시지를 전송하는 메시지 전송부;
    상기 제1 사용자의 단말과 상기 제2 사용자의 단말로 상기 계약 완료 메시지가 전송되면, 상기 제2 해시 값에 대해 상기 정보 저장부에 저장되어 있는 상기 검증용 개인키로 암호화하여 검증용 전자 서명 값을 생성한 후 상기 제2 해시 값과 상기 검증용 전자 서명 값이 포함된 트랜잭션을 생성하는 트랜잭션 생성부; 및
    상기 트랜잭션이 생성되면, 블록체인 네트워크를 구성하고 있는 복수의 노드 장치들 중 어느 하나인 제1 노드 장치를 랜덤하게 선택하고, 상기 제1 노드 장치에 대한 인증을 진행한 후 상기 제1 노드 장치로 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송하는 등록 요청부
    를 포함하고,
    상기 제1 노드 장치는
    상기 전자 계약 관리 시스템 장치로부터 상기 트랜잭션과 함께 상기 등록 요청이 수신되면, 메모리 상에 저장되어 있는 블록체인 데이터에 체인으로 연결된 이전 블록을 기초로 상기 트랜잭션이 포함된 제1 블록을 생성하고, 상기 제1 블록을 상기 블록체인 데이터에 체인으로 연결함으로써, 상기 제1 블록에 대한 저장을 완료한 후 상기 블록체인 네트워크를 통해 상기 제1 블록을 상기 복수의 노드 장치들 중 상기 제1 노드 장치를 제외한 나머지 노드 장치들로 전파하는 것을 특징으로 하는 전자 계약 관리 시스템 장치.
    An electronic contract management system device that enables an electronic contract between a first user and a second user, comprising:
    A preset private key for verification - A public key for verification corresponding to the private key for verification is issued and stored in the terminal of the first user and the terminal of the second user - and a preset hash function - The hash function is pre-stored in the terminal of the first user and the terminal of the second user - an information storage unit in which is stored;
    A public in which a first public key corresponding to the first private key pre-stored in the terminal of the first user and a second public key corresponding to the second private key pre-stored in the terminal of the second user are stored key storage;
    A first requesting electronic signature based on the data on the electronic contract to the terminal of the first user while transmitting data on the electronic contract including the contract information for the electronic contract to the terminal of the first user signature request department;
    In the terminal of the first user, the data for the electronic contract is applied as an input to the hash function stored in the terminal of the first user to generate a first hash value, and then the first hash value is determined by the first user. When the first electronic signature value is received from the terminal of the first user as the first electronic signature value is generated by being encrypted with the first private key stored in the terminal of a first decryption unit for generating a first decryption value by decrypting the first digital signature value with the first public key after extracting the key;
    After generating a second hash value by applying the data for the electronic contract as an input to the hash function stored in the information storage unit, confirming whether the second hash value matches the first decryption value, When it is confirmed that the second hash value matches the first decryption value, verification of the first electronic signature value is completed, and while transmitting the data on the electronic contract to the terminal of the second user, the second 2 A second signature request unit for requesting an electronic signature based on the data on the electronic contract to the user's terminal;
    In the terminal of the second user, the data for the electronic contract is applied as an input to the hash function stored in the terminal of the second user to generate a third hash value, and then the third hash value is determined by the second user. As the second digital signature value is generated by being encrypted with the second private key stored in the terminal of a second decryption unit for generating a second decryption value by decrypting the second digital signature value with the second public key after extracting the key;
    Check whether the second hash value matches the second decryption value, and when it is confirmed that the second hash value matches the second decryption value, verification of the second digital signature value is completed; a message generator for generating a contract completion message indicating that the contract between the first user and the second user has been completed;
    a message transmission unit for transmitting the contract completion message to the terminal of the first user and the terminal of the second user;
    When the contract completion message is transmitted to the terminal of the first user and the terminal of the second user, the second hash value is encrypted with the private key for verification stored in the information storage unit to obtain an electronic signature value for verification a transaction generator for generating a transaction including the second hash value and the digital signature value for verification after generation; and
    When the transaction is generated, a first node device, which is any one of a plurality of node devices constituting the block chain network, is randomly selected, authentication is performed on the first node device, and then the first node device is sent to the first node device. A registration request unit that transmits a registration request to the blockchain network of the transaction while transmitting the transaction
    including,
    The first node device
    When the registration request is received along with the transaction from the electronic contract management system device, a first block including the transaction is generated based on a previous block chained to the block chain data stored in the memory, and the first block is generated. By chaining one block to the block chain data, after the storage of the first block is completed, the first block is transferred through the block chain network to the rest of the plurality of node devices except for the first node device. An electronic contract management system device characterized in that it propagates to node devices.
  2. 삭제delete
  3. 제1항에 있어서,
    상기 등록 요청부는
    상기 복수의 노드 장치들과 사전 공유하고 있는 사전 설정된 제1 OTP(One Time Password) 생성 함수와 사전 설정된 제2 OTP 생성 함수가 저장되어 있는 OTP 저장부;
    상기 복수의 노드 장치들과 사전 공유하고 있는 사전 설정된 제1 인증용 숫자 m(m은 2 이상의 자연수임)과 사전 설정된 제2 인증용 숫자 k(k는 m과 다른 2 이상의 자연수임)가 저장되어 있는 인증용 숫자 저장부;
    상기 복수의 노드 장치들 중 어느 하나인 상기 제1 노드 장치가 랜덤하게 선택되면, 상기 제1 노드 장치의 인증을 수행하기 위한 인증 이벤트를 발생시키는 인증 이벤트 발생부;
    상기 인증 이벤트가 발생되면, 상기 제1 OTP 생성 함수를 기초로 제1 일회용 인증 번호를 생성한 후 상기 제1 일회용 인증 번호를 피제수로, 상기 제1 인증용 숫자 m을 제수로 하는 모듈로(Modulo) 연산을 수행함으로써, 제1 연산 값 x를 산출하고, 상기 제2 OTP 생성 함수를 기초로 제2 일회용 인증 번호를 생성한 후 상기 제2 일회용 인증 번호를 피제수로, 상기 제2 인증용 숫자 k를 제수로 하는 모듈로 연산을 수행함으로써, 제2 연산 값 y를 산출하는 연산 값 산출부;
    랜덤한 성분 값들로 구성된 m x k의 크기를 갖는 랜덤 행렬을 생성하고, 제1 랜덤 값을 랜덤하게 생성하는 랜덤 값 생성부;
    상기 랜덤 행렬에서 (x+1)행(y+1)열에 위치하는 성분을 상기 제1 랜덤 값으로 치환함으로써, m x k의 크기를 갖는 치환 행렬을 생성하고, 상기 치환 행렬을 상기 제1 노드 장치로 전송하면서, 상기 제1 노드 장치로 상기 치환 행렬에 대응되는 피드백 값의 전송을 요청하는 피드백 값 요청부;
    상기 제1 노드 장치로부터 상기 치환 행렬에 대응되는 피드백 값으로 제1 피드백 값 - 상기 제1 피드백 값은 상기 제1 노드 장치에서 상기 제1 노드 장치의 메모리 상에 사전 저장되어 있는 상기 제1 OTP 생성 함수, 상기 제2 OTP 생성 함수, 상기 제1 인증용 숫자 m 및 상기 제2 인증용 숫자 k를 기초로 상기 제1 연산 값 x와 상기 제2 연산 값 y가 산출된 후 상기 치환 행렬에서 (x+1)행(y+1)열에 위치하는 성분 값이 추출되어 생성된 피드백 값임 - 이 수신되면, 상기 제1 피드백 값이 상기 제1 랜덤 값과 동일한지 확인하는 확인부; 및
    상기 제1 피드백 값이 상기 제1 랜덤 값과 동일한 것으로 확인되면, 상기 제1 노드 장치에 대한 인증을 완료하는 인증 완료부
    를 포함하는 전자 계약 관리 시스템 장치.
    According to claim 1,
    The registration request
    an OTP storage unit storing a preset first OTP (One Time Password) generating function and a preset second OTP generating function that are pre-shared with the plurality of node devices;
    A preset number m for first authentication (m is a natural number greater than or equal to 2) and a preset number k for second authentication shared with the plurality of node devices in advance (k is a natural number greater than or equal to 2 different from m) are stored a number storage unit for authentication;
    an authentication event generator for generating an authentication event for performing authentication of the first node device when the first node device, which is one of the plurality of node devices, is randomly selected;
    When the authentication event occurs, a first one-time authentication number is generated based on the first OTP generation function, and then the first one-time authentication number is a dividend, and the first authentication number m is a divisor. ) by performing an operation to calculate a first operation value x, generate a second one-time authentication number based on the second OTP generation function, and then use the second one-time authentication number as a dividend, the second authentication number k an arithmetic value calculator for calculating a second arithmetic value y by performing a modulo arithmetic operation in which is a divisor;
    a random value generator generating a random matrix having a size of mxk composed of random component values and randomly generating a first random value;
    A permutation matrix having a size of mxk is generated by substituting a component located in a (x+1) row (y+1) column in the random matrix with the first random value, and the permutation matrix is transferred to the first node device. a feedback value requesting unit for requesting transmission of a feedback value corresponding to the permutation matrix to the first node device while transmitting;
    a first feedback value from the first node device to a feedback value corresponding to the permutation matrix - the first feedback value is generated in the first node device in advance in a memory of the first node device After the first operation value x and the second operation value y are calculated based on a function, the second OTP generation function, the first authentication number m, and the second authentication number k, in the substitution matrix (x +1) a feedback value generated by extracting a component value located in a row (y+1) column - a check unit that checks whether the first feedback value is the same as the first random value when received; and
    When it is confirmed that the first feedback value is the same as the first random value, an authentication completion unit for completing authentication for the first node device
    Electronic contract management system device comprising a.
  4. 제3항에 있어서,
    상기 제1 노드 장치는
    상기 제1 노드 장치의 메모리 상에 상기 제1 OTP 생성 함수, 상기 제2 OTP 생성 함수, 상기 제1 인증용 숫자 m 및 상기 제2 인증용 숫자 k를 사전 저장하고 있고, 상기 전자 계약 관리 시스템 장치로부터 상기 치환 행렬이 수신되면, 상기 제1 노드 장치의 메모리 상에 저장되어 있는 상기 제1 OTP 생성 함수를 기초로 상기 제1 일회용 인증 번호를 생성한 후 상기 제1 일회용 인증 번호를 피제수로, 상기 제1 인증용 숫자 m을 제수로 하는 모듈로 연산을 수행함으로써, 상기 제1 연산 값 x를 산출하고, 상기 제1 노드 장치의 메모리 상에 저장되어 있는 상기 제2 OTP 생성 함수를 기초로 상기 제2 일회용 인증 번호를 생성한 후 상기 제2 일회용 인증 번호를 피제수로, 상기 제2 인증용 숫자 k를 제수로 하는 모듈로 연산을 수행함으로써, 상기 제2 연산 값 y를 산출하며, 상기 제1 연산 값 x와 상기 제2 연산 값 y를 기초로 상기 치환 행렬에서 (x+1)행(y+1)열에 위치하는 성분 값을 상기 제1 피드백 값으로 추출한 후 상기 제1 피드백 값을 상기 전자 계약 관리 시스템 장치로 전송하는 것을 특징으로 하는 전자 계약 관리 시스템 장치.
    4. The method of claim 3,
    The first node device
    The first OTP generation function, the second OTP generation function, the first authentication number m and the second authentication number k are pre-stored in the memory of the first node device, and the electronic contract management system device When the substitution matrix is received from By performing a modulo operation by dividing the first authentication number m as a divisor, the first operation value x is calculated, and the second OTP generation function is stored in the memory of the first node device, based on the second OTP generation function. After generating two one-time authentication numbers, by performing a modulo operation in which the second one-time authentication number is a dividend and the second authentication number k is a divisor, the second operation value y is calculated, and the first operation Based on the value x and the second operation value y, the component value located in the (x+1) row (y+1) column in the substitution matrix is extracted as the first feedback value, and then the first feedback value is applied to the electronic contract The electronic contract management system device, characterized in that it transmits to the management system device.
  5. 제1항에 있어서,
    상기 트랜잭션이 상기 블록체인 네트워크에 등록이 완료된 이후, 상기 제1 사용자의 단말과 상기 제2 사용자의 단말 중 어느 하나의 단말로부터 상기 전자 계약서에 대한 검증 처리 요청이 수신되면, 상기 복수의 노드 장치들 중 사전 설정된 기준 개수의 제2 노드 장치들을 랜덤하게 선택한 후 상기 제2 노드 장치들로 상기 제2 노드 장치들 각각의 메모리 상에 저장되어 있는 상기 블록체인 데이터로부터 상기 제2 해시 값과 상기 검증용 전자 서명 값을 추출하여 전송할 것을 요청하는 데이터 요청부; 및
    상기 제2 노드 장치들로부터, 상기 제2 노드 장치들 각각이 상기 블록체인 데이터로부터 추출한 상기 제2 해시 값과 상기 검증용 전자 서명 값이 수신되면, 상기 제2 노드 장치들 각각으로부터 수신된 상기 제2 해시 값과 상기 검증용 전자 서명 값이 모두 일치하는지 확인하여, 모두 일치하는 것으로 확인되면, 상기 제1 사용자의 단말과 상기 제2 사용자의 단말 중 상기 전자 계약서에 대한 검증 처리 요청을 전송한 단말로 상기 제2 해시 값과 상기 검증용 전자 서명 값을 전송하는 서명 전송부
    를 더 포함하고,
    상기 제1 사용자의 단말과 상기 제2 사용자의 단말 중 상기 전자 계약서에 대한 검증 처리 요청을 전송한 단말은
    상기 전자 계약 관리 시스템 장치로부터 상기 제2 해시 값과 상기 검증용 전자 서명 값이 수신되면, 상기 검증용 전자 서명 값을, 단말 내에 사전 발급되어 저장되어 있는 상기 검증용 공개키로 복호화하여 검증용 복호화 값을 생성한 후 상기 검증용 복호화 값이 상기 제2 해시 값과 서로 일치하는 것으로 확인되면, 상기 전자 계약서에 대한 검증이 완료되었음을 지시하는 검증 완료 메시지를 생성하여 화면 상에 표시하는 것을 특징으로 하는 전자 계약 관리 시스템 장치.
    According to claim 1,
    After the transaction is registered in the blockchain network, when a verification processing request for the electronic contract is received from any one of the terminal of the first user and the terminal of the second user, the plurality of node devices After randomly selecting a preset reference number of second node devices among the second node devices, the second hash value and the verification from the block chain data stored in the memory of each of the second node devices a data requesting unit requesting to extract and transmit an electronic signature value; and
    When the second hash value extracted from the block chain data by each of the second node devices and the digital signature value for verification are received from the second node devices, the second node devices received from each of the second node devices 2 Check whether the hash value and the electronic signature value for verification all match, and if it is confirmed that they all match, the terminal that transmits the verification processing request for the electronic contract among the terminals of the first user and the second user A signature transmission unit for transmitting the second hash value and the digital signature value for verification
    further comprising,
    The terminal that has transmitted the verification processing request for the electronic contract among the terminals of the first user and the terminal of the second user
    When the second hash value and the verification electronic signature value are received from the electronic contract management system device, the verification electronic signature value is decrypted with the verification public key previously issued and stored in the terminal to decrypt the verification decryption value When it is confirmed that the verification decryption value matches the second hash value after generating contract management system device.
  6. 제1 사용자와 제2 사용자 간의 전자 계약을 가능하게 하는 전자 계약 관리 시스템 장치의 동작 방법에 있어서,
    사전 설정된 검증용 개인키 - 상기 제1 사용자의 단말과 상기 제2 사용자의 단말에는 상기 검증용 개인키에 대응되는 검증용 공개키가 사전 발급되어 저장되어 있음 - 와 사전 설정된 해시 함수 - 상기 해시 함수는 상기 제1 사용자의 단말과 상기 제2 사용자의 단말에도 사전 저장되어 있음 - 가 저장되어 있는 정보 저장부를 유지하는 단계;
    상기 제1 사용자의 단말에 사전 저장되어 있는 제1 개인키에 대응되는 제1 공개키와 상기 제2 사용자의 단말에 사전 저장되어 있는 제2 개인키에 대응되는 제2 공개키가 저장되어 있는 공개키 저장부를 유지하는 단계;
    상기 전자 계약에 대한 계약 정보가 포함된 전자 계약서에 대한 데이터를 상기 제1 사용자의 단말로 전송하면서, 상기 제1 사용자의 단말로 상기 전자 계약서에 대한 데이터를 기초로 한 전자 서명을 요청하는 단계;
    상기 제1 사용자의 단말에서 상기 전자 계약서에 대한 데이터가 상기 제1 사용자의 단말에 저장되어 있는 상기 해시 함수에 입력으로 인가되어 제1 해시 값이 생성된 후 상기 제1 해시 값이 상기 제1 사용자의 단말에 저장되어 있는 상기 제1 개인키로 암호화되어 제1 전자 서명 값이 생성됨에 따라, 상기 제1 사용자의 단말로부터 상기 제1 전자 서명 값이 수신되면, 상기 공개키 저장부로부터 상기 제1 공개키를 추출한 후 상기 제1 공개키로 상기 제1 전자 서명 값을 복호화하여 제1 복호화 값을 생성하는 단계;
    상기 전자 계약서에 대한 데이터를 상기 정보 저장부에 저장되어 있는 상기 해시 함수에 입력으로 인가하여 제2 해시 값을 생성한 후 상기 제2 해시 값이 상기 제1 복호화 값과 서로 일치하는지 확인하여, 상기 제2 해시 값이 상기 제1 복호화 값과 서로 일치하는 것으로 확인되면, 상기 제1 전자 서명 값에 대한 검증을 완료하고, 상기 제2 사용자의 단말로 상기 전자 계약서에 대한 데이터를 전송하면서, 상기 제2 사용자의 단말로 상기 전자 계약서에 대한 데이터를 기초로 한 전자 서명을 요청하는 단계;
    상기 제2 사용자의 단말에서 상기 전자 계약서에 대한 데이터가 상기 제2 사용자의 단말에 저장되어 있는 상기 해시 함수에 입력으로 인가되어 제3 해시 값이 생성된 후 상기 제3 해시 값이 상기 제2 사용자의 단말에 저장되어 있는 상기 제2 개인키로 암호화되어 제2 전자 서명 값이 생성됨에 따라, 상기 제2 사용자의 단말로부터 상기 제2 전자 서명 값이 수신되면, 상기 공개키 저장부로부터 상기 제2 공개키를 추출한 후 상기 제2 공개키로 상기 제2 전자 서명 값을 복호화하여 제2 복호화 값을 생성하는 단계;
    상기 제2 해시 값이 상기 제2 복호화 값과 서로 일치하는지 확인하여, 상기 제2 해시 값이 상기 제2 복호화 값과 서로 일치하는 것으로 확인되면, 상기 제2 전자 서명 값에 대한 검증을 완료하고, 상기 제1 사용자와 상기 제2 사용자 간의 계약이 완료되었음을 지시하는 계약 완료 메시지를 생성하는 단계;
    상기 제1 사용자의 단말과 상기 제2 사용자의 단말로 상기 계약 완료 메시지를 전송하는 단계;
    상기 제1 사용자의 단말과 상기 제2 사용자의 단말로 상기 계약 완료 메시지가 전송되면, 상기 제2 해시 값에 대해 상기 정보 저장부에 저장되어 있는 상기 검증용 개인키로 암호화하여 검증용 전자 서명 값을 생성한 후 상기 제2 해시 값과 상기 검증용 전자 서명 값이 포함된 트랜잭션을 생성하는 단계; 및
    상기 트랜잭션이 생성되면, 블록체인 네트워크를 구성하고 있는 복수의 노드 장치들 중 어느 하나인 제1 노드 장치를 랜덤하게 선택하고, 상기 제1 노드 장치에 대한 인증을 진행한 후 상기 제1 노드 장치로 상기 트랜잭션을 전송하면서, 상기 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송하는 단계
    를 포함하고,
    상기 제1 노드 장치는
    상기 전자 계약 관리 시스템 장치로부터 상기 트랜잭션과 함께 상기 등록 요청이 수신되면, 메모리 상에 저장되어 있는 블록체인 데이터에 체인으로 연결된 이전 블록을 기초로 상기 트랜잭션이 포함된 제1 블록을 생성하고, 상기 제1 블록을 상기 블록체인 데이터에 체인으로 연결함으로써, 상기 제1 블록에 대한 저장을 완료한 후 상기 블록체인 네트워크를 통해 상기 제1 블록을 상기 복수의 노드 장치들 중 상기 제1 노드 장치를 제외한 나머지 노드 장치들로 전파하는 것을 특징으로 하는 전자 계약 관리 시스템 장치의 동작 방법.
    A method of operating an electronic contract management system device that enables an electronic contract between a first user and a second user, the method comprising:
    A preset private key for verification - A public key for verification corresponding to the private key for verification is issued and stored in the terminal of the first user and the terminal of the second user - and a preset hash function - The hash function is pre-stored in the terminal of the first user and the terminal of the second user - maintaining an information storage unit in which is stored;
    A public in which a first public key corresponding to the first private key pre-stored in the terminal of the first user and a second public key corresponding to the second private key pre-stored in the terminal of the second user are stored maintaining a key store;
    requesting an electronic signature based on the data on the electronic contract to the terminal of the first user while transmitting data on the electronic contract including the contract information for the electronic contract to the terminal of the first user;
    In the terminal of the first user, the data for the electronic contract is applied as an input to the hash function stored in the terminal of the first user to generate a first hash value, and then the first hash value is determined by the first user. When the first electronic signature value is received from the terminal of the first user as the first electronic signature value is generated by being encrypted with the first private key stored in the terminal of generating a first decryption value by decrypting the first digital signature value with the first public key after extracting the key;
    After generating a second hash value by applying the data for the electronic contract as an input to the hash function stored in the information storage unit, confirming whether the second hash value matches the first decryption value, When it is confirmed that the second hash value matches the first decryption value, verification of the first electronic signature value is completed, and while transmitting the data on the electronic contract to the terminal of the second user, the second 2 requesting an electronic signature based on the data on the electronic contract to the user's terminal;
    In the terminal of the second user, the data for the electronic contract is applied as an input to the hash function stored in the terminal of the second user to generate a third hash value, and then the third hash value is determined by the second user. As the second digital signature value is generated by being encrypted with the second private key stored in the terminal of generating a second decryption value by decrypting the second digital signature value with the second public key after extracting the key;
    Check whether the second hash value matches the second decryption value, and when it is confirmed that the second hash value matches the second decryption value, verification of the second digital signature value is completed; generating a contract completion message indicating that the contract between the first user and the second user has been completed;
    transmitting the contract completion message to the terminal of the first user and the terminal of the second user;
    When the contract completion message is transmitted to the terminal of the first user and the terminal of the second user, the second hash value is encrypted with the private key for verification stored in the information storage unit to obtain an electronic signature value for verification After generating, generating a transaction including the second hash value and the digital signature value for verification; and
    When the transaction is generated, a first node device, which is any one of a plurality of node devices constituting the block chain network, is randomly selected, authentication is performed on the first node device, and then the first node device is sent to the first node device. while sending the transaction, sending a registration request of the transaction to the blockchain network;
    including,
    The first node device
    When the registration request is received along with the transaction from the electronic contract management system device, a first block including the transaction is generated based on a previous block chained to the block chain data stored in the memory, and the first block is generated. By chaining one block to the block chain data, after the storage of the first block is completed, the first block is transferred through the block chain network to the rest of the plurality of node devices except for the first node device. A method of operation of an electronic contract management system device, characterized in that it propagates to node devices.
  7. 삭제delete
  8. 제6항에 있어서,
    상기 등록 요청을 전송하는 단계는
    상기 복수의 노드 장치들과 사전 공유하고 있는 사전 설정된 제1 OTP(One Time Password) 생성 함수와 사전 설정된 제2 OTP 생성 함수가 저장되어 있는 OTP 저장부를 유지하는 단계;
    상기 복수의 노드 장치들과 사전 공유하고 있는 사전 설정된 제1 인증용 숫자 m(m은 2 이상의 자연수임)과 사전 설정된 제2 인증용 숫자 k(k는 m과 다른 2 이상의 자연수임)가 저장되어 있는 인증용 숫자 저장부를 유지하는 단계;
    상기 복수의 노드 장치들 중 어느 하나인 상기 제1 노드 장치가 랜덤하게 선택되면, 상기 제1 노드 장치의 인증을 수행하기 위한 인증 이벤트를 발생시키는 단계;
    상기 인증 이벤트가 발생되면, 상기 제1 OTP 생성 함수를 기초로 제1 일회용 인증 번호를 생성한 후 상기 제1 일회용 인증 번호를 피제수로, 상기 제1 인증용 숫자 m을 제수로 하는 모듈로(Modulo) 연산을 수행함으로써, 제1 연산 값 x를 산출하고, 상기 제2 OTP 생성 함수를 기초로 제2 일회용 인증 번호를 생성한 후 상기 제2 일회용 인증 번호를 피제수로, 상기 제2 인증용 숫자 k를 제수로 하는 모듈로 연산을 수행함으로써, 제2 연산 값 y를 산출하는 단계;
    랜덤한 성분 값들로 구성된 m x k의 크기를 갖는 랜덤 행렬을 생성하고, 제1 랜덤 값을 랜덤하게 생성하는 단계;
    상기 랜덤 행렬에서 (x+1)행(y+1)열에 위치하는 성분을 상기 제1 랜덤 값으로 치환함으로써, m x k의 크기를 갖는 치환 행렬을 생성하고, 상기 치환 행렬을 상기 제1 노드 장치로 전송하면서, 상기 제1 노드 장치로 상기 치환 행렬에 대응되는 피드백 값의 전송을 요청하는 단계;
    상기 제1 노드 장치로부터 상기 치환 행렬에 대응되는 피드백 값으로 제1 피드백 값 - 상기 제1 피드백 값은 상기 제1 노드 장치에서 상기 제1 노드 장치의 메모리 상에 사전 저장되어 있는 상기 제1 OTP 생성 함수, 상기 제2 OTP 생성 함수, 상기 제1 인증용 숫자 m 및 상기 제2 인증용 숫자 k를 기초로 상기 제1 연산 값 x와 상기 제2 연산 값 y가 산출된 후 상기 치환 행렬에서 (x+1)행(y+1)열에 위치하는 성분 값이 추출되어 생성된 피드백 값임 - 이 수신되면, 상기 제1 피드백 값이 상기 제1 랜덤 값과 동일한지 확인하는 단계; 및
    상기 제1 피드백 값이 상기 제1 랜덤 값과 동일한 것으로 확인되면, 상기 제1 노드 장치에 대한 인증을 완료하는 단계
    를 포함하는 전자 계약 관리 시스템 장치의 동작 방법.
    7. The method of claim 6,
    The step of sending the registration request is
    maintaining an OTP storage unit in which a preset first OTP (One Time Password) generating function and a preset second OTP generating function shared in advance with the plurality of node devices are stored;
    A preset number m for first authentication (m is a natural number greater than or equal to 2) and a preset number k for second authentication shared with the plurality of node devices in advance (k is a natural number greater than or equal to 2 different from m) are stored maintaining a numeric storage unit for authentication;
    generating an authentication event for performing authentication of the first node device when the first node device as any one of the plurality of node devices is randomly selected;
    When the authentication event occurs, a first one-time authentication number is generated based on the first OTP generation function, and then the first one-time authentication number is a dividend, and the first authentication number m is a divisor. ) by performing an operation to calculate a first operation value x, generate a second one-time authentication number based on the second OTP generation function, and then use the second one-time authentication number as a dividend, the second authentication number k calculating a second operation value y by performing a modulo operation with a divisor of ;
    generating a random matrix having a size of mxk composed of random component values, and randomly generating a first random value;
    A permutation matrix having a size of mxk is generated by substituting a component located in a (x+1) row (y+1) column in the random matrix with the first random value, and the permutation matrix is transferred to the first node device. requesting transmission of a feedback value corresponding to the permutation matrix to the first node device while transmitting;
    a first feedback value from the first node device to a feedback value corresponding to the permutation matrix - the first feedback value is generated in the first node device in advance in a memory of the first node device After the first operation value x and the second operation value y are calculated based on a function, the second OTP generation function, the first authentication number m, and the second authentication number k, in the substitution matrix (x +1) a feedback value generated by extracting a component value located in a row (y+1) column - when received, checking whether the first feedback value is the same as the first random value; and
    Completing authentication for the first node device when it is confirmed that the first feedback value is equal to the first random value
    An operating method of an electronic contract management system device comprising a.
  9. 제8항에 있어서,
    상기 제1 노드 장치는
    상기 제1 노드 장치의 메모리 상에 상기 제1 OTP 생성 함수, 상기 제2 OTP 생성 함수, 상기 제1 인증용 숫자 m 및 상기 제2 인증용 숫자 k를 사전 저장하고 있고, 상기 전자 계약 관리 시스템 장치로부터 상기 치환 행렬이 수신되면, 상기 제1 노드 장치의 메모리 상에 저장되어 있는 상기 제1 OTP 생성 함수를 기초로 상기 제1 일회용 인증 번호를 생성한 후 상기 제1 일회용 인증 번호를 피제수로, 상기 제1 인증용 숫자 m을 제수로 하는 모듈로 연산을 수행함으로써, 상기 제1 연산 값 x를 산출하고, 상기 제1 노드 장치의 메모리 상에 저장되어 있는 상기 제2 OTP 생성 함수를 기초로 상기 제2 일회용 인증 번호를 생성한 후 상기 제2 일회용 인증 번호를 피제수로, 상기 제2 인증용 숫자 k를 제수로 하는 모듈로 연산을 수행함으로써, 상기 제2 연산 값 y를 산출하며, 상기 제1 연산 값 x와 상기 제2 연산 값 y를 기초로 상기 치환 행렬에서 (x+1)행(y+1)열에 위치하는 성분 값을 상기 제1 피드백 값으로 추출한 후 상기 제1 피드백 값을 상기 전자 계약 관리 시스템 장치로 전송하는 것을 특징으로 하는 전자 계약 관리 시스템 장치의 동작 방법.
    9. The method of claim 8,
    The first node device
    The first OTP generation function, the second OTP generation function, the first authentication number m and the second authentication number k are pre-stored in the memory of the first node device, and the electronic contract management system device When the substitution matrix is received from By performing a modulo operation by dividing the first authentication number m as a divisor, the first operation value x is calculated, and the second OTP generation function is stored in the memory of the first node device, based on the second OTP generation function. After generating two one-time authentication numbers, by performing a modulo operation in which the second one-time authentication number is a dividend and the second authentication number k is a divisor, the second operation value y is calculated, and the first operation Based on the value x and the second operation value y, the component value located in the (x+1) row (y+1) column in the substitution matrix is extracted as the first feedback value, and then the first feedback value is applied to the electronic contract Method of operation of the electronic contract management system device, characterized in that the transmission to the management system device.
  10. 제6항에 있어서,
    상기 트랜잭션이 상기 블록체인 네트워크에 등록이 완료된 이후, 상기 제1 사용자의 단말과 상기 제2 사용자의 단말 중 어느 하나의 단말로부터 상기 전자 계약서에 대한 검증 처리 요청이 수신되면, 상기 복수의 노드 장치들 중 사전 설정된 기준 개수의 제2 노드 장치들을 랜덤하게 선택한 후 상기 제2 노드 장치들로 상기 제2 노드 장치들 각각의 메모리 상에 저장되어 있는 상기 블록체인 데이터로부터 상기 제2 해시 값과 상기 검증용 전자 서명 값을 추출하여 전송할 것을 요청하는 단계; 및
    상기 제2 노드 장치들로부터, 상기 제2 노드 장치들 각각이 상기 블록체인 데이터로부터 추출한 상기 제2 해시 값과 상기 검증용 전자 서명 값이 수신되면, 상기 제2 노드 장치들 각각으로부터 수신된 상기 제2 해시 값과 상기 검증용 전자 서명 값이 모두 일치하는지 확인하여, 모두 일치하는 것으로 확인되면, 상기 제1 사용자의 단말과 상기 제2 사용자의 단말 중 상기 전자 계약서에 대한 검증 처리 요청을 전송한 단말로 상기 제2 해시 값과 상기 검증용 전자 서명 값을 전송하는 단계
    를 더 포함하고,
    상기 제1 사용자의 단말과 상기 제2 사용자의 단말 중 상기 전자 계약서에 대한 검증 처리 요청을 전송한 단말은
    상기 전자 계약 관리 시스템 장치로부터 상기 제2 해시 값과 상기 검증용 전자 서명 값이 수신되면, 상기 검증용 전자 서명 값을, 단말 내에 사전 발급되어 저장되어 있는 상기 검증용 공개키로 복호화하여 검증용 복호화 값을 생성한 후 상기 검증용 복호화 값이 상기 제2 해시 값과 서로 일치하는 것으로 확인되면, 상기 전자 계약서에 대한 검증이 완료되었음을 지시하는 검증 완료 메시지를 생성하여 화면 상에 표시하는 것을 특징으로 하는 전자 계약 관리 시스템 장치의 동작 방법.
    7. The method of claim 6,
    After the transaction is registered in the blockchain network, when a verification processing request for the electronic contract is received from any one of the terminal of the first user and the terminal of the second user, the plurality of node devices After randomly selecting a preset reference number of second node devices among the second node devices, the second hash value and the verification from the block chain data stored in the memory of each of the second node devices requesting to extract and transmit the electronic signature value; and
    When the second hash value extracted from the block chain data by each of the second node devices and the digital signature value for verification are received from the second node devices, the second node devices received from each of the second node devices 2 Check whether the hash value and the electronic signature value for verification all match, and if it is confirmed that they all match, the terminal that transmits the verification processing request for the electronic contract among the terminals of the first user and the second user transmitting the second hash value and the digital signature value for verification to
    further comprising,
    The terminal that has transmitted the verification processing request for the electronic contract among the terminals of the first user and the terminal of the second user
    When the second hash value and the verification electronic signature value are received from the electronic contract management system device, the verification electronic signature value is decrypted with the verification public key previously issued and stored in the terminal to decrypt the verification decryption value When it is confirmed that the verification decryption value matches the second hash value after generating How the contract management system device works.
  11. 제6항, 제8항, 제9항 또는 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.A computer-readable recording medium recording a computer program for executing the method of any one of claims 6, 8, 9 or 10 through combination with a computer.
  12. 제6항, 제8항, 제9항 또는 제10항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.A computer program stored in a storage medium for executing the method of any one of claims 6, 8, 9 or 10 in combination with a computer.
KR1020200167579A 2020-12-03 2020-12-03 Blockchain-based electronic contract management system apparatus that supports electronic contracts between parties and operating method thereof KR102303431B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200167579A KR102303431B1 (en) 2020-12-03 2020-12-03 Blockchain-based electronic contract management system apparatus that supports electronic contracts between parties and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200167579A KR102303431B1 (en) 2020-12-03 2020-12-03 Blockchain-based electronic contract management system apparatus that supports electronic contracts between parties and operating method thereof

Publications (1)

Publication Number Publication Date
KR102303431B1 true KR102303431B1 (en) 2021-09-23

Family

ID=77926210

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200167579A KR102303431B1 (en) 2020-12-03 2020-12-03 Blockchain-based electronic contract management system apparatus that supports electronic contracts between parties and operating method thereof

Country Status (1)

Country Link
KR (1) KR102303431B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101952329B1 (en) * 2018-03-22 2019-02-26 주식회사 스트리미 Method for generating address information used in transaction of cryptocurrency based on blockchain, electronic apparatus and computer readable recording medium
KR20200128918A (en) * 2019-05-07 2020-11-17 주식회사 한컴위드 Node device for performing certificate management based on a block chain and operating method thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101952329B1 (en) * 2018-03-22 2019-02-26 주식회사 스트리미 Method for generating address information used in transaction of cryptocurrency based on blockchain, electronic apparatus and computer readable recording medium
KR20200128918A (en) * 2019-05-07 2020-11-17 주식회사 한컴위드 Node device for performing certificate management based on a block chain and operating method thereof

Similar Documents

Publication Publication Date Title
KR101999188B1 (en) Secure personal devices using elliptic curve cryptography for secret sharing
US20140195804A1 (en) Techniques for secure data exchange
KR102137122B1 (en) Security check method, device, terminal and server
US20190312720A1 (en) Method for remotely acquiring secret key, pos terminal and storage medium
WO2020020127A1 (en) Private key storage and reading method and apparatus, and hardware device
WO2019179542A2 (en) Improving integrity of communications between blockchain networks and external data sources
TWI718567B (en) Two-dimensional code generation method, data processing method, device, server and computer readable storage medium
WO2019137566A2 (en) Methods and devices for validating transaction in blockchain system
WO2021013245A1 (en) Data key protection method and system, electronic device and storage medium
CN111460453A (en) Machine learning training method, controller, device, server, terminal and medium
CN109767218B (en) Block chain certificate processing method and system
US10880100B2 (en) Apparatus and method for certificate enrollment
KR102303431B1 (en) Blockchain-based electronic contract management system apparatus that supports electronic contracts between parties and operating method thereof
CN111628868B (en) Digital signature generation method and device, computer equipment and storage medium
CN111245594A (en) Homomorphic operation-based collaborative signature method and system
CN108833431B (en) Password resetting method, device, equipment and storage medium
CN108199847B (en) Digital security processing method, computer device, and storage medium
CN111241492A (en) Product multi-tenant secure credit granting method, system and electronic equipment
CN111475824A (en) Data access method, device, equipment and storage medium
KR20100043799A (en) Method for moving secret data between mobile terminal based on mobile trusted module
Wang et al. An alternative approach to public cloud data auditing supporting data dynamics
KR102282788B1 (en) Blockchain system for supporting change of plain text data included in transaction
KR102145679B1 (en) Method for evading mitm attack for https protocol
KR20210063378A (en) Computer-implemented systems and methods that share common secrets
KR102209531B1 (en) Method for Storing Digital Certificate and Priviate Key in Cloud Environment and for Downloading the Certificate and Private Key

Legal Events

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