Block encryption device and method and computer program
AssigneeNEC Corporation
InventorKazuhiko Minematsu
Life of this patent
Estimating the term…
Abstract
In block cipher based on generalized Feistel network, pseudorandomness and strong-pseudorandomness may be fulfilled efficiently. In encrypting a plaintext of kn-bit blocks, Feistel permutation is applied in terms of 2n bits as a unit, and then block-based permutation based on a binary de Bruijn graph with symmetrical type 2 branch coloring is applied. The Feistel permutation and the block-based permutation are grouped together to form a round. The round is repeatedly performed a preset number of times to output a ciphertext.
Claims12
A block encryption device comprising:
- an input unit that divides input data into a k-number of blocks;
- a Feistel permutation unit for an R-number of rounds, the Feistel permutation unit performing Feistel permutation, with two blocks as a set, using an encryption key generated from one round to another;
- a block permutation unit that performs block permutation equivalent to a binary de Bruijn graph with symmetric type 2 branch coloring, having a 2t-number, equal to one-half the number of division k, of nodes, where t>2;
- the de Bruijn graph indicating a transitioning from an even-numbered block to an odd-numbered block with an arrow line of a first color and indicating a transitioning from an odd-numbered block to an even-numbered block with an arrow line of a second color, using the following functions:
- colorfunc (u, v)=vt if u1=ut and
- colorfunc (u, v)=vt+1 if u1≠ut
- that decide on the colors of the arrow lines from a node u represented by a t-bit sequence (u1, u2, . . . , ut) to a node v represented by another t-bit sequence (v1, v2, . . . , vt);
- and
- an output unit that concatenates the as-permuted k-number of blocks to output the concatenated blocks.
A block encryption method, comprising:
- dividing input data into a k-number of blocks;
- performing Feistel permutation for an R-number of rounds;
- the Feistel permutation performing Feistel permutation, with two blocks as a set, using an encryption key generated from one round to another;
- block permutation performing block permutation equivalent to a binary de Bruijn graph with symmetric type 2 branch coloring, having a 2t-number, equal to one-half the number of division k, of nodes, where t>2;
- the de Bruijn graph indicating a transitioning from an even-numbered block to an odd-numbered block with an arrow line of a first color and indicating a transitioning from an odd-numbered block to an even-numbered block with an arrow line of a second color, using the following functions:
- colorfunc (u, v)=vt if u1=ut and
- colorfunc (u, v)=vt+1 if u1≠ut
- that decide on the colors of the arrow lines from a node u represented by a t-bit sequence (u1, u2, . . . , ut) to a node v represented by another t-bit sequence (v1, v2, . . . , vt);
- and
- outputting that concatenates the as-permuted k-number of blocks to output the concatenated blocks.
A program for allowing a computer to perform:
- processing of dividing input data into a k-number of blocks;
- processing of performing Feistel permutation for an R-number of rounds;
- the processing of Feistel permutation performing Feistel permutation, with two blocks as a set, using an encryption key generated from one round to another;
- processing of block permutation performing block permutation equivalent to a binary de Bruijn graph with symmetric type 2 branch coloring, having a 2 t-number, equal to one-half the number of division k, of nodes, where t>2;
- the de Bruijn graph indicating a transitioning from an even-numbered block to an odd-numbered block with an arrow line of a first color and indicating a transitioning from an odd-numbered block to an even-numbered block with an arrow line of a second color, using the following functions:
- colorfunc (u, v)=vt if u1=ut and
- colorfunc (u, v)=vt+1 if u1≠ut
- that decide on the colors of the arrow lines from a node u represented by a t-bit sequence (u1, u2, . . . , ut) to a node v represented by another t-bit sequence (v1, v2, . . . , vt);
- and
- processing that concatenates the as-permuted k-number of blocks to output the concatenated blocks.
Dependencies are inferred from the claim text.