Input/output data encryption

US10896267B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10896267-B2
Application numberUS-201715420736-A
CountryUS
Kind codeB2
Filing dateJan 31, 2017
Priority dateJan 31, 2017
Publication dateJan 19, 2021
Grant dateJan 19, 2021

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Examples relate to Input/Output (I/O) data encryption and decryption. In an example, an encryption/decryption engine on an Integrated Circuit (IC) of a computing device obtains at least one plaintext data. Some examples determine, by the encryption/decryption engine, whether the at least one plaintext data is to be sent to a memory in the computing device or to an I/O device. Some examples apply, when the at least one plaintext data is to be sent to the I/O device and by the encryption/decryption engine, an encryption primitive of a block cipher encryption algorithm to the at least one plaintext data to create output encrypted data, wherein an initialization vector that comprises a random number is applied to the encryption primitive.

First claim

Opening claim text (preview).

What is claimed: 1. A method comprising: receiving, by a processor on an Integrated Circuit (IC) of a computing device, plaintext data; determining, by the processor based on a selector indication associated with the plaintext data, whether the plaintext data is to be sent to a memory in the computing device or to an Input/Output (I/O) device, wherein a first value of the selector indication indicates that the plaintext data is to be sent to the memory, and a second value of the selector indication indicates that the plaintext data is to be sent to the I/O device; and in response to determining based on the selector indication that the plaintext data is to be sent to the I/O device: selecting, by the processor, a first technique from different techniques for generating an initialization vector, the different techniques comprising the first technique to use a random number in the initialization vector, and a second technique to use an address in the initialization vector, and applying, by the processor an encryption primitive of a block cipher encryption algorithm to the plaintext data to create output encrypted data, wherein the initialization vector that comprises the random number is applied to the encryption primitive; and generating a page in the memory of the computing device, the page comprising a data subpage storing the output encrypted data, and a metadata subpage storing the initialization vector. 2. The method of claim 1 , comprising: in response to determining based on the selector indication that the plaintext data is to be sent to the memory: selecting, by the processor, the second technique that uses the address in the initialization vector, wherein the address is an address of the plaintext data, and applying, by the processor, the encryption primitive to the plaintext data to create output encrypted data, wherein the initialization vector that comprises the address is applied to the encryption primitive. 3. The method of claim 1 , wherein the selector indication comprises a selector bit settable to the first value or the second value. 4. The method of claim 1 , comprising: receiving, by the IC, a request to write the plaintext data to the I/O device, wherein the determining, the selecting, and the applying are performed in response to the request; storing, by the processor, the output encrypted data into a respective address of the memory; and sending, by the processor, a writing request to the I/O device including the respective address, to cause the I/O device to copy the output encrypted data from the memory to the I/O device. 5. The method of claim 4 , wherein the copying of the output encrypted data from the memory to the I/O device is part of a Direct Memory Access operation of the I/O device. 6. The method of claim 1 , comprising receiving, by the block cipher encryption algorithm, an encryption key that in combination with the initialization vector determines a functional output of the encryption primitive. 7. The method of claim 1 , comprising: generating, by the processor, an authentication tag for the output encrypted data; and using the authentication tag to verify the output encrypted data during a decryption process. 8. The method of claim 7 , wherein the metadata subpage further includes the authentication tag. 9. The method of claim 1 , comprising generating the random number by a random number generator on the IC. 10. The method of claim 1 , comprising generating the random number by: generating, in a True Random Number Generator (TRNG) of the IC, a random seed; seeding a Pseudo Random Number Generator (PRNG) of the IC with the random seed; and generating, in the PRNG, the random number based on the random seed. 11. The method of claim 1 , comprising: obtaining, by the processor, the output encrypted data; and applying, by the processor, a decryption primitive of the block cipher encryption algorithm to the output encrypted data to create output plaintext data, wherein the initialization vector comprising the random number is applied to the decryption primitive. 12. The method of claim 11 , comprising: sending, by the IC, a reading request to the I/O device for the output encrypted data that contains a respective address of the memory of the computing device to store the output encrypted data, to cause copying, by the I/O device, of the output encrypted data into the respective address of the memory; and decrypting, by the processor, the output encrypted data by applying the decryption primitive to the output encrypted data copied by the I/O device. 13. A non-transitory machine-readable storage medium comprising instructions executable by an Integrated Circuit (IC) in a computing device to: receive plaintext data; determine, based on a selector indication associated with the plaintext data, whether the plaintext data is to be sent to a memory in the computing device or to an Input/Output (I/O) device, wherein a first value of the selector indication indicates that the plaintext data is to be sent to the memory, and a second value of the selector indication indicates that the plaintext data is to be sent to the I/O device; in response to determining based on the selector indication that the plaintext data is to be sent to the I/O device: select a first technique from different techniques for generating an initialization vector, the different techniques comprising the first technique to use a random number in the initialization vector, and a second technique to use an address of the plaintext data in the initialization vector, apply an encryption primitive of an authenticated block cipher encryption algorithm to the plaintext data to create output encrypted data, wherein the initialization vector comprising the random number is applied to the encryption primitive, and generate an authentication tag for the output encrypted data; and generate a page in the memory of the computing device, the page comprising a data subpage storing the output encrypted data, and a metadata subpage storing the initialization vector. 14. The non-transitory machine-readable storage medium of claim 13 , wherein the instructions are executable by the IC to: in response to determining based on the selector indication that the plaintext data is to be sent to the memory: select the second technique that uses the address in the initialization vector, and apply the encryption primitive to the plaintext data to create output encrypted data, wherein the initialization vector that comprises the address is applied to the encryption primitive. 15. The non-transitory machine-readable storage medium of claim 13 , wherein the metadata subpage is further to store the authentication tag. 16. A method comprising: receiving, by a processor on an Integrated Circuit (IC) of a computing device, plaintext data; determining, by the processor based on a selector indication associated with the plaintext data, whether the plaintext data is to be sent to a memory in the computing device or to an Input/Output (I/O) device, wherein a first value of the selector indication indicates that the plaintext data is to be sent to the memory, and a second value of the selector indication indicates that the plaintext data is to be sent to the I/O device; and in response to determining based on the selector indication that the plaintext data is to be sent to the I/O device: selecting, by the processor, a first technique from different techniques for generating an initialization vector, the different techniques comprising the first technique to use a random number in the initializ

Assignees

Inventors

Classifications

  • by using cryptography (for digital transmission H04L9/00) · CPC title

  • Protecting data integrity, e.g. using checksums, certificates or signatures · CPC title

  • in storage media based on magnetic or optical technology, e.g. disks with sectors (preventing unauthorised reproduction or copying of disc-type recordable media G11B20/00) · CPC title

  • with particular pseudorandom sequence generator · CPC title

  • Security improvement · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10896267B2 cover?
Examples relate to Input/Output (I/O) data encryption and decryption. In an example, an encryption/decryption engine on an Integrated Circuit (IC) of a computing device obtains at least one plaintext data. Some examples determine, by the encryption/decryption engine, whether the at least one plaintext data is to be sent to a memory in the computing device or to an I/O device. Some examples appl…
Who is the assignee on this patent?
Hewlett Packard Entpr Dev Lp
What technology area does this patent fall under?
Primary CPC classification G06F12/1408. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jan 19 2021 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 11 related publications on this page (citations in our corpus or others sharing the same primary CPC).