Arithmetic logical unit, computation method and computer system
AssigneeHitachi, Ltd.
InventorsHiroshi Nakagoe, Yasushi Nagai
Life of this patent
Estimating the term…
Abstract
This arithmetic logical unit outputs data to be used in checking the final result of an AES unit that encrypts a plain text block into an encrypted text block based on AES operation, and includes an arithmetic unit for computing parity data created based on XOR operation from an encryption key to be used as a key during AES encryption, parity data created based on XOR operation from a plain text block, and an AES operation halfway result output from the AES unit, and outputting a value that is equivalent to parity data created based on XOR operation from the final result of the AES unit.
Claims10
An arithmetic logical unit for outputting data to be used in checking the final result of an AES unit that encrypts a plain text block into an encrypted text block based on AES operation, comprising:
- a processor;
- and
- an arithmetic unit for computing parity data created based on XOR operation from an encryption key to be used as a key during AES encryption, parity data created based on XOR operation from a plain text block, and an AES operation halfway result output from said AES unit, and outputting a value that is equivalent to parity data created based on XOR operation from the final result of said AES unit;
- wherein said arithmetic unit includes:
- a RotWord parity arithmetic unit for performing rotate operation to parity data created based on XOR operation from said encryption key, or parity data created based on XOR operation from an extended key in AES operation of said AES unit so as to rotate said parity data into data units where the lower ¼ area is divided into four segments. and outputting a value that is equivalent to parity data created from output data after RotWord operation in said AES unit;
- and
- a SubWord parity arithmetic unit for outputting a value that is equivalent to parity data created from output data after SubWord operation in said AES unit;
- and
- wherein said SubWord parity arithmetic unit includes:
- a SubWord parity creation unit for creating parity data by performing XOR operation to output data after RotWord operation in said AES unit;
- and
- a SubWord parity check unit for comparing parity data created based on said SubWord parity creation unit and output data from said RotWord parity arithmetic unit.
A computation method of an arithmetic logical unit for outputting data to be used in checking the final result of an AES unit that encrypts a plain text block into an encrypted text block based on AES operation, comprising:
- a computing step of computing parity data created based on XOR operation from an encryption key to be used as a key during AES encryption, parity data created based on XOR operation from a plain text block, and an AES operation halfway result output from said AES unit, and outputting a value that is equivalent to parity data created based on XOR operation from the final result of said AES unit;
- wherein said computing step includes:
- a RotWord parity computing step of a RotWord parity arithmetic unit performing rotate operation to parity data created based on XOR operation from said encryption key, or parity data created based on XOR operation from an extended key in AES operation of said AES unit so as to rotate said parity data into data units where the lower ¼ area is divided into four segments, and outputting a value that is equivalent to parity data created from output data after RotWord operation in said AES unit;
- and
- a SubWord parity computing step of a SubWord parity arithmetic unit outputting a value that is equivalent to parity data created from output data after SubWord operation in said AES unit;
- and
- wherein said SubWord parity computing step includes:
- a SubWord parity creation step of a SubWord parity creation unit creating parity data by performing XOR operation to output data after RotWord operation in said AES unit;
- and
- a SubWord parity check step of a SubWord parity check unit comparing parity data created based on said SubWord parity creation unit and output data from said RotWord parity arithmetic unit.
A computer system for storing data sent from a host system, comprising:
- an AES unit that encrypts data sent from said host system from a plain text block into an encrypted text block based on AES operation;
- an arithmetic unit for outputting data to be used in checking the final result of said AES unit;
- and
- a parity check unit for comparing parity data created based on XOR operation from the final result of said AES unit, and the final result of said arithmetic unit;
- wherein said arithmetic unit computes parity data created based on XOR operation from an encryption key to be used as a key during AES encryption, parity data created based on XOR operation from a plain text block, and an AES operation halfway result output from said AES unit, and outputs a value that is equivalent to parity data created based on XOR operation from the final result of said AES unit;
- wherein said arithmetic unit includes:
- a RotWord parity arithmetic unit for performing rotate operation to parity data created based on XOR operation from said encryption key, or parity data created based on XOR operation from an extended key in AES operation of said AES unit so as to rotate said parity data into data units where the lower ¼ area is divided into four segments, and outputting a value that is equivalent to parity data created from output data after RotWord operation in said AES unit;
- and
- a SubWord parity arithmetic unit for outputting a value that is equivalent to parity data created from output data after SubWord operation in said AES unit;
- and
- wherein said SubWord parity arithmetic unit includes:
- a SubWord parity creation unit for creating parity data by performing XOR operation to output data after RotWord operation in said AES unit;
- a SubWord parity check unit for comparing parity data created based on said SubWord parity creation unit and output data from said RotWord parity arithmetic unit;
- and
- SubWord parity S-box transposition means for directly converting the lower ¼ area of output data after RotWord operation in said AES unit into data units divided into four segments based on S-box transposition.
An arithmetic logical unit for outputting data to be used in checking the final result of an AES decryption unit that decrypts an encrypted text block into a plain text block based on AES operation, comprising:
- a processor;
- and
- an arithmetic unit for computing parity data created based on XOR operation from a decryption key to be used as a key during AES decryption, parity data created based on XOR operation from an encrypted text block, and an AES operation halfway result output from said AES decryption unit, and outputting a value that is equivalent to parity data created based on XOR operation from the final result of said AES decryption unit;
- wherein said arithmetic unit includes:
- a RotWord parity arithmetic unit for performing rotate operation to parity data created based on XOR operation from said encryption key, or parity data created based on XOR operation from an extended key in AES operation of said AES unit so as to rotate said parity data into data units where the lower ¼ area is divided into four segments, and outputting a value that is equivalent to parity data created from output data after RotWord operation in said AES unit;
- and
- a SubWord parity arithmetic unit for outputting a value that is equivalent to parity data created from output data after SubWord operation in said AES unit;
- and
- wherein said SubWord parity arithmetic unit includes:
- a SubWord parity creation unit for creating parity data by performing XOR operation to output data after RotWord operation in said AES unit;
- and
- a SubWord parity check unit for comparing parity data created based on said SubWord parity creation unit and output data from said RotWord parity arithmetic unit.
Dependencies are inferred from the claim text.