The present invention relates to an encryption processing device and encryption processing method, and particularly to an encryption processing device and encryption processing method that conceal or decrypt data based on a common key block cipher when communicating or storing the data.
Common key block cipher is known as a technology that conceals communication data or accumulated data. A block cipher encrypts data to be encrypted by dividing the data into a predetermined unit called block length. DES (Data Encryption Standard), proposed in the 1970s, is a typical block cipher. DES employs a Feistel structure as the structure of its data randomizing unit.
Both the F function processing unit 10 and the transposition processing unit 11 have a vertically symmetrical structure. Further, the encryption process in
Further, generalized Feistel structure, in which the number of blocks of the Feistel structure is expanded to two or more, is known (Non Patent Literature 1). In Non Patent Literature 1, the generalized Feistel structure is referred to as Feistel-Type Transformation (FTT). Non Patent Literature 1 proposes three kinds of structures from Type-1 to Type-3, however, only Type-2 will be described here. Unless stated otherwise, the “generalized Feistel structure” refers to Type-2 generalized Feistel structure hereinafter.
Further, Japanese Patent Application 2009-246306 proposes a generalized Feistel structure in which the transposition processing unit 31 performs a transposition process other than cyclic shift.
As described, in the Feistel structure, the encryption process and the decryption process can share the F function processing unit 10 and the transposition processing unit 11. On the other hand, the encryption process and the decryption process cannot share the same transposition processing unit in the generalized Feistel structure.
As an example, Patent Literature (PTL) 1 describes a structure in which an encryption function and a decryption function are shared in an extended Feistel type common key block cipher.
Each disclosure of Patent Literature and Non Patent Literature (NPL) listed above is incorporated herein in its entirety by reference thereto. The following analysis is given by the present invention.
A method for implementing the encryption process above into hardware will be described. Examples of devices used for hardware implementation include a dedicated LSI (Large Scale Integration) and FPGA (Field-Programmable Gate Array).
The expanded key generation unit 51 generates an expanded key Ki from a secret key supplied externally and sends the generated key to the data conversion unit 52. Further, the expanded key generation unit 51 generates an encryption or decryption expanded key according to an encryption/decryption signal supplied externally.
The data conversion unit 52 receives a plain text P (or encrypted text C), performs encryption processing (or decryption processing) using the expanded key data received from the expanded key generation unit 51, generates an encrypted text C (or plain text P), and outputs the result.
The received plain text P (or the encrypted text C) is stored in the register 61 via the selector 60. When an encryption (or decryption) process starts, the selector 60 selects the plain text P (or the encrypted text C). Meanwhile, when a round process starts, the selector 60 selects output data from the selector 64. The following process is repeated until a specified number of rounds is reached.
The data stored in the register 61 is converted by the F function processing unit 62 using the expanded key data Ki. M-bit data outputted from the F function processing unit 62 is diverged into two branches. One of the branches of the m-bit data is supplied to the selector 64 as it is. The other branch of the m-bit data is divided by the transposition processing unit 63 into m/2-bit data, which are shuffled and supplied to the selector 64. The selector 64 selects one of the two inputs according to round information (not shown in the drawing). From a first round to an (r−1)-th round, the selector 64 selects the output data from the transposition processing unit 63 and supplies it to the selector 60. Meanwhile, in the processing of an r-th round, the selector 64 selects the output data from the F function processing unit 62 and supplies it to the selector 60. One round of processing corresponds to a process from when the data in the register 61 is read to when it is written back.
Meanwhile
As described, encryption and decryption processes can share transposition processing in a Feistel structure. On the other hand, since transposition processing for encryption and transposition processing for decryption cannot be communalized in a generalized Feistel structure, the selector 85 that switches between encryption and decryption is required. As a result, a generalized Feistel structure increases the hardware implementation scale. Further, the selector 85 does not contribute to the strength of encryption. Therefore, the processing by the selector 85 is wasteful when promoting to reduce the scale.
Further, in the encryption processing device described in Patent Literature 1, swap processing can be shared due to the replacement of a round key. However, in order to replace the round key, processing for recognizing whether encryption or decryption processing is performed and for determining whether or not the key should be replaced is required. This means that the switching processing is simply moved to a key schedule (i.e., a function that generates the round key from a secret key), and it is difficult to reduce the hardware implementation according to the encryption processing device described in Patent Literature 1.
Therefore, there is a need in the art to provide an encryption processing device and encryption processing method that can be implemented in a small scale and requiring no selector for switching between the transposition processing unit for encryption and the transposition processing unit for decryption by having encryption and decryption processes share a transposition processing unit while taking advantage of the benefits of miniaturizing the F function processing unit when a generalized Feistel structure is employed.
According to a first aspect of the present invention, there is provided an encryption processing device, comprising:
an F function processing unit that divides (m×k)-bit input data into k blocks (m and k are both even numbers) of m-bit words (referred to as “word” hereinafter) x0, x1, . . . , xk−2, xk−1, and that outputs as a word Yi+1 (i=0, 2, . . . , k−2) a word obtained as a result of an operation between the word xi+1 and a result of an operation of an F-function using key data on the word xi, while outputting the word xi as a word Yi; and
a transposition processing unit that divides the word Yi (i=0, 1, . . . , k−1) into s blocks (s=2, 4, . . . , m) of sub-words Yi, 0, Yi, 1, . . . , Yi, s−1, transposes a sub-word Yi, w[x] into a sub-word Zpx[i], w[y] with a transposition condition Px (x=1, 2, . . . , s/2−1) and a transposition condition Qx (x=1, 2, . . . , s/2−1), transposes a sub-word Yi, w[y] into a sub-word Zqx[i], w[x], and that outputs a word Zi, 0 Zi, 1 . . . Zi, s−1 as an i-th word, wherein
the transposition condition Px=(px[0], px[1], px[2], . . . , px[k−1]) transposes an i-th sub-word into a px[i]-th sub-word where px[i]≠px[j] if i≠j,
the transposition condition Qx=(qx[0], qx[1], qx[2], . . . , qx[k−1]) transposes an i-th sub-word into a qx[i]-th sub-word where qx[i]≠qx[j] if i≠j,
qx[px[i]]=i, and
the w[t](t=0, 1, . . . , s−1) is w[t]ε{0, 1, 2, . . . , s−1} where w[t] w[T] if t≠T.
According to a second aspect of the present invention, there is provided an encryption processing device, based on a k-partition generalized Feistel structure, comprising:
a transposition processing unit that transposes Yb,u into Za,t if Ya,t (t=0, 1, . . . , s−1) is transposed into Zb,u (u=0, 1, . . . , s−1, u≠t), in a case where input data is Y0, Y1, . . . , Yk−1 (n bits×k), output data is Z0, Z1, . . . , Zk−1, Yi (i=0, 1, . . . , k−1) divided into s blocks (s=2, 4, . . . , n) is Yi, 0, Yi, 1, . . . , Yi, s−1, and Zi divided into s blocks is Zi, 0, Zi, 1, . . . , Zi, s−1.
According to a third aspect of the present invention, there is provided an encryption processing method, comprising:
dividing (m×k)-bit input data into k blocks (m and k are both even numbers) of m-bit words (referred to as “word” hereinafter) x0, x1, . . . , xk−2, xk−1, and obtaining as a word Yi+1 (i=0, 2, . . . , k−2) a word obtained as an operation between the word xi+1 and a result of an operation of an F function using key data on the word xi while deeming the word xi as a word Yi; and
dividing the word Yi (i=0, 1, . . . , k−1) into s blocks (s=2, 4, . . . , m) of sub-words Yi, 0, Yi, 1, . . . , Yi, s−1, transposing a sub-word Yi, w[x] into a sub-word Zpx[i], w[y] with a transposition condition Px (x=1, 2, . . . , s/2−1) and a transposition condition Qx (x=1, 2, . . . , s/2−1), transposing a sub-word Yi, w[y] into a sub-word Zqx[i], w[x], and deeming a word Zi, 0 Zi, 1 . . . Zi, s−1 as an i-th word, wherein
the transposition condition Px=(px[0], px[1], px[2], . . . , px[k−1]) transposes an i-th sub-word into a px[i]-th sub-word where px[i]≠px[j] if i≠j,
the transposition condition Qx=(qx[0], qx[1], qx[2], . . . , qx[k−1]) transposes an i-th sub-word into a qx[i]-th sub-word where qx[i]≠qx[j] if i≠j,
qx[px[i]]=i, and
the w[t] t=0, 1, . . . , s−1) is w[t]ε{0, 1, 2, . . . , s−1} where w[t]≠w[T] if t≠T.
According to a fourth aspect of the present invention, there is provided an encryption processing method, based on a k-partition generalized Feistel structure, comprising:
transposing Yb,u into Za,t if Ya,t (t=0, 1, . . . , s−1) is transposed into Zb,u (u=0, 1, . . . , s−1, u≠t), in a case where input data is Y0, Y1, . . . , Yk−1 (n bits×k), output data is Z0, Z1, . . . , Zk−1, Yi (i=0, 1, . . . , k−1) divided into s blocks (s=2, 4, . . . , n) is Yi, 0, Yi, 1, . . . , Yi, s−1, and Zi divided into s blocks is Zi, 0, Zi, 1, . . . , Zi, s−1.
The present invention provides the following advantage, but not restricted thereto. According to the encryption processing device and encryption processing method of the present invention, there can be provided an encryption processing device that can be implemented in a small scale and requiring no selector for switching between a transposition processing unit for encryption processing and a transposition processing unit for decryption processing by having the encryption and decryption processing share a transposition processing unit while taking advantage of the benefits of miniaturizing an F function processing unit when a generalized Feistel structure is employed.
In the present disclosure, there are various possible modes, which include the following, but not restricted thereto. First, a summary of the present disclosure is given. Note that the drawing reference signs used in the summary are given solely to facilitate understanding and not to limit the present invention to the illustrated aspects.
With reference to
The encryption processing device encrypts or decrypts (m×k)-bit data by repeating a predetermined number of rounds of supplying an (m×k)-bit plain text or encrypted text to the F function processing unit (103), supplying an output thereof to the transposition processing unit (104), and supplying an output thereof to the F function processing unit (103) again, finally performing F function processing, and by deeming an output thereof as an encrypted text or plain text.
Here, the transposition condition Px=(px[0], px[1], px[2], . . . , px[k−1]) transposes an i-th sub-word into a px[i]-th sub-word, and px[i]≠px[j] if i≠j. Further, the transposition condition Qx=(qx[0], qx[1], qx[2], . . . , qx[k−1]) transposes the i-th sub-word into a qx[i]-th sub-word, and qx[i]≠qx[j] if i≠j. Further, qx[px[i]]=i. Moreover, w[t] (t=0, 1, . . . , s−1) is w[t]ε{0, 1, 2, . . . , s−1}, and w[t]≠w[T] if t≠T.
Further, with reference to
This encryption processing device does not require a selector for switching between a transposition processing unit for encryption and a transposition processing unit for decryption because encryption and decryption processes share the transposition processing unit (104) while taking advantage of the benefits of miniaturizing the F function processing unit when a generalized Feistel structure is employed. Therefore, according to this encryption processing device, a small-scale implementation is possible.
In the present disclosure, the following modes are possible.
An encryption processing device may be the encryption processing device relating to the first aspect.
An encryption processing device may be the encryption processing device relating to the second aspect.
An encryption processing device may further comprise:
an F function processing unit that divides (m×k)-bit input data into k blocks (m and k are both even numbers) of m-bit words (referred to as “word” hereinafter) x0, x1, . . . , xk−2, xk−1, and that outputs as a word Yi+1 a word obtained as a result of an operation between the word xi+1 (i=0, 2, . . . , k−2) and a result of an operation of an F function using key data on the word xi while outputting the word xi as a word Yi.
An encryption processing device may be configured to encrypt or decrypt (m×k)-bit data by repeating a predetermined number of rounds of supplying an (m×k)-bit plain text or encrypted text to the F function processing unit, supplying an output thereof to the transposition processing unit, and supplying an output thereof to the F function processing unit again, finally performing F function processing, and by deeming an output thereof as an encrypted text or a plain text.
An encryption processing device may further comprise:
a first selector that receives outputs from the F function processing unit and the transposition processing unit, selects and outputs an output from the transposition processing unit while the predetermined number of rounds are repeated, and that selects and outputs an output from the F function processing unit at all other times; and
a second selector that receives the plain text or encrypted text and an output from the first selector, selects and outputs the plain text or encrypted text before the repetition of the predetermined number of rounds starts, and that selects and outputs an output from the first selector at all other times, wherein
the F function processing unit receives an output from the second selector.
An encryption processing method may be the encryption processing method relating to the third aspect.
An encryption processing method may be the encryption processing method relating to the fourth aspect.
An encryption processing device relating to a first exemplary embodiment will be described in detail with reference to the drawings. In the present exemplary embodiment, a configuration of the encryption processing device is as shown in the block diagram in FIG. 8 as an example.
The procedure in which the data conversion unit 100 generates the encrypted text C (or the plain text P) from the plain text P (or the encrypted text C) is the same as the procedure by the data conversion unit 52 shown in
In
Input data entered into the transposition processing unit 90 is Y0, Y1, . . . , Y5, and output data therefrom is Z0, Z1, . . . , Z5. Further, data obtained by dividing Yi into 2 blocks is Yi, 0, Yi, 1, and data obtained by dividing Zi into 2 blocks is Zi, 0, Zi, 1.
Transposition processing P1 and transposition processing Q1 are as follows.
P1≡(p1[0],p1[1],p1[2],p1[3],p1[4],p1[5])=(5,0,1,2,3,4)
Q1≡(q1[0],q1[1],q1[2],q1[3],q1[4],q1[5])=(1,2,3,4,5,0)
Here, Yi, 0 is transposed into Zp1[i], 1, and Yi, 1 is transposed into Zq1[i], 0. For instance, when i=0, Y0, 0 is transposed into Z5, 1, and Y5, 1 is transposed into Z0, 0.
In the transposition processing unit 90 in
The data conversion unit 53 of the encryption processing device 70 shown in
Meanwhile, in the data conversion unit 100 of the present exemplary embodiment, encryption and decryption processes can share the transposition processing unit 104. Therefore, the data conversion unit 100 does not require a selector corresponding to the selector 85 in
Further, the present exemplary embodiment can be applied to any division number (even number) k. The configuration of the present exemplary embodiment for any division number k is as follows. The encryption processing device of the present exemplary embodiment comprises the following transposition processing unit 104 as a transposition processing unit having a k-partition generalized Feistel structure. Input data entered into the transposition processing unit 104 is Y0, Y1, . . . , Yk−1 (n bits×k), and output data from the transposition processing unit 104 is Z0, Z1, . . . , Zk−1. Further, Y1 (i=0, 1, . . . , k−1) divided into s blocks (s=2, 4, . . . , n) is Yi, 0, Yi, 1, . . . , Yi, s−1. Similarly, Zi divided into s blocks is Zi, 0, Zi, i, . . . , Zi, s−1. At this time, the transposition processing unit 104 transposes Yb,u into Za,t when Ya,t (t=0, 1, . . . , s−1) is transposed into Zb,u (u=0, 1, . . . , s−1, u≠t).
In a hardware implementation, the transposition processing unit 104 is simply a wiring(s). Therefore, any change made on the connection source and destination will not affect the implementation scale. By performing transposition processing of a generalized Feistel structure using the transposition processing unit 104 of the present exemplary embodiment, the transposition processing unit 104 can be shared by encryption and decryption processes. As a result, the selector for switching transposition processing required in a generalized Feistel structure that performs transposition with divided data sizes becomes unnecessary. Therefore, according to the encryption processing device relating to the present exemplary embodiment, the scale of hardware implementation can be decreased.
Next, an encryption processing device relating to a second exemplary embodiment will be described with reference to the drawings. As in the first exemplary embodiment, the configuration of the entire encryption processing device in the present exemplary embodiment is also the same as the block diagram shown in
With reference to
With reference to
Yi is divided into four blocks: Yi, 0, Yi, 1, Yi, 2, and Yi, 3. Similarly, Zi is divided into four blocks: Zi, 0, Zi, 1, Zi, 2, and Zi, 3.
In this case, Yi, t is transposed into Zp1[i], u; Yi, v is transposed into Zp2[i], w; Yi, w is transposed into Zq2[i], v; and Yi, u is transposed into Zq1[i], t.
The transposition processing P1, Q1, P2, and Q2 by the transposition processing unit 110 in
P1≡(p1[0],p1[1],p1[2],p1[3],p1[4],p1[5])=(5,0,1,2,3,4)
Q1≡(q1[0],q1[1],q1[2],q1[3],q1[4],q1[5])=(1,2,3,4,5,0)
P2≡(p2[0],p2[1],p2[2],p2[3],p2[4],p2[5])=(3,0,1,4,5,2)
Q2≡(q2[0],q2[1],q2[2],q2[3],q2[4],q2[5])=(1,2,5,0,3,4)
Further, t=0, u=3, v=1, and w=2, however, other combinations are possible.
In the transposition processing unit 110 in
The disclosures of the above Patent Literature and Non-Patent Literature are incorporated herein by reference thereto. Modifications and adjustments of the exemplary embodiments are possible within the scope of the overall disclosure (including the claims) of the present invention and based on the basic technical concept of the present invention. Various combinations and selections of various disclosed elements (including each element of each claim, each element of each exemplary embodiment, each element of each drawing, etc.) are possible within the scope of the claims of the present invention. That is, the present invention of course includes various variations and modifications that could be made by those skilled in the art according to the overall disclosure including the claims and the technical concept. Particularly, any numerical range disclosed herein should be interpreted that any intermediate values or subranges falling within the disclosed range are also concretely disclosed even without specific recital thereof.
The present invention can be applied to a use such as concealment of communication data for a voice communication terminal or a data communication apparatus and encryption of stored data in a storage.
Number | Date | Country | Kind |
---|---|---|---|
2010-254804 | Nov 2010 | JP | national |
This application is a National Stage Entry of PCT/JP2011/076136 filed Nov. 14, 2011, which is based upon and claims the benefit of the priority of Japanese patent application No. 2010-254804 filed on Nov. 15, 2010, the disclosures of all of which are incorporated herein in their entirety by this reference thereto.
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP2011/076136 | 11/14/2011 | WO | 00 | 5/6/2013 |