WO2018205469A1 - 一种密码墙的构建方法及系统 - Google Patents

一种密码墙的构建方法及系统 Download PDF

Info

Publication number
WO2018205469A1
WO2018205469A1 PCT/CN2017/100288 CN2017100288W WO2018205469A1 WO 2018205469 A1 WO2018205469 A1 WO 2018205469A1 CN 2017100288 W CN2017100288 W CN 2017100288W WO 2018205469 A1 WO2018205469 A1 WO 2018205469A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
password
layer
parameter
wall
Prior art date
Application number
PCT/CN2017/100288
Other languages
English (en)
French (fr)
Inventor
谈剑锋
郑建华
马翔
Original Assignee
上海众人网络安全技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 上海众人网络安全技术有限公司 filed Critical 上海众人网络安全技术有限公司
Publication of WO2018205469A1 publication Critical patent/WO2018205469A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these

Definitions

  • the present invention relates to the field of information interaction, and in particular to a method and system for constructing a password wall.
  • the SOTP cryptographic algorithm system is designed for the security requirements of mobile internet, identity authentication and session key negotiation for handheld devices in mobile environments.
  • the invention provides a method and a system for constructing a password wall, and aims to design a uniform and non-linear one-way extension transformation according to the user key information, thereby ensuring the irreversibility of the configuration data to the user key.
  • a method for constructing a password wall includes: step S100 is obtained according to key information of a user end Taking the parameter configuration information; the step S200 assigns the obtained parameter configuration information to the corresponding parameter component of the password wall; the corresponding parameter component in the password wall includes a password brick, a data reflow, and an interleaving layer; The parameter wall configuration of the corresponding parameter component in the password wall constructs the password wall.
  • the data reflow realizes the variable structure of the algorithm, greatly increases the complexity of the algorithm, and improves the security strength of the password; the interleaving layer can interleave the information of each component evenly, quickly, and nonlinearly to other components. Because the parameters are variable and nonlinear, it also plays a chaotic role; based on the above user key, a uniform and nonlinear one-way extended transform is designed to ensure the irreversibility of the configuration data to the user key.
  • the step S100 includes: Step S110: grouping the key information according to the key information acquired from the user end; Step S120: setting the confidentiality after the grouping according to the first preset algorithm
  • the key information is converted into multiple rounds and generates initial parameter configuration information; step S130 generates a multivariate S box according to the initial parameter configuration information; step S140 performs S transform according to the multivariate S box and the initial parameter configuration information to generate the parameter configuration. information.
  • the generated cipher wall that is, the generation algorithm
  • the generation algorithm is designed for the purpose of fully integrating the key with the encryption algorithm.
  • each algorithm parameter (including the S box) is required to conform to a random distribution, and the user is different.
  • the algorithm is different; the first is implemented, the keyless information is leaked, and even if the attacker has obtained the user cryptographic algorithm, the user key cannot be restored therefrom; second, the distance between the algorithm instances is sufficiently large, even if the user key is relatively close, The difference between the algorithms is also large enough.
  • the step S200 includes: step S210, setting a size of the password brick and a number of the password bricks according to the first configuration parameter acquired from the parameter configuration information; and step S220 according to the first Setting a second configuration parameter obtained in the parameter, setting a flow direction of the data information of the data reflow, and location information in the password wall; and step S230, setting according to the third configuration parameter obtained from the parameter configuration information Interleaving parameters of the interleaving layer.
  • setting the size and the number of the ones of the password bricks in the password wall includes: step S211, grouping the first configuration parameters according to a preset amount of bytes, and forming a plurality of groups of first configurations.
  • Parameter sub-information step S212, the first configuration parameter sub-information is arranged in high and low bytes; in step S213, in step S212, the first configuration parameter sub-information arranged in bytes is selected to correspond to a preset number of high and low byte parameters.
  • the information is calculated according to the second preset algorithm; step S214 confirms the length of the cipher brick according to the calculation result of step S213; step S215 is based on the length of the cipher brick and the first configuration parameter in step S214.
  • step S216 Calculating a remaining length of the first configuration parameter sub-information parameter according to the information length; step S216, calculating a password brick according to the remaining length of the first configuration parameter sub-information in the step S215 and changing the preset byte amount Length; repeating step S215 and step S216; determining the size of the password turn of the corresponding layer and the number of the password turns.
  • the password-returned data reflow is set: step S221 selects a preset byte amount of configuration parameter sub-information in the first configuration parameter sub-information; and step S222 selects the configuration parameter sub-information selected in step S221 Dividing into a low byte bit and a high byte bit; step S223 sets the low byte bit divided in the step S222 to the data outflow direction position of the password turn, and the high byte bit is set to the password turn The data flows into the direction position.
  • setting the interleaving parameter of the interleaving layer includes: step 231, grouping the third configuration parameter according to a preset amount of bytes, and forming a plurality of sets of third configuration parameter sub-information; wherein, step 231 According to the preset byte amount, the step S211 is equal to the preset byte amount; the step 232 calculates the third configuration parameter sub-information according to the third preset algorithm; and the step 233 is performed according to the step S232. And determining, by the third configuration parameter sub-information, an interleaving parameter of the interleaving layer.
  • the S transform comprises at least one layer: the mathematical model of the single layer S transform is: X ⁇ S[X ⁇ Cmod2 n ]; wherein, the S--S box, the n--S box preset size, C is The parameter of the S box randomly selected according to the key information of the user terminal;
  • S--S transform, n--S transform preset size, C is S transform parameter randomly selected according to key information of the user end;
  • X, Y are respectively input high byte of the multi-layer S transform, low byte;
  • X ', Y' are the output high byte and low byte of the multi-layer S transform, respectively.
  • the password wall of the user end includes at least one layer of build generation; wherein each layer of the password wall is sequentially in the order of the password brick, the interlace layer; the size of the password bricks in each layer is different, The number of the cipher tiles is different.
  • the data reflow changes the hierarchical structure of the algorithm, so that the two cipher bricks become a composite function relationship, which can greatly increase the complexity of the algorithm and increase the security strength of the algorithm; in the layer of the cipher wall, There are both small-sized cipher bricks and large-sized cipher bricks, which make the structure level patchy and changeable. The change of cipher bricks is huge, so the encryption of information is more secure and reliable.
  • a method for detecting a method for constructing a password wall includes: detecting, by step S100, the generated password wall according to a preset detection rule; and determining in step S200 whether the password wall satisfies a preset detection rule, when not satisfied , regenerate the password wall.
  • the preset detection rule in the step S100 includes: whether the S-box transformation of the encryption algorithm is straight-through; and/or whether a multi-layer cipher brick selects the same preset size S in the same layer. Transform.
  • the generated algorithm parameters are detected by detecting the password wall construction method, and can be generated while detecting in the engineering implementation process, and if the detection generated algorithm does not satisfy the preset rule, the user is regenerated. Key and generate user algorithm. Make information more secure and reliable.
  • a method for encrypting a password wall comprising: obtaining a to-be-encrypted letter from a user terminal in step S100
  • Step S200 input the information to be encrypted into the password brick of the corresponding layer in the password wall
  • step S300 performs S transformation on each of the password bricks in step S200, and sets each password.
  • the direction of the data reflow of the bricks is input;
  • the step S400 inputs the result of each of the cipher brick transformations of the corresponding layer in the step S300 to the interleaving layer of the corresponding layer, and performs interleaving transformation;
  • the step S500 determines the information to be encrypted.
  • a method for decrypting a method for constructing a password wall comprising: obtaining information to be decrypted from a server in step S100; and inputting the information to be decrypted into an interleaving layer of a corresponding layer in the password wall in step S200;
  • the interleaving layer of the corresponding layer in step S200 performs inverse interleaving transformation, and sets the direction of data reflow of each cipher brick of the corresponding layer of the interleaving layer;
  • step S400 inputs the result of the inverse interleaving transformation in step S300 into the password.
  • step S500 determines whether the information to be decrypted traverses the layers of the password wall, and when completed, the result of the inverse S transform calculation of the password brick is used as decryption information. Output; otherwise, the result of the inverse brick transformation of the cipher brick is input to the next layer in the cipher wall, and the process returns to step S200.
  • a password wall construction system includes: an information acquisition module, the server acquires parameter configuration information according to the key information of the user end; the information distribution module is electrically connected to the information acquisition module, and the server allocates the acquired parameter configuration information to The corresponding parameter component of the password wall; the corresponding parameter component in the password wall includes a password brick, a data reflow, an interleaving layer; a password wall building module, and the information distribution module, and the server according to the corresponding parameter component in the password wall
  • the parameter configuration information is configured to construct the password wall.
  • the information acquiring module includes: a grouping setting sub-module, and performing group setting according to the key information of the user end; the initial information generating sub-module is electrically connected to the grouping setting sub-module, according to the first preset algorithm After the group setting, the key information of the client end is increased. Round conversion, and generating initial parameter configuration information; an initial information transformation submodule electrically connected to the information generation submodule, generating a multivariate S box according to the initial parameter configuration information; an information generation submodule, and the initial information transformer The module is electrically connected, and performs S-transformation according to the multi-component S box and the initial parameter configuration information to generate the parameter configuration information.
  • the information distribution module includes: a cipher brick parameter configuration sub-module, and setting a size of the cipher brick and a number of the cipher brick according to the first configuration parameter obtained from the parameter configuration information; a parameter configuration submodule, configured, according to the second configuration parameter obtained from the first configuration parameter, a flow direction of the data information of the data reflow, and location information in the password wall; an interleaving parameter configuration submodule, according to And setting, by the third configuration parameter obtained from the parameter configuration information, an interleaving parameter of the interlace layer.
  • a technical method of "random number to permutation" is designed, the operation is small, the generated replacement is random, and it is not easy to be deciphered by an illegal user, so it is safe and reliable; in the layer of the password wall, there is a small size.
  • the cipher bricks also have large-sized cipher bricks, which make the structure level patchy and changeable; the cipher bricks have a huge amount of change, so the encryption of information is more secure and reliable.
  • the detection system of the password wall construction system includes: a detection module, detecting the generated password wall according to a preset detection rule; and detecting a determination module, electrically connecting with the detection module, and determining whether the password wall is satisfied Determining a detection rule; when not satisfied, regenerating a password wall; wherein the preset detection rule includes: whether the S-box transformation of the encryption algorithm is straight through; and/or whether there are multiple layers of password bricks on the same layer S-transforms of the same preset size are selected.
  • An encryption system for a password wall comprising: an information acquisition module to be encrypted, obtaining information to be encrypted from a user end; and an information input module to be encrypted, electrically connecting with the information acquisition module to be encrypted, and inputting the information to be encrypted to In the password brick of the corresponding layer in the password wall; a data reflow direction setting module is electrically connected to the information input module to be encrypted, and S transforms each of the password bricks in the information input module to be encrypted.
  • an interleaving conversion module electrically connecting with the data reflow direction setting module, and the data is The result of each of the cipher brick transformations of the corresponding layer in the reflow direction setting module is input to the interleaving layer of the corresponding layer to perform interleaving transformation; the information processing module to be encrypted is electrically connected to the interleaving transformation module, and the judging is performed.
  • the information to be encrypted traverses the layers of the password wall, and when completed, outputs the result of the interleaving layer calculation as encrypted information; otherwise, inputs the result of the interleaving layer calculation to the next in the password wall And controlling the information input module to be encrypted, and performing inputting the information to be encrypted into each password brick of a corresponding layer in the password wall.
  • a decryption system for a password wall comprising: a data acquisition module to be decrypted, obtaining information to be decrypted from a server; and an information input module to be decrypted, electrically connecting with the information acquisition module to be decrypted, and inputting the information to be decrypted to the office In the interleaving layer of the corresponding layer in the password wall; the data reflow direction setting module is electrically connected to the information input module to be decrypted, and performs inverse interleaving transformation on the interleaving layer of the corresponding layer in the information input module to be decrypted.
  • each cipher brick of the cipher brick layer an inverse S transform is performed; the information processing module to be decrypted is electrically connected to the interleaving transform inverse module, and it is determined whether the information to be decrypted traverses the layers of the cipher wall, when completed And outputting the result of the inverse brick transform calculation of the cipher brick as decryption information; otherwise, inputting the result of the inverse S transform of the cipher brick into the
  • the next layer in the password wall controls the information input module to be decrypted, and performs input of the information to be decrypted into an interleaving layer of a corresponding layer in the password wall.
  • a plurality of basic components, a plurality of size specifications, a plurality of hierarchical structures, and a plurality of data flows are employed.
  • the image says that, like a building, the passwords of different sizes, different levels of structure, and different operating parameters are layered into one layer, and then alternately used with differently configured interleaving layers, building a cryptographic algorithm layer by layer;
  • the data is transferred and operated sequentially from top to bottom, but there is a situation of backward reflow in some places, which disrupts the timing of the data flow and the operation, which is equivalent to the hierarchical structure of the changed algorithm.
  • the present invention provides a method and system for constructing a password wall, which brings at least one of the following technical effects:
  • the user key generates configuration data through uniform and non-linear unidirectional expansion transformation, and the key in the password wall generated by the user differs by only one bit, and the corresponding configuration data differs by about half. This ensures an effective security interval between different user keys.
  • FIG. 1 is a flow chart of an embodiment of a method for constructing a password wall according to the present invention
  • FIG. 2 is a flow chart of another embodiment of a method for constructing a password wall according to the present invention.
  • FIG. 3 is a flow chart of another embodiment of a method for constructing a password wall according to the present invention.
  • FIG. 4 is a flow chart showing another embodiment of a method for constructing a password wall according to the present invention.
  • FIG. 5 is a flow chart of another embodiment of a method for constructing a password wall according to the present invention.
  • FIG. 6 is a flow chart of another embodiment of a method for constructing a password wall according to the present invention.
  • Figure 7 is a structural view showing an embodiment of setting the data reflow direction of the present invention.
  • Figure 8 is a password wall structure of the present invention.
  • FIG. 9 is a flow chart of an embodiment of a method for detecting a method for constructing a password wall according to the present invention.
  • FIG. 10 is a flow chart of an embodiment of a method for encrypting a password wall according to the present invention.
  • FIG. 11 is a flow chart showing another embodiment of a method for decrypting a password wall according to the present invention.
  • FIG. 12 is a structural diagram of an embodiment of a construction system of a password wall according to the present invention.
  • FIG. 13 is a structural diagram of an embodiment of an encryption system for a password wall according to the present invention.
  • Figure 14 is a block diagram showing an embodiment of a decryption system for a password wall of the present invention.
  • the present invention provides an embodiment of a method for constructing a password wall.
  • the method includes: Step S100: acquiring parameter configuration information according to key information of a user end; Step S200: assigning the acquired parameter configuration information to the The corresponding parameter component of the password wall; the corresponding parameter component in the password wall includes a password brick, a data reflow, and an interleaving layer; and step S300 constructs the password wall according to the parameter configuration information configured by the corresponding parameter component in the password wall. .
  • the algorithm instances are sparsely distributed in the space formed by 2 3856 configuration data, and an average of 2 2832 configuration data corresponds to only one algorithm instance.
  • the cipher brick is realized by S transform, and based on the S key (alternate scrolling) generated by the user key and the initial configuration data, S-transform of various sizes is realized by nesting and compositing. Due to their different sizes, the number of nesting layers is different from the selected parameters.
  • Data reflow refers to the return of data from the output of a component of the current layer to another component input of the layer; according to the size of the password, and the number of passwords in each layer, the data reflow direction is set, and
  • the parameters of the interleaving layer are constructed into a password wall, so that the user key is deeply integrated with the algorithm, and different user keys correspond to a different encryption and decryption grouping algorithm, that is, a password wall. This is different from the traditional method of distinguishing the encryption and decryption function by the encryption and decryption key.
  • the user key and the algorithm are merged, and the algorithm is used for the identity authentication and the negotiation session key, and does not need to constantly change the encryption key when the traditional block cipher is used, and thus there is no key expansion algorithm.
  • Different keys correspond to different algorithms. For password attackers, the difficulty of attacking existing attack technologies is greatly enhanced.
  • the diversity of keys in this application determines the diversity of password walls, and multiple password walls correspond to one plus. Decryption algorithm cluster.
  • the data reflow realizes the variable structure of the algorithm, greatly increases the complexity of the algorithm, and improves the security strength of the password; the interleaving layer can interleave the information of each component evenly, quickly, and nonlinearly to other components. Because the parameters are variable and nonlinear, it also plays a chaotic role; based on the above user key, a uniform and nonlinear one-way extended transform is designed to ensure the irreversibility of the configuration data to the user key.
  • the step S100 includes: Step S110: grouping the key information according to the key information acquired from the user end; Step S120: setting the confidentiality after the grouping according to the first preset algorithm
  • the key information is converted into multiple rounds and generates initial parameter configuration information; step S130 generates a multivariate S box according to the initial parameter configuration information; step S140 performs S transform according to the multivariate S box and the initial parameter configuration information to generate the parameter configuration. information.
  • FIG. 2 Another embodiment is provided on the basis of the foregoing embodiment, which is shown in FIG. 2; group setting is performed according to the key information of the user end; and the user end of the group is set according to the first preset algorithm.
  • the key information is converted into multiple rounds, and the initial parameter configuration information is generated; the S box is generated according to the generated initial parameter configuration information; and the parameter configuration information is further calculated according to the result of the previous three steps, and each round of the password brick is performed.
  • the selection of algorithm parameters such as data reflow and interleaving layer; acquisition of parameter configuration information, the first step, based on the user key, to produce initial configuration data.
  • a 16-element S box s is generated using the initial configuration data.
  • a 256-element S-box S is generated using s and initial configuration data.
  • the parameter configuration data is generated, and the algorithm parameters such as the cipher brick, the data reflow, and the interleaving layer are selected.
  • the algorithm parameters such as the cipher brick, the data reflow, and the interleaving layer are selected.
  • a 0 , a 1 , a 2 , a 3 are still retaining the data at the completion of the calculation in the first step, that is, the last 256 bits of the initial configuration data; and the substitution table SS is one unit of 8 units.
  • the generated cipher wall that is, the generation algorithm
  • the generation algorithm is designed for the purpose of fully integrating the key with the encryption algorithm.
  • each algorithm parameter (including the S box) is required to conform to a random distribution, and the user is different.
  • the algorithm is different; the first is implemented, the keyless information is leaked, and even if the attacker has obtained the user cryptographic algorithm, the user key cannot be restored therefrom; second, the distance between the algorithm instances is sufficiently large, even if the user key is relatively close, The difference between the algorithms is also large enough.
  • the step S200 includes: step S210, setting a size of the password brick and a number of the password bricks according to the first configuration parameter acquired from the parameter configuration information; and step S220 according to the first Setting a second configuration parameter obtained in the parameter, setting a flow direction of the data information of the data reflow, and location information in the password wall; and step S230, setting according to the third configuration parameter obtained from the parameter configuration information Interleaving parameters of the interleaving layer.
  • setting the size and the number of the ones of the password bricks in the password wall includes: step S211, grouping the first configuration parameters according to a preset amount of bytes, and forming a plurality of groups of first configurations.
  • the password-returned data reflow is set: step S221 selects a preset byte amount of configuration parameter sub-information in the first configuration parameter sub-information; and step S222 selects the configuration parameter sub-information selected in step S221 Dividing into a low byte bit and a high byte bit; step S223 sets the low byte bit divided in the step S222 to the data outflow direction position of the password turn, and the high byte bit is set to the password turn The data flows into the direction position.
  • setting the interleaving parameter of the interleaving layer includes: step 231, grouping the third configuration parameter according to a preset amount of bytes, and forming a plurality of sets of third configuration parameter sub-information; wherein, step 231 According to the preset byte amount, the step S211 is equal to the preset byte amount; the step 232 calculates the third configuration parameter sub-information according to the third preset algorithm; and the step 233 is performed according to the step S232. And determining, by the third configuration parameter sub-information, an interleaving parameter of the interleaving layer.
  • the S transform comprises at least one layer: the mathematical model of the single layer S transform is: X ⁇ S[X ⁇ Cmod2 n ]; wherein, the S--S box, the n--S box preset size, C is The parameter of the S box randomly selected according to the key information of the user terminal;
  • S--S transform, n--S transform preset size, C is randomly selected according to the key information of the user end S transform parameters;
  • X, Y are the input high byte and low byte of the multi-layer S transform, respectively;
  • X', Y' are the output high byte and low byte of the multi-layer S transform, respectively.
  • the password wall of the user end includes at least one layer of build generation; wherein each layer of the password wall is sequentially in the order of the password brick, the interlace layer; the size of the password bricks in each layer is different, The number of the cipher tiles is different.
  • the 4096 bit parameter configuration data generated in the above embodiment is allocated parameter configuration information.
  • Each parameter part in the password wall is not equally divided. It is assumed that the password brick is 3072bit, which is the first configuration parameter; the slave code 3072bit is allocated to the data backflow of 1024bit, which is the second configuration parameter; The interleaving layer is 1024 bits, which is the third configuration parameter; the specific method for allocating the parameter configuration information, and the arithmetic model involved include the following: determining the spatial capacity of each parameter component in the password wall in the 4096 bit parameter configuration data, that is, The size of the number, etc.:
  • the n-bit parameter C is randomly generated by the generation algorithm, and is randomly selected using addition or subtraction, and is determined according to the size n using a 16-element S box s or a 256-element S-box S, which are also randomly generated by the generation algorithm according to the user key. generate.
  • Multi-layer S transform Assume that when the size of the cipher brick n is 16 bit or 32 bit, the S transform is respectively composed of 8-bit and 16-bit S-transform nesting calls; and also includes G transform, G transform:
  • the parameters of the S transform and the G transform are randomly selected by the generation algorithm and are not the same. It can be seen from the mathematical model that the 16-bit S transform is generated by the 8-bit S transform and the G transform, and the structure hierarchy can be regarded as two layers; the 32-bit S transform is generated by the 16-bit S transform and the G transform, which is attributed to When the 8-bit S transform and the G transform are generated, it is 4 layers.
  • the remaining length is not less than 16
  • continue to take 4bit from u and its value as the address from the array ⁇ 4,8,4,4,4,4,8,8,8,16,16,16 , 16, 16, 16 ⁇ select the length of the password
  • calculate the remaining length if not less than 16, continue the process, otherwise, go to the next step.
  • the actual probability of selecting 4, 8, and 16 is 5/16, 5/16, and 6/16, respectively, which is close to the random selection probability of 1/3.
  • the purpose of this design is also to make the probability of selecting a more complex 16bit brick slightly larger. One point is to increase the complexity of the algorithm.
  • the size of the last selected brick is 4 bits.
  • the password brick A and the password brick B are respectively at the i-th, j (i ⁇ j) position of the same layer, and the corresponding S-transforms are respectively recorded as transformations S i , S j , and the inputs are respectively recorded as a, b, then: Right reflow transformation: (a, b) ⁇ (S i (a), S j (b ⁇ S i (a));
  • each position needs to generate 2 4bit numbers for the position i, j of the cipher brick. If the two numbers are the same, the pass is straight; if i, j is greater than the actual cipher brick number M, it will pass
  • the modulo operation transforms it into M: i mod M ⁇ i, j mod M ⁇ j.
  • the low-order alignment is XORed, and the result of the XOR of the inflow password brick size is retained.
  • the data reflow changes the hierarchical structure of the algorithm, which makes the two cipher bricks become a composite function relationship, which can greatly increase the complexity of the algorithm and increase the security strength of the algorithm.
  • a further embodiment is to divide the highest 16 bits of u (ie, 48-63 bits) into high and low bytes, and take the lower 4 bits of the low byte as the position of the outbound party password brick in the data reflow, taking the high byte.
  • the lower 4 bits are used as the location of the incoming party password brick.
  • the interleaving layer is different from the pure linear interleaving layer. It not only plays an interlacing role, but also has a chaotic effect, which is the basis of the security of the cryptographic algorithm of the present application.
  • R R ⁇ P (aL + b mod 2 32 );
  • L L ⁇ P (aR + b mod 2 32 );
  • R R ⁇ P (aL + b mod 2 32 );
  • P is an interleaving transform; where a, b are two 32-bit parameters, a satisfies the lowest two bits as '1', b is an odd number; P is a linear transformation in bytes, which can be regarded as 4 words for input 32-bit integers.
  • the vector of the section is linearly transformed;
  • the construction framework of the password wall is shown in the figure; the structure of the password wall is more vividly displayed; the password brick and the interlacing layer are one-to-one correspondence, and the size of the password bricks of each layer is different, resulting in the number of password bricks per layer. Not equal; at the same time the flow of data and the direction of inflow are not the same.
  • the data reflow is randomly set on the cipher brick layer. In Figure 8, only the last layer is marked.
  • the specific set flow direction is obtained by following the setting algorithm.
  • the present invention among the layers of the password wall, there are both small-sized cipher bricks and large ones.
  • the size of the password brick makes the structure level patchy and changeable; the change of the password brick is huge, so the encryption of information is more secure and reliable.
  • the present invention also provides an embodiment of a method for detecting a method for constructing a password wall, which is shown in FIG. 9; the method includes: step S100: detecting the generated password wall according to a preset detection rule; and determining, in step S200, Whether the password wall meets the preset detection rules. When it is not satisfied, the password wall is regenerated.
  • the preset detection rule in the step S100 includes: whether the S-box transformation of the encryption algorithm is straight-through; and/or whether a multi-layer cipher brick selects the same preset size S in the same layer. Transform.
  • the method further includes: whether the cipher brick layer selects the same preset S-box transformation in the same layer; wherein the cipher brick layer exceeds a preset number of layers.
  • another embodiment provided by the present invention can be directly used without detecting in a normal situation; in the case of high security requirements, such as a mobile payment environment, it should be detected: 1) S box Whether it is straight through, if it is straight through, it will be discarded.
  • testing regulations :
  • the generated algorithm parameters are detected by detecting the password wall construction method, and can be generated while detecting in the engineering implementation process, and if the detection generated algorithm does not satisfy the preset rule, the user is regenerated. Key and generate user algorithm. Make information more secure and reliable.
  • the present invention also provides an embodiment of a method for encrypting a password wall.
  • the package Step S100 obtaining information to be encrypted from the user terminal; step S200 inputting the information to be encrypted into a password brick of a corresponding layer in the password wall; step S300, for each password in the step S200 The brick performs an S-transformation, and sets a direction of data reflow of each of the cipher bricks; step S400 inputs the result of each cipher brick transformation of the corresponding layer in the step S300 to the interleaving layer of the corresponding layer, and performs Interleaving transformation; step S500 is to determine whether the information to be encrypted traverses the layers of the password wall, and when completed, output the result of the interleaving layer as encrypted information; otherwise, input the result of the interleaving layer calculation Go to the next round in the password wall and return to step S200.
  • the implementation of the data reflow and interleaving layers is clear and not repeated, as described above in the foregoing embodiments.
  • the 64-bit plaintext is used as the input data of a user's encryption algorithm, and the 64-bit ciphertext data is output through layer processing of the encryption algorithm.
  • each cipher brick performs S transform calculation; if the cipher brick involves data reflow, the cipher brick of the outflow side is processed first Calculate, XOR the calculation result of the outflow party and the input data of the incoming party password brick, and then calculate the inflow party password brick as a new input; 2) After the completion of the calculation of the brick layer of the password, the calculation result of the password brick layer Input to the interleaving layer, perform interleaving transformation; 3) If all 16 rounds of calculations have been completed, the calculation result of the interleaving layer is output as ciphertext; otherwise, the calculation result of the interleaving layer is taken as the next input data, and is transferred to 1 ) Continue to the next calculation.
  • the present invention further provides an embodiment of a decryption method for a method for constructing a password wall.
  • the method includes: step S100: acquiring information to be decrypted from a server; and step S200 inputting the information to be decrypted to the password wall In the interleaving layer of the corresponding layer in the step; the step S300 performs inverse interleaving transformation on the interleaving layer of the corresponding layer in the step S200, and sets the direction of data reflow of each cipher brick of the corresponding layer of the interleaving layer; step S400 The result of the inverse interleaving transformation in the step S300 is input into each cipher brick of the cipher brick layer to perform inverse S transform; step S500 is to determine whether the information to be decrypted traverses the layers of the cipher wall, and when completed, The result of the inverse brick transform calculation of the cipher brick is output as decryption information; otherwise, the knot of the cipher brick is
  • an embodiment of a decryption method for a method for constructing a password wall is provided.
  • the decryption process is an inverse process of the encryption process, which is slightly different from the encryption process.
  • the main performance is different in the processing method of the cipher brick and the interleaving layer, and the inverse transform of the S transform and the interlace transform is used in the decryption.
  • data reflow also needs to flow against the original direction.
  • the 64-bit ciphertext is also taken as the input data as an example.
  • the first processing from the first decoding process is as follows: 1) inputting the input data to the interleaving layer, performing inverse interleaving transformation; 2) inverse transforming the interleaving layer
  • the calculation result is input into the brick layer of the password, and each of the password bricks performs the calculation of the inverse S transform; if the password brick involves the data reflow, the input data of the original outflow party is XORed to the inverse S transform of the inflow party brick.
  • On the result data as the final output result of the incoming party password brick; 3) If all 16 calculations are completed, the calculation result of the brick layer of the password is output as plaintext; otherwise, the calculation result of the brick layer of the password is used as the next input. Data, turn 1) continue the next round of calculations.
  • the present invention further provides an embodiment of a system for constructing a password wall, which is shown in FIG. 12; and includes: an information acquisition module 100, the server acquires parameter configuration information according to key information of the user end; the information distribution module 200, and the information acquisition
  • the module 100 is electrically connected, and the server allocates the acquired parameter configuration information to the corresponding parameter component of the password wall; the corresponding parameter component in the password wall includes a password brick, a data reflow, an interleaving layer, and a password wall construction module 300.
  • the information distribution module 200 the server constructs the password wall according to the parameter configuration information configured by the corresponding parameter component in the password wall.
  • the information acquiring module 100 includes: a grouping setting sub-module 110, configured according to the key information of the user end; the initial information generating sub-module 120 is electrically connected to the grouping setting sub-module 110, according to the first
  • the preset algorithm performs multi-round conversion of the key information of the user end after the grouping is set, and generates initial parameter configuration information; the initial information transformation sub-module 130 is electrically connected to the information generation sub-module 120, according to the initial parameter.
  • the configuration information generates a multi-component S box; the information generating sub-module 140 is electrically connected to the initial information conversion sub-module 130
  • the connection performs S-transformation according to the multi-component S box and the initial parameter configuration information to generate the parameter configuration information.
  • the information distribution module 200 includes: a cipher brick parameter configuration sub-module 210, and the size of the cipher brick and the number of the cipher bricks are set according to the first configuration parameter obtained from the parameter configuration information;
  • the data reflow parameter configuration sub-module 220 sets the flow direction of the data information of the data reflow and the position information in the password wall according to the second configuration parameter obtained from the first configuration parameter;
  • the interleaving parameter configuration sub- The module 230 is configured to set an interleaving parameter of the interlace layer according to the third configuration parameter obtained from the parameter configuration information.
  • the information exchange, the execution process, and the like between the modules in the system are based on the same concept as the foregoing method embodiment, and the S-box transformation is applied in the embodiment of the present application. It has remarkable features such as controllable nature, huge quantity, and convenient implementation. It is widely used in block cipher design.
  • the S-box is also selected as the basis of the S-transformation, and the S-transform is used as an important cryptographic module.
  • variable S-box is not limited to the "optimal" S-box range, but within the symmetry group--that is, the entire N-ary permutation. It is not difficult to generate a variable S-box within the optimal range, because the starting point for considering the problem in this application is not the "individual" security of an algorithm instance, but the security of the entire system. In pursuit of system security, naturally, the larger the scope, the better, without obvious features and unrecognizable.
  • the S-box is randomly generated within the symmetry group to maximize the user key information. Another consideration for using a variable S-box is its irreversibility.
  • a fusion recursive method for S-box generation and non-linear expansion of user key is designed to ensure that the user key is effectively spread to the S-box and configuration data.
  • the design is based on 16-element permutation and 256-element permutation.
  • an isolation technique of the algorithm instance is generated by the configuration data.
  • the algorithm instances are sparsely distributed in the space formed by 2 3856 configuration data, and an average of 2 2832 configuration data corresponds to only one algorithm instance.
  • the cipher brick is realized by S transform, and based on the S key (alternate scrolling) generated by the user key and the initial configuration data, S-transform of various sizes is realized by nesting and compositing. Due to their different sizes, the number of nesting layers is different from the selected parameters.
  • the algorithm parameters are changed to some extent while changing the operating parameters, which improves the security interval between different algorithm instances.
  • Data reflow refers to the return of data from the output of a component of the current layer to another component input of the layer; according to the size of the password, and the number of passwords in each layer, the data reflow direction is set, and
  • the parameters of the interleaving layer are constructed into a password wall, so that the user key is deeply integrated with the algorithm, and different user keys correspond to a different encryption and decryption grouping algorithm, that is, a password wall. This is different from the traditional method of distinguishing the encryption and decryption function by the encryption and decryption key.
  • the user key and the algorithm are merged, and the algorithm is used for the identity authentication and the negotiation session key, and does not need to constantly change the encryption key when the traditional block cipher is used, and thus there is no key expansion algorithm.
  • Different keys correspond to different algorithms. For password attackers, the difficulty of attacking existing attack technologies is greatly enhanced.
  • the diversity of keys in this application determines the diversity of password walls, and multiple password walls correspond to one plus. Decryption algorithm cluster.
  • the information generation S box is further calculated according to the result of the previous three steps, and the parameter configuration information is generated, and the algorithm parameters of each round of the password brick, the data reflow, and the interleaving layer are selected; the parameter configuration information is acquired, and the first step is based on the user. Key, production initial configuration data.
  • a 16-element S box s is generated using the initial configuration data.
  • a 256-element S-box S is generated using s and initial configuration data.
  • the parameter configuration data is generated, and the algorithm parameters such as the cipher brick, the data reflow, and the interleaving layer are selected.
  • the algorithm parameters such as the cipher brick, the data reflow, and the interleaving layer are selected.
  • a 0 , a 1 , a 2 , a 3 are still retaining the data at the completion of the calculation in the first step, that is, the last 256 bits of the initial configuration data; and the substitution table SS is one unit of 8 units.
  • the generated cipher wall that is, the generation algorithm
  • the generation algorithm is designed for the purpose of fully integrating the key with the encryption algorithm.
  • each algorithm parameter (including the S box) is required to conform to a random distribution, and the user is different.
  • the algorithm is different; the first is implemented, the keyless information is leaked, and even if the attacker has obtained the user cryptographic algorithm, the user key cannot be restored therefrom; second, the distance between the algorithm instances is sufficiently large, even if the user key is relatively close, The difference between the algorithms is also large enough.
  • the S transform comprises at least one layer: the mathematical model of the single layer S transform is: X ⁇ S[X ⁇ Cmod2 n ]; wherein, the S--S box, the n--S box preset size, C is The parameter of the S box randomly selected according to the key information of the user terminal;
  • S--S transform, n--S transform preset size, C is randomly selected according to the key information of the user end S transform parameters;
  • X, Y are the input high byte and low byte of the multi-layer S transform, respectively;
  • X', Y' are the output high byte and low byte of the multi-layer S transform, respectively.
  • the parameter configuration information of the 4096-bit parameter generated in the above embodiment is allocated, and each parameter component in the password wall is unequal, and it is assumed that the password brick is 3072 bits, which is the first configuration parameter;
  • the brick 3072 bit is assigned to the data reflow to 1024 bits, which is the second configuration parameter;
  • the interleaving layer is assigned to 1024 bits, which is the third configuration parameter;
  • the specific parameter configuration information is allocated to the method, and the arithmetic model involved includes the following: Determine the spatial capacity of each parameter component in the password wall, that is, the size of its own number in the 4096-bit parameter configuration data:
  • the n-bit parameter C is randomly generated by the generation algorithm, and is randomly selected using addition or subtraction, and is determined according to the size n using a 16-element S box s or a 256-element S-box S, which are also randomly generated by the generation algorithm according to the user key. generate.
  • Multi-layer S transform Assume that when the size of the cipher brick n is 16 bit or 32 bit, the S transform is respectively composed of 8-bit and 16-bit S-transform nesting calls; and also includes G transform, G transform:
  • G(X,Y) (3X+C)mod 2n/2 ⁇ Y, where C is a randomly selected parameter; the input of the S transform is divided into left and right parts, respectively denoted as X, Y; likewise, the output is recorded as X ',Y';
  • the parameters of the S transform and the G transform are randomly selected by the generation algorithm and are not the same. From It can be seen from the mathematical model that the 16-bit S transform is generated by two layers of 8-bit S transform and G transform, and the structure hierarchy can be regarded as two layers; the 32-bit S transform is generated by 16-bit S transform and G transform, and is reduced to 8 bits. When the S transform and the G transform are generated, it is four layers.
  • the remaining length is not less than 16
  • continue to take 4bit from u, and its value as the address from the array ⁇ 4,8,4,4,4,4,8,8,8,16,16,16 , 16, 16, 16 ⁇ select the length of the password
  • calculate the remaining length if not less than 16, continue the process, otherwise, go to the next step.
  • the actual probability of selecting 4, 8, and 16 is 5/16, 5/16, and 6/16, respectively, which is close to the random selection probability of 1/3.
  • the purpose of this design is also to make the probability of selecting a more complex 16-bit brick slightly larger, and to enhance the complexity of the algorithm.
  • the size of the last selected brick is 4 bits.
  • the password brick A and the password brick B are respectively at the i-th, j (i ⁇ j) position of the same layer, and the corresponding S-transforms are respectively recorded as transformations S i , S j , and the inputs are respectively recorded as a, b, then: Right reflow transformation: (a, b) ⁇ (S i (a), S j (b ⁇ S i (a));
  • each position needs to generate 2 4bit numbers for the position i, j of the cipher brick. If the two numbers are the same, the pass is straight; if i, j is greater than the actual cipher brick number M, it will pass
  • the modulo operation transforms it into M: i mod M ⁇ i, j mod M ⁇ j.
  • the low-order alignment is XORed, and the result of the XOR of the inflow password brick size is retained.
  • the data reflow changes the hierarchical structure of the algorithm, which makes the two cipher bricks become a composite function relationship, which can greatly increase the complexity of the algorithm and increase the security strength of the algorithm.
  • a further embodiment is to divide the highest 16 bits of u (ie, 48-63 bits) into high and low bytes, and take the lower 4 bits of the low byte as the position of the outgoing cipher brick in the data reflow, taking the low byte low.
  • 4bit is the location of the incoming party password brick.
  • the interleaving layer is different from the pure linear interleaving layer. It not only plays an interlacing role, but also has a chaotic effect, which is the basis of the security of the cryptographic algorithm of the present application.
  • R R ⁇ P (aL + b mod 2 32 );
  • L L ⁇ P (aR + b mod 2 32 );
  • R R ⁇ P (aL + b mod 2 32 );
  • P is an interleaving transform; where a, b are two 32-bit parameters, a satisfies the lowest two bits as '1', b is an odd number; P is a linear transformation in bytes, which can be regarded as 4 words for input 32-bit integers.
  • the vector of the section is linearly transformed;
  • the construction framework of the password wall is shown in the figure; the structure of the password wall is more vividly displayed; the password brick and the interlacing layer are one-to-one correspondence, and the size of the password bricks of each layer is different, resulting in the number of password bricks per layer. Not equal; at the same time the flow of data and the direction of inflow are not the same.
  • the data reflow is randomly set on the cipher brick layer. In Figure 8, only the last layer is marked.
  • the specific set flow direction is obtained by following the setting algorithm.
  • the present invention further provides an embodiment of a detection system for a password wall construction system, comprising: a detection module 100, detecting the generated password wall according to a preset detection rule;
  • the module 200 is electrically connected to the detecting module 100, and determines whether the password wall satisfies a preset detection rule. When not satisfied, the password wall is regenerated; wherein the preset detection rule includes: the encryption algorithm Whether the S-box transformation is straight through; and/or whether there are multiple layers of cipher bricks that select the S-transform of the same preset size on the same layer.
  • the present invention further provides an embodiment of an encryption system for a cipher wall.
  • the method includes: an information to be encrypted module 100, which acquires information to be encrypted from a user end; an information input module 200 to be encrypted, and the The encrypted information obtaining module 100 is electrically connected, and the information to be encrypted is input into the password brick of the corresponding layer in the password wall; the data return direction setting module 300 is electrically connected to the information input module 200 to be encrypted, Each of the cipher bricks in the encrypted information input module 200 is subjected to S-transformation, and the direction of data reflow of each cipher brick is set; the interleave conversion module 400 is electrically connected to the data reflow direction setting module 300, and The result of each of the cipher brick transformations of the corresponding layer in the data reflow direction setting module 300 is input to the interleaving layer of the corresponding layer, and performs interleaving transformation; the information processing module 500 to be encrypted, and the interleaving transformation module 400 Electrically connecting,
  • the present invention further provides an embodiment of a decryption system for a password wall.
  • the method includes: a to-be-decrypted information acquisition module 100, which acquires information to be decrypted from a server; an information input module 200 to be decrypted, and the to-be-decrypted
  • the information acquisition module 100 is electrically connected to the information to be decrypted into the interleaving layer of the corresponding layer in the password wall;
  • the data reflow direction setting module 300 is electrically connected to the information input module 200 to be decrypted,
  • the interleaving layer of the corresponding layer in the information to be decrypted information input module 200 performs inverse interleaving transformation, and sets the direction of data reflow of each cipher brick of the corresponding layer of the interleaving layer; the inverse S transform module 400, and the data reflow direction Setting
  • the module 300 is electrically connected, and the result of the inverse interleaving transformation in the data reflow direction setting
  • a specific embodiment is also provided in the present application for a specific implementation of the cipher brick S transform: x is an input and y is an output.
  • the parameters of the password brick are in units of 16 bits.
  • the construction of the password wall includes two parts: a generation algorithm, which generates an encryption and decryption algorithm for each user according to the user key; and a packet encryption algorithm, which varies from user to user, and can be regarded as a class SP in a broad sense. structure.
  • the encryption algorithm is generated by random setting of the cipher brick, the interleaving layer, and the data reflow.
  • a plurality of basic components, a plurality of size specifications, a plurality of hierarchical structures, and a plurality of data flows are employed.
  • the image says that, like a building, the passwords of different sizes, different levels of structure, and different operating parameters are layered into one layer, and then alternately used with differently configured interleaving layers, building a cryptographic algorithm layer by layer; Time data is passed and computed from top to bottom, but exists in some places. The backward reflow situation disrupts the timing of the data flow and the operation, which is equivalent to the hierarchical structure of the changed algorithm.
  • the SOTP cryptographic algorithm is also a method for constructing a cipher, and uses three new concepts, such as a cipher brick, an interleaving layer, and a data reflow.
  • the other words are used in accordance with the usual algorithm description habits.
  • the cipher brick is the main component of the cipher. It uses a randomly generated S-box to complete the operation through the S transform generated by its direct or nested, including substitution, integer ring addition, subtraction, XOR, and so on.
  • the cipher brick component mainly provides the necessary non-linearity to achieve internal "chaos". Since the larger size of the cipher brick can be regarded as a multi-layer composite transformation from a smaller cipher brick, the cipher brick can also create a "chaotic" level of the logical structure.
  • the operation parameters of the password brick are randomly generated.
  • Data reflow refers to changing the normal data flow direction of the password brick, and inputting the operation result of one password brick into another password brick of the layer for processing, including straight through, left reflow, right reflow, and the like.
  • Data reflow can change the hierarchical structure of the logical structure of the algorithm, greatly enhance the complexity of the algorithm, and improve the security strength of the password.
  • the relevant cipher bricks participating in the data reflow are randomly selected when generating the user encryption and decryption algorithm.
  • the interleaving layer is capable of interleaving the operational output information of each cipher brick as evenly, quickly, or even non-linearly as possible to other locations.
  • the main function of the interleaving layer is "interleaving", which is different from the interleaving layer in the traditional SP cipher algorithm. It also plays a role of nonlinear "chaos" and is an important security foundation of the SOTP algorithm.
  • K is 1024 bits, used to generate the user key of the encryption and decryption algorithm, and the user has different keys;
  • G transform transformation using algebraic operations on ring Z2n and domain F2;
  • S-transformation a nonlinear transformation that is extended directly or through nesting using S-boxes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种密码墙的构建方法,包括:步骤S100根据用户端的密钥信息获取参数配置信息;步骤S200将获取的所述参数配置信息分配至所述密码墙相应的参数部件中;所述密码墙中相应参数部件包括密码砖、数据回流、交织层;步骤S300根据所述密码墙中相应参数部件配置的所述参数配置信息,构建所述密码墙。其目的根据用户密钥信息设计了均匀、非线性的单向扩展变换,保证了由配置数据到用户密钥的不可逆性。

Description

一种密码墙的构建方法及系统 技术领域
本发明涉及信息交互领域,特别是涉及一种密码墙的构建方法及系统。
背景技术
随着移动互联网时代的飞速发展,身份认证的重要性也日渐突出,但是传统安全手段存在局限性:静态密码是最简便的身份认证方式,然而也是风险最高的方式,容易受到网络钓鱼、暴力破解、撞库等攻击。短信验证码方式是目前应用最广、接受度最高的移动支付认证方式,然而其安全等级低,交易风险较高,成为了不法分子主要的攻击目标。硬件安全产品,诸如USBKey、动态密码器等,无论如何变换形态和通讯方式都无可避免的存在携带不便、操作复杂的问题,用户接受程度很低。手机软令牌虽然一定程度上解决了硬件携带的问题,但是由于采用传统密码算法,用户私钥在没有安全芯片保护的情况下,其安全性将大大降低,无法满足监管要求。
因此市场急需一种在不改变用户便捷体验的前提下,提高认证安全性、敏感信息存储安全性的技术。SOTP密码算法体制是面向移动互联的安全需求、为移动环境下的手持终端设备的身份认证和会话密钥协商而设计的。
发明内容
本发明的提供了一种密码墙的构建方法及系统,其目的根据用户密钥信息设计了均匀、非线性的单向扩展变换,保证了由配置数据到用户密钥的不可逆性。
本发明提供的技术方案如下:
一种密码墙的构建方法,包括:步骤S100根据用户端的密钥信息获 取参数配置信息;步骤S200将获取的所述参数配置信息分配至所述密码墙相应的参数部件中;所述密码墙中相应参数部件包括密码砖、数据回流、交织层;步骤S300根据所述密码墙中相应参数部件配置的所述参数配置信息,构建所述密码墙。
在本发明中,数据回流实现了算法结构的可变,大幅增强算法的复杂度,提高了密码的安全强度;交织层能够将各部件的信息均匀地、快速地、非线性地交织到其他部件,由于参数可变且为非线性运算同时也起到了混乱作用;基于以上用户密钥设计了均匀、非线性的单向扩展变换,保证了由配置数据到用户密钥的不可逆性。
优选的,所述步骤S100包括:步骤S110根据从用户端获取的的所述密钥信息,对所述密钥信息进行分组设置;步骤S120根据第一预设算法将分组设置后的所述密钥信息进行多轮换算,并生成初始参数配置信息;步骤S130根据所述初始参数配置信息生成多元S盒;步骤S140根据多元S盒以及所述初始参数配置信息进行S变换,生成所述参数配置信息。
在本发明中,生成的密码墙,也即生成算法,则是本着充分将密钥与加密算法融合的目的而设计,原则上要求各算法参数(包括S盒)符合随机分布,用户不同而算法不同;实现了第一,无密钥信息泄漏,即使攻击者已得到用户密码算法,也不能从中还原得到用户密钥;第二,算法实例间距离足够大,即使用户密钥比较接近时,算法间的差异也要足够大。
优选的,所述步骤S200包括:步骤S210根据从所述参数配置信息中获取的第一配置参数,设置所述密码砖的尺寸以及所述密码砖的个数;步骤S220根据从所述第一配置参数中获取的第二配置参数,设置所述数据回流的数据信息流动方向,以及在所述密码墙中的位置信息;步骤S230根据从所述参数配置信息中获取的第三配置参数,设置所述交织层的交织参数。
优选的,设置所述密码墙中其中一层所述密码砖的尺寸和个数包括:步骤S211根据预设的字节量对所述第一配置参数进行分组设置,并形成多组第一配置参数子信息;步骤S212将第一配置参数子信息进行高低字节排列;步骤S213在所述步骤S212按字节排列后的第一配置参数子信息中选取对应预设数量的高低字节的参数信息,并根据第二预设算法进行计算;步骤S214根据所述步骤S213的计算结果确认密码砖的长度;步骤S215根据所述步骤S214中所述密码砖的长度和所述第一配置参数子信息长度计算所述第一配置参数子信息参数的剩余长度;步骤S216根据所述步骤S215中所述第一配置参数子信息的剩余长度和改变所述预设的字节量,计算密码砖的长度;重复执行步骤S215和步骤S216;确定对应层的所述密码转的尺寸和所述密码转的个数。
优选的,设置所述密码转的数据回流:步骤S221在所述第一配置参数子信息中选取预设字节量的配置参数子信息;步骤S222将所述步骤S221中选取的配置参数子信息分成低字节位和高字节位;步骤S223将所述步骤S222中分后的低字节位设置为所述密码转的数据流出方向位置,所述高字节位设置为所述密码转的数据流入方向位置。
优选的,设置所述交织层的交织参数包括:步骤231根据预设的字节量对所述第三配置参数进行分组设置,并形成多组第三配置参数子信息;其中,所述步骤231根据预设的字节量与所述步骤S211根据预设的字节量对应相等;步骤232根据第三预设算法对所述第三配置参数子信息进行计算;步骤233根据所述步骤S232对所述第三配置参数子信息进行计算的结果,确定所述交织层的交织参数。
优选的,所述S变换包括至少一层:单层S变换的数学模型为:X→S[X±Cmod2n];其中,S--S盒,n--S盒预设大小,C为根据用户端的密钥信息随机选取的S盒的参数;
多层S变换的数学模型为:
Figure PCTCN2017100288-appb-000001
其中,G(X,Y)=S(3X+C)mod2n/2⊕Y;
S--S变换,n--S变换预设尺寸,C为根据用户端的密钥信息随机选取的S变换参数;X,Y分别为多层S变换的输入高字节,低字节;X′,Y′分别为多层S变换的输出高字节,低字节。
优选的,所述用户端的密码墙包括至少一层构建生成;其中,所述密码墙的每层顺序依次为所述密码砖,所述交织层;在每层中所述密码砖的大小不同,所述密码砖的个数不同。
在本发明中,数据回流改变了算法的层次结构,使两个密码砖变成复合函数关系,能够大幅增加算法复杂度,同时增大算法的安全强度;在密码墙的其一层之中,既有小尺寸的密码砖,也有大尺寸的密码砖,使得结构层次错落有致,变化多端;密码砖的变化量巨大,因此对于信息的加密更加安全可靠。
一种密码墙的构建方法的检测方法,包括:步骤S100根据预设检测规则对生成后的所述密码墙的进行检测;步骤S200判断所述密码墙是否满足预设检测规则,当不满足时,重新生成密码墙。
优选的,所述步骤S100中所述的预设检测规则包括:所述加密算法的S盒变换是否直通;和/或,是否有多层密码砖在同一层都选取了同一预设大小的S变换。
在本发明中,通过对密码墙构建方法的检测,对生成的算法参数进行检测,在工程实现过程中可以边检测边生成,若检测生成的算法不满足预先设定的规则,则重新产生用户密钥及生成用户算法。使信息更加安全可靠。
一种密码墙的加密方法,包括:步骤S100从用户端中获取待加密信 息;步骤S200将所述待加密信息输入至所述密码墙中的相应层的密码砖中;步骤S300对所述步骤S200中的所述每个密码砖进行S变换,设置所述每个密码砖的数据回流的方向;步骤S400将所述步骤S300中对应层的所述每个密码砖变换的结果输入至对应层的所述交织层中,进行交织变换;步骤S500判断所述待加密信息是否遍历完所述密码墙的各层,当完成时,将所述交织层计算的结果作为加密信息输出;否则,将所述交织层计算的结果输入至所述密码墙中下一轮,并返回执行步骤S200。
一种密码墙的构建方法的解密方法,包括:步骤S100从服务器中获取待解密信息;步骤S200将所述待解密信息输入至所述密码墙中的相应层的交织层中;步骤S300对所述步骤S200中的所述相应层的交织层进行逆交织变换,设置所述交织层对应层的每个密码砖的数据回流的方向;步骤S400将所述步骤S300中逆交织变换的结果输入密码砖层每个密码砖中,进行逆S变换;步骤S500判断所述待解密信息是否遍历完所述密码墙的各层,当完成时,将所述密码砖逆S变换计算的结果作为解密信息输出;否则,将所述密码砖逆S变换的结果输入至所述密码墙中下一层,并返回执行步骤S200。
一种密码墙的构建系统,包括:信息获取模块,服务器根据用户端的密钥信息获取参数配置信息;信息分配模块,与所述信息获取模块电连接,服务器将获取的所述参数配置信息分配至所述密码墙相应的参数部件中;所述密码墙中相应参数部件包括密码砖、数据回流、交织层;密码墙构建模块,与所述信息分配模块,服务器根据所述密码墙中相应参数部件配置的所述参数配置信息,构建所述密码墙。
优选的,所述信息获取模块包括:分组设置子模块,根据所述用户端的密钥信息进行分组设置;初始信息生成子模块,与所述分组设置子模块电连接,根据第一预设算法将分组设置后的所述用户端的密钥信息进行多 轮换算,并生成初始参数配置信息;初始信息变换子模块,与所述信息生成子模块电连接,根据所述初始参数配置信息生成多元S盒;信息生成子模块,与所述初始信息变换子模块电连接,根据多元S盒以及所述初始参数配置信息进行S变换,生成所述参数配置信息。
优选的,所述信息分配模块包括:密码砖参数配置子模块,根据从所述参数配置信息中获取的第一配置参数,设置所述密码砖的尺寸以及所述密码砖的个数;数据回流参数配置子模块,根据从所述第一配置参数中获取的第二配置参数,设置所述数据回流的数据信息流动方向,以及在所述密码墙中的位置信息;交织参数配置子模块,根据从所述参数配置信息中获取的第三配置参数,设置所述交织层的交织参数。
本发明中,设计了“随机数到置换”的技术方法,操作少、生成的置换随机,不容易被非法用户破译,因此安全可靠;在密码墙的其一层之中,既有小尺寸的密码砖,也有大尺寸的密码砖,使得结构层次错落有致,变化多端;密码砖的变化量巨大,因此对于信息的加密更加安全可靠。
一种密码墙构建系统的检测系统包括:检测模块,根据预设检测规则对生成后的所述密码墙的进行检测;检测判断模块,与所述检测模块电连接,判断所述密码墙是否满足预设检测规则;当不满足时,重新生成密码墙;其中,所述的预设检测规则包括:所述加密算法的S盒变换是否直通;和/或,是否有多层密码砖在同一层都选取了同一预设大小的S变换。
一种密码墙的加密系统,包括:待加密信息获取模块,从用户端中获取待加密信息;待加密信息输入模块,与所述待加密信息获取模块电连接,将所述待加密信息输入至所述密码墙中的相应层的密码砖中;数据回流方向设置模块,与所述待加密信息输入模块电连接,对所述待加密信息输入模块中的所述每个密码砖进行S变换,设置所述每个密码砖的数据回流的方向;交织变换模块,与所述数据回流方向设置模块电连接,将所述数据 回流方向设置模块中对应层的所述每个密码砖变换的结果输入至对应层的所述交织层中,进行交织变换;待加密信息处理模块,与所述交织变换模块电连接,判断所述待加密信息是否遍历完所述密码墙的各层,当完成时,将所述交织层计算的结果作为加密信息输出;否则,将所述交织层计算的结果输入至所述密码墙中下一层,并控制所述待加密信息输入模块,并执行将所述待加密信息输入至所述密码墙中的相应层的每个密码砖中。
一种密码墙的解密系统,包括:待解密信息获取模块,从服务器中获取待解密信息;待解密信息输入模块,与所述待解密信息获取模块电连接,将所述待解密信息输入至所述密码墙中的相应层的交织层中;数据回流方向设置模块,与所述待解密信息输入模块电连接,对所述待解密信息输入模块中的所述相应层的交织层进行逆交织变换,设置所述交织层对应层的每个密码砖的数据回流的方向;逆S变换模块,与所述数据回流方向设置模块电连接,将所述数据回流方向设置模块中逆交织变换的结果输入密码砖层每个密码砖中,进行逆S变换;待解密信息处理模块,与所述交织变换逆模块电连接,判断所述待解密信息是否遍历完所述密码墙的各层,当完成时,将所述密码砖逆S变换计算的结果作为解密信息输出;否则,将所述密码砖逆S变换的结果输入至所述密码墙中下一层,并控制所述待解密信息输入模块,并执行将所述待解密信息输入至所述密码墙中的相应层的交织层中。
在本发明中,采用了多种基础部件,多种尺寸规格、多种层次结构、多种数据流向。形象地说,就像盖楼一样用不同大小、不同层次结构、不同操作参数的密码砖垒成一层,再与不同配置的交织层交替使用,一层一层搭建起密码算法的大厦;在加密时数据自上而下依次进行传递和运算,但在某些地方存在向后回流的情形,打乱了数据流向与运算的时序,相当于改变的算法的层次结构。
与现有技术相比,本发明提供一种密码墙的构建方法及系统,至少带来以下一种技术效果:
1、在本发明中,用户密钥经均匀、非线性单向扩展变换生成配置数据,其用户生成的密码墙中密钥哪怕只相差一个比特,其对应的配置数据相差一半左右。如此保证不同用户密钥间的有效安全间隔。
2、在本发明中,由于实现了用户密钥的不可逆性,即使攻击者从一个算法实例分析出SOTP算法的统一算法架构和相应的配置数据,由于从用户密钥到配置数据的单向性,也难以求出用户密钥。
附图说明
下面将以明确易懂的方式,结合附图说明优选实施方式,对一种密码墙的构建方法及系统特性、技术特征、优点及其实现方式予以进一步说明。
图1是本发明一种密码墙的构建方法一个实施例的流程图;
图2是本发明一种密码墙的构建方法另一个实施例的流程图;
图3是本发明一种密码墙的构建方法另一个实施例的流程图;
图4是本发明一种密码墙的构建方法另一个实施例的流程图;
图5是本发明一种密码墙的构建方法另一个实施例的流程图;
图6是本发明一种密码墙的构建方法另一个实施例的流程图;
图7是本发明设置数据回流方向的一个实施例结构图;
图8是本发明密码墙结构;
图9是本发明密码墙的构建方法的检测方法一个实施例的流程图;
图10是本发明一种密码墙的加密方法一个实施例的流程图;
图11是本发明一种密码墙的解密方法另一个实施例的流程图;
图12是本发明一种密码墙的构建系统一个实施例的结构图;
图13是本发明一种密码墙的加密系统一个实施例的结构图;
图14是本发明一种密码墙的解密系统一个实施例的结构图。
具体实施方式
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。
为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。
本发明提供一种密码墙的构建方法的一个实施例,参考图1所示,包括:步骤S100根据用户端的密钥信息获取参数配置信息;步骤S200将获取的所述参数配置信息分配至所述密码墙相应的参数部件中;所述密码墙中相应参数部件包括密码砖、数据回流、交织层;步骤S300根据所述密码墙中相应参数部件配置的所述参数配置信息,构建所述密码墙。
具体的,在本实施例中,参考图1所示;通过将1024比特用户密钥均匀、非线性地扩展到不少于3856比特的算法参数配置数据,再由配置数据生成算法实例的隔离技术。使得算法实例稀疏地分布在23856个配置数据构成的空间中,平均每22832个配置数据仅对应一个算法实例。密码砖通过S变换实现,以用户密钥和初始配置数据生成的S盒(交替滚动)为基础,通过嵌套复合实现多种尺寸的S变换。由于其尺寸大小各异,嵌套层数与选用参数也不相同,改变运算参数的同时也一定程度改变了算法结构,提升了不同算法实例之间的安全间隔。数据回流是指数据从当前层的某个部件的输出要返回到本层的另一个部件输入当中;根据密码转的尺寸,以及每一层中密码转的个数,设置的数据回流方向,以及交织层的参数,构建成一个密码墙,使得用户密钥与算法深度融合,不同的用户密钥对应 一个不同加解密分组算法,也即密码墙。这与传统的分组密码通过加解密密钥区分加解密函数的方法不同。本申请中用户密钥与算法已融合,而算法使用于身份认证与协商会话密钥,不会像传统分组密码使用时需要不断变换加密密钥,因而没有密钥扩展算法。不同密钥对应不同算法,对密码攻击者来说,大幅增强了现有攻击技术对它进行攻击的难度,在本申请密钥的多样性决定密码墙的多样性,多个密码墙对应一个加解密算法簇。
在本发明中,数据回流实现了算法结构的可变,大幅增强算法的复杂度,提高了密码的安全强度;交织层能够将各部件的信息均匀地、快速地、非线性地交织到其他部件,由于参数可变且为非线性运算同时也起到了混乱作用;基于以上用户密钥设计了均匀、非线性的单向扩展变换,保证了由配置数据到用户密钥的不可逆性。
优选的,所述步骤S100包括:步骤S110根据从用户端获取的的所述密钥信息,对所述密钥信息进行分组设置;步骤S120根据第一预设算法将分组设置后的所述密钥信息进行多轮换算,并生成初始参数配置信息;步骤S130根据所述初始参数配置信息生成多元S盒;步骤S140根据多元S盒以及所述初始参数配置信息进行S变换,生成所述参数配置信息。
具体的,在以上实施例的基础上提供了又一实施例,参考图2所示;根据所述用户端的密钥信息进行分组设置;根据第一预设算法将分组设置后的所述用户端的密钥信息进行多轮换算,并生成初始参数配置信息;根据生成的所述初始参数配置信息生成S盒;根据前面3步的结果进一步计算生成所述参数配置信息,并进行各轮密码砖、数据回流、交织层等算法参数的选取;参数配置信息的获取,第一步,基于用户密钥,生产初始配置数据。假设用户的密钥字节数为1024bit,即为K0,…K15,把K从低到高自然分成16个64bit数,分别记为K;定义函数:m(x)=x mod4,n(x)=x mod16,
Figure PCTCN2017100288-appb-000002
再记ai(i=0,1,2,3)为 64bit数,初始值预设为0X5555555555555555;(i=0,1,……,15)为6bit数,依次为17,27,37,47,17,27,37,47,17,27,37,47,17,27,37,47。Di(i=0,1,……,15)为64bit数,依次:
e7587fb070245d81,59377783eda99126,785ff6d8a555b001,
8f58e8945cf65ca9,f46c818ff7c470fb,a5855ee2a3e52db9,c55c32da2a35f5d0,e84d05e769aeab45,ddd7b6484638b3eb,1ec6846a2e738656,c969ef9ea9d44575,062df4a6915aa787,6b5a4a15153b0894,96568dcbc697e2a5,9c822a1b405de76c,c0efc5f02d035730,则当生成初始配置数据时,需要对a0,a1,a2,a3进行24变换,每进行16次变换,则第i第j次变换定义如下:也即第一预设算法;
Figure PCTCN2017100288-appb-000003
其中△i=7i为第i的偏移量,i=0,1,…,23,j=0,1,…,15;从第i=8开始在16次计算完成后输出a0,a1,a2,a3的值,每输出256bit,共输出16,生成4096bit初始配置数据。
第二步,利用初始配置数据生成16元S盒s。初始配置数据共512字节,记为{ti}i=0,1,2,…,511,再将ti的高4位与低4位分别记为
Figure PCTCN2017100288-appb-000004
先将s盒预置成单位置换,交换s中地址为
Figure PCTCN2017100288-appb-000005
的内容i=256,257,…,511,即
Figure PCTCN2017100288-appb-000006
共进行256次对换,对换后的s作为加密算法中16元S盒。
第三步,利用s及初始配置数据生成256元S盒S。首先,利用s预置一个S盒SS:
Figure PCTCN2017100288-appb-000007
再通过反馈进位加法生成对换起点:U256,V256:令U0=0,V0=0,计算(i=0,1,…,255),Ui+1=((Ui+ti>>8)+(Ui+ti))&0xff;Vi+1=((Vi+ti+256>>8)+(Vi+ti+256))&0xff;然后,对SS进行256次对换,对换SS中地址为第i+U256mod 256,ti+256、单元的内容,i=0,1,…,255;最后,令S=SS,对S进行256次对换,对换S中地址为第i+V256mod 256、ti单元的内容,i=0,1,…,255。这样就生成了加密算法中使用的256元S盒S,同时得到一个生成过程中使用的S盒 SS。
第四步,在前面的基础上,生成参数配置数据,并进行各密码砖、数据回流、交织层等算法参数的选取。采取第1步的计算方法,a0,a1,a2,a3是仍保留第1步中计算完成时的数据,即初始配置数据的最后256bit;把代替表SS按8个单元为一组划分成32个64bit数,记为SSi,i=0,1,…,31;再计算:
Figure PCTCN2017100288-appb-000008
其中,△i=7i为第i的偏移量,i=0,1,…,15,j=0,1,…,15。从每轮都在在16次计算完成后输出a0,a1,a2,a3的值,每输出256bit,共输出16,生成4096bit参数配置数据即参数配置信息。
在本发明中,生成的密码墙,也即生成算法,则是本着充分将密钥与加密算法融合的目的而设计,原则上要求各算法参数(包括S盒)符合随机分布,用户不同而算法不同;实现了第一,无密钥信息泄漏,即使攻击者已得到用户密码算法,也不能从中还原得到用户密钥;第二,算法实例间距离足够大,即使用户密钥比较接近时,算法间的差异也要足够大。
优选的,所述步骤S200包括:步骤S210根据从所述参数配置信息中获取的第一配置参数,设置所述密码砖的尺寸以及所述密码砖的个数;步骤S220根据从所述第一配置参数中获取的第二配置参数,设置所述数据回流的数据信息流动方向,以及在所述密码墙中的位置信息;步骤S230根据从所述参数配置信息中获取的第三配置参数,设置所述交织层的交织参数。
优选的,设置所述密码墙中其中一层所述密码砖的尺寸和个数包括:步骤S211根据预设的字节量对所述第一配置参数进行分组设置,并形成多组第一配置参数子信息;步骤S212将第一配置参数子信息进行高低字节排列;步骤S213在所述步骤S212按字节排列后的第一配置参数子信息 中选取对应预设数量的高低字节的参数信息,并根据第二预设算法进行计算;步骤S214根据所述步骤S213的计算结果确认密码砖的长度;步骤S215根据所述步骤S214中所述密码砖的长度和所述第一配置参数子信息长度计算所述第一配置参数子信息参数的剩余长度;步骤S216根据所述步骤S215中所述第一配置参数子信息的剩余长度和改变所述预设的字节量,计算密码砖的长度;重复执行步骤S215和步骤S216;确定对应层的所述密码转的尺寸和所述密码转的个数。
优选的,设置所述密码转的数据回流:步骤S221在所述第一配置参数子信息中选取预设字节量的配置参数子信息;步骤S222将所述步骤S221中选取的配置参数子信息分成低字节位和高字节位;步骤S223将所述步骤S222中分后的低字节位设置为所述密码转的数据流出方向位置,所述高字节位设置为所述密码转的数据流入方向位置。
优选的,设置所述交织层的交织参数包括:步骤231根据预设的字节量对所述第三配置参数进行分组设置,并形成多组第三配置参数子信息;其中,所述步骤231根据预设的字节量与所述步骤S211根据预设的字节量对应相等;步骤232根据第三预设算法对所述第三配置参数子信息进行计算;步骤233根据所述步骤S232对所述第三配置参数子信息进行计算的结果,确定所述交织层的交织参数。
优选的,所述S变换包括至少一层:单层S变换的数学模型为:X→S[X±Cmod2n];其中,S--S盒,n--S盒预设大小,C为根据用户端的密钥信息随机选取的S盒的参数;
多层S变换的数学模型为:
Figure PCTCN2017100288-appb-000009
其中,G(X,Y)=S(3X+C)mod2n/2⊕Y;
S--S变换,n--S变换预设尺寸,C为根据用户端的密钥信息随机选取 的S变换参数;X,Y分别为多层S变换的输入高字节,低字节;X′,Y′分别为多层S变换的输出高字节,低字节。
优选的,所述用户端的密码墙包括至少一层构建生成;其中,所述密码墙的每层顺序依次为所述密码砖,所述交织层;在每层中所述密码砖的大小不同,所述密码砖的个数不同。
具体的,在以上实施例的基础上提供了又一实施例;参考图3、4、5、6、7所示;将在以上一实施例中生成的4096bit参数配置数据即参数配置信息进行分配,密码墙中的每个参数部件进行不等分,假设分配给密码砖为3072bit,即为第一配置参数;从密码砖3072bit在分配给数据回流为1024bit,即为第二配置参数;分配给交织层为1024bit,即为第三配置参数;具体的将参数配置信息分配得方式方法,以及涉及的算数模型包括以下:在4096bit参数配置数据中确定密码墙中各个参数部件的空间容量也即自己数的大小等:
第一、确定密码砖个数及大小。确定密码砖个数及大小是基于S变换进行计算生成的;包括单层和多层;单层S变换:假设当密码砖n的大小为4bit或8bit时,S变换直接调用S盒,记X为n比特输入,则具体为:
Figure PCTCN2017100288-appb-000010
其中,n比特参数C由生成算法随机生成,并随机选取使用加法或是减法,根据尺寸n确定使用16元S盒s还是256元S盒S,它们也都是由生成算法依据用户密钥随机生成。
多层S变换:假设当密码砖n的大小为16bit或32bit时,S变换分别由8bit和16bit的S变换嵌套调用复合而成;同时还包括G变换,G变换:
G(X,Y)=(3X+C)mod 2n/2⊕Y,其中C为随机选取的参数;S变换的输入分为左右两部分,分别记为X,Y;同样,输出记为X',Y';为了区分, nbit的S变换记为Sn:(X,Y)→Sn(X,Y)=(X',Y'),则有:
Figure PCTCN2017100288-appb-000011
S变换、G变换的参数都是由生成算法随机选取的,并不相同的。从数学模型中可以看出,16bit的S变换由8bit的S变换与G变换两层生成,结构层次可视为两层;32bit的S变换由16bit的S变换与G变换两层生成,归结到8bit的S变换与G变换生成时,便为4层了。
进一步确定密码墙各个部件的参数信息具体如下;
第一、确定密码转的大小;
为了本实施例更加形象具体化,假设将4096bit参数配置数据分成16个256bit数,记为Ti(i=0,1,…,15),再对第i个256bit数Ti,以64比特为单位记为ti,j(j=0,1,…,3),以16比特为单位记为tti,j(j=0,1,…,16)。
首先,计算64bit数u=ti,0⊕ti,1,然后使用u进行确定密码砖个数及各砖尺寸,具体如下:
1、对u依次从低到高取2bit,当此2bit数的值:当为0时,取密码砖长度为4bit;为1时,取密码砖长度为8bit;为2时,取密码砖长度为16bit;为3时,取密码砖长度为32bit。按此方法,依次往后选密码砖,并不断从原始长度64bit依次减去已选取密码砖的长度,直到剩余长度小于等于0时停止。当剩余长度等于0时,算法结束;小于0时,将最后选的密码砖舍弃,并重新计算剩余长度。
2、若剩余长度不小于16时,再继续从u中取4bit,其值作为地址从数组{4,8,4,4,4,4,8,8,8,8,16,16,16,16,16,16}中选取出密码的长度,计算剩余长度,若不小于16,则继续此过程,否则,转下一步。另外,选取4,8,16的实际概率分别为5/16,5/16,6/16,接近随机选取概率1/3。这样设计的目的也是为了使复杂度更强的16bit砖选中的概率略大 一点,增强算法的复杂度。
3、若剩余长度不小于8时,再继续从u取1bit,若其为0,则选4bit密码砖;若为1,则选8bit密码砖。计算剩余长度,若不小于8,则继续此过程,否则,转下一步。
4、若剩余长度等于4时,选定最后密码砖的大小为4bit。
基于以上这样就完成密码砖的选取。
第二、确定数据回流;参考图7所示;由于数据同时流入,同层的密码砖可以一个时序上进行计算,然后再同时输出,这好像是密码砖的“并联”;而数据回流是指同层中的一个密码砖的输出再重新输入到另一个密码砖中去,只能分前后在不同时序上进行计算,这好像是密码砖的“串联”。数据回流改变了算法的层次结构。记密码砖A与密码砖B分别在同一层的第i,j(i<j)位置上,其对应的S变换分别记为变换Si,Sj,输入分别记为a,b,则:右回流变换:(a,b)→(Si(a),Sj(b⊕Si(a));
左回流变换:
Figure PCTCN2017100288-appb-000012
在密码墙上规定每层最多设定一个数据回流,在生成编制时,需要生成每层数据回流的密码砖与流向的密码砖的位置(i,j)。由于每层最多16个密码砖,因则每需要产生2个4bit数作密码砖的位置i,j,若两数相同则直通;若i,j大于实际密码砖个数M时,则将通过模运算将其变换到M以内:i mod M→i,j mod M→j。如果密码砖尺寸不相等时,则低位对齐进行异或操作,再按流入方密码砖尺寸保留异或后的结果。数据回流改变了算法的层次结构,使两个密码砖变成复合函数关系,能够大幅增加算法复杂度,同时增大算法的安全强度。
更进一步的实施例为,将u的最高16bit(即48-63位)分成高、低字节,取低字节的低4bit作为数据回流中流出方密码砖的位置,取高字节的 低4bit作为流入方密码砖的位置。
第三、确定密码砖的运算参数。由于密码砖进行变换的算法参数都是16bit的倍数,约定从数据回流的砖开始选取,从tti,j,(j=0,1,…,16)依次按需选取使用,直到密码砖的参数全部选完为止。
第四、确定交织层参数。计算64bit数v=ti,2⊕ti,3,然后使用v进行确定交织的参数a,b,则令a取v的高32位,b取低32位,并将a的最低2位强制‘1’,b的最低1位强制‘1’。交织层不同于纯线性交织层,它不仅起到交织作用,还有混乱效果,是本申请密码算法安全性的基础。将64bit输入,分别左、右两部分L,R,分别是32bit,根据交织参数a,b;则交织变换定义为:
1、R=R⊕P(aL+b mod 232);
2、L=L⊕P(aR+b mod 232);
3、R=R⊕P(aL+b mod 232);
P为交织变换;其中a,b为两个32bit参数,a满足最低两位为’1’,b为奇数;P为字节为单位的线性变换,对于输入32bit整数,可以看作4个字节的向量进行线性变换;
Figure PCTCN2017100288-appb-000013
密码墙的构建架构参考图所示;更加形象的展示密码墙的结构;密码砖和交织层是一一对应,同时每一层的密码砖的大小不同,致使其每层的密码砖的个数不等;同时数据的流出以及流入方向也不尽相同。数据回流在密码砖层上是随机设置的,在图8中仅在最后一层进行标示,具体的设置的流向,要遵从设置算法而得出。
在本发明中,在密码墙的其一层之中,既有小尺寸的密码砖,也有大 尺寸的密码砖,使得结构层次错落有致,变化多端;密码砖的变化量巨大,因此对于信息的加密更加安全可靠。
本发明还提供一种密码墙的构建方法的检测方法的实施例,参考图9所示;包括:步骤S100根据预设检测规则对生成后的所述密码墙的进行检测;步骤S200判断所述密码墙是否满足预设检测规则,当不满足时,重新生成密码墙。
优选的,所述步骤S100中所述的预设检测规则包括:所述加密算法的S盒变换是否直通;和/或,是否有多层密码砖在同一层都选取了同一预设大小的S变换。
具体的,参考图9所示,还包括所述密码砖层是否在同一层内选取同一预设元S盒变换;其中,所述密码砖层超过预设层数时。在以上实施例基础上本发明提供的又一实施例,在普通情况下,可以不需要检测,直接使用;在安全性要求较高情况下,如移动支付环境中,应检测:1)S盒是否直通,若皆直通则舍弃,16元与256元S盒舍弃的概率约为2-44×2-1684=2-1728;2)是否存在超过4层的密码砖层在一层之内全选取16元S变换,其概率约为
Figure PCTCN2017100288-appb-000014
若存在这样情况则舍弃。考虑到实际使用的用户数,舍弃情况“几乎”不会发生。检验规则:
S盒是否直通,若皆直通则舍弃;16元S盒s,s[i]等于i,i0=,1,...15,则放弃;256元S盒S,S[i]等于i,i=0,1,...255则放弃。检测的规则是根据使用场所景的安全性需求进行预先设定。
在本发明中,通过对密码墙构建方法的检测,对生成的算法参数进行检测,在工程实现过程中可以边检测边生成,若检测生成的算法不满足预先设定的规则,则重新产生用户密钥及生成用户算法。使信息更加安全可靠。
本发明还提供一种密码墙的加密方法的实施例,参考图10所示,包 括:步骤S100从用户端中获取待加密信息;步骤S200将所述待加密信息输入至所述密码墙中的相应层的密码砖中;步骤S300对所述步骤S200中的所述每个密码砖进行S变换,设置所述每个密码砖的数据回流的方向;步骤S400将所述步骤S300中对应层的所述每个密码砖变换的结果输入至对应层的所述交织层中,进行交织变换;步骤S500判断所述待加密信息是否遍历完所述密码墙的各层,当完成时,将所述交织层计算的结果作为加密信息输出;否则,将所述交织层计算的结果输入至所述密码墙中下一轮,并返回执行步骤S200。
具体的,根以上实施例前面的描述,数据回流与交织层的实现已清楚,不现重复。假设将64bit明文作为一个用户的加密算法的输入数据,经过加密算法的层层处理,输出64bit密文数据。从加密算法的第一开始:1)将输入数据对应输入到本的密码砖层,每个密码砖各自进行S变换计算;如果该密码砖涉及到数据回流,则先处理流出方的密码砖的计算,将流出方计算结果与流入方密码砖的输入数据进行异或后,再作为新输入进行流入方密码砖的计算;2)本密码砖层全部完成计算后,将密码砖层的计算结果输入到本交织层,进行交织变换;3)若已完成全部16轮的计算,则将交织层的计算结果作为密文输出;否则,将交织层的计算结果作为下一的输入数据,转1)继续下一的计算。
本发明还提供一种密码墙的构建方法的解密方法的实施例,参考图11所示,包括:步骤S100从服务器中获取待解密信息;步骤S200将所述待解密信息输入至所述密码墙中的相应层的交织层中;步骤S300对所述步骤S200中的所述相应层的交织层进行逆交织变换,设置所述交织层对应层的每个密码砖的数据回流的方向;步骤S400将所述步骤S300中逆交织变换的结果输入密码砖层每个密码砖中,进行逆S变换;步骤S500判断所述待解密信息是否遍历完所述密码墙的各层,当完成时,将所述密码砖逆S变换计算的结果作为解密信息输出;否则,将所述密码砖逆S变换的结 果输入至所述密码墙中下一层,并返回执行步骤S200。
在本实施例中提供了一种密码墙的构建方法的解密方法的实施例,解密流程是加密流程的逆过程,与加密流程略有不同。主要表现在密码砖及交织层处理方式上不同,解密时使用S变换与交织变换的逆变换。此外,数据回流,也同样需要逆着原来的方向流动。具体的,同样将64bit密文作为输入数据为例,从解密算法的第一开始依次处理如下:1)将本输入数据输入到本交织层,进行逆交织变换;2)将本交织层逆变换的计算结果输入到本密码砖层,每个密码砖各自进行逆S变换的计算;如果有密码砖涉及到数据回流,将原流出方的输入数据异或到流入方密码砖的逆S变换计算结果数据上,作为流入方密码砖的最后输出结果;3)若完成16全部计算,则将本密码砖层的计算结果作为明文输出;否则,将本密码砖层的计算结果作为下一的输入数据,转1)继续下一轮的计算。
本发明还提供一种密码墙的构建系统的实施例,参考图12所示;包括:信息获取模块100,服务器根据用户端的密钥信息获取参数配置信息;信息分配模块200,与所述信息获取模块100电连接,服务器将获取的所述参数配置信息分配至所述密码墙相应的参数部件中;所述密码墙中相应参数部件包括密码砖、数据回流、交织层;密码墙构建模块300,与所述信息分配模块200,服务器根据所述密码墙中相应参数部件配置的所述参数配置信息,构建所述密码墙。
优选的,所述信息获取模块100包括:分组设置子模块110,根据所述用户端的密钥信息进行分组设置;初始信息生成子模块120,与所述分组设置子模块110电连接,根据第一预设算法将分组设置后的所述用户端的密钥信息进行多轮换算,并生成初始参数配置信息;初始信息变换子模块130,与所述信息生成子模块120电连接,根据所述初始参数配置信息生成多元S盒;信息生成子模块140,与所述初始信息变换子模块130电 连接,根据多元S盒以及所述初始参数配置信息进行S变换,生成所述参数配置信息。
优选的,所述信息分配模块200包括:密码砖参数配置子模块210,根据从所述参数配置信息中获取的第一配置参数,设置所述密码砖的尺寸以及所述密码砖的个数;数据回流参数配置子模块220,根据从所述第一配置参数中获取的第二配置参数,设置所述数据回流的数据信息流动方向,以及在所述密码墙中的位置信息;交织参数配置子模块230,根据从所述参数配置信息中获取的第三配置参数,设置所述交织层的交织参数。
具体的,本实施例的中与需要说明的是,本系统中各模块之间的信息交互、执行过程等内容与上述方法实施例基于同一构思,在本申请的实施例中应用S盒变换,具有性质可控、数量巨大、实现便捷等显著特点,在分组密码设计中广泛使用。在本申请密码墙设计中,本申请也选用了S盒作为S变换的基础,并以S变换作为构成重要的密码模块。但与通用分组密码设计不同的是,本申请采用了可变S盒,并且可变范围没有局限在“最优”S盒范围内,而是在对称群-即全体N元置换的范围内。在最优范围内生成可变S盒并非难事,因为本申请考虑问题的出发点不是某一个算法实例的“个别”安全性,而是整个体系的安全性。追求体系安全,自然是范围越大越好,没有明显特征、不可识别为好。在对称群范围内随机生成S盒,可以最大限度承载用户密钥信息。用可变S盒的另外一个考虑是其不可逆性,即如果攻击者获取了某个算法实例的S盒,也难以逆推求出其生成步骤进而还原配置数据,这也是“白盒”密码设计的一个原理。设计了S盒生成与用户密钥非线性扩展的融合式递归方法,保证了用户密钥有效扩散到S盒和配置数据;设计了以16元置换和256元置换为基础,经过嵌套复用实现65536、4294967296元置换的方法。
本发明中,设计了“随机数到置换”的技术方法,操作少、生成的置换随机,不容易被非法用户破译,因此安全可靠。
通过将1024比特用户密钥均匀、非线性地扩展到不少于3856比特的算法参数配置数据,再由配置数据生成算法实例的隔离技术。使得算法实例稀疏地分布在23856个配置数据构成的空间中,平均每22832个配置数据仅对应一个算法实例。密码砖通过S变换实现,以用户密钥和初始配置数据生成的S盒(交替滚动)为基础,通过嵌套复合实现多种尺寸的S变换。由于其尺寸大小各异,嵌套层数与选用参数也不相同,改变运算参数的同时也一定程度改变了算法结构,提升了不同算法实例之间的安全间隔。数据回流是指数据从当前层的某个部件的输出要返回到本层的另一个部件输入当中;根据密码转的尺寸,以及每一层中密码转的个数,设置的数据回流方向,以及交织层的参数,构建成一个密码墙,使得用户密钥与算法深度融合,不同的用户密钥对应一个不同加解密分组算法,也即密码墙。这与传统的分组密码通过加解密密钥区分加解密函数的方法不同。本申请中用户密钥与算法已融合,而算法使用于身份认证与协商会话密钥,不会像传统分组密码使用时需要不断变换加密密钥,因而没有密钥扩展算法。不同密钥对应不同算法,对密码攻击者来说,大幅增强了现有攻击技术对它进行攻击的难度,在本申请密钥的多样性决定密码墙的多样性,多个密码墙对应一个加解密算法簇。
根据所述用户端的密钥信息进行分组设置;根据第一预设算法将分组设置后的所述用户端的密钥信息进行多轮换算,并生成初始参数配置信息;根据生成的所述初始参数配置信息生成S盒;根据前面3步的结果进一步计算生成所述参数配置信息,并进行各轮密码砖、数据回流、交织层等算法参数的选取;参数配置信息的获取,第一步,基于用户密钥,生产初始配置数据。假设用户的密钥字节数为1024bit,即为K0,…K15,把K从低到高自然分成16个64bit数,分别记为K;定义函数:m(x)=x mod4,n(x)=x mod16,
Figure PCTCN2017100288-appb-000015
再记 ai(i=0,1,2,3)为64bit数,初始值预设为0X5555555555555555;(i=0,1,……,15)为6bit数,依次为17,27,37,47,17,27,37,47,17,27,37,47,17,27,37,47。Di(i=0,1,……,15)为64bit数,依次:
e7587fb070245d81,59377783eda99126,785ff6d8a555b001,
8f58e8945cf65ca9,f46c818ff7c470fb,a5855ee2a3e52db9,c55c32da2a35f5d0,e84d05e769aeab45,ddd7b6484638b3eb,1ec6846a2e738656,c969ef9ea9d44575,062df4a6915aa787,6b5a4a15153b0894,96568dcbc697e2a5,9c822a1b405de76c,c0efc5 f02d035730,则当生成初始配置数据时,需要对a0,a1,a2,a3进行24变换,每进行16次变换,则第i第j次变换定义如下:也即第一预设算法;
Figure PCTCN2017100288-appb-000016
其中△i=7i为第i的偏移量,i=0,1,…,23,j=0,1,…,15;从第i=8开始在16次计算完成后输出a0,a1,a2,a3的值,每输出256bit,共输出16,生成4096bit初始配置数据。
第二步,利用初始配置数据生成16元S盒s。初始配置数据共512字节,记为{ti}i=0,1,2,…,511,再将ti的高4位与低4位分别记为
Figure PCTCN2017100288-appb-000017
先将s盒预置成单位置换,交换s中地址为
Figure PCTCN2017100288-appb-000018
的内容i=256,257,…,511,即
Figure PCTCN2017100288-appb-000019
共进行256次对换,对换后的s作为加密算法中16元S盒。
第三步,利用s及初始配置数据生成256元S盒S。首先,利用s预置一个S盒SS:
Figure PCTCN2017100288-appb-000020
再通过反馈进位加法生成对换起点:U256,V256:令U0=0,V0=0,计算(i=0,1,…,255),Ui+1=((Ui+ti>>8)+(Ui+ti))&0xff;Vi+1=((Vi+ti+256>>8)+(Vi+ti+256))&0xff;然后,对SS进行256次对换,对换SS中地址为第i+U256mod 256,ti+256、单元的内容,i=0,1,…,255;最后,令S=SS,对S进行256次对换,对换 S中地址为第i+V256mod 256、ti单元的内容,i=0,1,…,255。这样就生成了加密算法中使用的256元S盒S,同时得到一个生成过程中使用的S盒SS。
第四步,在前面的基础上,生成参数配置数据,并进行各密码砖、数据回流、交织层等算法参数的选取。采取第1步的计算方法,a0,a1,a2,a3是仍保留第1步中计算完成时的数据,即初始配置数据的最后256bit;把代替表SS按8个单元为一组划分成32个64bit数,记为SSi,i=0,1,…,31;再计算
Figure PCTCN2017100288-appb-000021
其中,△i=7i为第i的偏移量,i=0,1,…,15,j=0,1,…,15。从每轮都在在16次计算完成后输出a0,a1,a2,a3的值,每输出256bit,共输出16,生成4096bit参数配置数据即参数配置信息。
在本发明中,生成的密码墙,也即生成算法,则是本着充分将密钥与加密算法融合的目的而设计,原则上要求各算法参数(包括S盒)符合随机分布,用户不同而算法不同;实现了第一,无密钥信息泄漏,即使攻击者已得到用户密码算法,也不能从中还原得到用户密钥;第二,算法实例间距离足够大,即使用户密钥比较接近时,算法间的差异也要足够大。
优选的,所述S变换包括至少一层:单层S变换的数学模型为:X→S[X±Cmod2n];其中,S--S盒,n--S盒预设大小,C为根据用户端的密钥信息随机选取的S盒的参数;
多层S变换的数学模型为:
Figure PCTCN2017100288-appb-000022
其中,G(X,Y)=S(3X+C)mod2n/2⊕Y;
S--S变换,n--S变换预设尺寸,C为根据用户端的密钥信息随机选取 的S变换参数;X,Y分别为多层S变换的输入高字节,低字节;X′,Y′分别为多层S变换的输出高字节,低字节。
将在以上一实施例中生成的4096bit参数配置数据即参数配置信息进行分配,密码墙中的每个参数部件进行不等分,假设分配给密码砖为3072bit,即为第一配置参数;从密码砖3072bit在分配给数据回流为1024bit,即为第二配置参数;分配给交织层为1024bit,即为第三配置参数;具体的将参数配置信息分配得方式方法,以及涉及的算数模型包括以下:在4096bit参数配置数据中确定密码墙中各个参数部件的空间容量也即自己数的大小等:
第一、确定密码砖个数及大小。确定密码砖个数及大小是基于S变换进行计算生成的;包括单层和多层;单层S变换:假设当密码砖n的大小为4bit或8bit时,S变换直接调用S盒,记X为n比特输入,则具体为:
Figure PCTCN2017100288-appb-000023
其中,n比特参数C由生成算法随机生成,并随机选取使用加法或是减法,根据尺寸n确定使用16元S盒s还是256元S盒S,它们也都是由生成算法依据用户密钥随机生成。
多层S变换:假设当密码砖n的大小为16bit或32bit时,S变换分别由8bit和16bit的S变换嵌套调用复合而成;同时还包括G变换,G变换:
G(X,Y)=(3X+C)mod 2n/2⊕Y,其中C为随机选取的参数;S变换的输入分为左右两部分,分别记为X,Y;同样,输出记为X',Y';为了区分,nbit的S变换记为Sn:(X,Y)→Sn(X,Y)=(X',Y'),则有:
Figure PCTCN2017100288-appb-000024
S变换、G变换的参数都是由生成算法随机选取的,并不相同的。从 数学模型中可以看出,16bit的S变换由8bit的S变换与G变换两层生成,结构层次可视为两层;32bit的S变换由16bit的S变换与G变换两层生成,归结到8bit的S变换与G变换生成时,便为4层了。
进一步确定密码墙各个部件的参数信息具体如下;
第一、确定密码转的大小;
为了本实施例更加形象具体化,假设将4096bit参数配置数据分成16个256bit数,记为Ti(i=0,1,…,15),再对第i个256bit数Ti,以64比特为单位记为ti,j(j=0,1,…,3),以16比特为单位记为tti,j(j=0,1,…,16)。
首先,计算64bit数u=ti,0⊕ti,1,然后使用u进行确定密码砖个数及各砖尺寸,具体如下:
1、对u依次从低到高取2bit,当此2bit数的值:当为0时,取密码砖长度为4bit;为1时,取密码砖长度为8bit;为2时,取密码砖长度为16bit;为3时,取密码砖长度为32bit。按此方法,依次往后选密码砖,并不断从原始长度64bit依次减去已选取密码砖的长度,直到剩余长度小于等于0时停止。当剩余长度等于0时,算法结束;小于0时,将最后选的密码砖舍弃,并重新计算剩余长度。
2、若剩余长度不小于16时,再继续从u中取4bit,其值作为地址从数组{4,8,4,4,4,4,8,8,8,8,16,16,16,16,16,16}中选取出密码的长度,计算剩余长度,若不小于16,则继续此过程,否则,转下一步。另外,选取4,8,16的实际概率分别为5/16,5/16,6/16,接近随机选取概率1/3。这样设计的目的也是为了使复杂度更强的16bit砖选中的概率略大一点,增强算法的复杂度。
3、若剩余长度不小于8时,再继续从u取1bit,若其为0,则选4bit密码砖;若为1,则选8bit密码砖。计算剩余长度,若不小于8,则继续此过程,否则,转下一步。
4、若剩余长度等于4时,选定最后密码砖的大小为4bit。
基于以上这样就完成密码砖的选取。
第二、确定数据回流;参考图7所示;由于数据同时流入,同层的密码砖可以一个时序上进行计算,然后再同时输出,这好像是密码砖的“并联”;而数据回流是指同层中的一个密码砖的输出再重新输入到另一个密码砖中去,只能分前后在不同时序上进行计算,这好像是密码砖的“串联”。数据回流改变了算法的层次结构。记密码砖A与密码砖B分别在同一层的第i,j(i<j)位置上,其对应的S变换分别记为变换Si,Sj,输入分别记为a,b,则:右回流变换:(a,b)→(Si(a),Sj(b⊕Si(a));
左回流变换:(a,b)→(Si(a)⊕Sj(b),Sj(b));
在密码墙上规定每层最多设定一个数据回流,在生成编制时,需要生成每层数据回流的密码砖与流向的密码砖的位置(i,j)。由于每层最多16个密码砖,因则每需要产生2个4bit数作密码砖的位置i,j,若两数相同则直通;若i,j大于实际密码砖个数M时,则将通过模运算将其变换到M以内:i mod M→i,j mod M→j。如果密码砖尺寸不相等时,则低位对齐进行异或操作,再按流入方密码砖尺寸保留异或后的结果。数据回流改变了算法的层次结构,使两个密码砖变成复合函数关系,能够大幅增加算法复杂度,同时增大算法的安全强度。
更进一步的实施例为,将u的最高16bit(即48-63位)分成高、低字节,取低字节的低4bit作为数据回流中流出方密码砖的位置,取高字节的低4bit作为流入方密码砖的位置。
第三、确定密码砖的运算参数。由于密码砖进行变换的算法参数都是16bit的倍数,约定从数据回流的砖开始选取,从tti,j,(j=0,1,…,16)依次按需选取使用,直到密码砖的参数全部选完为止。
第四、确定交织层参数。计算64bit数v=ti,2⊕t i,3,然后使用v进行确定交织的参数a,b,则令a取v的高32位,b取低32位,并将a的最低2位强制‘1’,b的最低1位强制‘1’。交织层不同于纯线性交织层,它不仅起到交织作用,还有混乱效果,是本申请密码算法安全性的基础。将64bit输入,分别左、右两部分L,R,分别是32bit,根据交织参数a,b;则交织变换定义为:
1、R=R⊕P(aL+b mod 232);
2、L=L⊕P(aR+b mod 232);
3、R=R⊕P(aL+b mod 232);
P为交织变换;其中a,b为两个32bit参数,a满足最低两位为’1’,b为奇数;P为字节为单位的线性变换,对于输入32bit整数,可以看作4个字节的向量进行线性变换;
Figure PCTCN2017100288-appb-000025
密码墙的构建架构参考图所示;更加形象的展示密码墙的结构;密码砖和交织层是一一对应,同时每一层的密码砖的大小不同,致使其每层的密码砖的个数不等;同时数据的流出以及流入方向也不尽相同。数据回流在密码砖层上是随机设置的,在图8中仅在最后一层进行标示,具体的设置的流向,要遵从设置算法而得出。
在本发明中,在密码墙的其一层之中,既有小尺寸的密码砖,也有大尺寸的密码砖,使得结构层次错落有致,变化多端;密码砖的变化量巨大,因此对于信息的加密更加安全可靠。
本发明还提供一种密码墙构建系统的检测系统的实施例,包括:检测模块100,根据预设检测规则对生成后的所述密码墙的进行检测;检测判 断模块200,与所述检测模块100电连接,判断所述密码墙是否满足预设检测规则;当不满足时,重新生成密码墙;其中,所述的预设检测规则包括:所述加密算法的S盒变换是否直通;和/或,是否有多层密码砖在同一层都选取了同一预设大小的S变换。
本发明还提供一种密码墙的加密系统的实施例,参考图13所示,包括:待加密信息获取模块100,从用户端中获取待加密信息;待加密信息输入模块200,与所述待加密信息获取模块100电连接,将所述待加密信息输入至所述密码墙中的相应层的密码砖中;数据回流方向设置模块300,与所述待加密信息输入模块200电连接,对所述待加密信息输入模块200中的所述每个密码砖进行S变换,设置所述每个密码砖的数据回流的方向;交织变换模块400,与所述数据回流方向设置模块300电连接,将所述数据回流方向设置模块300中对应层的所述每个密码砖变换的结果输入至对应层的所述交织层中,进行交织变换;待加密信息处理模块500,与所述交织变换模块400电连接,判断所述待加密信息是否遍历完所述密码墙的各层,当完成时,将所述交织层计算的结果作为加密信息输出;否则,将所述交织层计算的结果输入至所述密码墙中下一层,并控制所述待加密信息输入模块200,并执行将所述待加密信息输入至所述密码墙中的相应层的每个密码砖中。
本发明还提供一种密码墙的解密系统的实施例,参考图14所示,包括:待解密信息获取模块100,从服务器中获取待解密信息;待解密信息输入模块200,与所述待解密信息获取模块100电连接,将所述待解密信息输入至所述密码墙中的相应层的交织层中;数据回流方向设置模块300,与所述待解密信息输入模块200电连接,对所述待解密信息输入模块200中的所述相应层的交织层进行逆交织变换,设置所述交织层对应层的每个密码砖的数据回流的方向;逆S变换模块400,与所述数据回流方向设置 模块300电连接,将所述数据回流方向设置模块300中逆交织变换的结果输入密码砖层每个密码砖中,进行逆S变换;待解密信息处理模块500,与所述交织变换逆模块400电连接,判断所述待解密信息是否遍历完所述密码墙的各层,当完成时,将所述密码砖逆S变换计算的结果作为解密信息输出;否则,将所述密码砖逆S变换的结果输入至所述密码墙中下一层,并控制所述待解密信息输入模块200,并执行将所述待解密信息输入至所述密码墙中的相应层的交织层中。
需要说明的是,本申请的密码墙的加密系统和密码墙的解密系统中各模块之间的信息交互、执行过程等内容与上述方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
在本申请中还提供一个具体的实施例,用于密码砖S变换的具体实现:记x为输入,y为输出。为传递与选取方便,密码砖的参数都是以16bit为单位。
1、当密码砖尺寸为4bit时,需要5bit算法参数,实际传16bit数据(c15,c14,……c2,c1,c0),若c8=0,则计算y=s[x+c3c2c1c0mod 16];否则,c8=1时,则计算y=s[x-c3c2c1c0mod 16];
2、当密码砖尺寸为8bit时,需要9bit算法参数,实际传16bit数据(c15,c14,……c2,c1,c0),若c8=0,则计算
y=S[x+c7c6c5c4c3c2c1c0mod 256];否则,若c8=1时,则计算
y=S[x-c7c6c5c4c3c2c1c0mod 256];
3、当密码砖尺寸为16bit时,需要32bit算法参数,实际传2个16bit参数C=(c15,c14,……c2,c1,c0),D=()d15,d14……d2,d1,d0。将输入的16bit x按字节分成两个高低两部分a,b,则分4步完成S变换:
1)若c8=0,则计算b1=S[b+c7c6c5c4c3c2c1c0mod 256];否则,c8=1时,则计算b1=S[b-c7c6c5c4c3c2c1c0mod 256];
2)计算a1=(3a+c15 c14 c13 c12 c11 c10 c9 1mod 256)⊕b1,其中,c15 c14 c13 c12 c11 c10 c9 1是指此8bit数最后1bit强制为1;
3)若d8=0,则计算a2=S[a1+d7d6d5d4d3d2d1d0mod 256];否则,d8=1时,则计算a2=S[a1-d7d6d5d4d3d2d1d0mod 256];
4)计算b2=(3b1+d15d14d13 d12 d11 d10 d9 1)⊕a2,
其中d15 d14 d13 d12 d11 d10 d9 1相当于此8bit数最后1bit强制为1;则S变换的结果y=a2<<8|b2,即a2,b2分别为变换结果y的高8、低8bit。
4、当密码砖尺寸为32bit时,需要6个16bit算法参数C0,C1,C2,C3,C4,C5,将输入的32bit,分成高低两个16bit数A、B,则计算
1)利用密码砖尺寸为16bit时的变换方法,以B为输入,C0,C1为算法参数,计算16bit的S变换,其16bit变换结果记为B1;
2)计算A1=(3A+(C2|1))⊕B1,其中C2|1表示C2的最后1bit强制为1;
3)利用16bit的变换方法,以A1为输入,C3,C4为算法参数,计算16bit的S变换,其16bit变换结果记为A2;
4)计算B2=(3B1+(C5|1))⊕A2,其中C5|1表示C5的最后1bit强制为1;则S变换的结果y=A2<<16|B2,即A2,B2分别为变换结果y的高16、低16bit。
在本发明中,密码墙的构建包括两部分一是生成算法,依据用户密钥为每个用户生成加解密算法;二是分组加密算法,随用户不同而不同,可以广义上看作是类SP结构。加密算法是通过对密码砖、交织层及数据回流的随机设置而生成的。
在本发明中,采用了多种基础部件,多种尺寸规格、多种层次结构、多种数据流向。形象地说,就像盖楼一样用不同大小、不同层次结构、不同操作参数的密码砖垒成一层,再与不同配置的交织层交替使用,一层一层搭建起密码算法的大厦;在加密时数据自上而下依次进行传递和运算,但在某些地方存在 向后回流的情形,打乱了数据流向与运算的时序,相当于改变的算法的层次结构。
在本申请中,SOTP密码算法也即构建密码器的方法,使用到密码砖、交织层、数据回流等三个新概念,其他述语使用符合通常算法描述习惯,下面进行简要说明:
1、密码砖。密码砖是密码主要组件,采用随机生成的S盒,通过由其直接或嵌套生成的S变换完成操作,包括代替、整数环上加减法、异或等运算。
密码砖部件主要提供必要的非线性,达到内部“混乱”的作用。由于尺寸较大的密码砖可以看作是由尺寸较小的密码砖通过多层复合变换而成,因此,密码砖还可产生逻辑结构层次“混乱”的作用。
在为每个用户生成加解密算法时,随机生成密码砖的操作参数。
2、数据回流。数据回流是指改变密码砖的正常数据流向,将一个密码砖的运算结果再输入到本层另一个密码砖中去进行处理,包括直通、左回流、右回流等情形。数据回流能够改变算法的逻辑结构层次关系,大幅增强算法的复杂度,提高密码的安全强度。参与数据回流的相关密码砖在生成用户加解密算法时随机选取。
3、交织层。交织层能够将各密码砖的运算输出信息尽可能均匀地、快速地、甚至非线性地交织到其他位置。交织层主要作用是“交织”,与传统的SP密码算法中的交织层仅起线性交织作用不同,它同时起到非线性“混乱”的作用,是SOTP算法重要的安全基础。
4、符号和缩略语。
K:为1024bit,用于生成加解密算法的用户密钥,用户不同密钥也不同;
s:4bit代替表,即16元的S盒;
S:8bit代替表,即256元的S盒;
G变换:利用环Z2n及域F2上代数运算进行的变换;
S变换:利用S盒直接或通过嵌套扩展而成的非线性变换;
P:字节为单位的线性变换;
⊕:异或运算;
+:算术加;
-:算术减;
<<<:循环左移;
本申请的在算法描述中,使用随机生成或随机选取等用语,仅指示其符合随机分布,而非真随机,准确的表达应为以符合随机分布的方式生成或选取之类,如此简称,只为行文方便而已。
应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (18)

  1. 一种密码墙的构建方法,其特征在于,包括:
    步骤S100根据用户端的密钥信息获取参数配置信息;
    步骤S200将获取的所述参数配置信息分配至所述密码墙相应的参数部件中;所述密码墙中相应参数部件包括密码砖、数据回流、交织层;
    步骤S300根据所述密码墙中相应参数部件配置的所述参数配置信息,构建所述密码墙。
  2. 根据权利要求1所述密码墙的构建方法,其特征在于,所述步骤S100包括:
    步骤S110根据从用户端获取的所述密钥信息,对所述密钥信息进行分组设置;
    步骤S120根据第一预设算法将分组设置后的所述密钥信息进行多轮换算,并生成初始参数配置信息;
    步骤S130根据所述初始参数配置信息生成多元S盒;
    步骤S140根据多元S盒以及所述初始参数配置信息进行S变换,生成所述参数配置信息。
  3. 根据权利要求1所述密码墙的构建方法,其特征在于,所述步骤S200包括:
    步骤S210根据从所述参数配置信息中获取的第一配置参数,设置所述密码砖的尺寸以及所述密码砖的个数;
    步骤S220根据从所述第一配置参数中获取的第二配置参数,设置所述数据回流的数据信息流动方向,以及在所述密码墙中的位置信息;
    步骤S230根据从所述参数配置信息中获取的第三配置参数,设置所述交织层的交织参数。
  4. 根据权利要求3所述密码墙的构建方法,其特征在于,设置所述 密码墙中其中一层所述密码砖的尺寸和个数包括:
    步骤S211根据预设的字节量对所述第一配置参数进行分组设置,并形成多组第一配置参数子信息;
    步骤S212将第一配置参数子信息进行高低字节排列;
    步骤S213在所述步骤S212按字节排列后的第一配置参数子信息中选取对应预设数量的高低字节的参数信息,并根据第二预设算法进行计算;
    步骤S214根据所述步骤S213的计算结果确认密码砖的长度;
    步骤S215根据所述步骤S214中所述密码砖的长度和所述第一配置参数子信息长度计算所述第一配置参数子信息参数的剩余长度;
    步骤S216根据所述步骤S215中所述第一配置参数子信息的剩余长度和改变所述预设的字节量,计算密码砖的长度;重复执行步骤S215和步骤S216;确定对应层的所述密码转的尺寸和所述密码转的个数。
  5. 根据权利要求4所述密码墙的构建方法,其特征在于,设置所述密码转的数据回流:
    步骤S221在所述第一配置参数子信息中选取预设字节量的配置参数子信息;
    步骤S222将所述步骤S221中选取的配置参数子信息分成低字节位和高字节位;
    步骤S223将所述步骤S222中分后的低字节位设置为所述密码转的数据流出方向位置,所述高字节位设置为所述密码转的数据流入方向位置。
  6. 根据权利要求4所述密码墙的构建方法,其特征在于,设置所述交织层的交织参数包括:
    步骤231根据预设的字节量对所述第三配置参数进行分组设置,并 形成多组第三配置参数子信息;其中,所述步骤231根据预设的字节量与所述步骤S211根据预设的字节量对应相等;
    步骤232根据第三预设算法对所述第三配置参数子信息进行计算;
    步骤233根据所述步骤S232对所述第三配置参数子信息进行计算的结果,确定所述交织层的交织参数。
  7. 根据权利要求2所述密码墙的构建方法,其特征在于,所述S变换包括至少一层:
    单层S变换的数学模型为:X→S[X±Cmod2n];
    其中,S--S盒,n--S盒预设大小,C为根据用户端的密钥信息随机选取的S盒的参数;
    多层S变换的数学模型为:
    Figure PCTCN2017100288-appb-100001
    其中,
    Figure PCTCN2017100288-appb-100002
    S--S变换,n--S变换预设尺寸,C为根据用户端的密钥信息随机选取的S变换参数;X,Y分别为多层S变换的输入高字节,低字节;X′,Y′分别为多层S变换的输出高字节,低字节。
  8. 根据权利要求3所述密码墙的构建方法,其特征在于,所述用户端的所述密码墙包括至少一层构建生成;
    其中,所述密码墙的每层顺序依次为所述密码砖,所述交织层;
    在每层中所述密码砖的大小不同,所述密码砖的个数不同。
  9. 一种可执行如权利要求1-8任一所述密码墙的构建方法的检测方法,其特征在于,包括:
    步骤S100根据预设检测规则对生成后的所述密码墙的进行检测;
    步骤S200判断所述密码墙是否满足预设检测规则,当不满足时,重新生成密码墙。
  10. 根据权利要求9所述的密码墙构建方法的检测方法,其特征在于,所述步骤S100中所述的预设检测规则包括:
    所述加密算法的S盒变换是否直通;和/或,
    是否有多层密码砖在同一层都选取了同一预设大小的S变换。
  11. 一种密码墙的加密方法,包括可执行如权利要求1-8任一所述密码墙的构建方法,其特征在于,包括:
    步骤S100从用户端中获取待加密信息;
    步骤S200将所述待加密信息输入至所述密码墙中的相应层的密码砖中;
    步骤S300对所述步骤S200中的所述每个密码砖进行S变换,设置所述每个密码砖的数据回流的方向;
    步骤S400将所述步骤S300中对应层的所述每个密码砖变换的结果输入至对应层的所述交织层中,进行交织变换;
    步骤S500判断所述待加密信息是否遍历完所述密码墙的各层,当完成时,将所述交织层计算的结果作为加密信息输出;否则,将所述交织层计算的结果输入至所述密码墙中下一轮,并返回执行步骤S200。
  12. 一种密码墙的解密方法,包括可执行如权利要求1-8任一所述密码墙的构建方法,其特征在于,包括:
    步骤S100从服务器中获取待解密信息;
    步骤S200将所述待解密信息输入至所述密码墙中的相应层的交织层中;
    步骤S300对所述步骤S200中的所述相应层的交织层进行逆交织变换,设置所述交织层对应层的每个密码砖的数据回流的方向;
    步骤S400将所述步骤S300中逆交织变换的结果输入密码砖层每个密码砖中,进行逆S变换;
    步骤S500判断所述待解密信息是否遍历完所述密码墙的各层,当完成时,将所述密码砖逆S变换计算的结果作为解密信息输出;否则,将所述密码砖逆S变换的结果输入至所述密码墙中下一层,并返回执行步骤S200。
  13. 一种可执行如权利要求1-8任一所述密码墙的构建方法的构建系统,其特征在于,包括:
    信息获取模块,服务器根据用户端的密钥信息获取参数配置信息;
    信息分配模块,与所述信息获取模块电连接,服务器将获取的所述参数配置信息分配至所述密码墙相应的参数部件中;所述密码墙中相应参数部件包括密码砖、数据回流、交织层;
    密码墙构建模块,与所述信息分配模块,服务器根据所述密码墙中相应参数部件配置的所述参数配置信息,构建所述密码墙。
  14. 根据权利要求13所述密码墙的构建系统,其特征在于,所述信息获取模块包括:
    分组设置子模块,根据所述用户端的密钥信息进行分组设置;
    初始信息生成子模块,与所述分组设置子模块电连接,根据第一预设算法将分组设置后的所述用户端的密钥信息进行多轮换算,并生成初始参数配置信息;
    初始信息变换子模块,与所述信息生成子模块电连接,根据所述初始参数配置信息生成多元S盒;
    信息生成子模块,与所述初始信息变换子模块电连接,根据多元S盒以及所述初始参数配置信息进行S变换,生成所述参数配置信息。
  15. 根据权利要求13所述密码墙的构建系统,其特征在于,所述信息分配模块包括:
    密码砖参数配置子模块,根据从所述参数配置信息中获取的第一配 置参数,设置所述密码砖的尺寸以及所述密码砖的个数;
    数据回流参数配置子模块,根据从所述第一配置参数中获取的第二配置参数,设置所述数据回流的数据信息流动方向,以及在所述密码墙中的位置信息;
    交织参数配置子模块,根据从所述参数配置信息中获取的第三配置参数,设置所述交织层的交织参数。
  16. 一种密码墙构建系统的检测系统,其特征在于,包括:
    检测模块,根据预设检测规则对生成后的所述密码墙的进行检测;
    检测判断模块,与所述检测模块电连接,判断所述密码墙是否满足预设检测规则;
    当不满足时,重新生成密码墙;
    其中,所述的预设检测规则包括:
    所述加密算法的S盒变换是否直通;和/或,
    是否有多层密码砖在同一层都选取了同一预设大小的S变换。
  17. 一种密码墙的加密系统,包括可执行如权利要求11所述种密码墙的加密方法,其特征在于,包括:
    待加密信息获取模块,从用户端中获取待加密信息;
    待加密信息输入模块,与所述待加密信息获取模块电连接,将所述待加密信息输入至所述密码墙中的相应层的密码砖中;
    数据回流方向设置模块,与所述待加密信息输入模块电连接,对所述待加密信息输入模块中的所述每个密码砖进行S变换,设置所述每个密码砖的数据回流的方向;;
    交织变换模块,与所述数据回流方向设置模块电连接,将所述数据回流方向设置模块中对应层的所述每个密码砖变换的结果输入至对应层的所述交织层中,进行交织变换;
    待加密信息处理模块,与所述交织变换模块电连接,判断所述待加密信息是否遍历完所述密码墙的各层,当完成时,将所述交织层计算的结果作为加密信息输出;否则,将所述交织层计算的结果输入至所述密码墙中下一层,并控制所述待加密信息输入模块,并执行将所述待加密信息输入至所述密码墙中的相应层的每个密码砖中。
  18. 一种密码墙的解密系统,包括可执行如权利要求12所述种密码墙的加密方法,其特征在于,包括:
    待解密信息获取模块,从服务器中获取待解密信息;
    待解密信息输入模块,与所述待解密信息获取模块电连接,将所述待解密信息输入至所述密码墙中的相应层的交织层中;
    数据回流方向设置模块,与所述待解密信息输入模块电连接,对所述待解密信息输入模块中的所述相应层的交织层进行逆交织变换,设置所述交织层对应层的每个密码砖的数据回流的方向;
    逆S变换模块,与所述数据回流方向设置模块电连接,将所述数据回流方向设置模块中逆交织变换的结果输入密码砖层每个密码砖中,进行逆S变换;
    待解密信息处理模块,与所述交织变换逆模块电连接,判断所述待解密信息是否遍历完所述密码墙的各层,当完成时,将所述密码砖逆S变换计算的结果作为解密信息输出;否则,将所述密码砖逆S变换的结果输入至所述密码墙中下一层,并控制所述待解密信息输入模块,并执行将所述待解密信息输入至所述密码墙中的相应层的交织层中。
PCT/CN2017/100288 2017-05-09 2017-09-01 一种密码墙的构建方法及系统 WO2018205469A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710319769.3 2017-05-09
CN201710319769.3A CN107425963A (zh) 2017-05-09 2017-05-09 一种密码墙的构建方法及系统

Publications (1)

Publication Number Publication Date
WO2018205469A1 true WO2018205469A1 (zh) 2018-11-15

Family

ID=60425926

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/100288 WO2018205469A1 (zh) 2017-05-09 2017-09-01 一种密码墙的构建方法及系统

Country Status (2)

Country Link
CN (1) CN107425963A (zh)
WO (1) WO2018205469A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115883065B (zh) * 2022-11-26 2024-02-20 郑州信大华芯信息科技有限公司 一种基于可变s盒的软件加解密快速实现方法、装置、芯片及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101764686A (zh) * 2010-01-11 2010-06-30 石家庄开发区冀科双实科技有限公司 一种用于网络与信息安全的加密方法
CN102185692A (zh) * 2011-04-25 2011-09-14 北京航空航天大学 基于aes加密算法的多模式可重构加密方法
CN104052595A (zh) * 2014-05-23 2014-09-17 戴葵 密码算法定制方法
US20140380037A1 (en) * 2012-03-02 2014-12-25 Sony Corporation Information processing apparatus, information processing method, and program
CN105681026A (zh) * 2016-03-10 2016-06-15 中国科学院计算技术研究所 适用于轻量级加密算法的动态s盒构造方法及系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7346161B2 (en) * 2000-01-26 2008-03-18 Fujitsu Limited Method and apparatus for designing cipher logic, and a computer product
JP2008058830A (ja) * 2006-09-01 2008-03-13 Sony Corp データ変換装置、およびデータ変換方法、並びにコンピュータ・プログラム
CN101242265A (zh) * 2008-03-07 2008-08-13 四川虹微技术有限公司 安全系统中流密码、伪随机数产生方法
RU2010110344A (ru) * 2010-03-18 2011-09-27 ЭлЭсАй Корпорейшн (US) Криптографическая обработка с использованием процессора
CN102025484B (zh) * 2010-12-17 2012-07-04 北京航空航天大学 一种分组密码加解密方法
CN104751065A (zh) * 2015-03-09 2015-07-01 哈尔滨工程大学 一种基于地理信息产品文件的加密方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101764686A (zh) * 2010-01-11 2010-06-30 石家庄开发区冀科双实科技有限公司 一种用于网络与信息安全的加密方法
CN102185692A (zh) * 2011-04-25 2011-09-14 北京航空航天大学 基于aes加密算法的多模式可重构加密方法
US20140380037A1 (en) * 2012-03-02 2014-12-25 Sony Corporation Information processing apparatus, information processing method, and program
CN104052595A (zh) * 2014-05-23 2014-09-17 戴葵 密码算法定制方法
CN105681026A (zh) * 2016-03-10 2016-06-15 中国科学院计算技术研究所 适用于轻量级加密算法的动态s盒构造方法及系统

Also Published As

Publication number Publication date
CN107425963A (zh) 2017-12-01

Similar Documents

Publication Publication Date Title
Kumar et al. Development of modified AES algorithm for data security
Malik et al. Color image encryption algorithm based on hyper-chaos and DNA computing
CN107147487B (zh) 对称密钥随机分组密码
US20070189518A1 (en) 3-D quaternion quantum fractal encryption
CN112134688A (zh) 一种基于量子混沌映射与sha-3的非对称图像加密方法
Lamba Design and analysis of stream cipher for network security
Mahboob et al. A novel construction of substitution box based on polynomial mapped and finite field with image encryption application
CN110855425A (zh) 一种轻量级多方协同sm9密钥生成、密文解密方法与介质
Alemami et al. Advanced approach for encryption using advanced encryption standard with chaotic map
Bhavani et al. Modified AES using dynamic S-box and DNA cryptography
Kh-Madhloom et al. ECG Encryption Enhancement Technique with Multiple Layers of AES and DNA Computing.
Noura et al. Overview of efficient symmetric cryptography: dynamic vs static approaches
MAQABLEH Analysis and design security primitives based on chaotic systems for ecommerce
Lu Cryptanalysis of block ciphers
WO2018205469A1 (zh) 一种密码墙的构建方法及系统
Ooi et al. Cryptanalysis of s-des
Nissar et al. Implementation of security enhancement in AES by inducting dynamicity in AES s-box
CN111314051B (zh) 一种加解密方法和装置
Patel et al. Multilevel data encryption using AES and RSA for image and textual information data
Simmons Symmetric and asymmetric encryption
Ramya et al. Implementation and Analysis of Feistel and SPN Structured Ciphers-CLEFIA and PRESENT
Kumar et al. Chaotic dynamical systems based image encryption model
CN117114959B (zh) 基于多参数一维混沌系统的秘钥反馈机制的图像加密方法
CN116633529B (zh) 采用派生密钥增强白盒sm4密码算法的方法及设备
CN115348018B (zh) 一种数据处理方法、装置及存储介质

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17909538

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

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 19/05/2020)

122 Ep: pct application non-entry in european phase

Ref document number: 17909538

Country of ref document: EP

Kind code of ref document: A1