KR102350462B1 - Signature generation method, electronic device and storage medium - Google Patents
Signature generation method, electronic device and storage medium Download PDFInfo
- Publication number
- KR102350462B1 KR102350462B1 KR1020197035599A KR20197035599A KR102350462B1 KR 102350462 B1 KR102350462 B1 KR 102350462B1 KR 1020197035599 A KR1020197035599 A KR 1020197035599A KR 20197035599 A KR20197035599 A KR 20197035599A KR 102350462 B1 KR102350462 B1 KR 102350462B1
- Authority
- KR
- South Korea
- Prior art keywords
- signature
- aggregate
- generating
- sub
- public key
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
- H04L9/3255—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using group based signatures, e.g. ring or threshold signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1834—Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/083—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
- H04L9/0833—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/085—Secret sharing or secret splitting, e.g. threshold schemes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/68—Special signature format, e.g. XML format
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Storage Device Security (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
본 출원은 서명 생성 방법, 전자 장치 및 저장 매체를 제공하며, 정보 기술 분야에 속한다. 본 출원에서, 집계 서명은 복수의 서명 파티의 하위 서명을 사용함으로써 생성되고, 집계 공개 키는 복수의 서명 파티의 공개 키에 기초해서 생성되고, 획득된 집계 서명의 길이는 복수의 하위 서명을 스플라이싱함으로써 획득된 다중-서명의 길이보다 짧고, 집계 공개 키의 길이는 복수의 공개 키를 스플라이싱함으로써 획득된 다중 공개 키의 길이보다 짧으며, 그러므로 집계 서명 및 집계 공개 키의 네트워크 전송 동안, 네트워크 전송의 부담이 경감되고, 저장 공간은 저장 동안 감소되며, 서명 검사 동안, 서명될 메시지는 집계 공개 키 및 집계 서명을 직접 사용해서 체크되어 서명 검사의 복잡도가 크게 감소된다.The present application provides a method for generating a signature, an electronic device and a storage medium, and belongs to the field of information technology. In the present application, the aggregate signature is generated by using sub-signatures of a plurality of signing parties, the aggregate public key is generated based on the public keys of the plurality of signing parties, and the length of the obtained aggregate signature is obtained by scanning the plurality of sub-signatures. shorter than the length of the multi-signature obtained by splicing, the length of the aggregate public key is shorter than the length of the multi-public key obtained by splicing the plurality of public keys, and therefore during network transmission of the aggregate signature and aggregate public key , the burden of network transmission is reduced, the storage space is reduced during storage, and during signature checking, the message to be signed is checked using the aggregate public key and the aggregate signature directly, so that the complexity of signature checking is greatly reduced.
Description
본 출원은 발명의 명칭이 "서명 생성 방법 및 장치, 단말 및 서버"이고 2017년 11월 10일에 출원된 중국특허출원 제호에 대한 우선권을 주장하는 바이며, 상기 문헌의 내용은 본 명세서에 원용되어 포함된다.This application is entitled "Signature generating method and apparatus, terminal and server" and claims priority to the Chinese Patent Application No. filed on November 10, 2017, the contents of which are incorporated herein by reference is included
본 출원은 정보 기술 분야에 관한 것이며, 특히 서명 생성 방법, 전자 장치 및 저장 매체에 관한 것이다.The present application relates to the field of information technology, and in particular to a method for generating a signature, an electronic device and a storage medium.
정보 기술의 지속적인 개발에 따라, 새로운 기술인 블록 체인이 빠르게 개발되었다. 블록 체인은 암호화 방법을 사용하여 생성되는 관련 블록의 문자열이다. 블록 체인에서 각각의 블록의 블록 데이터는 이전 블록의 블록 데이터와 연관되어 있다. 따라서 블록 데이터를 조작하여 부정 행위를 수행할 수 없다. 모든 블록의 블록 데이터가 개방적이고 투명하다는 것을 보장할 수 있다. 블록 체인은 엔드-투-엔드 네트워크를 공동으로 구성하기 위해 많은 노드로 구성된다. 노드 간의 데이터 교환은 디지털 서명 기술을 사용하여 확인된다. 디지털 서명 기술은 디지털 암호화를 통해 디지털 정보를 인증하는 기술이다. 일부 경우에, 예를 들어, 거래가 복수의 파티 사이의 합의를 요구할 때, 복수의 파티는 메시지에 서명할 것이며, 이러한 서명 방식을 다중-서명 방식(multi-signature manner)이라 지칭한다.With the continuous development of information technology, a new technology, blockchain, has been developed rapidly. A blockchain is a string of related blocks created using cryptographic methods. In the block chain, the block data of each block is related to the block data of the previous block. Therefore, fraudulent actions cannot be performed by manipulating block data. It can guarantee that the block data of all blocks is open and transparent. A blockchain consists of many nodes to jointly form an end-to-end network. Data exchange between nodes is verified using digital signature technology. Digital signature technology is a technology for authenticating digital information through digital encryption. In some cases, for example, when a transaction requires agreement between multiple parties, the multiple parties will sign the message, which is referred to as a multi-signature manner.
관련 기술에서, 다중-서명 방식의 구현 계획은 다음과 같다: 개의 서명 파티가 있다고 가정하면, 다중-서명이 수행될 때, 개의 다른 서명이 일렬로 연결되어 블록 체인에 저장하기 위한 긴 서명으로 스플라이싱된다. 서명 검사 동안, 그 긴 서명을 검증하기 위해서는 개의 서명 파티의 공개 키가 동시에 필요하다. N은 1보다 큰 정수이다.In the related art, the implementation plan of the multi-signature method is as follows: Assuming that there are two signing parties, when multi-signature is performed, Two different signatures are chained together and spliced into a long signature for storage on the blockchain. During signature check, to verify that long signature The public keys of the two signing parties are required at the same time. N is an integer greater than 1.
본 개시의 실시예는 서명 생성 방법, 전자 장치 및 저장 매체를 제공하여, 서명 검사의 복잡도를 감소시킨다. 기술적 솔루션은 다음과 같다:An embodiment of the present disclosure provides a signature generation method, an electronic device, and a storage medium, thereby reducing the complexity of signature checking. The technical solution is:
한 관점에 따라, 서명 생성 방법이 제공되며, 상기 방법은:According to one aspect, a method for generating a signature is provided, the method comprising:
서명될 메시지 및 복수의 서명 파티의 고윳값에 따라 메시지 요약을 생성하는 단계 - 각각의 서명 파티의 고윳값은 상기 서명 파티의 난수에 따른 계산을 통해 획득됨 - ;generating a message digest according to the message to be signed and an eigenvalue of a plurality of signing parties, wherein an eigenvalue of each signing party is obtained through calculation according to the random number of the signing party;
상기 복수의 서명 파티의 공개 키 및 하위 서명을 획득하는 단계 - 각각의 서명 파티의 하위 서명은 상기 서명 파티의 난수, 상기 메시지 요약 및 상기 복수의 서명 파티의 개인 키에 따른 계산을 통해 획득됨 - ;obtaining a public key and sub-signature of the plurality of signing parties, wherein the sub-signature of each signing party is obtained through calculation according to the random number of the signing party, the message digest and the private key of the plurality of signing parties; ;
상기 복수의 서명 파티의 공개 키에 따라 집계 공개 키를 생성하는 단계 - 상기 집계 공개 키의 길이는 스플라이싱 후 상기 복수의 공개 키의 길이보다 짧음 - ; 및generating an aggregate public key according to the public keys of the plurality of signing parties, wherein a length of the aggregate public key is shorter than a length of the plurality of public keys after splicing; and
상기 복수의 하위 서명의 합산 값 및 상기 메시지 요약에 따라 집계 서명을 생성하는 단계generating an aggregate signature according to the sum of the plurality of sub-signatures and the message digest;
를 포함한다.includes
한 관점에 따라, 서명 생성 방법이 제공되며, 상기 방법은:According to one aspect, a method for generating a signature is provided, the method comprising:
난수를 획득하고, 상기 난수에 따라 고윳값을 생성하는 단계;obtaining a random number and generating an eigenvalue according to the random number;
서명될 메시지, 개인 키 및 공개 키를 획득하는 단계;obtaining a message to be signed, a private key and a public key;
메시지 요약을 생성하는 단계 - 상기 메시지 요약은 상기 서명될 메시지 및 상기 고윳값에 따라 상기 서명 집계 파티에 의한 계산을 통해 획득됨 - ; 및generating a message digest, wherein the message digest is obtained through calculation by the signature aggregation party according to the message to be signed and the algorithm; and
상기 메시지 요약, 상기 난수 및 상기 개인 키에 따라 하위 서명을 생성하는 단계generating a sub-signature according to the message digest, the random number and the private key;
를 포함한다.includes
한 관점에 따라, 서명 생성 장치가 제공되며, 상기 장치는:According to one aspect, an apparatus for generating a signature is provided, the apparatus comprising:
서명될 메시지 및 복수의 서명 파티의 고윳값에 따라 메시지 요약을 생성하도록 구성되어 있는 제1 생성 모듈 - 각각의 서명 파티의 고윳값은 상기 서명 파티의 난수에 따른 계산을 통해 획득됨 - ;a first generating module, configured to generate a message digest according to the message to be signed and an eigenvalue of a plurality of signing parties, wherein the eigenvalue of each signing party is obtained through calculation according to a random number of the signing party;
상기 복수의 서명 파티의 공개 키 및 하위 서명을 획득하도록 구성되어 있는 획득 모듈 - 각각의 서명 파티의 하위 서명은 상기 서명 파티의 난수, 상기 메시지 요약 및 상기 복수의 서명 파티의 개인 키에 따른 계산을 통해 획득됨 - ;an obtaining module, configured to obtain the public key and sub-signature of the plurality of signing parties, wherein the sub-signature of each signing party is calculated according to the random number of the signing party, the message digest and the private key of the plurality of signing parties Acquired through - ;
상기 복수의 서명 파티의 공개 키에 따라 집계 공개 키를 생성하도록 구성되어 있는 제2 생성 모듈 - 상기 집계 공개 키의 길이는 스플라이싱 후 상기 복수의 공개 키의 길이보다 짧음 - ; 및a second generating module, configured to generate an aggregate public key according to the public keys of the plurality of signing parties, wherein a length of the aggregate public key is shorter than a length of the plurality of public keys after splicing; and
상기 복수의 하위 서명의 합산 값 및 상기 메시지 요약에 따라 집계 서명을 생성하도록 구성되어 있는 제3 생성 모듈a third generating module, configured to generate an aggregate signature according to the sum of the plurality of sub-signatures and the message digest;
을 포함한다.includes
한 관점에 따라, 서명 생성 장치가 제공되며, 상기 장치는:According to one aspect, an apparatus for generating a signature is provided, the apparatus comprising:
난수를 획득하고, 상기 난수에 따라 고윳값을 생성하도록 구성되어 있는 제1 생성 모듈;a first generating module, configured to obtain a random number and generate an eigenvalue according to the random number;
서명될 메시지, 개인 키 및 공개 키를 획득하도록 구성되어 있는 제1 획득 모듈;a first obtaining module, configured to obtain the message to be signed, the private key and the public key;
메시지 요약을 생성하도록 구성되어 있는 제2 획득 모듈 - 상기 메시지 요약은 상기 서명될 메시지 및 상기 고윳값에 따라 상기 서명 집계 파티에 의한 계산을 통해 획득됨 - ; 및a second obtaining module, configured to generate a message digest, wherein the message digest is obtained through calculation by the signature aggregation party according to the message to be signed and the algorithm; and
상기 메시지 요약, 상기 난수 및 상기 개인 키에 따라 하위 서명을 생성하도록 구성되어 있는 제2 생성 모듈a second generating module, configured to generate a sub-signature according to the message digest, the random number and the private key
을 포함한다.includes
한 관점에 따라, 단말이 제공되며, 상기 단말은 프로세서 및 메모리를 포함하며, 상기 메모리는 적어도 하나의 명령을 저장하고, 상기 적어도 하나의 명령은 전술한 서명 생성 방법을 실행하도록 프로세서에 의해 로딩되어 수행된다.According to one aspect, there is provided a terminal, the terminal comprising a processor and a memory, the memory storing at least one instruction, the at least one instruction being loaded by the processor to execute the above-described method for generating a signature, is carried out
한 관점에 따라, 서버가 제공되며, 상기 서버는 프로세서 및 메모리를 포함하며, 상기 메모리는 적어도 하나의 명령을 저장하고, 상기 적어도 하나의 명령은 전술한 서명 생성 방법을 실행하도록 프로세서에 의해 로딩되어 수행된다.According to one aspect, there is provided a server, the server comprising a processor and a memory, the memory storing at least one instruction, the at least one instruction being loaded by the processor to execute the above-described method for generating a signature, is carried out
한 관점에 따라, 컴퓨터 판독 가능형 매체가 제공되며, 상기 컴퓨터 판독 가능형 매체는 프로세서 및 메모리를 포함하며, 상기 메모리는 적어도 하나의 명령을 저장하고, 상기 적어도 하나의 명령은 전술한 서명 생성 방법을 실행하도록 프로세서에 의해 로딩되어 수행된다.According to one aspect, a computer readable medium is provided, the computer readable medium comprising a processor and a memory, the memory storing at least one instruction, the at least one instruction being the method for generating a signature as described above. is loaded and executed by the processor to execute
본 개시의 실시예의 기술적 솔루션에 의해 생기는 유리한 효과는 다음과 같다: 복수의 서명 파티의 하위 서명을 사용함으로써 집계 서명이 생성되고, 복수의 서명 파티의 공개 키에 기초하여 집계 공개 키가 생성되고; 획득된 집계 서명의 길이는 복수의 하위 서명을 스플라이싱함으로써 획득된 다중-서명의 길이보다 짧고, 집계 공개 키의 길이는 복수의 공개 키를 스플라이싱함으로써 획득된 다중 공개 키의 길이보다 짧으며; 따라서, 집계 서명 및 집계 공개 키의 네트워크 전송 동안, 네트워크 전송 부담이 경감되고, 저장 동안 저장 공간이 감소되고, 서명 검사 동안, 서명될 메시지는 집계 공개 키 및 집계 서명을 사용하여 직접 검사되므로 서명 검사의 복잡도를 크게 줄인다.Advantageous effects produced by the technical solution of the embodiment of the present disclosure are as follows: an aggregate signature is generated by using sub-signatures of a plurality of signing parties, and an aggregate public key is generated based on the public keys of the plurality of signing parties; The length of the obtained aggregate signature is shorter than the length of the multi-signature obtained by splicing the plurality of sub-signatures, and the length of the aggregate public key is shorter than the length of the multi-public key obtained by splicing the plurality of public keys. and; Therefore, during network transmission of the aggregate signature and aggregate public key, the network transmission burden is relieved, the storage space is reduced during storage, and during signature checking, the message to be signed is directly checked using the aggregate public key and aggregate signature, so that the signature check greatly reduce the complexity of
본 발명의 실시예의 기술적 솔루션을 더 명확하게 설명하기 위해, 이하에서는 본 발명의 실시예를 설명하는 데 필요한 첨부된 도면에 대해 간략하게 설명한다. 당연히, 이하의 실시예의 첨부된 도면은 본 발명의 일부의 실시예에 지나지 않으며, 당업자라면 창조적 노력 없이 첨부된 도면으로부터 다른 도면을 도출해낼 수 있을 것이다.
도 1은 본 개시의 실시예에 따른 실행 환경에 대한 도면이다.
도 2는 본 개시의 실시예에 따른 서명 생성에 대한 흐름도이다.
도 3은 본 개시의 실시예에 따른 복수의 계정 주소 간의 이체 시나리오에 대한 개략도이다.
도 4는 본 개시의 실시예에 따른 서명 생성에 대한 흐름면이다.
도 5는 본 개시의 실시예에 따른 합의에 도달하는 프로세스에 대한 개략도이다.
도 6은 본 개시의 실시예에 따른 병렬 방식의 서명 생성에 대한 개략도이다.
도 7은 본 개시의 실시예에 따른 서명 생성에 대한 흐름도이다.
도 8은 본 개시의 실시예에 따른 복수의 계약 파티에 의해 계약을 개시하는 것에 대한 개략도이다.
도 9는 본 개시의 실시예에 따른 서명 생성 장치에 대한 개략적인 구조도이다.
도 10은 본 개시의 실시예에 따른 서명 생성 장치에 대한 개략적인 구조도이다.
도 11은 본 개시의 실시예에 따른 단말(1100)에 대한 개략적인 블록도이다.
도 12는 본 개시의 실시예에 따른 서버에 대한 개략적인 구조 블록도이다.In order to more clearly explain the technical solution of the embodiment of the present invention, the following briefly describes the accompanying drawings necessary to explain the embodiment of the present invention. Naturally, the accompanying drawings of the following embodiments are only some embodiments of the present invention, and those skilled in the art will be able to derive other drawings from the accompanying drawings without creative efforts.
1 is a diagram of an execution environment according to an embodiment of the present disclosure;
2 is a flowchart of signature generation according to an embodiment of the present disclosure;
3 is a schematic diagram of a transfer scenario between a plurality of account addresses according to an embodiment of the present disclosure;
4 is a flowchart for generating a signature according to an embodiment of the present disclosure.
5 is a schematic diagram of a process for reaching an agreement according to an embodiment of the present disclosure;
6 is a schematic diagram of signature generation in a parallel manner according to an embodiment of the present disclosure.
7 is a flowchart of signature generation according to an embodiment of the present disclosure.
8 is a schematic diagram for initiating a contract by a plurality of contracting parties according to an embodiment of the present disclosure;
9 is a schematic structural diagram of an apparatus for generating a signature according to an embodiment of the present disclosure.
10 is a schematic structural diagram of an apparatus for generating a signature according to an embodiment of the present disclosure.
11 is a schematic block diagram of a
12 is a schematic structural block diagram of a server according to an embodiment of the present disclosure.
본 개시의 목적, 기술적 솔루션 및 이점을 더 명확하게 하기 위해, 이하에서는 첨부된 도면을 참조해서 본 개시의 구현을 더 상세히 설명한다.In order to make the object, technical solution and advantage of the present disclosure more clear, the following describes the implementation of the present disclosure in more detail with reference to the accompanying drawings.
도 1에 도시된 데이터 공유 시스템을 참조하면, 데이터 공유 시스템(100)은 노드 간의 데이터 공유를 위한 시스템이다. 데이터 공유 시스템은 복수의 노드(101, 102, 103)를 포함할 수 있고, 복수의 노드(101)는 데이터 공유 시스템의 클라이언트 장치일 수 있고, 데이터 공유 시스템은 정보 및 데이터를 저장하기 위한 하나 이상의 블록 체인을 구성할 수 있다. 각각의 노드(101)는 정상적인 작업 동안 입력 정보를 수신할 수 있고, 수신된 입력 정보에 기초하여 데이터 공유 시스템에서 공유 데이터를 유지한다.Referring to the data sharing system shown in FIG. 1 , the data sharing system 100 is a system for sharing data between nodes. The data sharing system may include a plurality of
데이터 공유 시스템에서 정보 상호 연동을 보장하기 위해, 데이터 공유 시스템의 노드 사이에 정보 연결이 확립될 수 있어서, 정보 연결을 통해 노드 간에 정보가 전송될 수 있다. 노드들 사이의 통신이 수행될 수 있고 신뢰가 달성된다. 디지털 서명 기술에 의존해야 하며, 주로 신원 확인, 정보 인증 및 무결성 인증을 실행한다. 예를 들어, 데이터 공유 시스템의 임의의 노드가 입력 정보를 수신할 때, 이 노드의 검사가 성공한 후, 정보는 다른 노드로 브로드캐스트될 것이다. 노드 간 합의에 도달하는 프로세스에서, 노드는 서명을 확인해야 하며 특정 수의 노드 확인이 성공하면 합의에 도달할 수 있다. 합의에 도달한 후, 입력 정보는 스토리지의 공유 데이터로 사용되므로 데이터 공유 시스템의 모든 노드에 저장된 데이터가 일관된다. 데이터 공유 시스템은 거래 시스템일 수 있고, 거래 시스템은 금융 거래를 위한 시스템이다. 거래 시스템은 복수의 노드를 포함할 수 있다. 각 노드는 거래 중에 원장 데이터를 생성하고 그 원장 데이터를 기반으로 거래 시스템에서 공유 원장을 유지한다.In order to ensure information interworking in the data sharing system, an information connection can be established between the nodes of the data sharing system, so that information can be transmitted between the nodes through the information connection. Communication between nodes can be performed and trust is achieved. It must rely on digital signature technology, and mainly performs identity verification, information authentication and integrity authentication. For example, when any node in the data sharing system receives input information, after this node's check succeeds, the information will be broadcast to other nodes. In the process of reaching consensus among nodes, nodes must verify the signature, and consensus can be reached if a certain number of nodes verification is successful. After consensus is reached, the input information is used as shared data for storage, so the data stored on all nodes in the data sharing system is consistent. The data sharing system may be a trading system, and the trading system is a system for financial transactions. A trading system may include a plurality of nodes. Each node creates ledger data during transactions and maintains a shared ledger in the transaction system based on that ledger data.
블록 체인 기술을 적용하는 동안, 둘 이상의 사용자가 거래를 서명하여 블록 체인으로 보내려면 다중-서명 기술이 필요하다. 즉, 서명 집계 파티는 복수의 사용자의 서명 및 공개 키에 따라 집계 서명 및 집계 공개 키를 생성하고, 서명 검사 동안, 서명된 메시지는 집계 서명 및 집계 공개 키에 따라 검사되기만 하면 된다. 실제 적용 시나리오에서, 서명 생성 프로세스에서, 서명을 생성하는 트리거 명령을 수신한 후, 복수의 서명 파티는 난수를 선택하고 난수에 따라 고윳값을 생성한다. 서명 집계 파티는 서명될 메시지 및 복수의 서명 파티의 고윳값에 따라 메시지 요약을 생성한다. 복수의 서명 파티는 메시지 요약을 획득하고(메시지 요약은 서명될 메시지 및 고윳값에 따라 서명 집계 파티에 의한 계산을 통해 획득된다), 그런 다음 메시지 요약, 난수, 및 개인 키에 따라 하위 서명을 생성한다. 서명 집계 파티는 복수의 서명 파티의 공개 키 및 하위 서명을 획득한다. 그런 다음, 서명 집계 파티는 복수의 서명 파티의 공개 키에 따라 집계 공개 키를 생성한다. 서명 집계 파티는 복수의 하위 서명(예를 들어, 하위 서명의 합산 값) 및 메시지 요약에 따라 집계 서명을 생성한다.While applying blockchain technology, multi-signature technology is required for more than one user to sign a transaction and send it to the blockchain. That is, the signature aggregation party generates an aggregate signature and aggregate public key according to the signatures and public keys of a plurality of users, and during signature checking, the signed message only needs to be checked according to the aggregate signature and aggregate public key. In a practical application scenario, in the signature generation process, after receiving a trigger command to generate a signature, a plurality of signature parties select a random number and generate an eigenvalue according to the random number. The signature aggregation party generates a message digest according to the message to be signed and the values of the plurality of signature parties. A plurality of signing parties obtain a message digest (message digest is obtained through calculation by the signature aggregation party according to the message to be signed and an algorithm), and then generate a sub-signature according to the message digest, random number, and private key do. The signature aggregation party obtains public keys and sub-signatures of the plurality of signature parties. Then, the signing aggregation party generates the aggregation public key according to the public keys of the plurality of signing parties. The signature aggregation party generates an aggregate signature according to a plurality of sub-signatures (eg, the sum of the sub-signatures) and the message digest.
데이터 공유 시스템의 클라이언트 장치 및 노드는 난수, 하위 서명, 메시지 요약, 집계 서명 집계 공개 키 등을 저장하기 위해 적어도 하나의 데이터베이스를 추가로 가질 수 있다.The client devices and nodes of the data sharing system may further have at least one database for storing random numbers, sub-signatures, message digests, aggregate signature aggregate public keys, and the like.
이 솔루션은 3개의 구현 시나리오를 사용해서 이하에 상세히 설명한다.This solution is detailed below using three implementation scenarios.
도 2는 본 개시의 실시예에 따른 서명 생성에 대한 흐름도이다. 예를 들어, 방법은 데이터 공유 시스템에서 클라이언트 장치에 적용되고, 복수의 서명 파티는 클라이언트 장치에 의해 제공되는 복수의 계정 주소이다. 이 경우, 복수의 서명 파티 및 서명 집계 파티는 동일한 데이터 공유 시스템에서 동일한 클라이언트 장치 상에 있다. 즉, 복수의 서명 파티 및 서명 집계 파티는 동일한 실행 본문을 가지며, 서명될 메시지는 각각의 계정 주소에 대응하는 이체 금액 및 일부 다른 거래 정보이다. 작동 200-208은 아래에 상세히 설명된다.2 is a flowchart of signature generation according to an embodiment of the present disclosure; For example, the method is applied to a client device in a data sharing system, and a plurality of signing parties are a plurality of account addresses provided by the client device. In this case, the plurality of signature parties and signature aggregation parties are on the same client device in the same data sharing system. That is, the plurality of signing parties and the signature aggregation party have the same execution body, and the message to be signed is a transfer amount corresponding to each account address and some other transaction information. Operations 200-208 are detailed below.
200: 클라이언트 장치는 서명 생성 명령을 획득하고, 서명 생성 명령은 복수의 계정 주소로부터 적어도 하나의 계정 주소로 전달하도록 명령하고 복수의 계정 주소의 전달 수량을 지시하는 데 사용된다.200: The client device obtains a signature generation instruction, wherein the signature generation instruction is used to instruct delivery from the plurality of account addresses to the at least one account address and to indicate a delivery quantity of the plurality of account addresses.
도 3에 도시된 바와 같이, 사용자가 복수의 계정 주소를 가지고 있는 것으로 가정하면, 사용자가 복수의 계정 주소 내의 자산을 하나 이상의 목표 계정 주소에 이체해야 할 때, 복수의 계정은 복수의 서명 파티이다. 사용자가 클라이언트 장치를 작동시켜 거래를 수행할 때, 클라이언트 장치는 이체 요청을 수신한다. 이체 요청은 이 거래에서 서명될 메시지를 전달한다. 그런 다음, 서명 생성 명령이 트리거링되어, 클라이언트 장치는 서명을 생성하기 시작한다. 서명될 메시지는 현재 이체 요청일 수 있거나, 또는 현재 이체 요청에서 출금 이체 계좌(transfer-out account)로 사용되는 계정 주소, 각각의 계정 주소의 이체 금액 및 입금 이체 계좌(transfer-in account)로 사용되는 계정 주소일 수 있다.3 , assuming that the user has a plurality of account addresses, when the user needs to transfer assets in the plurality of account addresses to one or more target account addresses, the plurality of accounts is a plurality of signing parties . When the user operates the client device to perform a transaction, the client device receives the transfer request. The transfer request carries the message to be signed in this transaction. Then, a signature generation command is triggered, so that the client device starts to generate a signature. The message to be signed may be the current transfer request, or the account address used as the transfer-out account in the current transfer request, the transfer amount of each account address and the transfer-in account used as the transfer-in account. It may be an account address that is
201: 클라이언트 장치는 클라이언트 장치는 이체 계좌로 사용되는 복수의 계정 주소의 복수의 난수를 획득하고, 복수의 난수에 따라 복수의 계정 주소의 고윳값을 개별적으로 생성한다.201: The client device obtains a plurality of random numbers of a plurality of account addresses used as a transfer account, and individually generates a unique value of the plurality of account addresses according to the plurality of random numbers.
서명 생성 명령을 수신한 후, 클라이언트 장치에서 복수의 계정 주소를 구별하기 위해, 클라이언트 장치는 복수의 계정 주소에 대한 각각의 난수를 선택하거나, 복수의 계정 주소의 미리 저장된 각각의 난수를 취하며, 복수의 난수에 따라 복수의 계정 주소의 고윳값을 각각 생성한다.After receiving the signature generation command, in order to distinguish the plurality of account addresses in the client device, the client device selects respective random numbers for the plurality of account addresses, or takes pre-stored respective random numbers of the plurality of account addresses, Each of the eigenvalues of a plurality of account addresses is generated according to a plurality of random numbers.
구체적으로, 계정 주소를 예로 들어, 계정 주소의 실행 본체는 클라이언트 장치이고, 작동 200은 다음 동작 1 내지 동작 4를 포함할 수 있다.Specifically, taking an account address as an example, the execution body of the account address is a client device, and operation 200 may include the following
작동 1: 클라이언트 장치는 계정 주소에 대한 제1 값 및 제2 값 를 획득하고, 제1 값 및 제2 값 는 소수이고, 는 의 인수이고, 및 이다.Operation 1: The client device has a first value for the account address and a second value to obtain the first value and a second value is a prime number, Is is the argument of and to be.
클라이언트 장치는 의 범위 내의 소수를 선택하고 그 소수를 제1 값 으로 결정하고, 의 범위 내의 소수를 선택하고 그 소수를 제2 값 로 결정하므로, 제1 값 및 제2 값 는 가 의 인수임을 만족한다. 전술한 방식 외에, 클라이언트 장치는 관련 데이터베이스에 미리 저장되어 있는 제1 값 및 제2 값 을 또한 고려할 수 있다. 미리 저장되어 있는 제1 값 및 제2 값 는 모두 소수이며, 가 의 인수이고, 및 임을 만족한다.the client device Select a prime number within the range of and set the prime number to the first value to decide, Select a prime number within the range of Since it is determined as, the first value and a second value Is go It is satisfied that the argument of In addition to the above-described manner, the client device uses a first value stored in advance in a related database. and a second value can also be considered. Pre-stored first value and a second value are all prime numbers, go is the argument of and satisfied that
작동 2: 생성 기준(generation base) 를 획득하며, 는 이 로 정확하게 나누어질 수 있음을 만족한다.Operation 2: generation base to obtain, Is this It is satisfied that it can be accurately divided into .
클라이언트 장치는 무작위로 값을 선택하고, 그 값을 생성 기준 g로 결정하므로, 생성 기준 g는 이 로 정확하게 나누어질 수 있음을 만족한다. 대안으로, 클라이언트 장치는 관련 데이터베이스에 미리 저장되어 있는 생성 기준 g를 가져오고 그 생성 기준 g는 이 로 정확하게 나누어질 수 있음을 만족한다.Since the client device randomly selects a value and determines that value as the generation criterion g, the generation criterion g is this It is satisfied that it can be accurately divided into . Alternatively, the client device fetches the generation criterion g pre-stored in the relevant database and the generation criterion g is this It is satisfied that it can be accurately divided into .
작동 3: 난수를 획득하며, 난수의 값 범위는 이다.Operation 3: Obtain a random number, the range of values of the random number is to be.
클라이언트 장치는 의 범위 내의 값을 무작위로 선택하고, 그 값을 난수로 결정한다. 대안으로, 클라이언트 장치는 관련 데이터베이스에 미리 저장되어 있는 난수를 가져오고 그 난수는 의 범위 내에 있음을 만족한다.the client device A value within the range of is randomly selected, and the value is determined as a random number. Alternatively, the client device fetches a random number pre-stored in the relevant database and the random number is is satisfied that it is within the range of
작동 4: 난수, 생성 기준 및 제1 값에 따라 고윳값을 생성한다.Operation 4: Generate an eigenvalue according to the random number, the generation criterion and the first value.
난수, 생성 기준 및 제1 값에 따라 고윳값을 획득한 후, 클라이언트 장치는 다음 식(1)에 따라 계정 주소의 고윳값을 계산할 수 있다:After obtaining the eigenvalue according to the random number, the generation criterion and the first value, the client device may calculate the eigenvalue of the account address according to the following equation (1):
은 고윳값을 나타내고, 은 난수를 나타내고, 는 생성 기준을 나타내며, 는 제1 값을 나타낸다. represents the eigenvalue, represents a random number, represents the creation criteria, represents the first value.
클라이언트 장치는 작동 1 내지 작동 4에 따라 출금 이체 계좌로 사용되는 복수의 계정 주소에 대한 각각의 고윳값을 생성할 수 있다. 세부 사항은 여기서 다시 설명하지 않는다. 생성 프로세스는 병렬일 수 있다. 즉, 클라이언트 장치는 복수의 계정 주소에 대한 각각의 난수를 동시에 획득하고, 복수의 난수에 따라 복수의 계정 주소에 대한 각각의 고윳값을 생성한다. 생성 프로세스는 직렬일 수도 있다. 즉, 클라이언트 장치는 계정 주소에 대한 난수를 획득하고 난수에 따라 계정 주소에 대한 고윳값을 생성한다. 그런 다음, 클라이언트 장치는 모든 계정 주소에 대해 고윳값이 생성될 때까지 임의의 숫자에 따라 다음 계정 주소에 대한 고윳값을 생성하고, 그런 다음 작동이 종료된다. 이것은 여기에 제한되지 않는다.The client device may generate a respective epoch value for a plurality of account addresses used as a withdrawal and transfer account according to
202: 클라이언트 장치는 서명될 메시지 및 복수의 계정 주소의 고윳값을 획득하고, 메시지 요약을 생성하고, 상기 서명될 메시지는 출금 이체 계좌(transfer-out account)로 사용되는 계정 주소, 각각의 계정 주소의 이체 금액 및 입금 이체 계좌(transfer-in account)로 사용되는 계정 주소를 포함한다.202: The client device acquires a message to be signed and a plurality of account addresses, and generates a message digest, wherein the message to be signed is an account address used as a transfer-out account, each account address of the transfer amount and the account address used as the transfer-in account.
전술한 프로세스에 따라 계정 어드레스에 대한 각각의 고윳값을 생성한 후, 클라이언트 장치는 복수의 고윳값을 획득하고, 복수의 고윳값에 따라 집계 고윳값을 생성한다. 그런 다음, 클라이언트 장치는 획득된 집계 고윳값, 출금 이체 계좌로 사용된 계정 주소, 각각의 계정 주소의 이체 금액, 입금 이체 계좌로 사용된 계정 주소 및 미리 설정된 단방향 해시 함수(one-way hash function)에 따라 메시지 요약을 생성한다.After generating each eigenvalue for the account address according to the above-described process, the client device obtains a plurality of eigenvalues, and generates an aggregate eigenvalue according to the plurality of eigenvalues. Then, the client device determines the obtained aggregate value, the account address used as the withdrawal and transfer account, the transfer amount of each account address, the account address used as the deposit and transfer account, and a preset one-way hash function Generates a message summary according to
구체적으로, 작동 202는 이하의 작동 1 내지 작동 3을 포함할 수 있다.Specifically, operation 202 may include
작동 1: 클라이언트 장치는 복수의 계정 주소에 대한 각각의 고윳값 및 서명될 메시지를 획득한다.Operation 1: The client device obtains respective values and messages to be signed for a plurality of account addresses.
클라이언트 장치는 서명될 메시지로서 전송 요청을 직접 사용하거나, 전송 요청에서 출금 이체 계좌로 사용된 계정 주소, 각각의 계정 주소의 이체 금액 및 입금 이체 계좌로 사용된 계정 주소를 서명될 메시지로서 추출할 수 있다. 이 실시예에서는, 서명될 메시지가 출금 이체 계좌로 사용된 추출된 계정 주소, 각각의 계정 주소의 이체 금액 및 출금 이체 계좌로서 사용된 계정 주소인 예를 사용하여 설명이 제공된다.The client device may directly use the sending request as the message to be signed, or extract the account address used as the withdrawal transfer account, the transfer amount of each account address, and the account address used as the deposit transfer account in the transfer request as the message to be signed. have. In this embodiment, an explanation is provided using an example in which the message to be signed is an extracted account address used as a withdrawal transfer account, a transfer amount of each account address, and an account address used as a withdrawal transfer account.
이 동작에서, 클라이언트 장치는 작동 201에서 생성되는 계정 어드레스의 고윳값 및 제1 값을 미리 저장할 수 있다. 메시지 요약을 생성하기 전에, 클라이언트 장치는 계정 주소의 미리 저장된 고윳값 및 제1값을 획득할 수 있다.In this operation, the client device may store in advance the first value and the original value of the account address generated in operation 201 . Before generating the message digest, the client device may obtain a pre-stored value and a first value of the account address.
작동 2: 클라이언트 장치는 복수의 계정 어드레스의 각각의 고윳값 및 제1 값에 따라 집계 고윳값을 생성한다.Operation 2: The client device generates an aggregate eigenvalue according to each eigenvalue and the first value of the plurality of account addresses.
특정 계산 방식에서, 클라이언트 장치는 복수의 고윳값의 곱을 계산하고, 복수의 고윳값의 곱 및 제1 값에 따라 집계 고윳값을 생성한다. 또한, 전술한 계산 프로세스에서, 클라이언트 장치가 복수의 고윳값과 제1 값의 곱에 따라 집계 고윳값을 생성하는 프로세스는 모듈로 연산을 통해 수행될 수 있다. 계산식은 다음 식(2)일 수 있다.In a specific calculation manner, the client device calculates a product of a plurality of eigenvalues, and generates an aggregate eigenvalue according to the product of the plurality of eigenvalues and the first value. Also, in the above-described calculation process, a process in which the client device generates an aggregate eigenvalue according to a product of a plurality of eigenvalues and the first value may be performed through a modulo operation. The calculation formula may be the following formula (2).
은 집계 고윳값을 나타내고, 은 계정 주소의 총수를 나타내고, 는 i번째 계정 주소의 고윳값을 나타내며, mod는 모듈로 연산을 나타내며, 는 제1 값을 나타낸다. represents the aggregate eigenvalue, represents the total number of account addresses, represents the eigenvalue of the i-th account address, mod represents the modulo operation, represents the first value.
작동 3: 집계 고윳값, 서명될 메시지 및 미리 설정된 단방향 해시 함수에 따라 메시지 요약을 생성한다.Operation 3: Generate a message digest according to the aggregate eigenvalue, the message to be signed, and a preset one-way hash function.
메시지의 해시 값은 전술한 생성된 집계 고윳값, 서명될 메시지 및 미리 설정된 단방향 해시 함수에 따라 획득된다. 해시 값은 메시지 요약이다. 미리 설정된 단방향 해시 함수는 SHA256 보안 해시 함수일 수 있다.The hash value of the message is obtained according to the above-described generated aggregate eigenvalue, the message to be signed, and a preset one-way hash function. The hash value is a message digest. The preset one-way hash function may be a SHA256 secure hash function.
또한, 메시지 요약은 다음 식(3)에 따라 계산될 수 있다:Also, the message digest can be calculated according to the following equation (3):
는 메시지 요약을 나타내고, 는 해시 값 계산 연산을 나타내고, 은 서명될 메시지를 나타내며, 은 집계 고윳값을 나타낸다. represents the message summary, represents the hash value calculation operation, indicates the message to be signed, represents the aggregate eigenvalue.
203: 클라이언트 장치는 출금 이체 계좌로 사용되는 복수의 계정 주소의 개인 키 및 공개 키를 획득하고, 메시지 요약, 난수 및 개인 키에 따라 하위 서명을 생성한다.203: The client device acquires a private key and a public key of a plurality of account addresses used as a withdrawal and transfer account, and generates a sub-signature according to the message digest, the random number and the private key.
메시지 요약을 획득한 후, 클라이언트 장치는 전송할 준비가 된 계정 주소의 개인 키 및 공개 키를 획득할 수 있다. 개인 키 및 공개 키는 다음의 복수의 구현으로 획득될 수 있다: (1) 데이터베이스는 각각의 계정 주소의 개인 키 및 공개 키를 저장할 수 있고, 클라이언트 장치가 개인 키 및 공개 키를 필요로 할 때, 클라이언트 장치는 데이터베이스로부터 각각의 계정 주소의 개인 키 및 공개 키를 직접 얻을 수 있으며; (2) 클라이언트 장치는 각각의 계정 주소에 대한 개인 키 및 공개 키를 일시적으로 생성하며, 개인 키는 의 범위 내에 있으며, 는 위에서 획득된 제2 값이며, 공개 키는 개인 키, 생성 기준 및 제1 값에 따라 생성된다. 구체적인 계산식은 다음 식(4)일 수 있다:After obtaining the message digest, the client device may obtain the private key and public key of the account address ready to transmit. The private key and public key may be obtained in a plurality of implementations: (1) the database may store the private key and public key of each account address, and when the client device needs the private key and public key , the client device can directly obtain the private key and public key of each account address from the database; (2) The client device temporarily generates a private key and a public key for each account address, and the private key is is within the scope of is the second value obtained above, and the public key is generated according to the private key, the generation criterion, and the first value. A specific formula may be the following formula (4):
는 공개 키를 나타내고, 는 공개 키를 나타내고, 는 생성 기준을 나타내며, 는 제1 값을 나타낸다. represents the public key, represents the public key, represents the creation criteria, represents the first value.
그런 다음, 클라이언트 장치는 전술한 프로세스에서 생성된 메시지 요약, 난수 및 제2 값을 획득하고, 개인 키, 메시지 요약, 각각의 계정 주소의 난수 및 제2 값에 따라 각각의 계정 주소의 하위 서명을 계산한다. 계산 식은 다음 식(5)일 수 있다:Then, the client device obtains the message digest, the random number and the second value generated in the above-described process, and generates a sub-signature of each account address according to the private key, the message digest, the random number and the second value of each account address. Calculate. The calculation expression may be the following equation (5):
는 i번째 계정 주소의 하위 서명을 나타내고, 는 i번째 계정 주소의 난수를 나타내고, 는 메시지 요약을 나타내고, 는 i번째 계정 주소의 개인 키를 나타내고, 는 제2 값을 나타내며, mod는 모듈로 연산을 나타낸다. represents the sub-signature of the i-th account address, represents the random number of the i-th account address, represents the message summary, represents the private key of the i-th account address, denotes a second value, and mod denotes a modulo operation.
204: 클라이언트 장치는 복수의 계정 주소의 공개 키를 획득하고, 복수의 계정 주소의 공개 키에 따라 집계 공개 키를 생성한다.204: The client device acquires a public key of a plurality of account addresses, and generates an aggregate public key according to the public keys of the plurality of account addresses.
클라이언트 장치가 전술한 처리 프로세스에 따라 계정 주소에 대한 각각의 공개 키를 획득한 후, 클라이언트 장치는 공개 키의 곱 및 제1 값에 따라 집계 공개 키를 생성한다. 또한, 전술한 계산 프로세스에서, 클라이언트 장치는 계정 어드레스에 대한 각각의 제1 값을 획득하고, 복수의 공개 키의 곱을 계산하고, 복수의 공개 키의 곱 및 제1 값에 따라 모듈로 연산을 수행하며, 집계 공개 키를 생성한다. 그 계산은 다음 식(6)에 따라 수행될 수 있다:After the client device obtains each public key for the account address according to the processing process described above, the client device generates an aggregate public key according to the product of the public key and the first value. Further, in the above calculation process, the client device obtains each first value for the account address, calculates a product of a plurality of public keys, and performs a modulo operation according to the product of the plurality of public keys and the first value and generate an aggregate public key. The calculation can be performed according to the following equation (6):
는 집계 공개 키를 나타내고, 는 구적 연산을 나타내고, 은 계정 주소의 총수를 나타내고, 는 i번째 계정 주소의 공개 키를 나타내며, mod는 모듈로 연산을 나타내며, 는 제1 값을 나타낸다. represents the aggregate public key, represents a quadrature operation, represents the total number of account addresses, denotes the public key of the i-th account address, mod denotes the modulo operation, represents the first value.
205: 클라이언트 장치는 복수의 하위 서명의 합산 값 및 메시지 요약에 따라 집계 서명을 생성한다.205: The client device generates the aggregate signature according to the sum of the plurality of sub-signatures and the message digest.
전술한 작동 203을 통해, 클라이언트 장치는 계정 어드레스에 대한 각각의 하위 서명을 획득하고, 복수의 하위 서명의 합산 값을 획득하기 위해 하위 서명을 부가하고, 합산 값을 집계 하위 서명으로서 결정하며, 그런 다음 집계 하위 서명 및 메시지 요약에 따라 집계 서명을 생성한다.Through the operation 203 described above, the client device obtains each sub-signature for the account address, adds the sub-signature to obtain a sum value of the plurality of sub-signatures, determines the sum value as the aggregate sub-signature, and such Generates an aggregate signature based on the following aggregate sub-signature and message digest.
또한, 전술한 계산 프로세스에서, 복수의 하위 서명의 합산 값을 얻기 위해 계정 주소의 하위 서명이 부가되고, 모듈로 연산은 합산 값 및 제2 값에 대해 수행되고, 획득된 결과는 집계 하위 서명으로 결정되며, 계산은 다음 수학 식(7)에 따라 수행될 수 있다:Further, in the above calculation process, the sub-signature of the account address is added to obtain the sum value of the plurality of sub-signatures, a modulo operation is performed on the sum value and the second value, and the obtained result is an aggregate sub-signature. is determined, and the calculation can be performed according to the following equation (7):
는 집계 하위 서명을 나타내고, 는 합산 연산을 나타내고, 은 계정 주소의 총수를 나타내고, 는 i번째 계정 주소의 하위 서명을 나타내며, mod는 모듈로 연산을 나타내며, 는 제2 값을 나타낸다. represents the aggregate subsignature, represents the summation operation, represents the total number of account addresses, denotes the subsignature of the i-th account address, mod denotes the modulo operation, represents the second value.
전술한 과정을 통해 집계 하위 서명을 결정한 후, 집계 하위 서명과 메시지 요약을 스플라이싱하고, 스플라이싱을 통해 얻은 결과를 집계 서명으로 결정한다. 전술한 과정을 통해 집계 하위 서명을 결정할 때, 집계 하위 서명은 하위 서명의 합산 값에 따라 생성되기 때문에, 획득된 집계 하위 서명의 길이는 스플라이싱 후 복수의 하위 서명의 길이보다 훨씬 짧다. 그러므로 집계 하위 서명에 따라 획득된 집계 서명의 길이는 스플라이싱을 통해 획득된 서명의 길이보다 짧고, 저장 동안 저장 공간이 감소될 수 있으며, 집계 서명의 네트워크 전송 동안, 네트워크 전송 부담이 경감된다.After determining the aggregate sub-signature through the above process, the aggregate sub-signature and the message digest are spliced, and the result obtained through splicing is determined as the aggregate signature. When determining the aggregate sub-signature through the above process, since the aggregate sub-signature is generated according to the sum of the sub-signatures, the length of the obtained aggregate sub-signature is much shorter than the length of the plurality of sub-signatures after splicing. Therefore, the length of the aggregate signature obtained according to the aggregate sub-signature is shorter than the length of the signature obtained through splicing, the storage space can be reduced during storage, and the network transmission burden is reduced during network transmission of the aggregate signature.
전술한 동작에서, 고윳값, 메시지 요약, 하위 서명, 집계 서명, 집계 공개 키 등은 계산을 통해 획득될 수 있고, 클라이언트 장치는 획득된 고윳값, 메시지 요약, 하위 서명, 집계 서명, 집계 공개 키 등을 저장할 수 있다. 저장 동안, 클라이언트 장치는 생성된 모든 결과를 관련 데이터베이스에 저장하거나, 그 결과를 저장을 위해 각각의 계정 주소와 결합할 수 있으며, 이것은 여기에서 제한되지 않는다.In the above-described operation, an eigenvalue, a message digest, a subsignature, an aggregate signature, an aggregate public key, etc. may be obtained through calculation, and the client device determines the obtained eigenvalue, a message digest, a subsignature, an aggregate signature, an aggregate public key, and the like. etc. can be saved. During storage, the client device may store all generated results in a related database, or combine the results with respective account addresses for storage, without limitation herein.
집계 서명 및 집계 공개 키를 생성하는 전술한 프로세스는 병렬일 수 있다. 즉, 클라이언트 장치는 모든 계정 주소의 각각의 하위 서명을 동시에 획득하고, 복수의 하위 서명에 따라 집계 하위 서명을 생성하고, 그런 다음 집계 하위 서명 및 메시지 요약에 따라 집계 서명을 생성한다. 유사하게, 클라이언트 장치는 모든 계정 주소의 각각의 공개 키를 동시에 획득하고, 복수의 공개 키에 따라 집계 공개 키를 생성한다. 선택적으로, 집계 서명 및 집계 공개 키를 생성하는 전술한 프로세스는 또한 직렬일 수 있다. 즉, 클라이언트 장치는 제1 계정 주소의 하위 서명 및 제2 계정 주소의 하위 서명을 획득하고, 2개의 하위 서명에 따라 부분 집계 하위 서명을 생성한다. 그런 다음, 클라이언트 장치는 제3 계정 주소의 하위 서명을 획득하고, 전술한 부분 집계 하위 서명 및 하위 서명에 따라 새로운 부분 집계 하위 서명을 생성한다. 그런 다음, 클라이언트 장치는 제4 계정 주소의 하위 서명을 획득하고, 모든 계정 주소의 하위 서명이 집계 하위 서명을 생성하는 데 참여할 때까지 전술한 부분 집계 하위 서명 및 하위 서명 등에 따라 새로운 부분 집계 하위 서명을 생성하며, 그런 다음, 생성된 통합 하위 서명 및 메시지 요약에 따라 통합 서명이 생성된다. 이것은 여기에 제한되지 않는다.The aforementioned process of generating the aggregate signature and aggregate public key may be parallel. That is, the client device simultaneously obtains each sub-signature of all account addresses, generates an aggregate sub-signature according to the plurality of sub-signatures, and then generates an aggregate signature according to the aggregate sub-signature and the message digest. Similarly, the client device simultaneously obtains respective public keys of all account addresses, and generates an aggregate public key according to the plurality of public keys. Optionally, the process described above for generating the aggregate signature and aggregate public key may also be serial. That is, the client device obtains a sub-signature of the first account address and a sub-signature of the second account address, and generates a partially aggregated sub-signature according to the two sub-signatures. Then, the client device obtains the sub-signature of the third account address, and generates a new partially aggregated sub-signature according to the aforementioned partial aggregate sub-signature and sub-signature. Then, the client device obtains a sub-signature of the fourth account address, and until the sub-signatures of all account addresses participate in generating the aggregate sub-signature, a new partial aggregate sub-signature according to the aforementioned partial aggregate sub-signature and sub-signature, etc. , and then a unified signature is generated according to the generated unified sub-signature and message digest. It is not limited here.
206: 클라이언트 장치는 데이터 공유 시스템에서 임의의 노드에 메시지, 집계 공개 키 및 집계 서명을 전송한다.206: The client device sends the message, the aggregate public key and the aggregate signature to any node in the data sharing system.
이 작동에서, 집계 서명은 데이터 공유 시스템으로 전송하기 위해 메시지에 추가될 수 있거나, 메시지 및 집계 서명은 데이터 공유 시스템으로 함께 전송될 수 있다. 이것은 여기에 제한되지 않는다.In this operation, the aggregate signature may be added to the message for transmission to the data sharing system, or the message and aggregate signature may be transmitted together to the data sharing system. It is not limited here.
전술한 프로세스에서 집계 공개 키 및 집계 서명이 생성된 후, 클라이언트 장치는 메시지, 집계 공개 키 및 집계 서명을 데이터 공유 시스템에 전송하고, 데이터 공유 시스템은 메시지에 대한 서명 검사를 수행한다.After the aggregate public key and aggregate signature are generated in the above process, the client device sends the message, aggregate public key and aggregate signature to the data sharing system, and the data sharing system performs signature check on the message.
207: 데이터 공유 시스템 내의 임의의 노드는 집계 공개 키 및 집계 서명에 따라 메시지에 대해 서명 검사를 수행한다.207: Any node in the data sharing system performs signature check on the message according to the aggregate public key and the aggregate signature.
구체적으로, 클라이언트 장치는 메시지, 생성 기준 및 각각의 계정 주소의 제1 값, 그리고 집계 공개 키 및 집계 서명을 데이터 공유 시스템에 전송하고, 데이터 공유 시스템은 정보를 시스템의 노드에 전송한다. 정보를 수신하는 노드는 메시지, 생성 기준 및 각각의 계정 주소의 제1 값, 그리고 집계 공개 키 및 집계 서명에 따라 메시지에 대한 서명 검사를 수행한다. 서명 검사 동안, 다음 식(8)이 성립되는지를 판정하고; 성립하면, 서명 검사가 성공이고 그렇지 않으면 서명 검사가 실패이다.Specifically, the client device sends the message, the generation criterion and the first value of each account address, and the aggregate public key and the aggregate signature to the data sharing system, and the data sharing system sends the information to the node of the system. The node receiving the information performs a signature check on the message according to the message, the creation criteria and the first value of each account address, and the aggregate public key and aggregate signature. During the signature check, it is determined whether the following equation (8) holds; If so, the signature check succeeds, otherwise the signature check fails.
는 메시지 요약을 나타내고, 는 해시 값 계산 연산을 나타내고, 은 메시지를 나타내며, 는 생성 기준을 나타내고, 는 집계 하위 서명을 나타내고, 는 집계 공개 키를 나타내며, mod는 모듈로 연산을 나타내며, 는 제1 값을 나타낸다. represents the message summary, represents the hash value calculation operation, indicates a message, represents the creation criterion, represents the aggregate subsignature, denotes aggregate public key, mod denotes modulo operation, represents the first value.
전술한 서명 검사 방법의 정확도는 수학적 방법을 사용해서 증명될 수 있으며, 특정한 증명 방법은 다음과 같을 수 있다:The accuracy of the signature checking method described above may be verified using a mathematical method, and a specific proof method may be as follows:
전술한 계산 방법에 따르면, 식(8) 은 와 같고, 유클리드 알고리즘에 따라 다음이 획득될 수 있다:According to the above calculation method, equation (8) silver , and according to the Euclidean algorithm, the following can be obtained:
그러므로 이 유도될 수 있다. 은 와 같기 때문에, 가 성립한다. 그러므로 전술한 서명 검사 방법은 정확하다.therefore This can be induced. silver Because it is equal to is established Therefore, the signature checking method described above is accurate.
208. 데이터 공유 시스템은 서명 검사 결과, 집계 공개 키 및 집계 서명을 메시지에 부가한다.208. The data sharing system appends the signature check result, the aggregate public key and the aggregate signature to the message.
데이터 공유 시스템은 서명 검사 결과, 집계 공개 키 및 집계 서명을 메시지에 부가하고, 부가 후에 획득된 메시지를 블록 체인에 부가한다.The data sharing system adds the signature check result, the aggregate public key and the aggregate signature to the message, and adds the obtained message to the blockchain after the addition.
본 출원에서, 집계 서명은 복수의 서명 파티의 하위 서명을 사용하여 생성되고, 집계 공개 키는 복수의 서명 파티의 공개 키에 기초하여 생성되며; 획득된 집계 서명의 길이는 복수의 하위 서명을 스플라이싱함으로써 획득된 다중 서명의 길이보다 짧고, 집계 공개 키의 길이는 복수의 공개 키를 스플라이싱함으로써 획득된 다중 공개 키의 길이보다 짧으며; 따라서, 집계 서명 및 집계 공개 키의 네트워크 전송 동안, 네트워크 전송의 부담이 경감되고, 저장 동안 저장 공간이 감소되고, 서명 검사 동안, 서명된 메시지는 집계 공개 키 및 집계를 사용하여 직접 검사되므로 서명 검사의 복잡도를 크게 줄이다. 또한, 전송 시나리오에서 전술한 서명 생성 방법의 특정 적용이 제공되므로, 서명 생성의 실행 가능성이 향상되고, 이체 시나리오에서 서명 생성 및 서명 검사의 효율성도 향상된다.In the present application, the aggregate signature is generated using sub-signatures of the plurality of signing parties, and the aggregate public key is generated based on the public keys of the plurality of signing parties; The length of the obtained aggregate signature is shorter than the length of the multi-signature obtained by splicing the plurality of sub-signatures, the length of the aggregate public key is shorter than the length of the multi-public key obtained by splicing the plurality of public keys, and ; Therefore, during network transmission of the aggregate signature and aggregate public key, the burden of network transmission is relieved, the storage space is reduced during storage, and during signature checking, the signed message is directly checked using the aggregate public key and aggregate, so that the signature check greatly reduce the complexity of In addition, since a specific application of the above-described signature generation method is provided in the transmission scenario, the feasibility of signature generation is improved, and the efficiency of signature generation and signature checking in the transfer scenario is also improved.
도 4는 본 발명의 일 실시예에 따른 서명 생성 방법의 흐름도이다. 예를 들어, 이 방법은 데이터 공유 시스템의 리더 노드에 적용된다. 이 경우 서명 집계 파티는 데이터 공유 시스템의 리더 노드이다. 복수의 서명 파티 각각은 데이터 공유 시스템에서 팔로워 노드이다. 임의의 팔로워 노드는 데이터 공유 시스템에서 리더 노드에 의해 브로드캐스트된 하트비트 정보(heartbeat information)에 따라, 리더 노드가 정상적으로 실행되고 리더 노드의 지시에 기초하여 로그를 복사할 수 있는 것으로 결정할 수 있다. 팔로워 노드가 일정 기간 동안 리더 노드의 하트비트 정보를 수신하지 않으면, 팔로워 노드는 리더 노드의 실행 중 결함이 있다고 결정할 수 있으며, 팔로워 노드는 데이터 공유 노드의 각각의 노드에 투표 요청(voting request)을 브로드캐스트한다. 클러스터에서 절반 이상의 노드 장치에 대한 투표를 받으면 팔로어 노드는 실행을 위해 리더 상태로 전환하고 클러스터의 각 노드 장치에 하트비트 정보를 브로드캐스트하고 클라이언트 장치와의 상호 작용에 따라 로그를 저장하며, 각 노드에 로그를 복사하도록 명령한다. 이러한 작업은 아래에 자세히 설명된다.4 is a flowchart of a signature generation method according to an embodiment of the present invention. For example, this method applies to the leader node of a data sharing system. In this case, the signature aggregation party is the leader node of the data sharing system. Each of the plurality of signing parties is a follower node in the data sharing system. Any follower node may determine, according to heartbeat information broadcast by the leader node in the data sharing system, that the leader node is running normally and can copy the log based on the leader node's instruction. If the follower node does not receive the heartbeat information of the leader node for a certain period of time, the follower node may determine that there is a defect in the execution of the leader node, and the follower node sends a voting request to each node of the data sharing node. broadcast Upon receiving votes for more than half of the node devices in the cluster, the follower node enters the leader state for execution, broadcasts heartbeat information to each node device in the cluster, and stores a log based on interactions with client devices, each node command to copy the log to . These operations are described in detail below.
400: 리더 노드는 클라이언트 장치의 입력 정보를 전달하는 합의 확인 패킷을 각각의 팔로워 노드에 전송한다.400: The leader node transmits to each follower node a consensus acknowledgment packet carrying input information of the client device.
신뢰할 수 있는 블록 체인에서 bft-raft(consensus algorithm)를 사용하여 노드 사이의 합의에 도달할 때, 도 5에 도시된 바와 같이, 리더 노드는 합의 확인 패킷을 각각의 팔로어 노드에 전송한다. 합의 확인 패킷은 노드 사이의 패킷에 대한 합의에 도달한 후에 저장되어야 하는 데이터 패킷이며, 합의 확인 패킷 t는 서명될 메시지를 전달한다. 이 실시예에서, 서명될 메시지가 전송 메시지와 같은 클라이언트 장치의 입력 정보일 수 있는 예를 사용하여 설명이 제공된다.When consensus among nodes is reached using bft-raft (consensus algorithm) in a trusted block chain, as shown in FIG. 5, the leader node sends a consensus confirmation packet to each follower node. The consensus acknowledgment packet is a data packet that must be stored after reaching an agreement on the packet between nodes, and the consensus acknowledgment packet t carries the message to be signed. In this embodiment, an explanation is provided using an example in which the message to be signed may be input information of the client device, such as a transmit message.
401: 각각의 팔로워 노드는 합의 확인 패킷을 수신한다.401: Each follower node receives a consensus confirmation packet.
리더 노드가 합의 확인 패킷을 전송한 후, 각각의 팔로워 노드는 합의 확인 패킷을 수신한다. 합의 확인 패킷은 클라이언트 장치의 입력 정보를 전달하고, 클라이언트 장치의 입력 정보에 서명하도록 각각의 팔로워 노드를 트리거링한다.After the leader node sends a consensus acknowledgment packet, each follower node receives a consensus acknowledgment packet. The consensus confirmation packet carries the input information of the client device, and triggers each follower node to sign the input information of the client device.
402: 각각의 팔로워 노드는 합의 확인 패킷으로부터 클라이언트 장치의 입력 정보를 획득한다.402: Each follower node obtains input information of the client device from the consensus acknowledgment packet.
리더 노드에 의해 송신된 합의 확인 패킷을 수신한 후, 각각의 팔로워 노드는 합의 확인 패킷을 파싱하고 클라이언트 장치의 입력 정보를 획득한다.After receiving the consensus acknowledgment packet sent by the leader node, each follower node parses the consensus acknowledgment packet and obtains the input information of the client device.
403: 각각의 팔로워 노드는 각각의 공개 키 및 개인 키를 획득한다.403: Each follower node obtains a respective public key and a private key.
각각의 팔로워 노드가 전술한 프로세스에서 클라이언트 장치의 입력 정보를 획득한 후, 각각의 팔로워 노드는 각각의 공개 키 및 개인 키를 획득하고, 그 획득 방법은 작동 203을 참조해서 처리될 수 있으며, 이에 대해서는 여기서 다시 설명하지 않는다.After each follower node obtains the input information of the client device in the above-described process, each follower node obtains a respective public key and a private key, the method of obtaining it may be processed with reference to operation 203, where will not be explained again here.
404: 리더 노드는 각각의 팔로워 노드의 공개 키를 획득한다.404: The leader node acquires the public key of each follower node.
전술한 작동이 완료된 후, 리더 노드는 각각의 팔로어 노드의 공개 키를 획득한다. 리더 노드는 다음의 복수의 구현들에서 각각의 팔로워 노드의 공개 키를 획득할 수 있다: (1) 각 팔로워 노드의 공개 키는 리더 노드의 데이터베이스에 저장될 수 있고, 필요할 경우 리더 노드는 데이터베이스에서 각각의 계정 주소의 공개 키를 직접 획득할 수 있다. (2) 각각의 팔로어 노드는 각각의 공개 키 및 개인 키를 각각의 데이터베이스에 저장할 수 있으며, 각각의 공개 키를 획득한 후, 각각의 팔로어 노드는 공개 키를 리더 노드로 전송한다. 이 경우, 팔로어 노드가 처음으로 공개 키를 전송한 후, 리더 노드는 팔로어 노드의 공개 키를 저장할 수 있고, 다음에 리더 노드가 팔로어 노드의 공개 키를 필요로 할 때 처리를 위해 전술한 구현 (1)에 대한 참조가 이루어질 수 있다. (3) 각각의 팔로워 노드는 개인 키 및 공개 키를 일시적으로 생성하고, 생성 계산 방법에 대한 전술한 작동 203을 참조할 수 있으며, 세부 사항은 여기서 다시 설명하지 않는다. 그런 다음, 각각의 팔로어 노드는 생성된 공개 키를 리더 노드로 전송한다. 이 경우, 팔로어 노드가 처음으로 공개 키를 전송한 후, 리더 노드는 팔로어 노드의 공개 키를 저장할 수 있고, 다음에 리더 노드가 팔로어 노드의 공개 키를 필요로 할 때 처리를 위해 전술한 구현 (1)에 대한 참조가 이루어질 수 있다. 세부 사항은 여기서 다시 설명하지 않는다.After the above operation is completed, the leader node acquires the public key of each follower node. The leader node may obtain the public key of each follower node in the following plurality of implementations: (1) The public key of each follower node may be stored in a database of the leader node, and if necessary, the leader node You can directly obtain the public key of each account address. (2) Each follower node may store each public key and private key in each database, and after obtaining each public key, each follower node transmits the public key to the leader node. In this case, after the follower node transmits the public key for the first time, the leader node may store the public key of the follower node, and then implement the above-described implementation ( Reference to 1) may be made. (3) Each follower node temporarily generates a private key and a public key, and may refer to the above-described operation 203 for a generation calculation method, details are not described herein again. Then, each follower node transmits the generated public key to the leader node. In this case, after the follower node transmits the public key for the first time, the leader node may store the public key of the follower node, and then implement the above-described implementation ( Reference to 1) may be made. Details are not described again here.
405: 각각의 팔로워 노드는 각각의 난수를 획득하고, 각각의 난수에 따라 각각의 고윳값을 생성한다.405: Each follower node obtains a respective random number, and generates a respective eigenvalue according to each random number.
각각의 팔로워 노드가 난수를 획득하는 방법은 작동 201에서 작동 3에 따라 처리될 수 있으며, 각각의 팔로워 노드가 난수에 따라 고윳값을 생성하는 방법은 작동 201에서 작동 4에 따라 처리될 수 있다. 이에 대해서는 여기서 다시 설명하지 않는다. 각각의 고윳값을 생성한 후, 각각의 팔로워 노드는 각각의 고윳값을 리더 노드에 전송한다.A method for each follower node to obtain a random number may be processed according to operation 3 in operation 201 , and a method for each follower node to generate an eigenvalue according to a random number may be processed according to operation 4 in operation 201 . This will not be explained again here. After generating each eigenvalue, each follower node sends each eigenvalue to the leader node.
406: 각각의 팔로워 노드는 각각 생성된 고윳값을 리더 노드에 전송한다.406: Each follower node transmits each generated eigenvalue to the leader node.
407: 각각의 팔로워 노드에 의해 송신된 각각의 고윳값을 수신한 후, 리더 노드는 클라이언트 장치의 입력 정보 및 각각의 팔로워 노드의 고윳값에 따라 메시지 요약을 생성한다.407: After receiving each eigenvalue sent by each follower node, the leader node generates a message digest according to the input information of the client device and the eigenvalue of each follower node.
메시지 요약을 생성하는 계산 프로세스는 작동 202에 따라 처리될 수 있으며, 이에 대해서는 여기서 다시 설명하지 않는다. 메시지 요약을 생성한 후, 리더 노드는 각각의 팔로워 노드에 메시지 요약을 전송한다.The calculation process for generating the message digest may be processed according to operation 202, which is not described herein again. After generating the message digest, the leader node sends the message digest to each follower node.
408: 리더 노드는 데이터 공유 시스템에서 각각의 팔로워 노드에 메시지 요약을 전송한다.408: The leader node sends a message digest to each follower node in the data sharing system.
409: 각각의 팔로워 노드는 메시지 요약, 난수 및 개인 키에 따라 하위 서명을 생성한다.409: Each follower node generates a sub-signature according to the message digest, random number and private key.
각각의 팔로워 노드가 하위 서명을 생성하는 계산 프로세스는 작동 203에 따라 처리될 수 있으며, 이에 대해서는 여기서 다시 설명하지 않는다. 각각의 팔로워 노드가 전술한 작동에서 각각의 하위 서명을 생성한 후, 각각의 팔로워 노드는 각각의 하위 서명을 리더 노드에 전송한다.The calculation process in which each follower node generates a sub-signature may be processed according to operation 203, which is not described herein again. After each follower node generates each sub-signature in the above operation, each follower node sends each sub-signature to the leader node.
410: 리더 노드는 각각의 팔로워 노드에 의해 송신된 공개 키를 수신하고, 각각의 팔로워 노드의 공개 키에 따라 집계 공개 키를 생성한다.410: The leader node receives the public key sent by each follower node, and generates an aggregate public key according to the public key of each follower node.
리더 노드가 집계 공개 키를 생성하는 계산 프로세스는 작동 204에 따라 처리될 수 있으며, 이에 대해서는 여기서 다시 설명하지 않는다.The calculation process by which the leader node generates the aggregate public key may be processed according to operation 204, which is not described herein again.
411: 리더 노드는 하위 서명의 합산 값 및 메시지 요약에 따라 집계 서명을 생성한다.411: The leader node generates an aggregate signature according to the sum of the sub-signatures and the message digest.
리더 노드가 집계 서명을 생성하는 계산 프로세스는 작동 205에 따라 처리될 수 있으며, 이에 대해서는 여기서 다시 설명하지 않는다.The calculation process by which the leader node generates the aggregate signature may be processed according to operation 205, which is not described herein again.
412: 리더 노드는 각각의 팔로워 노드에 집계 공개 키 및 집계 서명을 전송한다.412: The leader node sends the aggregate public key and the aggregate signature to each follower node.
리더 노드는 생성된 집계 공개 키 및 집계 서명을 합의 확인 패킷에 부가하고, 그런 다음 합의 확인 패킷을 각각의 팔로워 노드에 전송한다. 각각의 팔로워 노드는 합의 확인 패킷을 파싱하고, 집계 공개 키, 집계 서명 및 클라이언트 장치의 입력 정보를 추출한다. 그런 다음 각각의 팔로워 노드는 집계 공개 키 및 집계 서명에 따라 메시지에 대해 서명 검사를 수행한다. 서명 검사는 작동 207을 참조해서 처리될 수 있으며, 이에 대해서는 여기서 다시 설명하지 않는다.The leader node adds the generated aggregate public key and aggregate signature to the consensus confirmation packet, and then sends the consensus confirmation packet to each follower node. Each follower node parses the consensus confirmation packet, and extracts the aggregate public key, aggregate signature, and input information of the client device. Each follower node then performs signature checking on the message according to the aggregate public key and aggregate signature. Signature checking may be processed with reference to operation 207, which is not described herein again.
413: 모든 팔로워 노드에 의해 메시지 노드에 대한 서명 검사가 수행된 후, 리더 노드는 합의에 도달하고, 각각의 노드는 합의 확인 패킷에서의 클라이언트 장치의 입력 정보, 집계 서명 및 집계 공개 키를 저장한다.413: After signature check of the message node is performed by all the follower nodes, the leader node reaches a consensus, and each node stores the input information of the client device in the consensus confirmation packet, the aggregate signature and the aggregate public key .
집계 공개 키 및 집계 서명에 따라 각 팔로워 노드가 메시지에서 서명 검사를 성공적으로 수행한 후 노드 간에 합의에 도달한다. 그런 다음, 각각의 팔로어 노드는 합의 확인 패킷 내의 클라이언트 장치의 입력 정보, 집계 서명 및 집계 공개 키를 저장한다.According to the aggregation public key and the aggregation signature, consensus is reached between the nodes after each follower node successfully performs a signature check on the message. Then, each follower node stores the input information of the client device, the aggregate signature and the aggregate public key in the consensus confirmation packet.
전술한 프로세스에서 획득된 집계 서명의 길이는 스플라이싱을 통해 획득된 서명의 길이보다 짧고, 집계 공개 키의 길이는 스플라이싱을 통해 획득된 공개 키의 길이보다 짧다. 따라서, 합의 프로세스에서, 집계 서명의 네트워크 전송 동안, 네트워크 전송의 부담이 경감될 수 있고, 메시지에 대해 서명 검사가 수행될 때, 서명 검사의 복잡성이 감소되도록 집계 공개 키 및 집계 서명에 따라서만 메시지에 대한 서명 검사가 수행될 필요가 있다.The length of the aggregate signature obtained in the above process is shorter than the length of the signature obtained through splicing, and the length of the aggregate public key is shorter than the length of the public key obtained through splicing. Therefore, in the consensus process, during the network transmission of the aggregate signature, the burden of network transmission can be reduced, and when the signature check is performed on the message, the message only according to the aggregate public key and the aggregate signature so that the complexity of the signature check is reduced. A signature check needs to be performed.
집계 서명 및 집계 공개 키를 생성하는 프로세스는 병렬일 수 있다. 도 6에 도시된 바와 같이, 리더 노드는 복수의 하위 서명에 따라 집계 하위 서명을 생성한 후, 집계 하위 서명 및 메시지 요약에 따라 집계 서명을 생성한다. 유사하게, 리더 노드는 복수의 공개 키에 따라 통합 공개 키를 생성한다. 선택적으로, 집계 서명 및 집계 공개 키를 생성하는 프로세스는 직렬일 수 있다. 즉, 제1 팔로어 노드는 그 하위 서명을 획득한 후 이를 제2 팔로어 노드로 전송하며; 제2 팔로어 노드는 제1 팔로어 노드의 하위 서명 및 제2 팔로어 노드의 하위 서명을 획득하고, 부분 집계 하위 서명을 생성하고, 그런 다음, 부분 집계 하위 서명을 제3 팔로어 노드로 전송하고; 제3 팔로어 노드는 제2 팔로어 노드에 의해 전송된 부분 집계 하위 서명 및 제3 팔로어 노드의 하위 서명을 획득하고, 새로운 부분 집계 하위 서명을 생성하며, 그런 다음, 새로운 부분 집계 하위 서명을 제4 팔로어 노드에 전송하고; 이와 같이 계속함으로써 마지막 팔로워 노드가 새로운 부분 집계 하위 서명을 생성하고, 부분 집계 하위 서명을 리더 노드로 전송하며; 리더 노드는 부분 집계 하위 서명을 수신하고, 부분 집계 하위 서명을 집계 하위 서명으로서 결정하고, 그런 다음 생성된 집계 하위 서명 및 메시지 요약에 따라 집계 서명을 생성한다. 이것은 여기에 제한되지 않는다.The process of generating the aggregate signature and aggregate public key may be parallel. As shown in FIG. 6 , the leader node generates an aggregate sub-signature according to the plurality of sub-signatures, and then generates an aggregate signature according to the aggregate sub-signature and message digest. Similarly, the leader node generates a unified public key according to the plurality of public keys. Optionally, the process of generating the aggregate signature and aggregate public key may be serial. That is, the first follower node obtains the sub-signature and sends it to the second follower node; the second follower node obtains the sub-signature of the first follower node and the sub-signature of the second follower node, generates a partially aggregated sub-signature, and then sends the partially aggregated sub-signature to the third follower node; The third follower node obtains the partial aggregate sub-signature sent by the second follower node and the sub-signature of the third follower node, generates a new partial aggregate sub-signature, and then sends the new partial aggregate sub-signature to the fourth follower. send to the node; By continuing in this way, the last follower node generates a new partial aggregate sub-signature, and sends the partial aggregate sub-signature to the leader node; The leader node receives the partial aggregate sub-signature, determines the partial aggregate sub-signature as the aggregate sub-signature, and then generates the aggregate signature according to the generated aggregate sub-signature and message digest. It is not limited here.
본 출원에서, 집계 서명은 복수의 서명 파티의 하위 서명을 사용하여 생성되고, 집계 공개 키는 복수의 서명 파티의 공개 키에 기초하여 생성되고; 획득된 집계 서명의 길이는 복수의 하위 서명을 스플라이싱함으로써 획득된 다중 서명의 길이보다 짧고, 집계 공개 키의 길이는 복수의 공개 키를 스플라이싱함으로써 획득된 다중 공개 키의 길이보다 짧으며; 따라서, 집계 서명 및 집계 공개 키의 네트워크 전송 동안, 네트워크 전송의 부담이 경감되고, 저장 동안 저장 공간이 감소되고, 서명 검사 동안, 서명된 메시지는 집계 공개 키 및 집계 서명을 사용하여 직접 검사되므로 서명 검사의 복잡성을 크게 줄인다. 또한, 합의 시나리오에서의 전술한 서명 생성 방법의 특정 적용이 제공되어 서명 생성의 실행 가능성이 개선되고, 합의 시나리오에서의 서명 생성 및 서명 검사의 효율성도 개선된다.In the present application, the aggregate signature is generated using sub-signatures of the plurality of signing parties, and the aggregate public key is generated based on the public keys of the plurality of signing parties; The length of the obtained aggregate signature is shorter than the length of the multi-signature obtained by splicing the plurality of sub-signatures, the length of the aggregate public key is shorter than the length of the multi-public key obtained by splicing the plurality of public keys, and ; Therefore, during network transmission of the aggregate signature and aggregate public key, the burden of network transmission is relieved, the storage space is reduced during storage, and during signature checking, the signed message is directly checked using the aggregate public key and aggregate signature, so that the signature It greatly reduces the complexity of the inspection. In addition, a specific application of the above-described signature generation method in a consensus scenario is provided to improve the feasibility of signature generation, and to improve the efficiency of signature generation and signature checking in a consensus scenario.
도 7은 본 개시의 실시예에 따른 서명 생성에 대한 흐름도이다. 예를 들어, 이 방법은 데이터 공유 시스템에서 클라이언트 장치에 적용되고, 복수의 서명 파티 중 어느 하나가 위치하는 클라이언트 장치는 집계 서명을 실행하는 실행 본체로서 사용된다. 이 경우, 설명을 용이하게 하기 위해 지능형 계약에 참여하는 클라이언트 장치에서 서명 집계 파티로 사용되는 클라이언트 장치를 제1 클라이언트 장치라고 하며, 지능형 계약에 참여하는 다른 클라이언트 장치를 제2 클라이언트 장치라고 한다. 지능형 계약 시나리오에서, 서명될 메시지는 계약 데이터이며 계약 데이터는 거래 완료 조건을 제한하는 데 사용된다. 동작은 아래에 자세히 설명되어 있다.7 is a flowchart of signature generation according to an embodiment of the present disclosure. For example, this method is applied to a client device in a data sharing system, and the client device in which any one of a plurality of signing parties is located is used as an execution body for executing the aggregate signature. In this case, for ease of explanation, a client device used as a signature aggregation party in a client device participating in an intelligent contract is referred to as a first client device, and another client device participating in an intelligent contract is referred to as a second client device. In the intelligent contract scenario, the message to be signed is the contract data, and the contract data is used to constrain the conditions for completing the transaction. The operation is described in detail below.
700: 제1 클라이언트 장치 및 적어도 하나의 제2 클라이언트 장치는 서명 생성 명령을 획득하고, 서명 생성 명령은 복수의 계약 파티의 계약 내용 및 이체 금액을 나타내는 데 사용된다.700: The first client device and the at least one second client device obtain a signature generation command, wherein the signature generation command is used to indicate contract details and transfer amounts of the plurality of contract parties.
도 8에 도시된 바와 같이, 복수의 파티가 공동으로 계약의 양도를 개시할 때, 계약에 도달하기 위해서는 복수의 계약 파티의 서명이 필요하다. 복수의 계약 파티가 전송을 위해 각각의 클라이언트 장치를 조작할 때, 클라이언트 장치는 계약 전달 요청을 수신하고, 계약 거래 요청은 이 거래에서 서명될 메시지를 전달하며, 그 메시지는 복수의 계약 파티의 서명을 필요로 하고, 복수의 계약 파티는 서명을 생성하기 시작하도록 트리거링된다.As shown in FIG. 8 , when a plurality of parties jointly initiate the transfer of a contract, signatures of the plurality of contracting parties are required to reach the contract. When the plurality of contracting parties operate each client device for transmission, the client device receives a contract delivery request, the contract transaction request delivers a message to be signed in this transaction, the message being signed by the plurality of contracting parties , and multiple contracting parties are triggered to start generating signatures.
701: 제1 클라이언트 장치 및 적어도 하나의 제2 클라이언트 장치는 복수의 각각의 난수를 획득하고, 복수의 난수에 따라 각각의 고윳값을 개별적으로 생성한다.701: The first client device and the at least one second client device acquire a plurality of respective random numbers, and individually generate respective eigenvalues according to the plurality of random numbers.
서명 생성 트리거 명령을 수신할 때, 적어도 하나의 제2 클라이언트 장치는 각각의 난수를 획득한다. 획득 프로세스는 작동 201을 참조하여 처리될 수 있으며, 세부 사항은 여기서 다시 설명되지 않는다. 적어도 하나의 제2 클라이언트 장치의 난수를 획득한 후, 적어도 하나의 제2 클라이언트 장치는 각각의 난수에 따라 각각의 고윳값을 생성한다. 생성 방법은 작동 201을 참조하여 처리될 수 있으며, 세부 사항은 여기서 다시 설명되지 않는다. 고윳값을 생성한 후, 적어도 하나의 제2 클라이언트 장치는 생성된 고윳값을 제1 클라이언트 장치로 전송한다.Upon receiving the signature generation trigger command, the at least one second client device obtains a respective random number. The acquisition process may be handled with reference to operation 201 , and details are not described herein again. After obtaining the random number of the at least one second client device, the at least one second client device generates a respective eigenvalue according to each random number. The generating method may be processed with reference to operation 201, details not described herein again. After generating the eigenvalue, the at least one second client device transmits the generated eigenvalue to the first client device.
702: 적어도 하나의 제2 클라이언트 장치는 제1 클라이언트 장치에 각각의 고윳값을 전송한다.702: The at least one second client device sends a respective eigenvalue to the first client device.
703: 제1 클라이언트 장치는 계약 데이터 및 적어도 하나의 제2 클라이언트 장치의 적어도 하나의 고윳값에 따라 메시지 요약을 생성한다.703: The first client device generates the message digest according to the contract data and the at least one eigenvalue of the at least one second client device.
제1 클라이언트 장치가 메시지 요약을 생성하는 프로세스는 전술한 작동 202를 참조해서 처리될 수 있으며, 이에 대해서는 여기서 다시 설명하지 않는다.A process in which the first client device generates the message digest may be processed with reference to operation 202 described above, which is not described herein again.
704: 제1 클라이언트 장치는 적어도 하나의 제2 클라이언트 장치에 메시지 요약을 전송한다.704: The first client device sends the message digest to the at least one second client device.
705: 적어도 하나의 제2 클라이언트 장치는 메시지 요약을 획득하고, 그런 다음 제1 클라이언트 장치 및 적어도 하나의 제2 클라이언트 장치는 계약 데이터, 개인 키 및 공개 키를 획득한다.705 : The at least one second client device obtains the message digest, and then the first client device and the at least one second client device obtain the contract data, the private key and the public key.
제1 클라이언트 장치 및 적어도 하나의 제2 클라이언트 장치가 각각의 비림 키 및 공개 키를 획득하는 프로세스는 작동 203을 참조해서 처리될 수 있으며, 이에 대해서는 여기서 다시 설명하지 않는다.Processes in which the first client device and the at least one second client device obtain the private key and the public key, respectively, may be processed with reference to operation 203 , which is not described herein again.
706: 제1 클라이언트 장치 및 적어도 하나의 제2 클라이언트 장치는 메시지 요약, 난수 및 개인 키에 따라 하위 서명을 생성한다.706 : The first client device and the at least one second client device generate a sub-signature according to the message digest, the random number and the private key.
적어도 하나의 제2 클라이언트 장치가 각각의 하위 서명을 생성하는 프로세스는 전술한 작동 203을 참조해서 처리될 수 있으며, 이에 대해서는 여기서 다시 설명하지 않는다.A process by which the at least one second client device generates each sub-signature may be processed with reference to operation 203 described above, which is not described herein again.
707: 적어도 하나의 제2 클라이언트 장치는 제1 클라이언트 장치에 각각의 하위 서명을 전송한다.707: The at least one second client device sends a respective sub-signature to the first client device.
708: 제1 클라이언트 장치는 제1 클라이언트 장치와 적어도 하나의 제2 클라이언트 장치의 각각의 공개 키를 획득하고, 제1 클라이언트 장치와 적어도 하나의 제2 클라이언트 장치의 각각의 공개 키에 따라 집계 공개 키를 생성한다.708: the first client device obtains respective public keys of the first client device and the at least one second client device, and an aggregate public key according to respective public keys of the first client device and the at least one second client device to create
제1 클라이언트 장치는 적어도 하나의 제2 클라이언트 장치에 의해 송신된 공개 키 및 하위 서명을 수신하고, 수신된 공개 키 및 하위 서명을 저장한다. 그런 다음, 제1 클라이언트 장치가 집계 공개 키를 생성하는 프로세스는 전술한 작동 204를 참조해서 처리될 수 있으며, 이에 대해서는 여기서 다시 설명하지 않는다.The first client device receives the public key and sub-signature sent by the at least one second client device, and stores the received public key and sub-signature. Then, the process of generating the aggregate public key by the first client device may be processed with reference to operation 204 described above, which is not described herein again.
709: 제1 클라이언트 장치는 제1 클라이언트 장치와 적어도 하나의 제2 클라이언트 장치의 하위 서명의 합산 값 및 메시지 요약에 따라 집계 서명을 생성한다.709: The first client device generates the aggregate signature according to the message digest and the sum value of the sub-signatures of the first client device and the at least one second client device.
제1 클라이언트 장치가 집계 서명을 생성하는 프로세스는 전술한 작동 205를 참조해서 처리될 수 있으며, 이에 대해서는 여기서 다시 설명하지 않는다.A process by which the first client device generates the aggregate signature may be processed with reference to operation 205 described above, which is not described herein again.
710: 제1 클라이언트 장치는 집계 공개 키 및 집계 서명을 계약 데이터에 부가한다.710: The first client device adds the aggregate public key and the aggregate signature to the contract data.
집계 공개 키 및 집계 서명을 생성한 후, 제1 클라이언트 장치는 집계 공개 키 및 집계 서명을 계약 데이터에 부가하고, 그런 다음, 계약 데이터를 데이터 공유 시스템으로 전송한다. 또한, 데이터 공유 시스템의 각 노드는 집계 공개 키 및 집계 서명에 기초하여 계약 데이터에 대한 서명 검사를 수행할 수 있다. 서명 검사가 성공하면 데이터 공유 시스템은 계약 데이터, 집계 공개 키 및 집계 서명을 저장한다. 당연히, 계약 데이터에 대해 서명 검사가 수행되지 않을 수 있으며 계약 데이터, 집계 공개 키 및 집계 서명이 직접 저장된다. 계약이 실행될 때, 데이터 공개 시스템으로부터 집계 공개 키 및 집계 서명이 획득되고, 집계 공개 키 및 집계 서명에 따라 계약 데이터에 대한 서명 검사가 수행된다.After generating the aggregate public key and aggregate signature, the first client device adds the aggregate public key and aggregate signature to the contract data, and then sends the contract data to the data sharing system. In addition, each node of the data sharing system may perform signature check on contract data based on the aggregate public key and aggregate signature. If the signature check succeeds, the data sharing system stores the contract data, the aggregate public key and the aggregate signature. Naturally, signature checking may not be performed on the contract data, and the contract data, aggregate public key and aggregate signature are stored directly. When the contract is executed, the aggregate public key and the aggregate signature are obtained from the data disclosure system, and a signature check on the contract data is performed according to the aggregate public key and the aggregate signature.
전술한 프로세스에서 획득된 집계 서명의 길이는 스플라이싱을 통해 획득된 서명의 길이보다 짧고, 집계 공개 키의 길이는 스플라이싱을 통해 획득된 공개 키의 길이보다 짧다. 따라서, 집계 서명의 네트워크 전송 동안, 네트워크 전송의 부담이 경감될 수 있고, 집계 공개 키 및 집계 서명의 저장 동안, 저장 공간이 감소될 수 있다.The length of the aggregate signature obtained in the above process is shorter than the length of the signature obtained through splicing, and the length of the aggregate public key is shorter than the length of the public key obtained through splicing. Therefore, during network transmission of the aggregate signature, the burden of network transmission can be reduced, and during storage of the aggregate public key and the aggregate signature, the storage space can be reduced.
집계 서명 및 집계 공개 키를 생성하는 프로세스는 병렬일 수 있다. 즉, 집계 파티의 제1 클라이언트 장치는 복수의 하위 서명에 따라 집계 하위 서명을 생성하고 그런 다음, 집계 하위 서명 및 메시지 요약에 따라 집계 서명을 생성한다. 유사하게, 제1 클라이언트 장치는 복수의 공개 키에 따라 통합 공개 키를 생성한다. 선택적으로, 집계 서명 및 집계 공개 키를 생성하는 프로세스는 직렬일 수 있다. 즉, 제1 계약 파티 클라이언트 장치는 그 하위 서명을 획득하고 그런 다음, 이를 적어도 하나의 제2 계약 파티 클라이언트 장치로 전송한다. 적어도 하나의 제2 계약 파티 클라이언트 장치는 제1 계약 파티 클라이언트 장치의 하위 서명 및 적어도 하나의 제2 계약 파티 클라이언트 장치의 하위 서명을 획득하고, 부분 집계 하위 서명을 생성하고 그런 다음, 이를 제3 계약 파티 클라이언트 장치로 전송한다. 제3 계약 파티 클라이언트 장치는 적어도 하나의 제2 계약 파티 클라이언트 장치에 의해 전송된 부분 집계 하위 서명 및 제3 계약 파티 클라이언트 장치의 하위 서명을 획득하고, 새로운 부분 집계 하위 서명을 생성하고, 이와 같이 계속 진행하여, 그런 다음 이를 제4 계약 파티 클라이언트 장치에 전송하며, 이와 같이 계속 진행하여 마지막 계약 파티 클라이언트 장치가 새로운 부분 집계 하위 서명을 생성하고, 부분 집계 하위 서명을 집계 파티 제1 클라이언트 장치로 전송한다. 집계 파티 클라이언트는 부분 집계 하위 서명 및 집계 파티 클라이언트의 하위 서명에 따라 집계 하위 서명을 생성하고, 그런 다음 생성된 집계 하위 서명 및 메시지 요약에 따라 집계 서명을 생성한다. 이것은 여기에 제한되지 않는다.The process of generating the aggregate signature and aggregate public key may be parallel. That is, the first client device of the aggregation party generates the aggregate sub-signature according to the plurality of sub-signatures, and then generates the aggregate signature according to the aggregate sub-signature and the message digest. Similarly, the first client device generates a unified public key according to the plurality of public keys. Optionally, the process of generating the aggregate signature and aggregate public key may be serial. That is, the first contracting party client device obtains the sub-signature and then sends it to the at least one second contracting party client device. The at least one second contracting party client device obtains a subsignature of the first contracting party client device and a subsignature of the at least one second contracting party client device, generates a partially aggregated subsignature, and then converts the subsignature into the third contract Send to the party client device. the third contracting party client device obtains the partial aggregate sub-signature sent by the at least one second contracting party client device and the sub-signature of the third contracting party client device, generates a new partially aggregated sub-signature, and so on; proceed, and then send it to the fourth contracting party client device, and so on, so that the last contracting party client device generates a new partial aggregate sub-signature, and sends the partial aggregate sub-signature to the aggregation party first client device . The aggregation party client generates an aggregate sub-signature according to the partial aggregate sub-signature and the sub-signature of the aggregate party client, and then generates an aggregate signature according to the generated aggregate sub-signature and message digest. It is not limited here.
본 출원에서, 집계 서명은 복수의 서명 파티의 하위 서명을 사용하여 생성되고, 집계 공개 키는 복수의 서명 파티의 공개 키에 기초하여 생성되며; 획득된 집계 서명의 길이는 복수의 하위 서명을 스플라이싱함으로써 획득된 다중 서명의 길이보다 짧고, 집계 공개 키의 길이는 복수의 공개 키를 스플라이싱함으로써 획득된 다중 공개 키의 길이보다 짧으며; 따라서, 집계 서명 및 집계 공개 키의 네트워크 전송 동안, 네트워크 전송의 부담이 경감되고, 저장 동안 저장 공간이 감소되고, 서명 검사 동안, 서명 공개 메시지는 집계 공개 키 및 집계를 사용하여 직접 검사된다 서명 검사의 복잡성을 크게 줄이다. 또한, 지능형 계약 시나리오에서 전술한 서명 생성 방법의 특정 적용이 제공되므로, 서명 생성의 실행 가능성이 개선되고, 지능형 계약 시나리오에서 서명 생성 및 서명 검사의 효율성도 개선된다.In the present application, the aggregate signature is generated using sub-signatures of the plurality of signing parties, and the aggregate public key is generated based on the public keys of the plurality of signing parties; The length of the obtained aggregate signature is shorter than the length of the multi-signature obtained by splicing the plurality of sub-signatures, the length of the aggregate public key is shorter than the length of the multi-public key obtained by splicing the plurality of public keys, and ; Therefore, during network transmission of the aggregate signature and aggregate public key, the burden of network transmission is relieved, the storage space is reduced during storage, and during signature inspection, the signature public message is directly inspected using the aggregate public key and aggregate signature inspection greatly reduce the complexity of In addition, since the specific application of the above-described signature generation method in the intelligent contract scenario is provided, the feasibility of signature generation is improved, and the efficiency of signature generation and signature inspection in the intelligent contract scenario is also improved.
도 9는 본 개시의 실시예에 따른 서명 생성 장치에 대한 개략적인 구조도이다. 도 9를 참조하면, 장치는 생성 모듈(901) 및 획득 모듈(902)를 포함한다.9 is a schematic structural diagram of an apparatus for generating a signature according to an embodiment of the present disclosure. Referring to FIG. 9 , the apparatus includes a
생성 모듈(901)은 서명될 메시지(to-be-signed message) 및 복수의 서명 파티의 고윳값에 따라 메시지 요약을 생성하도록 구성되어 있으며, 각각의 서명 파티의 고윳값은 상기 서명 파티의 난수에 따른 계산을 통해 획득된다.The
획득 모듈(902)은 상기 복수의 서명 파티의 공개 키 및 하위 서명을 획득하도록 구성되어 있으며, 각각의 서명 파티의 하위 서명은 상기 서명 파티의 난수, 상기 메시지 요약 및 상기 복수의 서명 파티의 개인 키에 따른 계산을 통해 획득된다.The obtaining
생성 모듈(901)은 상기 복수의 서명 파티의 공개 키에 따라 집계 공개 키(aggregation public key)를 생성하도록 추가로 구성되어 있으며, 상기 집계 공개 키의 길이는 스플라이싱(splicing) 후 상기 복수의 공개 키의 길이보다 짧다.The
생성 모듈(901)은 상기 복수의 하위 서명의 합산 값 및 상기 메시지 요약에 따라 집계 서명을 생성하도록 추가로 구성되어 있다.The
임의의 가능한 구현에서, 생성 모듈(901)은 획득 서브모듈(9011) 및 생성 서브모듈(9012)을 포함한다.In any possible implementation, the
획득 서브모듈(9011)은 상기 복수의 서명 파티의 고윳값, 상기 서명될 메시지 및 제1 값을 획득하도록 구성되어 있다.The obtaining submodule 9011 is configured to obtain the original values of the plurality of signing parties, the message to-be-signed, and the first values.
생성 서브모듈(9012)은 상기 복수의 서명 파티의 고윳값 및 상기 제1 값에 따라 집계 고윳값을 생성하도록 구성되어 있다.The generating submodule 9012 is configured to generate an aggregate eigenvalue according to the eigenvalues of the plurality of signature parties and the first values.
생성 서브모듈(9012)은 상기 집계 고윳값, 상기 서명될 메시지 및 미리 설정된 단방향 해시 함수(one-way hash function)에 따라 메시지 요약을 생성하도록 추가로 구성되어 있다.The generating submodule 9012 is further configured to generate a message digest according to the aggregate eigenvalue, the message to be signed, and a preset one-way hash function.
임의의 가능한 구현에서, 생성 서브모듈(9012)은:In any possible implementation, the generating submodule 9012 includes:
상기 복수의 고윳값의 곱을 계산하고, 상기 복수의 고윳값의 곱 및 상기 제1 값에 따라 상기 집계 고윳값을 생성하도록 추가로 구성되어 있다.and calculate a product of the plurality of eigenvalues, and generate the aggregate eigenvalue according to the product of the plurality of eigenvalues and the first value.
임의의 가능한 구현에서, 생성 서브모듈(9012)은: 상기 복수의 공개 키의 곱을 계산하고, 상기 복수의 공개 키의 곱 및 상기 제1 값에 따라 상기 집계 공개 키를 생성하도록 추가로 구성되어 있다.In any possible implementation, the generating submodule 9012 is further configured to: calculate a product of the plurality of public keys, and generate the aggregate public key according to the product of the plurality of public keys and the first value. .
임의의 가능한 구현에서, 생성 모듈(901)은:In any possible implementation, the
상기 복수의 하위 서명에 따라 집계 하위 서명을 생성하고, 상기 집계 하위 서명 및 상기 메시지 요약을 스플라이싱하며, 스플라이싱 후에 획득된 결과를 상기 집계 서명으로서 결정하도록 추가로 구성되어 있다.and generate an aggregate sub-signature according to the plurality of sub-signatures, splicing the aggregate sub-signature and the message digest, and determine a result obtained after splicing as the aggregate signature.
임의의 가능한 구현에서, 상기 복수의 서명 파티는 상기 클라이언트 장치에 의해 제공되는 복수의 계정 주소이며, 상기 서명될 메시지는 상기 방법이 데이터 공유 시스템에서 클라이언트 장치에 적용되는 경우에 각각의 계정 주소에 대응하는 값 전달 정보이다.In any possible implementation, the plurality of signing parties are a plurality of account addresses provided by the client device, and the message to be signed corresponds to each account address when the method is applied to a client device in a data sharing system. value transfer information.
임의의 가능한 구현에서, 상기 서명될 메시지는 계약 데이터이며, 상기 계약 데이터는 상기 방법이 데이터 공유 시스템에서 클라이언트 장치에 적용되는 경우에 거래를 완료하는 조건을 제한하는 데 사용된다.In any possible implementation, the message to be signed is contract data, wherein the contract data is used to constrain conditions for completing a transaction when the method is applied to a client device in a data sharing system.
임의의 가능한 구현에서, 복수의 서명 파티 각각은 상기 방법이 데이터 공유 시스템에서 클라이언트 장치에 적용되는 경우에 데이터 공유 시스템에서 팔로워 노드이다.In any possible implementation, each of the plurality of signing parties is a follower node in the data sharing system when the method is applied to a client device in the data sharing system.
이에 상응해서, 상기 장치는:Correspondingly, the device comprises:
서명될 메시지 및 복수의 서명 파티의 고윳값에 따라 메시지 요약을 생성하는 단계 이후에, 상기 데이터 공유 시스템에서 상기 팔로어 노드에 상기 메시지 요약을 전송하도록 구성되어 있는 전송 모듈(903)a sending module 903, configured to send the message digest to the follower node in the data sharing system, after generating the message digest according to the message to be signed and the eigenvalues of a plurality of signing parties
를 더 포함한다.further includes
획득 모듈(902)은:
각각의 팔로워 노드에 의해 송신되는 공개 키 및 하위 서명을 수신하도록 추가로 구성되어 있다.and further configured to receive the public key and sub-signature sent by each follower node.
전송 모듈(903)은:The transmission module 903 includes:
상기 복수의 하위 서명의 합산 값 및 상기 메시지 요약에 따라 집계 서명을 생성하는 단계 이후에, 상기 집계 공개 키 및 상기 집계 서명을 각각의 팔로어 노드에 전송하도록 추가로 구성되어 있다.after generating the aggregate signature according to the sum of the plurality of sub-signatures and the message digest, send the aggregate public key and the aggregate signature to each follower node.
도 10은 본 개시의 실시예에 따른 서명 생성 장치에 대한 개략적인 구조도이다. 도 10을 참조하면, 장치는 생성 모듈(1001) 및 획득 모듈(1002)를 포함한다.10 is a schematic structural diagram of an apparatus for generating a signature according to an embodiment of the present disclosure. Referring to FIG. 10 , the apparatus includes a
생성 모듈(1001)은 난수를 획득하고, 상기 난수에 따라 고윳값을 생성하도록 구성되어 있다.The
획득 모듈(1002)은 서명될 메시지, 개인 키(private key) 및 공개 키를 획득하도록 구성되어 있다.The obtaining
획득 모듈(1002)은 메시지 요약을 생성하도록 구성되어 있으며, 상기 메시지 요약은 상기 서명될 메시지 및 상기 고윳값에 따라 상기 서명 집계 파티에 의한 계산을 통해 획득된다.The obtaining
생성 모듈(1001)은 상기 메시지 요약, 상기 난수 및 상기 개인 키에 따라 하위 서명을 생성하도록 구성되어 있다.The
임의의 가능한 구현에서, 생성 모듈(1001)은:In any possible implementation, the
제1 값 및 제2 값 를 획득하고 - 상기 제1 값 및 상기 제2 값 는 소수이고, 는 의 인수이고, 및 임 - ;first value and a second value to obtain - the first value and the second value is a prime number, Is is the argument of and Lim - ;
생성 기준(generation base) 를 획득하고 - 는 이 로 정확하게 나누어질 수 있음을 만족함 - ; 및generation base to obtain - Is this It is satisfied that it can be precisely divided into - ; and
상기 난수를 획득하고 - 상기 난수의 값 범위는 임 - ; 그리고obtain the random number - the range of values of the random number is Lim - ; and
상기 난수, 상기 생성 기준 및 상기 제1 값에 따라 상기 고윳값을 생성하도록 추가로 구성되어 있다.and generate the eigenvalue according to the random number, the generation criterion, and the first value.
임의의 가능한 구현에서, 상기 장치는:In any possible implementation, the device comprises:
상기 서명 생성 방법이 데이터 공유 시스템에서 팔로워 노드에 적용되는 경우 상기 서명 집계 파티에 상기 하위 서명 및 상기 공개 키를 전송하도록 구성되어 있는 전송 모듈(1003)a sending module 1003, configured to send the sub-signature and the public key to the signature aggregation party when the signature generating method is applied to a follower node in a data sharing system;
을 더 포함한다.further includes
본 개시의 실시예는 전자 장치를 추가로 제공하며, 상기 전자 장치는: 프로세서; 및 컴퓨터 프로그램을 저장하도록 구성된 메모리를 포함하며, 상기 프로세서는 상기 메모리에 저장되어 있는 상기 컴퓨터 프로그램을 실행하여, 다음의 방법 작동: 서명될 메시지 및 복수의 서명 파티의 고윳값에 따라 메시지 요약을 생성하는 단계 - 각각의 서명 파티의 고윳값은 상기 서명 파티의 난수에 따른 계산을 통해 획득됨 - ; 상기 복수의 서명 파티의 공개 키 및 하위 서명을 획득하는 단계 - 각각의 서명 파티의 하위 서명은 상기 서명 파티의 난수, 상기 메시지 요약 및 상기 복수의 서명 파티의 개인 키에 따른 계산을 통해 획득됨 - ; 상기 복수의 서명 파티의 공개 키에 따라 집계 공개 키를 생성하는 단계 - 상기 집계 공개 키의 길이는 스플라이싱 후 상기 복수의 공개 키의 길이보다 짧음 - ; 및 상기 복수의 하위 서명의 합산 값 및 상기 메시지 요약에 따라 집계 서명을 생성하는 단계를 수행하도록 구성되어 있다.An embodiment of the present disclosure further provides an electronic device, the electronic device comprising: a processor; and a memory configured to store a computer program, wherein the processor executes the computer program stored in the memory to operate the following method: generating a message digest according to a message to be signed and a value of a plurality of signing parties a step of - an eigenvalue of each signing party is obtained through calculation according to the random number of the signing party; obtaining a public key and sub-signature of the plurality of signing parties, wherein the sub-signature of each signing party is obtained through calculation according to the random number of the signing party, the message digest and the private key of the plurality of signing parties; ; generating an aggregate public key according to the public keys of the plurality of signing parties, wherein a length of the aggregate public key is shorter than a length of the plurality of public keys after splicing; and generating an aggregate signature according to the sum of the plurality of sub-signatures and the message digest.
가능한 구현에서, 상기 프로세서는: 상기 복수의 서명 파티의 고윳값, 상기 서명될 메시지 및 제1 값을 획득하고; 상기 복수의 서명 파티의 고윳값 및 상기 제1 값에 따라 집계 고윳값을 생성하며; 그리고 상기 집계 고윳값, 상기 서명될 메시지 및 미리 설정된 단방향 해시 함수에 따라 메시지 요약을 생성하도록 구성되어 있다.In a possible implementation, the processor is configured to: obtain an eigenvalue of the plurality of signing parties, the message to be signed and a first value; generate an aggregate eigenvalue according to the eigenvalues of the plurality of signature parties and the first value; and generate a message digest according to the aggregation eigenvalue, the message to be signed, and a preset one-way hash function.
가능한 구현에서, 상기 프로세서는: 상기 복수의 고윳값의 곱을 계산하고, 상기 복수의 고윳값의 곱 및 상기 제1 값에 따라 상기 집계 고윳값을 생성하도록 구성되어 있다.In a possible implementation, the processor is configured to: calculate a product of the plurality of eigenvalues, and generate the aggregate eigenvalue according to the product of the plurality of eigenvalues and the first value.
가능한 구현에서, 상기 프로세서는: 상기 복수의 공개 키의 곱을 계산하고, 상기 복수의 공개 키의 곱 및 상기 제1 값에 따라 상기 집계 공개 키를 생성하도록 구성되어 있다.In a possible implementation, the processor is configured to: calculate a product of the plurality of public keys, and generate the aggregate public key according to the product of the plurality of public keys and the first value.
가능한 구현에서, 상기 프로세서는: 상기 복수의 하위 서명에 따라 집계 하위 서명을 생성하고, 상기 집계 하위 서명 및 상기 메시지 요약을 스플라이싱하며, 스플라이싱 후에 획득된 결과를 상기 집계 서명으로서 결정하도록 구성되어 있다.In a possible implementation, the processor is configured to: generate an aggregate sub-signature according to the plurality of sub-signatures, splice the aggregate sub-signature and the message digest, and determine a result obtained after splicing as the aggregate signature. Consists of.
가능한 구현에서, 상기 전자 장치는 데이터 공유 시스템에서 클라이언트 장치이고, 상기 복수의 서명 파티는 상기 클라이언트 장치에 의해 제공되는 복수의 계정 주소이며, 상기 서명될 메시지는 각각의 계정 주소에 대응하는 값 전달 정보이다.In a possible implementation, the electronic device is a client device in a data sharing system, the plurality of signing parties are a plurality of account addresses provided by the client device, and the message to be signed includes value transfer information corresponding to each account address. to be.
가능한 구현에서, 상기 전자 장치는 데이터 공유 시스템에서 클라이언트 장치이고, 상기 서명될 메시지는 계약 데이터이며, 상기 계약 데이터는 거래를 완료하는 조건을 제한하는 데 사용된다.In a possible implementation, the electronic device is a client device in a data sharing system, the message to be signed is contract data, and the contract data is used to constrain conditions for completing a transaction.
가능한 구현에서, 상기 전자 장치는 데이터 공유 시스템에서 리더 노드이고, 상기 복수의 서명 파티 각각은 데이터 공유 시스템에서 팔로어 노드이며, 상기 전자 장치는 상기 데이터 공유 시스템에서 상기 메시지 요약을 상기 팔로어 노드로 전송하도록 구성되어 있는 송수신기를 더 포함하며, 상기 송수신기는 각각의 팔로워 노드에 의해 송신되는 공개 키 및 하위 서명을 수신하도록 추가로 구성되어 있으며, 상기 프로세서는 상기 집계 공개 키 및 상기 집계 서명을 각각의 팔로어 노드에 전송하도록 추가로 구성되어 있다.In a possible implementation, the electronic device is a leader node in the data sharing system, each of the plurality of signing parties is a follower node in the data sharing system, and the electronic device sends the message digest to the follower node in the data sharing system and a transceiver configured to: wherein the transceiver is further configured to receive a public key and a sub-signature sent by each follower node, the processor configured to send the aggregate public key and the aggregate signature to each follower node. It is further configured to transmit to .
일 예에서, 전술한 전자 장치는 도 11에 도시된 단말(1100)로서 제공될 수 있다. 도 11은 본 개시의 일 실시예에 따른 단말(1100)의 구조 블록도이다. 단말(1100)은 개인용 컴퓨터(PC), 스마트 폰, 태블릿 컴퓨터 등일 수 있다. 단말(1100)은 또한 사용자 기기, 휴대용 단말, 다른 이름 등으로 지칭될 수 있다.In one example, the above-described electronic device may be provided as the terminal 1100 illustrated in FIG. 11 . 11 is a structural block diagram of a terminal 1100 according to an embodiment of the present disclosure. The terminal 1100 may be a personal computer (PC), a smart phone, a tablet computer, or the like. The terminal 1100 may also be referred to as a user device, a portable terminal, another name, or the like.
통상적으로, 단말(1100)은 프로세서(1101) 및 메모리(1102)를 포함한다.Typically, the terminal 1100 includes a
프로세서(1101)는 하나 이상의 프로세싱 코어, 예를 들어 4-코어 프로세서 또는 8-코어 프로세서를 포함할 수 있다. 프로세서(1101)는 디지털 신호 처리(digital signal processing, DSP), 필드-프로그래머블 게이트 어레이(field-programmable gate away, FPGA) 및 프로그래머블 로직 어레이(programmable logic array, PLA)에서 적어도 하나의 하드웨어 형태로 구현될 수 있다. 프로세서(1101)는 또한 메인 프로세서 및 코프로세서를 포함할 수 있다. 메인 프로세서는 어웨이크 상태에서 데이터를 처리하기 위한 프로세서이며 중앙 처리 장치(CPU)라고도 한다. 코프로세서는 대기 상태에서 데이터를 처리하기 위한 저전력 프로세서이다. 일부 실시예에서, 프로세서(1101)는 그래픽 처리 유닛(Graphics Processing Unit, GPU)와 통합될 수 있으며, GPU는 디스플레이 상에 디스플레이될 필요가 있는 컨텐츠를 렌더링 및 드로잉하는 역할을 한다. 일부 실시예들에서, 프로세서(1101)는 인공 지능(AI) 프로세서를 더 포함할 수 있다. AP 프로세서는 기계 학습과 관련된 컴퓨팅 동작을 처리하도록 구성된다.
메모리(1102)는 유형적(tangible)이고 비 일시적일 수 있는 하나 이상의 컴퓨터 판독 가능 저장 매체를 포함할 수 있다. 메모리(1102)는 또한 고속 랜덤 액세스 메모리, 및 하나 이상의 자기 디스크 저장 장치 및 플래시 저장 장치와 같은 비휘발성 메모리를 포함할 수 있다. 일부 실시예들에서, 메모리(1102) 내의 비 일시적 컴퓨터 판독 가능 저장 매체는 적어도 하나의 명령어를 저장하도록 구성되며, 적어도 하나의 명령어는 본 출원에서 제공된 서명 생성 방법을 구현하기 위해 프로세서(1101)에 의해 실행된다.
일부 실시예들에서, 단말(1100)은 선택적으로 주변 장치 인터페이스(1103) 및 적어도 하나의 주변 장치를 포함한다. 구체적으로, 주변 장치는 무선 주파수 회로(1104), 터치 디스플레이(1105), 카메라(1106), 오디오 회로(1107), 위치 결정 컴포넌트(1108) 및 전원(1109) 중 적어도 하나를 포함한다.In some embodiments, the terminal 1100 optionally includes a
주변 장치 인터페이스(1103)는 입/출력(I/O)에 관련된 적어도 하나의 주변 장치를 프로세서(1101) 및 메모리(1102)에 연결하도록 구성될 수 있다. 일부 실시예에서, 프로세서(1101), 메모리(1102), 주변 장치 인터페이스(1103)는 동일한 칩 또는 회로 보드 상에 통합되고; 일부 다른 실시예에서, 프로세서(1101), 메모리(1102) 및 주변 장치 인터페이스(1103) 중 임의의 하나 또는 둘은 별도의 칩 또는 회로 보드 상에 구현될 수 있으며, 이는 본 실시예에 제한되지 않는다.The
무선 주파수 회로(1104)는 전자기 신호로도 지칭되는 무선 주파수(RF) 신호를 수신 및 송신하도록 구성된다. RF 회로(1104)는 전자기 신호를 통해 통신 네트워크 및 다른 통신 장치와 통신한다. RF 회로(1104)는 전송을 위해 전기 신호를 전자기 신호로 변환하거나, 수신된 전자기 신호를 전기 신호로 변환한다. 선택적으로, RF 회로(1104)는 안테나 시스템, RF 송수신기, 하나 이상의 증폭기, 튜너, 발진기, 디지털 신호 프로세서, 코덱 칩셋, 가입자 식별 모듈 카드 등을 포함한다. RF 회로(1104)는 적어도 하나의 무선 통신 프로토콜을 통해 다른 단말과 통신할 수 있다. 무선 통신 프로토콜은 월드 와이드 웹, 수도권 네트워크, 인트라넷, 세대의 이동 통신 네트워크(2G, 3G, 4G 및 5G), 무선 근거리 네트워크 및/또는 무선 충실도(WiFi) 네트워크를 포함하지만 이에 제한되지는 않는다. 일부 실시예들에서, 무선 주파수 회로(1104)는 근거리 통신(NFC) 관련 회로를 더 포함할 수 있으며, 이것은 본 출원에서 제한되지 않는다.The
터치 디스플레이(1105)는 사용자 인터페이스(UI)를 표시하도록 구성된다. UI는 그래픽, 텍스트, 아이콘, 비디오 및 이들의 임의의 조합을 포함할 수 있다. 터치 디스플레이(1105)는 또한 터치 디스플레이(1105)의 표면 상에서 또는 그 위에서 터치 신호를 수집하는 능력을 갖는다. 터치 신호는 처리를 위한 제어 신호로서 프로세서(1101)에 입력될 수 있다. 터치 디스플레이(1105)는 소프트 버튼 및/또는 소프트 키보드로도 지칭되는 가상 버튼 및/또는 가상 키보드를 제공하도록 구성된다. 일부 실시예들에서, 단말(1100)의 전면 패널 상에 배치된 하나의 터치 디스플레이(1105)가 있을 수 있고; 일부 다른 실시예들에서, 단말(1100)의 상이한 표면들 상에 또는 접힌 디자인으로 각각 배치된 적어도 2개의 터치 디스플레이(1105)가 있을 수 있다. 또 다른 실시예에서, 터치 디스플레이(1105)는 단말(1100)의 곡면 또는 접힌 표면에 배치된 플렉서블 디스플레이일 수 있다. 터치 디스플레이(1105)조차도 직사각형이 아닌 불규칙 패턴, 즉 프로파일링 스크린으로 설정될 수 있다. 터치 디스플레이 스크린(1105)조차도 직사각형이 아닌 불규칙 패턴, 즉 프로파일 스크린으로 설정될 수 있다. 터치 디스플레이(1105)는 액정 디스플레이(LCD) 또는 유기 발광 다이오드(OLED)와 같은 재료를 사용하여 제조될 수 있다.The
카메라 어셈블리(1106)는 이미지 또는 비디오를 수집하도록 구성된다. 선택적으로, 카메라 어셈블리(1106)는 전면 카메라 및 후면 카메라를 포함한다. 일반적으로 전면 카메라는 화상 통화 또는 셀카를 구현하도록 구성되고 후면 카메라는 사진 또는 비디오 촬영을 구현하도록 구성된다. 일부 실시예에서, 메인 카메라, 피사계 심도 카메라 및 광각 카메라 중 어느 하나인 적어도 2개의 후방 카메라가 존재하여, 메인 카메라와 피사계 심도 카메라가 조합되어 구현된다. 보케 기능(bokhe function), 메인 카메라 및 광각 카메라가 결합되어 파노라마 촬영 및 가상 현실(VR) 촬영 기능을 구현한다. 일부 실시예에서, 카메라 어셈블리(1106)는 또한 플래시를 포함할 수 있다. 플래시는 단색 온도 플래시 또는 2색 온도 플래시일 수 있다. 2색 온도 플래시는 웜 라이트 플래시와 콜드 라이트 플래시의 조합이며 다른 색 온도에서 빛을 보정하는 데 사용할 수 있다.The
오디오 회로(1107)는 사용자와 단말(1100) 사이에 오디오 인터페이스를 제공하도록 구성된다. 오디오 회로(1107)는 마이크로폰 및 스피커를 포함할 수 있다. 마이크로폰은: 사용자 및 환경의 음파를 수집하고, 음파를 처리를 위해 프로세서(1101)에 입력하기 위해 전기 신호로, 또는 음성 통신을 위해 RF 회로(1104)로 변환하도록 구성된다. 스테레오 수집 또는 노이즈 감소를 위해, 단말(1100)의 서로 다른 부분에 복수의 마이크로폰이 각각 배치될 수 있다. 마이크로폰은 또한 어레이 마이크로폰 또는 무지향성 마이크로폰일 수 있다. 스피커는 프로세서(1101) 또는 RF 회로(1104)로부터의 전기 신호를 음파로 변환하도록 구성된다. 스피커는 종래의 필름 스피커 또는 압전 세라믹 스피커일 수 있다. 스피커가 압전 세라믹 스피커인 경우, 전기 신호를 사람의 가청 음파로 변환할 수 있을 뿐만 아니라 전기 신호를 사람이 들을 수 없는 음파로 변환할 수 있다. 일부 실시예들에서, 오디오 회로(1107)는 또한 헤드폰 잭을 포함할 수 있다.The
위치 결정 컴포넌트(1108)는 내비게이션 또는 위치 기반 서비스(LBS)를 구현하기 위해 단말(1100)의 현재 지리적 위치를 찾도록 구성된다. 위치 결정 구성 요소(1108)는 미국 GPS(Global Positioning System), 중국 베이도우 시스템 또는 러시아 갈릴레오 시스템에 기초한 위치 결정 구성 요소일 수 있다.The
전원(1109)은 단말(1100)의 다양한 구성 요소에 전원을 공급하도록 구성된다. 전원(1109)은 교류, 직류, 일회용 배터리 또는 재충전 가능 배터리일 수 있다. 전원(1109)이 충전식 배터리를 포함하는 경우, 충전식 배터리는 유선 충전식 배터리 또는 무선 충전식 배터리일 수 있다. 유선 충전식 배터리는 유선으로 충전되는 배터리이고, 무선 충전식 배터리는 무선 코일로 충전되는 배터리이다. 충전식 배터리는 급속 충전 기술을 지원하는 데에도 사용할 수 있다.The
일부 실시예에서, 단말(1100)은 하나 이상의 센서(1110)를 더 포함한다. 하나 이상의 센서(1110)는 가속 센서(1111), 자이로스코프 센서(1112), 압력 센서(1113), 지문 센서(1114), 광학 센서(1115) 및 근접 센서(1116)를 포함하지만 이에 제한되지는 않는다.In some embodiments, the terminal 1100 further includes one or more sensors 1110 . The one or more sensors 1110 include, but are not limited to, an acceleration sensor 1111 , a gyroscope sensor 1112 , a pressure sensor 1113 , a fingerprint sensor 1114 , an optical sensor 1115 , and a proximity sensor 1116 . does not
가속도 센서(1111)는 단말(1100)에 의해 설정된 좌표계의 3개의 좌표축 상의 가속도의 크기를 검출할 수 있다. 예를 들어, 가속도 센서(1111)는 3개의 좌표축 상의 중력 가속도의 성분을 검출하도록 구성될 수 있다. 프로세서(1101)는 가속도 센서(1111)에 의해 수집된 중력 가속도 신호에 따라 사용자 인터페이스를 가로 또는 세로로 표시하도록 터치 디스플레이(1105)를 제어할 수 있다. 가속도 센서(1111)는 게임의 데이터 또는 사용자의 움직임 데이터를 수집하도록 구성될 수도 있다.The acceleration sensor 1111 may detect the magnitude of acceleration on three coordinate axes of the coordinate system set by the
자이로스코프 센서(1112)는 단말(1100)의 신체 방향 및 회전 각도를 검출할 수 있고, 자이로스코프 센서(1112)는 가속도 센서(1111)와 협력하여 단말(1100)에 대한 사용자의 3D 움직임을 수집할 수 있다. 자이로스코프 센서(1112)에 의해 수집된 프로세서(1101)는 (사용자의 틸팅 동작에 따라 UI를 변경하는 것과 같은) 모션 센싱, 촬영 시의 이미지 안정화, 게임 제어 및 관성 항법과 같은 기능을 구현할 수 있다.The gyroscope sensor 1112 may detect the body orientation and rotation angle of the terminal 1100 , and the gyroscope sensor 1112 cooperates with the acceleration sensor 1111 to collect 3D movement of the user with respect to the
압력 센서(1113)는 단말(1100)의 측면 베젤 및/또는 터치 디스플레이(1105)의 하위 레이어에 배치될 수 있다. 압력 센서(1113)가 단말(1100)의 측면 베젤에 배치될 때, 단말(1100)에 대한 사용자의 유지 신호(holding signal)가 감지될 수 있으며, 유지 신호에 따라 왼손 및 오른손 인식 또는 단축키 동작이 수행될 수 있다. 압력 센서(1113)가 터치 디스플레이(1105)의 하위 레이어에 배치될 때, UI 인터페이스에 대한 조작성 제어는 터치 디스플레이(1105)에 대한 사용자의 압력 조작에 따라 제어될 수 있다. 조작성 제어는 버튼 제어, 스크롤 막대 컨트롤, 아이콘 컨트롤 및 메뉴 컨트롤 중 적어도 하나를 포함한다.The pressure sensor 1113 may be disposed on a side bezel of the terminal 1100 and/or a lower layer of the
지문 센서(1114)는 수집된 지문에 따라 사용자의 신원을 식별하기 위해 사용자의 지문을 수집하도록 구성된다. 사용자의 신원이 신뢰할 수 있는 신원임을 식별하면, 프로세서(1101)는 사용자에게 화면 잠금 해제, 암호화된 정보 보기, 소프트웨어 다운로드, 지불 및 변경 설정 등을 포함하는 관련 민감한 동작을 수행할 수 있는 권한을 부여한다. 지문 센서(1114)는 단말(1100)의 전면, 후면 또는 측면에 배치될 수 있다. 단말(1100)에 물리 버튼 또는 제조사 로고가 배치될 때, 지문 센서(1114)는 물리 버튼 또는 제조업체 로고와 통합될 수 있다.The fingerprint sensor 1114 is configured to collect the user's fingerprint to identify the user's identity according to the collected fingerprint. Upon identifying the user's identity as a trusted identity, the
광학 센서(1115)는 주변 광 강도를 수집하도록 구성된다. 일 실시예에서, 프로세서(1101)는 광학 센서(1115)에 의해 수집된 주변 광 강도에 따라 터치 디스플레이(1105)의 디스플레이 밝기를 제어할 수 있다. 구체적으로, 주변 광 강도가 비교적 높을 때, 터치 디스플레이(1105)의 디스플레이 밝기가 상승되고; 주변 광 강도가 비교적 낮으면, 터치 디스플레이(1105)의 디스플레이 밝기가 낮아진다. 다른 실시예에서, 프로세서(1101)는 또한 광 센서(1115)에 의해 수집된 주변 광 강도에 따라 카메라 어셈블리(1106)의 촬영 파라미터를 동적으로 조정할 수 있다.Optical sensor 1115 is configured to collect ambient light intensity. In one embodiment, the
거리 센서라고도 하는 근접 센서(1116)는 보통 단말(1100)의 전면에 배치된다. 근접 센서(1116)는 사용자와 단말(1100)의 전면 사이의 거리를 수집하도록 구성된다. 실시예에서, 근접 센서(1116)가 사용자와 단말(1100)의 전면 사이의 거리가 점차 감소하고 있음을 검출하면, 프로세서(1101)는 터치 스크린(1105)을 제어하여 브라이트 스크린 상태에서 블랙아웃 스크린 상태로 전환하고; 근접 센서(1116)가 사용자와 단말(1100)의 전면 사이의 거리가 점차 증가하고 있음을 검출하면, 프로세서(1101)는 블랙아웃 스크린 상태에서 브라이트 스크린 상태로 전환하도록 터치 디스플레이(1105)를 제어한다.The proximity sensor 1116 , also called a distance sensor, is usually disposed on the front side of the
당업자는 도 11에 도시된 구조가 단말(1100)에 대한 제한을 구성하지 않으며, 단말은 도면에 도시된 것보다 더 많은 구성 요소를 포함하거나 더 적은 구성 요소를 포함할 수 있거나, 일부 구성 요소가 결합되거나, 상이한 구성 요소 배치가 사용될 수 있다는 것을 이해할 수 있을 것이다.A person skilled in the art will know that the structure shown in FIG. 11 does not constitute a limitation for the terminal 1100, and the terminal may include more or fewer components than those shown in the figure, or some components may be It will be appreciated that combined or different component arrangements may be used.
예시적 실시예에서, 적어도 하나의 명령, 적어도 하나의 프로그램 및 코드 세트 또는 명령 세트를 저장하는 컴퓨터 판독 가능 저장 매체가 더 제공되며, 적어도 하나의 명령은 적어도 하나의 프로그램, 및 코드 세트 또는 명령 세트는 전술한 실시예에서 제공되는 서명 생성 방법을 구현하기 위해 프로세서에 의해 로드 및 실행된다. 예를 들어, 컴퓨터 판독 가능 저장 매체는 ROM, 랜덤 액세스 메모리(RAM), CD-ROM, 자기 테이프, 플로피 디스크, 광학 데이터 저장 장치 등일 수 있다.In an exemplary embodiment, there is further provided a computer-readable storage medium storing at least one instruction, at least one program and a code set or set of instructions, wherein the at least one instruction comprises at least one program, and a code set or set of instructions. is loaded and executed by the processor to implement the signature generation method provided in the above-described embodiment. For example, the computer-readable storage medium may be a ROM, random access memory (RAM), a CD-ROM, magnetic tape, a floppy disk, an optical data storage device, or the like.
일 예에서, 전술한 전자 장치는 도 12에 도시된 서버(1200)로서 제공될 수 있다. 도 12는 본 개시의 일 실시예에 따른 서버의 구조적 블록도이다. 예를 들어, 서버(1200)는 노드로 제공될 수 있다. 도 12를 참조하면, 서버(1200)는 프로세싱 컴포넌트(1222)를 포함하고, 서버(1200)는 하나 이상의 프로세서, 및 메모리(132)로 표현되는 메모리 자원을 더 포함한다. 메모리 자원은 프로세싱 컴포넌트(1222)에 의해 실행될 수 있는 명령을 저장하기 위해 사용된다. 예를 들어 응용 프로그램이다. 메모리(1232)에 저장된 애플리케이션 프로그램은 각각이 일련의 명령에 대응하는 하나 이상의 모듈을 포함할 수 있다. 또한, 프로세싱 컴포넌트(1222)는 도 2, 도 4 및 도 7에 도시된 실시예들에서 임의의 서명 생성 방법에서 서버 측의 방법 동작들을 수행하기 위해 명령을 실행하도록 구성된다.In one example, the above-described electronic device may be provided as the
서버(1200)는 서버(1200)의 전원 공급 관리를 실행하도록 구성된 전원 공급 장치 컴포넌트(1226), 서버(1200)를 네트워크에 연결하도록 구성된 유선 또는 무선 네트워크 인터페이스(1250) 및 입/출력(I/O) 인터페이스를 더 포함할 수 있다. 서버(1200)는 메모리(1232)에 저장된 운영 체제, 예를 들어 Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM, 또는 FreeBSDTM를 작동시킬 수 있다.The
예시적인 실시예에서, 컴퓨터 판독 가능 저장 매체가 더 제공되며, 상기 저장 매체는 적어도 하나의 명령을 저장하며, 상기 적어도 하나의 명령은 전술한 실시예에서 제공되는 서명 생성 방법을 구현하기 위해 프로세서에 의해 로드 및 실행된다. 예를 들어, 컴퓨터 판독 가능 저장 매체는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광학 데이터 저장 장치 등일 수 있다.In an exemplary embodiment, there is further provided a computer-readable storage medium, wherein the storage medium stores at least one instruction, the at least one instruction being transmitted to a processor to implement the method for generating a signature provided in the above-described embodiment. loaded and executed by For example, the computer-readable storage medium may be a ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage device, or the like.
본 명세서를 고려하고 본 개시를 실시한 후, 당업자는 본 개시의 다른 구현을 쉽게 생각할 수 있을 것이다. 본 출원은 본 개시의 임의의 변형, 사용 또는 적응적 변경을 포함하도록 의도된다. 이러한 변형, 사용 또는 적응적 변경은 본 개시의 일반적인 원리를 따르고, 본 개시에서 개시되지 않은 일반적인 지식 또는 일반적인 기술적 수단을 포함한다. 본 명세서 및 실시예는 단지 예시적인 것으로 간주되며, 본 개시의 실제 범위 및 사상은 다음의 청구 범위에서 지적된다.Other implementations of the present disclosure will occur to those skilled in the art after consideration of this specification and practice of the present disclosure. This application is intended to cover any modifications, uses or adaptations of this disclosure. Such modifications, uses or adaptive changes follow the general principles of the present disclosure, and include general knowledge or general technical means not disclosed in the present disclosure. The specification and examples are to be regarded as illustrative only, the true scope and spirit of the disclosure being pointed out in the claims that follow.
본 출원은 전술되고 첨부 도면에 도시된 정확한 구조로 제한되지 않으며, 본 개시의 범위를 벗어나지 않고 다양한 수정 및 변경이 이루어질 수 있음을 이해해야 한다. 본 개시의 범위는 첨부된 청구 범위에 의해서만 제한된다.It is to be understood that the present application is not limited to the precise structure described above and shown in the accompanying drawings, and that various modifications and changes may be made thereto without departing from the scope of the present disclosure. The scope of the present disclosure is limited only by the appended claims.
Claims (20)
서명될 메시지(to-be-signed message) 및 복수의 서명 파티(signature party)의 고윳값에 따라 메시지 요약을 생성하는 단계 - 각각의 서명 파티의 고윳값은 상기 서명 파티의 난수에 따른 계산을 통해 획득됨 - ;
상기 복수의 서명 파티의 개인 키(private key), 공개 키 및 하위 서명을 획득하는 단계 - 각각의 서명 파티의 하위 서명은 상기 서명 파티의 난수, 상기 메시지 요약 및 상기 서명 파티의 개인 키에 따른 계산을 통해 획득됨 - ;
상기 복수의 서명 파티의 공개 키에 따라 집계 공개 키(aggregation public key)를 생성하는 단계 - 상기 집계 공개 키의 길이는 스플라이싱(splicing) 후 복수의 공개 키의 길이보다 짧음 - ; 및
복수의 하위 서명의 합산 값 및 상기 메시지 요약에 따라 집계 서명을 생성하는 단계
를 포함하고,
상기 복수의 하위 서명의 합산 값 및 상기 메시지 요약에 따라 집계 서명을 생성하는 단계는,
상기 복수의 하위 서명의 합산 값에 따라 집계 하위 서명을 생성하고, 상기 집계 하위 서명 및 상기 메시지 요약을 스플라이싱하며, 스플라이싱 후에 획득된 결과를 상기 집계 서명으로서 결정하는 단계
를 포함하는,
서명 생성 방법.A method of generating a signature performed by an electronic device, the method comprising:
Generating a message digest according to a to-be-signed message and an eigenvalue of a plurality of signature parties - The eigenvalue of each signing party is calculated according to the random number of the signing party Acquired - ;
obtaining a private key, a public key and a sub-signature of the plurality of signing parties, wherein the sub-signature of each signing party is calculated according to the random number of the signing party, the message digest and the private key of the signing party Acquired through - ;
generating an aggregation public key according to the public keys of the plurality of signing parties, the length of the aggregate public key being shorter than the length of the plurality of public keys after splicing; and
generating an aggregate signature according to the sum of the plurality of sub-signatures and the message digest;
including,
generating an aggregate signature according to the sum value of the plurality of sub-signatures and the message summary;
generating an aggregate sub-signature according to the sum of the plurality of sub-signatures, splicing the aggregate sub-signature and the message digest, and determining a result obtained after splicing as the aggregate signature;
containing,
How to create a signature.
상기 서명될 메시지 및 복수의 서명 파티의 고윳값에 따라 메시지 요약을 생성하는 단계는,
상기 복수의 서명 파티의 고윳값, 상기 서명될 메시지 및 제1 값을 획득하는 단계;
상기 복수의 서명 파티의 고윳값 및 상기 제1 값에 따라 집계 고윳값을 생성하는 단계; 및
상기 집계 고윳값, 상기 서명될 메시지 및 미리 설정된 단방향 해시 함수(one-way hash function)에 따라 메시지 요약을 생성하는 단계
를 포함하는, 서명 생성 방법. According to claim 1,
generating a message digest according to the message to be signed and the eigenvalues of a plurality of signing parties;
obtaining an eigenvalue of the plurality of signing parties, the message to be signed, and a first value;
generating an aggregate eigenvalue according to the eigenvalues of the plurality of signature parties and the first value; and
generating a message digest according to the aggregate eigenvalue, the message to be signed, and a preset one-way hash function;
A method of generating a signature, comprising:
상기 복수의 고윳값 및 상기 제1 값에 따라 집계 고윳값을 생성하는 단계는,
상기 복수의 고윳값의 곱을 계산하고, 상기 복수의 고윳값의 곱 및 상기 제1 값에 따라 상기 집계 고윳값을 생성하는 단계
를 포함하는, 서명 생성 방법.3. The method of claim 2,
The step of generating an aggregate eigenvalue according to the plurality of eigenvalues and the first value comprises:
calculating the product of the plurality of eigenvalues, and generating the aggregate eigenvalue according to the product of the plurality of eigenvalues and the first value;
A method of generating a signature, comprising:
상기 복수의 서명 파티의 공개 키에 따라 집계 공개 키를 생성하는 단계는,
상기 복수의 공개 키의 곱을 계산하고, 상기 복수의 공개 키의 곱 및 상기 제1 값에 따라 상기 집계 공개 키를 생성하는 단계
를 포함하는, 서명 생성 방법.3. The method of claim 2,
The step of generating an aggregate public key according to the public keys of the plurality of signing parties includes:
calculating a product of the plurality of public keys, and generating the aggregate public key according to the product of the plurality of public keys and the first value;
A method of generating a signature, comprising:
상기 전자 장치는 데이터 공유 시스템에서 클라이언트 장치이고, 상기 복수의 서명 파티는 상기 클라이언트 장치에 의해 제공되는 복수의 계정 주소이며, 상기 서명될 메시지는 각각의 계정 주소에 대응하는 값 전달 정보인, 서명 생성 방법.According to claim 1,
wherein the electronic device is a client device in a data sharing system, the plurality of signing parties are a plurality of account addresses provided by the client device, and the message to be signed is value transfer information corresponding to each account address. Way.
상기 전자 장치는 데이터 공유 시스템에서 클라이언트 장치이고, 상기 서명될 메시지는 계약 데이터이며, 상기 계약 데이터는 거래를 완료하는 조건을 제한하는 데 사용되는, 서명 생성 방법.According to claim 1,
wherein the electronic device is a client device in a data sharing system, the message to be signed is contract data, and the contract data is used to limit conditions for completing a transaction.
상기 전자 장치는 데이터 공유 시스템에서 리더 노드(leader node)이고, 상기 복수의 서명 파티 각각은 데이터 공유 시스템에서 팔로어 노드(follower node)이고,
상기 서명될 메시지 및 복수의 서명 파티의 고윳값에 따라 메시지 요약을 생성하는 단계 이후에, 상기 서명 생성 방법은:
상기 데이터 공유 시스템에서 상기 팔로어 노드에 상기 메시지 요약을 전송하는 단계
를 더 포함하며,
상기 복수의 서명 파티의 공개 키 및 하위 서명을 획득하는 단계는,
각각의 팔로워 노드에 의해 송신되는 공개 키 및 하위 서명을 수신하는 단계
를 포함하고,
상기 복수의 하위 서명의 합산 값 및 상기 메시지 요약에 따라 집계 서명을 생성하는 단계 이후에, 상기 서명 생성 방법은,
상기 집계 공개 키 및 상기 집계 서명을 각각의 팔로어 노드에 전송하는 단계
를 더 포함하는 서명 생성 방법.According to claim 1,
The electronic device is a leader node in the data sharing system, and each of the plurality of signature parties is a follower node in the data sharing system,
After generating the message digest according to the to-be-signed message and the eigenvalues of a plurality of signing parties, the signature generating method comprises:
sending the message digest to the follower node in the data sharing system
further comprising,
The step of obtaining the public keys and sub-signatures of the plurality of signing parties includes:
receiving the public key and sub-signature sent by each follower node;
including,
After generating an aggregate signature according to the sum of the plurality of sub-signatures and the message digest, the signature generating method comprises:
sending the aggregate public key and the aggregate signature to each follower node;
A signature generation method further comprising a.
각 서명 파티의 난수를 획득하고, 상기 난수에 따라 각 서명 파티의 고윳값을 생성하는 단계;
서명될 메시지, 각 서명 파티의 개인 키(private key) 및 공개 키를 획득하는 단계;
메시지 요약을 생성하는 단계 - 상기 메시지 요약은 상기 서명될 메시지 및 모든 서명 파티의 고윳값에 따라 서명 집계 파티에 의한 계산을 통해 획득됨 - ;
상기 메시지 요약, 상기 난수 및 상기 개인 키에 따라 하위 서명을 생성하는 단계; 및
서명 파티가 복수일 경우, 복수의 하위 서명의 합산 값에 따라 집계 하위 서명을 생성하고, 상기 집계 하위 서명 및 상기 메시지 요약을 스플라이싱하며, 스플라이싱 후에 획득된 결과를 집계 서명으로서 결정하는 단계
를 포함하는 서명 생성 방법.A method for generating a signature comprising:
obtaining a random number of each signature party, and generating an eigenvalue of each signature party according to the random number;
obtaining a message to be signed, a private key and a public key of each signing party;
generating a message digest, wherein the message digest is obtained through calculation by a signing aggregation party according to the to-be-signed message and an eigenvalue of all signing parties;
generating a sub-signature according to the message digest, the random number and the private key; and
When there are a plurality of signing parties, generating an aggregate sub-signature according to the sum of the plurality of sub-signatures, splicing the aggregate sub-signature and the message digest, and determining a result obtained after splicing as an aggregate signature. step
A method of generating a signature, including
상기 난수를 획득하고, 상기 난수에 따라 고윳값을 생성하는 단계는,
제1 값 및 제2 값 를 획득하는 단계 - 상기 제1 값 및 상기 제2 값 는 소수이고, 는 의 인수이고, 및 임 - ;
생성 기준(generation base) 를 획득하는 단계 - 는 이 로 정확하게 나누어질 수 있음을 만족함 - ; 및
상기 난수를 획득하는 단계 - 상기 난수의 값 범위는 임 - ; 및
상기 난수, 상기 생성 기준 및 상기 제1 값에 따라 상기 고윳값을 생성하는 단계
를 포함하는, 서명 생성 방법.10. The method of claim 9,
Obtaining the random number and generating an eigenvalue according to the random number comprises:
first value and a second value obtaining - the first value and the second value is a prime number, Is is the argument of and Lim - ;
generation base Steps to obtain - Is this It is satisfied that it can be precisely divided into - ; and
obtaining the random number - the value range of the random number is Lim - ; and
generating the eigenvalue according to the random number, the generation criterion, and the first value;
A method of generating a signature, comprising:
상기 메시지 요약, 상기 난수 및 상기 개인 키에 따라 하위 서명을 생성하는 단계 이후에, 상기 서명 생성 방법은,
상기 서명 생성 방법이 데이터 공유 시스템에서 팔로워 노드에 적용되는 경우 상기 서명 집계 파티에 상기 하위 서명 및 상기 공개 키를 전송하는 단계
를 더 포함하는 서명 생성 방법.10. The method of claim 9,
After generating a sub-signature according to the message digest, the random number and the private key, the signature generating method comprises:
transmitting the sub-signature and the public key to the signature aggregation party when the signature generation method is applied to a follower node in a data sharing system;
A signature generation method further comprising a.
프로세서; 및
컴퓨터 프로그램을 저장하도록 구성된 메모리
를 포함하며,
상기 프로세서는 상기 메모리에 저장되어 있는 상기 컴퓨터 프로그램을 실행하여, 제1항 내지 제4항, 제6항 내지 제11항 중 어느 한 항에 따른 방법의 작동을 수행하도록 구성되어 있는, 전자 장치.An electronic device comprising:
processor; and
memory configured to store computer programs
includes,
The electronic device, wherein the processor is configured to execute the computer program stored in the memory to perform the operation of the method according to any one of claims 1 to 4, 6 to 11.
상기 컴퓨터 프로그램은, 프로세서에 의해 실행될 때, 제1항 내지 제4항, 제6항 내지 제11항 중 어느 한 항에 따른 방법의 작동을 수행하도록 구성되어 있는, 컴퓨터 판독 가능형 저장 매체.A computer-readable storage medium storing a computer program, comprising:
The computer program, when executed by a processor, is configured to perform the operation of the method according to any one of claims 1 to 4, 6 to 11.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711106750.7A CN107968708B (en) | 2017-11-10 | 2017-11-10 | Method, device, terminal and server for generating signature |
CN201711106750.7 | 2017-11-10 | ||
PCT/CN2018/111928 WO2019091289A1 (en) | 2017-11-10 | 2018-10-25 | Method for generating signature, electronic device, and storage medium |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200003144A KR20200003144A (en) | 2020-01-08 |
KR102350462B1 true KR102350462B1 (en) | 2022-01-11 |
Family
ID=62000078
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197035599A KR102350462B1 (en) | 2017-11-10 | 2018-10-25 | Signature generation method, electronic device and storage medium |
Country Status (6)
Country | Link |
---|---|
US (1) | US11128450B2 (en) |
EP (1) | EP3611872A4 (en) |
JP (1) | JP6966572B2 (en) |
KR (1) | KR102350462B1 (en) |
CN (2) | CN107968708B (en) |
WO (1) | WO2019091289A1 (en) |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107968708B (en) * | 2017-11-10 | 2020-01-17 | 财付通支付科技有限公司 | Method, device, terminal and server for generating signature |
CN108650097B (en) * | 2018-04-28 | 2021-03-09 | 上海扈民区块链科技有限公司 | Efficient digital signature aggregation method |
US11769156B2 (en) * | 2018-05-15 | 2023-09-26 | International Business Machines Corporation | Automated data projection for smart contract groups on a blockchain |
CN109064146B (en) * | 2018-08-07 | 2021-05-11 | 中钞信用卡产业发展有限公司杭州区块链技术研究院 | Digital currency transaction method, equipment, system, terminal and client wallet |
CN110826091B (en) * | 2018-08-14 | 2022-05-06 | 珠海金山办公软件有限公司 | File signature method and device, electronic equipment and readable storage medium |
CN110941859A (en) * | 2018-09-21 | 2020-03-31 | 上海派链信息科技有限公司 | Method, apparatus, computer-readable storage medium, and computer program product for block chain formation consensus |
CN110943838A (en) * | 2018-09-21 | 2020-03-31 | 上海派链信息科技有限公司 | Method, apparatus and storage medium for determining consensus of blocks in a blockchain network |
CN112968884B (en) * | 2018-09-27 | 2023-03-24 | 福建福链科技有限公司 | Block chain heterogeneous consensus method and terminal for preventing hacker attack |
US20200167779A1 (en) * | 2018-11-27 | 2020-05-28 | Akamai Technologies, Inc. | High performance distributed system of record with confidence-based consensus |
CN109672535B (en) * | 2018-12-11 | 2021-10-08 | 成都四方伟业软件股份有限公司 | Alliance chain signature generation method and device |
CN111385096B (en) * | 2018-12-28 | 2023-08-08 | 北京沃东天骏信息技术有限公司 | Block chain network system, signature processing method, terminal and storage medium |
CN110084600B (en) * | 2019-04-29 | 2021-08-27 | 百度在线网络技术(北京)有限公司 | Processing and verifying method, device, equipment and medium for resolution transaction request |
CN110209683B (en) * | 2019-06-05 | 2021-11-16 | 北京资源律动科技有限公司 | System for acquiring environmental data in real time and writing environmental data into block chain |
CN110247774A (en) * | 2019-06-28 | 2019-09-17 | 深圳市网心科技有限公司 | A kind of the common recognition method and relevant device of block chain data |
CN112689848B (en) * | 2019-06-28 | 2024-06-11 | 深圳市网心科技有限公司 | Method and related equipment for consensus of block chain data |
CN110300172B (en) * | 2019-06-28 | 2022-06-07 | 深圳市迅雷网络技术有限公司 | Block chain data consensus method and related equipment |
CN110363513A (en) * | 2019-07-15 | 2019-10-22 | 湖南智慧政务区块链科技有限公司 | Payment unions method and apparatus based on block chain |
CN110401541A (en) * | 2019-07-26 | 2019-11-01 | 深圳市网心科技有限公司 | Thresholding voting method, system and relevant device based on EC-Schnoor signature algorithm |
CN110505064A (en) * | 2019-07-26 | 2019-11-26 | 深圳市网心科技有限公司 | Thresholding voting method, system and relevant device based on EC-Schnoor signature algorithm |
CN110400409B (en) * | 2019-07-26 | 2022-02-22 | 深圳市迅雷网络技术有限公司 | Threshold voting method, system and related equipment based on BLS signature algorithm |
CN110401537A (en) * | 2019-07-26 | 2019-11-01 | 深圳市网心科技有限公司 | Thresholding voting method, system and relevant device based on BLS signature algorithm |
CN110830259A (en) * | 2019-08-06 | 2020-02-21 | 贵州大学 | Method and system for providing originality and integrity certification for multimedia data |
US11588645B1 (en) * | 2019-09-06 | 2023-02-21 | University Of South Florida | Systems and methods for compromise resilient and compact authentication for digital forensics |
US11411721B2 (en) * | 2019-09-27 | 2022-08-09 | Cypherium Blockchain Inc. | Systems and methods for selecting and utilizing a committee of validator nodes in a distributed system |
CN111314067B (en) * | 2020-02-05 | 2021-04-16 | 腾讯科技(深圳)有限公司 | Block storage method and device, computer equipment and storage medium |
KR102371528B1 (en) * | 2020-02-14 | 2022-03-07 | 구글 엘엘씨 | Securing multi-party reach and frequency estimation |
CN111371564B (en) * | 2020-03-04 | 2023-02-03 | 深圳大学 | Digital signature and block chain transaction method and device and electronic equipment |
CN111476572B (en) * | 2020-04-09 | 2024-03-19 | 财付通支付科技有限公司 | Block chain-based data processing method, device, storage medium and equipment |
CN113592638A (en) * | 2020-04-30 | 2021-11-02 | 顺丰科技有限公司 | Transaction request processing method and device and alliance chain |
CN111478772B (en) * | 2020-06-22 | 2020-10-16 | 杭州趣链科技有限公司 | Assembly line friendly signature and signature verification method, device and storage medium |
CN111769938B (en) * | 2020-06-29 | 2023-03-24 | 福建福链科技有限公司 | Key management system and data verification system of block chain sensor |
EP4175217A4 (en) * | 2020-06-30 | 2023-08-23 | Fujitsu Limited | Signature control method, signature control program, and information processing device |
CN114124396B (en) * | 2020-09-01 | 2023-12-01 | 中国电信股份有限公司 | Information transmission method, system and storage medium |
CN112261082B (en) * | 2020-09-21 | 2021-11-19 | 中国科学院计算技术研究所 | Passive DNS data sharing method and system based on block chain and safe multi-party computation |
CN112346776A (en) * | 2020-11-04 | 2021-02-09 | 浙江大华技术股份有限公司 | Firmware packaging method and device, secure starting method and device, storage medium and electronic equipment |
CN112380575B (en) * | 2020-11-17 | 2024-03-15 | 深圳市联创知识产权服务中心 | Multiparty electronic signature synthesis method, device, equipment and storage medium |
CN112468304B (en) * | 2020-11-27 | 2024-05-03 | 湖南赛吉智慧城市建设管理有限公司 | Data encryption method, device, computer equipment and storage medium |
US11675650B2 (en) * | 2020-12-30 | 2023-06-13 | Mission Secure, Inc. | System and method for n-modular redundant communication |
EP4280537A4 (en) * | 2021-01-14 | 2024-01-24 | Fujitsu Limited | Control method, control program, and information processing device |
CN113055188B (en) * | 2021-03-02 | 2022-04-15 | 腾讯科技(深圳)有限公司 | Data processing method, device, equipment and storage medium |
KR20220161035A (en) * | 2021-05-28 | 2022-12-06 | 삼성에스디에스 주식회사 | Method for proving original of data, user terminal and key management server therefor |
CN113742709B (en) * | 2021-09-13 | 2023-09-05 | 抖音视界有限公司 | Information processing method and device, readable medium and electronic equipment |
KR102439195B1 (en) * | 2022-05-03 | 2022-08-31 | 세종대학교산학협력단 | Method and system for generating multi signature, and computing device for executing the same |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106549909A (en) * | 2015-09-17 | 2017-03-29 | 阿里巴巴集团控股有限公司 | A kind of authority checking method and apparatus |
WO2017186317A1 (en) * | 2016-10-04 | 2017-11-02 | Nec Europe Ltd. | Method and system for byzantine fault-tolerance replicating of data on a plurality of servers |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001142397A (en) * | 1998-10-30 | 2001-05-25 | Hitachi Ltd | Digital signature method, method and system for managing secret information |
JP4194745B2 (en) * | 2000-09-19 | 2008-12-10 | 株式会社エヌ・ティ・ティ・データ | Electronic signature system and electronic signature method |
AU2009200408B2 (en) * | 2006-09-12 | 2012-05-10 | Cpc Patent Technologies Pty Ltd | Password generator |
US8595504B2 (en) * | 2008-08-12 | 2013-11-26 | Industrial Technology Research Institute | Light weight authentication and secret retrieval |
JP5669204B2 (en) * | 2011-03-17 | 2015-02-12 | Necソリューションイノベータ株式会社 | Distributed information management system, distributed information management method, and distributed information management program |
US9713019B2 (en) * | 2011-08-17 | 2017-07-18 | CBF Networks, Inc. | Self organizing backhaul radio |
US9141823B2 (en) * | 2013-03-15 | 2015-09-22 | Veridicom, Sa De Cv | Abstraction layer for default encryption with orthogonal encryption logic session object; and automated authentication, with a method for online litigation |
CN103414731A (en) * | 2013-08-29 | 2013-11-27 | 青岛大学 | Identity-based aggregate signature method with parallel key-insulation |
FR3023400A1 (en) * | 2014-07-04 | 2016-01-08 | Schneider Electric Ind Sas | METHOD FOR MANAGING THE INSTALLATION OF AN APPLICATION ON AN ELECTRONIC DEVICE |
CN104462965B (en) * | 2014-11-14 | 2018-03-13 | 华为技术有限公司 | Application integrity verification method and the network equipment |
US9853977B1 (en) * | 2015-01-26 | 2017-12-26 | Winklevoss Ip, Llc | System, method, and program product for processing secure transactions within a cloud computing system |
US9762393B2 (en) * | 2015-03-19 | 2017-09-12 | Conduent Business Services, Llc | One-to-many matching with application to efficient privacy-preserving re-identification |
CN105162760B (en) * | 2015-07-28 | 2018-08-14 | 郝孟一 | Randomly select method, apparatus and system |
US9948460B2 (en) * | 2015-08-28 | 2018-04-17 | City University Of Hong Kong | Multivariate cryptography based on clipped hopfield neural network |
CN105721413B (en) * | 2015-09-08 | 2018-05-29 | 腾讯科技(深圳)有限公司 | Method for processing business and device |
CN105406970B (en) * | 2015-10-21 | 2019-03-12 | 浪潮电子信息产业股份有限公司 | Method and device, the method and device of verifying signature of signature |
US11025407B2 (en) * | 2015-12-04 | 2021-06-01 | Verisign, Inc. | Hash-based digital signatures for hierarchical internet public key infrastructure |
US10567377B2 (en) * | 2016-05-23 | 2020-02-18 | Pemian & Corella, LLC | Multifactor privacy-enhanced remote identification using a rich credential |
CN106296200A (en) * | 2016-08-13 | 2017-01-04 | 深圳市樊溪电子有限公司 | Distributed photovoltaic electric power transaction platform based on block chain technology |
GB2538022B (en) * | 2016-08-20 | 2018-07-11 | PQ Solutions Ltd | Multiple secrets in quorum based data processing |
US10218511B2 (en) * | 2016-12-23 | 2019-02-26 | Amazon Technologies, Inc. | Signature delegation |
US10243939B2 (en) * | 2016-12-23 | 2019-03-26 | Amazon Technologies, Inc. | Key distribution in a distributed computing environment |
US10230525B2 (en) * | 2016-12-23 | 2019-03-12 | Amazon Technologies, Inc. | Public key rollup for merkle tree signature scheme |
US10511445B1 (en) * | 2017-01-05 | 2019-12-17 | Amazon Technologies, Inc. | Signature compression for hash-based signature schemes |
US10608824B1 (en) * | 2017-01-09 | 2020-03-31 | Amazon Technologies, Inc. | Merkle signature scheme tree expansion |
CN106888096B (en) * | 2017-03-23 | 2019-10-08 | 西安电子科技大学 | Secure broadcast multi-signature method based on obfuscation |
CN107171788B (en) * | 2017-04-08 | 2020-06-30 | 西安邮电大学 | Identity-based online and offline aggregated signature method with constant signature length |
CN107222482A (en) * | 2017-06-01 | 2017-09-29 | 黑龙江卓亚科技有限公司 | A kind of data management system and method based on compound block chain network |
US10581613B2 (en) * | 2017-06-09 | 2020-03-03 | Ecole Polytechnique Federale De Lausanne (Epfl) | Cryptographically verifiable data structure having multi-hop forward and backwards links and associated systems and methods |
US10862831B2 (en) * | 2017-08-03 | 2020-12-08 | Digital 14 Llc | System, method, and computer program product providing end-to-end security of centrally accessible group membership information |
US10601907B2 (en) * | 2017-09-22 | 2020-03-24 | Artiste QB Net Inc. | System and method for platform to securely distribute compute workload to web capable devices |
CN107968708B (en) * | 2017-11-10 | 2020-01-17 | 财付通支付科技有限公司 | Method, device, terminal and server for generating signature |
-
2017
- 2017-11-10 CN CN201711106750.7A patent/CN107968708B/en active Active
- 2017-11-10 CN CN201911269567.8A patent/CN110971414B/en active Active
-
2018
- 2018-10-25 KR KR1020197035599A patent/KR102350462B1/en active IP Right Grant
- 2018-10-25 JP JP2019563382A patent/JP6966572B2/en active Active
- 2018-10-25 WO PCT/CN2018/111928 patent/WO2019091289A1/en unknown
- 2018-10-25 EP EP18876963.2A patent/EP3611872A4/en active Pending
-
2019
- 2019-11-07 US US16/676,902 patent/US11128450B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106549909A (en) * | 2015-09-17 | 2017-03-29 | 阿里巴巴集团控股有限公司 | A kind of authority checking method and apparatus |
WO2017186317A1 (en) * | 2016-10-04 | 2017-11-02 | Nec Europe Ltd. | Method and system for byzantine fault-tolerance replicating of data on a plurality of servers |
Non-Patent Citations (1)
Title |
---|
Zhang Jun, A Combination Multi-Signature Scheme, 2009 International Conference on Networking and Digital Society (2009.)* |
Also Published As
Publication number | Publication date |
---|---|
WO2019091289A1 (en) | 2019-05-16 |
CN107968708A (en) | 2018-04-27 |
US20200076586A1 (en) | 2020-03-05 |
JP2020520607A (en) | 2020-07-09 |
CN110971414A (en) | 2020-04-07 |
JP6966572B2 (en) | 2021-11-17 |
EP3611872A4 (en) | 2020-12-09 |
KR20200003144A (en) | 2020-01-08 |
CN110971414B (en) | 2021-05-04 |
EP3611872A1 (en) | 2020-02-19 |
CN107968708B (en) | 2020-01-17 |
US11128450B2 (en) | 2021-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102350462B1 (en) | Signature generation method, electronic device and storage medium | |
CN109615515B (en) | Credit right certificate transfer method, device, electronic equipment and storage medium | |
CN111245745B (en) | Message sending method, device, node equipment and storage medium | |
US12088566B2 (en) | User inviting method and apparatus, computer device, and computer-readable storage medium | |
CN111339086B (en) | Block processing method, and data query method and device based on block chain | |
CN111340482B (en) | Conflict detection method, device, node equipment and storage medium | |
CN111080443B (en) | Block chain-based service processing method, device, equipment and storage medium | |
CN108769992B (en) | User authentication method, device, terminal and storage medium | |
CN110597924B (en) | Block chain-based user identification processing method, device, equipment and storage medium | |
CN111339181B (en) | Block storage method, block storage device, node equipment and storage medium | |
CN111212074B (en) | Blockchain-based qualification identification method, device, equipment and storage medium | |
CN110290191B (en) | Resource transfer result processing method, device, server, terminal and storage medium | |
CN111062725B (en) | Face payment method, device and system and computer readable storage medium | |
CN110597840B (en) | Partner relationship establishment method, device, equipment and storage medium based on blockchain | |
CN110570289A (en) | service processing method, device, equipment and storage medium based on block chain | |
CN111198922A (en) | Game resource management method and device based on block chain | |
CN111131619B (en) | Account switching processing method, device and system | |
CN110971692B (en) | Method and device for opening service and computer storage medium | |
CN111191254A (en) | Access verification method and device, computer equipment and storage medium | |
CN115348262B (en) | Cross-link operation execution method and network system based on cross-link protocol | |
CN114357328B (en) | Cookie generating method, cookie generating device, electronic equipment and storage medium | |
CN114143012A (en) | Message queue management method, device, equipment and computer readable storage medium | |
CN111681001A (en) | Transaction record storage method, electronic device and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |