Key data processing method and apparatus, and server
4 claims: 1 independent, 3 dependent
- 1鍵データを処理するための方法であって、ブロックチェーン内の共有オブジェクトの元の鍵を取得するステップであって、前記元の鍵が、実行されるべき前記共有オブジェクトに対する操作を可能にする暗号鍵である、ステップと、前記元の鍵を共有する当事者の数を決定するステップであって、前記数の当事者は前記共有オブジェクトを共有する、ステップと、前記元の鍵を共有する当事者の前記数と同じ数の子鍵を生成するために、あらかじめ定められたアルゴリズムを使用することによって前記元の鍵を処理するステップであって、前記子鍵のすべてが取得されたときに前記元の鍵を復元することができるように、前記同じ数の子鍵が生成される、ステップと対応するオブジェクト共有当事者に前記子鍵を送信するステップと、前記元の鍵を削除するステップとを備 え、 前記あらかじめ定められたアルゴリズムが、 (N+1)の共有当事者がいる場合、N個の乱数Riを生成するステップであって、Riがi番目の乱数であり、i∈[1, N]である、ステップと、 素数Pを決定するステップであって、前記素数Pが、少なくとも前記元の鍵の値Sと前記乱数Riのいずれかより大きく、Riの範囲が[0, P-1]である、ステップと、 (N+1)個の子鍵を取得するために、1からN+1までのXの値についてモジュロ演算CX=P modulo (S+R 1 X+R 2 X 2 +R 3 X 3 +...+R N X N )を実行するステップであって、N≧1であり、XおよびNが整数である、ステップと を備える、 方法。
- 2前記共有オブジェクトが、前記ブロックチェーン内の資産を含む、請求項1に記載の方法。
- 3前記あらかじめ定められたアルゴリズムが、前記元の鍵を共有している当事者の前記数と同じ数の子鍵を生成するために、ランダムに生成された文字列を使用することによって前記元の鍵に対して動作を実行するステップを備える、請求項1または2のいずれか一項に記載の方法。
- 4前記ランダムに生成された文字列のうちの1つまたは複数の文字が、前記子鍵を生成するためにシーケンスで前記元の鍵に個別に挿入される、請求項3に記載の方法。
Independent claims4
132 paragraphs, as filed
Cross-reference to Related Applications This application claims priority from Chinese Patent Application No. 201710747807.5 filed on Aug. 28, 2017, which is incorporated herein by reference in its entirety.
TECHNICAL FIELD The implementations herein relate to the field of blockchain data processing technology, and in particular to a method and apparatus for processing key data, and a server.
Blockchain is a distributed database. This is a chained data structure obtained by combining blocks of data in chronological order. Encryption methods are used to ensure that the data cannot be tampered with or forged. Blockchain can effectively guarantee the reliability of data, so it will be applied in more fields.
<p>Data in a blockchain is typically signed and verified by using asymmetric cryptography. Transaction initiators in the blockchain can sign transactions by using the private key, and miners (computing nodes) can verify transactions by using the initiator's public key. Successful verification of a transaction can indicate that the funds used in the transaction belong to the regular asset owner, and information about the transaction is placed in a new block on the blockchain. In the blockchain asset transaction process, private keys are typically owned by a single party (Party) and stored, for example, in an individual's mobile phone or computer. Ownership and control of the asset can therefore be thought of as belonging to the party who owns the private key. In practice, however, some assets are shared by more than one person, such as real estate jointly owned by a couple, or a joint venture investment. If an asset needs to be shared by multiple parties, the parties must share the same private key. By using private keys, each shared party can control and trade assets, and can transfer assets without the knowledge of others. As a result, there is a relatively high transaction risk. Therefore, there is an urgent need for safer and more reliable methods to ensure the security of shared assets within blockchains.</p>
<p>Implementations herein are intended to provide a method and apparatus for processing key data, and a server. Therefore, the same number of Child Keys can be automatically generated based on the number of asset sharing parties, and the Original Key can be recovered by using the Child Keys during the transaction. Therefore, it effectively guarantees the security of asset sharing within the blockchain.</p><p>The method and apparatus for processing key data and the server provided in the implementations herein are implemented in the following manner.</p><p>The method of processing the key data includes the steps of obtaining the original key of the shared object in the blockchain, determining the number of parties sharing the original key, and creating as many children as the number of parties sharing the original key. processing an original key by using a predetermined algorithm to generate a key, the child key being used to recover the original key when the same number of child keys are obtained are performed.</p><p>A key data processing device obtains an original key of a shared object in the blockchain and shares the original key with an original key information obtaining module configured to determine the number of parties sharing the original key. a child-key generation module configured to process the original key by using a predetermined algorithm to generate as many child-keys as there are parties to the and a child key generation module used to recover the original key when the is obtained.</p><p>A key data processing device comprising a processor and a memory configured to store instructions executable by the processor, the instructions causing the processor to obtain the original key of the shared object in the blockchain determining the number of parties sharing the original key; and using a predetermined algorithm to generate as many child keys as there are parties sharing the original key. and the child key is used to recover the original key when the same number of child keys are obtained.</p><p>A server comprising at least one processor and a memory configured to store instructions executable by the processor, the instructions causing the processor to obtain the original key of the shared object in the blockchain. determining the number of parties sharing the original key; and using a predetermined algorithm to generate as many child keys as there are parties sharing the original key. and the child key is used to recover the original key when the same number of child keys are obtained.</p><p>According to the key data processing methods and apparatus and the server provided in one or more implementations herein, the original key of a shared object, such as an asset or data, of the parties sharing the original key It can be divided into multiple child keys based on number, and the generated child keys can be displayed to the corresponding asset sharing parties. Each asset sharing party can provide a child key when it needs to manipulate the shared object. The child key can then be used to recover the original key and perform corresponding operations such as signing and asset transactions. Therefore, in our implementation, when an asset in the blockchain is shared by multiple people, to ensure the security of the shared asset transactions in the blockchain, everyone can share the information without the knowledge of others. Manipulating assets can be effectively prevented.</p><p>To describe the technical solutions in the implementations or existing technologies of this specification more clearly, the following briefly introduces the accompanying drawings for describing the implementations or existing technologies. Apparently, the accompanying drawings in the following description only show some implementations of the present specification, and those skilled in the art can derive still other drawings from these accompanying drawings without creative efforts. can be done.</p>
<figref num="1">4 is a flow diagram illustrating an exemplary method for key data processing according to the present specification;</figref><figref num="2">4 is a flow diagram illustrating an example method, according to another implementation herein.</figref><figref num="3">FIG. 4 is a flow diagram showing a process of generating a child key, according to implementations herein; FIG.</figref><figref num="4">4 is a flow diagram illustrating an example method, according to another implementation herein.</figref><figref num="5">FIG. 4 is a schematic diagram illustrating another process of generating a child key based on a predetermined algorithm according to the present specification;</figref><figref num="6">FIG. 2 is a schematic structural diagram showing modules of a key data processing device, according to implementations herein;</figref><figref num="7">FIG. 4 is a schematic structural diagram showing modules of a key data processing device according to another implementation of the present disclosure;</figref><figref num="8">FIG. 3 is a schematic structural diagram showing a child key generation module in a device, according to implementations herein;</figref><figref num="9">FIG. 4 is a schematic structural diagram showing a key data processing device according to another implementation of the present specification;</figref><figref num="10">FIG. 4 is a schematic structural diagram showing a child key generation module in a device according to another implementation of the present disclosure;</figref><figref num="11">FIG. 2B is a schematic structural diagram illustrating a module using a wallet application, according to an embodiment herein, according to implementations herein;</figref><figref num="12">FIG. 4 is a schematic structural diagram showing a server for implementing a method or apparatus according to implementations herein;</figref><figref num="13">4 is a flowchart illustrating an example computer-implemented method for managing shared ownership in a blockchain network, according to implementations of the present disclosure.</figref>
For those skilled in the art to better understand the technical solutions herein, the following will refer to the accompanying drawings in one or more implementations of the specification, one or more clearly and comprehensively describe the technical solutions in the implementation of Clearly, the implementations described are only some, but not all, of the implementations herein. All other implementations obtained by persons skilled in the art based on one or more implementations herein without creative efforts shall fall within the protection scope of the implementations herein.
Although the present specification provides method operation steps or apparatus structures shown in the implementations below or the accompanying drawings, the method or apparatus may be based on conventional or unimaginative efforts in the method or apparatus to achieve greater numbers. or may include fewer operating steps or modular units. In steps or structures where a necessary causal relationship does not logically exist, the sequence or modular structure of the apparatus for performing those steps is limited to the execution sequence or modular structure shown in the implementations herein or the accompanying drawings. not. Actual device, server, or terminal product applications may be based on the methods or modular structures shown in the implementations or accompanying drawings (for example, parallel processor or multithreaded processing environments, or implementations including distributed processing and server clustering). Thus, methods or modular structures can be executed serially or in parallel.
Blockchains usually contain multiple blocks. A block is a logical data structure and can be used to store blockchain data. Blockchain data can include data information generated by the flow and fluctuations of funds within the blockchain, as well as the manipulation of the flow of funds, asset fluctuations, and the like. In blockchain, the flow of funds, or changes in assets, are usually called transactions. Assets in the blockchain described in some implementations herein may include money, securities, and precious metals stored in the blockchain in the form of electronic data. For example, wallet functionality provided by some applications can store monetary assets, and the assets in the wallet can be used to purchase or transfer products.
Data in the blockchain can verify the validity of transactions through asymmetric encryption. Asymmetric cryptography typically involves a public key and a private key, where the public key can be made public and the private key is not made public. Asymmetric cryptography is one of the primary tools for transaction verification in blockchain asset transactions. A transaction party can sign a transaction by using the private key, and a verifier can verify the signature by using the transaction party's public key. A successful verification can indicate that the transaction is from the actual owner of the private key corresponding to the public key and that the transaction is valid. Transactions can be placed in a new block on the blockchain. From the previous process, we can see that private keys play a very important role in blockchain asset transactions. If the property is shared by more than one person, the property includes the interests of more than one person. When asset-sharing parties need to jointly participate in asset transactions, one or more implementations herein can effectively ensure operational security of shared assets in a blockchain.
Specifically, the implementation process of the solution is described herein by using a blockchain transaction of a wallet application as an implementation scenario. Wallets can contain client-side or server-side applications, and can typically generate symmetric keys for computing public key addresses, in order to implement blockchain asset transactions. As new assets are confirmed or asset sharing parties are changed, the wallet can automatically calculate and generate child keys based on the number of asset sharing parties. The number of child keys generated is the same as the number of asset sharing parties. These child keys can be sent to the corresponding asset sharing parties, so each asset sharing party owns one child key. If an asset transaction requires the original private key, these child keys can be used to restore the original private key, and the restored private key is used to initiate the transaction with a signature.
Indeed, in implementations herein, the shared object is not necessarily limited to the previous electronic money asset, and the original key is not limited to the asymmetric encryption private key. Shared objects may also include corresponding types of service data in different implementation scenarios, such as billing data, user data, public information, and so on. The original key may also contain other data information for data encryption, such as key data such as strings or images, sounds, and fingerprints. In the implementation below, the process of generating multiple child keys based on the original key and recovering the original key by using the received child keys is also completed by miners in the blockchain through computation. can be done. Miners are typically nodes with sufficient computing power. Miners batch multiple collected transaction records, try various padding bits for encryption by using the miner's key, and broadcast the block across the network so that other nodes can access the blockchain. can be enabled to learn that a new block has been created within.
Specifically, an implementation is shown in FIG. In implementations of the key data processing method provided herein, the method may include the following steps.
S0. Obtain the original key of the shared object in the blockchain and determine the number of parties sharing the original key.
S2. Process the original key by using a predetermined algorithm to generate the same number of child keys as there are parties sharing the original key, and the child keys are replaced with the original when the same number of child keys are obtained. used to recover the keys of
In this implementation, the computing device can obtain information about the original key corresponding to the asset and information about the number of parties sharing the asset. The original key can then be calculated and processed by using a pre-selected or designed predetermined algorithm to generate as many child keys as there are parties sharing the asset. The shared objects described in the implementation scenarios of this implementation can contain assets in wallets. The original key may be generated by a local wallet (server) or may be a received original key sent by another wallet (server). In this implementation, transaction verification cannot be performed independently or is not successful by using each of the multiple child keys generated based on the original key. When all child keys generated based on the same original key are collected together, the original key can be recovered. If the child key does not exist or any child key is incorrect, the original key cannot be recovered or the recovered original key is incorrect.
For example, in the application scenario of this implementation, a blockchain network can include multiple nodes, and each node can have a public key and a private key. Assume there is a wallet application in the node, the wallet is a shared object in this implementation, and the wallet's private key is the original key. The name of the wallet's private key is S, and the number of wallet sharers is 2. Two child keys: S1 and S2 can be generated based on the private key S using pre-selected or designed algorithms. The child key S1 in the wallet cannot sign the transaction or successfully verify the signature. Similarly, the child key S2 in the wallet cannot sign the transaction or successfully verify the signature. However, the original private key S can be restored based on the child key S1 and the child key S2. To recover the original private key S, a corresponding computation can be performed. The calculation is based on a predetermined algorithm used to generate the child key, eg, an inverse algorithm that is the inverse of the predetermined algorithm for generating the child key. Certainly the computation can be based on other algorithms such as interpolation or child key correlation. The original key can also be recovered with reference to third-party ancillary data.
Further, in another implementation of the methods provided herein, after a number of child keys are generated equal to the number of asset sharing parties, the child keys can be displayed to the corresponding asset sharing parties, thus each asset A sharing party can obtain its own child key. The original key can then be deleted. For example, the original private key can be permanently deleted from the wallet (or the storage unit that stores the original private key). Therefore, to further ensure the security of the key data and prevent the private key from being used privately by the asset sharing parties for asset transactions, none of the asset sharing parties with child keys remembers the original key. Specifically, another implementation of the method herein is shown in FIG. 2, and the method may further include the following steps.
S4. Send the child key to the corresponding object sharing party.
S6. Delete the original key.
FIG. 2 is a flow diagram illustrating an exemplary method, according to another implementation herein. In this implementation, after generating the public and private keys, the wallet generates as many child keys as the number of sharers based on the private key; displays the child keys to the asset sharing parties; You can delete the key. A particular implementation process may be configured such that one child key is sent to one asset sharing party. Certainly, this disclosure does not preclude situations where one asset sharing party has more than one child key. For example, mutually trusted asset sharing parties can store each other's child keys.
In some implementations, a wallet can transmit a child key to an object sharing party. In another implementation, after generating the child keys, the wallet outputs the generated child keys, and then another processing party (e.g., a dedicated child key allocator) distributes the child keys to the object sharing party. Send. The generated child keys can be randomly selected and sent, or designated child keys can be selected based on certain rules and sent to the corresponding object sharing parties.
The predetermined algorithm for generating child keys in previous implementations can be implemented in multiple implementations. Implementations herein provide a predetermined algorithm for generating child keys using the original key. To generate a child key, a random string can be used to reference the original key and perform an operation. Specifically, in implementations of the methods herein, the predefined algorithm can include the following steps.
S20. Perform an operation on the original key by using the randomly generated string to generate as many child keys as there are parties sharing the original key.
Strings can include numbers, letters, symbols, and the like. The wallet can store these randomly generated strings for later recovery of the original key. A particular method for manipulating the original key by using a randomly generated string can be predetermined. For example, a fixed-length string is randomly generated, and one or more characters of the string are individually inserted into the original key in a specific sequence to generate the child key. You can also append the value of the corresponding bit in the string to the original key. In this implementation, the child key of the original key is generated by using a random string to further ensure the security of the generated child key and improve the security of the original key.
In another implementation of the methods herein, child keys are generated by using random numbers, prime numbers, and modulo arithmetic. Details are shown in FIG. FIG. 3 is a flow diagram illustrating a process for generating child keys according to implementations herein. The predefined algorithm can include the following steps.
S200. If there are (N+1) co-parties, generate N random numbers Ri, where Ri is the i-th random number and i [1, N].
S202. Determine a prime number P, where the prime number P is at least greater than either the original key value S or the random number Ri, and the range of Ri is [0, P-1].
S204. To obtain (N+1) child keys, (S+R<sub>1</sub>X+R<sub>2</sub>X<sup>2</sup>+R<sub>3</sub>X<sup>3</sup>+...+R<sub>N.</sub>X<sup>N.</sup>) is computed, perform a modulo operation on P, select the value of X from [1, N+1], N1, and X and N are integers.
In general, the secret key length generated in the asymmetric key algorithms used within blockchains is usually 1024 or 2048 bits. Therefore, in certain implementation processes of implementation scenarios, the wallet can pre-store known prime numbers larger than 1024 or 2048 bits. In this implementation, a pre-stored prime number can be used as data storage when the wallet generates the child key. Assuming the name of the private key is S, the wallet can choose a random number Ri based on the number of sharers. A prime number P with a length greater than the length of the private key S or the random number Ri can be selected to satisfy the child key calculation conditions. In addition, to generate the child key, (S+R<sub>1</sub>X+R<sub>2</sub>X<sup>2</sup>+R<sub>3</sub>X<sup>3</sup>+...+R<sub>N.</sub>X<sup>N.</sup>) can be used to perform modulo arithmetic on P. A specific example can be displayed as follows.
(1) When two people share assets, the generated child keys are as follows. Child Key 1: Generated by performing a modulo operation on P by using (S+R) Child Key 2: Generated by performing a modulo operation on P by using (S+2R) be done.
(2) When three people share assets, the generated child keys are as follows. (S+R<sub>1</sub>+R<sub>2</sub>), the child key 1, generated by performing the modulo operation on P by using (S+2R<sub>1</sub>+4R<sub>2</sub>), and the child key 2 generated by performing the modulo operation on P by using (S+3R<sub>1</sub>+9R<sub>2</sub>) to generate the child key 3 by performing the modulo operation on P.
Similarly, if (N+1) people share an asset, (N+1) child keys need to be generated and (S+R<sub>1</sub>X+R<sub>2</sub>X<sup>2</sup>+R<sub>3</sub>X<sup>3</sup>+...+R<sub>N.</sub>X<sup>N.</sup>) can be used to perform modulo arithmetic on P. A child key can be obtained through computation by choosing a value of X from [1, N+1]. In another example, if four people share an asset, the process of generating four child keys by using the method described above would be as follows. (S+R<sub>1</sub>+R<sub>2</sub>+R<sub>3</sub>), the child key 1, generated by performing the modulo operation on P by using (S+2R<sub>1</sub>+4R<sub>2</sub>+8R<sub>3</sub>), the child key 2, generated by performing the modulo operation on P by using (S+3R<sub>1</sub>+9R<sub>2</sub>+27R<sub>3</sub>), and the child key 3 generated by performing the modulo operation on P by using (S+4R<sub>1</sub>+16R<sub>2</sub>+64R<sub>3</sub>), the child key 4 generated by performing the modulo operation on P by using
According to the predetermined algorithm for calculating the child key provided in this implementation, the parties sharing the original key are Based on the number of , one can automatically generate as many child keys as there are parties sharing the original key. Because the child key generation method is used, the confidentiality of the generated child key is increased, the risk of the child key being cracked is reduced, and the transaction is more secure.
In another implementation of the methods provided herein, multiple corresponding child keys can be generated based on the original key of the shared object, and the original key can be further recovered based on the received child keys. can do. Specifically, in another implementation of the methods provided herein, the method can further include the following steps.
S80. Receive the entered child key.
S82. If the number of child keys is determined to be the same as the number of parties sharing the corresponding original key, then through computation, a predetermined algorithm to obtain the corresponding original key. Recover the original key based on the child key by using
Indeed, the method may further comprise the following steps.
S84: Manipulate the shared object by using the original key obtained after restoration through computation.
FIG. 4 is a flow diagram illustrating an exemplary method, according to another implementation herein. If the original key is required for asset operations, each asset sharing party of the original key can enter its own child key. Since the child keys are distributed to multiple asset sharing parties, the original key is recovered in this implementation when as many child keys as there are parties sharing the original key are received. For example, a wallet's private key generates three child keys that are each stored by three wallet co-owners. Each wallet sharer enters a unique child key when wallet fund operations need to be performed. As it stands, upon receipt of the 3 child keys, the wallet can recover the wallet's private key by using the 3 child keys. If the wallet receives only 1 or 2 child keys, or if it receives more than 3 child keys, the number of child keys differs from the number of wallet sharers and the original key cannot be recovered It can be shown that
The original key can be recovered based on the child key by referring to an algorithm corresponding to the algorithm for generating the child key or by using a specific method and by referring to the properties of the child key. For example, in implementations for generating child keys by using random numbers, prime numbers, and modulo arithmetic, in one or more processes of recovering the original key herein, by using the Lagrangian equation The original private key S can be recovered.
After the recovered original key is obtained, the corresponding shared object can be manipulated by using the key. For example, a transaction can be signed to confirm that it was generated by a user authorized by the wallet. In addition, wallets can broadcast information about signed transactions to the blockchain network and store that information in new blocks.
Previous implementations have provided predefined algorithms for generating child keys by using random strings or random numbers, prime numbers, and the like. Another implementation herein provides another implementation that generates a corresponding number of child keys based on the original key. In this implementation, an exclusive OR computation can be performed on the original key and each of the random numbers generated at any given time, the random numbers having the same length. The values obtained after the exclusive OR calculation and these random numbers are used as child keys. Specifically, in another implementation of the methods provided herein, the predetermined algorithm can include the following steps.
S210. Generate (N-1) random numbers, the binary length of the random numbers being the same as the binary length of the original key, and N being the number of parties sharing the original key.
S212. Perform a bitwise exclusive OR operation on the original key and each of the (N-1) random numbers to obtain an exclusive OR child key.
S214. Use the exclusive OR child key and the (N-1) random numbers as the N output child keys.
In this implementation, if the shared object can generate (N1) random numbers in advance, the length of the random number can be the same as the length of the original key, eg, 1024-bit or 2048-bit binary. An exclusive OR calculation can be performed on the original key and each of the (N-1) random numbers to obtain the value. The value and the (N-1) previously generated random numbers are used as child keys, and one child key is assigned to each object sharing party.
A specific example of a processing method for performing a bitwise exclusive OR operation on each of the original key and the random number is shown in FIG. FIG. 5 is a schematic diagram illustrating another process for generating child keys based on a predetermined algorithm according to the present specification. Suppose the length of the original key S is 1024 bits in the binary system and the number of parties sharing the original key is 4. Therefore, three random binary numbers of 1024 bits can be generated initially. We can then perform an exclusive OR operation on the original key S and the first random number to obtain R1, and then an exclusive OR operation on R1 and the second random number to obtain R2. An OR operation is performed. Finally, an exclusive OR operation is performed on R2 and a third random number to obtain R3, which in this implementation is the exclusive OR child key. R3 and three random binary numbers of 1024 bits are used as four child keys obtained through computation. If the original key needs to be recovered, a reverse exclusive OR operation can be performed on the child key obtained by performing an exclusive OR operation in this implementation. An exclusive OR operation is used during encryption and the inverse of the exclusive OR operation is performed during decryption. Therefore, the original key can be obtained. The exclusive OR method provided in this implementation is used to ensure that all correct child keys must be collected during decryption, and performs an exclusive OR operation on the child keys. You can quickly retrieve the original key by doing This simplifies key recovery and improves the processing speed of recovering the original key during decryption while ensuring the security of asset transactions.
The implementations herein are described in an incremental manner and reference may be made to these implementations for the same or similar parts of the implementations and each implementation differs from the other implementations. is focused on. For details, reference may be made to the previous descriptions of related processing and related implementations. Details are not described here.
Specific implementations of this specification are described above. Other implementations are within the scope of the appended claims. In some situations, the actions or steps recited in the claims can be performed in a different sequence than this implementation and still achieve desirable results. Moreover, the processes depicted in the accompanying drawings do not necessarily require a particular sequence or sequential sequence to achieve desired results. Multitasking and parallel processing may be feasible or advantageous in some implementations.
According to the key data handling methods provided in one or more implementations herein, the original key is divided into multiple keys based on the number of parties sharing the original key of a shared object, such as an asset or data. child keys, and the generated child keys can be displayed to the corresponding asset sharing parties. Each asset sharing party can provide a child key when it needs to manipulate the shared object. The child key can then be used to recover the original key and perform corresponding operations such as signing and asset transactions. Therefore, in our implementation, when an asset in the blockchain is shared by multiple people, in order to guarantee the security of shared asset transactions in the blockchain, someone can share the asset without the knowledge of others. can be effectively prevented from operating the
Based on the aforementioned user key data processing method, one or more implementations herein further provide a key data processing apparatus. The apparatus may include apparatus with the necessary implementation hardware and using systems (including distributed systems), software (applications), modules, components, servers, clients, etc. of the methods in the implementations herein. can. Based on the same innovative concepts, devices provided in one or more implementations herein are described in the following implementations. Since the problem-solving implementation solution of the present apparatus is similar to the problem-solving implementation solution of the present method, see previous method implementations for the specific implementation of the apparatus in the implementations herein. can do. No repetition of explanation. The term "unit" or "module" used in the implementations below can implement a software and/or hardware combination of predetermined functions. The apparatus described in the following implementations is preferably implemented in software, but implementations in hardware or a combination of software and hardware are contemplated. Specifically, FIG. 6 is a schematic structural diagram showing the modules of the key data processing device according to the implementations herein. As shown in FIG. 6, the device can include an original key information acquisition module 101 and a child key generation module 102 . The original key information obtaining module 101 is configured to obtain the original key of the shared object in the blockchain and determine the number of parties sharing the original key. The child key generation module 102 is configured to process the original key by using a predetermined algorithm to generate as many child keys as there are parties sharing the original key, the child keys being , used to recover the original key when the same number of child keys are obtained.
According to the key data processing device provided in this embodiment, the original key can be split into multiple child keys based on the number of parties sharing the original key of a shared object such as an asset or data. can. Each sharer owns one child key, so if an asset is shared by multiple people, multiple people must jointly participate in the asset transaction. Therefore, it can effectively prevent asset sharers from privately manipulating transaction data in the blockchain to ensure the security of asset transactions.
FIG. 7 is a schematic structural diagram showing modules of a key data processing device according to another implementation of the present specification. In another implementation of the device, the device includes a child key output module 103 configured to send the child key to the corresponding object sharing party and an original key output module 103 configured to delete the original key. A deletion module 104 can also be included.
In this implementation, transaction verification cannot be performed independently or is not successful by using each of the multiple child keys generated based on the original key. When all child keys generated by the same original key are collected together, the original key can be recovered.
After as many child keys as there are asset sharing parties have been generated, the child keys can be displayed to the corresponding asset sharing parties so that each asset sharing party can obtain the child keys. The original key can then be deleted. For example, the original private key is permanently removed from the wallet. Therefore, to further ensure the security of the key data and prevent the private key from being used privately by the asset sharing parties for asset transactions, none of the asset sharing parties with child keys remember the original key.
In another implementation of the apparatus, the predetermined algorithm used in the child key generation module 102 is randomly generated to generate the same number of child keys as the number of parties sharing the original key. performing an operation on the original key by using the string
Another implementation of the apparatus herein provides an implementation that generates child keys by using random numbers, prime numbers, and modulo arithmetic. FIG. 8 is a schematic structural diagram showing a child key generation module in a device, according to implementations herein. As shown in FIG. 8, the child key generation module 102 can include a random number generation unit 1021, a prime number selection unit 1022, and a child key calculation unit 1023. The random number generation unit 1021 is configured to generate N random numbers Ri, if there are (N+1) co-parties, where Ri is the i-th random number and i [1, N]. The prime selection unit 1022 is configured to determine a prime number P, where the prime number P is at least greater than either the original key value S or the random number Ri, and the range of Ri is [0, P1]. Child key calculation unit 1023 performs (S+R<sub>1</sub>X+R<sub>2</sub>X<sup>2</sup>+R<sub>3</sub>X<sup>3</sup>+...+R<sub>N.</sub>X<sup>N.</sup>) is computed, and is configured to perform a modulo operation on P and select a value of X from [1, N+1], where N1 and X and N are integers.
Using a predefined algorithm for computing the child key provided in this implementation and a predefined method of combining random numbers, prime numbers, and modulo operations based on the number of parties sharing the original key. can automatically generate as many child keys as there are parties sharing the original key. Because of using the child key generation method described above, the child key can be generated more securely, the risk of the child key being cracked is reduced, and the transaction is more secure.
In another implementation of the apparatus provided herein, multiple corresponding child keys can be generated based on the original key of the shared object, and the original key can be further recovered based on the received child keys. can do. FIG. 9 is a schematic structural diagram showing a key data processing device according to another implementation of the present specification. As shown in FIG. 9, the device may further include a receiving module 1051 and an original key recovery module 1052. FIG. The receiving module 1051 is configured to receive the entered child key. If the original key recovery module 1052 determines that the number of child keys is the same as the number of parties sharing the corresponding original key, the original key recovery module 1052 performs calculations to obtain the corresponding original key. , configured to recover the original key based on the child key by using a predetermined algorithm.
FIG. 10 is a schematic structural diagram showing a child key generation module within a device according to another implementation of the present specification. As shown in FIG. 10, the child key generation module 102 can include a random number generation unit 20, an exclusive OR computation unit 21, and a child key determination unit 22. FIG. The random number generation unit 20 is configured to generate (N-1) random numbers, the binary length of the random numbers being the same as the binary length of the original key, N being the number of parties sharing the original key. be. The exclusive OR calculation unit 21 is configured to perform a bitwise exclusive OR operation on the original key and each of the (N1) random numbers to obtain an exclusive OR child key. be. The child key determination unit 22 is configured to use the exclusive OR child key and (N-1) random numbers as the N output child keys.
In this implementation, to obtain the value, an exclusive OR calculation can be performed on the original key and each random number of the same length generated at any time, and then an exclusive The values obtained after the OR calculation and these random numbers are used as the child key.
The exclusive OR method provided in this implementation is used to ensure that all correct child keys must be collected during decryption, and performs an exclusive OR operation on the child keys. You can quickly retrieve the original key by doing This simplifies key recovery and greatly improves the processing speed of recovering the original key during decryption while ensuring the security of asset transactions.
It is worth noting that the previous apparatus may further include alternative implementations based on the method implementation descriptions. For specific implementations, reference can be made to the descriptions in the related method implementations, and the details are not described here.
In previous device implementations, the actual product application may combine or split each module or sub-module based on the implementation environment or data processing requirements. When implementing one or more implementations herein, the functionality of each module may also be implemented in one or more software and/or hardware, and modules implementing the same functionality may be implemented in multiple It can also be implemented by a combination of sub-modules or sub-units. The described device implementation is merely an example. For example, the unit division is merely a logical functional division, and may be other divisions in actual implementation. For example, multiple units or components may be combined, integrated into another system, or some functions may be ignored or not performed.
FIG. 11 is a schematic structural diagram illustrating a module using a wallet application, according to one embodiment herein, according to implementations herein. As shown in FIG. 11, the wallet public and private key generation component can generate public and private keys for the wallet. A prime number storage component pre-stores a plurality of prime numbers whose length is greater than the length of the private key. A random number generation component can generate a corresponding number of random numbers when a child key needs to be generated. The child key calculation unit can generate multiple child keys corresponding to the private key and output the child keys. The output child key can be allocated to the corresponding wallet sharing parties. When an asset transaction is performed in the wallet, each sharing party enters a child key, and the private key recovery computation component computes the original key based on the corresponding algorithm for recovering the original key and returns the original key. Keys can be used to perform signatures, verifications, etc. on transactions. After a transaction is generated, it can be broadcast across the blockchain network.
According to the key data processing apparatus provided in one or more implementations herein, the original key is divided into multiple keys based on the number of parties sharing the original key of a shared object such as an asset or data. It can be split into child keys, and the generated child keys can be displayed to the corresponding asset sharing parties. Each asset sharing party can provide a child key when it needs to manipulate the shared object. The child key can then be used to recover the original key and perform corresponding operations such as signing and asset transactions. Therefore, in our implementation, when an asset in the blockchain is shared by multiple people, in order to guarantee the security of shared asset transactions in the blockchain, someone can share the asset without the knowledge of others. can be effectively prevented from operating the
The method or apparatus in previous implementations herein may implement the service logic and record the service logic in a storage medium by using a computer program, and the storage medium may be It can be read and executed by a computer to implement the effects of the solution described in the form. A storage medium can include a physical device for storing information, which is commonly digitized and then stored on a medium such as electrical, magnetic, or optical. A storage medium is a device for storing information in the form of electrical energy, such as storage devices such as RAM or ROM, hard disks, floppy disks, magnetic tapes, magnetic core memories, magnetic bubble memories, or magnetic energy such as USB flash drives. Devices for storing information in format and devices for storing information in optical format such as CDs or DVDs may be included. Certainly, there are other forms of readable storage media, such as quantum memory and graphene memory.
The method or apparatus for processing user key data provided in the implementations herein is implemented on a server, for example, by using the c++ language of the Windows operating system, by executing corresponding program instructions. , can also be implemented by a processor in a computer, on a server based on Linux system, or on a server system terminal by using Android, iOS system programming language, using processing logic based on quantum computer It can also be implemented by Program instructions may be stored in a storage medium. Another implementation of the key data processing apparatus provided herein may include a processor and a memory configured to store instructions executable by the processor, the instructions causing the processor to , to obtain the original key of a shared object in the blockchain, to determine the number of parties sharing the original key, and to generate as many child keys as there are parties sharing the original key. , processing the original key by using a predetermined algorithm, the child key being used to recover the original key when the same number of child keys are obtained; to implement behavior with
It is worth noting that the previous apparatus may further include alternative implementations based on the method implementation descriptions. For example, the processor deletes the original key data, generates a child key by using random numbers, prime numbers, and modulo arithmetic, recovers the original key by using the Lagrangian equation, and performs an exclusive OR operation. Generates a child key by performing and recovers the original key by performing the inverse operation. For specific implementations, reference can be made to the description of related method implementations, and the details are not described herein.
The above-described method or apparatus can be used in multiple servers for key data processing, e.g., wallet daemon servers, miner node servers in the blockchain, and service servers of nodes in the blockchain. A server may also include other servers and may include architectural patterns of servers or server clusters within a distributed system. Specifically, the present description provides a server as shown in FIG. 12, the server including at least one processor and a memory configured to store instructions executable by the processor. can be done. Execution of the instructions causes the processor to obtain the original key of the shared object in the blockchain, determine the number of parties sharing the original key, and obtain the same number of parties sharing the original key. and processing the original key by using a predetermined algorithm to generate a child key of the number. If the number of child keys obtained is the same as the number of parties sharing the original key, the child keys can be used to recover the original key.
It is worth noting that the previous server may further include alternative implementations based on the method or apparatus implementation descriptions. For example, the processor deletes the original key data, generates a child key by using random numbers, prime numbers, and modulo arithmetic, recovers the original key by using the Lagrangian formula, and performs an exclusive OR operation. Generates a child key by performing and recovers the original key by performing the inverse operation. For specific implementations, reference can be made to the descriptions of related method implementations or apparatus implementations, and the details are not described herein.
All of the implementations herein are described in an incremental manner and reference may be made to these implementations for the same or similar parts of the implementations and each implementation to the other implementations. Focus on differences. In particular, since the hardware and program implementations are basically similar to the method implementations, they will be briefly described, and the relevant parts can refer to the partial descriptions of the method implementations.
Specific implementations of this specification are described above. Other implementations are within the scope of the appended claims. In some situations, the actions or steps recited in the claims can be performed in a different sequence than this implementation and still achieve desirable results. Moreover, the processes depicted in the accompanying drawings do not necessarily require a particular sequence or sequential sequence to achieve desired results. Multitasking and parallel processing may be feasible or advantageous in some implementations.
According to the key data processing methods and apparatus and the server provided in one or more implementations herein, the original key of a shared object, such as an asset or data, is obtained by It can be divided into multiple child keys based on number, and the generated child keys can be displayed to the corresponding asset sharing parties. Each asset sharing party can provide a child key when it needs to manipulate the shared object. The child key can then be used to recover the original key and perform corresponding operations such as signing and asset transactions. Therefore, in our implementation, when an asset in the blockchain is shared by multiple people, in order to guarantee the security of shared asset transactions in the blockchain, someone can share the asset without the knowledge of others. can be effectively prevented from operating the
Implementations herein describe, for example, generating child keys by using random numbers, prime numbers, and modulo operations, generating child keys by using exclusive OR operations, and using Lagrangian equations. It describes the generation, definition, acquisition, interaction, computation, determination, etc. of the data, which recovers the original key by , and deletes the original private key after allocating the child keys. However, implementations herein may not meet industry communication standards, blockchain data rules, standard computer data processing and storage rules, or circumstances described in one or more implementations herein. is not limited to Slightly modified implementation solutions obtained by using some industry standard, or in a self-defined way, or based on the described implementations are the same, equivalent to the described implementations. , or a similar implementation effect, or even the expected implementation effect obtained after transformation. Implementations of acquisition, storage, determination, processing, etc. of the modified or transformed data may still fall within the optional implementation solutions of the implementations herein.
Specific implementations of this specification are described above. Other implementations are within the scope of the appended claims. In some situations, the actions or steps recited in the claims can be performed in a different sequence than this implementation and still achieve desirable results. Moreover, the processes depicted in the accompanying drawings do not necessarily require a particular sequence or sequential sequence to achieve desired results. Multitasking and parallel processing may be feasible or advantageous in some implementations.
In the 1990s it was possible to clearly distinguish between improvements in technology as improvements in hardware (e.g. improvements in circuit structures such as diodes, transistors, switches, etc.) and improvements in software (improvements in method steps). . However, with the development of technology, the improvement of many current method procedures can be regarded as a direct improvement of the hardware circuit structure. Designers usually program the improved method steps into the hardware circuit to obtain the corresponding hardware circuit structure. Thus, hardware entity modules can improve method steps. For example, a programmable logic device (PLD) (eg, a field programmable gate array (FPGA)) is such an integrated circuit, the logic functionality of the programmable logic device being determined by the user through device programming. Designers perform programming to "integrate" a digital system into a PLD without having a chip manufacturer design and manufacture an application-specific integrated circuit chip. Further, programming is primarily implemented by modifying "logic compiler" software instead of manually creating integrated circuit chips. This is similar to software compilers used to develop and configure programs. However, the original code obtained before compilation is also written in a specific programming language, called Hardware Description Language (HDL). However, Advanced Boolean Expression Language (ABEL), Altera Hardware Description Language (AHDL), Confluence, Cornell University Programming Language (CUPL), HDCal, Java Hardware Description Language (JHDL), Lava, Lola, MyHDL , PALASM, and Ruby Hardware Description Language (RHDL). Currently, the very fast Integrated Circuit Hardware Description Language (VHDL) and Verilog are the most popular. Also, a person skilled in the art
Controllers can be implemented in any suitable manner. A controller may, for example, use a microprocessor or processor, and may be executed by a computer readable medium, logic gates, switches, application specific integrated circuits (ASICs), programmable logic controllers, and (micro)processors. It can be stored in the form of an embedded microcontroller in readable program code (eg, software or hardware). Controllers are ARC 625D, Atmel AT91SAM, Microchip PIC18F26K20, Silicon Labs Including but not limited to microcontrollers such as the C8051F320. The memory controller may also be implemented as part of the memory's control logic. Those skilled in the art will also realize that in addition to implementing the controller in the manner of pure computer readable program code, the controller may also be in the same form as logic gates, switches, application specific integrated circuits, programmable logic controllers, and embedded microcontrollers. It can be seen that logic programming can be performed entirely by using method steps to implement the functionality. Thus, the controller can be viewed as a hardware component and the devices for implementing various functions within the controller can also be viewed as structures within the hardware component. Alternatively, the apparatus configured to implement various functions can be viewed as structures within software modules or hardware components that can implement the methods.
The systems, devices, modules or units described in the described implementations may be tangibly implemented by computer chips or entities or by functional products. A typical implementation device is a computer. Specifically, a computer may be, for example, a personal computer, a laptop computer, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email device, a game console, a tablet computer, or a wearable device. , or a combination of these devices.
Although one or more implementations herein provide method operational steps according to an implementation or flow chart, conventional or non-creative means may include more or fewer operational steps. . The sequence of steps recited in this implementation is only one of multiple step execution sequences and does not represent a unique execution sequence. In actual execution of the device or terminal product, execution may be performed according to the method sequences illustrated in the implementations or accompanying drawings, or may be performed in parallel (e.g., in a parallel processor or multithreaded processing environment, or in a distributed data processing environment). The terms "include," "contain," or any other variation thereof are intended to cover non-exclusive inclusion, thus any process, method, or process that includes a set of elements. , articles, or devices may include not only these elements, but other elements not expressly listed, or even elements specific to such processes, methods, articles, or devices. "includes Elements preceded by a...")" do not exclude the presence of additional identical elements in the process, method, article, or device containing that element, unless further constrained.
For ease of explanation, the described devices are described by dividing their functions into various units. Indeed, where one or more implementations of the specification are implemented, the functionality of each module may also be implemented in one or more software and/or hardware, and modules implementing the same functionality may be , can also be implemented by a combination of multiple sub-modules or sub-units. The described device implementation is merely an example. For example, the unit division is merely a logical functional division, and may be other divisions in actual implementation. For example, multiple units or components may be combined, integrated into another system, or some functions may be ignored or not performed. Further, the displayed or described mutual couplings or direct couplings or communication connections may be implemented through the use of some interfaces. Indirect couplings or communication connections between devices or units may be implemented electronically, mechanically, or in other ways.
Those skilled in the art will also realize that in addition to implementing the controller in the manner of pure computer readable program code, the controller may also be in the same form as logic gates, switches, application specific integrated circuits, programmable logic controllers, and embedded microcontrollers. It can be seen that logic programming can be performed entirely by using method steps to implement the functionality. Thus, the controller can be viewed as a hardware component and the devices for implementing various functions within the controller can also be viewed as structures within the hardware component. Alternatively, the apparatus configured to implement various functions can be viewed as structures within software modules or hardware components that can implement the methods.
The present disclosure is described with reference to flowchart illustrations and/or block diagrams of methods, devices (systems) and computer program products according to implementations of the disclosure. It is understood that computer program instructions can be used to implement each process and/or each block in the flowchart and/or block diagrams, and combinations of processes and/or blocks in the flowchart and/or block diagrams. sea bream. These computer program instructions may be implemented in one or more processes in flowchart illustrations or in one or more blocks in block diagrams when executed by a processor of a computer or any other programmable data processing device. in a processor of a general purpose computer, a special purpose computer, an embedded processor, or any other programmable data processing device for creating a machine to create a device for implementing a particular function.
These computer program instructions direct a computer or any other programmable data processing device to operate in a particular manner such that the instructions stored in the computer readable memory produce an artifact comprising the instruction apparatus. can be stored in a computer readable memory. The instruction unit implements specified functions in one or more processes within the flowcharts and/or in one or more blocks within the block diagrams.
These computer program instructions can be loaded into a computer or other programmable data processing apparatus to perform a series of acts and steps on the computer or other programmable device, thereby producing a computer-implemented process. . Thus, instructions executing on a computer or another programmable device provide steps for implementing specified functions in one or more processes in the flowcharts or in one or more blocks in the block diagrams. do.
In a typical configuration, a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
The memory can include forms such as volatile memory, random access memory (RAM), and/or non-volatile memory in a computer readable medium such as read only memory (ROM) or flash memory (flash RAM). Memory is an example of a computer-readable medium.
Computer-readable media, including volatile and nonvolatile, removable and non-removable media, can use any method or technology to store information. Information can be computer readable instructions, data structures, program modules, or other data. Computer storage media include, but are not limited to, phase change random access memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), another type of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or another memory technology, compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or another optical storage, Including magnetic tape, magnetic disk storage, another magnetic storage device, or any other non-transmission medium. Computer storage media can be used to store information that can be accessed by a computing device. As described herein, computer-readable media do not include transitory media such as, for example, modulated data signals and carrier waves.
Those skilled in the art should understand that one or more implementations herein may be provided as a method, system, or computer program product. Accordingly, one or more implementations herein may take the form of hardware-only implementations, software-only implementations, or a combination of software and hardware implementations. In addition, one or more implementations herein may include one or more computer-usable storage media (including, but not limited to, disk memories, CD-ROMs, optical memories) containing computer-usable program code. may be used in the form of a computer program product implemented in
One or more implementations herein may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform particular tasks or implement particular abstract data types. One or more implementations herein can also be practiced in distributed computing environments. In these distributed computing environments, tasks are performed by remote processing devices that are linked through the use of a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including storage devices.
All of the implementations herein are described in an incremental manner and reference may be made to these implementations for the same or similar parts of the implementations and each implementation to the other implementations. Focus on differences. In particular, since the implementation of the system is basically similar to the implementation of the method, it will be briefly described, and for relevant parts, reference can be made to the partial description of the implementation of the method. In this description, references to reference terms such as "implementation," "some implementations," "example," "particular example," and "some examples" refer to implementations or examples. A particular feature, structure, material, or property described with reference is meant to be included in at least one implementation or example herein. In this specification, previous example expressions of a term do not necessarily relate to the same implementation or example. Moreover, the specific features, structures, materials, or characteristics described may be combined in any suitable manner in any one or more of the implementations or examples. Moreover, those skilled in the art can integrate or combine different implementations or examples and features of different implementations or examples described herein unless they are inconsistent with each other.
The preceding description is merely an implementation of one or more implementations herein and is not intended to limit the one or more implementations herein. For those skilled in the art, one or more implementations herein can have various modifications and changes. Any modification, equivalent replacement, improvement, etc. made within the spirit and principle of this application shall fall within the protection scope of the claims.
FIG. 13 is a flowchart illustrating an example computer-implemented method 1300 for managing shared ownership in a blockchain network, according to implementations of the disclosure. For clarity of presentation, the following description generally describes method 1300 in the context of other figures in this description. However, it will be appreciated that the method 1300 can be performed by any system, environment, software, and hardware or combination of systems, environments, software, and hardware, for example, where appropriate. In some implementations, various steps of method 1300 can be performed in parallel, in combination, in a loop, or in any order.
In a blockchain network, blockchain objects can represent various assets or data to be tracked or recorded by the blockchain. Ownership of a blockchain object is usually associated with a public/private key pair, and confirming that a party possesses the private key of a public/private key pair is the ownership of the blockchain object. used to indicate For example, the owner of a blockchain object can use a private key to encrypt the hash of the blockchain object, and the other party can use the public-private key pair that the owner associates with the blockchain object. can be decrypted using the public key associated with the blockchain object in order to verify that you possess the private key of and are therefore the owner of the object.
In general, assets can be jointly owned by two or more parties. For example, a house, car, or bank account may be jointly owned by two or more parties. Therefore, the ability to collectively own blockchain objects is desired. However, in a typical blockchain network only a single public/private key pair can be associated with a blockchain object, allowing multiple public/private key pairs to be associated with an object. It may not be possible to modify the blockchain network architecture to As such, there is a need to manage shared ownership of blockchain objects within existing blockchain networks. Such shared ownership involves generating multiple child cryptographic keys from the private key of a public/private key pair associated with a blockchain object (a "parent cryptographic key"), and transferring the child cryptographic keys to joint owners of the object. can be implemented through distribution to
Individual child cryptographic keys are different from their parent cryptographic keys and cannot be used to establish ownership of blockchain objects. However, once each co-owner has contributed their respective child cryptographic keys and the complete set of child cryptographic keys has been obtained, the parent cryptographic key can be reconstructed from the child cryptographic keys, which is the collective ownership of the blockchain object. It can be used to prove title and destroy blockchain objects according to the consent of all co-owners. Thus, joint control of a blockchain object is established, where it can only be controlled if all joint owners have given their consent by providing their child cryptographic keys.
At 1302, a parent cryptographic key associated with a blockchain object is obtained. This step may be similar to step S0 of FIG. Because a blockchain object is associated with a single public-private key pair, a blockchain object can initially be owned by a single owner when the object is created. A public key and secret associated with a blockchain object when a group of parties wish to jointly own the created blockchain object or change ownership of the blockchain object from sole ownership to joint or joint ownership. A private key for a key pair is obtained. A private key may, for example, be obtained from the blockchain network at the time the blockchain object is created, or may be provided by the current owner of the blockchain object. In some implementations, an intermediary, such as a broker or agent, obtains parent cryptographic keys on behalf of all parties to protect the ownership integrity of blockchain objects until child cryptographic keys are generated. obtain.
The private key of a public/private key pair is an example of a parent cryptographic key. A parent cryptographic key is typically a sequence of bits of a predetermined length that depends, for example, on a particular cryptographic standard or technique. For example, the parent cryptographic key can have bit lengths of 128, 256, 384, 1024, 2048, 3072 bits, or more.
From 1302 the method 1300 proceeds to 1304.
At 1304, the number of parties (N) that share control of the blockchain object is obtained. N is an integer of 2 or more. Before generating the child cryptographic keys, the number of keys to be generated is first obtained. For example, a party establishing joint ownership may provide the blockchain network, the current owner of a blockchain object, or an intermediary with the number of parties N. This number of keys is usually the number of parties that share control of the blockchain. A party that shares control of a blockchain may be a co-owner or co-owner of a blockchain object. In some implementations, the parties sharing control may have powers other than co-owners or co-owners of blockchain objects. For example, a party may be a trustee of an estate or a will that does not own the blockchain object but has control over how the blockchain object is disposed of.
From 1304, method 1300 proceeds to 1306.
At 1306, N child cryptographic keys are generated based on the parent cryptographic key by applying a predetermined algorithm to the parent cryptographic key. The N child cryptographic keys are collectively operable to reconstruct the parent cryptographic key. This step may be similar to step S2 of FIG. In general, child cryptographic keys must meet two criteria. First, individual child keys cannot be used to establish ownership because each child cryptographic key must be different from the parent cryptographic key. Further, the generated child cryptographic key advantageously differs from the parent cryptographic key in a manner that does not materially reduce the security level of the parent cryptographic key. Second, the complete set of child cryptographic keys must allow deterministic reconstruction (eg, not brute force) of the parent cryptographic key.
Once the parent cryptographic key and the number of parties N are obtained, N child cryptographic keys can be generated from the parent cryptographic key in various ways. In some implementations, the N child cryptographic keys are N-1 random numbers R<sub>i</sub>where i is an integer between 1 and N-1 and R<sub>i</sub>is a non-negative integer, and the random number R<sub>i</sub>Determining a prime number P greater than, wherein the prime number P is greater than at least one of the values S of the parent encryption key or the random number Ri and the random number R<sub>i</sub>and that the N child cryptographic keys C<sub>X</sub>C<sub>X</sub>=P modulo (S+R<sub>1</sub>X+R<sub>2</sub>X<sup>2</sup>+R<sub>3</sub>X<sup>3</sup>+...+R<sub>N-1</sub>X<sup>N-1</sup>) and X is an integer between 1 and N to the parent cryptographic key. child encryption key C<sub>X</sub>The formula for determining is the mathematically equivalent formula<math num="1"><img file="JP7118088B2_D0001.tif" /></math>can be rewritten as
In some implementations, the N child cryptographic keys generate N-1 random numbers having a bit length equal to the bit length of the parent cryptographic key, and the combination of the parent cryptographic key and the N-1 random numbers a series of bitwise XOR operations comprising performing an XOR operation with one of the generating an exclusive-or (XOR) child cryptographic key by performing . The N1 random numbers and the XOR child encryption key generated by the XOR operation can be used as N child encryption keys.
In some implementations, the N child cryptographic keys are generated by applying a predetermined algorithm to the parent cryptographic key comprising modifying the parent cryptographic key based on a randomly generated string. be done. This step may be similar to step S20 described above. Portions of the randomly generated string can be used to modify the parent cryptographic key in various ways to generate various child cryptographic keys. For example, specific portions of a parent cryptographic key can be replaced with specific portions of a randomly generated string to generate a child cryptographic key. To generate multiple child cryptographic keys, different parts of the parent cryptographic key can be replaced with different parts of the randomly generated string. The position and length of the replaced portion within the parent cryptographic key and the corresponding position and length of the randomly generated string may be determined according to a preset algorithm. A preset algorithm may randomly vary the position and length of the replaced portion to improve the robustness of the generated child cryptographic key. The location and length of the replaced portion can be shared between the parties holding the child cryptographic key for use during reconstruction of the parent cryptographic key from the child cryptographic key. In some implementations, in addition to replacing different portions of the parent cryptographic key with portions of randomly generated strings, the resulting bit strings are preconfigured to further improve robustness. can be scrambled according to the algorithm
After 1306, the method 1300 stops.
In some implementations of method 1300, the method further includes sending the N child cryptographic keys to the corresponding parties and deleting the parent cryptographic key. Deleting the parent cryptographic key essentially eliminates any possibility of obtaining the parent cryptographic key by a single party without reconstructing the parent cryptographic key from the complete set of child cryptographic keys, and the child cryptographic key Improve the robustness of shared ownership established through Additionally, if an intermediary is involved in the generation of the child cryptographic key, deleting the parent cryptographic key owned by the intermediary can prevent potential unauthorized control over blockchain objects by the intermediary. In some implementations, the method further includes confirming that the transmitted child encryption key was received by the corresponding parties, and confirming receipt of the child encryption key when all parties confirm receipt of the child encryption key. Keys can be deleted.
Once a child cryptographic key is generated and sent to a party and the parent cryptographic key is deleted, the blockchain object associated with the parent cryptographic key is no longer controllable by any single party. If all co-owners or co-owners of a blockchain object agree to sell or otherwise control the blockchain object, the parent cryptographic key needs to be reconstructed. A parent cryptographic key can be reconstructed from the complete set of child cryptographic keys based on a reconstruction algorithm. Accordingly, in some implementations of the method 1300, the method includes receiving a plurality of cryptographic keys, and the number of received cryptographic keys is equal to the number of parties sharing control of the blockchain object. A parent cryptographic key by applying a reconstruction algorithm to a plurality of received cryptographic keys in response to determining equal and equal to the number of parties sharing control of the blockchain object. and reconstructing the . This step may be similar to step S82 in FIG.
Reconstruction algorithms generally differ based on predetermined algorithms for generating child cryptographic keys. For example, Lagrange's theorem or Lagrangian polynomials can be applied to child cryptographic keys generated using modulo arithmetic to reconstruct the parent cryptographic key. As another example, for child cryptographic keys generated using XOR-based algorithms, a series of XOR operations can be used to reconstruct the parent cryptographic key. Specifically, an XOR operation can be performed in reverse order between the XOR child cryptographic key and the random number to reconstruct the parent cryptographic key. Due to the commutative and associative nature of the XOR operation, reconstruction can also be performed by performing a series of XOR operations in any order between the XOR child cryptographic key and the random number. Thus, in some implementations of method 1300, the method comprises the steps of: receiving a plurality of cryptographic keys comprising an XOR child cryptographic key and N-1 random numbers; in response to determining that the number of parties sharing control of the object is equal to the number of parties sharing control of the object, and determining that the number of received plurality of cryptographic keys is equal to the number of parties sharing control of the blockchain object. and reconstructing the parent cryptographic key by performing a series of bitwise XOR operations on each of the XOR child cryptographic keys and one of the N-1 random numbers. and sequentially performing an XOR operation between the output of the previous XOR operation and one of the remaining random numbers.
The methods and apparatus disclosed herein can improve blockchain networks by enabling shared or joint control of blockchain objects by multiple parties. Such joint control or ownership allows blockchain networks to support the asset ownership paradigm in traditional ledger and record keeping practices. Joint ownership of blockchain objects in an existing blockchain network without modifying the blockchain architecture by generating child cryptographic keys from a single parent cryptographic key and reconstructing the parent cryptographic key from the child cryptographic keys can be established. Furthermore, by modifying the parent cryptographic key using a modulo-based or XOR-based approach to generate the child cryptographic key, the child cryptographic key does not contain significant portions of the parent cryptographic key. Such child cryptographic keys, for example, improve the security of shared or joint ownership over an approach in which the parent cryptographic key is simply split into parts and handed over to the co-owners. Such split-based techniques are susceptible to brute-force attacks by the majority, rather than the collective, of the co-owners, as the group of co-owners owns the majority of the parent cryptographic key, thereby making brute-force attacks possible. The computational load associated with force attacks is greatly reduced, compromising shared control of blockchain objects.
The embodiments and operations described herein may be implemented in digital electronic circuitry, or in computer software, firmware, or hardware including the structures disclosed herein, or in one or more combinations thereof. can be done. The operations may be implemented as operations performed by a data processing apparatus on data stored in one or more computer-readable storage devices or received from other sources. Data processors, computers, or computing devices are apparatus, devices, and machines for processing data, including, by way of example, programmable processors, computers, systems on a chip, or any plurality or combination of the foregoing. can include The apparatus may include, for example, dedicated logic circuitry such as a central processing unit (CPU), field programmable gate array (FPGA), or application specific integrated circuit (ASIC). The apparatus includes code that creates an execution environment for the computer program in question, e.g., processor firmware, protocol stacks, database management systems, operating systems (e.g., operating systems or combinations of operating systems), cross-platform runtime environments, virtual machines. , or a combination of one or more thereof. The apparatus and execution environment can implement a variety of different computing model infrastructures, such as web services, distributed computing, and grid computing infrastructures.
A computer program (e.g., also known as a program, software, software application, software module, software unit, script, or code) may be written in any form, including compiled or interpreted language, declarative or procedural language It can be written in a programming language and can be deployed in any form, either as a stand-alone program or as modules, components, subroutines, objects, or other units suitable for use in a computing environment. A program may be part of a file holding other programs or data (e.g., one or more scripts stored in a markup language document), a single file dedicated to the program in question, or multiple coordinated They can be stored in files (eg, files that store one or more modules, subprograms, or portions of code). A computer program can be executed on one computer or on multiple computers at one site or on multiple computers distributed across multiple sites and interconnected by a communication network.
Processors for executing a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. A processor typically receives instructions and data from read-only memory, random-access memory, or both. The essential elements of a computer are a processor for performing actions according to instructions and one or more memory devices for storing instructions and data. Generally, a computer also includes one or more mass storage devices for storing data, or is operable to receive data from or transfer data to, or both combined. A computer may be incorporated into another device, such as a mobile device, personal digital assistant (PDA), game console, global positioning system (GPS) receiver, or portable storage device. Devices suitable for storing computer program instructions and data include nonvolatile memories, media, and memory devices, including, by way of example, semiconductor memory devices, magnetic disks, and magneto-optical disks. The processor and memory may be supplemented by, or incorporated in, dedicated logic circuitry.
Mobile devices include handsets, user equipment (UE), mobile phones (e.g. smartphones), tablets, wearable devices (e.g. smartwatches and smart glasses), devices implanted in the human body (e.g. biosensors, cochlear implants, etc.) or other types of mobile devices. Mobile devices can communicate wirelessly (eg, using radio frequency (RF) signals) with various communication networks (described below). Mobile devices may include sensors for determining characteristics of the mobile device's current environment. Sensors include cameras, microphones, proximity sensors, GPS sensors, motion sensors, accelerometers, ambient light sensors, humidity sensors, gyroscopes, compasses, barometers, fingerprint sensors, facial recognition systems, RF sensors (e.g. Wi-Fi and cellular phone), thermal sensors, or other types of sensors. For example, a camera may include a front or rear camera with a movable or fixed lens, flash, image sensor, and image processor. The camera can be a megapixel camera capable of capturing details of facial recognition and/or iris recognition. The camera, together with a data processor and authentication information stored in memory or accessed remotely, can form a facial recognition system. A facial recognition system or one or more sensors such as microphones, motion sensors, accelerometers, GPS sensors, RF sensors can be used for user authentication.
In order to provide interaction with the user, embodiments may include display devices and input devices, e.g. It can be implemented on a computer with a real-life (AR) display, as well as a touch screen, keyboard, pointing device that allows the user to provide input to the computer. Other types of devices can also be used to provide interaction with the user, for example the feedback provided to the user can be any form of sensory feedback, e.g. visual, auditory or tactile feedback. and input from the user can be received in any form, including acoustic, speech, or tactile input. In addition, the computer can be used by sending and receiving documents to and from the device used by the user, e.g., by sending web pages to the web browser on the user's client device in response to requests received from the web browser. Can interact with the user.
Embodiments may be implemented using any form or medium of wireline or wireless digital data communication (or a combination thereof), such as computing devices interconnected by a communication network. Examples of interconnected devices include a client and server, typically remote from each other, that typically interact through a communication network. A client, eg, a mobile device, may perform transactions with the server itself, or may perform buy, sell, pay, gift, transfer, or loan transactions or authorize them through the server. Such transactions may be real-time such that the actions and responses are close in time, e.g., the individual perceives the action and response to occur substantially simultaneously, and the time difference between the response following the individual's action is Less than 1 millisecond (ms) or less than 1 second (s), or the response is without intentional delay considering system processing limitations.
Examples of communication networks include local area networks (LAN), radio access networks (RAN), metropolitan area networks (MAN), and wide area networks (WAN). A communication network may include all or part of the Internet, another communication network, or a combination of communication networks. Information may be transmitted over communication networks according to various protocols and standards, including Long Term Evolution (LTE), 5G, IEEE 802, Internet Protocol (IP), or other protocols or combinations of protocols. A communication network may transmit audio, video, biometrics, authentication data, or other information between connected computing devices.
Features described as separate implementations may be implemented in combination in a single implementation; features described as a single implementation may be implemented in multiple implementations separately or in any suitable subcombination. can be implemented. Operations described and claimed in a particular order should not be understood as requiring a particular order and that all illustrated operations must be performed (some operations are optional). be). Multitasking or parallel processing (or a combination of multitasking and parallel processing) can be performed as desired.
20 random number generator
twenty one Exclusive OR calculation unit
twenty two child key determination unit
101 Original key information acquisition module
102 Child key generation module
103 child key output module
104 Original key deletion module
1021 random number generator
1022 prime selection unit
1023 child key computation unit
1051 receiving module
1052 Original key recovery module
1300 Method
14 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14
Every citation, both waysCites: the store holds 6 of 7
| Document | Relation | Office |
|---|---|---|
| US20160212109A1 | Cites | United States of America |
| JP2004032307A | Cites | Japan |
| WO2010147215A1 | Cites | World Intellectual Property Organization (WIPO) |
| JP2004171148A | Cites | Japan |
| JP2001236259A | Cites | Japan |
| CN1697372A | Cites | China |
| ANTONOPOULOS, A. M.,ビットコインとブロックチェーン,第1版,日本,NTT出版株式会社,2016年07月21日,p.250 | Non-patent | – |
27 members in 10 offices
Priority claims9
| Document | Office | Kind | Date |
|---|---|---|---|
| 201710747807 | China | A | |
| 201710747807 | China | A | |
| 2017107478075 | China | – | |
| 2018048370 | United States of America | W | |
| 2018048370 | United States of America | W | |
| 2017107478075 | – | – | – |
| CN201710747807 | – | – | – |
| US2018048370 | – | – | – |
| WO2018US48370 | – | – | – |
Members27
| Document | Office | Kind | |
|---|---|---|---|
| CN107465505A | China | A | |
| CA3058476A1 | Canada | A1 | |
| WO2019046317A1 | World Intellectual Property Organization (WIPO) | A1 | |
| TW201914255A | Taiwan Province of China | A | |
| WO2019046317A8 | World Intellectual Property Organization (WIPO) | A8 | |
| AU2018323458A1 | Australia | A1 | |
| SG11201909012YA | Singapore | A | |
| KR20190134634A | Republic of Korea | A | |
| EP3586473A1 | European Patent Office (EPO) | A1 | |
| TWI686073B | Taiwan Province of China | B | |
| US2020127817A1 | United States of America | A1 | |
| US2020136814A1 | United States of America | A1 | |
| JP2020526050A | Japan | A | |
| US10797865B2 | United States of America | B2 | |
| AU2018323458B2 | Australia | B2 | |
| US10873449B2 | United States of America | B2 | |
| US2021021409A1 | United States of America | A1 | |
| AU2018323458C1 | Australia | C1 | |
| EP3586473B1 | European Patent Office (EPO) | B1 | |
| SG10202105050PA | Singapore | A | |
| CN107465505B | China | B | |
| US11095437B2 | United States of America | B2 | |
| EP3879751A1 | European Patent Office (EPO) | A1 | |
| US2021314147A1 | United States of America | A1 | |
| CN113765657A | China | A | |
| US11356250B2 | United States of America | B2 | |
| JP7118088B2This record | Japan | B2 |
12 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| First payment of annual fees (during grant procedure)JAPANESE INTERMEDIATE CODE: A61A61 | A61 | |
| Certificate of patent or registration of utility modelJAPANESE INTERMEDIATE CODE: R150R150 | R150 | |
| Written decision to grant a patent or to grant a registration (utility model)JAPANESE INTERMEDIATE CODE: A01A01 | A01 | |
| Decision of grant or rejection writtenTRDD | TRDD | |
| Request for written amendment filedJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Notification of reasons for refusalJAPANESE INTERMEDIATE CODE: A131A131 | A131 | |
| Request for written amendment filedJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Notification of reasons for refusalJAPANESE INTERMEDIATE CODE: A131A131 | A131 | |
| Report on retrievalJAPANESE INTERMEDIATE CODE: A971007A977 | A977 | |
| Notification of change in applicantJAPANESE INTERMEDIATE CODE: A711A711 | A711 | |
| Request for written amendment filedJAPANESE INTERMEDIATE CODE: A523A521 | A521 | |
| Written request for application examinationJAPANESE INTERMEDIATE CODE: A621A621 | A621 |
Numbers
- Publication
- 7118088
- Publication, DOCDB
- 7118088
- Publication, EPODOC
- JP7118088B
- Application
- 2019553388
- Application, DOCDB
- 2019553388
- Application, EPODOC
- JP20190553388
Titles2
- Japanese
- 鍵データの処理方法および装置、ならびにサーバ
- English
- Key data processing method and device, and server
Classification
- CPC, 15
- H04L9/085
- H04L9/0836
- H04L9/0819
- G06Q20/3829
- H04L9/0825
- H04L9/0869
- H04L2209/24
- H04L9/50
- G06Q20/401
- H04L9/0894
- G06F9/30029
- H04L9/0637
- H04L9/14
- G06Q20/367
- H04L9/083
- IPC, 3
- H04L9 08
- H04L9 14
- H04L9 32
