Data watermark embedding and tracing method based on zero-width character
By using a data watermark embedding method based on zero-width characters, and by binding user identity with hash values and dynamically selecting the embedding position, the problems of insufficient concealment and low traceability accuracy in existing technologies are solved, and data watermark traceability with high concealment and resistance to damage is achieved.
Patent Information
- Application Number
- CN202511251114.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-09-03
- Publication Date
- 2025-12-19
AI Technical Summary
Existing data watermarking technologies suffer from insufficient concealment, low traceability accuracy, and weak resistance to damage, making it difficult to achieve effective protection and reliable traceability of data throughout its entire lifecycle.
A data watermark embedding method based on zero-width characters is adopted. By generating a hash value to bind the user identity, the watermark information is encoded using Unicode zero-width characters and split into sub-sequences. The embedding position is dynamically selected to ensure the concealment and resistance to damage of the watermark.
It achieves a unique binding between the watermark and the specific user and access scenario, improves the accuracy of source tracing, enhances the watermark's resistance to attacks and robustness, and balances watermark embedding with data availability.
Smart Images

Figure CN121167682A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The application belongs to the technical field of data watermarking, and particularly relates to a data watermark embedding and tracing method based on zero-width characters. BACKGROUND
[0002] Under the background of rapid development of data informatization, various data face increasing leakage risks in the process of transmission, sharing and use, and data security protection and leakage tracing have become key problems to be solved. As an important data tracking means, data watermarking technology is widely used in identifying data sources and tracking leakage paths, but the existing technology still has many limitations.
[0003] Traditional data watermarking technology mostly uses visible marks or explicit embedding methods. Such methods will interfere with the original form of data, affect the normal use and aesthetics of data, and are easily noticed and deliberately removed by users, resulting in watermark failure. Although some invisible watermarking technology hides watermark information through specific algorithms, the correlation between the embedded carrier and the watermark is strong, and when the data format is converted, the content is edited or partially damaged, the watermark is easily lost or damaged, making it difficult to ensure the reliability of the traceability.
[0004] In terms of tracing accuracy, the watermark information generated by the existing technology often lacks a strong binding relationship with the access user and only contains simple identification information, making it difficult to accurately associate with specific users and access scenarios. When data is leaked, it is difficult to effectively trace the specific access user through the watermark information, resulting in low efficiency of traceability. At the same time, the existing watermark embedding strategy lacks consideration of the sensitivity of data units, and the embedding position is selected randomly. If it is embedded in the non-critical area of the data, it is easy to be accidentally deleted in the data processing process; if it is embedded in the sensitive area, it may affect the effectiveness of the data. In addition, the splitting and recombination method of the watermark sequence is relatively fixed and lacks dynamic adaptability. When part of the data content is tampered with or missing, it is difficult to extract the watermark sequence completely, further reducing the success rate of traceability. In addition, the characters used to encode the watermark information in the existing technology are mostly conventional visible characters, which have poor concealment and are easy to be removed by malicious users, and cannot meet the watermark concealment requirements in high-security scenarios.
[0005] Therefore, there is an urgent need for a watermark embedding and tracing method with high concealment, strong anti-interference and accurate user information binding to solve the problems of insufficient watermark concealment, low traceability accuracy and weak anti-damage ability in the existing technology, and to realize effective protection and reliable traceability of data throughout its life cycle. SUMMARY
[0006] The purpose of the present application is to overcome the deficiencies in the prior art, provide a data watermark embedding and tracing method based on zero-width characters, which strongly binds the watermark information and the user identity, generates a hash value as the watermark information by combining the access user identity number, data access timestamp and system identifier, can realize the unique binding of the watermark and the specific user and access scene, and can accurately locate the data source when tracing the data leakage, thereby improving the tracing accuracy.
[0007] The technical solution adopted by the present application to solve its technical problems is to provide a data watermark embedding and tracing method based on zero-width characters, comprising:
[0008] reading a system identifier, data to be added with a watermark and an identity number of a corresponding access user;
[0009] generating watermark information according to the access user identity number, data access timestamp and system identifier;
[0010] encoding the watermark information using zero-width characters to obtain an encoded zero-width character sequence;
[0011] based on the identity number of the user, splitting the encoded zero-width character sequence into a plurality of subsequences to obtain a complete subsequence set;
[0012] analyzing the data to be added with a watermark to determine a corresponding number of embedding positions in the data to be added with a watermark, and embedding the subsequences into the data to be added with a watermark;
[0013] when tracing, extracting the subsequences from the suspected leaked data, recombining the extracted subsequences into the complete encoded zero-width character sequence, decoding to obtain the watermark information, and determining the data source by comparing the watermark information with the user's binding relationship.
[0014] Further, the method of generating watermark information according to the access user identity number, data access timestamp and system identifier comprises:
[0015] obtaining the identity number of the user, data access timestamp and system identifier;
[0016] combining the identity number, data access timestamp and system identifier into a string;
[0017] processing the string using a hash function to generate a hash value;
[0018] converting the hash value into a binary bit stream;
[0019] using the binary bit stream as the watermark information uniquely bound to the identity number of the user.
[0020] Further, the watermark information is encoded by using the zero-width character to obtain an encoded zero-width character sequence, and the method comprises the following steps of:
[0021] According to the mapping rule that each bit corresponds to a zero-width character, the binary bit stream is encoded into a watermark sequence composed of zero-width characters to obtain an encoded zero-width character sequence.
[0022] In the present application, Unicode zero-width characters are used, and the mapping rule is that binary bit "0" corresponds to Unicode zero-width space, and binary bit "1" corresponds to Unicode zero-width non-joiner, and Unicode zero-width joiner is added as a boundary identifier at the start and end positions of the encoded sequence.
[0023] Further, the encoded zero-width character sequence is split into a plurality of subsequences based on the user identity number, and the method comprises the following steps of:
[0024] The user identity number is obtained, and the split number n is determined based on the user identity number, wherein n is a positive integer not less than 2.
[0025] The total length L of the encoded zero-width character sequence is calculated, and n-1 average split points are calculated based on the split number n.
[0026] Hash operation is performed on the user identity number to obtain a hash value, and n-1 offset parameters are generated after the hash value is converted into an integer.
[0027] The offset parameters are respectively applied to the corresponding average split points to obtain n-1 final split points, wherein the absolute value of the offset parameter does not exceed L / (2n).
[0028] The encoded zero-width character sequence is split into n subsequences according to the final split points.
[0029] Further, the user identity number is obtained, and the split number n is determined based on the user identity number, and the method comprises the following steps of:
[0030] The user identity number is obtained.
[0031] Each character in the user identity number is converted into a decimal integer based on the corresponding character code value in the ASCII table.
[0032] All converted integers are subjected to cumulative operation to obtain a total sum S.
[0033] The product of S and the length L of the user identity number is calculated to obtain a characteristic value K.
[0034] Set the p value, the p value is related to the expected number of split subsequences n; calculate the result m of K modulo p, the value of n is m+2, and the maximum value of n does not exceed 1 / 5 of the total length of the zero-width character sequence after encoding.
[0035] Further, the hash value obtained by performing the hash operation on the user identity number is converted into an integer to generate n-1 offset parameters.
[0036] The SHA-256 algorithm is used to perform the hash operation on the user identity number, and the first several bits of the hash value are regarded as a binary bit stream;
[0037] The binary bit stream is segmented according to the number n-1, if the value cannot be divided by n-1, the first (n-2) segments are complete bit segments of equal length, and the last segment contains the remaining bits;
[0038] Each segment of the binary bit stream is independently converted: first converted into a decimal integer, and then the absolute value of the integer is taken modulo the preset threshold L / (2n) to obtain the corresponding base offset of the segment;
[0039] The highest bit of each segment of the binary bit stream is used as a sign bit; wherein 1 is left offset and 0 is right offset; the base offset is assigned a sign value, and finally n-1 offset parameters with different values are obtained.
[0040] Further, the overlap length of the preset subsequence is set so that there is a predetermined length of overlap between adjacent subsequences, that is, the start of the next subsequence overlaps with the end of the previous subsequence.
[0041] Further, the analyzing the data to be added with a watermark to determine a corresponding number of embedding positions in the data to be added with a watermark, and embedding the subsequences into the data to be added with a watermark includes:
[0042] The data to be added with a watermark is analyzed, and a plurality of data units contained in the data to be added with a watermark are extracted, the sensitivity of each data unit is analyzed and the sensitivity level is divided;
[0043] According to the sensitivity level of each data unit, a plurality of embedding positions corresponding to each sensitivity level are determined, and the embedding positions are sorted from high to low according to the sensitivity level;
[0044] In the original order of the complete subsequence set, starting from the first embedding position after sorting, the plurality of subsequences of the complete subsequence set are sequentially embedded into the corresponding embedding positions in a loop;
[0045] When all embedding positions are filled, if the current complete subsequence set has not been embedded completely, the remaining unembedded subsequences are embedded to the end of the data to which the watermark is to be added.
[0046] The electronic device provided by the embodiments of the present specification comprises a processor and a memory;
[0047] The processor is connected to the memory;
[0048] The memory is configured to store executable program codes.
[0049] The processor runs a program corresponding to the executable program codes by reading the executable program codes stored in the memory, so as to execute the method according to any one of the preceding aspects.
[0050] The computer readable storage medium provided by the embodiments of the present specification stores a computer program, and the computer program is executed by a processor to implement the method according to any one of the preceding aspects.
[0051] The present application has the following beneficial effects:
[0052] (1) The watermark information of the present application is strongly bound to the user identity, and a hash value generated by combining the access user identity number, data access timestamp and system identifier is used as the watermark information, so that the watermark is uniquely bound to the specific user and access scenario, and when data leakage is traced, the data source can be accurately located, thereby improving the tracing accuracy.
[0053] (2) The watermark of the present application has strong concealment, and the watermark information is encoded by using Unicode zero-width characters, which are invisible in vision and do not affect the original presentation form and normal use of data, so that the watermark can be effectively avoided from being perceived and deliberately removed, thereby improving the anti-attack performance of the watermark.
[0054] (3) The watermark sequence of the present application is flexible and has strong anti-damage capability, and the number of subsequences and the splitting points are dynamically determined based on the user identity number, and the overlapping between the subsequences is also supported, so that even if part of the data content is tampered with or missing, the effective subsequences can still be extracted from the remaining part and recombined into a complete watermark sequence, thereby enhancing the robustness of the watermark.
[0055] (4) The embedding position of the watermark of the present application is reasonable, and the embedding position is determined by dividing the sensitive level of the data to which the watermark is to be added, and the embedding is preferentially performed according to the sensitive level, so that the problem of easy loss of the watermark caused by embedding in non-critical areas is avoided, and the influence of embedding in sensitive areas on the availability of data is reduced, thereby balancing the embedding of the watermark and the availability of data. BRIEF DESCRIPTION OF DRAWINGS
[0056] In order to more clearly illustrate the technical solutions in the embodiments of the present specification, the drawings required to be used in the embodiments will be briefly introduced as follows. Obviously, the drawings in the following description are only some embodiments of the present specification, and all other drawings obtained by those of ordinary skill in the art without creative effort based on these drawings also belong to the protection scope of the present specification.
[0057] Figure 1 A flowchart of a zero-width character-based data watermark embedding and tracing method provided by the embodiments of the present specification;
[0058] Figure 2 A flowchart of a method of generating watermark information of a zero-width character-based data watermark embedding and tracing method provided by the embodiments of the present specification;
[0059] Figure 3 A flowchart of splitting the encoded zero-width character sequence into a plurality of subsequences of a zero-width character-based data watermark embedding and tracing method provided by the embodiments of the present specification;
[0060] Figure 4 A flowchart of performing a hash operation on a user identity number to obtain a hash value, converting the hash value into an integer to generate n-1 offset parameters of a zero-width character-based data watermark embedding and tracing method provided by the embodiments of the present specification;
[0061] Figure 5 A UI diagram of a configuration page of a zero-width character-based data watermark embedding and tracing method provided by the embodiments of the present specification. DETAILED DESCRIPTION
[0062] The technical solutions in the embodiments of the present specification will be described clearly and completely with reference to the drawings in the embodiments of the present specification. Obviously, the described embodiments are only some embodiments of the present specification, rather than all the embodiments. Based on the embodiments in the present specification, all other embodiments obtained by those of ordinary skill in the art without creative effort belong to the protection scope of the present specification.
[0063] The terms “first”, “second”, “third”, and the like in the specification and claims in the present specification and the above-described drawings are used to distinguish different objects, rather than to describe a specific sequence. In addition, the terms “include” and “have” and any variations thereof are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or device including a series of steps or units is not limited to the listed steps or units, but can optionally include steps or units not listed or can optionally include other steps or units inherent to these processes, methods, products, or devices.
[0064] In the following description, the occurrence of terms such as "inner", "outer", "upper", "lower", "left", "right", etc. indicates the orientation or positional relationship only for the convenience of describing the embodiments and simplifying the description, and does not indicate or imply that the device or element referred to must have a particular orientation, be constructed and operated in a particular orientation, and therefore cannot be understood as a limitation on the present specification.
[0065] The data involved in the present application is all information and data authorized by the user or fully authorized by all parties, and the collection of relevant data complies with relevant laws, regulations and standards of relevant countries and regions
[0066] Embodiment 1:
[0067] As shown in Figure 1 A zero-width character-based data watermark embedding and tracing method includes:
[0068] Read the system identifier, the data to be added with watermark, and the identity number of the corresponding access user;
[0069] Generate watermark information according to the access user identity number, the data access timestamp, and the system identifier;
[0070] Encode the watermark information using Unicode zero-width characters to obtain an encoded zero-width character sequence;
[0071] Based on the identity number of the user, the encoded zero-width character sequence is split into a plurality of subsequences to obtain a complete subsequence set;
[0072] Parse the data to be added with watermark to determine a corresponding number of embedding positions in the data to be added with watermark, and embed the subsequences into the data to be added with watermark;
[0073] When tracing, extract the subsequences from the suspected leaked data, recombine the extracted subsequences into the complete encoded zero-width character sequence, decode to obtain the watermark information, and determine the data source by comparing the watermark information with the binding relationship of the user.
[0074] Please refer to Figure 5 , first, the system reads the following information:
[0075] System identifier: SYS-FIN-2025, identifying the enterprise financial data management system;
[0076] Data to be added with watermark: the enterprise financial department's financial report for the first quarter of 2025; text format, containing revenue data, cost details, profit analysis, etc.
[0077] Access user identity number: USER-FIN-008, the user is a finance department employee, with report access rights.
[0078] As an embodiment, as shown in Figure 2 The method for generating watermark information according to the access user identity number, data access timestamp and system identifier includes:
[0079] Obtain the identity number of the user, the data access timestamp and the system identifier;
[0080] Combine the identity number, the data access timestamp and the system identifier into a string;
[0081] Process the string using a hash function to generate a hash value;
[0082] Convert the hash value into a binary bit stream;
[0083] Use the binary bit stream as the watermark information uniquely bound to the identity number of the user.
[0084] Obtain the user identity number USER-FIN-008, the data access timestamp 2025-07-2509:15:30 and the system identifier SYS-FIN-2025;
[0085] Combine the above information into a string: USER-FIN-008_2025-07-2509:15:30_SYS-FIN-2025;
[0086] Process the string using a SHA-256 hash function to generate a hash value: 1dd28a7486dc64e72df106b482238fb566586b958ced7683f181cf758fdd4f16;
[0087] Convert the hash value into a binary bit stream:
[0088] 00110001011001000110010000110010001110000110000100110111001101000011100000110110011001000110001100110110001101000110010100110111001100100110010001100110001100010011000000110110011000100011010000111000001100100011001000110011001110000110011001100010001101010011011000110110001101010011100000110110011000100011100100110101001110000110001101100101011001000011011100110110001110000011001101100110001100010011100000110001011000110110011000110111001101010011100001100110011001000110010000110100011001100011000100110110.
[0089] The binary bit stream is the watermark information uniquely bound to the user USER-FIN-008.
[0090] As an implementation, the watermark information is encoded by using Unicode zero-width characters to obtain an encoded zero-width character sequence, including:
[0091] According to a mapping rule that each bit corresponds to a Unicode zero-width character, the binary bit stream is encoded into a watermark sequence composed of zero-width characters to obtain an encoded zero-width character sequence.
[0092] The mapping rule is that binary bit "0" corresponds to Unicode zero-width space, binary bit "1" corresponds to Unicode zero-width non-joiner, and Unicode zero-width joiner is added as a boundary identifier at the start and end positions of the encoded sequence.
[0093] The above binary bit stream is encoded by using Unicode zero-width characters:
[0094] Mapping rule: binary bit "0" corresponds to Unicode zero-width space (U+200B), binary bit "1" corresponds to Unicode zero-width non-joiner (U+200C);
[0095] Add Unicode zero-width joiner (U+200D) as boundary identifier at the start and end positions of the encoding sequence;
[0096] After encoding, a zero-width character sequence with a total of 514 characters is obtained, including 2 boundary identifiers: U+200D [512-bit sequence composed of U+200B / U+200C alternately] U+200D.
[0097] As an embodiment, as shown in Figure 3 Based on the user's identity number, the encoded zero-width character sequence is split into a plurality of subsequences, including the following steps:
[0098] Obtain the user's identity number, and determine the split number n based on the user's identity number, n being a positive integer not less than 2;
[0099] Calculate the total length L of the encoded zero-width character sequence, and calculate n-1 average split points according to the split number n;
[0100] Hash operation is performed on the user's identity number to obtain a hash value, and n-1 offset parameters are generated after the hash value is converted into an integer;
[0101] The offset parameters are respectively applied to the corresponding average split points to obtain n-1 final split points, wherein the absolute value of the offset parameter does not exceed L / (2n);
[0102] According to the final split points, the encoded zero-width character sequence is split into n subsequences.
[0103] As an embodiment, the user's identity number is obtained, and the split number n is determined based on the user's identity number, including:
[0104] Obtain the user's identity number;
[0105] Traverse each character in the user's identity number, and convert each character in the identity number into a decimal integer based on the corresponding character encoding value of the ASCII table;
[0106] Perform accumulation operation on all converted integers to obtain a total sum S;
[0107] Calculate the product of S and the length L of the user's identity number to obtain a feature value K;
[0108] The p value is set, and the p value is related to the number n of sub-sequences expected to be split; the result m of K mod p is calculated, the value of n is m+2, and the maximum value of n does not exceed 1 / 5 of the total length of the zero-width character sequence after encoding.
[0109] The number of splits n is determined:
[0110] The characters of the user identity number USER-FIN-008 are traversed, and the conversion rule is: uppercase letter "U"→85, "S"→83, "E"→69, "R"→82, "F"→70, "I"→73, "N"→78, digit "0"→48, "8"→56;
[0111] The integer sequence after conversion is: 85, 83, 69, 82, 70, 73, 78, 48, 48, 56, and the sum S=85+83+69+82+70+73+78+48+48+56=692;
[0112] The length L of the user identity number is 10, and the characteristic value K=692×10=6920;
[0113] The p value is set to 3, and 6920 mod 3=2 is calculated, the modulus value is 2, so the number of splits n=4.
[0114] The split points are calculated:
[0115] The total length L of the zero-width character sequence after encoding is 514, and the average split point is 514 / 4=128.5, 514×2 / 4=257; 514×3 / 4=385.5 (i.e. n-1=3 average split points);
[0116] When calculating the average split point, the processing rule is: rounding to the nearest integer for the decimal split point, and rounding up for the.5 intermediate value;
[0117] That is, the split points are 129, 257 and 386.
[0118] As an embodiment, as shown in Figure 4 The hash value obtained by performing the hash operation on the user identity number is converted into an integer to generate n-1 offset parameters, which includes:
[0119] The SHA-256 algorithm is used to perform the hash operation on the user identity number, and the first several bits of the hash value are regarded as several binary bit streams;
[0120] The several binary bit streams are segmented according to the number n-1, if the value cannot be divided by n-1, the first (n-2) segments are complete bit segments of equal length, and the last segment contains the remaining bits;
[0121] Converting each segment of binary bit stream independently: first convert it into a decimal integer, then take the absolute value of the integer and perform modulo operation with the preset threshold L / (2n) to get the corresponding base offset of the segment;
[0122] Taking the highest bit of each segment of binary bit stream as the sign bit; wherein 1 is left offset and 0 is right offset; performing sign assignment on the base offset to finally get n-1 different offset parameters.
[0123] Performing SHA-256 hash operation on the user identity number USER-FIN-008 and intercepting the first 30-bit binary bit stream: 001110010011001100110111011001;
[0124] Segmenting according to n-1=3, each segment is 10 bits: the first segment is 0011100100; the second segment is 1100110011; the third segment is 0111011001;
[0125] The first segment is converted into a decimal integer 228, and the modulus of the threshold L / (2n)=258 / (2×4)=32.25 is taken, and the base offset 228 mod 32.25=2.25 is obtained; the highest bit is "0" (right offset); if a decimal number appears during calculation, the processing rule is: rounding off to the nearest whole number at the decimal split point; if it is a.5 intermediate value, it is rounded up uniformly; therefore, the offset is +2;
[0126] The second segment is converted to obtain the base offset 819, and the highest bit is "1" (left offset), so the offset is -13;
[0127] The third segment is converted to obtain the base offset 473, and the highest bit is "0" (right offset), so the offset is +22;
[0128] The final split points are: 129+2=131, 257-13=244, 386+22=408.
[0129] Split sequence:
[0130] According to the final split points, the zero-width character sequence is split into 3 subsequences:
[0131] Subsequence 1: the first to 131 characters;
[0132] Subsequence 2: the 132th to 244th character;
[0133] Subsequence 3: the 245th to 408th character;
[0134] Subsequence 4: the 409th to 514th character.
[0135] As an implementation, further comprising: presetting the length of the overlap of the sub-sequences, so that there is a predetermined length of overlap between adjacent sub-sequences, that is, the start of the next sub-sequence and the end of the previous sub-sequence overlap.
[0136] The preset overlap length is 5, so the sub-sequence 2 contains the last 5 characters of the sub-sequence 1, the sub-sequence 3 contains the last 5 characters of the sub-sequence 2, and so on.
[0137] As an implementation, the parsing of the to-be-watermarked data, determining a corresponding number of embedding positions in the to-be-watermarked data, and embedding the sub-sequences into the to-be-watermarked data include:
[0138] Parsing the to-be-watermarked data, extracting a plurality of data units contained in the to-be-watermarked data, analyzing the sensitivity of each data unit and dividing the sensitivity level;
[0139] According to the sensitivity level of each data unit, determine a plurality of embedding positions corresponding to each sensitivity level, and sort the embedding positions from high to low according to the sensitivity level;
[0140] In the original order of the complete sub-sequence set, starting from the first embedding position after sorting, the complete sub-sequence set is embedded in the corresponding embedding position in turn;
[0141] When all embedding positions are filled, if the current complete sub-sequence set has not been embedded in its entirety, the remaining unembedded sub-sequences are embedded at the end of the to-be-watermarked data.
[0142] Step 1: Analyze the data units and divide the sensitivity level;
[0143] Now the "market analysis report" needs to be parsed and watermarked, the following data units are extracted and divided into sensitivity levels:
[0144] High sensitivity level (core data):
[0145] Data unit 1: "2025 Q3 core business revenue forecast table" (contains specific numerical values)
[0146] Data unit 2: "Main competitor market share analysis conclusion" (key conclusion)
[0147] Data unit 3: "New market development strategy planning points" (decision-level information)
[0148] Medium sensitivity level (supporting data):
[0149] Data unit 4: "Regional market research raw data summary" (basic data)
[0150] Data unit 5: "Client satisfaction survey statistical chart" (derived data)
[0151] Low sensitivity level (auxiliary information):
[0152] Data unit 6: "Report preparation instructions" (formatting content)
[0153] Data unit 7: "List of references" (non-core supplementary content)
[0154] Lowest sensitivity level (formatting symbols):
[0155] Data unit 8: paragraph separator, punctuation mark after chapter number
[0156] Step 2: Determine several embedding positions and sort them;
[0157] Set several embedding positions for each sensitivity level (multiple positions for each data unit), and sort them from high to low sensitivity level as follows (a total of 17 embedding positions):
[0158] High sensitivity - Position 1: End of each row of data in the revenue forecast table (3 places in total);
[0159] High sensitivity - Position 2: End of each paragraph in the competitor analysis conclusion (2 places in total);
[0160] High sensitivity - Position 3: After the numbered points in strategic planning (2 places in total);
[0161] Medium sensitivity - Position 4: Below the table title of regional research data (2 places in total);
[0162] Medium sensitivity - Position 5: In the annotation text of the satisfaction chart (2 places in total);
[0163] Low sensitivity - Position 6: Between paragraphs in the preparation instructions (2 places in total);
[0164] Low sensitivity - Position 7: After each reference entry (2 places in total);
[0165] Lowest sensitivity - Position 8: After the period at the end of each chapter (2 places in total);
[0166] (Note: The above positions total 17, reflecting the "several embedding positions" feature).
[0167] Step 3: Cycle embedding in subsequence units;
[0168] Assuming the complete subsequence set is: Subsequence A, Subsequence B, Subsequence C (3 sub-sequences in total, arranged in original order), and the embedding rule is "fill in each embedding position in the original order of sub-sequences":
[0169] Embedding position 1 (3 places): sequentially embed subsequence A, subsequence B, subsequence C;
[0170] Embedding position 2 (2 places): continue the cycle, embed subsequence A, subsequence B;
[0171] Embedding position 3 (2 places): continue the cycle, embed subsequence C, subsequence A;
[0172] Embedding position 4 (2 places): continue the cycle, embed subsequence B, subsequence C;
[0173] Embedding position 5 (2 places): continue the cycle, embed subsequence A, subsequence B;
[0174] Embedding position 6 (2 places): continue the cycle, embed subsequence C, subsequence A;
[0175] Embedding position 7 (2 places): continue the cycle, embed subsequence B, subsequence C;
[0176] Embedding position 8 (2 places): continue the cycle, embed subsequence A, subsequence B.
[0177] (Note: Through the cycle logic, the 4 sub-sequences are repeatedly embedded into 17 positions, reflecting the feature of "repeated embedding in sub-sequence units")
[0178] Step 4: Process the remaining sub-sequences;
[0179] Embedding sub-sequences:
[0180] In the order of sub-sequence 1→sub-sequence 2→sub-sequence 3→sub-sequence 4, sequentially embed the corresponding positions after sorting;
[0181] After all positions are filled, sub-sequence 2→sub-sequence 3→sub-sequence 4 are not completely embedded, and the remaining part is embedded at the end of the report.
[0182] If this financial report is leaked, trace back from the suspected leaked data:
[0183] Extract sub-sequences: scan the zero-width characters in the leaked data to extract the 4 sub-sequences (including overlapping parts);
[0184] Recombine sequences: match the sub-sequences through overlapping parts to recombine them into a complete zero-width character sequence;
[0185] Decoding: remove the boundary markers (U+200D), convert U+200B→0, U+200C→1, and restore it to a 256-bit binary bit stream;
[0186] Traceability: Convert the binary bit stream into a hash value, and match the user identity number USER-FIN-008, access timestamp and system identifier in reverse to determine that the leaked data comes from the user.
[0187] An electronic device, characterized by comprising a processor and a memory;
[0188] The processor is connected with the memory;
[0189] The memory is used for storing executable program codes;
[0190] The processor runs a program corresponding to the executable program codes by reading the executable program codes stored in the memory, so as to execute the method performed by the system as claimed in any one of claims 1-8.
[0191] A computer readable storage medium, which stores a computer program, characterized in that the computer program is executed by a processor to implement the method performed by the system as claimed in any one of claims 1-8.
[0192] The electronic device can include at least one processor, at least one network interface, a user interface, a memory, and at least one communication bus. The communication bus can be used to realize the connection and communication of the above-mentioned components. The user interface can include a key, and the optional user interface can also include a standard wired interface, a wireless interface. The network interface can include but is not limited to a Bluetooth module, an NFC module, a Wi-Fi module, etc. The processor can include one or more processing cores. The processor connects various parts in the electronic device through various interfaces and lines, executes instructions, programs, code sets or instruction sets stored in the memory, and calls data stored in the memory to perform various functions of the routing device and process data. Optionally, the processor can be implemented in at least one of the hardware forms of DSP, FPGA, and PLA. The processor can integrate one or a combination of CPU, GPU, and modem. The CPU mainly processes the operating system, user interface, and application program, etc.; the GPU is responsible for rendering and drawing the content to be displayed on the display screen; and the modem is used for processing wireless communication.
[0193] It can be understood that the above-mentioned modem can also not be integrated into the processor, but be realized by a separate chip.
[0194] The memory can include a RAM and can also include a ROM. Optionally, the memory includes a non-transitory computer-readable medium. The memory can be used to store instructions, programs, codes, code sets, or instruction sets. The memory can include a program storage area and a data storage area, wherein the program storage area can store the instructions for implementing the operating system, the instructions for at least one function (such as a touch function, a sound playing function, an image playing function, etc.), the instructions for implementing the above-mentioned various method embodiments, etc.; and the data storage area can store the data involved in the above-mentioned various method embodiments, etc. The memory can also optionally be at least one storage device located away from the aforementioned processor. The memory as a computer storage medium can include an operating system, a network communication module, a user interface module, and an application program. The processor can be used to invoke the application program stored in the memory and execute the method in the above-mentioned various embodiments.
[0195] The embodiments of the present specification further provide a computer readable storage medium, which stores instructions, and when the instructions run on a computer or a processor, the computer or the processor executes the steps in the above-mentioned embodiments. The various component modules of the above-mentioned electronic device, if realized in the form of software function units and sold or used as independent products, can be stored in the computer readable storage medium.
[0196] Although the present application has been described in detail with reference to the foregoing embodiments, those skilled in the art can still modify the technical solutions recorded in the foregoing embodiments, or make equivalent replacements to some of the technical features, and any modification, equivalent replacement, improvement, etc. made within the spirit and principle of the present application shall be included in the protection scope of the present application.
Claims
1. A method for embedding and tracing data watermarks based on zero-width characters, characterized in that, include: Read the system identifier, the watermark data to be added, and the identity number of the corresponding accessing user; Watermark information is generated based on the user's identification number, data access timestamp, and system identifier. The watermark information is encoded using zero-width characters to obtain an encoded zero-width character sequence; Based on the user's identification number, the encoded zero-width character sequence is split into several subsequences to obtain a complete set of subsequences; The data to be watermarked is parsed to determine the appropriate number of embedding positions, and the subsequence is embedded into the data to be watermarked. During the source tracing process, subsequences are extracted from suspected leaked data, and the extracted subsequences are reassembled into complete encoded zero-width character sequences. The watermark information is then decoded, and the data source is determined by comparing the binding relationship between the watermark information and the user.
2. The data watermark embedding and tracing method based on zero-width characters according to claim 1, characterized in that, The method for generating watermark information based on the access user's identity number, data access timestamp, and system identifier includes: Obtain the user's identity ID, data access timestamp, and system identifier; Combine the identity number, data access timestamp, and system identifier into a string; The string is processed using a hash function to generate a hash value; Convert the hash value into a binary bit stream; This binary bitstream is used as a watermark information uniquely bound to the user's identity number.
3. The data watermark embedding and tracing method based on zero-width characters according to claim 1, characterized in that, The process of encoding the watermark information using zero-width characters to obtain the encoded zero-width character sequence includes: According to the mapping rule that each bit corresponds to a zero-width character, the binary bit stream is encoded into a watermark sequence composed of zero-width characters, resulting in the encoded zero-width character sequence.
4. The data watermark embedding and tracing method based on zero-width characters according to claim 1, characterized in that, The process of splitting the encoded zero-width character sequence into several sub-sequences based on the user's identification number includes the following steps: Obtain the user's identification number, and determine the number of splits n based on the user's identification number, where n is a positive integer not less than 2; Calculate the total length L of the encoded zero-width character sequence, and calculate n-1 average split points based on the number of splits n. The user's identity number is hashed to obtain a hash value. After the hash value is converted into an integer, n-1 offset parameters are generated. The offset parameter is applied to the corresponding average split point to obtain n-1 final split points, where the absolute value of the offset parameter does not exceed L / (2n). The encoded zero-width character sequence is split into n subsequences according to the final split point.
5. The data watermark embedding and tracing method based on zero-width characters according to claim 4, characterized in that, The step of obtaining the user identification number and determining the number of segments n based on the user identification number includes: Obtain the user's identification number; Iterate through each character in the user's identification number and convert each character into a decimal integer based on the character encoding value corresponding to the ASCII table; Sum all the converted integers to obtain the total sum S; Calculate the product of S and the length L of the user's identity number to obtain the feature value K; Set a value p, which is related to the expected number of subsequences n to be split; calculate the result m of K modulo p, where the value of n is m+2, and the maximum value of n does not exceed 1 / 5 of the total length of the zero-width character sequence after encoding.
6. The data watermark embedding and tracing method based on zero-width characters according to claim 5, characterized in that, The process of hashing the user's identity number to obtain a hash value, converting the hash value to an integer, and generating n-1 offset parameters includes: The hash operation on the user's identity number uses the SHA-256 algorithm, and the first few bits of the hash value are extracted as a binary bit stream. Divide a binary bit stream into segments of number n-1. If the value is not divisible by n-1, the first (n-2) segments are complete bit segments of equal length, and the last segment contains the remaining bits. Each segment of binary bitstream is converted independently: first, it is converted into a decimal integer, then the absolute value of the integer is taken and moduloed by the preset threshold L / (2n) to obtain the basic offset of the segment; The base offset is signed and assigned a value, resulting in n-1 offset parameters with different values. The highest bit of each binary bit stream is used as the sign bit, where 1 indicates a left offset and 0 indicates a right offset.
7. The data watermark embedding and tracing method based on zero-width characters according to claim 4, characterized in that, Also includes: The preset overlap length of the subsequences ensures that there is a predetermined overlap between adjacent subsequences, meaning that the beginning of the next subsequence overlaps with the end of the previous subsequence.
8. The data watermark embedding and tracing method based on zero-width characters according to claim 1, characterized in that, The step of parsing the data to be watermarked, determining the appropriate number of embedding positions within the data, and embedding the subsequence into the data includes: The watermark data to be added is parsed, multiple data units contained in the watermark data are extracted, the sensitivity of each data unit is analyzed and the sensitivity level is divided. Based on the sensitivity level of each data unit, several embedding positions corresponding to each sensitivity level are determined, and the embedding positions are sorted from high to low sensitivity level. Starting from the first embedding position after sorting, embed several subsequences of the complete subsequence set into their corresponding embedding positions in a cyclical manner, in the original order of the complete subsequence set. Once all embedding positions are filled, if the current complete set of subsequences has not yet been fully embedded, the remaining unembedded subsequences will be embedded at the end of the data to be watermarked.
9. An electronic device, characterized in that, Including the processor and memory; The processor is connected to the memory; The memory is used to store executable program code; The processor runs a program corresponding to the executable program code stored in the memory to perform the method executed by the system as described in any one of claims 1-8.
10. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the method performed by the system as described in any one of claims 1-8.
Citation Information
Patent Citations
Text watermark embedding and extracting method
CN110414194A
Information hiding method and device, information obtaining method and device, storage medium, and electronic equipment
CN114036561A
Web application leakage traceability evidence obtaining method and system based on neural network
CN115600166A
Data tracing method, device and equipment based on digital watermarking and medium
CN117725565A
Method and device for controlling watermark display
CN119149841A
Cited By
Unmanned aerial vehicle software information matching method, device and equipment and storage medium
CN121681813A