Data Summary System

By inputting plaintext data into the expression that generates an infinite data sequence, and using linear congruence method and digest logic operations, the problem of existing digest algorithms being complex but short in length is solved, and a longer and safe digest is generated.

CN114629621BActive Publication Date: 2025-06-27小华半导体有限公司
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202011443327.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-12-11
Publication Date
2025-06-27
Estimated Expiration
2040-12-11

AI Technical Summary

Technical Problem

The existing digest algorithm is complex, but the generated digest length is short, resulting in insufficient security.

Method used

By inputting plaintext data into an expression that can generate an infinite data sequence, a data sequence related to plaintext data is generated for summary calculation, an infinite data sequence is generated by linear congruence method, and a longer digest length is achieved through digest logic operations and summary table iteration.

Benefits of technology

It realizes the generation of longer digests using relatively simple algorithms, which improves safety and reliability. You only need to perform a single logical operation on plaintext data to generate digests of any length.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114629621B_ABST
    Figure CN114629621B_ABST
Patent Text Reader

Abstract

The present invention provides a data digest system, comprising: the data digest system inputs plaintext data as a parameter into an expression capable of generating an infinite data sequence, generates a data sequence related to the plaintext data, and performs a digest calculation for digital signature. A relatively simple algorithm can be used to achieve a longer digest length, with higher security and reliability. The present invention only needs to perform a single logical operation on the plaintext data to generate a digest of any length. Compared with existing digest algorithms, it can generate a longer digest with lower complexity.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of digital signatures, and particularly to a data digest system. Background Art

[0002] With the rapid development of the Internet, the volume of various information transmissions is increasing day by day, and various transmission security problems are becoming increasingly prominent. To ensure the security of network information interaction, various security guarantee mechanisms have been successively proposed, and the public key infrastructure (PKI) architecture is one of the most important ones. In the PKI architecture, the public-private key pair and the asymmetric encryption and decryption method are one of the most core bases. The security level of the private key actually determines the security level of the entire PKI architecture. For this reason, how to securely transfer the private key from the generator to the final user has always been one of the key issues in security.

[0003] The message digest algorithm is mainly applied in the field of "digital signatures" as a digest algorithm for plaintext. A message digest is an algorithm that combines an input of any length to produce a pseudo-random input of a fixed length. The main characteristics of a message digest are: regardless of the length of the input message, the length of the calculated message digest is always fixed. The message digest looks "random". As long as the input messages are different, the digest messages generated after digesting them must also be different; but the same input will always produce the same output. Only forward information digestion can be performed, and no message can be recovered from the digest.

[0004] For a specific digest algorithm, the digest length is fixed. Generally speaking, the longer the final output of the digest, the more secure the digest algorithm is. The digest length is related to the algorithm complexity. As Figure 1 shown, the MD5 digest algorithm initializes an encryption table, then divides the plaintext data into blocks of a fixed length, and successively performs multiple rounds of operations on the data of each block and the encryption table to update the encryption table. The final encryption table is the operation result. However, the MD5 digest algorithm has a relatively large complexity, but the generated digest length is relatively short. Summary of the Invention

[0005] The purpose of the present invention is to provide a data digest system to solve the problem that the existing digest algorithms have relatively large complexity but relatively short generated digest lengths.

[0006] To solve the above technical problems, the present invention provides a data digest system, including: the data digest system inputs plaintext data into an expression capable of generating an infinite data sequence, and generates a data sequence related to the plaintext data for digest calculation.

[0007] Optionally, in the data digest system, the data digest system includes:

[0008] An input data module, configured to input plaintext data into an infinite data sequence calculation module;

[0009] An infinite data sequence calculation module, configured to substitute the plaintext data into the infinite data sequence for calculation to obtain a digest logic input value, and provide the digest logic input value to a digest logic operation module;

[0010] A digest logic operation module, configured to substitute the digest logic input value into a digest logic operation expression to obtain a digest logic output value, and provide the digest logic output value to a digest table iteration module;

[0011] A digest table iteration module, configured to perform iteration of the digest table on the digest logic output value.

[0012] Optionally, in the data digest system, the data digest system further includes:

[0013] An initialization module, configured to initialize the digest table to obtain an initialized digest table;

[0014] The digest table iteration module starts iteration from the initialized digest table;

[0015] The initialized digest table is a specific value.

[0016] Optionally, in the data digest system, the infinite data sequence calculation module obtains a linear congruence calculation formula according to the linear congruence method, and adds the plaintext data to the linear congruence calculation formula in a certain operation manner to generate an infinite data sequence related to the plaintext data.

[0017] Optionally, in the data digest system, the linear congruence method includes:

[0018] Define the linear congruence calculation formula by the recurrence relation as X n+1 =(aX n +c)mod m;

[0019] where X n is the nth data in the sequence;

[0020] m is the modulus, which is the maximum period for generating the sequence, m>0;

[0021] a is the multiplier, 0<a<m;

[0022] c is the increment, 0≤c<m;

[0023] Determine the parameters m, a, and c of the linear congruence calculation formula.

[0024] Optionally, in the data digest system, adding the plaintext data to the linear congruence calculation formula in a certain operation manner includes:

[0025] After performing XOR operation, addition operation, subtraction operation or equivalence operation on the plaintext data and the sequence data in the linear congruence calculation formula, substitute it back as the sequence data; or

[0026] After performing XOR operation, addition operation, subtraction operation or equivalence operation on the plaintext data and the multiplier in the linear congruence calculation formula, substitute it back as the multiplier of the infinite data sequence; or

[0027] After performing XOR operation, addition operation, subtraction operation or equivalence operation on the plaintext data and the increment in the linear congruence calculation formula, substitute it back as the increment of the infinite data sequence.

[0028] Optionally, in the data digest system, the infinite data sequence is:[[]]

[0029] S n+1 = Fs(S n ,dat)=(1103515245*(S n ⊕dat)+12345)mod 2^31,

[0030] S0 = Seed = 12345, where:

[0031] dat is the plaintext data, Fs(S n ,dat) is the infinite data sequence, and S0 is the initial value of the pseudo-random sequence;

[0032] When dat is fixed to 0, Fs(S n ,dat) is the linear congruence calculation formula used by the pseudo-random number generation mechanism of glibc.

[0033] Optionally, in the data digest system, substituting the digest logic input value into the digest logic operation formula to obtain the digest logic output value includes:

[0034] Generating a pseudo-random sequence of one or more infinite data sequences from one plaintext data, substituting it as one or more digest logic input values into the digest logic operation formula, and obtaining one or more digest logic output values;

[0035] The digest logic operation formula is: R n = Fr(S n ) = S n >>15;

[0036] Where: S n is the pseudo-random sequence, Fr(S n ) is the digest logic operation formula, indicating that the data bits 30 to 15 in the pseudo-random sequence are used as the result, and R n is the digest logic output value.

[0037] Optionally, in the data digest system, the iteration of the digest table for the output value of the digest logic includes:

[0038] The output value of the digest logic obtained for each plaintext data updates part or the whole of the digest table; updating part of the digest table includes:

[0039] Dividing the digest table into y parts, and each plaintext data updates one of the parts;

[0040] The digest length is 256 bit, 384 bit, 512 bit, 1024 bit, etc.

[0041] Optionally, in the data digest system, the digest table iteration module is further configured to finally update the whole digest table using a specific value.

[0042] In the data digest system provided by the present invention, by inputting plaintext data into an expression capable of generating an infinite data sequence through the data digest system, a data sequence related to the plaintext data is generated, and a digest calculation is performed. A relatively simple algorithm can be used to achieve a longer digest length, and the security and reliability are higher. The present invention only needs to perform a single logical operation on the plaintext data to generate a digest of any length. Compared with the existing digest algorithms, a longer digest can be generated with a lower complexity. BRIEF DESCRIPTION OF THE DRAWINGS

[0043] Figure 1 is a schematic diagram of the principle of the existing MD5 data digest algorithm;

[0044] Figure 2 is a schematic diagram of the data digest system according to an embodiment of the present invention;

[0045] Figure 3 are parameters of some common linear congruence methods;

[0046] Figure 4 is a schematic diagram of the statistical result of the digest calculation of the data digest system according to an embodiment of the present invention;

[0047] Figure 5 is a partially enlarged schematic diagram of the digest calculation result in the data digest system according to an embodiment of the present invention;

[0048] As shown in the figure: 10 - input data module; 20 - infinite data sequence calculation module; 30 - digest logic operation module; 40 - digest table iteration module; 50 - initialization module. DETAILED DESCRIPTION OF THE EMBODIMENTS

[0049] The following further elaborates on the data digest system and digital signature method proposed by the present invention in conjunction with the accompanying drawings and specific embodiments. According to the following description and claims, the advantages and features of the present invention will become clearer. It should be noted that the accompanying drawings are all in a very simplified form and use non-precise scales, only for the purpose of conveniently and clearly assisting in explaining the purpose of the embodiments of the present invention.

[0050] In addition, unless otherwise stated, the features in different embodiments of the present invention can be combined with each other. For example, a certain feature in the second embodiment can be used to replace the corresponding or functionally identical or similar feature in the first embodiment, and the resulting embodiment also falls within the scope of disclosure or the scope of recording of this application.

[0051] The core idea of the present invention is to provide a data digest system and a digital signature method to solve the problem that the existing digest algorithms have a relatively high complexity but generate relatively short digests.

[0052] To achieve the above idea, this embodiment provides a data digest system, including: the data digest system inputs plaintext data into an expression that can generate an infinite data sequence, and generates a data sequence related to the plaintext data for digest calculation.

[0053] Specifically, as Figure 2 shown, in the data digest system, the data digest system includes: an input data module 10 configured to input plaintext data into an infinite data sequence calculation module 20; an infinite data sequence calculation module 20 configured to substitute the plaintext data into the infinite data sequence for calculation to obtain a digest logic input value, and provide the digest logic input value to a digest logic operation module 30; a digest logic operation module 30 configured to substitute the digest logic input value into a digest logic operation expression to obtain a digest logic output value, and provide the digest logic output value to a digest table iteration module 40; a digest table iteration module 40 configured to perform iteration of the digest table on the digest logic output value.

[0054] Furthermore, in the data digest system, the data digest system further includes: an initialization module 50 configured to initialize the digest table to obtain an initialized digest table and provide it to the digest table iteration module 40; the digest table iteration module 40 starts iteration from the initialized digest table; the initialized digest table is a specific value.

[0055] Even further, in the data digest system, the infinite data sequence calculation module 20 obtains a linear congruence calculation formula according to the linear congruence method, and adds the plaintext data to the linear congruence calculation formula in a certain operation mode to generate an infinite data sequence related to the plaintext data. The linear congruence method includes: defining the linear congruence calculation formula by the recurrence relation as X n+1 = (aXn (X + c) mod m; where X n is the nth data in the sequence; m is the modulus, which is the maximum period for generating the sequence, m > 0; a is the multiplier, 0 < a < m; c is the increment, 0 ≤ c < m; Common linear congruence method parameters are as Figure 3 shown, and the parameters m, a, and c of the linear congruence calculation formula can be determined accordingly.

[0056] In addition, in the data digest system, adding the plaintext data to the linear congruence calculation formula in a certain operation method includes: performing an exclusive OR operation, an addition operation, a subtraction operation, or an equivalence operation on the plaintext data and the sequence data in the linear congruence calculation formula, and then substituting it as the sequence data of the infinite data sequence; or performing an exclusive OR operation, an addition operation, a subtraction operation, or an equivalence operation on the plaintext data and the multiplier in the linear congruence calculation formula, and then substituting it as the multiplier of the infinite data sequence; or performing an exclusive OR operation, an addition operation, a subtraction operation, or an equivalence operation on the plaintext data and the increment in the linear congruence calculation formula, and then substituting it as the increment of the infinite data sequence.

[0057] Specifically, in the data digest system, the infinite data sequence is: S n+1 = Fs(S n , dat) = (1103515245 * (S n ⊕ dat) + 12345) mod 2^31, S0 = Seed = 12345, where: dat is the plaintext data, Fs(S n , dat) is the infinite data sequence, S0 is the initial value of the pseudo-random sequence; when dat is fixed to 0, Fs(S n , dat) is the linear congruence calculation formula used by the pseudo-random number generation mechanism of glibc.

[0058] In an embodiment of the present invention, in the data digest system, substituting the digest logic input value into the digest logic operation formula to obtain the digest logic output value includes: generating a pseudo-random sequence of one or more infinite data sequences from a plaintext data, substituting it as one or more digest logic input values into the digest logic operation formula, and obtaining one or more digest logic output values; the digest logic operation formula is: R n = Fr(S n ) = S n >> 15; where: S n is the pseudo-random sequence, Fr(S n ) is the digest logic operation formula, indicating that the bits 30 - bit15 of the data in the pseudo-random sequence are used as the result, R nIt is the digest logic output value. In the data digest system, the iteration of the digest table by the digest logic output value includes: updating part or the whole of the digest table with the digest logic output value obtained from each plaintext data; updating part of the digest table includes: dividing the digest table into y parts, and each plaintext data updates one of the parts; the digest length is 256 or 384 or 512 or 1024 bits or other required lengths. In the data digest system, the digest table iteration module 40 is further configured to update the whole digest table with a specific value for the last time.

[0059] In the data digest system provided by the present invention, the plaintext data is input into an expression capable of generating an infinite data sequence through the data digest system, a data sequence related to the plaintext data is generated, and a digest calculation is performed. A relatively simple algorithm can be used to achieve a longer digest length, and the security and reliability are higher. The present invention only needs to perform a single logical operation on the plaintext data to generate a digest of any length.

[0060] The present invention provides a specific embodiment for illustration. For the convenience of description, taking the digest length of 256 bit as an example, the length of the plaintext data is 4 bytes, which are 0x11, 0x22, 0x33, 0x44 in sequence. The symbol markings are explained as follows: Seed is the initial value of the data sequence, S n is the nth value of the data sequence, Fs is the expression for calculating the next value of the data sequence, dat is a parameter for calculating the next value of the data sequence, Fr is the expression for calculating the expression used for the digest logic operation, and R n is the value used for the digest logic operation, and Zt is the digest table;

[0061] First, a convention is made for an expression, and an infinite-length data sequence can be recursively generated through this expression. S0 = Seed, S n+1 = Fs(S n , dat), R n = Fr(S n ); An example of the expression: S0 = 12345, Fs(S n , dat) = (1103515245 * (S n ⊕ dat) + 12345) mod 2^31, Fr(S n ) = S n >> 15; When dat is fixed at 0, the expression Fs is the linear congruential generator used by the glibc's pseudo-random number generation mechanism. The expression Fr represents using bits 30 - bit 15 of the data in the sequence. Initialize the digest table Zt. An initialization example with a digest length of 256 bit is to initialize Zt as the following table (hexadecimal numbers, each cell is 16 bit, a total of 16 cells, a total of 256 bit):

[0062] Bit63~48 Bit47~32 Bit31~16 Bit15~0 +192 0000 0000 0000 0000 +128 0000 0000 0000 0000 +64 0000 0000 0000 0000 +0 0000 0000 0000 0000

[0063] Agree on a digest calculation method and update the digest table through this method.

[0064] More specifically, an example of digest calculation:

[0065] Read the Nth byte of the plaintext data (N >= 1, N <= the length of the plaintext data), substitute this byte into the variable dat, and calculate R using the Fs and Fr expressions. N , substitute R N ⊕ the bit (N mod 16)*16 + 15 to (N mod 16)*16 of Zt as the bit ((N mod 16)+1)*16 - 1 to (N mod 16)*16 of the new Zt;

[0066] Illustrated as follows with this example:

[0067] Read the first byte 0x11 of the plaintext data, substitute 0x11 into the variable dat, and calculate S1 and R1 using the Fs and Fr expressions.

[0068] S1 = (1103515245 * (S0 ⊕ 0x11) + 12345) mod 2^31 = 0x75b0e141, R1 = S1 >> 15 = 0xeb61;

[0069] Take R1 ⊕ the bit 15 to 0 of Zt as the bit 15 to 0 of the new Zt, and the resulting Zt is as follows:

[0070] bit63~48 bit47~32 bit31~16 bit15~0 +192 0000 0000 0000 0000 +128 0000 0000 0000 0000 +64 0000 0000 0000 0000 +0 0000 0000 0000 eb61

[0071] Read the second byte of the plaintext data, substitute 0x22 into the variable dat, and calculate S2 and R2 using the Fs and Fr expressions.

[0072] S2 = (1103515245 * (S1 ⊕ 0x22) + 12345) mod 2^31 = 0x768e5160, R2 = S2 >> 15 = 0xed1c;

[0073] Take R2 ⊕ the bit 31 to 16 of Zt as the bit 31 to 16 of the new Zt;

[0074] Read the third byte of the plaintext data, calculate R3 = 0xa124, and take R3 ⊕ the bit 47 to 32 of Zt as the bit 47 to 32 of the new Zt;

[0075] Read the fourth byte of the plaintext data, calculate R4 = 0xccb4, and take R4 ⊕ the bit 63 to 48 of Zt as the bit 63 to 48 of the new Zt;

[0076] At this time, Zt is as shown in the following table:

[0077] bit63~48 bit47~32 bit31~16 bit15~0 +192 0000 0000 0000 0000 +128 0000 0000 0000 0000 +64 0000 0000 0000 0000 +0 ccb4 a124 ed1c eb61

[0078] Calculate the digest result. One embodiment of calculating the digest result: A specific value 0 can be used to substitute into the variable dat for 16 calculations, and perform exclusive OR operations with bit15~0, bit31~16... bit255~240 of Zt in sequence and use them as the corresponding bits of the final Zt.

[0079] The final Zt is as shown in the following table:

[0080] bit63~48 bit47~32 bit31~16 bit15~0 +192 b88c bfb7 f354 4a75 +128 0f5e 65cf ee24 8029 +64 eac0 14ab 343d 2312 +0 6a01 69e4 aa0d 2748

[0081] That is, for the plaintext data 0x11, 0x22, 0x33, 0x44, the digest value obtained using the digest algorithm in the introduction example is: 0xb88cbfb7f3544a750f5e65cfee248029eac014ab343d23126a0169e4ea0d2748. As can be seen from the foregoing description of the digest algorithm, the plaintext data is used to change the subsequent data of the infinite sequence. The inconsistency of the plaintext data will lead to the inconsistency of the generated infinite sequence data, and further lead to the inconsistency of the finally generated digest result.

[0082] For example, for the plaintext data 0x11, 0x22, 0x33, 0x45, which only differs by 1 bit from the plaintext data in the previous example, the digest value obtained using the digest algorithm in the introduction example is: 0x7fae7ea04a585c712a1ff635a3d45e620ab5b4676aa7cacb2db605e9e511ba0f

[0083] Using the example in the introduction, perform 256-bit length digest calculation on the following 1024 plaintexts with a length of 4 bytes:

[0084] Plaintext 1: 0x11, 0x22, 0x00, 0x00

[0085] Plaintext 2: 0x11, 0x22, 0x00, 0x01

[0086] ……

[0087] Plaintext 256: 0x11, 0x22, 0x00, 0xff

[0088] Plaintext 257: 0x11, 0x22, 0x01, 0x00

[0089] Plaintext 258: 0x11, 0x22, 0x01, 0x01

[0090] ……

[0091] Plaintext 1023: 0x11, 0x22, 0x03, 0xfe

[0092] Plaintext 1024: 0x11, 0x22, 0x03, 0xff

[0093] The result statistics are as Figure 4 shown (the X-axis represents the plaintext number, the Y-axis represents the digest result, and one digest result is split into 8 points for display. For example, 100.0 on the X-axis represents bits 31 to 0 of the digest of plaintext 100, 100.1 represents bits 63 to 32 of the digest, …… 100.7 represents bits 255 to 240 of the digest), and the partial magnification is as Figure 5 shown. It can be seen from Figure 4~5 this that the digest results are randomly distributed and have no obvious correlation with the plaintext data.

[0094] In the embodiments of the present invention, the calculation method of the infinite data sequence includes but is not limited to using the linear congruence calculation formula X n+1 =(aX n +c) mod m; dat can be added to X n in the linear congruence calculation formula in the way of exclusive OR operation ⊕, or other operation methods such as addition + / subtraction - / equivalence ⊙ can also be used. In addition, it can also be added to the coefficients a and c.

[0095] In the embodiments of the present invention, the digest length can be 32bit / 64bit / 128bit / 256bit / 384bit / 512bit / 1024bit / 2048bit, etc. The method for initializing the digest table includes but is not limited to initializing to a specific value such as all 0s / all 1s. The digest calculation method includes but is not limited to: updating the entire digest table for each input plaintext byte, or updating a part of the digest table for each input plaintext byte (for example, dividing the digest table into four parts a, b, c, and d, the 4n-th input byte updates part a of the digest table, the 4n + 1-th input byte updates part b of the digest table, the 4n + 2-th input byte updates part c of the digest table, the 4n + 3-th input byte updates part d of the digest table, and in the introduction example, the digest table is divided into 16 parts); including but not limited to using each 1 input plaintext byte as a parameter to calculate the data sequence for update. Therefore, the present invention only needs to perform a single logical operation on each plaintext data to generate digests of any length, and can generate longer digests with lower complexity compared to existing digest algorithms.

[0096] In the embodiments of the present invention, the digest result calculation method includes but is not limited to: using a specific value 0 or other specific values as the parameter for generating the infinite data sequence to update the entire digest table for the last time.

[0097] In summary, the above embodiments have described in detail different configurations of the data digest system. Of course, the present invention includes but is not limited to the configurations listed in the above embodiments. Any content obtained by transformation based on the configurations provided in the above embodiments belongs to the scope protected by the present invention. Those skilled in the art can draw inferences by analogy based on the content of the above embodiments.

[0098] In this specification, the various embodiments are described in a progressive manner. Each embodiment focuses on the differences from other embodiments. For the same or similar parts among the various embodiments, reference can be made to each other. For the system disclosed in the embodiments, since it corresponds to the method disclosed in the embodiments, the description is relatively simple. For related parts, reference can be made to the description in the method part.

[0099] The above description is only a description of the preferred embodiments of the present invention and does not limit the scope of the present invention in any way. Any changes and modifications made by those of ordinary skill in the art of the present invention based on the above disclosure belong to the scope protected by the claims.

Claims

1. A data digest system, characterized in that, The data digest system inputs the plaintext data as a parameter into an expression that can generate an infinite data sequence, generates a data sequence related to the plaintext data, and performs a digest calculation. The data digest system includes: An input data module configured to input plaintext data into the infinite data sequence calculation module; An infinite data sequence calculation module configured to substitute the plaintext data into the infinite data sequence for calculation to obtain a digest logic input value, and provide the digest logic input value to the digest logic operation module; A digest logic operation module configured to substitute the digest logic input value into a digest logic operation expression to obtain a digest logic output value, and provide the digest logic output value to the digest table iteration module; A digest table iteration module configured to perform iteration of the digest table according to the digest logic output value. Substituting the abstract logic input value into the abstract logic operation formula to obtain the abstract logic output value includes: generating a pseudo-random sequence of one or more infinite data sequences from a piece of plaintext data, substituting it as one or more abstract logic input values into the abstract logic operation formula, and obtaining one or more abstract logic output values; the abstract logic operation formula is: R n = Fr(S n ) = S n >> 15; where: S n is the pseudo-random sequence, Fr(S n ) is the abstract logic operation formula, S n >> 15 means using the bits 30 to 15 of the data in the pseudo-random sequence S n as the result, R n is the abstract logic output value. Performing iteration of the digest table according to the digest logic output value includes: updating part or the whole of the digest table according to the digest logic output value obtained for each plaintext data; updating part of the digest table includes: dividing the digest table into y parts, and each plaintext data updates one of the parts; the digest length is 256bit, 384bit, 512bit or 1024bit.

2. The data summary system according to claim 1, wherein The data digest system further includes: An initialization module configured to initialize the digest table to obtain an initialized digest table; The digest table iteration module starts iteration from the initialized digest table; The initialized digest table is a specific value.

3. The data summary system according to claim 1, wherein The infinite data sequence calculation module obtains a linear congruence calculation formula according to the linear congruence method, and adds the plaintext data to the linear congruence calculation formula in a certain operation manner to generate an infinite data sequence related to the plaintext data.

4. The data summary system according to claim 3, wherein The linear congruence method includes: Define the linear congruence calculation formula by the recurrence relation as X n+1 = (aX n + c) mod m; where X n is the nth value in the sequence; m is the modulus, which is the maximum period for generating the sequence, m > 0; a is the multiplier, 0 < a < m; c is the increment, 0 ≤ c < m; Determine the parameters m, a, and c of the linear congruence calculation formula.

5. The data summary system according to claim 4, wherein Adding the plaintext data to the linear congruence calculation formula in a certain operation manner includes: Performing an exclusive OR operation, addition operation, subtraction operation, or equivalence operation on the plaintext data and the sequence value in the linear congruence calculation formula, and then substituting it back as the sequence value; or Performing an exclusive OR operation, addition operation, subtraction operation, or equivalence operation on the plaintext data and the multiplier in the linear congruence calculation formula, and then substituting it back as the multiplier of the infinite data sequence; or Performing an exclusive OR operation, addition operation, subtraction operation, or equivalence operation on the plaintext data and the increment in the linear congruence calculation formula, and then substituting it back as the increment of the infinite data sequence.

6. The data summary system according to claim 5, wherein, The infinite data sequence is: S n+1 = Fs(S n , dat) = (1103515245 * (S n ⊕ dat) + 12345) mod 2^31, S0 = Seed = 12345, where: dat is the plaintext data, Fs(S n , dat) is an infinite data sequence, and S0 is the initial value of the pseudo-random sequence; When dat is fixed at 0, Fs(S n ,dat) is the linear congruence formula used by glibc's pseudo-random number generation mechanism.

7. The data summary system according to claim 1, characterized in that, The digest table iteration module is further configured to use a specific value to update the whole digest table for the last time.

Citation Information

Patent Citations

  • Random one-way hash function construction method capable of preventing table check-up attack

    CN102546159A