CN111444535B - Method, apparatus and computer storage medium for generating aggregated data tag - Google Patents

Method, apparatus and computer storage medium for generating aggregated data tag Download PDF

Info

Publication number
CN111444535B
CN111444535B CN202010203286.9A CN202010203286A CN111444535B CN 111444535 B CN111444535 B CN 111444535B CN 202010203286 A CN202010203286 A CN 202010203286A CN 111444535 B CN111444535 B CN 111444535B
Authority
CN
China
Prior art keywords
data
elliptic curve
tag
blocks
data blocks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202010203286.9A
Other languages
Chinese (zh)
Other versions
CN111444535A (en
Inventor
郭宇
胡宇光
孙志鹏
卢艺文
叶存
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Lianyuan Information Technology Co ltd
Original Assignee
Suzhou Lianyuan Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Lianyuan Information Technology Co ltd filed Critical Suzhou Lianyuan Information Technology Co ltd
Priority to CN202010203286.9A priority Critical patent/CN111444535B/en
Publication of CN111444535A publication Critical patent/CN111444535A/en
Application granted granted Critical
Publication of CN111444535B publication Critical patent/CN111444535B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Storage Device Security (AREA)

Abstract

According to example embodiments of the present disclosure, methods, apparatus, and computer storage media for generating an aggregate data label are provided. In the method, target data is divided into data blocks of t rows and n columns according to a preset size; for each of the t rows of data blocks: carrying out elliptic curve multiplication operation on n data blocks in the data blocks and n preset elliptic curve base points in a one-to-one correspondence manner so as to obtain n elliptic curve points; performing elliptic curve addition operation on the n elliptic curve points to obtain a data tag for the data block; and calculating the merck tree for the t data tags for the t data blocks to obtain the merck tree root as an aggregate data tag for the target data. Thus, the present invention is able to generate a data tag having the following advantages: the data labels of the two data sets can be quickly combined, and even if data modification or deletion is performed on the data fragments, the data labels are updated without increasing too much calculation amount.

Description

Method, apparatus and computer storage medium for generating aggregated data tag
Technical Field
Embodiments of the present disclosure relate generally to the field of information processing, and in particular, to a method for generating an aggregate data tag, a method for verifying an aggregate data tag, a method for generating an aggregate data tag for merging data, an electronic device, and a computer storage medium.
Background
At present, data is submitted to a blockchain as a method for guaranteeing the authenticity of the data, but in order to guarantee the confidentiality of the data, the plaintext of the data cannot be directly submitted to the blockchain. If the data is encrypted and submitted to the uplink, the waste of the blockchain storage is caused, and the blockchain adopts a large-scale copy mode to ensure that the data is not tampered. If the data set is large, the blockchain network communication protocol is jammed, and the resources of the blockchain nodes are seriously consumed.
One approach is to use a hash algorithm to guarantee the uniqueness of the data. However, the hashing algorithm has a significant problem in that once the data has been modified very little, the entire data needs to be recalculated. This is costly and impractical for larger data sets. In addition, the hash algorithm is difficult to deal with merging, updating, adding and deleting operations of data.
Disclosure of Invention
Embodiments of the present disclosure provide a method for generating an aggregate data tag, a method for verifying an aggregate data tag, a method for generating an aggregate data tag for merging data, an electronic device, and a computer storage medium, whereby the present invention is capable of generating a data tag having the following advantages: the data labels of the two data sets can be quickly combined, and even if data modification or deletion is performed on the data fragments, the data labels are updated without increasing too much calculation amount.
In a first aspect of the present disclosure, a method for generating an aggregate data label is provided. The method comprises the following steps: dividing target data into data blocks of t rows and n columns according to a preset size, wherein n and t are integers larger than 1; for each of the t rows of data blocks: carrying out elliptic curve multiplication operation on n data blocks in the data blocks and n preset elliptic curve base points in a one-to-one correspondence manner so as to obtain n elliptic curve points; performing elliptic curve addition operation on the n elliptic curve points to obtain a data tag for the data block; and calculating the merck tree for the t data tags for the t data blocks to obtain the merck tree root as an aggregate data tag for the target data.
In a second aspect of the present disclosure, an electronic device is provided. The electronic device includes: at least one processing unit; and at least one memory coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, the instructions when executed by the at least one processing unit cause the apparatus to perform the steps of the method according to the first aspect of the present disclosure.
In a third aspect of the present disclosure, there is provided a computer readable storage medium having stored thereon a computer program which, when executed by a machine, implements a method according to the first aspect of the present disclosure.
In a fourth aspect of the present disclosure, there is provided a method for verifying an aggregate data label, comprising: at a first electronic device, receiving a row of data blocks in target data from a second electronic device, wherein the target data is divided into t rows and n columns of data blocks according to a preset size; carrying out elliptic curve addition operation on n elliptic curve points obtained by carrying out elliptic curve multiplication operation on n data blocks in the row of data blocks and n preset elliptic curve base points in a one-to-one correspondence manner so as to obtain a data tag for the row of data blocks; sending a request about the merck tree path corresponding to the row of data blocks to the second electronic device; receiving the merck tree path corresponding to the row of data blocks from the second electronic device; calculating a merck tree based on the hash value of the data tag and the merck tree path to obtain a merck tree root hash; responsive to determining that the merck root hash is equal to an aggregate data tag for the target data, determining that the row of data blocks corresponds to the aggregate data tag for the target data; and in response to determining that the merck root hash is not equal to an aggregate data tag for the target data, determining that the row of data blocks does not correspond to the aggregate data tag for the target data.
In a fifth aspect of the present disclosure, an electronic device is provided. The electronic device includes: at least one processing unit; and at least one memory coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, the instructions when executed by the at least one processing unit cause the apparatus to perform the steps of the method according to the fourth aspect of the present disclosure.
In a sixth aspect of the present disclosure, there is provided a computer readable storage medium having stored thereon a computer program which, when executed by a machine, implements a method according to the fourth aspect of the present disclosure.
In a seventh aspect of the present disclosure, there is provided a method for generating an aggregate data label for merging data, comprising: acquiring a first aggregate data tag for first data generated according to the method of the first aspect of the present disclosure; obtaining a second polymeric data tag for second data generated according to the method of the first aspect of the present disclosure; and calculating a hash value of a concatenation result of the first aggregate data tag and the second aggregate data tag as an aggregate data tag for the data after the first data and the second data are merged.
In an eighth aspect of the present disclosure, an electronic device is provided. The electronic device includes: at least one processing unit; and at least one memory coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, the instructions when executed by the at least one processing unit cause the apparatus to perform the steps of the method according to the seventh aspect of the present disclosure.
In a ninth aspect of the present disclosure, there is provided a computer readable storage medium having stored thereon a computer program which, when executed by a machine, implements a method according to the seventh aspect of the present disclosure.
The summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the disclosure, nor is it intended to be used to limit the scope of the disclosure.
Drawings
The foregoing and other objects, features and advantages of the disclosure will be apparent from the following more particular descriptions of exemplary embodiments of the disclosure as illustrated in the accompanying drawings wherein like reference numbers generally represent like parts throughout the exemplary embodiments of the disclosure.
FIG. 1 shows a schematic flow chart of a method 100 for generating an aggregate data label in accordance with an embodiment of the disclosure;
FIG. 2 shows a schematic flow diagram of a method 200 for verifying an aggregated data tag according to an embodiment of the disclosure;
FIG. 3 illustrates a schematic flow diagram of a method 300 for generating an aggregate data tag for merging data in accordance with an embodiment of the present disclosure; and
fig. 4 schematically illustrates a block diagram of an electronic device 400 suitable for use in implementing embodiments of the present disclosure.
Like or corresponding reference characters indicate like or corresponding parts throughout the several views.
Detailed Description
Preferred embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. While the preferred embodiments of the present disclosure are illustrated in the drawings, it should be understood that the present disclosure may be embodied in various forms and should not be limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the disclosure to those skilled in the art.
The term "comprising" and variations thereof as used herein means open ended, i.e., "including but not limited to. The term "or" means "and/or" unless specifically stated otherwise. The term "based on" means "based at least in part on". The terms "one example embodiment" and "one embodiment" mean "at least one example embodiment. The term "another embodiment" means "at least one additional embodiment". The terms "first," "second," and the like, may refer to different or the same object. Other explicit and implicit definitions are also possible below. It should be appreciated that the "data tag" herein may also be referred to as a "data digest", "data fingerprint", etc.
As described above, the problem of hashing is: once the data has been modified very little, the entire data needs to be re-hashed. This is costly and impractical for larger data sets. In addition, the hash algorithm is difficult to deal with merging, updating, adding and deleting operations of data.
To at least partially address one or more of the above problems, as well as other potential problems, example embodiments of the present disclosure propose a solution for generating an aggregated data tag. In the scheme, target data are divided into data blocks of t rows and n columns according to a preset size, wherein n and t are integers larger than 1; for each of the t rows of data blocks: carrying out elliptic curve multiplication operation on n data blocks in the data blocks and n preset elliptic curve base points in a one-to-one correspondence manner so as to obtain n elliptic curve points; performing elliptic curve addition operation on the n elliptic curve points to obtain a data tag for the data block; and calculating the merck tree for the t data tags for the t data blocks to obtain the merck tree root as an aggregate data tag for the target data.
In the scheme, the target data is divided into the data blocks of t rows and n columns, the data labels are calculated for each row of data blocks based on the base points of the elliptic curve, the merck tree is calculated based on the t data labels of the t rows of data blocks to obtain the merck tree root as the aggregate data label, the security of the data labels can be ensured through elliptic curve operation, the data plaintext is not leaked, meanwhile, the uniqueness of the data labels is ensured, the malicious tampering of the data is prevented through merck tree operation, the aggregate data label supports the update of the data labels after the change of the data of each row, a large amount of calculation is not needed, and the rapid combination of the data labels of two data sets is also supported.
Fig. 1 shows a schematic flow chart of a method 100 for generating an aggregated data tag according to an embodiment of the disclosure. For example, the method 100 may be performed by an electronic device 400 as shown in fig. 4. It should be understood that method 100 may also include additional blocks not shown and/or that the blocks shown may be omitted, the scope of the disclosure being not limited in this respect.
At block 102, the target data is divided into t rows and n columns of data blocks according to a predetermined size, n and t being integers greater than 1. The predetermined size may include a domain width of an elliptic curve. For example, the field width of the elliptic curve is 256 bits, and the size of the data block may not exceed 256 bits, for example not more than 31 bytes.
At block 104, for each of the t rows of data blocks: and carrying out elliptic curve multiplication operation on n data blocks in the data blocks and n preset elliptic curve base points in a one-to-one correspondence manner so as to obtain n elliptic curve points. For example, when the i-th line data block of the target data is denoted as mi, i is equal to or greater than 1 and less than t, n data blocks in the i-th line data block may be denoted as mi1, mi2, min, n predetermined elliptic curve base points may be denoted as G1, G2, gn, and n elliptic curve points may be obtained by performing elliptic curve multiplication operations on n data blocks in one-to-one correspondence with n predetermined elliptic curves, mi1×g1, mi2×g2, min. For example, the result of the data block is multiplied by the corresponding elliptic curve base point, that is, multiplied, to obtain the elliptic curve point corresponding to the data block. The multiplication may be achieved by an elliptic curve addition operation, e.g. with an elliptic curve base point G,2*G can be realized by G + G, 3*G can pass through G +: g+g.
In some embodiments, N results obtained by splicing N different values with a predetermined character string respectively may be hashed to points on the elliptic curve to obtain N elliptic curve base points. The n different values may include n consecutive integers, e.g., 1 to n. The predetermined string may be, for example, any public or non-public random or non-random string.
In some embodiments, hashing n results, each of which is obtained by concatenating n different values with a predetermined string, onto a point on the elliptic curve may include concatenating n different values with the predetermined string, respectively, to obtain n results, hashing the n results to obtain n hashed results, and mapping the n hashed results onto a point on the elliptic curve, to obtain n elliptic curve base points. Splicing the value to the predetermined string may, for example, splice the value before or after the predetermined string to obtain a spliced string. The hash operation may employ any suitable hash operation, such as SHA256, and the like. Mapping the hash result to points on the elliptic curve may employ methods such as trial and error (Try and Increment method), sha Luwo statin algorithm (Shalu-Woestijne Algorithm), or other suitable group hash methods.
At block 106, elliptic curve addition operations are performed on the n elliptic curve points to obtain a data tag for the data block.
For example, the data tag li=mi1×g1+mi2×g2+ & gt+min×gn for the i-th data block. The addition operation of the two elliptic curve points can be obtained by calculating the point at which the intersection point between the two elliptic curve point connecting lines and the elliptic curve is symmetrical about the X-axis. The addition operation of the elliptic curve points can be split into two-by-two elliptic curve points, and finally an elliptic curve point, namely the data tag for the data block, is obtained.
At block 108, for the t data tags for the t data blocks, the merck tree is computed to obtain the merck tree root as the aggregate data tag for the target data.
Calculating the merck tree comprises, for example, calculating t hash values of t data labels as leaf nodes, calculating hash values of two adjacent leaf node cascades as a last layer node, and then calculating hash values of two adjacent last layer node cascades as a last layer node until the merck tree root hash node. For example, a merck tree is generated based on 4 data blocks m1-m4, the hash value of the data block is expressed as h1-h4 as a leaf node of the merck tree, the hash value of the cascade result of h1 and h2 is expressed as p1 of the upper parent nodes of the leaf nodes h1 and h2, the hash value of the cascade result of h3 and h4 is expressed as p2 of the upper parent nodes of the leaf nodes h3 and h4, and the hash value of the cascade result of p1 and p2 is expressed as p1 and p2 of the upper parent nodes root of the merck tree, that is, the root node of the merck tree, that is, the merck tree root hash. The hash value of the data tag may be obtained by, for example, an X-axis value or a Y-axis value of the data tag or other method of hashing the point into a finite field.
Therefore, the security of the data tag can be ensured through elliptic curve operation, the data plaintext is not leaked, meanwhile, the uniqueness of the data tag is ensured, the malicious tampering of the data is prevented through merck tree operation, the data tag update after each row of data change is supported by the aggregated data tag, a large amount of calculation is not needed, and in addition, the rapid merging of the data tags of two data sets is also supported.
Alternatively or additionally, in some embodiments, the method 100 further comprises: determining whether one line of data in the target data is modified, if so, performing elliptic curve multiplication operation on n data blocks in the modified line of data and n preset elliptic curve base points in a one-to-one correspondence mode to obtain n elliptic curve points, performing elliptic curve addition operation on the n elliptic curve points to obtain a data tag for the modified line of data blocks, calculating a hash value of the data tag for the modified line of data blocks, obtaining a merck tree path corresponding to the modified line of data blocks, and updating a merck tree root hash based on the hash value and the merck tree path to serve as an updated aggregate data tag. The modified merck tree path corresponding to the row of data blocks includes, for example, other nodes on the merck tree that are required to calculate a merck tree root hash based on the hash value of the data tag of the row of data blocks. For example, a merck tree is generated based on 4 data blocks m1-m4, the hash value of the data block is expressed as h1-h4 as a leaf node of the merck tree, the hash value of the cascade result of h1 and h2 is expressed as h1 'and h2, the hash value of the cascade result of h3 and h4 is expressed as p2 and p1 and p2 is expressed as p1 and p2, that is, the root node of the merck tree, that is, the merck tree root hash, and if the data block m1 is modified to become m1', the hash value of the data block m1 becomes h1', the corresponding merck tree path of the hash value is expressed as h2 and p2, p1' is calculated based on h1 'and h2, and the root is calculated based on p1' and p2, that is, the updated merck tree root is calculated.
Therefore, when one line of data block in the target data is modified, the data label of the line of data block and the Merker tree root hash are updated, so that the data label of the target data can be updated rapidly, and a large amount of calculation is not needed.
Alternatively or additionally, in some embodiments, the method 100 further comprises: determining whether a line of data block in the target data is deleted, if so, updating the hash value of the data tag for the deleted line of data to a predetermined value, acquiring the merck tree path corresponding to the deleted line of data block, and updating the merck tree root hash as an updated aggregate data tag based on the predetermined value and the merck tree path. The predetermined value may include 0 or other suitable value. The process of obtaining the merck tree path and updating the merck tree root hash is similar to the above, and will not be described again.
Therefore, when one line of data block in the target data is modified, the hash value of the data label of the line of data block is set to be a preset value, the Merker tree root hash is updated, and the data label of the target data can be updated rapidly without large calculation.
Fig. 2 shows a schematic flow diagram of a method 200 for verifying an aggregated data tag according to an embodiment of the disclosure. For example, the method 200 may be performed by an electronic device 400 as shown in fig. 4. It should be understood that method 200 may also include additional blocks not shown and/or that the blocks shown may be omitted, the scope of the disclosure being not limited in this respect.
At block 202, at a first electronic device, a row of data blocks in target data from a second electronic device is received, the target data being divided into t rows and n columns of data blocks according to a predetermined size, t and n being integers greater than 1. The first electronic device and the second electronic device are for example but not limited to a terminal device, a server, etc. Terminal devices such as, but not limited to, mobile phones, smart phones, laptops, tablet computers, personal Digital Assistants (PDAs), wearable devices, etc. Servers such as, but not limited to, personal computers, server computers, multiprocessor systems, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
At block 204, elliptic curve addition is performed on n elliptic curve points obtained by performing elliptic curve multiplication operations on n data blocks in the data block with n predetermined elliptic curve base points in a one-to-one correspondence manner to obtain a data tag for the data block. See above for details, and are not repeated here.
At block 206, a request is sent to the second electronic device for the merck tree path to which the block of data corresponds.
At block 208, a merck tree path corresponding to the block of data from the second electronic device is received. The merck tree path is described above and will not be described in detail herein.
At block 210, a merck tree is computed based on the hash value of the data tag and the merck tree path to obtain a merck tree root hash. The process of computing the merck tree to obtain the merck tree root hash is referred to above and will not be described in detail herein.
At block 212, it is determined whether the merck root hash is equal to the aggregate data tag for the target data. The aggregate data tag for the target data is, for example, previously received by the first electronic device from the second electronic device. The generation process of the aggregate data label is referred to above and will not be described in detail here.
If it is determined at block 212 that the merck root hash is equal to the aggregate data tag for the target data, then it is determined at block 214 that the data block corresponds to the aggregate data tag for the target data.
If it is determined at block 212 that the merck root hash is not equal to the aggregate data tag for the target data, then it is determined at block 216 that the block of data does not correspond to the aggregate data tag for the target data.
Thus, since any data constructing the merck tree changes, the merck tree root hash will change, and based on this characteristic, it can be verified whether a line of data corresponds to an aggregation tag of target data, that is, whether the line of data is part of the target data.
Fig. 3 shows a schematic flow chart of a method 300 for generating an aggregate data tag for merging data according to an embodiment of the disclosure. For example, the method 300 may be performed by an electronic device 400 as shown in fig. 4. It should be understood that method 300 may also include additional blocks not shown and/or that the blocks shown may be omitted, the scope of the disclosure being not limited in this respect.
At block 302, a first aggregate data tag for first data generated according to the method 100 is obtained.
At block 304, a second polymeric data tag for the second data generated according to the method 100 is acquired.
At block 306, a hash value of the concatenation result of the first aggregate data tag and the second aggregate data tag is calculated as the aggregate data tag for the data after the first data and the second data are merged.
Therefore, the aggregated data tag of the data combined by the two data sets can be obtained quickly by combining the aggregated data tags of the two data sets, and convenience and rapidness are realized.
Fig. 4 schematically illustrates a block diagram of an electronic device 400 suitable for use in implementing embodiments of the present disclosure. The first electronic device and the second electronic device described above may be implemented by the electronic device 400. As shown, the device 400 includes a Central Processing Unit (CPU) 401 that may perform various suitable actions and processes in accordance with computer program instructions stored in a Read Only Memory (ROM) 402 or loaded from a storage unit 408 into a Random Access Memory (RAM) 403. In RAM403, various programs and data required for the operation of device 400 may also be stored. The CPU 401, ROM402, and RAM403 are connected to each other by a bus 404. An input/output (I/O) interface 405 is also connected to bus 404.
Various components in device 400 are connected to I/O interface 405, including: an input unit 406 such as a keyboard, a mouse, etc.; an output unit 407 such as various types of displays, speakers, and the like; a storage unit 408, such as a magnetic disk, optical disk, etc.; and a communication unit 409 such as a network card, modem, wireless communication transceiver, etc. The communication unit 409 allows the device 400 to exchange information/data with other devices via a computer network, such as the internet, and/or various telecommunication networks.
The processing unit 401 performs the various methods and processes described above, such as performing the methods 100-300. For example, in some embodiments, the methods 100-300 may be implemented as a computer software program stored on a machine-readable medium, such as the storage unit 408. In some embodiments, part or all of the computer program may be loaded and/or installed onto the device 400 via the ROM402 and/or the communication unit 409. One or more of the operations of the methods 100-300 described above may be performed when the computer program is loaded into RAM403 and executed by CPU 401. Alternatively, in other embodiments, CPU 401 may be configured to perform one or more actions of methods 100-300 in any other suitable manner (e.g., by means of firmware).
The present disclosure may be methods, apparatus, systems, and/or computer program products. The computer program product may include a computer readable storage medium having computer readable program instructions embodied thereon for performing aspects of the present disclosure.
The computer readable storage medium may be a tangible device that can hold and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer-readable storage medium would include the following: portable computer disks, hard disks, random Access Memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static Random Access Memory (SRAM), portable compact disk read-only memory (CD-ROM), digital Versatile Disks (DVD), memory sticks, floppy disks, mechanical coding devices, punch cards or in-groove structures such as punch cards or grooves having instructions stored thereon, and any suitable combination of the foregoing. Computer-readable storage media, as used herein, are not to be construed as transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., optical pulses through fiber optic cables), or electrical signals transmitted through wires.
The computer readable program instructions described herein may be downloaded from a computer readable storage medium to a respective computing/processing device or to an external computer or external storage device over a network, such as the internet, a local area network, a wide area network, and/or a wireless network. The network may include copper transmission cables, fiber optic transmissions, wireless transmissions, routers, firewalls, switches, gateway computers and/or edge servers. The network interface card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium in the respective computing/processing device.
Computer program instructions for performing the operations of the present disclosure can be assembly instructions, instruction Set Architecture (ISA) instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, c++ or the like and conventional procedural programming languages, such as the "C" programming language or similar programming languages. The computer readable program instructions may be executed entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any kind of network, including a Local Area Network (LAN) or a Wide Area Network (WAN), or may be connected to an external computer (for example, through the Internet using an Internet service provider). In some embodiments, aspects of the present disclosure are implemented by personalizing electronic circuitry, such as programmable logic circuitry, field Programmable Gate Arrays (FPGAs), or Programmable Logic Arrays (PLAs), with state information of computer readable program instructions, which can execute the computer readable program instructions.
Various aspects of the present disclosure are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the disclosure. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer-readable program instructions.
These computer readable program instructions may be provided to a processing unit of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processing unit of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable medium having the instructions stored therein includes an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer, other programmable apparatus or other devices implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowcharts and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present disclosure. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which comprises one or more executable instructions for implementing the specified logical function(s). In some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The foregoing description of the embodiments of the present disclosure has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the various embodiments described. The terminology used herein was chosen in order to best explain the principles of the embodiments, the practical application, or the technical improvement of the technology in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.

Claims (7)

1. A method for generating an aggregate data label, comprising:
dividing target data into data blocks of t rows and n columns according to a preset size, wherein n and t are integers larger than 1;
for each of the t rows of data blocks:
carrying out elliptic curve multiplication operation on n data blocks in the data blocks and n preset elliptic curve base points in a one-to-one correspondence manner so as to obtain n elliptic curve points;
performing elliptic curve addition operation on the n elliptic curve points to obtain a data tag for the data block; and
for the t data tags for the t data blocks, computing a merck tree to obtain a merck tree root as an aggregate data tag for the target data.
2. The method of claim 1, further comprising:
in response to determining that a row of data blocks in the target data is modified, performing elliptic curve multiplication operation on n data blocks in the modified row of data blocks and the n preset elliptic curve base points in a one-to-one correspondence manner to obtain n elliptic curve points;
performing elliptic curve addition operation on the n elliptic curve points to obtain a data tag for the modified data block;
calculating a hash value for the modified data tag of the row of data blocks;
acquiring the modified merck tree path corresponding to the line data block; and
updating the Merker tree root hash based on the hash value and the Merker tree path as an updated aggregate data tag.
3. The method of claim 1, further comprising:
in response to determining that a row of data blocks in the target data is deleted, updating a hash value of a data tag for the deleted row of data blocks to a predetermined value;
acquiring the merck tree path corresponding to the deleted line data block; and
updating the merck tree root hash as an updated aggregate data tag based on the predetermined value and the merck tree path.
4. A method for verifying an aggregate data label, comprising:
at a first electronic device, receiving a row of data blocks in target data from a second electronic device, the target data being divided into t rows and n columns of data blocks according to a predetermined size, t and n being integers greater than 1;
carrying out elliptic curve addition operation on n elliptic curve points obtained by carrying out elliptic curve multiplication operation on n data blocks in the row of data blocks and n preset elliptic curve base points in a one-to-one correspondence manner so as to obtain a data tag for the row of data blocks;
sending a request about the merck tree path corresponding to the row of data blocks to the second electronic device;
receiving the merck tree path corresponding to the row of data blocks from the second electronic device;
calculating a merck tree based on the hash value of the data tag and the merck tree path to obtain a merck tree root hash;
in response to determining that the merck root hash is equal to an aggregate data tag for the target data of claim 1, determining that the row of data blocks corresponds to the aggregate data tag for the target data; and
in response to determining that the merck root hash is not equal to the aggregate data tag for the target data, determining that the row of data blocks does not correspond to the aggregate data tag for the target data.
5. A method for generating an aggregate data tag for merging data, comprising:
acquiring a first aggregate data tag for first data generated in accordance with the method of claim 1;
acquiring a second polymeric data tag for the second data generated in accordance with the method of claim 1; and
and calculating a hash value of a cascading result of the first aggregation data tag and the second aggregation data tag to be used as an aggregation data tag for the data after the first data and the second data are combined.
6. An electronic device, comprising:
at least one processing unit; and
at least one memory coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, which when executed by the at least one processing unit, cause the apparatus to perform the steps of the method according to any one of claims 1 to 5.
7. A computer readable storage medium having stored thereon a computer program which, when executed by a machine, implements the method according to any of claims 1 to 5.
CN202010203286.9A 2020-03-20 2020-03-20 Method, apparatus and computer storage medium for generating aggregated data tag Active CN111444535B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010203286.9A CN111444535B (en) 2020-03-20 2020-03-20 Method, apparatus and computer storage medium for generating aggregated data tag

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010203286.9A CN111444535B (en) 2020-03-20 2020-03-20 Method, apparatus and computer storage medium for generating aggregated data tag

Publications (2)

Publication Number Publication Date
CN111444535A CN111444535A (en) 2020-07-24
CN111444535B true CN111444535B (en) 2024-01-26

Family

ID=71629587

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010203286.9A Active CN111444535B (en) 2020-03-20 2020-03-20 Method, apparatus and computer storage medium for generating aggregated data tag

Country Status (1)

Country Link
CN (1) CN111444535B (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112579602B (en) * 2020-12-22 2023-06-09 杭州趣链科技有限公司 Multi-version data storage method, device, computer equipment and storage medium

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170091248A (en) * 2016-01-29 2017-08-09 한국과학기술원 Method And Apparatus for Memory Integrity Verification Based on Merkle Tree
CN108681583A (en) * 2018-05-11 2018-10-19 北京奇虎科技有限公司 Data proof of possession method, apparatus and readable storage medium storing program for executing based on block chain
CN109086585A (en) * 2018-07-10 2018-12-25 众安信息技术服务有限公司 History data processing method, system and computer readable storage medium
KR20190095067A (en) * 2018-06-22 2019-08-14 주식회사 코인플러그 Method for managing information using merkle tree based on blockchain, server and terminal using the same
CN110881063A (en) * 2019-11-20 2020-03-13 腾讯科技(深圳)有限公司 Storage method, device, equipment and medium of private data

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11005664B2 (en) * 2018-04-16 2021-05-11 R3 Ltd. Blockchain post-quantum signature scheme

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170091248A (en) * 2016-01-29 2017-08-09 한국과학기술원 Method And Apparatus for Memory Integrity Verification Based on Merkle Tree
CN108681583A (en) * 2018-05-11 2018-10-19 北京奇虎科技有限公司 Data proof of possession method, apparatus and readable storage medium storing program for executing based on block chain
KR20190095067A (en) * 2018-06-22 2019-08-14 주식회사 코인플러그 Method for managing information using merkle tree based on blockchain, server and terminal using the same
CN109086585A (en) * 2018-07-10 2018-12-25 众安信息技术服务有限公司 History data processing method, system and computer readable storage medium
CN110881063A (en) * 2019-11-20 2020-03-13 腾讯科技(深圳)有限公司 Storage method, device, equipment and medium of private data

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于云计算的安全存储隐私保护数据协议;黄欣;《河池学院学报》;第第38卷卷(第第5期期);81-86 *

Also Published As

Publication number Publication date
CN111444535A (en) 2020-07-24

Similar Documents

Publication Publication Date Title
EP3566391B1 (en) Parallel execution of transactions in a blockchain network based on smart contract whitelists
CN111444547B (en) Method, apparatus and computer storage medium for data integrity attestation
CN111339545B (en) Method for generating data tag, electronic device and computer storage medium
CN107643984B (en) Method and apparatus for outputting information
US11599519B2 (en) Method, electronic device and computer program product for data management
US20130054522A1 (en) Data synchronization using string matching
CN114881247A (en) Longitudinal federal feature derivation method, device and medium based on privacy computation
CN111339547B (en) Method for generating data tag, electronic device and computer storage medium
CN110086607B (en) Method and device for rapidly switching deployment key, computer equipment and storage medium
CN111444535B (en) Method, apparatus and computer storage medium for generating aggregated data tag
CN117786726A (en) Source code file processing method and device, electronic equipment and storage medium
CN111444548B (en) Method, apparatus and computer storage medium for data integrity attestation
CN111447072B (en) Method, apparatus and storage medium for generating data equivalent zero knowledge proof
CN111339546B (en) Method for generating data tag, electronic device and computer storage medium
CN113992345B (en) Webpage sensitive data encryption and decryption method and device, electronic equipment and storage medium
CN111444044B (en) Method for checking redundancy backup of data, electronic equipment and computer storage medium
CN112559497B (en) Data processing method, information transmission method, device and electronic equipment
US11513947B2 (en) Method, device and computer program product for building and verifying index file
CN114692100A (en) Digital watermark adding and extracting method and device, electronic equipment and readable medium
CN111444242B (en) Method for checking data equivalence, electronic device and computer storage medium
CN111444541B (en) Method, apparatus and storage medium for generating data mean zero knowledge proof
US11934537B1 (en) Systems and methods for validation of a device
CN116910630B (en) User identification information storage method, device, electronic equipment and medium
US20210365327A1 (en) Method, electronic deivce and computer program product for creating snapview backup
US11379449B2 (en) Method, electronic device and computer program product for creating metadata index

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant