WO2020168627A1 - Encryption and decryption method and device employing zipper-type dynamic hashing and nlfsr techniques - Google Patents
Encryption and decryption method and device employing zipper-type dynamic hashing and nlfsr techniques Download PDFInfo
- Publication number
- WO2020168627A1 WO2020168627A1 PCT/CN2019/083404 CN2019083404W WO2020168627A1 WO 2020168627 A1 WO2020168627 A1 WO 2020168627A1 CN 2019083404 W CN2019083404 W CN 2019083404W WO 2020168627 A1 WO2020168627 A1 WO 2020168627A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- sequence
- plaintext
- pseudo
- bit
- key
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
- H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
- H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
- H04L9/0668—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator producing a non-linear pseudorandom sequence
Definitions
- This application relates to the field of information security, and in particular to an encryption and decryption method and device based on zipper dynamic hashing and NLFSR (Nonlinear Feedback Shift Register).
- NLFSR Near dynamic Feedback Shift Register
- This application can generally be used for network communication information encryption, aerospace digital remote control commands and data encryption, drone digital remote control communication data encryption, early warning aircraft digital communication command system information encryption, GPS satellite digital communication data encryption, mobile communication encryption, big data encryption , Graphic image encryption and email encryption, etc.
- After encryption, military, political, and diplomatic documents can be transmitted using civil communication networks to save file transmission costs.
- Stream cipher is usually a symmetric key technology. Because of its simple implementation and fast encryption speed, errors in ciphertext transmission will not spread in plaintext and other benefits, so it has become an important type of cryptosystem. Stream cipher is the mainstream cipher system used in the world's military and diplomatic fields. The design of the key stream generator is the key to the security of the stream cipher. At present, the more famous stream cipher algorithms include the A5 algorithm used in the European digital cellular mobile phone system GSM and the RC4 algorithm developed by the American RSA Data Security Company. Because stream cipher has many advantages that other ciphers cannot match, it is still one of the most common cipher systems today.
- the design of the key stream generator for stream ciphers is the key to stream cipher technology. Its essence is to generate a key stream composed of 0 and 1 data streams through a given algorithm, usually based on a mathematical model that can generate pseudo-random sequences. Such as: algebraic operations, linear feedback shift register (LFSR, Linear Feedback Shift Register), clock control sequence, combined network sequence, cellular automata and chaos theory, etc.
- LFSR linear feedback shift register
- the sender encrypts the plaintext sequence with a key stream to generate a ciphertext and sends it to the receiver; the receiver uses the same key stream to decrypt the ciphertext to recover the plaintext sequence.
- LFSR linear feedback shift register
- the sender encrypts the plaintext sequence with a key stream to generate a ciphertext and sends it to the receiver; the receiver uses the same key stream to decrypt the ciphertext to recover the plaintext sequence.
- many scholars have mastered the means to attack and decipher the above encryption
- the purpose of this application is to solve the shortcomings of the prior art, and provide an encryption and decryption method based on zipper dynamic hash and nonlinear feedback shift register and corresponding encryption and decryption device, so that the ciphertext has strong randomness and indispensability. Predictability, so as to obtain the technical effect of increasing the difficulty of deciphering the ciphertext.
- this application proposes an encryption and decryption method based on zipper dynamic hashing and NLFSR.
- the method can include the following steps:
- the key stream generator is constructed based on the nonlinear feedback shift register and bit transformation rules, and the nonlinear feedback shift register as a pseudo-random sequence generator with high security can effectively resist related attacks and algebraic attacks; so The above encryption method can effectively increase the difficulty of deciphering the ciphertext.
- step S100 further includes the following sub-steps:
- the starting position of the circular filling is any legal position in the first output sequence.
- step S300 further includes the following sub-steps:
- the pseudo-plaintext sequence is decomposed into multiple pseudo-plaintext sub-sequences according to the true value bits and false value bits of the key stream sequence;
- the multi-path pseudo-plaintext sub-sequence and the key stream sequence are respectively scanned bidirectionally to dynamically hash the multi-path pseudo-plaintext sub-sequence into the ciphertext space in a zippered manner.
- the plaintext sequence, the key stream sequence, and the ciphertext stream sequence all adopt the data structure of a circular queue, and encryption and decryption are performed from any legal data in the corresponding circular queue. The position starts.
- bit transformation Boolean function is a bitwise inverse function according to a specific bit of the key stream sequence.
- the nonlinear feedback function is a feedback function with an algebraic order of 4 or more.
- this application also proposes an encryption and decryption device based on zipper dynamic hashing and NLFSR.
- the device may include the following modules: a first key stream generation module for preprocessing the seed key using a non-linear feedback function and a bit transformation Boolean function to form a key stream sequence; a pseudo-plaintext generation module for generating The bit transformation Boolean function of the key stream sequence changes the bit value of the plain text sequence to form a pseudo-plain text sequence; the pseudo-plain text division module is used to divide the pseudo-plain text sequence into multiple pseudo-plain text sub-sequences according to the key stream sequence; the first dynamic dispersal The column module is used to calculate the dynamic hash address corresponding to the binary bit of each pseudo-plaintext sequence according to the hash mapping rules that depend on the key stream sequence, and hash the pseudo-plaintext sub-sequences divided into multiple paths to the cipher In the text space to form a ciphertext stream sequence.
- the second key stream generation module obtains the ciphertext stream sequence, and uses the same nonlinear feedback function and the bit transformation Boolean function Preprocess the pre-appointed seed key to form a key stream sequence;
- the second dynamic hash module is used to calculate the corresponding binary bits of each ciphertext sequence according to the inverse hash mapping rule dependent on the key stream sequence Hash the address and map the ciphertext sequence to the plaintext storage space to form multiple pseudo-plaintext subsequences; pseudo-plaintext merge module, used to merge multiple pseudo-plaintext subsequences to form a pseudo-plaintext sequence; pseudo-plaintext
- the restoration module is used to change the bit value of the pseudo plaintext sequence according to the bit transformation Boolean function based on the key stream sequence to form the plaintext sequence.
- the key stream generation module further includes the following sub-modules: a first output module for inputting a seed key to a nonlinear feedback function to generate a first output sequence; a second output The module is used to loop the first output sequence to fill the second output sequence formed into the key stream sequence space; the displacement module is used to input the second output sequence to transform the Boolean function to form the key stream sequence.
- the starting position of the circular filling is any legal position in the first output sequence.
- the first dynamic hash module further includes the following sub-modules: a decomposition module for decomposing the pseudo-plaintext sequence into true value bits and false value bits of the key stream sequence A multi-path pseudo-plaintext sub-sequence; a hash module for scanning the multi-path pseudo-plain-text sub-sequence and the key stream sequence in a bidirectional cycle respectively to dynamically hash the multi-path pseudo-plaintext sub-sequence into the ciphertext space in a zippered fashion.
- a decomposition module for decomposing the pseudo-plaintext sequence into true value bits and false value bits of the key stream sequence A multi-path pseudo-plaintext sub-sequence
- a hash module for scanning the multi-path pseudo-plain-text sub-sequence and the key stream sequence in a bidirectional cycle respectively to dynamically hash the multi-path pseudo-plaintext sub-sequence into the ciphertext space in a zippered fashion.
- the plaintext sequence, the key stream sequence, and the ciphertext stream sequence all adopt the data structure of a circular queue, and encryption and decryption are performed from any legal data in the corresponding circular queue. The position starts.
- bit transformation Boolean function is a bitwise inverse function according to a specific bit of the key stream sequence.
- the nonlinear feedback function is a feedback function with an algebraic order of 4 or more.
- this application also proposes a computer-readable storage medium on which computer instructions are stored. When the above instructions are executed by the processor, the following steps are performed:
- the key stream generator is constructed based on the nonlinear feedback shift register and bit transformation rules, and the nonlinear feedback shift register as a pseudo-random sequence generator with high security can effectively resist related attacks and algebraic attacks; so The above encryption method can effectively increase the difficulty of deciphering the ciphertext.
- step S100 further includes the following sub-steps:
- the starting position of the loop filling is any legal position in the first output sequence.
- step S300 further includes the following sub-steps:
- the multi-path pseudo-plaintext sub-sequence and the key stream sequence are respectively scanned bidirectionally to dynamically hash the multi-path pseudo-plaintext sub-sequence into the ciphertext space in a zippered manner.
- the plaintext sequence, the key stream sequence, and the ciphertext stream sequence all adopt a circular queue data structure, and encryption and decryption are performed from the corresponding Start at any legal position in the circular queue.
- the bit transformation Boolean function is a bitwise inverse function according to a specific bit of the key stream sequence.
- the nonlinear feedback function is a feedback function with an algebraic order of 4 or more.
- the beneficial effect of this application is: by introducing a bit transformation rule in the key stream generator to change the bit value of the output sequence of the nonlinear feedback shift register, a key with longer period and better randomness is obtained.
- Streaming makes the uniformity of the ciphertext higher than that of the traditional stream cipher method, thereby obtaining the technical effect of increasing the difficulty of deciphering the ciphertext stream sequence.
- the encryption and decryption process can be easily implemented by encoding, and the time and space complexity of related algorithms is not higher than that of traditional methods;
- the generated ciphertext stream sequence has strong randomness and unpredictability, and it is extremely difficult to decipher;
- the relationship between the plaintext stream sequence and the ciphertext stream sequence is not the traditional one-to-one, one-to-many relationship, but disordered encryption, that is, the relationship between the plaintext stream sequence and the ciphertext stream sequence is the most complicated Many-to-many relationship;
- the uniformity of the ciphertext stream sequence is higher than the uniformity of the ciphertext stream sequence encrypted by the traditional stream cipher method
- the encrypted ciphertext stream sequence can be transmitted in the existing and open communication channel
- the corresponding security system can adopt the three separate principles of plaintext encryption, sending, and decryption to make the communication process more secure.
- Figure 1 shows a flowchart of the encryption method based on zipper dynamic hashing and NLFSR disclosed in this application
- Figure 2 shows a schematic diagram of a communication process for implementing the method shown in Figure 1;
- Figure 3 shows a flowchart of a sub-method of forming a key stream sequence in an embodiment of the present application
- FIG. 4 is a schematic diagram of the formation process of the key stream sequence shown in FIG. 3;
- FIG. 5 shows a logical structure diagram of a non-linear feedback registration function in an embodiment of the application
- Figure 6 shows a schematic diagram of the generated key stream sequence
- Figure 7 shows a schematic diagram of the bit transformation process of a plaintext stream sequence
- FIG. 8 shows a flowchart of a sub-method of forming a ciphertext stream sequence in an embodiment of the present application
- FIG. 9 shows a schematic diagram of dynamic zippered hashing of multiple pseudo-plaintext subsequences into ciphertext space
- Figure 10 shows a schematic diagram of zipper-type dynamic hashing of a plaintext stream sequence
- Figure 11 shows a flow chart of a decryption method for a ciphertext stream sequence
- Figure 12 shows a schematic diagram of the reverse hashing of the ciphertext stream sequence into two paths for storage in the plaintext space
- Figure 13 is a schematic diagram of the bit transformation process of the pseudo-plaintext sequence
- Fig. 14 shows a block diagram of the encryption and decryption module based on zipper dynamic hashing and NLFSR disclosed in this application.
- first, second, third, etc. may be used in this application to describe various elements, these elements should not be limited to these terms. These terms are only used to distinguish elements of the same type from each other.
- first element may also be referred to as the second element, and similarly, the second element may also be referred to as the first element.
- word "if” as used herein can be interpreted as "when” or "when”.
- M is a set of plaintext symbols
- C is a set of cryptographic symbols
- K is a set of reference byte symbols (also called a key set)
- E is a set of encryption algorithms
- D is a set of decryption algorithms .
- len(M) is the number of bytes in the plaintext sequence.
- 8 ⁇ len(M) is the binary number of the plaintext sequence.
- M i (i ⁇ [0,len(M)-1]) is a byte of the plaintext sequence.
- m j ⁇ 0,1 ⁇ , j ⁇ [0,8 ⁇ len(M)-1] is a binary bit of the plaintext sequence.
- len(K) is the number of bytes in the key stream sequence.
- 8 ⁇ len(K) is the binary number of the key stream sequence.
- K i (i ⁇ [0,len(K)-1]) is a byte of the key stream sequence.
- key j ⁇ 0,1 ⁇ , j ⁇ [0,8 ⁇ len(K)-1] is a binary bit of the key stream sequence.
- len(C) is the number of bytes in the ciphertext stream sequence.
- len(C) len(M), that is, the length of the plaintext sequence is equal to the length of the ciphertext stream sequence.
- 8 ⁇ len(C) is the binary number of the ciphertext stream sequence.
- C i (i ⁇ [0,len(C)-1]) is a byte of the ciphertext stream sequence;
- c j ⁇ 0,1 ⁇ , j ⁇ [0,8 ⁇ len(C)- 1] is a binary bit (bit) of the ciphertext stream sequence.
- the information in the M, K, and C sets is a byte symbol set composed of binary symbols ⁇ 0, 1 ⁇ . Among them, the number of symbol ⁇ 1 ⁇ in each set is denoted as sum(M), sum(K) and sum(C), and sum(M) is not necessarily equal to sum(C).
- the elements of the encryption algorithm set E are a set of zipper hashing and bit transformation rules for encryption operations.
- the element of the decryption algorithm set D is a set of zipper hash and bit transformation rules used for decryption operations, where the rules in set E should correspond to unique rules in set D, and the encryption rules and decryption rules are Reciprocal.
- the above encryption method is mainly based on the following principles:
- the key stream generator is constructed based on a nonlinear feedback shift register and a bit-transformed Boolean function.
- the nonlinear feedback shift register can effectively resist related attacks and algebraic attacks.
- the introduction of the bit transformation Boolean function is used to change the bit value of the key stream, thereby obtaining a longer cycle and better random key; in addition, the complexity of the nonlinear feedback shift register is high, so far there is no universally applicable Means of algebraic attacks against it;
- the output sequence of the non-linear feedback shift register is periodic.
- the period of the output sequence can be as long as 2 n -1.
- This method can also use multi-key encryption, and the initial ciphertext is used as a parameter to perform multiple encryptions to obtain the final ciphertext, which further improves the security of information and better meets the ever-increasing demand for information encryption.
- the key can be placed in the hands of different people to ensure that the plaintext is more secure.
- the output sequence obtained by preprocessing the seed key by the nonlinear feedback shift register and the bit transformation Boolean function is used as the key stream.
- the bit value of the plaintext is changed according to the bit conversion rule that depends on the key stream sequence.
- the zipper-type hash mapping rule that depends on the key stream calculate the hash address of each plaintext binary bit, and map it to the ciphertext space according to the hash address In, so as to get the ciphertext stream sequence.
- step S100 further includes the following sub-steps:
- nonlinear feedback shift register NLFSR
- linear feedback shift register LFSR
- the exclusive OR gate is represented as binary addition
- the AND gate is represented as binary multiplication
- the difference between NLFSR and LFSR is that the feedback logic of NLFSR is composed of XOR gates and AND gates, while the feedback logic of LFSR is only composed of XOR gates.
- the output sequence of the nonlinear feedback shift register is periodic. For a seed key of length n, the period of the output sequence can be as long as 2 n -1.
- the above method changes the bit value of the key stream by introducing a bit transformation Boolean function, thereby obtaining a key stream with longer period and better randomness. Therefore, the above method does not need to design an optimal nonlinear feedback shift register, and achieves better average performance.
- the key stream sequence K is obtained. Perform bit transformation on the plaintext sequence M with reference to the key stream sequence K to obtain M', and then perform zipper dynamic hashing on the transformed plaintext sequence M'according to the key stream sequence K, and finally obtain the ciphertext stream sequence C.
- Seed_Key ⁇ 1000 ⁇ 2
- the seed key is processed by the F 1 function Then get the first output sequence S.
- the starting position of the cyclic filling can be any legal position in the first output sequence S. In this example, the starting position of the cyclic filling is set as the first item of the first output sequence S.
- j is called the "bit order", which is the number of the binary bits of the key stream, starting from 0 in this example.
- C 1 , X 1 , Y 1 , Z 1 , C 2 , X 2 , Y 2 , Z 2 are predetermined integers, in this example the value is 0,1,4,0,0,1,7 , 0.
- Its extended ASCII code (hexadecimal) is ⁇ 0X34,0XBB,0XF6,0XEA ⁇ 16 , convert it to binary to get ⁇ 00110100,10111011,11110110,11101010 ⁇ 2 , as shown in Figure 6.
- M "aaaa” represents a plaintext sequence, which is an encrypted input sequence.
- ⁇ 0X61,0X61,0X61,0X61 ⁇ 16 is the extended ASCII code (hexadecimal) of the plaintext sequence "aaaa”, convert it to binary to get ⁇ 01100001,01100001,01100001,01100001 ⁇ 2 , as shown in Figure 7.
- ⁇ 0XAA,0X25,0X68,0X74 ⁇ 16 is the extended ASCII code (hexadecimal) of the pseudo-plaintext sequence M', which is converted to binary to obtain ⁇ 10101010,00100101,01101000,01110100 ⁇ 2 , as shown in Figure 7.
- ⁇ 0X94,0XD0,0XDB,0X0C ⁇ 16 is the ciphertext stream sequence
- the plaintext sequence, key stream sequence, and ciphertext stream sequence all adopt a logical structure shaped like a circular queue, which can be calculated at any position in the queue.
- the working pointers p1 and p2 point to the plaintext binary bits M[0], M[31], q1 and q2 point to key binary bits K[0], K[31], and road points to ciphertext binary bit C[0].
- the bit conversion rule applied to the plaintext is: according to the specific bit of the key K, the bit-wise inversion, in this example, the "false" value binary bit.
- Figure 7 shows that according to the "false" bit of the key K, the corresponding bit of the plaintext M is reversed to obtain the pseudo-plaintext sequence M'.
- Zipper hashing uses the idea of n-way merging. Randomly merge the binary bits that meet the conditions, thereby disturbing the sequence of the binary code of the pseudo-plaintext sequence.
- n 2
- the pseudo-plaintext sequence M' is divided into two paths according to the key stream sequence K
- the pointers p1 and p2 whose initial value can take any legal position in the circular queue, the pointer p1 looks for the "true" value bit in the key stream sequence, and the road1 is formed by M'[p1]; the pointer p2 looks for the key stream sequence
- the "false" value bit is composed of M'[p2] road2, as shown in Figure 9.
- the ciphertext space C is the road shown in FIG. 9.
- the binary codes of road1 and road2 in Fig. 7 are mapped to the ciphertext space C according to the zipper-type dynamic hash method, and the finally obtained ciphertext stream sequence is shown in Fig. 10.
- Decryption is the inverse operation of the encryption process. By scanning the key stream sequence and the ciphertext stream sequence, calculate the hash address corresponding to the binary bit of each ciphertext stream sequence, and map the ciphertext stream sequence hash to the plaintext storage space , To form multiple pseudo-plaintext subsequences; merge multiple pseudo-plaintext subsequences to form a pseudo-plaintext sequence; change the bit value of the pseudo-plaintext sequence according to the bit transformation Boolean function based on the key stream sequence to form a plaintext sequence. Referring to the method flowchart shown in FIG. 11, in one or more embodiments of the present application, the following steps for decryption are further included:
- the seed key Seed_Key the non-linear feedback function F 1 (x 0 , x 1 , x 2 , x 3 ), the bit transformation Boolean function F 2 (j), and
- the initial values of each item are the same as those during encryption, and the resulting key stream is also the same, as shown in Figure 6.
- ⁇ 0XAA,0X25,0X68,0X74 ⁇ 16 is the extended ASCII code (hexadecimal) of M', convert it to binary to get ⁇ 10101010,00100101,01101000,01110100 ⁇ 2 .
- ⁇ 0X61,0X61,0X61,0X61 ⁇ 16 is the extended ASCII code (hexadecimal) of the plaintext "aaaa”, convert it to binary to get ⁇ 01100001,01100001,01100001,01100001 ⁇ 2 .
- the plaintext sequence, the key stream sequence and the ciphertext stream sequence all adopt a logical structure like a circular queue, which can be calculated at any position in the queue.
- the working pointers p1 and p2 point to the plaintext sequence binary bits M[0], M[31] , Q1, q2 point to key binary bits K[0], K[31], road points to ciphertext binary bit C[0].
- bit transformation rule applied to the pseudo-plaintext sequence M' is: according to the specific bit of the key stream sequence K, the bit-wise inversion, in this example, it is a binary bit with a "false" value.
- Figure 13 shows that the plaintext sequence M is obtained by bit-inverting the corresponding bits of the pseudo-plaintext sequence M'according to the "false" value bits of the key K.
- the encryption and decryption method based on zipper dynamic hashing and NLFSR disclosed in this application includes the following modules: a key stream generation module, which is used to use nonlinear The feedback function and the bit transformation Boolean function preprocess the seed key to form a key stream sequence; the pseudo-plaintext generation module is used to change the bit value of the plaintext sequence according to the bit transformation Boolean function based on the key stream sequence to form a pseudo-plaintext sequence ; Pseudo-plaintext division module, used to divide the pseudo-plaintext sequence into multiple pseudo-plaintext sub-sequences according to the key stream sequence; ciphertext stream generation module, used to calculate each The binary bits of the pseudo-plaintext sequence correspond to a dynamic hash address, and the multiplexed pseudo-plaintext subsequences are hashed into the ciphertext space to form a ciphertext stream sequence.
- a key stream generation module which is used to use nonlinear The feedback function and the bit transformation Boolean function
- Plaintext storage space M new char[M_bytes+1];
- Ciphertext storage space C new char[M_bytes+1]
- p_str is a pointer to a character string
- n represents a binary bit with a subscript of n
- p_str is a pointer to a character string
- n represents a binary bit with a subscript of n
- p_str is a pointer to a character string
- n represents a binary bit with a subscript of n
- Function return value return the value 0 or 1 of the nth bit of the string pointed to by p
- str is the seed key
- Seq is the first output sequence character string generated by the non-linear feedback function of the seed key, consisting of two characters: ‘0’ and ‘1’;
- Function function Convert the output sequence Seq of the nonlinear feedback function into a character string, and store it in the key space K in a circular filling method
- the bit conversion rule of the plaintext is: according to the false value bit of the key stream K, the corresponding binary bit of the plaintext is inverted
- road1 and road1 are the initial values of the working pointers, which are also the starting positions for splitting the plaintext into 2-way
- the ciphertext storage space C new char[C_bytes+1];
- p_str is a pointer to a character string
- n represents a binary bit with a subscript of n
- p_str is a pointer to a character string
- n represents a binary bit with a subscript of n
- p_str is a pointer to a character string
- n represents a binary bit with a subscript of n
- Function return value return the value 0 or 1 of the nth bit of the string pointed to by p
- str is the seed key
- a, b, c, d are non-linear feedback functions
- Seq is the first output sequence character string generated by the non-linear feedback function of the seed key, consisting of two characters: ‘0’ and ‘1’;
- Function function Convert the output sequence Seq of the non-linear feedback function into a character string, and store it in the key space K by means of circular filling.
- road1 and road1 are the initial value of the working pointer, and also the starting position of the 2-way merged ciphertext
- the bit conversion rule of the plaintext is: according to the false value bit of the key stream K, the corresponding binary bit of the plaintext is inverted
- the disclosed device and method may be implemented in other ways.
- the system embodiment described above is merely illustrative.
- the division of the modules or units is only a logical function division.
- there may be other division methods for example, multiple units or components may be Combined or can be integrated into another system, or some features can be ignored or not implemented.
- the displayed or discussed mutual coupling or direct coupling or communication connection may be indirect coupling or communication connection through some interfaces, devices or units, and may be in electrical, mechanical or other forms.
- the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the objectives of the solutions of the embodiments.
- the functional units in the various embodiments of the present invention may be integrated into one processing unit, or each unit may exist alone physically, or two or more units may be integrated into one unit.
- the above-mentioned integrated unit can be implemented in the form of hardware or software functional unit.
- the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer readable storage medium.
- the present invention implements all or part of the processes in the above-mentioned embodiments and methods, and can also be completed by instructing relevant hardware through a computer program.
- the computer program can be stored in a computer-readable storage medium. When the program is executed by the processor, the steps of the foregoing method embodiments can be implemented.
- the computer program includes computer program code, and the computer program code may be in the form of source code, object code, executable file, or some intermediate forms.
- the computer-readable medium may include: any entity or device capable of carrying the computer program code, recording medium, U disk, mobile hard disk, magnetic disk, optical disk, computer memory, read-only memory (ROM, Read-Only Memory) , Random Access Memory (RAM, Random Access Memory), electrical carrier signal, telecommunications signal, and software distribution media, etc.
- ROM Read-Only Memory
- RAM Random Access Memory
- electrical carrier signal telecommunications signal
- software distribution media etc.
- the content contained in the computer-readable medium can be appropriately added or deleted in accordance with the requirements of the legislation and patent practice in the jurisdiction.
- the computer-readable medium Does not include electrical carrier signals and telecommunication signals.
Abstract
Description
Claims (10)
- 一种基于拉链式动态散列和NLFSR的加密解密方法,其特征在于,包括以下步骤:An encryption and decryption method based on zipper dynamic hashing and NLFSR, which is characterized in that it includes the following steps:S100)利用非线性反馈函数和位变换布尔函数预处理种子密钥,以形成密钥流序列;S100) Preprocessing the seed key using a non-linear feedback function and a bit transformation Boolean function to form a key stream sequence;S200)按照基于密钥流序列的位变换布尔函数改变明文序列的位值,以形成伪明文序列;S200) Changing the bit value of the plaintext sequence according to the bit transformation Boolean function based on the key stream sequence to form a pseudo-plaintext sequence;S300)按照密钥流序列将伪明文序列划分为多路伪明文子序列;S300) Divide the pseudo-plaintext sequence into multiple pseudo-plaintext sub-sequences according to the key stream sequence;S400)按照依赖于密钥流序列的散列映射规则,计算每个伪明文序列的二进制位所对应动态散列地址,并将分为多路的伪明文子序列散列映射到密文空间中以形成密文流序列。S400) According to the hash mapping rule that depends on the key stream sequence, calculate the dynamic hash address corresponding to the binary bit of each pseudo-plaintext sequence, and hash the pseudo-plaintext subsequences divided into multiple paths into the ciphertext space To form a sequence of ciphertext streams.
- 根据权利要求1所述的加密解密方法,其特征在于,还包括以下用于解密的步骤:The encryption and decryption method according to claim 1, characterized in that it further comprises the following steps for decryption:S500)获取密文流序列,并利用相同的所述非线性反馈函数和所述位变换布尔函数预处理预先约定的种子密钥,以形成密钥流序列;S500) Obtain a ciphertext stream sequence, and use the same non-linear feedback function and the bit transformation Boolean function to preprocess a predetermined seed key to form a key stream sequence;S600)按照依赖于密钥流序列的逆散列映射规则,计算每个密文序列的二进制位所对应散列地址,并将密文序列散列映射到明文存储空间中,以形成多路伪明文子序列;S600) According to the inverse hash mapping rule that depends on the key stream sequence, calculate the hash address corresponding to the binary bit of each ciphertext sequence, and map the ciphertext sequence hash to the plaintext storage space to form a multi-path pseudo Plaintext subsequence;S700)合并多路伪明文子序列,以形成伪明文序列;S700) Combine multiple pseudo-plaintext subsequences to form a pseudo-plaintext sequence;S800)按照基于密钥流序列的位变换布尔函数改变伪明文序列的位值,以形成明文序列。S800) Changing the bit value of the pseudo-plaintext sequence according to the bit transformation Boolean function based on the key stream sequence to form the plaintext sequence.
- 根据权利要求1或2所述的加密解密方法,其特征在于,所述步骤S100还包括以下子步骤:The encryption and decryption method according to claim 1 or 2, wherein the step S100 further comprises the following sub-steps:S101)输入种子密钥到非线性反馈函数以生成第一输出序列;S101) Input the seed key to the nonlinear feedback function to generate the first output sequence;S102)循环第一输出序列以填充形成为密钥流序列空间的第二输出序列;S102) Loop the first output sequence to fill the second output sequence formed into the key stream sequence space;S103)输入第二输出序列到位变换布尔函数以形成密钥流序列。S103) Input the second output sequence to transform the Boolean function in place to form a key stream sequence.
- 根据权利要求3所述的加密解密方法,其特征在于,在所述步骤S102中,循环填充的起始位置是第一输出序列中的任意合法位置。The encryption and decryption method according to claim 3, characterized in that, in the step S102, the starting position of the cyclic filling is any legal position in the first output sequence.
- 根据权利要求4所述的加密解密方法,其特征在于,所述步骤S300还包括以下的子步骤:The encryption and decryption method according to claim 4, wherein the step S300 further comprises the following sub-steps:S301)将伪明文序列按照密钥流序列的真值位和假值位分解为多路伪明文子序列;S301) The pseudo-plaintext sequence is decomposed into multiple pseudo-plaintext sub-sequences according to the true value bits and false value bits of the key stream sequence;S302)分别双向循环扫描所述多路伪明文子序列和密钥流序列,以将多路伪明文子序列拉链式动态散列到密文空间。S302) The multi-path pseudo-plaintext sub-sequence and the key stream sequence are respectively scanned bidirectionally to dynamically hash the multi-path pseudo-plaintext sub-sequence into the ciphertext space in a zippered manner.
- 根据权利要求1或2所述的加密解密方法,其特征在于,所述明文序列、所述密钥流序列和所述密文流序列都采用循环队列的数据结构,并且加密解密是从相应循环队列中的任意合法位置开始。The encryption and decryption method according to claim 1 or 2, wherein the plaintext sequence, the key stream sequence, and the ciphertext stream sequence all adopt the data structure of a circular queue, and the encryption and decryption is performed from the corresponding circular sequence. Start at any legal position in the queue.
- 根据权利要求1或2所述的加密解密方法,其特征在于,所述位变换布尔函数是根据密钥流序列的特定位按位取反函数。The encryption and decryption method according to claim 1 or 2, wherein the bit transformation Boolean function is a bitwise inverse function according to a specific bit of the key stream sequence.
- 根据权利要求1或2所述的加密解密方法,其特征在于,所述非线性反馈函数是代数阶数为4以上的反馈函数。The encryption and decryption method according to claim 1 or 2, wherein the nonlinear feedback function is a feedback function with an algebraic order of 4 or more.
- 一种基于拉链式动态散列和NLFSR的加密解密装置,其特征在于,包括以下模块:An encryption and decryption device based on zipper dynamic hashing and NLFSR, which is characterized in that it includes the following modules:第一密钥流生成模块,用于利用非线性反馈函数和位变换布尔函数预处理种子密钥,以形成密钥流序列;The first key stream generation module is used to preprocess the seed key using a nonlinear feedback function and a bit transformation Boolean function to form a key stream sequence;伪明文生成模块,用于按照基于密钥流序列的位变换布尔函数改变明文序列的位值,以形成伪明文序列;The pseudo-plaintext generation module is used to change the bit value of the plaintext sequence according to the bit transformation Boolean function based on the key stream sequence to form a pseudo-plaintext sequence;伪明文划分模块,用于按照密钥流序列将伪明文序列划分为多路伪明文子序列;The pseudo-plaintext division module is used to divide the pseudo-plaintext sequence into multiple pseudo-plaintext sub-sequences according to the key stream sequence;第一动态散列模块,用于按照依赖于密钥流序列的散列映射规则,计算每个伪明文序列的二进制位所对应动态散列地址,并将分为多路的伪明文子序列散列映射到密文空间中以形成密文流序列。The first dynamic hash module is used to calculate the dynamic hash address corresponding to the binary bit of each pseudo-plaintext sequence according to the hash mapping rules that depend on the key stream sequence, and hash the pseudo-plaintext sub-sequences divided into multiple paths The columns are mapped into the ciphertext space to form a ciphertext stream sequence.
- 一种计算机可读存储介质,其上存储有计算机指令,其特征在于该指令被处理器执行时实现如权利要求1至8中任一项所述的方法的步骤。A computer-readable storage medium with computer instructions stored thereon, characterized in that the instructions implement the steps of the method according to any one of claims 1 to 8 when the instructions are executed by a processor.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910121128.6 | 2019-02-19 | ||
CN201910121128.6A CN109981249B (en) | 2019-02-19 | 2019-02-19 | Encryption and decryption method and device based on zipper type dynamic hash and NLFSR |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020168627A1 true WO2020168627A1 (en) | 2020-08-27 |
Family
ID=67077032
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2019/083404 WO2020168627A1 (en) | 2019-02-19 | 2019-04-19 | Encryption and decryption method and device employing zipper-type dynamic hashing and nlfsr techniques |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109981249B (en) |
WO (1) | WO2020168627A1 (en) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113271202B (en) * | 2020-02-14 | 2022-05-31 | 中移(苏州)软件技术有限公司 | Data encryption method and device |
CN111258549B (en) * | 2020-04-30 | 2020-08-11 | 江苏亨通问天量子信息研究院有限公司 | Quantum random number post-processing device based on nonlinear feedback shift register |
CN111669269B (en) * | 2020-06-08 | 2023-08-15 | 晋商博创(北京)科技有限公司 | BLK data encryption method, device and storage medium |
CN112260828A (en) * | 2020-10-19 | 2021-01-22 | 黑龙江大学 | Light-weight key sequence generator based on chaotic system and FPGA |
CN117315808B (en) * | 2023-11-28 | 2024-02-13 | 成都博瑞科传科技有限公司 | Portable water quality inspection instrument based on data integrity verification and acquisition method |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1425987A (en) * | 2001-12-10 | 2003-06-25 | 中国科学院软件研究所 | Encrypting method for reinforcing disordered block cipher |
CN1852088A (en) * | 2005-10-13 | 2006-10-25 | 华为技术有限公司 | Enciphering-deciphering method for flow medium transmission code flow and module |
CN104486068A (en) * | 2014-12-12 | 2015-04-01 | 苏州中科启慧软件技术有限公司 | Stream cipher algorithm SNRR based on nonlinear circulating shift register |
CN106953875A (en) * | 2017-04-26 | 2017-07-14 | 吉林大学珠海学院 | Ordered encryption method based on multi-key cipher stream cipher |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040086117A1 (en) * | 2002-06-06 | 2004-05-06 | Petersen Mette Vesterager | Methods for improving unpredictability of output of pseudo-random number generators |
US8861725B2 (en) * | 2012-07-10 | 2014-10-14 | Infineon Technologies Ag | Random bit stream generator with enhanced backward secrecy |
CN102983972B (en) * | 2012-10-18 | 2015-06-10 | 吉林大学珠海学院 | Dynamic encryption and decryption method based on stream cipher |
CN103095449B (en) * | 2013-01-16 | 2015-11-04 | 吉林大学 | A kind of dynamic encryption decryption method based on stream cipher |
US8983068B2 (en) * | 2013-03-06 | 2015-03-17 | Infineon Technologies Ag | Masked nonlinear feedback shift register |
CN103338104B (en) * | 2013-06-05 | 2016-02-24 | 中北大学 | The encryption method of recorder real-time data collection |
EP3235162B1 (en) * | 2014-12-17 | 2021-02-17 | Telefonaktiebolaget LM Ericsson (publ) | Stream ciphering technique |
CN105141413B (en) * | 2015-08-06 | 2018-05-15 | 吉林大学 | Circular linked list exclusive or encryption method and decryption method based on stream cipher |
CN105897403A (en) * | 2016-04-01 | 2016-08-24 | 苏州中科启慧软件技术有限公司 | Stream cipher technology SPRR based on parallel cyclic shift register |
CN105959118A (en) * | 2016-04-28 | 2016-09-21 | 吉林大学 | Double-bit unidirectional circular linked list encryption and decryption method based on stream ciphers |
CN106254062B (en) * | 2016-10-12 | 2019-03-26 | 中国人民解放军信息工程大学 | Stream cipher realization device and its sequential cipher realization method |
CN113411805A (en) * | 2017-04-27 | 2021-09-17 | 华为技术有限公司 | Authentication method, authentication equipment and user equipment for realizing network access |
CN108777622B (en) * | 2018-05-11 | 2021-03-26 | 吉林大学 | Binary stream hash modular encryption and decryption method |
CN108777611B (en) * | 2018-05-11 | 2021-06-18 | 吉林大学 | Bidirectional linked list sequential encryption and decryption method based on double-key stream cipher |
CN109194461B (en) * | 2018-05-11 | 2022-02-22 | 吉林大学 | Single-direction linked list sequence encryption and decryption method based on double-key stream cipher |
-
2019
- 2019-02-19 CN CN201910121128.6A patent/CN109981249B/en active Active
- 2019-04-19 WO PCT/CN2019/083404 patent/WO2020168627A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1425987A (en) * | 2001-12-10 | 2003-06-25 | 中国科学院软件研究所 | Encrypting method for reinforcing disordered block cipher |
CN1852088A (en) * | 2005-10-13 | 2006-10-25 | 华为技术有限公司 | Enciphering-deciphering method for flow medium transmission code flow and module |
CN104486068A (en) * | 2014-12-12 | 2015-04-01 | 苏州中科启慧软件技术有限公司 | Stream cipher algorithm SNRR based on nonlinear circulating shift register |
CN106953875A (en) * | 2017-04-26 | 2017-07-14 | 吉林大学珠海学院 | Ordered encryption method based on multi-key cipher stream cipher |
Also Published As
Publication number | Publication date |
---|---|
CN109981249A (en) | 2019-07-05 |
CN109981249B (en) | 2020-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020168627A1 (en) | Encryption and decryption method and device employing zipper-type dynamic hashing and nlfsr techniques | |
Kumar et al. | Development of modified AES algorithm for data security | |
WO2018196634A1 (en) | Sequential encryption method based on multiple key stream passwords | |
US7657033B2 (en) | Cryptography related to keys | |
EP0725511B1 (en) | Method for data encryption/decryption using cipher block chaining (CBC) and message authentication codes (MAC) | |
WO2020168628A1 (en) | Encryption and decryption method and device based on random hash and bit operation | |
CN109194461B (en) | Single-direction linked list sequence encryption and decryption method based on double-key stream cipher | |
CN103825723A (en) | Encryption method and device | |
US10148425B2 (en) | System and method for secure communications and data storage using multidimensional encryption | |
WO2020168629A1 (en) | Encryption and decryption method employing bit permutation and bit manipulation, and device | |
JP2008513811A (en) | Calculation conversion method and system | |
US8122075B2 (en) | Pseudorandom number generator and encryption device using the same | |
Pisarchik et al. | Chaotic map cryptography and security | |
Joshy et al. | Text to image encryption technique using RGB substitution and AES | |
Mahboob et al. | A novel construction of substitution box based on polynomial mapped and finite field with image encryption application | |
JPWO2006019152A1 (en) | Message authenticator generation device, message authenticator verification device, and message authenticator generation method | |
Masoodi et al. | Symmetric Algorithms I | |
Patel et al. | Hybrid security algorithms for data transmission using AES-DES | |
Buell | Modern symmetric ciphers—Des and Aes | |
CN108777611B (en) | Bidirectional linked list sequential encryption and decryption method based on double-key stream cipher | |
CN106973061B (en) | AES outgoing file encryption method based on reversible logic circuit | |
TWI728933B (en) | Hybrid multistage algorithm encryption and decryption system, transmitting device thereof, and receiving device thereof | |
Tarawneh | Cryptography: Recent Advances and Research Perspectives | |
US20230216659A1 (en) | Method for processing encrypted data | |
Hwang et al. | RT-OCFB: real-time based optimized cipher feedback mode |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19915756 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19915756 Country of ref document: EP Kind code of ref document: A1 |
|
32PN | Ep: public notification in the ep bulletin as address of the adressee cannot be established |
Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 20/01/2022) |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19915756 Country of ref document: EP Kind code of ref document: A1 |