Application authentication and data encryption without stored pre-shared keys

US12326823B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12326823-B2
Application numberUS-202016935925-A
CountryUS
Kind codeB2
Filing dateJul 22, 2020
Priority dateAug 19, 2019
Publication dateJun 10, 2025
Grant dateJun 10, 2025

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.

Described herein are technologies for application authentication and/or data encryption without stored pre-shared keys. In one resource controller, a processing device receives an application identifier (ID) from the application. The processing device provides a current nonce responsive to the application ID and provides the application access to the system resource responsive to determining that a hash of a current key received from the application equals a current tag. The current key is generated by the application based on code of the application and the current nonce. The current tag was previously provided from the application to the resource controller. The current tag can also be hashed by the application using the current key.

First claim

Opening claim text (preview).

What is claimed is: 1. A resource controller comprising: a first interface to communicate with an application executing on a processor coupled to the resource controller; a second interface to communicate with a system resource; and a processing device coupled to the first interface and the second interface, wherein the processing device is to: receive an application identifier (ID) from the application; provide a current nonce to the application, wherein the current nonce is associated with the application ID; receive a current key from the application, wherein the current key is generated by the application based on the current nonce and a set of program instructions of the application; and provide the application access to the system resource responsive to determining that a hash of the current key received from the application equals a current tag, wherein the current tag was previously provided from the application to the resource controller. 2. The resource controller of claim 1 , wherein the current tag, provided from the application, was hashed using the current key by the application. 3. The resource controller of claim 1 , further comprising a memory device coupled to the processing device, wherein the processing device is to store a table in the memory device, wherein the table comprises information for each application registered to the resource controller. 4. The resource controller of claim 1 , further comprising a memory device coupled to the processing device, wherein the processing device is to: store the application ID, the current nonce, and the current tag in the memory device; mark the application ID, the current nonce, and the current tag as valid; store the application ID and a new nonce; and mark the application ID and the new nonce as invalid. 5. The resource controller of claim 1 , further comprising a memory device coupled to the processing device, wherein the processing device is to: store the application ID, the current nonce, the current tag, and a second nonce in the memory device, wherein the current nonce is an authentication nonce and the second nonce is an encryption nonce or a message authentication code (MAC) nonce; mark the application ID, the current nonce, the current tag, and the second nonce as valid; store the application ID, a new authentication nonce, and a third nonce, wherein the third nonce is a new encryption nonce or MAC nonce; and mark the application ID, the new authentication nonce, and the third nonce as invalid. 6. The resource controller of claim 1 , further comprising a memory device coupled to the processing device, wherein the processing device is to: store the application ID, the current nonce, the current tag, a second nonce, and a third nonce in the memory device, wherein the current nonce is an authentication nonce, the second nonce is an encryption nonce, and the third nonce is a message authentication code (MAC) nonce; and mark the application ID, the current nonce, the current tag, the second nonce, and the third nonce as valid. 7. The resource controller of claim 1 , wherein the system resource is a non-volatile memory (NVM) device and the resource controller is an NVM controller. 8. The resource controller of claim 1 , wherein the system resource is a cryptographic engine. 9. The resource controller of claim 1 , wherein the system resource is a peripheral device. 10. A method comprising: receiving, by a resource controller of a system resource, an application identifier (ID) from an application executing on a processor coupled to the resource controller; providing, by the resource controller, a current nonce to the application, wherein the current nonce is associated with the application ID; receiving, by the resource controller, a current key from the application, wherein the current key is generated by the application based on the current nonce and a set of program instructions of the application; and providing, by the resource controller, the application access to the system resource responsive to determining that a hash of the current key received from the application equals a current tag, wherein the current tag was previously provided from the application to the resource controller. 11. The method of claim 10 , further comprising receiving, by the resource controller, the current tag from the application, wherein the current tag, received from the application, was hashed using the current key by the application. 12. The method of claim 10 , further comprising: receiving, by the resource controller, a registration request from the application, wherein the registration request comprises the application ID; generating, by the resource controller, a first application authentication random nonce (AARN) in response to the registration request, wherein the first AARN is the current nonce; sending, by the resource controller, the first AARN to the application, wherein the current key is a first authentication key (AK) generated by the application using values stored at a set of memory addresses in system memory based on the first AARN, wherein the set of memory addresses is associated with the set of program instructions of the application, wherein the current tag is a first authentication tag (AT) derived by the application cryptographically hashing the first AK; receiving, by the resource controller, the application ID and the first AT from the application; storing, by the resource controller in a table in memory of the resource controller, the application ID and the first AT; and marking, by the resource controller, the application ID and the first AT stored in the table as valid. 13. The method of claim 12 , further comprising: receiving, by the resource controller, an authentication request with the application ID from the application; verifying, by the resource controller, that the first AARN and first AT are marked as valid in the table; generating, by the resource controller, a second AARN responsive to the authentication request; storing, by the resource controller in the table, the second AARN; marking, by the resource controller, the second AARN in the table as invalid; sending, by the resource controller, the first AARN and the second AARN to the application responsive to the authentication request; receiving, by the resource controller, an access request, the first AK, and a second AT from the application, wherein the second AT is derived by the application; verifying, by the resource controller, that a result of hashing the first AK equals the first AT; marking, by the resource controller the second AARN and the second AT in the table as valid responsive to the result being equal to the first AT; and sending, by the resource controller, an access response to the application responsive to the access request, wherein the access response allows the application access to the system resource. 14. The method of claim 12 , further comprising: generating, by the resource controller, a first encryption random nonce (ERN); sending, by the resource controller, the first ERN to the application in response to the registration request, wherein a first encryption key (EK) is generated by the application using values stored at a second set of memory addresses in system memory based on the first ERN, wherein the second set of memory addresses is associated with the set of program instructions of the application, wherein the current tag is a first authentication tag (AT) derived by the application cryptographically hashing the first AK; and receiving, by the resource controller from the application, encrypted data with an

Assignees

Inventors

Classifications

  • Providing cryptographic facilities or services · CPC title

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

  • in cryptographic circuits · CPC title

  • to a system of files or objects, e.g. local or distributed file system or database · CPC title

  • Program or device authentication · 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 US12326823B2 cover?
Described herein are technologies for application authentication and/or data encryption without stored pre-shared keys. In one resource controller, a processing device receives an application identifier (ID) from the application. The processing device provides a current nonce responsive to the application ID and provides the application access to the system resource responsive to determining th…
Who is the assignee on this patent?
Cryptography Res Inc
What technology area does this patent fall under?
Primary CPC classification G06F13/1668. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 10 2025 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 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).