WO2020000486A1 - 数据处理方法及装置 - Google Patents
数据处理方法及装置 Download PDFInfo
- Publication number
- WO2020000486A1 WO2020000486A1 PCT/CN2018/093922 CN2018093922W WO2020000486A1 WO 2020000486 A1 WO2020000486 A1 WO 2020000486A1 CN 2018093922 W CN2018093922 W CN 2018093922W WO 2020000486 A1 WO2020000486 A1 WO 2020000486A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- binary
- watermark
- value
- bit
- Prior art date
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 45
- 238000000034 method Methods 0.000 claims abstract description 30
- 238000012545 processing Methods 0.000 claims description 30
- 230000015654 memory Effects 0.000 claims description 19
- 238000000605 extraction Methods 0.000 claims description 18
- 238000001914 filtration Methods 0.000 claims description 2
- 238000012216 screening Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 16
- 238000004590 computer program Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 101001062093 Homo sapiens RNA-binding protein 15 Proteins 0.000 description 2
- 102100029244 RNA-binding protein 15 Human genes 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000008263 repair mechanism Effects 0.000 description 1
- 230000000717 retained effect Effects 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/16—Program or content traceability, e.g. by watermarking
-
- 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/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
Definitions
- the present invention relates to the field of information technology, and in particular, to a data processing method and device for embedding a binary watermark in data to be processed and obtaining a binary watermark from the data to be processed.
- the prior art embeds a binary watermark by modifying the least significant bit of the data to be processed.
- the lowest-order information of the data to be processed needs to be modified to be consistent with the corresponding watermark information.
- the corresponding binary watermark can be obtained according to the least significant bit of the data to be processed, thereby achieving the extraction of the binary watermark.
- the embodiments of the present invention provide a data processing method and device, which do not need to change the value of the data to be processed, and are suitable for occasions with high data accuracy requirements.
- the present application provides a data processing method for embedding a binary watermark into data to be processed.
- the method is implemented by the following steps: receiving M pieces of data to be processed sent by a data provider, and placing M pieces of data to be processed;
- the processed data is converted into M binary data, where the number of bits of each binary data is P bits, and a binary watermark is generated, where the number of bits of the binary watermark is N bits.
- the embedding bits of the binary watermark are determined, and the embedding bits are in the P bits.
- the Lth bit, 1 ⁇ T ⁇ P divides the M binary data into N groups, and the 1st to Nth bits of the binary watermark are embedded into the Lth bit of each binary data in the 1st to Nth groups, respectively
- the L-th bit of the data corresponds to the same bit of the binary watermark, and a part of the binary data in the X-th group of binary data is filtered, wherein the value at the T-th bit of the filtered binary data is not consistent with the value at the X-th bit of the binary watermark.
- X is a variable, 1 ⁇ X ⁇ N, and sends to the client the pending data corresponding to the unfiltered binary data.
- the key data corresponds to the client's identification code one by one.
- the security of the data can be further strengthened through the intervention of the key data, and the third party cannot obtain the embedding without obtaining the key data.
- Binary watermark
- the above-mentioned step of determining an embedded bit of a binary watermark on a single binary data is specifically implemented by: Perform a hash operation to obtain a first hash code, perform a remainder operation on the first hash code and the number of bits P of the binary data, and use the operation result as the embedded bit.
- an embedded bit is selected in binary data by a remainder operation, and the first hash code involved in the remainder operation is obtained by performing a hash operation on the key data. Therefore, the The embedded bit is selected in the binary data. Even if the pending data is leaked out, the third party who obtains the leaked pending data cannot know the embedded bit of the binary watermark in the pending data without knowing the key data. It is difficult for a large third party to crack the embedded bit, thereby ensuring data security.
- the M binary data is divided into N groups, and the specific implementation is to separate the key data with Perform hash operation on each binary data to obtain M second hash codes, and perform a remainder operation on the number of bits of the binary watermark N with each second hash code, and divide the M binary data into N according to the operation result Group, where each binary data corresponds to a group number.
- filtering out some binary data in the X-th group of binary data is specifically implemented as : Compare the value of the Lth bit in each binary data in the Xth group with the value of the Xth bit in the binary watermark to obtain the number A with the same value and the number U with the inconsistent value, and filter out the E binary data in the X group.
- E satisfies the following formula: A> UE.
- E takes the minimum value that satisfies the formula A> UE, or E further satisfies the following formula: A / (UE) ⁇ T, Wherein, T is a preset threshold greater than 1.
- the number of consistent binary values of the binary value of the embedded bit and the binary bit of the binary watermark corresponding to the number of the group where the binary value is in each group can be forced to be greater than the number of inconsistencies, thereby achieving a binary value of the binary watermark Maps to this packet.
- the data to be processed may be a database tuple, a text file, or a picture file.
- the text file and the picture file can be implemented in a binary format, and the database tuple can be converted into a binary format. Therefore, this application is applicable to the text file, the picture file, and the database tuple.
- the database tuple can be one of the relational tables. An element in a database tuple that corresponds to an attribute.
- an embedded bit is selected in binary data by a remainder operation, and the second hash code involved in the remainder operation is obtained by performing a hash operation on the key data. Therefore, the The embedded bit is selected in the binary data. Even if the pending data is leaked out, the third party who obtains the leaked pending data cannot know the embedded bit of the binary watermark in the pending data without knowing the key data. It is difficult for a large third party to crack the embedded bit, thereby ensuring data security.
- the binary watermark records an identification code of a client, an identification code of a data provider, and time information for generating the binary watermark.
- the method further includes the steps of extracting the identification code of the client, the identification code of the data provider, and the time information of generating the binary watermark from the binary watermark.
- the watermark server After the watermark server obtains the binary watermark, it can obtain the above three attribute information in the binary watermark, so as to locate the leaked data to be processed, know its data provider, data receiver (ie, client), and generation time. Provide evidence for data breaches.
- the number of packets is determined by the number of bits of the binary watermark, and each packet corresponds to one bit of the binary watermark.
- the binary value on the binary bit of the binary watermark can be mapped to each packet separately.
- the value of the statistics of the embedded data of the binary data in group X is the first The number Q of a value and the number W of a second value.
- Q> W it is determined that the value of the binary watermark embedded in the Xth group is the first value.
- Q ⁇ W the value of the embedded watermark in the Xth group is determined.
- the binary value of the binary watermark is the second value, and X is a variable. It is implemented in the following way, in the X group: When Q / W> (T + V-1) / V is satisfied, the binary embedded in the X group is determined.
- the value of the Xth bit of the watermark is the first value, where T is the threshold, T is a positive number greater than or equal to 1, and V is a positive integer, when W / Q> (T + V-1) / V is satisfied It is determined that the value of the Xth bit of the binary watermark embedded in the Xth group is the second value.
- T> 1 and V> 1 (T + V-1) / V is smaller than T.
- V 2.
- the present application provides a data processing device, which is configured to embed a binary watermark into the data to be processed.
- the device includes a receiving module for receiving M pieces of data to be processed sent by a data provider, and the watermark is embedded.
- the embedded bit is the Lth bit in the P bit, 1 ⁇ T ⁇ P
- the M binary data is divided into N groups
- the 1st to Nth bits of the binary watermark are embedded into each binary data in the 1st to Nth groups, respectively.
- the Lth bit of the binary data of the same group corresponds to the same bit of the binary watermark, and a part of the binary data in the Xth group of binary data is filtered, wherein the value on the Tth bit of the filtered binary data and the binary watermark
- the values on the X-th bit are inconsistent, X is a variable, 1 ⁇ X ⁇ N, and the sending module is configured to send the pending data corresponding to the unfiltered binary data to the client.
- the third aspect or any implementation manner of the third aspect is a device implementation corresponding to the first aspect or any implementation manner of the first aspect, and the description in the first aspect or any implementation manner of the first aspect is applicable to the third aspect Or any implementation manner of the third aspect, which is not described again here.
- the present application provides a data processing device for obtaining binary watermarks in data to be processed, including: a receiving module for receiving Z pieces of data to be processed, and a watermark extraction module for: storing Z pieces of data to be processed
- the data is converted into Z binary data, where the number of bits of each binary data is P bits, and the embedding bit of the binary watermark is determined, where the embedding bit is the Lth bit in the P bit, 1 ⁇ T ⁇ P, and the Z binary numbers are
- the data is divided into N groups, where N is the number of binary watermarks.
- the value of the binary data in the Xth group is the number Q of the first value and the number W of the second value.
- the fourth aspect or any implementation manner of the fourth aspect is a device implementation corresponding to the second aspect or any implementation manner of the second aspect, and the description in the second aspect or any implementation manner of the second aspect is applicable to the fourth aspect Or any implementation manner of the fourth aspect, which is not described again here.
- the present application provides a computer including a processor and a memory.
- the memory stores a program
- the processor runs the program to execute the data processing method provided by the first aspect or any implementation manner of the first aspect.
- the present application provides a storage medium that stores program code.
- the storage controller executes the foregoing first aspect or any implementation of the first aspect.
- the storage medium includes, but is not limited to, read-only memory, random access memory, flash memory, HDD or SSD.
- the present application provides a storage medium that stores program code.
- the storage controller executes the foregoing second aspect or any implementation of the second aspect.
- the storage medium includes, but is not limited to, read-only memory, random access memory, flash memory, HDD or SSD.
- the present application provides a computer program product.
- the computer program product includes program code.
- the storage controller executes the foregoing first aspect or any one of the first aspect.
- the computer program product may be a software installation package.
- the computer program product may be downloaded to a storage controller and stored in the The computer program product runs on a storage controller.
- the present application provides a computer program product, the computer program product including program code, and when the computer program product is executed by a storage controller, the storage controller executes any of the foregoing second aspect or any one of the second aspect Data processing methods provided by this implementation.
- the computer program product may be a software installation package. If the graphic processing method provided by the foregoing second aspect or any implementation manner of the second aspect is needed, the computer program product may be downloaded to a storage controller and stored in the The computer program product runs on a storage controller.
- FIG. 1 is a schematic diagram of a watermark system according to an embodiment of the present invention
- FIG. 2 is another schematic diagram of a watermarking system according to an embodiment of the present invention.
- FIG. 3 is a flowchart of a data processing method according to an embodiment of the present invention.
- FIG. 4 is a schematic diagram of data conversion of a data processing method according to an embodiment of the present invention.
- FIG. 5 is another flowchart of a data processing method according to an embodiment of the present invention.
- FIG. 6 is a schematic diagram of data conversion of a data processing method according to an embodiment of the present invention.
- FIG. 8 is a schematic diagram of a device structure of a data processing device according to an embodiment of the present invention.
- FIG. 9 is a schematic structural diagram of a computer device according to an embodiment of the present invention.
- FIG. 10 is a schematic structural diagram of a computer device according to an embodiment of the present invention.
- Embodiments of the present invention provide a data processing method and device.
- a binary watermark is embedded in the data to be processed without modifying the data to be processed.
- a binary watermark can be a 16-bit binary number of 0101, 1000, 1101, and 1111.
- the watermark server divides the 1st to 8th bits into a first subset, and the 9th to 16th bits into a second subset.
- a subset of 0101 and 1000 indicates that the data provider is a certain company
- a subset of 1101 and 1111 indicates that the generation time of the binary watermark is a certain month, a certain day, and a certain day.
- Database tuple a basic concept in a relational database. It belongs to database media data.
- Database media data refers to data stored in a database in a format that the database can read.
- a relationship represents a table (such as Table 1 below), each column is an attribute, and each row in the table is a database tuple.
- the data to be processed may be a database tuple shown in Table 1.1, or an element corresponding to an attribute in a database tuple shown in Table 1.2, such as "1", that is, a database tuple.
- Element "1" corresponding to attribute age in "Xiao Ming, 1".
- Hash operation A binary value of any length is mapped to a fixed-length integer. This integer is called a hash value.
- a hash value is a unique and extremely compact numeric representation of a piece of data.
- the data provider 101 sends the data to be processed to the watermark server 102, and the watermark server 102 embeds different binary watermarks in the data to be processed for different clients, generates the data to be processed A, B, and C, and sends them to the customers respectively. End 103,104,105.
- the binary watermark records the identification code of the client, the identification code of the data provider, and time information for generating the binary watermark.
- the binary watermark embedded in the data to be processed A records the identification code of the client 103, the identification code of the data provider 101, and the time information for generating the binary watermark, such as June 25, 2018.
- the binary watermark embedded in the data to be processed B is recorded with the identification code of the client 104, the identification code of the data provider 101, and the time information for generating the binary watermark, such as June 1, 2018.
- FIG. 2 is another schematic diagram of a watermark system according to an embodiment of the present invention.
- the data provider 101 can send the leaked pending data A to the watermark server 102, and the watermark server 102 leaks
- the binary watermark is extracted from the to-be-processed data A, so that according to the binary watermark, the identification code of the client 103, the identification code of the data provider 101, and the time information for generating the binary watermark are June 25, 2018, so as to know Information about leaked pending data A.
- the leaked pending data A may also be sent by the client 103 to the watermark server 102.
- the embodiments of the present invention are applicable to big data processing.
- the number of data to be processed can be more than 1,000, and even more than tens to hundreds of millions of data to be processed, but for clarity , The following will take 32 pending data as an example.
- FIG. 3 is a flowchart of the data processing method according to the embodiment of the present invention.
- the data processing method is used to embed a binary watermark into the data to be processed.
- the data processing method shown in FIG. 3 is applied to the watermark server 102 and includes the following steps:
- Step S101 The watermark server 102 receives the identification code of the client 103 and M pieces of data to be processed sent by the data provider 101, converts the M pieces of data to be processed into M binary data, and assigns key data to the identification code of the client 103 .
- the database tuple is decimal numeric data, while in other examples, the database tuple can be character data, such as "Xiao Ming" shown in Table 1.2 above.
- the watermark server 101 may first convert the character type data into numerical data. For example, American Standard Code (American Standard Code for Information Interchange, ASCII) encoding may be used to convert the character type data into numerical data.
- ASCII American Standard Code for Information Interchange
- the watermark server 102 converts the 32 database tuples shown in Table 2 into 32 binary data as follows:
- the number of bits of each binary data is P bits. According to Table 3, P may be 8, for example.
- the key data for the identification code of the client 103 is as follows:
- the key data has a one-to-one correspondence with the client's identification code. Different clients correspond to different key data.
- the watermark server 102 records the correspondence between the key data and the client 103's identification code.
- Step S102 Generate a binary watermark, and determine an embedded bit of the binary watermark.
- the embedded bit is the Lth bit among the P bits.
- the watermark server 102 generates, based on the received identification code of the client 103, the identification code of the pre-recorded data provider 101, and the current time on June 25, 2018, generating a record with the client 103 recorded.
- a binary watermark has a predetermined data length and can be divided into multiple subsets, each subset representing a different attribute.
- the binary watermark includes at least an identification code of a client, an identification code of a data provider, and time information for generating the binary watermark to identify three subsets of three different attributes.
- the data provider's identification code can also be sent by the data provider to the watermark server.
- the watermark server 102 may determine the embedded bit of the binary watermark on a single binary data in the following manner:
- the embedding bit can be obtained according to the following equation:
- the 5th bit from the right to the left of the binary data may also be taken as the embedded bit, which is not limited in the embodiment of the present invention.
- the embedding bit is determined by the key data. Therefore, even if the to-be-processed data is leaked out, the third party who obtains the leaked to-be-processed data cannot know that the binary watermark is in the to-be-prepared state without the knowledge of the key data.
- the embedded bit of the data is processed, so it is more difficult for a third party to crack the embedded bit, thereby ensuring data security.
- Step S103 Divide the M binary data into N groups.
- the N group numbers may be respectively corresponding to the N binary bits of the binary watermark, that is, the first to N bits of the binary watermark are respectively embedded into the L bits of each binary data in the first to N groups, which are the same
- the L-th bit of the grouped binary data corresponds to the same bit of the binary watermark.
- the watermark server 102 may perform a hash operation on the key data with each binary data, obtain M second hash codes, and separately compare the number of bits N of the binary watermark with each second hash code. Perform a remainder operation and divide the M binary data into N groups according to the operation result, wherein each binary data corresponds to a group number, and the M binary data is divided into N groups of binary data according to the N group numbers, so that N groups The numbers correspond to the N binary digits of the binary watermark, respectively.
- the group number can be a positive integer from 0 to N-1.
- the ratio of the binary numbers 1 and 0 at the same position approaches 1: 1, where The closer M is to infinity, the closer the ratio of binary numbers 1 and 0 to the same position in each set of binary data is to 1.
- the 32 binary data shown in Table 2 can be hashed with the key data 8151014275E426C72EE7D44267EF11590DCE0089E19863BA8CC832187B156A72 to obtain 32 second hash codes as integers as follows:
- performing a remainder operation on the second hash code in Table 3 and the bit number 2 of the binary watermark can generate two group numbers, where the group numbers are specifically 0 and 1.
- the watermark server 102 corresponds to the packet number 0 to the left-to-right first digit (0) of the binary watermark 01 and the packet number 1 to the left-to-right second digit (1) of the binary watermark 01.
- the corresponding method can be adjusted according to actual needs.
- the group number 0 can also correspond to the binary watermark from right to left (0)
- the group number 1 can also correspond to the binary watermark from right to left.
- the two digits (1) and the group number 2 may also correspond to the third digit (0) of the binary watermark from right to left, which may be agreed by the watermark server 102 itself, which is not limited in the embodiment of the present invention.
- the watermark server 102 can divide 32 binary data into 2 groups of binary data according to 2 packet numbers (0 and 1):
- Step S104 Select the first set of binary data from the N sets of binary data, where the first set of binary data corresponds to the first bit of the binary watermark.
- the watermark server 102 may select the first group of binary data corresponding to the group number 0 in Table 7:
- Step S105 Count the number of inconsistencies A and the number of inconsistencies U of the binary value of the binary data in the embedded bit and the value of the binary watermark corresponding to the first group of binary data.
- Step S106 Partial binary data is filtered out in the group, wherein the value at the T-th bit of the binary data filtered by the X-th group is inconsistent with the value at the X-bit of the binary watermark.
- the value at the 5th bit of the part of the binary data to be filtered out in the first group is inconsistent with the value at the 1st bit of the binary watermark.
- the value of the fifth digit in each binary data in the first group can be compared with the value of the first digit of the binary watermark 0, to obtain the number A with the same value and the number U with the inconsistent value, and filter out E in the first group.
- T is recorded in the watermark server 102 in advance, indicating that in each set of binary data that the watermark server 102 can accept, the binary value of the embedded value and the binary value of the binary bit of the binary watermark corresponding to the group number are consistent and inconsistent.
- the ratio of the number of, optionally, T 1.2.
- E the minimum value of E
- 00001000 00001001 00001010 00001011 00001111 00011000 00011010 00011100 can be filtered out, for example, 00001010 and 00011010
- the value at the Tth bit of the binary data filtered by the Xth group is consistent with the value at the Xth bit of the binary watermark, and the first The 5-digit value and the 0-digit value of the binary watermark are 0, to obtain the number A with the same value and the number U with the inconsistent value, and filter out E binary data in the first group, where E satisfies the following formula: U> AE. It should be understood that, in this optional example, in the subsequent step of extracting the watermark, the binary watermark embedded in the data to be processed needs further processing to obtain the correct binary watermark.
- step S108 there is another group of binary data corresponding to another group group number 1 which is not processed, so step S108 is performed.
- Step S108 Select another set of binary data from the N sets of binary data, and repeat steps S105 to S107 for the set of binary data.
- step S105 the packet number 1 corresponds to the second binary bit of the binary watermark from left to right, and the binary value of the binary bit is 1, then each binary data in the set of binary data is counted from the left to the fifth.
- step S106 part of the binary data in the second group is filtered, and the value on the 5th bit of the filtered binary data in the second group is inconsistent with the value (1) on the second bit of the binary watermark.
- any two binary data in 00001000, 00001001, 00001010, 00001011, 00001111, 00011000, and 00011100 can be filtered out.
- step S107 it is determined that the binary data corresponding to all packet numbers have been processed, so step S109 is performed.
- Step S109 Send to-be-processed data corresponding to the unfiltered binary data to the client.
- J pieces of data to be processed corresponding to the J pieces of binary data may be retained, and H pieces of data to be processed may be sent to the client 103.
- H MJ
- a set of binary data corresponding to the group number 0 needs to be filtered out of 2 binary data
- a set of binary data corresponding to the group number 1 needs to be filtered out of 2 binary data
- the watermark server 102 sends 28 data to be processed to the client 103.
- the number of iterations of steps S105 to S107 is determined by the number of bits of the binary watermark.
- the number of bits of the binary watermark 01 is 2, so the number of iterations of the above steps S105 to S107 is 2, that is, the loop is executed twice. Steps S105 to S107.
- the 4 to-be-processed data is not sent to the client, so that the binary watermark 01 is from left to right
- the first bit 0 is embedded in the embedding bits of a packet of 28 pieces of data to be processed.
- the number of embedding bits is 0 is greater than the number of embedding bits is 1, and the binary watermark is 01.
- the second bit 1 is embedded in the embedding bits of another packet of 28 pieces of data to be processed, where among the binary data of the packet, the number of embedding bits is 1 is greater than the number of embedding bits being 0.
- the embodiments of the present invention are mainly applied to big data processing, when the amount of data to be processed is massive, the binary watermark is embedded by appropriately retaining a small amount of data to be processed without sending it to the client. For clients with low data integrity requirements, it is perfectly acceptable.
- a small amount of pending data (such as 4 in the above example) is not sent to the client, and no modification of the value of any pending data among the 32 pending data is required to ensure the accuracy of the data. accuracy.
- the small amount of 4 pending data can also be sent to the client in some other examples. You only need to ensure that it is not in the client with the original 28 pending data (such as for database tuples) , Are set in Table 1.1 above).
- the threshold T is used to adjust the amount of data to be processed, and the balance between the fault tolerance rate and the data integrity can be adjusted, that is, the higher the fault tolerance rate (the larger the corresponding T), the more the data integrity Low, the lower the fault tolerance rate (the smaller the corresponding T), the higher the data integrity, the inverse relationship between the fault tolerance rate and the data integrity.
- FIG. 4 is a schematic diagram of data conversion of the data processing method according to an embodiment of the present invention.
- each of the N-bit binary watermarks A binary value is mapped into N packets of binary data.
- Y binary data is filtered out, forcing A> U to be used as a basis for subsequent binary watermark extraction.
- FIG. 5 is another flowchart of the data processing method according to the embodiment of the present invention. It is worth noting that the data processing method shown in FIG. 5 is also applied to The watermark server 102 includes the following steps:
- Step S110 The watermark server 102 receives the identification code of the client 101 and Z pieces of data to be processed.
- the data provider 101 is more concerned about the data leakage situation.
- the data provider 101 is notified. After the data provider 101 obtains the leaked Z pending data, Send the identification code of the client 101 and the leaked Z pending data to the watermark server 102.
- the client 103 can send the client 101's identification code and the leaked Z pending data to the watermark server 102.
- Z may be less than or equal to H, that is, the Z pending data may be a subset of the H pending data, or the H pending data is a subset of the Z pending data, or the Z pending data is H pending data.
- Z is equal to H, it means that the client 101 has leaked all the pending data sent by the watermark server 102 to the client 101.
- Z is less than H, it means that the client 101 has leaked the data to be processed sent by the watermark server 102 to the client 101.
- the data to be processed received by the watermark server 102 is specifically:
- Step S111 The Z pieces of data to be processed are converted into Z pieces of binary data, and the bits of each binary data are P bits.
- the watermark server 102 converts 28 pieces of data to be processed into 28 pieces of binary data as follows:
- Step S112 Determine the embedded bit of the binary watermark.
- the embedded bit is the Lth bit among the P bits.
- the watermark server 102 can determine the embedding bit in the following manner:
- the watermark server obtains the key data corresponding to the identification code of the client 103 according to the correspondence between the identification code of the client 103 and the key data recorded in step 101 according to the identification code of the client 103:
- the watermark server 102 determines that the embedded bit of the binary watermark on the single binary data performs a hash operation on the key data, obtains a first hash code, and performs a remainder operation on the first hash code and the number of bits of the single binary data. Use the result of the operation as an embedded bit.
- the embedding bit can be obtained according to the following equation:
- userKey is the key data
- dataLen is the number of bits of a single binary data
- dataLen 8
- Sha256 () is a hash algorithm that can obtain a hash value with a size of 256 bits.
- Step S113 Divide the Z binary data into N groups, where the Xth group in the N group corresponds to the Xth bit of the binary watermark.
- the watermark server 102 may perform a hash operation on the key data with each binary data, obtain Z second hash codes, and perform the number of bits N of the binary watermark with each second hash code.
- the remainder operation divides M binary data into N groups according to the operation result, wherein each binary data corresponds to a group number.
- the group number may be a positive integer from 0 to N-1.
- the 28 binary data shown in Table 9 and the key data 8151014275E426C72EE7D44267EF11590DCE0089E19863BA8CC832187B156A72 can be used to perform an integer hash operation to obtain 28 second hash codes as follows:
- performing a remainder operation on the second hash code in Table 10 and the bit number 2 of the binary watermark can generate 2 packet numbers, where the packet numbers are specifically 0 and 1.
- the 28 binary data can be divided into 2 groups of binary data using 2 group numbers 0 and 1 respectively:
- Step S114 Select the first set of binary data among the N sets of binary data.
- Step S115 Count the binary value of the binary data in the first group at the embedded bit (i.e., the L-th bit) is the number Q of the first value and the number W of the second value.
- the first value is 1 and the second value is 0.
- the first value may be 0 and the second value may be 1.
- Step S116 Determine the magnitude relationship between Q and W. If Q> W, execute step S117; if Q ⁇ W, execute step S118.
- step S118 is performed.
- the threshold value M can be used to determine the relationship between Q and W.
- the threshold value M (T + 1) / 2.
- the watermark server 102 determines that the relationship between Q and W satisfies Q / W> (T + 1) / 2, it executes step S117, and determines that the relationship between Q and W satisfies W / Q> (T + 1) / 2. In the case, step S118 is executed.
- T> (T + 1) / 2> 1 by appropriately setting the threshold T to M, such as changing from T to (T + 1) / 2, the data can be partially leaked, or Partial tampering achieves fault tolerance.
- T the threshold
- T + 1 the threshold
- Partial tampering achieves fault tolerance.
- V is larger, M is smaller, but M is always greater than 1. Therefore, when T> 1, V> 1, fault tolerance can be realized.
- Step S118 Determine that the Xth value of the binary watermark corresponding to the Xth group is the second value, and execute step S119.
- Step S119 Determine whether the traversal of the binary data of the N groups is completed. If yes, go to step S121; if no, go to step S120.
- step S120 the second set of binary data is not processed, so step S120 is performed.
- Step S120 Select another set of binary data among the N sets of binary data, and repeat steps S115 to S119 for the set of binary data.
- step S115 the binary values of the binary data in the group in the embedded bit are counted as the number Q of the first value and the number W of the second value, and skip to step S116.
- the first value is 1 and the second value is 0.
- the binary value of the embedded data is binary data and the binary value of the fifth bit from left to right is 1.
- Q 8
- the binary data of the embedded data is the binary value of the fifth bit from left to right is 0.
- the number W 6.
- Step S116 Determine the magnitude relationship between Q and W. If Q> W, execute step S117; if Q ⁇ W, execute step S118.
- step S117 is performed.
- Q and M may also be compared according to the threshold T or the threshold M disclosed in the previous step S116.
- the specific scheme has been disclosed above, and is not repeated here.
- Step S117 Determine that the binary value on the Xth bit of the binary watermark corresponding to the Xth group is the first value, and execute step S119.
- Step S119 Determine whether the traversal of the binary data of the N groups is completed. If yes, go to step S121; if no, go to step S120.
- the watermark server 102 determines that both sets of binary data have been processed, and skips to step S121.
- Step S121 Obtain a binary watermark.
- the watermark server 102 confirms that the binary value of the binary watermark from left to right is 0 during the first iteration, during the second iteration, confirms that the binary watermark is from left to right second The binary value on the binary bit is 1, so confirm that the binary watermark should be 01.
- the embodiment of the present invention can embed a binary watermark into the data to be processed by retaining a small part of the data to be processed without modifying the value of the data to be processed, and obtain the binary watermark from the leaked data to be processed. Further, a certain degree of fault tolerance can be achieved by setting the threshold M.
- FIG. 6 is a schematic diagram of data conversion of the data processing method according to the embodiment of the present invention.
- a one-bit binary value is obtained from the N packets of binary data according to the relationship between Q and W, so it has good resistance to attack.
- the implementation of the present invention embeds a watermark in a zero watermark manner, without the need to introduce additional feature data. It is based on the parity and random distribution in the mathematical and statistical sense. The principle is simple and the application is convenient. The embedded extraction method is unified, which breaks through the limitations of traditional watermarking algorithms. When the leaked data is a subset of the original data or part of the leaked data is tampered with, the watermark recovery process introduces a repair mechanism to obtain a series of most likely correct binary watermarks. , Has a good resistance to attack.
- FIG. 7 is a schematic structural diagram of a device for a data processing device according to an embodiment of the present invention.
- the data processing device 20 is disposed in the watermark server 102 for embedding a binary watermark into the data to be processed.
- the device includes:
- a receiving module 201 configured to receive M pending data sent by a data provider
- Watermark embedding module 202 for
- the embedding bit is the Lth bit in the P bit, 1 ⁇ T ⁇ P;
- the M binary data is divided into N groups, and the 1st to Nth bits of the binary watermark are respectively embedded into the Lth bit of each binary data in the 1st to Nth groups.
- the Lth bit of the binary data in the same group corresponds to the same binary watermark.
- the sending module 203 is configured to send to-be-processed data corresponding to the unfiltered binary data to the client.
- the receiving module 201 is configured to receive the client's identification code and M pieces of data to be processed sent by the data provider; the watermark embedding module 202 is configured to allocate key data to the client's identification code, and record the client's identification code and Correspondence between key data.
- the watermark embedding module 202 is configured to:
- the binary watermark records the identification code of the client, the identification code of the data provider, and time information for generating the binary watermark.
- the watermark embedding module 202 is configured to:
- Hash the M binary data and the key data to obtain M second hash codes
- the watermark embedding module 202 is configured to:
- Hash the key data with each binary data separately to obtain M second hash codes
- the remainder operation is performed on the number of bits N of the binary watermark with each second hash code, and the M binary data is divided into N groups according to the operation result, where each binary data corresponds to a group number.
- the watermark embedding module 202 is configured to compare the numerical value of the L-th bit in each binary data in the group X with the numerical value of the X-th bit of the binary watermark to obtain a quantity A with a consistent value and a quantity U with a different value;
- the watermark embedding module 202 is configured to filter E binary data in the X group, where E satisfies the following formula: A> U-E.
- E takes the minimum value that satisfies the formula A> U-E; or, E further satisfies the following formula: A / (U-E) ⁇ T, where T is a preset threshold greater than 1.
- FIG. 8 is a schematic diagram of a device structure of a data processing apparatus according to an embodiment of the present invention.
- the data processing apparatus is disposed on the watermark server 102 and is configured to obtain a binary watermark from the leaked data to be processed, including:
- a receiving module 301 configured to receive Z pieces of data to be processed
- the watermark extraction module 302 is configured to:
- the value of the binary data in the X group is the number Q of the first value and the number W of the second value.
- Q> W it is determined that the value of the binary watermark embedded in the X group is the first.
- Numerical value it is determined that the binary value of the binary watermark embedded in the Xth group is the second value
- X is a variable, and 1 ⁇ X ⁇ N.
- the receiving module 301 is configured to receive an identification code of a client and Z pieces of data to be processed;
- the watermark extraction module 302 is configured to find the key data corresponding to the identification code of the client from the correspondence between the identification code of the client and the key data.
- the watermark extraction module 302 is configured to perform a hash operation according to the key data, obtain a first hash code, perform a remainder operation on the first hash code and the bit number P of the binary data, and calculate the operation result. As an embedded bit.
- the binary watermark records the identification code of the client, the identification code of the data provider, and the time information for generating the binary watermark.
- the watermark extraction module 302 is configured to extract the identification code of the client and the identification code of the data provider from the binary watermark. And the time information to generate the binary watermark.
- a watermark extraction module 302 is configured to perform a hash operation on the key data and each binary data to obtain Z second hash codes; respectively, the number of bits N of the binary watermark and each second hash The code performs a remainder operation, and the M binary data is divided into N groups according to the operation result, where each binary data corresponds to a group number.
- the watermark extraction module 302 is configured to:
- FIG. 9 is a schematic structural diagram of a device of a computer device according to an embodiment of the present invention.
- the computer 40 in FIG. 9 may be the watermark server 102 disclosed above.
- the computer 40 includes a processor 401 and a memory 403, which are connected to the bus 402, respectively.
- the memory 403 stores a program, and the processor 401 runs the program to execute the method disclosed in FIG. 3 and its corresponding description.
- FIG. 10 is a schematic structural diagram of a computer device according to an embodiment of the present invention.
- the computer 50 in FIG. 10 may be the watermark server 102 disclosed above.
- the computer device 50 includes a processor 501 and a memory 503, which are connected to the bus 502, respectively.
- the memory 503 stores a program, and the processor 501 runs the program to execute the method disclosed in FIG. 5 and its corresponding description .
- any of the device embodiments described above are only schematic, and the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be A physical unit can be located in one place or distributed across multiple network units. Some or all of the modules may be selected according to actual needs to achieve the objective of the solution of this embodiment.
- the connection relationship between the modules indicates that there is a communication connection between them, which may be specifically implemented as one or more communication buses or signal lines.
- the present invention can be implemented by means of software plus necessary general hardware, and of course, it can also be implemented by dedicated hardware including dedicated integrated circuits, dedicated CPUs, dedicated memories, Dedicated components and so on.
- dedicated hardware including dedicated integrated circuits, dedicated CPUs, dedicated memories, Dedicated components and so on.
- all functions performed by computer programs can be easily implemented with corresponding hardware, and the specific hardware structure used to implement the same function can also be diverse, such as analog circuits, digital circuits, or special purpose circuits. Circuit, etc.
- software program implementation is a better implementation in many cases.
- the technical solution of the present invention in essence or a part that contributes to the existing technology can be embodied in the form of a software product, which is stored in a readable storage medium, such as a computer floppy disk , U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), magnetic disk or CD, etc., including several commands to make a computer device (can be A personal computer, a server, or a network device, etc.) executes the methods described in various embodiments of the present invention.
- a readable storage medium such as a computer floppy disk , U disk, mobile hard disk, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), magnetic disk or CD, etc.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Editing Of Facsimile Originals (AREA)
- Image Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明实施例提供了一种数据处理方法及装置,该方法包括:接收数据提供方发送的M个待处理数据,将M个待处理数据转换为M个二进制数据,产生二进制水印,确定二进制水印的嵌入位,嵌入位为P位中的第L位,1≤T≤P,将M个二进制数据分成N组,二进制水印的第1至N位分别嵌入到第1至N组中的每个二进制数据的第L位,筛除第X组二进制数据中的部分二进制数据,将未被筛除的二进制数据对应的待处理数据发送至客户端。通过以上方式,无需改变部分待处理数据的数值来实现水印嵌入,适用于数据准确性要求较高的场合。
Description
本发明涉及信息技术领域,特别涉及一种在待处理数据中嵌入二进制水印并从待处理数据中获取二进制水印的数据处理方法及装置。
当前大数据、人工智能等热门领域均对数据共享存在迫切的需求,但是,在数据共享过程中数据泄露事件层出不穷,数据库水印技术作为一种重要的版权保护方式,通过在数据库的待处理数据中嵌入不易察觉且难以去除的标记,在不破坏数据库内容和可用性的前提下,达到保护数据库安全的目的。
现有技术通过修改待处理数据的最低位来嵌入二进制水印。现有技术中,需要将待处理数据最低位的信息修改为与相应的水印信息一致。
当数据泄露后,根据待处理数据的最低位即可获得对应的二进制水印,从而实现二进制水印的提取。
现有技术对待处理数据中的最低位的进行修改,会改变待处理数据的数值,对于数据准确性要求比较高的场合不适用。
发明内容
本发明实施例提供了一种数据处理方法及装置,无需改变待处理数据的数值,适用于数据准确性要求较高的场合。
第一方面,本申请提供一种数据处理方法,该方法用于将二进制水印嵌入到待处理数据中,该方法通过以下步骤实现,接收数据提供方发送的M个待处理数据,将M个待处理数据转换为M个二进制数据,其中每个二进制数据的位数均为P位,产生二进制水印,其中二进制水印的位数为N位,确定二进制水印的嵌入位,嵌入位为P位中的第L位,1≤T≤P,将M个二进制数据分成N组,二进制水印的第1至N位分别嵌入到第1至N组中的每个二进制数据的第L位,相同分组的二进制数据的第L位对应二进制水印的相同位,筛除第X组二进制数据中的部分二进制数据,其中,筛除的二进制数据的第T位上的数值与二进制水印的第X位上的数值不一致,X为变量,1≤X≤N,将未被筛除的二进制数据对应的待处理数据发送至客户端。
将二进制水印每一位映射到待处理数据的一个分组的嵌入位中,且在每个分组的多个二进制数据中,通过删除部分二进制数据,强制设置嵌入位是二进制水印的一个二进制位上的二进制值的数量大于嵌入位不是二进制水印的一个二进制位上的二进制值的数量,从而通过这个特征在后续的水印提取步骤中提取出二进制水印,无需对待处理数据的数值进行修改。
在第一方面的第一种可能的实现方式中,接收数据提供方发送的M个待处理数据的步骤具体实现为,接收数据提供方发送的客户端的识别码和M个待处理数据,对应的,该方法还包括:针对客户端的识别码分配密钥数据,记录客户端的识别码与密钥数据的对应关 系。
其中,密钥数据与客户端的识别码一一对应,在后续的数据处理中,通过密钥数据的介入可使得数据安全性得到进一步加强,第三方在没有获取密钥数据的情况下无法获取嵌入的二进制水印。
根据第一方面的第一种可能的实现方式,在第二种可能的实现方式中,上述的确定二进制水印在单个二进制数据上的嵌入位的步骤,具体通过以下方式来实现:据密钥数据进行哈希运算,获取第一哈希码,将第一哈希码与二进制数据的位数P进行求余运算,将运算结果作为嵌入位。
在本实现方式中,通过求余运算来在二进制数据选择嵌入位,且求余运算涉及的第一哈希码是通过对密钥数据进行哈希运算而获得,因此,根据密钥数据来在二进制数据中选择嵌入位,即便待处理数据泄露出去,获得泄露的待处理数据的第三方在不能获知密钥数据的前提下,是不能获知二进制水印在待处理数据的嵌入位的,因此可加大第三方破解嵌入位的难度,从而保证数据安全。
根据第一方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,二进制水印记录有客户端的识别码、数据提供方的识别码以及产生二进制水印的时间信息。
水印服务器在获得二进制水印之后,可在二进制水印中获得以上三种属性信息,从而对泄露的待处理数据进行定位,得知其数据提供方、数据接收方(即客户端)以及产生时间,从而为数据泄密提供证据。
根据第一方面的第一至第三种可能的实现方式中的任一者,在第四种可能的实现方式中,将M个二进制数据分成N组,具体实现为,将密钥数据分别与每个二进制数据进行哈希运算,获取M个第二哈希码,将二进制水印的位数N分别与每个第二哈希码进行求余运算,根据运算结果将M个二进制数据分为N组,其中,每个二进制数据对应一个分组编号。
分组数量由二进制水印的位数决定,且每个分组对应至二进制水印的一个二进制位,可将二进制水印的二进制位上的数值分别映射到每个分组中。
根据第一方面、第一方面的第一至第四种可能的实现方式中的任一者,在第五种可能的实现方式中,筛除第X组二进制数据中的部分二进制数据具体实现为:比较第X组中每个二进制数据中第L位的数值与二进制水印的第X位的数值,获得数值一致的数量A和数值不一致的数量U,筛除第X组中E个二进制数据,其中,E满足以下公式:A>U-E。
根据第一方面的第五种可能的实现方式,在第六种可能的实现方式中,E取满足公式A>U-E的最小值,或者,E进一步满足以下公式:A/(U-E)≥T,其中,T为大于1的预设的阈值。
通过以上方式,可强制使得每个分组中,在嵌入位的二进制值与所在分组编号对应的二进制水印的二进制位上的二进制值一致的数量大于不一致的数量,从而实现将二进制水印的一个二进制值映射至该分组。
根据第一方面的一种可能的实现方式,待处理数据可为数据库元组、文本文件或图片文件。
其中,文本文件和图片文件均可以二进制格式实现,而数据库元组可转换为二进制格式,因此本申请适用于文本文件、图片文件和数据库元组,其中,数据库元组可为关系表 中的一个数据库元组中的一个元素,该元素对应于一个属性。
第二方面,本申请提供一种数据处理方法,该方法用于从待处理数据中获取二进制水印,该方法通过以下方式实现,接收Z个待处理数据,将Z个待处理数据转换为Z个二进制数据,其中每个二进制数据的位数均为P位,确定二进制水印的嵌入位,其中嵌入位为P位中的第L位,1≤T≤P,将Z个二进制数据分成N组,N为二进制水印的位数,统计第X组中的二进制数据在嵌入位的数值是第一数值的数量Q,以及是第二数值的数量W,在Q>W时,确定嵌入到第X组的二进制水印的第X位的数值是第一数值,在Q<W时,确定嵌入到第X组的二进制水印的第X位的数值是第二数值,X为变量,1≤X≤N。
若在嵌入二进制水印的过程中,若强制设置了嵌入位是二进制水印的一个二进制位上的二进制值的数量大于嵌入位不是二进制水印的一个二进制位上的二进制值的数量(如第一方面),可通过这个特征在后续的水印提取步骤中提取出二进制水印,无需对待处理数据的数值进行修改。
根据第二方面的第一种可能的实现方式,接收Z个待处理数据的步骤通过以下方式实现,接收客户端的识别码和Z个待处理数据,对应的,该方法还包括从记录的客户端的识别码与密钥数据的对应关系中查找客户端的识别码对应的密钥数据的步骤。
其中,密钥数据与客户端的识别码一一对应,在后续的数据处理中,通过密钥数据的介入可使得数据安全性得到进一步加强,第三方在没有获取密钥数据的情况下无法获取嵌入的二进制水印。
根据第二方面的第一种可能的实现方式,在第二种可能的实现方式中,确定二进制水印的嵌入位通过以下方式实现,根据密钥数据进行哈希运算,获取第一哈希码,将第一哈希码与二进制数据的位数P进行求余运算,将运算结果作为嵌入位。
在本实现方式中,通过求余运算来在二进制数据选择嵌入位,且求余运算涉及的第二哈希码是通过对密钥数据进行哈希运算而获得,因此,根据密钥数据来在二进制数据中选择嵌入位,即便待处理数据泄露出去,获得泄露的待处理数据的第三方在不能获知密钥数据的前提下,是不能获知二进制水印在待处理数据的嵌入位的,因此可加大第三方破解嵌入位的难度,从而保证数据安全。
根据第二方面的第一或第二种可能的实现方式,在第三种可能的实现方式中,二进制水印记录有客户端的识别码、数据提供方的识别码以及产生二进制水印的时间信息,该方法还包括从二进制水印提取客户端的识别码、数据提供方的识别码以及产生二进制水印的时间信息的步骤。
水印服务器在获得二进制水印之后,可在二进制水印中获得以上三种属性信息,从而对泄露的待处理数据进行定位,得知其数据提供方、数据接收方(即客户端)以及产生时间,从而为数据泄密提供证据。
根据第二方面的第一或第三种可能的实现方式,在第四种可能的实现方式中,将Z个二进制数据分成N组的步骤通过以下方式实现,将密钥数据分别与每个二进制数据进行哈希运算,获取Z个第二哈希码,将二进制水印的位数N分别与每个第二哈希码进行求余运算,根据运算结果将M个二进制数据分为N组,其中,每个二进制数据对应一个分组编号。
分组数量由二进制水印的位数决定,且每个分组对应至二进制水印的一个二进制位, 可将二进制水印的二进制位上的二进制值分别映射到每个分组中。
根据第二方面、第二方面的第一至第四种可能的实现方式中的任一者,在第五种可能的实现方式中,统计第X组中的二进制数据在嵌入位的数值是第一数值的数量Q,以及是第二数值的数量W,在Q>W时,确定嵌入到第X组的二进制水印的数值是第一数值,在Q<W时,确定嵌入到第X组的二进制水印的二进制值是第二数值,X为变量,通过以下方式实现,在第X组中:在满足Q/W>(T+V-1)/V时,确定嵌入到第X组的二进制水印的第X位的数值是第一数值,其中,T是阈值,且T是大于1或等于1的正数,V是正整数,在满足W/Q>(T+V-1)/V时,确定嵌入到第X组的二进制水印的第X位的数值是第二数值。
根据第二方面的第五种可能的实现方式,在第六种可能的实现方式中,T>1,V>1。
在T>1,V>1时,(T+V-1)/V比T小,通过将阈值适当设置变小,可在数据被部分泄露,或被部分篡改时,实现容错。
根据第二方面的第五种可能的实现方式,在第六种可能的实现方式中,V=2。
在第二方面的一种可能的实现方式中,待处理数据为文本文件、图片文件或数据库元组中的一者。
第三方面,本申请提供一种数据处理装置,该装置用于将二进制水印嵌入到待处理数据中,该装置包括:接收模块,用于接收数据提供方发送的M个待处理数据,水印嵌入模块,用于将M个待处理数据转换为M个二进制数据,其中每个二进制数据的位数均为P位,产生二进制水印,其中二进制水印的位数为N位,确定二进制水印的嵌入位,嵌入位为P位中的第L位,1≤T≤P,将M个二进制数据分成N组,二进制水印的第1至N位分别嵌入到第1至N组中的每个二进制数据的第L位,相同分组的二进制数据的第L位对应二进制水印的相同位,筛除第X组二进制数据中的部分二进制数据,其中,筛除的二进制数据的第T位上的数值与二进制水印的第X位上的数值不一致,X为变量,1≤X≤N,发送模块,用于将未被筛除的二进制数据对应的待处理数据发送至客户端。
第三方面或第三方面任意一种实现方式是第一方面或第一方面任意一种实现方式对应的装置实现,第一方面或第一方面任意一种实现方式中的描述适用于第三方面或第三方面任意一种实现方式,在此不再赘述。
第四方面,本申请提供一种数据处理装置,用于在待处理数据中获取二进制水印,包括:接收模块,用于接收Z个待处理数据,水印提取模块,用于:将Z个待处理数据转换为Z个二进制数据,其中每个二进制数据的位数均为P位,确定二进制水印的嵌入位,其中嵌入位为P位中的第L位,1≤T≤P,将Z个二进制数据分成N组,N为二进制水印的位数,统计第X组中的二进制数据在嵌入位的数值是第一数值的数量Q,以及是第二数值的数量W,在Q>W时,确定嵌入到第X组的二进制水印的数值是第一数值,在Q<W时,确定嵌入到第X组的二进制水印的二进制值是第二数值,X为变量,1≤X≤N。。
第四方面或第四方面任意一种实现方式是第二方面或第二方面任意一种实现方式对应的装置实现,第二方面或第二方面任意一种实现方式中的描述适用于第四方面或第四方面任意一种实现方式,在此不再赘述。
第五方面,本申请提供一种计算机,包括处理器和存储器,存储器存储有程序,处理器运行程序,以执行第一方面或第一方面任意一种实现方式提供的数据处理方法。
第六方面,本申请提供一种计算机,包括处理器和存储器,存储器存储有程序,处理器运行程序,以执行第二方面或第二方面任意一种实现方式提供的数据处理方法。
第七方面,本申请提供了一种存储介质,该存储介质中存储了程序代码,该程序代码被存储控制器运行时,该存储控制器执行前述第一方面或第一方面的任意一种实现方式提供的数据处理方法。该存储介质包括但不限于只读存储器,随机访问存储器,快闪存储器、HDD或SSD。
第八方面,本申请提供了一种存储介质,该存储介质中存储了程序代码,该程序代码被存储控制器运行时,该存储控制器执行前述第二方面或第二方面的任意一种实现方式提供的数据处理方法。该存储介质包括但不限于只读存储器,随机访问存储器,快闪存储器、HDD或SSD。
第九方面,本申请提供了一种计算机程序产品,该计算机程序产品包括程序代码,当该计算机程序产品被存储控制器执行时,该存储控制器执行前述第一方面或第一方面的任意一种实现方式提供的数据处理方法。该计算机程序产品可以为一个软件安装包,在需要使用前述第一方面或第一方面的任意一种实现方式提供的图形处理方法的情况下,可以下载该计算机程序产品至存储控制器并在该存储控制器上运行该计算机程序产品。
第十方面,本申请提供了一种计算机程序产品,该计算机程序产品包括程序代码,当该计算机程序产品被存储控制器执行时,该存储控制器执行前述第二方面或第二方面的任意一种实现方式提供的数据处理方法。该计算机程序产品可以为一个软件安装包,在需要使用前述第二方面或第二方面的任意一种实现方式提供的图形处理方法的情况下,可以下载该计算机程序产品至存储控制器并在该存储控制器上运行该计算机程序产品。
图1是根据本发明实施例的水印系统的示意图;
图2是根据本发明实施例的水印系统的另一示意图;
图3是根据本发明实施例的数据处理方法的流程图;
图4是根据本发明实施例的数据处理方法的数据转换示意图;
图5是根据本发明实施例的数据处理方法的另一流程图;
图6是根据本发明实施例的数据处理方法的数据转换示意图;
图7是根据本发明实施例的数据处理装置的装置结构示意图;
图8是根据本发明实施例的数据处理装置的装置结构示意图;
图9是根据本发明实施例的计算机的装置结构示意图;
图10是根据本发明实施例的计算机的装置结构示意图。
本发明实施例提供一种数据处理方法及装置,在待处理数据中嵌入二进制水印,无需对待处理数据进行修改。
为了方便理解本发明的各实施例,下面先对本发明各实施例涉及到的一些技术术语进行介绍,后文的各实施例可以参考下面的技术术语介绍:
二进制水印:由具有预定长度的一组二进制数组成的信息,每个二进制数可嵌入到多个待处理数据中,二进制水印可切分为多个子集,每个子集代表不同的信息。
举例而言,二进制水印可长度为16位的二进制数0101 1000 1101 1111,水印服务器将第1至第8位划分为第一个子集,将第9至第16位划分为第二个子集,其中0101 1000子集表示数据提供方为某公司,1101 1111子集表示二进制水印的产生时间是某年某月某日。
水印服务器可预先记录每个子集代表的属性,例如数据提供方的识别码、二进制水印的产生时间、以及客户端的识别码等。并且,水印服务器可记录每个子集中二进制数与属性之间的对应关系,例如针对第一子集,数据提供方的识别码0000 0000代表公司A,数据提供方的识别码0000 0001代表公司B;针对第二子集,0000 0000代表2018年1月1日,0000 0001代表2018年1月2日。上述对应关系可根据实际需要设置,于此不作赘述。
数据库元组:关系数据库中的基本概念,属于数据库介质数据,数据库介质数据是指以数据库可以读取的格式存储在数据库中的数据。在数据库中,关系代表一张表(如以下的表1),每列就是一个属性,表中每行就是一个数据库元组。
举例而言,可参见下表:
年龄 |
1 |
2 |
3 |
表1.1
如表1.1所示,“1”、“2”、“3”分别是一个数据库元组。
进一步,可参见表1.2:
姓名 | 年龄 |
小明 | 1 |
小花 | 2 |
小王 | 3 |
表1.2
如表1.2所示,“小明,1”、“小花,2”、“小王,3”分别是一个数据库元组。
在本发明实施例中,待处理数据可以是如表1.1所示的数据库元组,或者是如表1.2所示的一个数据库元组中一个属性对应的元素,例如“1”,即数据库元组“小明,1”中属性年龄对应的元素“1”。
值得注意的是,在本发明实施例中,以属于数据库介质数据的数据库库元组为例对待处理数据进行具体说明,在本发明其他实施例中,待处理数据还可以包括非数据库介质数据,其中,非数据库介质数据例如为文本文件或图片文件,其原因在于,文本文件和图片文件可以二进制数据的形式存在,或者,文本文件和图片文件可以转换为二进制格式。
哈希运算:将任意长度的二进制值映射为固定长度的整数,这个整数称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。
以下对本发明实施例的水印系统进行介绍,请参见图1,图1是根据本发明实施例的水印系统的示意图,如图1所示,水印系统包括数据提供方101、水印服务器102以及客户端103,104,105。
其中,数据提供方101发送待处理数据至水印服务器102,水印服务器102针对不同的客户端在待处理数据中嵌入不同的二进制水印,分别产生待处理数据A,B,C,并分别发送至客户端103,104,105。
值得注意的是,此处所述的待处理数据的数量为复数个,处理数据A,B,C的数量也分别为复数个。
可选地,二进制水印记录有客户端的识别码、数据提供方的识别码以及产生二进制水印的时间信息。举例而言,嵌入待处理数据A的二进制水印记录有客户端103的识别码、数据提供方101的识别码以及产生该二进制水印的时间信息,如2018年6月25日。嵌入待处理数据B的二进制水印记录有客户端104的识别码、数据提供方101的识别码以及产生该二进制水印的时间信息如2018年6月1日。
并请参见图2,图2是根据本发明实施例的水印系统的另一示意图。根据图2,假设客户端103泄露了待处理数据A(可泄露待处理数据A的部分或全部),数据提供方101可将泄漏的待处理数据A发送至水印服务器102,水印服务器102从泄漏的待处理数据A中提取二进制水印,从而可根据该二进制水印获取到客户端103的识别码、数据提供方101的识别码以及产生该二进制水印的时间信息为2018年6月25日,从而获知泄露的待处理数据A的相关信息。
水印服务器102可将客户端103的识别码、数据提供方101的识别码以及产生该二进制水印的时间信息发送至数据提供方101,使得数据提供方101可获知泄漏的待处理数据A是何时从哪个客户端泄漏。
在另一些示例中,泄漏的待处理数据A亦可由客户端103发送至水印服务器102。
值得注意的是,本发明实施例适用于大数据处理,举例而言,待处理数据的数量可以为1000个以上,更有甚者可涉及上万至上亿个待处理数据,但是为了作出清楚说明,下文将以32个待处理数据为例。
以下结合图3对本发明实施例的数据处理方法进行说明,其中图3是根据本发明实施例的数据处理方法的流程图,该数据处理方法用于将二进制水印嵌入到待处理数据中。
值得注意的是,图3所示的数据处理方法应用于水印服务器102,包括以下步骤:
步骤S101:水印服务器102接收数据提供方101发送的客户端103的识别码和M个待处理数据,将M个待处理数据转换为M个二进制数据,针对客户端103的识别码分配密钥数据。
举例而言,为便于说明,假设M=32,32个待处理数据分别32个十进制的数据库元组:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
为便于说明,以表格示出,具体如表2所示:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |
表2
值得注意的是,本发明实施例主要应用于大数据处理,因此在实际应用中M可以为大于1000的正整数。并且,本发明实施例并不关心32个数据库元组的排列顺序,举例而言,在另外一些示例中,32个数据库元组亦可表示为:
32 31 30 1 2 5 3 6 20 21 22 23 27 18 29 19 14 12 17 16 24 25 26 28 7 8 9 4 10 11 13 15
并且,在本实施例中,数据库元组为十进制的数值型数据,而在另外一些示例中,数据库元组可以字符型数据,如以上表1.2所示的“小明”,当数据库元组为字符型数据时,水印服务器101可先将字符型数据转换为数值型数据,如可采用美国信息交换标准代码(American Standard Code for Information Interchange,ASCII)编码,将字符型数据转换为数值型数据。
进一步,水印服务器102将表2所示的32个数据库元组转换为32个二进制数据如下:
00000001 | 00000010 | 00000011 | 00000100 | 00000101 | 00000110 | 00000111 | 00001000 |
00001001 | 00001010 | 00001011 | 00001100 | 00001101 | 00001110 | 00001111 | 00010000 |
00010001 | 00010010 | 00010011 | 00010100 | 00010101 | 00010110 | 00010111 | 00011000 |
00011001 | 00011010 | 00011011 | 00011100 | 00011101 | 00011110 | 00011111 | 00100000 |
表3
其中,每个二进制数据的位数均为P位,根据表3,P可例如为8。
并且,针对客户端103的识别码分配密钥数据如下:
8151014275E426C72EE7D44267EF11590DCE0089E19863BA8CC832187B156A72
其中,密钥数据与客户端的识别码具有一一对应关系,不同的客户端对应不同的密钥数据,水印服务器102记录上述密钥数据与客户端103的识别码的对应关系。
值得注意的是,针对文本文件和图片文件,在其本身就是二进制数据格式的情况下,本步骤可以省略,在其本身是其他进制格式的情况下,如十进制格式,需将其转换为二进制格式。
步骤S102:产生二进制水印,确定二进制水印的嵌入位。其中,嵌入位为P位中的第L位。
可选地,在本步骤中,水印服务器102根据接收到的客户端103的识别码、预先记录的数据提供方101的识别码以及当前时间2018年6月25日,产生记录有客户端103的识别码、数据提供方101的识别码以及产生二进制水印的时间信息2018年6月25日的二进制水印。
如上文所述,二进制水印具有预定数据长度,且可切分成多个子集,每个子集表示不同的属性。而在本发明实施例中,二进制水印至少包括客户端的识别码、数据提供方的识别码以及产生二进制水印的时间信息标识三个不同属性的三个子集。
值得注意的是,在另外一些示例中,数据提供方的识别码也可以由数据提供方发送至 水印服务器。
为了简化说明,在本发明实施例中,假设二进制水印为01,应该理解的是,在实际应用中,二进制水印的长度可为数十至数百位。
进一步,在本步骤中,水印服务器102可通过以下方式确定确定二进制水印在单个二进制数据上的嵌入位:
针对密钥数据进行哈希运算,获取第一哈希码,将第一哈希码与单个二进制数据的位数进行求余运算,将运算结果作为嵌入位。
举例而言,可根据以下等式获取嵌入位:
K=Sha256(userKey)%dataLen
其中,userKey为密钥数据,dataLen为单个二进制数据的位数,参见表3可知,dataLen=8,Sha256()是可获取到的哈希值大小为256位数据长度的哈希算法。
%是求余运算符,P是0-7之间的数值,在本步骤中,假设K=4,则L=K+1=5,即,取二进制数据的自左至右第5位作为嵌入位。
值得注意的是,在另外一些示例中,也可以取二进制数据的自右至左第5位作为嵌入位,本发明实施例对此不作限定。
在本发明实施例中,通过密钥数据来决定嵌入位,因此即便待处理数据泄露出去,获得泄露的待处理数据的第三方在不能获知密钥数据的前提下,是不能获知二进制水印在待处理数据的嵌入位的,因此可加大第三方破解嵌入位的难度,从而保证数据安全。
步骤S103:将M个二进制数据分成N组。其中,可将N个分组编号分别对应至二进制水印的N个二进制位,即,将二进制水印的第1至N位分别嵌入到第1至N组中的每个二进制数据的第L位,相同分组的二进制数据的第L位对应二进制水印的相同位。
在本步骤中,水印服务器102可将密钥数据分别与每个二进制数据进行哈希运算,获取M个第二哈希码,并将二进制水印的位数N分别与每个第二哈希码进行求余运算,根据运算结果将M个二进制数据分为N组,其中,每个二进制数据对应一个分组编号,根据N个分组编号将M个二进制数据分为N组二进制数据,使得N个分组编号分别对应至二进制水印的N个二进制位。
其中,经过求余运算,分组编号可为0至N-1的正整数。
并且,于此需注意的是,根据哈希算法的均匀特性,在每组二进制数据中,相同位置(包括第T位)的二进制数1和0的比例趋近于1:1,其中,在M越接近无穷大时,每组二进制数据中相同位置的二进制数1和0的比值越接近于1。
举例而言,可将表2所示的32个二进制数据分别与密钥数据8151014275E426C72EE7D44267EF11590DCE0089E19863BA8CC832187B156A72进行哈希运算,获得32个作为整数的第二哈希码如下:
表4
进一步,将表3中的第二哈希码与二进制水印的位数2进行求余运算,可产生2个分组编号,其中,分组编号具体为0和1。
二进制水印的分组编号分布如下:
0 | 1 | 1 | 1 | 0 | 1 | 0 | 0 |
0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 |
0 | 0 | 1 | 1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 1 | 1 | 1 | 1 |
表5
其中,表5所示的某行某列的分组编号是由表4中相同行相同列的第二哈希码与二进制水印的位数2进行求余运算来产生的。
在本实施中,水印服务器102将分组编号0对应至二进制水印01的自左至右第一位(0),将分组编号1对应至二进制水印01的自左至右第二位(1)。
值得注意的是,在另外一些示例中,若二进制水印的位数是3,且二进制水印为010,则分组编号是0、1、2,分组编号0对应至二进制水印010自左至右第一位(0),分组编号1对应至二进制水印010自左至右第二位(1),分组编号2对应至二进制水印010自左至右第三位(0)。
并且,其对应方式可以根据实际需要调整,如在另外一些示例中,分组编号0也可对应二进制水印自右至左第一位(0),分组编号1也可对应二进制水印自右至左第二位(1),分组编号2也可对应二进制水印自自右至左第三位(0),其由水印服务器102自身约定即可,本发明实施例对此不作限定。
进一步,根据表5所示的分组编号分布以及分组编号对应的二进制数,可以获取到二进制数据与分组编号的对应关系如下:
表6
根据表6,水印服务器102可根据2个分组编号(0和1)将32个二进制数据分为2组二进制数据:
表7
步骤S104:选择N组二进制数据中的第1组二进制数据,其中第1组二进制数据对应二进制水印第1位。
举例而言,水印服务器102可选择表7中,分组编号0对应的第1组二进制数据:
00000001 00000101 00000111 00001000
00001001 00001010 00001011 00001111
00010000 00010001 00010010 00010101
00010110 00011000 00011010 00011100
步骤S105:统计二进制数据在嵌入位的二进制值与第1组二进制数据对应的二进制水印的数值一致的数量A和不一致的数量U。
水印服务器102根据步骤S102可知嵌入位P=5,而分组编号0对应于二进制水印01自左至右的第1位(可参见表7),该二进制位上的二进制值为0,则统计该组二进制数据中每个二进制数据在自左至右第5位的二进制值与0一致的数量A=8和与0不一致的数量U=8。
00000001 00000101 00000111 00001000
0000
1001 0000
1010 0000
1011 0000
1111
00010000 00010001 00010010 00010101
00010110 0001
1000 0001
1010 0001
1100
值得注意的是,由于哈希运算的数据均匀特性,随着M的数值越大,A与U的比值无限接近1。
步骤S106:在该组筛除部分二进制数据,,其中,在第X组筛除的二进制数据的第T位上的数值与二进制水印的第X位上的数值不一致。
举例而言,在第1组中需筛除的部分二进制数据的第5位上的数值与二进制水印的第 1位上的数值不一致。
具体地,可以比较第1组中每个二进制数据中第5位的数值与二进制水印的第1位的数值0,获得数值一致的数量A和数值不一致的数量U,筛除第1组中E个二进制数据,其中,E满足以下公式:A>U-E。
可选地,E取满足公式A>U-E的最小值,或者,E进一步满足以下公式:A/(U-E)≥T,其中,T为大于1的预设的阈值。
其中,T预先记录在水印服务器102中,表示水印服务器102可以接受的每组二进制数据中,在嵌入位的二进制值与所在分组编号对应的二进制水印的二进制位上的二进制值一致的数量与不一致的数量的比值,可选地,T=1.2。
则根据A/(U-E)≥T可知E>=2。在在第1组二进制数据
00000001 00000101 00000111 00001000
00001001
00001010 00001011 00001111
00010000 00010001 00010010 00010101
00010110 00011000
00011010 00011100
中,可取E的最小值,即E=2,在该组二进制数据中,可筛除00001000 00001001 00001010 00001011 00001111 00011000 00011010 00011100中任意两个二进制数据,例如为00001010和00011010,从而使得在该组中,二进制数据在嵌入位的二进制值与第1组对应的二进制水印的第1个二进制位上的数值一致的数量8大于不一致的数量6,且二者的比值满足大于或等于T=1.2。
需要说明的是T的数值由水印服务器102设置,其中T=1.2表示水印服务器102可以接受的A与U’的比值的最小值,举例而言,水印服务器102设置T=1.2,说明水印服务器102希望嵌入水印后,每组二进制数据中A与U的比值至少是1.2,假设经筛选后的第1组二进制数据的数量是220,则A=120,U=100,其中E=20,有20个二进制数据在U中筛除。
可选地,在另外一些示例中,在第X组筛除的二进制数据的第T位上的数值与二进制水印的第X位上的数值一致,可以比较第1组中每个二进制数据中第5位的数值与二进制水印的第1位的数值0,获得数值一致的数量A和数值不一致的数量U,筛除第1组中E个二进制数据,其中,E满足以下公式:U>A-E。应理解,在该可选示例中,在后续提取水印的步骤中,嵌入到待处理数据中的二进制水印还需进一步通过取反处理才能获取到正确的二进制水印。
步骤S107:判断N组二进制数据是否遍历完毕,如果是,执行步骤S109,如果否,执行步骤S108。
举例而言,在本步骤中,还有另一组分组编号1对应的第2组二进制数据未处理,因此执行步骤S108。
步骤S108:选择N组二进制数据中的另一组二进制数据,针对该组二进制数据重复执行步骤S105至S107。
举例而言,可选择表7中,分组编号1对应的第2组二进制数据:
00000010 00000011 00000100 00000110
00001100 00001101 00001110 00010011
00010100
00010111 00011001 00011011
00011101 00011110 00011111 00100000
并跳转至步骤S105:
在步骤S105:分组编号1对应于二进制水印自左至右的第二位二进制位,该二进制位上的二进制值为1,则统计该组二进制数据中每个二进制数据在自左至右第5位的二进制值与0一致的数量A=8与不一致的数量U=8。
在步骤S106:筛除第2组中的部分二进制数据,在第2组筛除的二进制数据的第5位上的数值与二进制水印的第2位上的数值(1)不一致。
举例而言,类似地,T=1.2,则根据A/(U-E)≥T可知E>=2,则E=2。
因此,可筛除00001000 00001001 00001010 00001011 00001111 00011000 00011010 00011100中至少任意两个二进制数据。如可筛除00000010和00010111,从而使得在该组中,二进制数据在嵌入位的数值与该组对应的二进制水印的数值一致的数量8大于不一致的数量6,且二者的比值大于或等于T=1.2。
在步骤S107:判断到所有分组编号对应的二进制数据已处理,因此执行步骤S109。
步骤S109:将未被筛除的二进制数据对应的待处理数据发送至客户端。
具体地,可保留J个二进制数据对应的J个待处理数据,并发送H个待处理数据至客户端103。
其中,H=M-J,J为在N组中筛除的二进制数据的总数量,即J=∑Ei,其中i为0至N-1的正整数,Ei表示分组编号i对应的一组二进制数据要筛除的二进制数据的数量。
在本实施例中,分组编号0对应的一组二进制数据需筛除2个二进制数据,分组编号1对应的一组二进制数据需筛除2个二进制数据,则J=2+2=4,因此H=M-J=32-4=28,故水印服务器102发送28个待处理数据至客户端103。
其中,28个待处理数据如下:
1 | 3 | 4 | 5 | 6 | 7 | 8 | |
9 | 11 | 12 | 13 | 14 | 15 | 16 | |
17 | 18 | 19 | 20 | 21 | 22 | 24 | |
25 | 27 | 28 | 29 | 30 | 31 | 32 |
表8
即:1 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 19 20 21 22 24 25 27 28 29 30 31 32。
值得注意的是,步骤S105至S107的迭代次数由二进制水印的位数决定,举例而言,二进制水印01的位数是2,因此上述步骤S105至S107的迭代次数是2,即循环执行2次步骤S105至S107。
在本发明实施例中,在32个待处理数据中,保留4个待处理数据2、10、23及26,不发送该4个待处理数据至客户端,从而使得二进制水印01自左至右第一位0嵌入到28个待处理数据的一个分组的嵌入位中,其中在该分组的多个二进制数据中,嵌入位是0的数量大于嵌入位是1的数量,并使得二进制水印01自左至右第二位1嵌入到28个待处理数据的另一个分组的嵌入位中,其中在该分组的多个二进制数据中,嵌入位是1的数量大 于嵌入位是0的数量。
由于本发明实施例主要应用在大数据处理中,因此,在待处理数据的数量为海量的情况下,通过适当保留小数量的待处理数据不发送至客户端来完成二进制水印的嵌入,在对数据完整性要求不高的客户端而言,是完全可以接受的。
因此,本发明实施例通过保留少量的待处理数据(如以上示例的4个)不发送至客户端,无需对32个待处理数据中的任一待处理数据的数值进行修改,可保证数据的准确性。而该少量的4个待处理数据在另外一些示例中也可以另外发给客户端,只需保证在客户端中其与原来的28个待处理数据不在一起即可(如针对数据库元组而言,均设置在以上所述的表1.1)。
进一步,本发明实施例通过设置阈值T来调整需保留的待处理数据的数量,可调节容错率与数据完整度之间的平衡,即容错率越高(对应T越大),数据完整度越低,容错率越低(对应T越小),数据完整度越高,容错率与数据完整度呈反比关系,具体原理于下文提取二进制水印的方法将会详细介绍。
为了进一步对图3所示的数据处理方法作出清楚说明,以下请参见图4,图4是根据本发明实施例的数据处理方法的数据转换示意图,参见图4可知,N位二进制水印中的每一位二进制值被映射到二进制数据的N个分组中,每个分组中通过筛除Y个二进制数据,强行使得A>U,并藉此作为后续二进制水印提取的依据。
以下结合图5对本发明实施例的数据处理方法进行进一步说明,其中图5是根据本发明实施例的数据处理方法的另一流程图,值得注意的是图5所示的数据处理方法同样应用于水印服务器102,包括以下步骤:
步骤S110:水印服务器102接收客户端101的识别码和Z个待处理数据。
在一些示例中,通常来说,数据提供方101较为关心数据泄露的情况,在客户端101发生数据泄露时,通知数据提供方101,数据提供方101在获取泄露的Z个待处理数据之后,将客户端101的识别码和泄露的Z个待处理数据发送至水印服务器102。
在另外一些示例中,可由客户端103将客户端101的识别码和泄露的Z个待处理数据发送至水印服务器102。
并且,Z可小于或等于H,即Z个待处理数据可为H个待处理的一个子集,或H个待处理数据是Z个待处理数据的一个子集,或Z个待处理数据就是H个待处理数据。
当Z等于H时,说明客户端101泄露了水印服务器102发送给客户端101所有的待处理数据。当Z小于H时,说明客户端101泄露了水印服务器102发送给客户端101部分的待处理数据。
举例而言,于此假设Z=H,即泄露的待处理数据的数量Z=28,且结合上述的步骤107,水印服务器102接收到的待处理数据具体为:
1 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 19 20 21 22 24 25 27 28 29 30 31 32
步骤S111:将Z个待处理数据转换为Z个二进制数据,每个二进制数据的位数均为P位。
举例而言,水印服务器102将28个待处理数据转换为28个二进制数据如下:
00000001 | 00000011 | 00000100 | 00000101 | 00000110 | 00000111 | 00001000 |
00001001 | 00001011 | 00001100 | 00001101 | 00001110 | 00001111 | 00010000 |
00010001 | 00010010 | 00010011 | 00010100 | 00010101 | 00010110 | 00011000 |
00011001 | 00011011 | 00011100 | 00011101 | 00011110 | 00011111 | 00100000 |
表9
步骤S112:确定二进制水印的嵌入位。其中,嵌入位为P位中的第L位。
与步骤S102类似,在本步骤中,水印服务器102可通过以下方式确定嵌入位:
水印服务器根据客户端103的识别码查询步骤101中记录的客户端103的识别码与密钥数据之间的对应关系,获取客户端103的识别码对应的密钥数据:
8151014275E426C72EE7D44267EF11590DCE0089E19863BA8CC832187B156A72
并且,水印服务器102确定二进制水印在单个二进制数据上的嵌入位针对密钥数据进行哈希运算,获取第一哈希码,将第一哈希码与单个二进制数据的位数进行求余运算,将运算结果作为嵌入位。
举例而言,可根据以下等式获取嵌入位:
K=Sha256(userKey)%dataLen
其中,userKey为密钥数据,dataLen为单个二进制数据的位数,且dataLen=8,Sha256()是可获取到的哈希值大小为256位的哈希算法。
%是求余运算符,K是0-7之间的数值,由于由于密钥数据和单个二进制数据的位数均与步骤S102相同,因此,在本步骤中,L=K+1=5即,取二进制数据的自左至右第5位二进制数作为嵌入位。
步骤S113:将Z个二进制数据分成N组,其中,N组中的第X组对应二进制水印的第X位。
在本步骤中,水印服务器102可将密钥数据分别与每个二进制数据进行哈希运算,获取Z个第二哈希码,将二进制水印的位数N分别与每个第二哈希码进行求余运算,根据运算结果将M个二进制数据分为N组,其中,每个二进制数据对应一个分组编号。
其中,分组编号可为0至N-1的正整数。
举例而言,可将表9所示的28个二进制数据分别与密钥数据8151014275E426C72EE7D44267EF11590DCE0089E19863BA8CC832187B156A72进行整形哈希运算,获得28个第二哈希码如下:
表10
进一步,将表10中的第二哈希码与二进制水印的位数2进行求余运算,可产生2个分 组编号,其中,分组编号具体为0和1。
二进制水印的分组编号分布如下:
0 | 1 | 1 | 0 | 1 | 0 | 0 |
0 | 0 | 1 | 1 | 1 | 0 | 0 |
0 | 0 | 1 | 1 | 0 | 0 | 0 |
1 | 1 | 0 | 1 | 1 | 1 | 1 |
表11
进一步,根据表5所示的分组编号分布以及分组编号对应的二进制数据,可以获取到二进制数据与分组编号的对应关系如下:
表12
根据表12,可利用2个分组编号0和1分别将28个二进制数据分为2组二进制数据:
表13
步骤S114:选择N组二进制数据中的第1组二进制数据。
举例而言,可选择表13中分组编号0对应的第1组二进制数据:
00000001 00000101 00000111 00001000
00001001 00001011 00001111 00010000
00010001 00010010 00010101 00010110
00011000 00011100
步骤S115:统计第1组中的二进制数据在嵌入位(即第L位)的二进制值是第一数值的 数量Q,以及是第二数值的数量W。
举例而言,在本实施例中,第一数值为1,第二数值为0。
而在另外一些示例中,第一数值可为0,第二数值可为1。
具体地:在第1组:
00000001 00000101 00000111 00001000
00001001 00001011 00001111 00010000
00010001 00010010 00010101 00010110
00011000 00011100
中,水印服务器102统计到二进制数据在自左至右第5位的二进制值是1的数量Q=6,二进制数据在自左至右第5位的二进制值是0的数量W=8。
步骤S116:判断Q与W的大小关系,若Q>W,则执行步骤S117,若Q<W,则执行步骤S118。
举例而言,在本步骤中,Q=6,W=8,Q<W,则执行步骤S118。
在一些示例中,若在上述步骤S106所揭示的嵌入二进制水印的过程中,通过A/(U-E)≥T来获得每组需筛除的二进制数据数量E,为取得容错率与数据完整度之间的平衡,对应地,在本步骤中可通过阈值M来判断Q与W之间的大小关系,在一些示例中,阈值M=(T+1)/2,对应地,在本步骤中,水印服务器102在判断Q与W的关系满足Q/W>(T+1)/2的情况下,执行步骤S117,在判断Q与W的关系满足W/Q>(T+1)/2的情况下,执行步骤S118。
由于T>1,因此T>(T+1)/2>1,通过将阈值T适当设置变小为M,例如从T改为(T+1)/2,可数据被部分泄露,或被部分篡改时,实现容错。具体而言,在泄露了部分数据或者泄露的数据被部分破坏了的情况下,不失一般性,假设在一组二进制数据嵌入二进制水印过程中,在嵌入位上的二进制值与所在的分组编号对应的二进制水印的二进制位上的二进制值一致的数量是120,不一致的数量是100,即A=120,U=100。
在一些示例中,假设部分待处理数据泄露,在本步骤中,假设W=115(5个待处理数据丢失),Q=99(1个待处理数据丢失),而T=1.2,M=(T+1)/2=1.1,此时W/Q=115/99=1.16>1.1,水印服务器102依旧执行步骤S118,从而保证可获得正确的二进制水印。
在另一些示例中,假设部分待处理数据被篡改,如有2条数据被篡改,在本步骤中,假设W=118,Q=102,即原本属于W的两个待处理数据被篡改为属于Q,此时W/Q=118/102=1.15>1.1,水印服务器102依旧执行步骤S118,从而保证可获得正确的二进制水印。
综上,通过将阈值适当设置变小,可实现一定程度的容错功能。
值得注意的是,在本发明实施例中,M也可以取值为M=(T+V-1)/V,V为正整数,当V越大,M越小,但M始终大于1,因此在T>1,V>1时,可实现容错功能。
在另一些示例中,在不考虑泄露了部分数据或者泄露的数据被部分破坏了的情况下,阈值可设为T,即V=1,W=120,Q=100,W/Q=120/100=1.2≥T,水印服务器102依旧执行步骤S118。但是,若发生部分待处理数据泄露,则W/Q=115/99=1.16<T,此时阈值T不能保证获得正确的二进制水印。若发生部分待处理数据被篡改,则W/Q=115/99=1.15<T,此 时阈值T也不能保证获得正确的二进制水印。
因此,针对M=(T+V-1)/V而言,当V=1时,不能实现容错功能,当V>1时,可以实现容错功能。
步骤S118:确定第X组对应的二进制水印的第X个数值是第二数值,并执行步骤S119。
举例而言,在本步骤中,在第1组二进制数
00000001 00000101 00000111 00001000
00001001 00001011 00001111 00010000
00010001 00010010 00010101 00010110
00011000 00011100
中,确认该组对应的二进制水印的第1位上的数值是第二数值0。
步骤S119:判断N组二进制数据是否遍历完毕,如果是,执行步骤S121,如果否,执行步骤S120。
举例而言,在本步骤中,还第二组二进制数据未处理,因此执行步骤S120。
步骤S120:选择N组二进制数据中的另一组二进制数据,针对该组二进制数据重复执行步骤S115至S119。
举例而言,可选择表表13中,选择第2组二进制数据:
00000011 00000100 00000110 00001100
00001101 00001110 00010011 00010100
00011001 00011011 00011101 00011110
00011111 00100000
并跳转至步骤S115:
在步骤S115:统计该组中的二进制数据在嵌入位的二进制值是第一数值的数量Q,以及是第二数值的数量W,并跳至步骤S116。
举例而言,第一数值为1,第二数值为0。
具体地:在第2组二进制数据:
00000011 00000100 00000110 00001100
00001101 00001110 00010011 00010100
00011001 00011011 00011101 00011110
00011111 00100000
中,水印服务器102统计到嵌入位为二进制数据在自左至右第5位的二进制值是1的数量Q=8,二进制数据在嵌入位为自左至右第5位的二进制值是0的数量W=6。
步骤S116:判断Q与W的大小关系,若Q>W,则执行步骤S117,若Q<W,则执行步骤S118。
举例而言,在本步骤中,Q=8,W=6,Q>W,则执行步骤S117。
值得注意的是,在一些示例中,也可根据上一步骤S116中所揭示的阈值T或阈值M 对Q与M进行比较,具体方案上文已经揭示,于此不作赘述。
步骤S117:确定第X组对应的二进制水印的第X位上的二进制值是第一数值,并执行步骤S119。
举例而言,在本步骤中,在第2组二进制数分组
00000011 00000100 00000110 00001100
00001101 00001110 00010011 00010100
00011001 00011011 00011101 00011110
00011111 00100000
中,确认该组对应的二进制水印的第2位上的二进制值是第一数值1。
步骤S119:判断N组二进制数据是否遍历完毕,如果是,执行步骤S121,如果否,执行步骤S120。
举例而言,在本步骤中,水印服务器102判断到2组二进制数据均处理完毕,跳至步骤S121。
步骤S121:获取二进制水印。
举例而言,由于水印服务器102在第一次迭代过程中,确认二进制水印自左至右第一位上的二进制值是0,在第二次迭代过程中,确认二进制水印自左至右第二位上的二进制位上的二进制值是1,因此确认二进制水印应为01。
具体可参见下表:
表14
因此,本发明实施例可以在不对待处理数据的数值进行修改的情况下,通过保留小部分待处理数据将二进制水印嵌入到待处理数据中,并从泄漏的待处理数据中获取二进制水印。进一步,通过设置阈值M可以实现一定程度的容错。
为了进一步对图5所示的数据处理方法作出清楚说明,以下请参见图6,图6是根据本发明实施例的数据处理方法的数据转换示意图,参见图6可知,N位二进制水印中的每一位二进制值分别从二进制数据的N个分组中根据Q与W的关系获得,因此具有良好的抗攻击能力。
本发明实施通过零水印的方式嵌入水印,无需引入额外特征数据,基于数学统计意义上的奇偶随机分布,原理简单,应用方便,理论上可同时适用于数值型数据及字符型数据等所有数据类型,嵌入提取方法统一,突破传统水印算法的局限性,当泄露数据为原始数 据的子集或部分泄露数据被篡改的情况下,水印恢复过程引入了修复机制,得到一系列最可能正确的二进制水印,具有良好的抗攻击性。
以下请参见图7,图7是根据本发明实施例的数据处理装置的装置结构示意图,数据处理装置20设置在水印服务器102中,用于将二进制水印嵌入到待处理数据中,该装置包括:
接收模块201,用于接收数据提供方发送的M个待处理数据;
水印嵌入模块202,用于
将M个待处理数据转换为M个二进制数据,其中每个二进制数据的位数均为P位;
产生二进制水印,其中二进制水印的位数为N位;
确定二进制水印的嵌入位,嵌入位为P位中的第L位,1≤T≤P;
将M个二进制数据分成N组,二进制水印的第1至N位分别嵌入到第1至N组中的每个二进制数据的第L位,相同分组的二进制数据的第L位对应二进制水印的相同位;
筛除第X组二进制数据中的部分二进制数据,其中,筛除的二进制数据的第T位上的数值与二进制水印的第X位上的数值不一致,X为变量,1≤X≤N
发送模块203,用于用于将未被筛除的二进制数据对应的待处理数据发送至客户端。
可选地,接收模块201,用于接收数据提供方发送的客户端的识别码和M个待处理数据;水印嵌入模块202,用于针对客户端的识别码分配密钥数据,记录客户端的识别码与密钥数据的对应关系。
可选地,水印嵌入模块202,用于:
根据密钥数据进行哈希运算,获取第一哈希码;
将第一哈希码与二进制数据的位数P进行求余运算,将运算结果作为嵌入位。
可选地,二进制水印记录有客户端的识别码、数据提供方的识别码以及产生二进制水印的时间信息。
可选地,水印嵌入模块202,用于:
将M个二进制数据与密钥数据进行哈希运算,获取M个第二哈希码;
将M个第二哈希码分别与二进制水印的位数N进行求余运算产生N个分组编号,根据N个分组编号将M个二进制数据分为N组二进制数据。
可选地,水印嵌入模块202,用于:
将密钥数据分别与每个二进制数据进行哈希运算,获取M个第二哈希码;
将二进制水印的位数N分别与每个第二哈希码进行求余运算,根据运算结果将M个二进制数据分为N组,其中,每个二进制数据对应一个分组编号。
可选地,水印嵌入模块202,用于比较第X组中每个二进制数据中第L位的数值与二进制水印的第X位的数值,获得数值一致的数量A和数值不一致的数量U;
并且,水印嵌入模块202,用于筛除第X组中E个二进制数据,其中,E满足以下公式:A>U-E。可选地,E取满足公式A>U-E的最小值;或者,E进一步满足以下公式:A/(U-E)≥T,其中,T为大于1的预设的阈值
以下请参见图8,图8是根据本发明实施例的数据处理装置的装置结构示意图,该数据处理装置设置在水印服务器102,用于在泄露的待处理数据中获取二进制水印,其包括:
接收模块301,用于接收Z个待处理数据;
水印提取模块302,用于:
将Z个待处理数据转换为Z个二进制数据,其中每个二进制数据的位数均为P位;
确定二进制水印的嵌入位,其中嵌入位为P位中的第L位,1≤T≤P;
将Z个二进制数据分成N组,N为二进制水印的位数;
统计第X组中的二进制数据在嵌入位的数值是第一数值的数量Q,以及是第二数值的数量W,在Q>W时,确定嵌入到第X组的二进制水印的数值是第一数值,在Q<W时,确定嵌入到第X组的二进制水印的二进制值是第二数值,X为变量,1≤X≤N。
可选地,接收模块301,用于接收客户端的识别码和Z个待处理数据;
水印提取模块302,用于从客户端的识别码与密钥数据的对应关系中查找客户端的识别码对应的密钥数据。
可选地,水印提取模块302,用于:根据密钥数据进行哈希运算,获取第一哈希码,并将第一哈希码与二进制数据的位数P进行求余运算,将运算结果作为嵌入位。
可选地,二进制水印记录有客户端的识别码、数据提供方的识别码以及产生二进制水印的时间信息,水印提取模块302,用于:从二进制水印提取客户端的识别码、数据提供方的识别码以及产生二进制水印的时间信息。
可选地,水印提取模块302,用于将密钥数据分别与每个二进制数据进行哈希运算,获取Z个第二哈希码;将二进制水印的位数N分别与每个第二哈希码进行求余运算,根据运算结果将M个二进制数据分为N组,其中,每个二进制数据对应一个分组编号。
可选地,水印提取模块302,用于:
在第X组中:
在满足Q/W>(T+V-1)/V时,确定嵌入到第X组的二进制水印的数值是第一数值,其中,T是阈值,且T是大于1或等于1的正数,V是正整数;
在满足W/Q>(T+V-1)/V时,确定嵌入到第X组的二进制水印的数值是第二数值。
可选地,T=1,V=1。
可选地,T>1,V>1。
本发明实施例进一步提供一种计算机,具体请参见图9,图9是根据本发明实施例的计算机设备的装置结构示意图,其中图9的计算机40可为以上揭示的水印服务器102,如图9所示,计算机40包括处理器401和存储器403,处理器401和存储器403分别连接至总线402,存储器403存储有程序,处理器401运行程序,以执行图3及其对应描述所揭示的方法。
本发明实施例进一步提供一种计算机,具体请参见图10,图10是根据本发明实施例的计算机设备的装置结构示意图,其中图10的计算机50可为以上揭示的水印服务器102,如图10所示,计算机设备50包括处理器501和存储器503,处理器501和存储器503分别连接至总线502,存储器503存储有程序,处理器501运行程序,以执行图5及其对应描述所揭示的方法。
需说明的是,以上描述的任意装置实施例都仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。另外,本发明提供的装置实施例附图中,模块之间的连接关系表示它们之间具有通信连接,具体可以实现为一条或多条通信总线或信号线。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本发明而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘,U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等,包括若干命令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
所属领域的技术人员可以清楚地了解到,上述描述的系统、装置或单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (32)
- 一种数据处理方法,其特征在于,所述方法用于将二进制水印嵌入到待处理数据中,所述方法包括:接收数据提供方发送的M个待处理数据;将所述M个待处理数据转换为M个二进制数据,其中每个二进制数据的位数均为P位;产生所述二进制水印,其中所述二进制水印的位数为N位;确定所述二进制水印的嵌入位,所述嵌入位为所述P位中的第L位,1≤T≤P;将所述M个二进制数据分成N组,所述二进制水印的第1至N位分别嵌入到第1至N组中的每个二进制数据的第L位,相同分组的二进制数据的第L位对应所述二进制水印的相同位;筛除第X组二进制数据中的部分二进制数据,其中,所述筛除的二进制数据的第T位上的数值与所述二进制水印的第X位上的数值不一致,所述X为变量,1≤X≤N;将未被筛除的二进制数据对应的待处理数据发送至客户端。
- 根据权利要求1所述的数据处理方法,其特征在于,所述接收数据提供方发送的M个待处理数据,包括:接收数据提供方发送的所述客户端的识别码和M个待处理数据;所述方法还包括:针对所述客户端的识别码分配密钥数据,记录所述客户端的识别码与所述密钥数据的对应关系。
- 根据权利要求2所述的数据处理方法,其特征在于,所述确定所述二进制水印的嵌入位,包括:根据所述密钥数据进行哈希运算,获取第一哈希码;将所述第一哈希码与所述二进制数据的位数P进行求余运算,将运算结果作为所述嵌入位。
- 根据权利要求2或3所述的数据处理方法,其特征在于,所述二进制水印记录有所述客户端的识别码、所述数据提供方的识别码以及产生所述二进制水印的时间信息。
- 根据权利要求2至4任一项所述的数据处理方法,其特征在于,所述将所述M个二进制数据分成N组,包括:将所述密钥数据分别与每个二进制数据进行哈希运算,获取M个第二哈希码;将所述二进制水印的位数N分别与每个第二哈希码进行求余运算,根据运算结果将所述M个二进制数据分为N组,其中,每个二进制数据对应一个分组编号。
- 根据权利要求2至5任一项所述的数据处理方法,其特征在于,所述筛除第X组二进制数据中的部分二进制数据,包括:比较所述第X组中每个二进制数据中第L位的数值与所述二进制水印的第X位的数值,获得数值一致的数量A和数值不一致的数量U;筛除所述第X组中E个二进制数据,其中,所述E满足以下公式:A>U-E。
- 根据权利要求6所述的数据处理方法,其特征在于,所述E取满足所述公式A>U-E 的最小值;或者,所述E进一步满足以下公式:A/(U-E)≥T,其中,所述T为大于1的预设的阈值。
- 一种数据处理方法,其特征在于,所述方法用于从待处理数据中获取二进制水印,所述方法包括:接收Z个待处理数据;将所述Z个待处理数据转换为Z个二进制数据,其中每个二进制数据的位数均为P位;确定所述二进制水印的嵌入位,其中所述嵌入位为所述P位中的第L位,1≤T≤P;将所述Z个二进制数据分成N组,N为所述二进制水印的位数;统计第X组中的二进制数据在所述嵌入位的数值是第一数值的数量Q,以及是第二数值的数量W,在Q>W时,确定嵌入到第X组的所述二进制水印的第X位的数值是所述第一数值,在Q<W时,确定嵌入到第X组的所述二进制水印的第X位的数值是所述第二数值,所述X为变量,1≤X≤N。
- 根据权利要求8所述的数据处理方法,其特征在于,所述接收Z个待处理数据,包括:接收客户端的识别码和Z个待处理数据;所述方法还包括:从记录的所述客户端的识别码与密钥数据的对应关系中查找所述客户端的识别码对应的所述密钥数据。
- 根据权利要求9所述的数据处理方法,其特征在于,所述确定所述二进制水印的嵌入位,包括:根据所述密钥数据进行哈希运算,获取第一哈希码;将所述第一哈希码与所述二进制数据的位数P进行求余运算,将运算结果作为所述嵌入位。
- 根据权利要求9或10所述的数据处理方法,其特征在于,所述二进制水印记录有所述客户端的识别码、所述数据提供方的识别码以及产生所述二进制水印的时间信息,所述方法还包括:从所述二进制水印提取所述客户端的识别码、所述数据提供方的识别码以及产生所述二进制水印的时间信息。
- 根据权利要求9至11任一项所述的数据处理方法,其特征在于,所述将所述Z个二进制数据分成N组,包括:将所述密钥数据分别与每个二进制数据进行哈希运算,获取Z个第二哈希码;将所述二进制水印的位数N分别与每个第二哈希码进行求余运算,根据运算结果将所述M个二进制数据分为N组,其中,每个二进制数据对应一个分组编号。
- 根据权利要求9至12任一项所述的数据处理方法,其特征在于,所述统计第X组中的二进制数据在所述嵌入位的数值是第一数值的数量Q,以及是第二数值的数量W,在Q>W时,确定嵌入到第X组的所述二进制水印的第X位的数值是所述第一数值,在Q<W时,确定嵌入到第X组的所述二进制水印的第X位的数值是所述第二数值,包括:在所述第X组中:在满足Q/W>(T+V-1)/V时,确定嵌入到所述第X组的所述二进制水印的第X位的数值是所述第一数值,其中,T是阈值,且T是大于1或等于1的正数,V是正整数;在满足W/Q>(T+V-1)/V时,确定嵌入到所述第X组的所述二进制水印的第X位的数值是所述第二数值。
- 根据权利要求13所述的数据处理方法,其特征在于,T>1,V>1。
- 根据权利要求14所述的数据处理方法,其特征在于,V=2。
- 一种数据处理装置,其特征在于,所述装置用于将二进制水印嵌入到待处理数据中,所述装置包括:接收模块,用于接收数据提供方发送的M个待处理数据;水印嵌入模块,用于将所述M个待处理数据转换为M个二进制数据,其中每个二进制数据的位数均为P位;产生所述二进制水印,其中所述二进制水印的位数为N位;确定所述二进制水印的嵌入位,所述嵌入位为所述P位中的第L位,1≤T≤P;将所述M个二进制数据分成N组,所述二进制水印的第1至N位分别嵌入到第1至N组中的每个二进制数据的第L位,相同分组的二进制数据的第L位对应所述二进制水印的相同位;筛除第X组二进制数据中的部分二进制数据,其中,所述筛除的二进制数据的第T位上的数值与所述二进制水印的第X位上的数值不一致,所述X为变量,1≤X≤N;发送模块,用于将未被筛除的二进制数据对应的待处理数据发送至客户端。
- 根据权利要求16所述的数据处理装置,其特征在于,所述接收模块,用于接收数据提供方发送的客户端的识别码和M个待处理数据;所述水印嵌入模块,用于针对所述客户端的识别码分配密钥数据,记录所述客户端的识别码与所述密钥数据的对应关系。
- 根据权利要求17所述的数据处理装置,其特征在于,所述水印嵌入模块,用于:根据所述密钥数据进行哈希运算,获取第一哈希码;将所述第一哈希码与所述二进制数据的位数P进行求余运算,将运算结果作为所述嵌入位。
- 根据权利要求17或18所述的数据处理装置,其特征在于,所述二进制水印记录有所述客户端的识别码、所述数据提供方的识别码以及产生所述二进制水印的时间信息。
- 根据权利要求17至19任一项所述的数据处理装置,其特征在于,所述水印嵌入模块,用于:将所述密钥数据分别与每个二进制数据进行哈希运算,获取M个第二哈希码;将所述二进制水印的位数N分别与每个第二哈希码进行求余运算,根据运算结果将所述M个二进制数据分为N组,其中,每个二进制数据对应一个分组编号。
- 根据权利要求17至20任一项所述的数据处理装置,其特征在于,所述水印嵌入模块,用于:比较所述第X组中每个二进制数据中第L位的数值与所述二进制水印的第X位的数值, 获得数值一致的数量A和数值不一致的数量U;筛除所述第X组中E个二进制数据,其中,所述E满足以下公式:A>U-E。
- 根据权利要求17至21任一项所述的数据处理装置,其特征在于,所述E取满足所述公式A>U-E的最小值;或者,所述E进一步满足以下公式:A/(U-E)≥T,其中,所述T为大于1的预设的阈值。
- 一种数据处理装置,其特征在于,用于在待处理数据中获取二进制水印,包括:接收模块,用于接收Z个待处理数据;水印提取模块,用于:将所述Z个待处理数据转换为Z个二进制数据,其中每个二进制数据的位数均为P位;确定所述二进制水印的嵌入位,其中所述嵌入位为所述P位中的第L位,1≤T≤P;将所述Z个二进制数据分成N组,N为所述二进制水印的位数;统计第X组中的二进制数据在所述嵌入位的数值是第一数值的数量Q,以及是第二数值的数量W,在Q>W时,确定嵌入到第X组的所述二进制水印的第X位的数值是所述第一数值,在Q<W时,确定嵌入到第X组的所述二进制水印的第X位的数值是所述第二数值,所述X为变量,1≤X≤N。
- 根据权利要求23所述的数据处理装置,其特征在于,所述接收模块,用于:接收客户端的识别码和Z个待处理数据;所述水印提取模块,用于:从所述客户端的识别码与所述密钥数据的对应关系中查找所述客户端的识别码对应的所述密钥数据。
- 根据权利要求24所述的数据处理装置,其特征在于,所述水印提取模块,用于:根据所述密钥数据进行哈希运算,获取第一哈希码;将所述第一哈希码与所述二进制数据的位数P进行求余运算,将运算结果作为所述嵌入位。
- 根据权利要求24或25所述的数据处理装置,其特征在于,所述二进制水印记录有所述客户端的识别码、所述数据提供方的识别码以及产生所述二进制水印的时间信息,所述水印提取模块,用于:从所述二进制水印提取所述客户端的识别码、所述数据提供方的识别码以及产生所述二进制水印的时间信息。
- 根据权利要求24至26任一项所述的数据处理装置,其特征在于,所述水印提取模块,用于:将所述密钥数据分别与每个二进制数据进行哈希运算,获取Z个第二哈希码;将所述二进制水印的位数N分别与每个第二哈希码进行求余运算,根据运算结果将所述M个二进制数据分为N组,其中,每个二进制数据对应一个分组编号。
- 根据权利要求24至27任一项所述的数据处理装置,其特征在于,所述水印提取模块,用于:在所述第X组中:在满足Q/W>(T+V-1)/V时,确定嵌入到所述第X组的所述二进制水印的数值是所述第一数值,其中,T是阈值,且T是大于1或等于1的正数,V是正整数;在满足W/Q>(T+V-1)/V时,确定嵌入到所述第X组的所述二进制水印的的数值是所述第二数值。
- 根据权利要求28所述的数据处理装置,其特征在于,T>1,V>1。
- 根据权利要求29任一项所述的数据处理装置,其特征在于,V=2。
- 一种计算机,其特征在于,包括处理器和存储器,所述存储器存储有程序,所述处理器运行所述程序,以执行权利要求1至7任一项所述的方法。
- 一种计算机,其特征在于,包括处理器和存储器,所述存储器存储有程序,所述处理器运行所述程序,以执行权利要求8至15任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/093922 WO2020000486A1 (zh) | 2018-06-30 | 2018-06-30 | 数据处理方法及装置 |
CN201880038542.4A CN110770725B (zh) | 2018-06-30 | 2018-06-30 | 数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2018/093922 WO2020000486A1 (zh) | 2018-06-30 | 2018-06-30 | 数据处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020000486A1 true WO2020000486A1 (zh) | 2020-01-02 |
Family
ID=68985749
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2018/093922 WO2020000486A1 (zh) | 2018-06-30 | 2018-06-30 | 数据处理方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN110770725B (zh) |
WO (1) | WO2020000486A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559985A (zh) * | 2020-12-22 | 2021-03-26 | 深圳昂楷科技有限公司 | 一种水印嵌入及提取方法 |
CN114186252A (zh) * | 2021-12-06 | 2022-03-15 | 上海观安信息技术股份有限公司 | 数据水印生成方法及装置、数据溯源方法及装置 |
CN114491539A (zh) * | 2022-02-16 | 2022-05-13 | 上海斗象信息科技有限公司 | 文件检测方法、装置、设备及计算机可读存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113688601B (zh) * | 2021-10-26 | 2022-02-22 | 北京凯睿数加科技有限公司 | 基于表单的水印生成方法、装置、电子设备和计算机介质 |
CN116541808A (zh) * | 2023-07-06 | 2023-08-04 | 杭州美创科技股份有限公司 | 数据水印溯源方法、装置、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040034777A1 (en) * | 2002-08-16 | 2004-02-19 | Quicksilver Technology, Inc. | Method and apparatus for watermarking binary computer code with modified compiler optimizations |
US20040034602A1 (en) * | 2002-08-16 | 2004-02-19 | Quicksilver Technology, Inc. | Method and apparatus for watermarking binary computer code |
CN101980280A (zh) * | 2010-10-12 | 2011-02-23 | 山东中创软件商用中间件股份有限公司 | 水印嵌入方法、检测方法、装置及水印处理系统 |
CN104486304A (zh) * | 2014-12-04 | 2015-04-01 | 湖南科技大学 | 一种基于数字水印的无线传感器网络数据安全保护方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012034280A1 (en) * | 2010-09-16 | 2012-03-22 | Hewlett-Packard Development Company, L.P. | Digital watermarking |
-
2018
- 2018-06-30 WO PCT/CN2018/093922 patent/WO2020000486A1/zh active Application Filing
- 2018-06-30 CN CN201880038542.4A patent/CN110770725B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040034777A1 (en) * | 2002-08-16 | 2004-02-19 | Quicksilver Technology, Inc. | Method and apparatus for watermarking binary computer code with modified compiler optimizations |
US20040034602A1 (en) * | 2002-08-16 | 2004-02-19 | Quicksilver Technology, Inc. | Method and apparatus for watermarking binary computer code |
CN101980280A (zh) * | 2010-10-12 | 2011-02-23 | 山东中创软件商用中间件股份有限公司 | 水印嵌入方法、检测方法、装置及水印处理系统 |
CN104486304A (zh) * | 2014-12-04 | 2015-04-01 | 湖南科技大学 | 一种基于数字水印的无线传感器网络数据安全保护方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559985A (zh) * | 2020-12-22 | 2021-03-26 | 深圳昂楷科技有限公司 | 一种水印嵌入及提取方法 |
CN112559985B (zh) * | 2020-12-22 | 2024-02-20 | 深圳昂楷科技有限公司 | 一种水印嵌入及提取方法 |
CN114186252A (zh) * | 2021-12-06 | 2022-03-15 | 上海观安信息技术股份有限公司 | 数据水印生成方法及装置、数据溯源方法及装置 |
CN114491539A (zh) * | 2022-02-16 | 2022-05-13 | 上海斗象信息科技有限公司 | 文件检测方法、装置、设备及计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110770725A (zh) | 2020-02-07 |
CN110770725B (zh) | 2022-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020000486A1 (zh) | 数据处理方法及装置 | |
WO2021082757A1 (zh) | 一种基于区块链系统的数据处理方法及装置 | |
CN107807982B (zh) | 一种异构数据库的一致性校验方法及装置 | |
CN102708183B (zh) | 数据压缩的方法和装置 | |
US20170185712A1 (en) | A method of storing/reconstructing a multitude of sequences in/from a data storage structure | |
CN111580965A (zh) | 数据请求的处理方法及系统 | |
EP3035213A1 (en) | Method and apparatus for deriving a perceptual hash value from an image | |
CN114285562B (zh) | 一种数据加密方法和装置 | |
WO2019056496A1 (zh) | 图片复审概率区间生成方法及图片复审判定方法 | |
CN115758399A (zh) | 基于医联网的智慧医疗信息管理方法、装置、设备及介质 | |
CN115408350A (zh) | 日志压缩、日志还原方法、装置、计算机设备和存储介质 | |
CN114356919A (zh) | 一种结构化数据库的水印嵌入方法、溯源方法及装置 | |
CN115795517A (zh) | 资产数据存储方法及装置 | |
CN111405294A (zh) | 一种图像栅格数据的存储及传输方法 | |
CN105204782B (zh) | 一种实现数据存储的方法及装置 | |
CN113468118B (zh) | 一种基于区块链的文件增量存储方法、装置及存储介质 | |
CN112905575A (zh) | 数据采集的方法、系统、存储介质及电子设备 | |
CN104636377A (zh) | 数据压缩方法及设备 | |
CN117111854A (zh) | 一种基于分布式加密存储的数据存储方法、装置及介质 | |
CN107612554B (zh) | 数据压缩处理方法 | |
CN111913956A (zh) | 统一业务编码方法及装置 | |
CN113779075B (zh) | 基于差分隐私的数据查询方法、装置、设备及存储介质 | |
CN114970464A (zh) | 用于标识生成的方法、装置、终端设备及存储介质 | |
CN115422142A (zh) | 数据压缩方法及装置 | |
CN109063097B (zh) | 基于区块链的数据对比及共识方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 18924094 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 18924094 Country of ref document: EP Kind code of ref document: A1 |