CN111444535A - Method, apparatus, and computer storage medium for generating aggregated data tags - Google Patents
Method, apparatus, and computer storage medium for generating aggregated data tags Download PDFInfo
- Publication number
- CN111444535A CN111444535A CN202010203286.9A CN202010203286A CN111444535A CN 111444535 A CN111444535 A CN 111444535A CN 202010203286 A CN202010203286 A CN 202010203286A CN 111444535 A CN111444535 A CN 111444535A
- Authority
- CN
- China
- Prior art keywords
- data
- row
- elliptic curve
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000003860 storage Methods 0.000 title claims abstract description 23
- 238000012545 processing Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 12
- 238000004364 calculation method Methods 0.000 abstract description 6
- 230000004048 modification Effects 0.000 abstract description 3
- 238000012986 modification Methods 0.000 abstract description 3
- 238000012217 deletion Methods 0.000 abstract description 2
- 230000037430 deletion Effects 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 239000000835 fiber Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting 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
In accordance with example embodiments of the present disclosure, methods, apparatuses, and computer storage media for generating an aggregated data tag 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 row data block of the t row data blocks: 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 to obtain n elliptic curve points; carrying out elliptic curve addition operation on the n elliptic curve points to obtain a data label for the row of data blocks; and for t data labels used for the t data blocks, calculating a Merck tree to obtain a Merck tree root as an aggregated data label used for the target data. Thus, the present invention can 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 carried out on the data segments, the updating of the data labels does not increase too much calculation amount.
Description
Technical Field
Embodiments of the present disclosure generally relate to the field of information processing, and in particular, to a method for generating an aggregated data tag, a method for verifying an aggregated data tag, a method for generating an aggregated data tag for merging data, an electronic device, and a computer storage medium.
Background
At present, data is submitted to a block chain as a method for guaranteeing data authenticity, but the data cannot be directly submitted to the block chain in a clear text in order to guarantee data confidentiality. If data is encrypted and submitted to uplink, the waste of blockchain storage is caused, because 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 blockchain nodes are seriously consumed.
One approach is to employ a hash algorithm to ensure the uniqueness of the data. However, the hash algorithm has a significant problem in that once the data is changed very slightly, the hash is recalculated for the entire data. This is a costly and impractical recalculation for larger data sets. In addition, the hash algorithm is difficult to deal with the operations of merging, updating, adding and deleting data.
Disclosure of Invention
Embodiments of the present disclosure provide methods for generating aggregated data tags, methods for verifying aggregated data tags, methods for generating aggregated data tags for merging data, electronic devices, and computer storage media, whereby the present invention is able to generate data tags with the following advantages: the data labels of the two data sets can be quickly combined, and even if data modification or deletion is carried out on the data segments, the updating of the data labels does not increase too much calculation amount.
In a first aspect of the disclosure, a method for generating an aggregated data tag 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 row data block of the t row data blocks: 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 to obtain n elliptic curve points; carrying out elliptic curve addition operation on the n elliptic curve points to obtain a data label for the row of data blocks; and for t data labels used for the t data blocks, calculating a Merck tree to obtain a Merck tree root as an aggregated data label used for the target data.
In a second aspect of the 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 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 the 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 aggregated data tag, comprising: receiving a row of data blocks in target data from a second electronic device at a first 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 line of data blocks and n preset elliptic curve base points in a one-to-one correspondence manner so as to obtain data labels for the line of data blocks; sending a request about a Merck tree path corresponding to the row of data blocks to the second electronic device; receiving a 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 label and the Merck tree path to obtain a root hash of the Merck tree; 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 chunks corresponds to the aggregate data tag for the target data; and responsive to determining that the merkel root hash is not equal to an aggregate data tag for the target data, determining that the row of data chunks 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 disclosure.
In a sixth aspect of the present disclosure, a computer-readable storage medium is provided, having stored thereon a computer program which, when executed by a machine, implements the 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 aggregated data tag for merging data, comprising: obtaining a first aggregated data tag for first data generated according to the method of the first aspect of the present disclosure; obtaining a second aggregated 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 aggregated data tag and the second aggregated data tag as an aggregated data tag for the data after the merging of the first data and the second data.
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 disclosure.
In a ninth aspect of the disclosure, a computer readable storage medium is provided, having stored thereon a computer program which, when executed by a machine, implements the method according to the seventh aspect of the disclosure.
This 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 diagram of a method 100 for generating an aggregated data tag in accordance with an embodiment of the present disclosure;
FIG. 2 shows a schematic flow diagram of a method 200 for validating an aggregated data tag, according to an embodiment of the present disclosure;
FIG. 3 shows a schematic flow diagram of a method 300 for generating an aggregated 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 designate 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 shown 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 "include" and variations thereof as used herein is meant to be inclusive in an open-ended manner, i.e., "including but not limited to". Unless specifically stated otherwise, the term "or" means "and/or". 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 understood that the "data tag" herein may also be referred to as a "data digest", "data fingerprint", or the like.
As described above, the problem of hashing is: once the data has been altered very little, the entire data needs to be re-hashed. This is a costly and impractical recalculation for larger data sets. In addition, the hash algorithm is difficult to deal with the operations of merging, updating, adding and deleting data.
To address, at least in part, one or more of the above issues and other potential issues, example embodiments of the present disclosure propose a scheme for generating an aggregated data tag. In the scheme, target data is 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 row data block of the t row data blocks: 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 to obtain n elliptic curve points; carrying out elliptic curve addition operation on the n elliptic curve points to obtain a data label for the row of data blocks; and for t data labels used for the t data blocks, calculating a Merck tree to obtain a Merck tree root as an aggregated data label used for the target data.
In the scheme, target data is divided into data blocks of t rows and n columns, a data label is calculated for each row of data block based on an elliptic curve base point, a Merck tree root is calculated based on t data labels of the t row of data block to be used as an aggregated data label, the safety of the data label can be guaranteed through elliptic curve operation, the data plaintext is not leaked, the uniqueness of the data label is guaranteed, malicious tampering of the data is prevented through the Merck tree operation, the aggregated data label supports updating of the data label of each row of data after the data is changed, a large amount of calculation is not needed, and in addition, rapid combination of the data labels of two data sets is also supported.
Fig. 1 shows a schematic flow diagram of a method 100 for generating an aggregated data tag according to an embodiment of the present disclosure. For example, method 100 may be performed by electronic device 400 as shown in FIG. 4. It should be understood that method 100 may also include additional blocks not shown and/or may omit blocks shown, as the scope of the present disclosure is not limited in this respect.
At block 102, target data is divided into data blocks of t rows and n columns by a predetermined size, n and t being integers greater than 1. The predetermined size may include a domain width of the elliptic curve. For example, if the field width of the elliptic curve is 256 bits, the size of the data block may not exceed 256 bits, for example, 31 bytes.
At block 104, for each row data block of the t row data blocks: and carrying out elliptic curve multiplication operation on the n data blocks in the row of data blocks and n preset elliptic curve base points in a one-to-one correspondence manner to obtain n elliptic curve points. For example, if the ith row of data block of the target data is represented as mi, i is greater than or equal to 1 and less than or equal to t, then n data blocks in the ith row of data block may be represented as mi1, mi2. For example, the result of digitizing the data block is multiplied by the corresponding elliptic curve base point to obtain the elliptic curve point corresponding to the data block. Multiplication can be achieved by an elliptic curve addition operation, for example, the base point of an elliptic curve is G, 2 × G can be achieved by G + G, and 3 × G can be achieved by G + G.
In some embodiments, N results obtained by respectively concatenating the N different values with the predetermined character string may be hashed to points on the elliptic curve to obtain N elliptic curve base points. The n different values may comprise n consecutive integers, e.g. 1 to n. The predetermined string may be, for example, any public or private random or non-random string.
In some embodiments, hashing the n results obtained by respectively concatenating the n different values with the predetermined string to the point on the elliptic curve may include concatenating the n different values with the predetermined string to obtain n results, hashing the n results to obtain n hashed results, and mapping the n hashed results to the point on the elliptic curve to obtain n elliptic curve base points. Concatenating the value with the predetermined string may, for example, concatenate the value before or after the predetermined string to obtain a concatenated string. The hash operation may employ any suitable hash operation, such as SHA256 or the like. Mapping the hash result to a point on the elliptic curve may employ a method such as the trial and Increment method (Try and Increment method), the Shalluvastin Algorithm (Shallue-Woestijne Algorithm), or other suitable group hashing method.
At block 106, an elliptic curve addition operation is performed on the n elliptic curve points to obtain a data tag for the row of data blocks.
For example, the addition operation of two elliptic curve points L i for the ith row of data block may be obtained by calculating points at which the intersection between the two elliptic curve point connecting lines and the elliptic curve is symmetrical about the X axis, where mi1 × G1+ mi2 × G2+. the "+ min × Gn..
At block 108, for t data labels for the t row of data chunks, a merkel tree is computed to obtain a merkel tree root as an aggregated data label for the target data.
Calculating the merkel tree includes, for example, calculating t hash values of t data labels as leaf nodes, calculating a hash value of two adjacent leaf node cascades as a previous layer node, and calculating a hash value of the adjacent previous layer node cascades as a next previous layer node until a merkel tree root hash node. For example, a mercker tree is generated based on 4 data blocks m1-m4, the hash values of the data blocks are represented as h1-h4 as leaf nodes of the mercker tree, the hash values of the cascade results of h1 and h2 are the upper parent nodes p1 of the leaf nodes h1 and h2, the hash values of the cascade results of h3 and h4 are the upper parent nodes p2 of the leaf nodes h3 and h4, and the hash values of the cascade results of p1 and p2 are the upper parent nodes root of the nodes p1 and p2, namely the root node of the mercker tree, namely the mercker tree root hash. The hash value of the data tag may be obtained, for example, by hashing the data tag's X-axis value or Y-axis value or other method of hashing the point into a finite field.
Therefore, the safety of the data label can be guaranteed through elliptic curve operation, the data plaintext is not leaked, the uniqueness of the data label is guaranteed, malicious tampering of data is prevented through the Mercker tree operation, the aggregated data label supports updating of the data label after each row of data is changed, a large amount of calculation is not needed, and in addition, the rapid combination of the data labels of two data sets is also supported.
Alternatively or additionally, in some embodiments, the method 100 further comprises: determining whether a line of data in the target data is modified, and if the line of data in the target data is modified, performing elliptic curve multiplication operation on n data blocks in the modified line of data in one-to-one correspondence with n predetermined elliptic curve base points to obtain n elliptic curve points, performing elliptic curve addition operation on the n elliptic curve points to obtain data labels for the modified line of data blocks, calculating hash values of the data labels for the modified line of data blocks, acquiring a Merck tree path corresponding to the modified line of data blocks, and updating the Merck root hash as an updated aggregated data label based on the hash values and the Merck tree path. The modified merkel tree path corresponding to the row of data chunks includes, for example, other nodes on the merkel tree required to compute a root hash of the merkel tree based on hash values of data labels of the row of data chunks. For example, a merkel tree is generated based on 4 data blocks m1-m4, the hash value of the data block is represented by h1-h4 as a leaf node of the merkel tree, the hash value of the cascade result of h1 and h2 is the upper parent node p1 of the leaf nodes h1 and h2, the hash value of the cascade result of h3 and h4 is the upper parent node p2 of the leaf nodes h3 and h4, the hash value of the cascade result of p1 and p2 is the upper parent node root of the nodes p2 and p2, that is, the root node of the merkel tree, that is, the root hash of the merkel tree, if the data block m 2 is modified to m 2 ', the hash value thereof is changed to h2 ', the path of the merkel tree corresponding to the hash value is h2, p2, and the hash value is updated based on h2 ' and h 2.
Therefore, when a row of data blocks in the target data are modified, the data labels of the row of data blocks and the root hash of the Merck tree are updated, so that the data labels of the target data can be updated rapidly without large amount of calculation.
Alternatively or additionally, in some embodiments, the method 100 further comprises: determining whether a line of data blocks in the target data is deleted, if so, updating the hash value of the data label of the deleted line of data to a preset value, acquiring a Merck tree path corresponding to the deleted line of data blocks, and updating the root hash of the Merck tree as an updated aggregated data label based on the preset value and the Merck tree path. The predetermined value may comprise 0 or other suitable value. The processes of obtaining the tacher tree path and updating the tacher tree root hash are similar to those described above, and are not described again.
Therefore, when a row of data blocks in the target data is modified, the data label of the target data can be quickly updated by setting the hash value of the data label of the row of data blocks to a preset value and updating the root hash of the Merck tree, and a large amount of calculation is not needed.
Fig. 2 shows a schematic flow diagram of a method 200 for validating an aggregated data tag, according to an embodiment of the present disclosure. For example, the method 200 may be performed by the electronic device 400 as shown in fig. 4. It should be understood that method 200 may also include additional blocks not shown and/or may omit blocks shown, as the scope of the present disclosure is 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 by 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, terminal devices, servers, etc. Such as, but not limited to, mobile phones, smart phones, laptops, tablets, Personal Digital Assistants (PDAs), wearable devices, and the like. Such as, but not limited to, a personal computer, a server computer, a multiprocessor system, a mainframe computer, a distributed computing environment including any of the above systems or devices, and so forth.
At block 204, elliptic curve addition is performed on n elliptic curve points obtained by performing an elliptic curve multiplication operation on n data blocks in the row of data blocks in one-to-one correspondence with n predetermined elliptic curve base points to obtain data labels for the row of data blocks. See above for details, which are not repeated here.
At block 206, a request is sent to the second electronic device for a path of the merkel tree to which the row of data blocks corresponds.
At block 208, a merkel tree path corresponding to the row of data blocks from the second electronic device is received. The description of the path of the merkel tree is given above and will not be repeated here.
At block 210, a merkel tree is computed based on the hash value of the data tag and the merkel tree path to obtain a merkel tree root hash. The process of calculating the merkel tree to obtain the merkel tree root hash is described above and will not be described herein.
At block 212, it is determined whether the Mercker tree root hash is equal to the aggregate data tag for the target data. The aggregated 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 aggregated data tag is described above, and is not described here again.
If the Mercker tree root hash is determined to be equal to the aggregate data tag for the target data at block 212, then the row of data chunks is determined to correspond to the aggregate data tag for the target data at block 214.
If it is determined at block 212 that the Mercker tree root hash is not equal to the aggregate data tag for the target data, then it is determined at block 216 that the row of data chunks does not correspond to the aggregate data tag for the target data.
Therefore, the root hash of the Mercker tree changes due to the change of any data for constructing the Mercker tree, and based on the characteristic, whether a row of data corresponds to the aggregation label of the target data or not can be verified, that is, whether the row of data is a part of the target data or not can be verified.
Fig. 3 shows a schematic flow diagram of a method 300 for generating an aggregated data tag for merging data according to an embodiment of the present disclosure. For example, method 300 may be performed by electronic device 400 as shown in FIG. 4. It should be understood that method 300 may also include additional blocks not shown and/or may omit blocks shown, as the scope of the disclosure is not limited in this respect.
At block 302, a first aggregated data tag for first data generated according to the method 100 is obtained.
At block 304, a second aggregated data tag for second data generated according to the method 100 is obtained.
At block 306, a hash value of the concatenated result of the first aggregated data tag and the second aggregated data tag is calculated as the aggregated data tag for the merged data of the first data and the second data.
Therefore, the aggregated data label of the data after the two data sets are combined can be quickly obtained through the aggregated data label of the two data sets, and the method is convenient and quick.
FIG. 4 schematically illustrates a block diagram of an electronic device 400 suitable for use in implementing embodiments of the present disclosure. The first and second electronic devices described above may be implemented by the electronic device 400. As shown, device 400 includes a Central Processing Unit (CPU)401 that may perform various appropriate 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 the RAM403, various programs and data required for the operation of the device 400 can also be stored. The CPU 401, ROM402, and RAM403 are connected to each other via a bus 404. An input/output (I/O) interface 405 is also connected to bus 404.
A number of components in device 400 are connected to I/O interface 405, including: an input unit 406 such as a keyboard, a mouse, or the like; 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, or the like; 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 method 100-300. For example, in some embodiments, the method 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. When the computer program is loaded into RAM403 and executed by CPU 401, one or more of the operations of method 100 and 300 described above may be performed. Alternatively, in other embodiments, the CPU 401 may be configured to perform one or more of the acts of the method 100-300 by any other suitable means (e.g., by way 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 carrying out various aspects of the present disclosure.
The computer readable storage medium may be a tangible device that can hold and store the instructions for use by the instruction execution device. The computer readable storage medium may be, for example, but not limited to, an electronic memory device, a magnetic memory device, an optical memory device, an electromagnetic memory device, a semiconductor memory 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: a portable computer diskette, a hard disk, a Random Access Memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), a Static Random Access Memory (SRAM), a portable compact disc read-only memory (CD-ROM), a Digital Versatile Disc (DVD), a memory stick, a floppy disk, a mechanical coding device, such as punch cards or in-groove projection structures having instructions stored thereon, and any suitable combination of the foregoing. Computer-readable storage media as used herein is not to be construed as transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission medium (e.g., optical pulses through a fiber optic cable), or electrical signals transmitted through electrical 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 via 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 transmission, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. The network adapter 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 carrying out operations of the present disclosure may be assembler 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, as well as conventional procedural programming languages, such as the "C" language or similar programming languages.
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 storing the instructions comprises 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 flowchart 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.
Having described embodiments of the present disclosure, the foregoing description is intended to be exemplary, not exhaustive, and not limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terms used herein were chosen in order to best explain the principles of the embodiments, the practical application, or technical improvements to the techniques 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 aggregated data tag, 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 row data block of the t row data blocks:
carrying out elliptic curve multiplication operation on n data blocks in the row data block and 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 data labels for the row data blocks; and
and calculating the Merck tree for the t data labels used for the t row data block to obtain a Merck tree root as an aggregated data label used 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 in one-to-one correspondence with the n predetermined elliptic curve base points to obtain n elliptic curve points;
performing elliptic curve addition operation on the n elliptic curve points to obtain a data label for the modified row data block;
calculating a hash value for the data label of the row of data blocks that was modified;
obtaining a Merck tree path corresponding to the modified row data block; and
updating the Mercker tree root hash as an updated aggregated data label based on the hash value and the Mercker tree path.
3. The method of claim 1, further comprising:
in response to determining that a row of data blocks in the target data has been deleted, updating a hash value of a data tag for the deleted row of data blocks to a predetermined value;
acquiring a Merck tree path corresponding to the deleted data block; and
updating the Mercker tree root hash as an updated aggregated data tag based on the predetermined value and the Mercker tree path.
4. A method for verifying an aggregated data tag, comprising:
receiving, at a first electronic device, 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 line of data blocks and n preset elliptic curve base points in a one-to-one correspondence manner so as to obtain data labels for the line of data blocks;
sending a request about a Merck tree path corresponding to the row of data blocks to the second electronic device;
receiving a 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 label and the Merck tree path to obtain a root hash of the Merck tree;
responsive to determining that the merkel root hash is equal to the aggregate data tag for the target data of claim 1, determining that the row of data chunks corresponds to the aggregate data tag for the target data; and
determining that the row of data chunks does not correspond to the aggregated data tag for the target data in response to determining that the Mercker tree root hash is not equal to the aggregated data tag for the target data.
5. A method for generating an aggregated data tag for merging data, comprising:
obtaining a first aggregated data tag for first data generated according to the method of claim 1;
obtaining a second aggregated data tag for second data generated according to the method of claim 1; and
and calculating the hash value of the cascading result of the first aggregated data label and the second aggregated data label to be used as the aggregated data label of the data after the first data and the second data are merged.
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, the instructions when executed by the at least one processing unit, cause the apparatus to perform the steps of the method of any 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 of any of claims 1 to 5.
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 true CN111444535A (en) | 2020-07-24 |
CN111444535B 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022134128A1 (en) * | 2020-12-22 | 2022-06-30 | 杭州趣链科技有限公司 | Multi-version data storage method and apparatus, computer device, and storage medium |
Citations (6)
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 |
US20190319798A1 (en) * | 2018-04-16 | 2019-10-17 | R3 Ltd. | Blockchain post-quantum signature scheme |
CN110881063A (en) * | 2019-11-20 | 2020-03-13 | 腾讯科技(深圳)有限公司 | Storage method, device, equipment and medium of private data |
-
2020
- 2020-03-20 CN CN202010203286.9A patent/CN111444535B/en active Active
Patent Citations (6)
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 |
US20190319798A1 (en) * | 2018-04-16 | 2019-10-17 | R3 Ltd. | Blockchain post-quantum signature scheme |
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)
Title |
---|
黄欣: "基于云计算的安全存储隐私保护数据协议", 《河池学院学报》, vol. 38, no. 5, pages 81 - 86 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022134128A1 (en) * | 2020-12-22 | 2022-06-30 | 杭州趣链科技有限公司 | Multi-version data storage method and apparatus, computer device, and storage medium |
Also Published As
Publication number | Publication date |
---|---|
CN111444535B (en) | 2024-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110300985B (en) | Parallel execution of transactions in blockchain networks 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 | |
CN112560091B (en) | Digital signature method, signature information verification method, related device and electronic equipment | |
CN114124502B (en) | Message transmission method, device, equipment and medium | |
CN112019328B (en) | Encryption method, device, equipment and storage medium of IP address | |
CN111950032A (en) | Block chain-based data storage method, terminal device and storage medium | |
CN114881247B (en) | Vertical federal feature derivation method, device and medium based on privacy calculation | |
CN115795513A (en) | File encryption method, file decryption method, file encryption device, file decryption device and equipment | |
CN111339547B (en) | Method for generating data tag, electronic device and computer storage medium | |
CN111444535B (en) | Method, apparatus and computer storage medium for generating aggregated data tag | |
CN117725598A (en) | An Zhuoduan data encryption and decryption method, device, equipment and medium | |
CN117786726A (en) | Source code file processing method and device, electronic equipment and storage medium | |
CN111447072B (en) | Method, apparatus and storage medium for generating data equivalent zero knowledge proof | |
CN110381114B (en) | Interface request parameter processing method and device, terminal equipment and medium | |
CN116132049B (en) | Data encryption method, device, equipment and storage medium | |
CN111444548B (en) | Method, apparatus and computer storage medium for data integrity attestation | |
CN112182518A (en) | Software deployment method and device | |
CN113992345B (en) | Webpage sensitive data encryption and decryption method and device, electronic equipment and storage medium | |
CN112559497B (en) | Data processing method, information transmission method, device and electronic equipment | |
CN111339546B (en) | Method for generating data tag, electronic device and computer storage medium | |
CN111444044B (en) | Method for checking redundancy backup of data, electronic equipment and computer storage medium | |
CN113609156A (en) | Data query and write-in method and device, electronic equipment and readable storage medium | |
CN113378242A (en) | Data verification method and system | |
CN111444242B (en) | Method for checking data equivalence, electronic device and computer storage medium |
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 |