Patent ID: 7209556

Claim:
An apparatus for encrypting block data, comprising: a memory configured to store the block data; first processing units of stages and a second processing unit, wherein the first processing units of stages includes at least a first processing unit of a first stage and first processing units of a second and subsequent stages, wherein the first processing unit of a first stage inputs plain data with a first data width, the first processing units of a second and subsequent stages input processed data with the first data width which are output from first processing units of preceding stages, each of the first processing units includes first units and a second unit, the first units executes a nonlinear transform processing with respect to each data with a second data width which is generated by dividing the plain data with the first data width, the second unit executes a linear diffusion processing with respect to data with the first data width composed of the data with the second data width output from the first units; the second processing unit inputs data with the first data width output from the first processing unit of a last stage, the second processing unit includes third units and an encrypted data outputting unit, the third units executes the nonlinear transform processing with respect to each data with the second data width which is generated by dividing the data with the first data width output from the first processing unit of the last stage, the encrypted data outputting unit outputs encrypted data of the plain data based on data with the first data width composed of the data with the second data width output from the third units, and each of the first units and the third units comprises: nonlinear transform processing units for executing the nonlinear transform processing with respect to each data with a third data width which is generated by dividing the data with the second width; a linear diffusion processing unit for executing the linear diffusion processing with respect to data with the second data width composed of the data with the third data width output from the nonlinear transform processing units; and second nonlinear transform processing units for executing the nonlinear transform processing with respect to each data with a third data width which is generated by dividing the data with the second width output from the linear diffusion processing unit.