CN110770725B - Data processing method and device - Google Patents

Data processing method and device Download PDF

Info

Publication number
CN110770725B
CN110770725B CN201880038542.4A CN201880038542A CN110770725B CN 110770725 B CN110770725 B CN 110770725B CN 201880038542 A CN201880038542 A CN 201880038542A CN 110770725 B CN110770725 B CN 110770725B
Authority
CN
China
Prior art keywords
data
binary
watermark
bit
processed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201880038542.4A
Other languages
Chinese (zh)
Other versions
CN110770725A (en
Inventor
石岭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Cloud Computing Technologies Co Ltd
Original Assignee
Huawei Cloud Computing Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Cloud Computing Technologies Co Ltd filed Critical Huawei Cloud Computing Technologies Co Ltd
Publication of CN110770725A publication Critical patent/CN110770725A/en
Application granted granted Critical
Publication of CN110770725B publication Critical patent/CN110770725B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/16Program or content traceability, e.g. by watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing

Abstract

The embodiment of the invention provides a data processing method and a device, wherein the method comprises the following steps: receiving M data to be processed sent by a data provider, converting the M data to be processed into M binary data, generating a binary watermark, determining an embedded bit of the binary watermark, wherein the embedded bit is the L-th bit of the P bits, T is more than or equal to 1 and less than or equal to P, dividing the M binary data into N groups, embedding the 1 st bit to the N-th bit of each binary data in the 1 st group to the N-th group, screening partial binary data in the X-th group of binary data, and sending the data to be processed corresponding to the binary data which is not screened to a client. By the above mode, watermark embedding is realized without changing the numerical value of part of data to be processed, and the method is suitable for occasions with higher requirements on data accuracy.

Description

Data processing method and device
Technical Field
The present invention relates to the field of information technologies, and in particular, to a data processing method and apparatus for embedding a binary watermark in to-be-processed data and obtaining the binary watermark from the to-be-processed data.
Background
At present, hot fields such as big data, artificial intelligence and the like all have urgent needs for data sharing, but in the data sharing process, data leakage events are endless, a database watermarking technology is used as an important copyright protection mode, and the purpose of protecting the safety of a database is achieved on the premise of not damaging the content and the usability of the database by embedding marks which are not easy to perceive and difficult to remove in data to be processed of the database.
The prior art embeds a binary watermark by modifying the lowest bits of the data to be processed. In the prior art, the lowest-order information of the data to be processed needs to be modified to be consistent with the corresponding watermark information.
And when the data is leaked, the corresponding binary watermark can be obtained according to the lowest bit of the data to be processed, so that the extraction of the binary watermark is realized.
In the prior art, the modification of the lowest bit in the data to be processed changes the numerical value of the data to be processed, and is not suitable for occasions with higher requirements on data accuracy.
Disclosure of Invention
The embodiment provides a data processing method and device, which do not need to change the numerical value of data to be processed and are suitable for occasions with higher requirements on data accuracy.
The first aspect of the present application provides a data processing method for embedding a binary watermark into data to be processed, the method being implemented by receiving M data to be processed sent by a data provider, converting the M data to be processed into M binary data, wherein the number of bits of each binary data is P bits, generating a binary watermark, wherein the number of bits of the binary watermark is N bits, determining an embedded bit of the binary watermark, the embedded bit being an L-th bit of the P bits, T being equal to or greater than 1 and equal to or less than P, dividing the M binary data into N groups, embedding 1 to N bits of the binary watermark into an L-th bit of each binary data of the 1 to N groups, the L-th bit of the binary data of the same group corresponding to the same bit of the binary watermark, and screening out a part of the data of the X-th group of the binary data, wherein a value on the T-th bit of the screened-out data is not consistent with a value on the X-th bit of the binary watermark And X is a variable and is more than or equal to 1 and less than or equal to N, and sending the data to be processed corresponding to the binary data which are not screened out to the client.
Each bit of the binary watermark is mapped to an embedded bit of a group of data to be processed, and in a plurality of binary data of each group, by deleting part of the binary data, the number of binary values of one binary bit of the binary watermark in the embedded bit is forcibly set to be larger than the number of binary values of one binary bit of the binary watermark in the embedded bit, which is not the binary watermark, so that the binary watermark is extracted in the subsequent watermark extraction step by the characteristic without modifying the value of the data to be processed.
In a first possible implementation manner of the first aspect, the step of receiving M pieces of to-be-processed data sent by the data provider is specifically implemented as receiving an identification code of a client and M pieces of to-be-processed data sent by the data provider, and correspondingly, the method further includes: and distributing key data aiming at the identification code of the client, and recording the corresponding relation between the identification code of the client and the key data.
The key data corresponds to the identification code of the client one to one, in the subsequent data processing, the data security can be further enhanced through the intervention of the key data, and a third party cannot acquire the embedded binary watermark without acquiring the key data.
According to a first possible implementation manner of the first aspect, in a second possible implementation manner, the step of determining embedded bits of a binary watermark on a single binary datum is specifically implemented by: and carrying out Hash operation on the data key data to obtain a first Hash code, carrying out complementation operation on the first Hash code and the bit number P of the binary data, and taking the operation result as an embedded bit.
In the implementation mode, the embedding position is selected in the binary data through remainder operation, and the first hash code related to the remainder operation is obtained through hash operation on the key data, so that the embedding position is selected in the binary data according to the key data, even if the data to be processed is leaked out, a third party obtaining the leaked data to be processed cannot know the embedding position of the binary watermark in the data to be processed on the premise that the third party cannot know the key data, and therefore the difficulty of the third party in breaking the embedding position can be increased, and data safety is guaranteed.
In a third possible implementation form, the binary watermark is recorded with an identification code of the client, an identification code of the data provider, and time information for generating the binary watermark.
After the watermark server obtains the binary watermark, the three attribute information can be obtained from the binary watermark, so that the leaked data to be processed is positioned, a data provider, a data receiver (namely a client) and the generation time of the leaked data are known, and evidence is provided for data leakage.
According to any one of the first to third possible implementation manners of the first aspect, in a fourth possible implementation manner, the M binary data are divided into N groups, specifically, the key data are respectively subjected to hash operation with each binary data to obtain M second hash codes, the bit N of the binary watermark is respectively subjected to remainder operation with each second hash code, and the M binary data are divided into N groups according to an operation result, where each binary data corresponds to one group number.
The number of the packets is determined by the number of bits of the binary watermark, and each packet corresponds to one binary bit of the binary watermark, and the numerical value on the binary bit of the binary watermark can be mapped into each packet respectively.
According to the first aspect and any one of the first to fourth possible implementation manners of the first aspect, in a fifth possible implementation manner, the screening out part of the binary data in the X-th group of binary data is specifically implemented as: comparing the value of the L-th bit in each binary data in the X-th group with the value of the X-th bit of the binary watermark to obtain the number A with consistent values and the number U with inconsistent values, and screening out E binary data in the X-th group, wherein E meets the following formula: a > U-E.
According to a fifth possible implementation manner of the first aspect, in a sixth possible implementation manner, E takes the minimum value that satisfies formula a > U-E, or E further satisfies the following formula: A/(U-E) ≧ T, wherein T is a preset threshold greater than 1.
In the above manner, it is mandatory that, in each packet, the number of binary values of the embedded bit that coincide with the binary value on the binary bit of the binary watermark corresponding to the packet number is greater than the number of non-coincidence, thereby realizing mapping of one binary value of the binary watermark to the packet.
According to one possible implementation of the first aspect, 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 realized in binary format, and the database tuple can be converted into binary format, so that the method is suitable for the text file, the picture file and the database tuple, wherein the database tuple can be an element in one database tuple in a relational table, and the element corresponds to one attribute.
In a second aspect, the present application provides a data processing method for obtaining a binary watermark from data to be processed, the method being implemented by receiving Z data to be processed, converting the Z data to be processed into Z binary data, wherein the bit number of each binary data is P bits, determining embedded bits of the binary watermark, wherein the embedded bits are L bits of the P bits, T is greater than or equal to 1 and less than or equal to P, dividing the Z binary data into N groups, N is the bit number of the binary watermark, counting the number Q of the embedded bits of the binary data in the X group, which is the number of first values, and the number W of second values, determining the number of X bits of the binary watermark embedded in the X group, which is the first value, when Q > W, and determining the number of X bits of the binary watermark embedded in the X group, which is the second value, when Q < W, x is variable, and is more than or equal to 1 and less than or equal to N.
If the number of binary values of a binary bit of which the embedding bit is the binary watermark is forcibly set to be greater than the number of binary values of a binary bit of which the embedding bit is not the binary watermark in the process of embedding the binary watermark (as in the first aspect), the binary watermark can be extracted in the subsequent watermark extraction step by the characteristic without modifying the value of the data to be processed.
According to a first possible implementation manner of the second aspect, the step of receiving Z pieces of data to be processed is implemented by receiving an identification code of the client and Z pieces of data to be processed, and correspondingly, the method further includes a step of searching key data corresponding to the identification code of the client from the recorded correspondence between the identification code of the client and the key data.
The key data corresponds to the identification code of the client one to one, in the subsequent data processing, the data security can be further enhanced through the intervention of the key data, and a third party cannot acquire the embedded binary watermark without acquiring the key data.
According to a first possible implementation manner of the second aspect, in a second possible implementation manner, the determining of the embedded bit of the binary watermark is implemented by performing hash operation according to key data to obtain a first hash code, performing remainder operation on the first hash code and a bit number P of the binary data, and taking an operation result as the embedded bit.
In the implementation mode, the embedding position is selected in the binary data through remainder operation, and the second hash code related to the remainder operation is obtained through hash operation on the key data, so that the embedding position is selected in the binary data according to the key data, even if the data to be processed is leaked out, a third party obtaining the leaked data to be processed cannot know the embedding position of the binary watermark in the data to be processed on the premise that the third party cannot know the key data, and therefore the difficulty of the third party in breaking the embedding position can be increased, and data safety is guaranteed.
In a third possible implementation manner, the binary watermark is recorded with an identification code of the client, an identification code of the data provider, and time information for generating the binary watermark, and the method further includes a step of extracting the identification code of the client, the identification code of the data provider, and the time information for generating the binary watermark from the binary watermark.
After the watermark server obtains the binary watermark, the three attribute information can be obtained from the binary watermark, so that the leaked data to be processed is positioned, a data provider, a data receiver (namely a client) and the generation time of the leaked data are known, and evidence is provided for data leakage.
According to the first or third possible implementation manner of the second aspect, in a fourth possible implementation manner, the step of dividing Z binary data into N groups is implemented by performing hash operation on the key data and each binary data respectively to obtain Z second hash codes, performing remainder operation on the bit N of the binary watermark and each second hash code respectively, and dividing M binary data into N groups according to an operation result, where each binary data corresponds to one group number.
The number of the packets is determined by the number of bits of the binary watermark, and each packet corresponds to one binary bit of the binary watermark, and the binary values on the binary bits of the binary watermark can be mapped into each packet respectively.
According to the second aspect and any one of the first to fourth possible implementation manners of the second aspect, in a fifth possible implementation manner, counting a number Q that a value of a binary data in the X-th group in an embedding bit is a first value, and a number W that is a second value, when Q > W, determining that a value of a binary watermark embedded in the X-th group is the first value, when Q < W, determining that a binary value of a binary watermark embedded in the X-th group is the second value, and X is a variable, wherein in the X-th group: and when Q/W > (T + V-1)/V is satisfied, determining that the value of the Xth bit of the binary watermark embedded into the Xth group is a first value, wherein T is a threshold value, T is a positive number greater than 1 or equal to 1, and V is a positive integer, and when W/Q > (T + V-1)/V is satisfied, determining that the value of the Xth bit of the binary watermark embedded into the Xth group is a second value.
According to a fifth possible implementation form of the second aspect, in a sixth possible implementation form, T >1 and V >1.
When T >1 and V >1, (T + V-1)/V is smaller than T, and the threshold value is set to be smaller as appropriate, fault tolerance can be realized when data is partially leaked or partially tampered.
In a sixth possible implementation form of the second aspect, V is 2.
In one possible implementation of the second aspect, the data to be processed is one of a text file, a picture file, or a database tuple.
In a third aspect, the present application provides a data processing apparatus for embedding a binary watermark in data to be processed, the apparatus comprising: a receiving module for receiving M data to be processed sent by a data provider, a watermark embedding module for converting the M data to be processed into M binary data, wherein the bit number of each binary data is P bits, generating a binary watermark, wherein the bit number of the binary watermark is N bits, determining the embedding bit of the binary watermark, the embedding bit is the L-th bit of the P bits, T is more than or equal to 1 and less than or equal to P, dividing the M binary data into N groups, embedding the 1 st to N bits of the binary watermark into the L-th bit of each binary data in the 1 st to N groups, screening out partial binary data in the X-th group of binary data, wherein the value on the T-th bit of the screened out binary data is not consistent with the value on the X-th bit of the binary watermark, and X is a variable, and X is more than or equal to 1 and less than or equal to N, and the sending module is used for sending the data to be processed corresponding to the binary data which are not screened out to the client.
Any implementation manner of the third aspect or the third aspect is an apparatus implementation manner corresponding to any implementation manner of the first aspect or the first aspect, and the description in any implementation manner of the first aspect or the first aspect is applicable to any implementation manner of the third aspect or the third aspect, and is not described herein again.
In a fourth aspect, the present application provides a data processing apparatus, configured to obtain a binary watermark from data to be processed, including: a receiving module, configured to receive Z pieces of data to be processed, and a watermark extraction module, configured to: the method comprises the steps of converting Z data to be processed into Z binary data, wherein the bit number of each binary data is P bits, determining the embedding bit of a binary watermark, wherein the embedding bit is the L-th bit in the P bits, T is larger than or equal to 1 and smaller than or equal to P, dividing the Z binary data into N groups, N is the bit number of the binary watermark, counting the number Q of the binary data in the X group in the embedding bit and the number W of the second value, determining the value of the binary watermark embedded in the X group to be the first value when Q is larger than W, determining the binary value of the binary watermark embedded in the X group to be the second value when Q is smaller than W, X is a variable, and X is larger than or equal to 1 and smaller than or equal to N.
Any one implementation manner of the fourth aspect or the fourth aspect is an apparatus implementation manner corresponding to any one implementation manner of the second aspect or the second aspect, and the description in any one implementation manner of the second aspect or the second aspect is applicable to any one implementation manner of the fourth aspect or the fourth aspect, and is not repeated here.
In a fifth aspect, the present application provides a computer, which includes a processor and a memory, where the memory stores programs, and the processor executes the programs to perform the data processing method provided in the first aspect or any one of the implementation manners of the first aspect.
In a sixth aspect, the present application provides a computer, which includes a processor and a memory, where the memory stores programs, and the processor executes the programs to execute the data processing method provided in the second aspect or any one of the implementation manners of the second aspect.
In a seventh aspect, the present application provides a storage medium, where a program code is stored in the storage medium, and when the program code is executed by a storage controller, the storage controller executes the data processing method provided in the foregoing first aspect or any implementation manner of the first aspect. The storage medium includes, but is not limited to, a read-only memory, a random access memory, a flash memory, an HDD, or an SSD.
In an eighth aspect, the present application provides a storage medium, where a program code is stored, and when the program code is executed by a storage controller, the storage controller executes the data processing method provided in any one of the implementations of the foregoing second aspect or second aspect. The storage medium includes, but is not limited to, a read-only memory, a random access memory, a flash memory, an HDD, or an SSD.
In a ninth aspect, the present application provides a computer program product comprising program code, which when executed by a storage controller, performs the data processing method provided in the foregoing first aspect or any one of the implementations of the first aspect. The computer program product may be a software installation package, and in case that the graphics processing method provided by the first aspect or any one of the implementations of the first aspect needs to be used, the computer program product may be downloaded to a storage controller and run on the storage controller.
In a tenth aspect, the present application provides a computer program product comprising program code that, when executed by a storage controller, performs the data processing method provided by any one of the implementations of the foregoing second aspect or second aspect. The computer program product may be a software installation package, and in case that the graphics processing method provided by any one of the implementations of the second aspect or the second aspect needs to be used, the computer program product may be downloaded to and run on a storage controller.
Drawings
Fig. 1 is a schematic diagram of a watermarking system according to an embodiment of the invention;
fig. 2 is another schematic diagram of a watermarking system according to an embodiment of the invention;
FIG. 3 is a flow chart of a data processing method according to an embodiment of the present invention;
FIG. 4 is a data conversion diagram of a data processing method according to an embodiment of the present invention;
FIG. 5 is another flow chart of a data processing method according to an embodiment of the present invention;
FIG. 6 is a data conversion diagram of a data processing method according to an embodiment of the present invention;
FIG. 7 is a schematic diagram of an apparatus structure of a data processing apparatus according to an embodiment of the present invention;
FIG. 8 is a schematic diagram of an apparatus configuration of a data processing apparatus according to an embodiment of the present invention;
FIG. 9 is a schematic diagram of an apparatus configuration of a computer according to an embodiment of the present invention;
fig. 10 is a schematic diagram of an apparatus configuration of a computer according to an embodiment of the present invention.
Detailed Description
The embodiment of the invention provides a data processing method and device, wherein binary watermarks are embedded in data to be processed, and the data to be processed does not need to be modified.
For the convenience of understanding the embodiments of the present invention, some technical terms related to the embodiments of the present invention are described below, and the following embodiments may be described with reference to the following technical terms:
binary watermarking: information consisting of a set of binary numbers of predetermined length, each binary number being embeddable in a plurality of data to be processed, the binary watermark being divisible into a plurality of subsets, each subset representing different information.
For example, the binary watermark may be a binary number 0101100011011111 with a length of 16 bits, the watermark server divides the 1 st to 8 th bits into a first subset and divides the 9 th to 16 th bits into a second subset, wherein the 01011000 subset indicates that the data provider is a company, and the 11011111 subset indicates that the generation time of the binary watermark is a month and a day of the year.
The watermark server may pre-record the attributes that each subset represents, such as the identification code of the data provider, the generation time of the binary watermark, and the identification code of the client, etc. And the watermark server may record the correspondence between the binary numbers and the attributes in each subset, e.g. for the first subset, the identification code 00000000 of the data provider represents company a and the identification code 00000001 of the data provider represents company B; for the second subset, 00000000 represents 2018, month 1, and 00000001 represents 2018, month 1, and day 2. The above-mentioned corresponding relationship can be set according to actual needs, and is not described herein.
Database tuple: the basic concept in a relational database pertains to database media data, which refers to data stored in a database in a format that can be read by the database. In a database, a relationship represents a table (e.g., table 1 below), where each column is an attribute and each row in the table is a database tuple.
For example, see the following table:
Figure BDA0002311184550000051
Figure BDA0002311184550000061
TABLE 1.1
As shown in Table 1.1, "1", "2", and "3" are each a database tuple.
Further, see table 1.2:
name (I) Age (age)
Xiaoming liquor 1
Small flower 2
King of small 3
TABLE 1.2
As shown in table 1.2, "xiaoming, 1", "floret, 2", "queen, 3" are database tuples, respectively.
In the embodiment of the present invention, the data to be processed may be a database tuple as shown in table 1.1, or an element corresponding to an attribute in a database tuple as shown in table 1.2, for example, "1", that is, an element "1" corresponding to an attribute age in the database tuple "xiaoming, 1".
It should be noted that, in the embodiment of the present invention, the data to be processed is specifically described by taking a database tuple belonging to the database medium data as an example, and in other embodiments of the present invention, the data to be processed may further include non-database medium data, where the non-database medium data is, for example, a text file or a picture file, and the reason is that the text file and the picture file may exist in the form of binary data, or the text file and the picture file may be converted into a binary format.
Hash operation: binary values of arbitrary length are mapped to fixed-length integers, called hash values. Hash values are a unique and extremely compact representation of a piece of data as a value.
Referring to fig. 1, fig. 1 is a schematic diagram of a watermarking system according to an embodiment of the present invention, and as shown in fig. 1, the watermarking system includes a data provider 101, a watermark server 102, and clients 103,104, and 105.
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, respectively generates data to be processed a, B, and C, and respectively sends the data to be processed to the clients 103,104, and 105.
It should be noted that the number of the data to be processed is plural, and the number of the processed data a, B, and C is also plural.
Optionally, the binary watermark is recorded with an identification code of the client, an identification code of the data provider, and time information for generating the binary watermark. For example, the binary watermark embedded in the data a to be processed is recorded with 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 6 months and 25 days in 2018. The binary watermark embedded in the data B to be processed 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 6 months and 1 day in 2018.
Referring to fig. 2, fig. 2 is another schematic diagram of a watermarking system according to an embodiment of the present invention. According to fig. 2, assuming that the client 103 leaks the to-be-processed data a (may leak part or all of the to-be-processed data a), the data provider 101 may send the leaked to-be-processed data a to the watermark server 102, and the watermark server 102 extracts the binary watermark from the leaked to-be-processed data a, so that the identification code of the client 103, the identification code of the data provider 101, and the time information for generating the binary watermark may be obtained according to the binary watermark in 2018, 6 months and 25 days, thereby obtaining the relevant information of the leaked to-be-processed data a.
The watermark server 102 can transmit the identification code of the client 103, the identification code of the data provider 101, and the time information at which the binary watermark is generated to the data provider 101, so that the data provider 101 can know when the leaked data a to be processed is leaked from which client.
In other examples, the leaked pending data a may also be sent to the watermark server 102 by the client 103.
It should be noted that the embodiments of the present invention are applicable to large data processing, for example, the number of the data to be processed may be more than 1000, and even more, may involve tens of thousands to hundreds of millions of data to be processed, but for clarity, 32 data to be processed will be taken as an example.
A data processing method according to an embodiment of the present invention is described below with reference to fig. 3, where fig. 3 is a flowchart of a data processing method according to an embodiment of the present invention, the data processing method being used for embedding a binary watermark into data to be processed.
It should be noted that 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, which are sent by the data provider 101, converts the M pieces of data to be processed into M pieces of binary data, and assigns key data to the identification code of the client 103.
For example, for convenience of explanation, assume that M is 32, and 32 decimal database tuples are respectively used for the data to be processed:
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
for convenience of explanation, the following table is shown, specifically as table 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
TABLE 2
It is noted that the embodiment of the present invention is mainly applied to big data processing, and therefore M may be a positive integer greater than 1000 in practical applications. Moreover, the embodiment of the present invention does not concern the arrangement order of the 32 database tuples, for example, in some other examples, the 32 database tuples may also be represented as:
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
also, in the present embodiment, the database tuple is decimal numeric data, but in other examples, the database tuple may be character data, such as "Xiaoming" shown in table 1.2 above, and when the database tuple is character data, the watermark server 101 may convert the character data into numeric data first, for example, the character data may be converted into numeric data by using American Standard Code for Information Interchange (ASCII) coding.
Further, the watermark server 102 converts the 32 database tuples shown in table 2 into 32 binary data as follows:
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
TABLE 3
Where the number of bits of each binary data is P bits, P may be, for example, 8 according to table 3.
Further, the key data is assigned to the identification code of the client 103 as follows:
8151014275E426C72EE7D44267EF11590DCE0089E19863BA8CC832187B156A72
the key data and the identification code of the client have a one-to-one correspondence, different clients correspond to different key data, and the watermark server 102 records the correspondence between the key data and the identification code of the client 103.
It is noted that for text files and picture files, this step can be omitted in case of a binary data format itself, and in case of other binary formats itself, such as a decimal format, it is necessary to convert it into a binary format.
Step S102: generating a binary watermark and determining the embedded bit of the binary watermark. Wherein, the embedded bit is the L-th bit in the P bit.
Optionally, in this step, the watermark server 102 generates a binary watermark in which the identification code of the client 103, the identification code of the data provider 101, and the time information 2018 for generating the binary watermark, 6, month and 25 are recorded, according to the received identification code of the client 103, the identification code of the data provider 101 recorded in advance, and the current time 2018, 6, month and 25.
As described above, the binary watermark has a predetermined data length and can be split into a plurality of subsets, each subset representing a different attribute. In the embodiment of the present invention, the binary watermark includes at least an identification code of the client, an identification code of the data provider, and time information for generating the binary watermark identifying three subsets of three different attributes.
It is noted that in other examples, the identification code of the data provider may also be sent to the watermark server by the data provider.
For simplicity of explanation, in the embodiment of the present invention, the binary watermark is assumed to be 01, and it should be understood that in practical applications, the length of the binary watermark may be tens to hundreds of bits.
Further, in this step, the watermark server 102 may determine the embedded bits of the binary watermark on the single binary data by:
and performing Hash operation on the key data to obtain a first Hash code, performing remainder operation on the first Hash code and the bits of single binary data, and taking an operation result as an embedded bit.
For example, the embedded bits may be obtained according to the following equation:
K=Sha256(userKey)%dataLen
as can be seen from table 3, dataLen ═ 8, and Sha256() is a hash algorithm with an acquirable hash value size of 256 bits of data length.
% is a remainder operator, P is a value between 0 and 7, and in this step, assuming that K is 4, L is K +1 is 5, that is, the 5 th bit from left to right of the binary data is taken as an embedded bit.
It should be noted that in some other examples, the 5 th bit from right to left of the binary data may also be taken as the embedded bit, which is not limited in the embodiment of the present invention.
In the embodiment of the invention, the embedded position is determined by the key data, so that even if the data to be processed is leaked out, a third party obtaining the leaked data to be processed can not know the embedded position of the binary watermark in the data to be processed on the premise that the third party can not know the key data, thereby increasing the difficulty of the third party in breaking the embedded position and ensuring the data safety.
Step S103: the M binary data are divided into N groups. The N group numbers may respectively correspond to N binary bits of the binary watermark, that is, the 1 st to N bits of the binary watermark are respectively embedded into the L-th bit of each of the binary data in the 1 st to N groups, and the L-th bits of the binary data in the same group correspond to the same bit of the binary watermark.
In this step, the watermark server 102 may perform hash operation on the key data and each binary data to obtain M second hash codes, perform remainder operation on the bit N of the binary watermark and each second hash code, divide the M binary data into N groups according to the operation result, where each binary data corresponds to one group number, and divide the M binary data into N groups of binary data according to the N group numbers, so that the N group numbers correspond to the N binary bits of the binary watermark, respectively.
Wherein, the grouping number can be a positive integer from 0 to N-1 through the complementation operation.
Also, it should be noted herein that, according to the uniform characteristic of the hash algorithm, in each set of binary data, the ratio of binary numbers 1 and 0 at the same position (including the T-th bit) approaches 1:1, wherein, the closer M approaches infinity, the closer the ratio of binary numbers 1 and 0 at the same position in each set of binary data approaches 1.
For example, 32 binary data shown in table 2 may be respectively hashed with the key data 8151014275E426C72EE7D44267EF11590DCE0089E19863BA8CC832187B156a72, and 32 second hash codes as integers are obtained as follows:
Figure BDA0002311184550000091
TABLE 4
Further, the second hash code in table 3 is subjected to a modulo operation with the bit number 2 of the binary watermark, so as to generate 2 packet numbers, where the packet numbers are specifically 0 and 1.
The packet numbers of the binary watermark are distributed as follows:
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
TABLE 5
The packet number of a row and a column shown in table 5 is generated by performing a modulo operation on the second hash code of the same row and the same column in table 4 and the bit number 2 of the binary watermark.
In this embodiment, the watermark server 102 associates the packet number 0 with the first bit (0) from left to right of the binary watermark 01, and associates the packet number 1 with the second bit (1) from left to right of the binary watermark 01.
It is noted that in some other examples, if the number of bits of the binary watermark is 3 and the binary watermark is 010, the packet number is 0, 1, 2, where packet number 0 corresponds to the first bit (0) from left to right of the binary watermark 010, packet number 1 corresponds to the second bit (1) from left to right of the binary watermark 010, and packet number 2 corresponds to the third bit (0) from left to right of the binary watermark 010.
Moreover, the corresponding manner may be adjusted according to actual needs, for example, in some other examples, the group number 0 may also correspond to the first bit (0) from right to left of the binary watermark, the group number 1 may also correspond to the second bit (1) from right to left of the binary watermark, and the group number 2 may also correspond to the third bit (0) from right to left of the binary watermark, which is agreed by the watermark server 102 itself, which is not limited in the embodiment of the present invention.
Further, according to the packet number distribution and the binary number corresponding to the packet number shown in table 5, the correspondence between the binary data and the packet number can be obtained as follows:
Figure BDA0002311184550000101
TABLE 6
According to table 6, the watermark server 102 may divide the 32 binary data into 2 groups of binary data according to 2 packet numbers (0 and 1):
Figure BDA0002311184550000102
TABLE 7
Step S104: and selecting the 1 st group of binary data in the N groups of binary data, wherein the 1 st group of binary data corresponds to the 1 st bit of the binary watermark.
For example, the watermark server 102 may select the 1 st set of binary data corresponding to the packet number 0 in table 7:
Figure BDA0002311184550000103
step S105: and counting the number A and the number U of inconsistency of the binary value of the binary data in the embedded bit and the value of the binary watermark corresponding to the 1 st group of binary data.
The watermark server 102 knows that the embedded bit P is 5 and the packet number 0 corresponds to the 1 st bit from left to right of the binary watermark 01 (see table 7), and the binary value on the binary bit is 0, then the number a of the binary values of the 5 th bit from left to right of each binary data in the set of binary data is counted as 8 and the number U of the binary values of the binary data not consistent with 0 is counted as 8.
Figure BDA0002311184550000104
It is noted that due to the data uniformity characteristic of the hash operation, the ratio of a to U approaches 1 infinitely as the value of M is larger.
Step S106: and screening out partial binary data in the group, wherein the value on the T-th bit of the binary data screened out in the X-th group is not consistent with the value on the X-th bit of the binary watermark.
For example, the value of the 5 th bit of the part of the binary data to be screened out in the 1 st group does not match the value of the 1 st bit of the binary watermark.
Specifically, the 5 th bit value in each binary data in the 1 st group may be compared with the 1 st bit value 0 of the binary watermark to obtain a number a with a consistent value and a number U with a inconsistent value, and E binary data in the 1 st group may be screened out, where E satisfies the following formula: a > U-E.
Optionally, E takes the minimum value that satisfies the formula a > U-E, or E further satisfies the following formula: A/(U-E) ≧ T, wherein T is a preset threshold greater than 1.
Wherein T is pre-recorded in the watermark server 102, and represents a ratio of a number of coincidences and a number of discordances between a binary value of an embedded bit and a binary value on a binary bit of the binary watermark corresponding to the packet number in each set of binary data acceptable to the watermark server 102, and optionally, T is 1.2.
Then E > 2 can be known according to A/(U-E) ≧ T. In the 1 st group of binary data
Figure BDA0002311184550000111
In this group of binary data, any two binary data in 0000100000001001000010100000101100001111000110000001101000011100, for example 00001010 and 00011010, may be screened out, so that in this group, the number 8 of binary data in which the binary value of the embedded bit coincides with the value on the 1 st binary bit of the binary watermark corresponding to the 1 st group is greater than the number 6 of non-coincidence, and the ratio of the two is greater than or equal to T1.2.
It should be noted that the value of T is set by the watermark server 102, where T ═ 1.2 represents the minimum value of the ratio of a to U' that can be accepted by the watermark server 102, for example, the watermark server 102 sets T ═ 1.2, which indicates that the ratio of a to U in each set of binary data is at least 1.2 after the watermark server 102 wishes to embed a watermark, and assuming that the number of the 1 st set of binary data after screening is 220, a ═ 120, U ═ 100, where E ═ 20, and 20 binary data are screened out in U.
Optionally, in some other examples, the value at the T-th bit of the binary data screened out in the X-th group is identical to the value at the X-th bit of the binary watermark, the value at the 5-th bit of each binary data in the 1-th group may be compared with the value 0 at the 1-th bit of the binary watermark to obtain a number a of identical values and a number U of inconsistent values, and E binary data in the 1-th group may be screened out, where E satisfies the following formula: u > A-E. It should be understood that in this alternative example, in the subsequent watermark extraction step, the binary watermark embedded in the data to be processed needs to be further processed by negation to obtain the correct binary watermark.
Step S107: and judging whether the N groups of binary data are traversed or not, if so, executing step S109, and if not, executing step S108.
For example, in this step, there is another group 2 binary data corresponding to group number 1, so step S108 is executed.
Step S108: another set of binary data among the N sets of binary data is selected, and steps S105 to S107 are repeatedly performed with respect to the set of binary data.
For example, the 2 nd group of binary data corresponding to the grouping number 1 in table 7 may be selected:
Figure BDA0002311184550000121
and jumping to step S105:
in step S105: the group number 1 corresponds to the second bit binary bit from left to right of the binary watermark, the binary value on the binary bit is 1, and the number a of the binary values of the 5 th bit from left to right in each binary data in the group of binary data, which are consistent with 0, is counted as 8, and the number U of the binary values, which are inconsistent with 8, is counted as 8.
In step S106: part of the binary data in the 2 nd group is screened out, and the value on the 5 th bit of the binary data screened out in the 2 nd group is not consistent with the value (1) on the 2 nd bit of the binary watermark.
For example, similarly, if T ≧ 1.2, then E > -2, then E ≧ 2.
Thus, at least any two binary data in 0000100000001001000010100000101100001111000110000001101000011100 can be filtered out. For example, 00000010 and 00010111 may be screened out, so that in the group, the number 8 of binary data in the embedded bit that is consistent with the value of the corresponding binary watermark in the group is greater than the number 6 of inconsistencies, and the ratio of the two is greater than or equal to T ═ 1.2.
In step S107: it is judged that the binary data corresponding to all the packet numbers have been processed, and thus step S109 is executed.
Step S109: and sending the data to be processed corresponding to the binary data which is not screened out to the client.
Specifically, J pieces of to-be-processed data corresponding to the J pieces of binary data may be retained, and H pieces of to-be-processed data may be sent to the client 103.
Where H is M-J, J is the total number of binary data to be sifted out in the N groups, i.e., J is Σ Ei, where i is a positive integer from 0 to N-1, and Ei represents the number of binary data to be sifted out in the group of binary data corresponding to the group number i.
In this embodiment, 2 binary data need to be filtered out from the group of binary data corresponding to the packet number 0, and 2 binary data need to be filtered out from the group of binary data corresponding to the packet number 1, J is 2+ 2-4, so H-M-J-32-4-28, and the watermark server 102 sends 28 data to be processed to the client 103.
Wherein, 28 data to be processed are as follows:
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
TABLE 8
Namely: 134567891112131415161718192021222425272829303132.
it should be noted that the number of iterations of steps S105 to S107 is determined by the number of bits of the binary watermark, for example, the number of bits of the binary watermark 01 is 2, so the number of iterations of steps S105 to S107 is 2, i.e., the loop executes steps S105 to S107 for 2 times.
In the embodiment of the present invention, among 32 pieces of data to be processed, 4 pieces of data to be processed 2, 10, 23, and 26 are reserved, and the 4 pieces of data to be processed are not sent to the client, so that binary watermark 01 is embedded into an embedded bit of one packet of 28 pieces of data to be processed from first left to right bit 0, where in a plurality of pieces of binary data of the packet, the number of embedded bits is 0 is greater than the number of embedded bits is 1, and binary watermark 01 is embedded into an embedded bit of another packet of 28 pieces of data to be processed from second left to right bit 1, where in a plurality of pieces of binary data of the packet, the number of embedded bits is 1 is greater than the number of embedded bits is 0.
Because the embodiment of the invention is mainly applied to large data processing, the embedding of the binary watermark is completed by properly reserving a small amount of data to be processed without sending the data to the client under the condition that the amount of the data to be processed is large, and the embodiment of the invention is completely acceptable for the client with low requirement on the integrity of the data.
Therefore, the embodiment of the present invention can ensure the accuracy of the data by keeping a small amount of data to be processed (e.g. 4 data in the above example) not to be sent to the client, without modifying the value of any data to be processed in the 32 data to be processed. In other examples, the small amount of 4 pieces of data to be processed may also be sent to the client, and it is only necessary to ensure that the small amount of data to be processed is not together with the original 28 pieces of data to be processed in the client (for example, for the database tuples, all the data are set in table 1.1 described above).
Further, the embodiment of the present invention adjusts the number of to-be-processed data to be retained by setting the threshold T, and may adjust the balance between the fault tolerance and the data integrity, that is, the higher the fault tolerance (the larger the corresponding T), the lower the data integrity, the lower the fault tolerance (the smaller the corresponding T), the higher the data integrity, and the higher the fault tolerance and the data integrity are in an inverse relationship.
To further clarify the data processing method shown in fig. 3, please refer to fig. 4, fig. 4 is a schematic diagram of data conversion of the data processing method according to the embodiment of the present invention, and referring to fig. 4, it can be seen that each binary value in an N-bit binary watermark is mapped into N packets of binary data, and each packet is forced to make a > U by sifting out Y binary data, and thereby serves as a basis for subsequent extraction of the binary watermark.
The data processing method according to the embodiment of the present invention is further described with reference to fig. 5, where fig. 5 is another flowchart of the data processing method according to the embodiment of the present invention, and it should be noted that the data processing method shown in fig. 5 is also applied to the watermark server 102, and 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.
In some examples, generally speaking, the data provider 101 is more concerned about data leakage, when data leakage occurs in the client 101, the data provider 101 is notified, and after acquiring Z leaked data to be processed, the data provider 101 sends the identification code of the client 101 and the Z leaked data to be processed to the watermark server 102.
In some other examples, the identification code of the client 101 and the leaked Z pieces of data to be processed may be sent to the watermark server 102 by the client 103.
And Z may be less than or equal to H, i.e. Z data to be processed may be a subset of H data to be processed, or H data to be processed may be a subset of Z data to be processed, or Z data to be processed may be H data to be processed.
When Z is equal to H, it indicates that the client 101 reveals all the data to be processed that the watermark server 102 sends to the client 101. When Z is smaller than H, it indicates that the client 101 reveals the to-be-processed data that the watermark server 102 sends to the client 101.
For example, it is assumed that Z is H, i.e. the number of leaked to-be-processed data Z is 28, and in conjunction with the step 107, the to-be-processed data received by the watermark server 102 is specifically:
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
step S111: and converting the Z data to be processed into Z binary data, wherein the bit number of each binary data is P bits.
For example, the watermark server 102 converts 28 pieces of data to be processed into 28 pieces of binary data as follows:
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
TABLE 9
Step S112: the embedded bits of the binary watermark are determined. Wherein, the embedded bit is the L-th bit in the P bit.
Similar to step S102, in this step, the watermark server 102 may determine the embedded bit by:
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 the identification code query step 101 of the client 103:
8151014275E426C72EE7D44267EF11590DCE0089E19863BA8CC832187B156A72
and the watermark server 102 determines that the embedded bit of the binary watermark on the single binary data performs hash operation on the key data to obtain a first hash code, performs remainder operation on the first hash code and the bit number of the single binary data, and takes the operation result as the embedded bit.
For example, the embedded bits may be obtained according to the following equation:
K=Sha256(userKey)%dataLen
the userKey is key data, dataLen is the number of bits of a single binary data, dataLen is 8, and the Sha256() is a hash algorithm with an acquirable hash value size of 256 bits.
% is a remainder operator, K is a value between 0 and 7, and since the number of bits of the key data and the single binary data are the same as in step S102, in this step, L + K +1 is 5, that is, a 5-th-bit binary number from left to right of the binary data is taken as an embedded bit.
Step S113: the Z binary data are divided into N groups, wherein the X-th group in the N groups corresponds to the X-th bit of the binary watermark.
In this step, the watermark server 102 may perform hash operation on the key data and each binary data to obtain Z second hash codes, perform remainder operation on the bit N of the binary watermark and each second hash code, and divide the M binary data into N groups according to an operation result, where each binary data corresponds to one group number.
Wherein the packet number may be a positive integer from 0 to N-1.
For example, 28 binary data shown in table 9 may be respectively subjected to the hash shaping operation with the key data 8151014275E426C72EE7D44267EF11590DCE0089E19863BA8CC832187B156a72, and 28 second hash codes are obtained as follows:
1223695852 253929019 1746935415 193550432 1446976207 779817938 1931912020
1099438398 1207939288 1477995319 661458945 126747649 1705366988 1620333844
1302519284 227402296 942249497 961005803 1229518266 899000724 2030855814
808342007 1933423303 1354002580 113372227 233049081 296769763 906413405
watch 10
Further, the second hash code in table 10 is subjected to a modulo operation with the bit number 2 of the binary watermark, so as to generate 2 packet numbers, where the packet numbers are specifically 0 and 1.
The packet numbers of the binary watermark are distributed as follows:
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
TABLE 11
Further, according to the packet number distribution and the binary data corresponding to the packet number shown in table 5, the correspondence between the binary data and the packet number can be obtained as follows:
Figure BDA0002311184550000151
TABLE 12
According to table 12, the 28 binary data can be divided into 2 groups of binary data using 2 packet numbers 0 and 1, respectively:
Figure BDA0002311184550000152
watch 13
Step S114: the 1 st group of binary data among the N groups of binary data is selected.
For example, the 1 st set of binary data corresponding to packet number 0 in table 13 may be selected:
Figure BDA0002311184550000153
step S115: the binary values of the binary data in the 1 st group in the embedded bit (i.e., the L-th bit) are counted as the number Q of the first value and as the number W of the second value.
For example, in the present embodiment, the first value is 1, and the second value is 0.
In yet other examples, the first value may be 0 and the second value may be 1.
Specifically, the method comprises the following steps: in group 1:
Figure BDA0002311184550000154
in this embodiment, the watermark server 102 counts the number Q of binary data whose binary value is 1 in the 5 th bit from left to right to be 6, and counts the number W of binary data whose binary value is 0 in the 5 th bit from left to right to be 8.
Step S116: the magnitude relation between Q and W is determined, and if Q > W, step S117 is executed, and if Q < W, step S118 is executed.
For example, in this step, if Q is 6, W is 8, and Q < W, step S118 is executed.
In some examples, if the binary watermark is embedded in step S106, the number E of binary data to be screened per group is obtained by a/(U-E) ≧ T, and in order to balance the error tolerance and the data integrity, correspondingly, in this step, the size relationship between Q and W may be determined by a threshold M, which is (T +1)/2 in some examples, and correspondingly, in this step, the watermark server 102 performs step S117 if it is determined that the relationship between Q and W satisfies Q/W > (T +1)/2, and performs step S118 if it is determined that the relationship between Q and W satisfies W/Q > (T + 1)/2.
Since T >1, T > (T +1)/2>1, by setting the threshold T to be small as M as appropriate, for example, changing T to (T +1)/2, data can be partially leaked or partially tampered, and fault tolerance can be achieved. Specifically, in the case where part of the data is leaked or the leaked data is partially destroyed, without loss of generality, it is assumed that, in embedding a set of binary data into a binary watermark, the number of binary values on the embedded bits that match the binary values on the binary bits of the binary watermark corresponding to the located packet number is 120, and the number of non-matching bits is 100, that is, a is 120, and U is 100.
In some examples, assuming that part of the pending data is leaked, in this step, it is assumed that W is 115(5 pending data are lost), Q is 99(1 pending data are lost), and T is 1.2, M is (T +1)/2 is 1.1, when W/Q is 115/99 is 1.16>1.1, the watermark server 102 still executes step S118, thereby ensuring that a correct binary watermark can be obtained.
In other examples, assuming that part of the data to be processed is tampered, if 2 pieces of data are tampered, in this step, assuming that W is 118 and Q is 102, that is, two pieces of data to be processed originally belonging to W are tampered as belonging to Q, and at this time, W/Q118/102 is 1.15>1.1, the watermark server 102 still executes step S118, thereby ensuring that a correct binary watermark can be obtained.
In summary, by setting the threshold value to be small appropriately, a certain degree of fault tolerance can be achieved.
It should be noted that, in the embodiment of the present invention, M may also be (T + V-1)/V, where V is a positive integer, and when V is larger, M is smaller, but M is always larger than 1, so that when T >1 and V >1, a fault tolerance function may be implemented.
In other examples, the threshold may be set to T, i.e., V ═ 1, W ═ 120, Q ≧ 100, W/Q ═ 120/100 ≧ 1.2 ≧ T, regardless of whether the leaked data is partially leaked or the leaked data is partially corrupted, and the watermark server 102 still executes step S118. However, if partial leakage of the data to be processed occurs, W/Q is 115/99-1.16 < T, and the threshold T cannot guarantee that the correct binary watermark is obtained. If partial data to be processed is tampered, W/Q is 115/99-1.15 < T, and the threshold T cannot guarantee that the correct binary watermark is obtained.
Therefore, for M ═ T + V-1)/V, when V ═ 1, the fault-tolerant function cannot be realized, and when V >1, the fault-tolerant function can be realized.
Step S118: it is determined that the xth value of the binary watermark corresponding to the xth group is the second value, and step S119 is performed.
For example, in this step, 1 st set of binary numbers
Figure BDA0002311184550000161
The value at the 1 st bit of the corresponding binary watermark of the group is confirmed to be the second value 0.
Step S119: and judging whether the N groups of binary data are traversed or not, if so, executing step S121, and if not, executing step S120.
For example, in this step, the second set of binary data is not processed, so step S120 is performed.
Step S120: another set of binary data among the N sets of binary data is selected, and steps S115 to S119 are repeatedly performed with respect to the set of binary data.
For example, table 13 may be selected in which set 2 binary data is selected:
Figure BDA0002311184550000171
and jumps to step S115:
in step S115: the binary values of the binary data in the group at the embedded bits are counted as the number Q of the first value and the number W of the second value, and the process goes to step S116.
For example, the first value is 1 and the second value is 0.
Specifically, the method comprises the following steps: in the 2 nd group binary data:
Figure BDA0002311184550000172
in this case, the watermark server 102 counts the number Q of binary values of 1 in the 5 th bit from left to right of the binary data as the embedding bit, and counts the number W of binary values of 0 in the 5 th bit from left to right of the binary data as the embedding bit, as 6.
Step S116: the magnitude relation between Q and W is determined, and if Q > W, step S117 is executed, and if Q < W, step S118 is executed.
For example, in this step, if Q is 8, W is 6, and Q > W, step S117 is performed.
It should be noted that, in some examples, Q and M may also be compared according to the threshold T or the threshold M disclosed in the previous step S116, which has been disclosed above and is not described herein again.
Step S117: it is determined that the binary value at the xth bit of the binary watermark corresponding to the xth group is the first value, and step S119 is performed.
For example, in this step, the binary numbers are grouped in the 2 nd group
Figure BDA0002311184550000173
It is confirmed that the binary value at the 2 nd bit of the corresponding binary watermark of the group is a first value of 1.
Step S119: and judging whether the N groups of binary data are traversed or not, if so, executing step S121, and if not, executing step S120.
For example, in this step, the watermark server 102 determines that all 2 sets of binary data have been processed, and jumps to step S121.
Step S121: a binary watermark is obtained.
For example, since the watermark server 102 confirms that the binary value of the binary watermark on the first bit from left to right is 0 in the first iteration, and confirms that the binary value of the binary watermark on the second bit from left to right is 1 in the second iteration, the binary watermark should be determined to be 01.
See in particular the following table:
Figure BDA0002311184550000181
TABLE 14
Therefore, the embodiment of the invention can embed the binary watermark into the data to be processed by reserving a small part of the data to be processed and acquire the binary watermark from the leaked data to be processed under the condition of not modifying the numerical value of the data to be processed. Further, a certain degree of fault tolerance can be achieved by setting the threshold M.
For further clarity of explanation of the data processing method shown in fig. 5, please refer to fig. 6, fig. 6 is a schematic data conversion diagram of the data processing method according to an embodiment of the present invention, and it can be known from fig. 6 that each bit binary value in the N-bit binary advance watermark is obtained from N packets of binary data according to the relationship between Q and W, respectively, and thus has good anti-attack capability.
The invention is implemented to embed the watermark by a zero watermark mode, does not need to introduce extra characteristic data, is based on odd-even random distribution in the mathematical statistic meaning, has simple principle and convenient application, can be simultaneously applied to all data types such as numerical data, character data and the like theoretically, has uniform embedding and extracting methods, breaks through the limitation of the traditional watermark algorithm, introduces a repairing mechanism in the watermark recovery process under the condition that the leakage data is a subset of the original data or part of the leakage data is distorted, obtains a series of binary watermarks which are most correct and has good attack resistance.
Referring to fig. 7, fig. 7 is a schematic diagram of an apparatus structure of a data processing apparatus according to an embodiment of the present invention, the data processing apparatus 20 is disposed in a watermark server 102, and is used for embedding a binary watermark into data to be processed, and the apparatus includes:
a receiving module 201, configured to receive M pieces of to-be-processed data sent by a data provider;
watermark embedding module 202 for
Converting M data to be processed into M binary data, wherein the bit number of each binary data is P bits;
generating a binary watermark, wherein the bit number of the binary watermark is N bits;
determining an embedded bit of the binary watermark, wherein the embedded bit is the L-th bit in the P bits, and T is more than or equal to 1 and less than or equal to P;
dividing M binary data into N groups, respectively embedding 1 st to N bits of the binary watermark into the L-th bit of each binary data in the 1 st to N groups, wherein the L-th bits of the binary data of the same group correspond to the same bit of the binary watermark;
screening out partial binary data in the X-th group of binary data, wherein the value on the T-th bit of the screened out binary data is inconsistent with the value on the X-th bit of the binary watermark, X is a variable, and X is more than or equal to 1 and less than or equal to N
A sending module 203, configured to send to-be-processed data corresponding to the binary data that is not sieved, to the client.
Optionally, the receiving module 201 is configured to receive an identification code of a client and M pieces of to-be-processed data sent by a data provider; the watermark embedding module 202 is configured to allocate key data to the identification code of the client, and record a corresponding relationship between the identification code of the client and the key data.
Optionally, watermark embedding module 202 is configured to:
performing hash operation according to the key data to obtain a first hash code;
and carrying out complementation operation on the first hash code and the bit number P of the binary data, and taking an operation result as an embedded bit.
Optionally, the binary watermark is recorded with an identification code of the client, an identification code of the data provider, and time information for generating the binary watermark.
Optionally, watermark embedding module 202 is configured to:
performing hash operation on the M binary data and the key data to acquire M second hash codes;
and performing complementation operation on the M second hash codes and the bit number N of the binary watermark to generate N packet numbers, and dividing the M binary data into N groups of binary data according to the N packet numbers.
Optionally, watermark embedding module 202 is configured to:
performing hash operation on the key data and each binary data respectively to obtain M second hash codes;
and performing remainder operation on the digit N of the binary watermark and each second hash code respectively, and dividing M binary data into N groups according to the operation result, wherein each binary data corresponds to a group number.
Optionally, the watermark embedding module 202 is configured to compare the value of the lth bit in each binary data in the xth group with the value of the xth bit of the binary watermark, to obtain a number a with a consistent value and a number U with a inconsistent value;
and watermark embedding module 202 is configured to screen out E binary data in the X-th group, where E satisfies the following formula: a > U-E. Optionally, E is the minimum value satisfying the formula A > U-E; alternatively, E further satisfies the following equation: A/(U-E) ≧ T, where T is a preset threshold greater than 1
Referring to fig. 8, fig. 8 is a schematic diagram of an apparatus structure of a data processing apparatus according to an embodiment of the present invention, the data processing apparatus is disposed in a watermark server 102, and is configured to obtain a binary watermark from leaked data to be processed, and the apparatus structure includes:
a receiving module 301, configured to receive Z pieces of data to be processed;
a watermark extraction module 302 configured to:
converting Z data to be processed into Z binary data, wherein the bit number of each binary data is P bits;
determining an embedding position of the binary watermark, wherein the embedding position is the L-th position in the P positions, and T is more than or equal to 1 and less than or equal to P;
dividing Z binary data into N groups, wherein N is the digit of the binary watermark;
counting the number Q of the embedded bits of the binary data in the X group as a first number and the number W of a second number, when Q is larger than W, determining that the number of the binary watermark embedded in the X group is the first number, when Q is smaller than W, determining that the binary value of the binary watermark embedded in the X group is the second number, X is a variable, and X is larger than or equal to 1 and smaller than or equal to N.
Optionally, the receiving module 301 is configured to receive an identification code of the client and Z pieces of data to be processed;
the watermark extraction module 302 is configured to search 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.
Optionally, the watermark extraction module 302 is configured to: and carrying out Hash operation according to the key data to obtain a first Hash code, carrying out remainder operation on the first Hash code and the bit number P of the binary data, and taking an operation result as an embedded bit.
Optionally, the binary watermark is recorded with an identification code of the client, an identification code of the data provider, and time information for generating the binary watermark, and the watermark extraction module 302 is configured to: the identification code of the client, the identification code of the data provider, and the time information for generating the binary watermark are extracted from the binary watermark.
Optionally, the watermark extracting module 302 is configured to perform hash operation on the key data and each binary data, respectively, to obtain Z second hash codes; and performing remainder operation on the digit N of the binary watermark and each second hash code respectively, and dividing M binary data into N groups according to the operation result, wherein each binary data corresponds to a group number.
Optionally, the watermark extraction module 302 is configured to:
in group X:
when Q/W > (T + V-1)/V is satisfied, determining that the value of the binary watermark embedded into the Xth group is a first value, wherein T is a threshold value, T is a positive number greater than 1 or equal to 1, and V is a positive integer;
and when W/Q > (T + V-1)/V is satisfied, determining that the value of the binary watermark embedded in the Xth group is a second value.
Alternatively, T ═ 1 and V ═ 1.
Alternatively, T >1, V >1.
Referring to fig. 9, fig. 9 is a schematic device structure diagram of a computer apparatus according to an embodiment of the present invention, where the computer 40 of fig. 9 may be the watermark server 102 disclosed above, as shown in fig. 9, the computer 40 includes a processor 401 and a memory 403, the processor 401 and the memory 403 are respectively connected to a bus 402, the memory 403 stores a program, and the processor 401 executes the program to execute the method disclosed in fig. 3 and the corresponding description thereof.
Referring to fig. 10, fig. 10 is a schematic device structure diagram of a computer apparatus according to an embodiment of the present invention, where the computer 50 of fig. 10 may be the watermark server 102 disclosed above, as shown in fig. 10, the computer apparatus 50 includes a processor 501 and a memory 503, the processor 501 and the memory 503 are respectively connected to a bus 502, the memory 503 stores a program, and the processor 501 runs the program to execute the method disclosed in fig. 5 and the corresponding description thereof.
It should be noted that any of the above-described device embodiments are merely schematic, where the units described as separate parts may or may not be physically separate, and the parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the solution of the present embodiment. In addition, in the drawings of the embodiment of the apparatus provided by the present invention, the connection relationship between the modules indicates that there is a communication connection between them, and may be specifically implemented as one or more communication buses or signal lines. One of ordinary skill in the art can understand and implement it without inventive effort.
Through the above description of the embodiments, those skilled in the art will clearly understand that the present invention may be implemented by software plus necessary general hardware, and may also be implemented by special hardware including special integrated circuits, special CPUs, special memories, special components and the like. Generally, functions performed by computer programs can be easily implemented by corresponding hardware, and specific hardware structures for implementing the same functions may be various, such as analog circuits, digital circuits, or dedicated circuits. However, the implementation of a software program is a more preferable embodiment for the present invention. Based on such understanding, the technical solutions of the present invention may be embodied in the form of a software product, which is stored in a readable storage medium, such as a floppy disk, a usb disk, a removable hard disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a magnetic disk or an optical disk of a computer, and includes commands for enabling a computer device (which may be a personal computer, a server, or a network device) to execute the methods according to the embodiments of the present invention.
It is clear to those skilled in the art that the specific working process of the above-described system, apparatus or unit may refer to the corresponding process in the foregoing method embodiments, and is not described herein again.
The above description is only for the specific embodiments of the present invention, but the scope of the present invention is not limited thereto, and any person skilled in the art can easily think of the changes or substitutions within the technical scope of the present invention, and shall cover the scope of the present invention. Therefore, the protection scope of the present invention shall be subject to the protection scope of the claims.

Claims (24)

1. A data processing method for embedding a binary watermark in data to be processed, the method comprising:
receiving M data to be processed sent by a data provider;
converting the M data to be processed into M binary data, wherein the bit number of each binary data is P bits;
generating the binary watermark, wherein the binary watermark has N bits;
determining an embedded bit of the binary watermark, wherein the embedded bit is the L-th bit in the P bits;
dividing the M binary data into N groups, wherein the 1 st to N bits of the binary watermark are respectively embedded into the L-th bit of each binary data in the 1 st to N groups, and the L-th bits of the binary data in the same group correspond to the same bit of the binary watermark;
comparing the value of the L-th bit in each binary data in the X-th group with the value of the X-th bit of the binary watermark to obtain the number A with consistent values and the number U with inconsistent values, and screening out E binary data in the X-th group, wherein E meets the following formula: a is more than U-E or A/(U-E) is more than or equal to T, the T represents the Tth bit of the screened binary data, the value on the Tth bit of the screened binary data is inconsistent with the value on the Xth bit of the binary watermark, X is a variable, X is more than or equal to 1 and less than or equal to N, T is more than or equal to 1 and less than or equal to P, and T is a preset threshold value which is more than 1;
and sending the data to be processed corresponding to the binary data which is not screened out to the client.
2. The data processing method of claim 1,
the receiving of the M to-be-processed data sent by the data provider includes:
receiving the identification code of the client and M pieces of data to be processed sent by a data provider;
the method further comprises the following steps:
and distributing key data aiming at the identification code of the client, and recording the corresponding relation between the identification code of the client and the key data.
3. The data processing method of claim 2, wherein the determining the embedded bits of the binary watermark comprises:
performing hash operation according to the key data to obtain a first hash code;
and carrying out complementation operation on the first hash code and the bit number P of the binary data, and taking an operation result as the embedded bit.
4. The data processing method according to claim 2 or 3, wherein the binary watermark is recorded with an identification code of the client, an identification code of the data provider, and time information for generating the binary watermark.
5. The data processing method of claim 2 or 3, wherein said dividing said M binary data into N groups comprises:
performing hash operation on the key data and each binary data respectively to obtain M second hash codes;
and performing remainder operation on the digit N of the binary watermark and each second hash code respectively, and dividing the M binary data into N groups according to the operation result, wherein each binary data corresponds to a group number.
6. A data processing method for obtaining a binary watermark from data to be processed, the method comprising:
receiving Z data to be processed;
converting the Z data to be processed into Z binary data, wherein the bit number of each binary data is P bits;
determining an embedded bit of the binary watermark, wherein the embedded bit is the L-th bit in the P bits;
dividing the Z binary data into N groups, wherein N is the bit number of the binary watermark;
counting the number Q of the binary data in the X group in the embedded bit as a first number and the number W of the binary data in the X group as a second number, and when Q/W > (T + V-1)/V is satisfied, determining that the number of the X bit of the binary watermark embedded in the X group is the first number, V is a positive integer, T is more than or equal to 1 and less than or equal to P, wherein T is a threshold value, and T is a positive number more than or equal to 1; and when W/Q > (T + V-1)/V is satisfied, determining that the value of the Xth bit of the binary watermark embedded into the Xth group is the second value, wherein X is a variable and is more than or equal to 1 and less than or equal to N.
7. The data processing method of claim 6,
the receiving Z data to be processed includes:
receiving an identification code and Z pieces of data to be processed of a client;
the method further comprises the following steps:
and searching the key data corresponding to the identification code of the client from the recorded corresponding relation between the identification code of the client and the key data.
8. The data processing method of claim 7, wherein the determining the embedded bits of the binary watermark comprises:
performing hash operation according to the key data to obtain a first hash code;
and carrying out complementation operation on the first hash code and the bit number P of the binary data, and taking an operation result as the embedded bit.
9. The data processing method according to claim 7 or 8, wherein the binary watermark is recorded with an identification code of the client, an identification code of a data provider, and time information for generating the binary watermark, the method further comprising:
and extracting the identification code of the client, the identification code of the data provider and the time information for generating the binary watermark from the binary watermark.
10. The data processing method of claim 6, wherein T >1, V >1.
11. The data processing method of claim 10, wherein V-2.
12. A data processing apparatus for embedding a binary watermark in data to be processed, the apparatus comprising:
the receiving module is used for receiving M data to be processed sent by a data provider;
watermark embedding module for
Converting the M data to be processed into M binary data, wherein the bit number of each binary data is P bits;
generating the binary watermark, wherein the binary watermark has N bits;
determining an embedded bit of the binary watermark, wherein the embedded bit is the L-th bit in the P bits;
dividing the M binary data into N groups, wherein the 1 st to N bits of the binary watermark are respectively embedded into the L-th bit of each binary data in the 1 st to N groups, and the L-th bits of the binary data in the same group correspond to the same bit of the binary watermark;
comparing the value of the L-th bit in each binary data in the X-th group with the value of the X-th bit of the binary watermark to obtain a number A with consistent values and a number U with inconsistent values, and screening out E binary data in the X-th group, wherein E meets the following formula: a is more than U-E or A/(U-E) is more than or equal to T, the T represents the Tth bit of the screened binary data, the value on the Tth bit of the screened binary data is inconsistent with the value on the Xth bit of the binary watermark, X is a variable, X is more than or equal to 1 and less than or equal to N, T is more than or equal to 1 and less than or equal to P, and T is a preset threshold value which is more than 1;
and the sending module is used for sending the data to be processed corresponding to the binary data which is not screened out to the client.
13. The data processing apparatus of claim 12,
the receiving module is used for receiving the identification codes of the client and the M data to be processed, which are sent by the data provider;
the watermark embedding module is used for distributing key data aiming at the identification code of the client and recording the corresponding relation between the identification code of the client and the key data.
14. The data processing apparatus of claim 13, wherein the watermark embedding module is configured to:
performing hash operation according to the key data to obtain a first hash code;
and carrying out complementation operation on the first hash code and the bit number P of the binary data, and taking an operation result as the embedded bit.
15. The data processing apparatus according to claim 13 or 14, wherein the binary watermark is recorded with an identification code of the client, an identification code of the data provider, and time information for generating the binary watermark.
16. The data processing apparatus of claim 13 or 14, wherein the watermark embedding module is configured to:
performing hash operation on the key data and each binary data respectively to obtain M second hash codes;
and performing remainder operation on the digit N of the binary watermark and each second hash code respectively, and dividing the M binary data into N groups according to the operation result, wherein each binary data corresponds to a group number.
17. A data processing apparatus for obtaining a binary watermark in data to be processed, comprising:
the receiving module is used for receiving Z data to be processed;
a watermark extraction module to:
converting the Z data to be processed into Z binary data, wherein the bit number of each binary data is P bits;
determining an embedded bit of the binary watermark, wherein the embedded bit is the L-th bit in the P bits;
dividing the Z binary data into N groups, wherein N is the bit number of the binary watermark;
counting the number Q of the binary data in the X group in the embedded bit as a first number and the number W of the binary data in the X group as a second number, and when Q/W > (T + V-1)/V is satisfied, determining that the number of the X bit of the binary watermark embedded in the X group is the first number, V is a positive integer, T is more than or equal to 1 and less than or equal to P, wherein T is a threshold value, and T is a positive number more than or equal to 1; and when W/Q > (T + V-1)/V is satisfied, determining that the value of the Xth bit of the binary watermark embedded into the Xth group is the second value, wherein X is a variable and is more than or equal to 1 and less than or equal to N.
18. The data processing apparatus of claim 17,
the receiving module is configured to:
receiving an identification code and Z pieces of data to be processed of a client;
the watermark extraction module is configured to:
and searching the key data corresponding to the identification code of the client from the corresponding relation between the identification code of the client and the key data.
19. The data processing apparatus of claim 18, wherein the watermark extraction module is configured to:
performing hash operation according to the key data to obtain a first hash code;
and carrying out complementation operation on the first hash code and the bit number P of the binary data, and taking an operation result as the embedded bit.
20. The data processing apparatus according to claim 18 or 19, wherein the binary watermark is recorded with an identification code of the client, an identification code of a data provider, and time information for generating the binary watermark, and the watermark extraction module is configured to:
and extracting the identification code of the client, the identification code of the data provider and the time information for generating the binary watermark from the binary watermark.
21. The data processing apparatus of claim 17, wherein T >1, V >1.
22. The data processing apparatus of claim 21, wherein V-2.
23. A computer comprising a processor and a memory, the memory storing a program, the processor running the program to perform the method of any one of claims 1 to 5.
24. A computer comprising a processor and a memory, the memory storing a program, the processor running the program to perform the method of any one of claims 6 to 11.
CN201880038542.4A 2018-06-30 2018-06-30 Data processing method and device Active CN110770725B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/093922 WO2020000486A1 (en) 2018-06-30 2018-06-30 Data processing method and device

Publications (2)

Publication Number Publication Date
CN110770725A CN110770725A (en) 2020-02-07
CN110770725B true CN110770725B (en) 2022-05-31

Family

ID=68985749

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880038542.4A Active CN110770725B (en) 2018-06-30 2018-06-30 Data processing method and device

Country Status (2)

Country Link
CN (1) CN110770725B (en)
WO (1) WO2020000486A1 (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112559985B (en) * 2020-12-22 2024-02-20 深圳昂楷科技有限公司 Watermark embedding and extracting method
CN113688601B (en) * 2021-10-26 2022-02-22 北京凯睿数加科技有限公司 Watermark generation method and device based on form, electronic equipment and computer medium
CN114186252A (en) * 2021-12-06 2022-03-15 上海观安信息技术股份有限公司 Data watermark generation method and device and data source tracing method and device
CN116541808A (en) * 2023-07-06 2023-08-04 杭州美创科技股份有限公司 Data watermark tracing method, device, computer equipment and storage medium

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101980280A (en) * 2010-10-12 2011-02-23 山东中创软件商用中间件股份有限公司 Watermark embedding method, detection method, devices and watermark processing system
CN104486304A (en) * 2014-12-04 2015-04-01 湖南科技大学 Wireless sensor network data security protection method based on digital watermarking

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040034602A1 (en) * 2002-08-16 2004-02-19 Quicksilver Technology, Inc. Method and apparatus for watermarking binary computer code
US7617396B2 (en) * 2002-08-16 2009-11-10 Nvidia Corporation Method and apparatus for watermarking binary computer code with modified compiler optimizations
US9159112B2 (en) * 2010-09-16 2015-10-13 Hewlett-Packard Development Company, L.P. Digital watermarking using saturation patterns

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101980280A (en) * 2010-10-12 2011-02-23 山东中创软件商用中间件股份有限公司 Watermark embedding method, detection method, devices and watermark processing system
CN104486304A (en) * 2014-12-04 2015-04-01 湖南科技大学 Wireless sensor network data security protection method based on digital watermarking

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Gray-level Image Watermarking with High Capacity Based on Spread Transform;Wu Chunxue 等;《2014 IEEE Workshop on Advanced Research and Technology in Industry Applications》;20141208;全文 *
容错型数字文本水印算法研究;成媛媛 等;《技术研究》;20150807;全文 *

Also Published As

Publication number Publication date
CN110770725A (en) 2020-02-07
WO2020000486A1 (en) 2020-01-02

Similar Documents

Publication Publication Date Title
CN110770725B (en) Data processing method and device
US7730037B2 (en) Fragile watermarks
CN111125750B (en) Database watermark embedding and detecting method and system based on double-layer ellipse model
CN105512523B (en) The digital watermark embedding and extracting method of a kind of anonymization
CN112016061A (en) Excel document data protection method based on robust watermarking technology
CN109635576A (en) A kind of hiding data method and system in the picture
CN114356919A (en) Watermark embedding method, tracing method and device for structured database
EP3035213A1 (en) Method and apparatus for deriving a perceptual hash value from an image
CN112948895A (en) Data watermark embedding method, watermark tracing method and device
CN111651736A (en) Watermark tracing method for desensitization of identity card data
CN117111854A (en) Data storage method, device and medium based on distributed encryption storage
CN115828194A (en) Data privacy protection method and detection method of privacy enhanced semi-blind digital fingerprint
Lohegaon A robust, distortion minimization fingerprinting technique for relational database
CN113297592B (en) Relational database-oriented watermark tracing method, device and storage medium
CN110866858B (en) Watermark embedding method, watermark embedding device, query data providing device, and data processing method
CN114398375A (en) Watermark embedding method, device, equipment and storage medium
US20220092157A1 (en) Digital watermarking for textual data
CN109063097B (en) Data comparison and consensus method based on block chain
CN112530522A (en) Sequence error correction method, device, equipment and storage medium
CN115085906B (en) Method for storing engineering cost data
CN116484443B (en) Trusted security storage method and device based on hong Monte-go system
CN116861380B (en) Watermark processing method and device based on database
CN114564704B (en) Minimum distortion relational database watermarking method based on bit hiding
CN111669273B (en) Encryption method based on cellular automaton theory
CN115439118B (en) Digital certificate storage management method based on blockchain

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
TA01 Transfer of patent application right

Effective date of registration: 20220221

Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province

Applicant after: Huawei Cloud Computing Technology Co.,Ltd.

Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen

Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant