Encryption and decryption on a graphics processing unit
AssigneeAccenture Global Services Limited
InventorsKelly L. Dempski, Manoj Seshadrinathan
Life of this patent
Estimating the term…
Abstract
A system, method, and processor executable instructions are disclosed for offloading encryption and/or decryption processing to a system having a parallel processing structure that may include a graphics processing unit. Lookup tables support executing encryption/decryption transformations solely on the graphics processing unit. In one version, the look-up tables support Rijndael encryption/decryption transformations. Also, a system, method, and processor executable instructions are disclosed for visualizing decrypted ciphertext.
Claims20
An encryption method comprising:
- loading, from a system processor, a state block in a graphics processing unit (“GPU”) with a plurality of data bytes from an unencrypted texture;
- referencing a first look-up table in the GPU to obtain a plurality of first transformation bytes based upon the plurality of data bytes and a first round-key;
- writing the plurality of first transformation bytes to the state block according to a ShiftRows transformation;
- and
- referencing both a second look-up table and a third look-up table in the GPU to obtain a plurality of second transformation bytes based upon the first transformation bytes in the state block;
- wherein executing a setup program communicates from the system processor to the GPU a look-up texture having the first, second, and third look-up tables, and the unencrypted texture.
A computer readable storage device having graphic processing unit (“GPU”) executable instructions comprising instructions to:
- load, from a system processor, a state register with a plurality of data bytes from an unencrypted texture;
- reference a first look-up table in a GPU to obtain a plurality of first transformation bytes based upon the plurality of data bytes and a first round-key;
- write the plurality of first transformation bytes to the state register according to a ShiftRows transformation;
- and
- reference both a second look-up table and a third look-up table in the GPU to obtain a plurality of second transformation bytes based upon the first transformation bytes in the state block;
- wherein executing a setup program communicates from the system processor to the GPU a look-up texture having the first, second, and third look-up tables, and the unencrypted texture.
An encryption system comprising:
- a graphics processing unit (“GPU”);
- a system processor in communication with the GPU;
- and
- a setup program operable to communicate between the GPU and the system processor to upload from the system processor to the GPU:
- an unencrypted texture having a plurality of data bytes,
- a plurality of round-keys including a first round-key,
- a look-up texture,
- an encryption program, and
- a command to initiate encryption, wherein the encryption program is operable to encrypt the data by executing encryption acts only on the GPU.
A decryption system comprising:
- a graphics processing unit (“GPU”);
- a system processor in communication with the GPU;
- and
- a setup program operable to communicate between the GPU and the system processor to upload from the system processor to the GPU:
- an encrypted texture having ciphertext,
- a plurality of round-keys including a first round-key,
- a look-up texture,
- a decryption program, and
- a command to initiate decryption, wherein the decryption program is operable to decrypt the ciphertext by executing decryption acts only on the GPU.
Dependencies are inferred from the claim text.