Fine-grained stack protection using cryptographic computing
US-2021149825-A1 · May 20, 2021 · US
US2023396410A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2023396410-A1 |
| Application number | US-202318204694-A |
| Country | US |
| Kind code | A1 |
| Filing date | Jun 1, 2023 |
| Priority date | Jun 2, 2022 |
| Publication date | Dec 7, 2023 |
| Grant date | — |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Aspects and implementations include systems and techniques for encryption and decryption of error-corrected codewords for combined protection against corruption of data and adversarial attacks, including obtaining a block of data that has a first plurality of symbols, generating, based on the first plurality of symbols, a second plurality of symbols, wherein the second plurality of symbols includes one or more error correction symbols for the first plurality of symbols, encrypting the second plurality of symbols using a set of symbol-level ciphers (SLCs) to obtain an encrypted plurality of symbols, and using the encrypted plurality of symbols in a computer operation.
Opening claim text (preview).
What is claimed is: 1 . A method comprising: obtaining a block of data comprising a first plurality of symbols; generating, based on the first plurality of symbols, a second plurality of symbols, wherein the second plurality of symbols comprises one or more error correction symbols for the first plurality of symbols; encrypting the second plurality of symbols using a set of two or more symbol-level ciphers (SLCs) to obtain an encrypted plurality of symbols, wherein each SLC of the set of SLCs encrypts one or more symbols of the second plurality of symbols; and using the encrypted plurality of symbols in a computer operation. 2 . The method of claim 1 , wherein generating the second plurality of symbols comprises encrypting the first plurality of symbols with a block-level cipher (BLC). 3 . The method of claim 2 , wherein each symbol of the second plurality of symbols is dependent on all symbols of the first plurality of symbols. 4 . The method of claim 2 , wherein the BLC is one or a Rijndael BLC, a Kalyna BLC, an Encrypt-Mix-Encrypt BLC, or an Adiantum BLC. 5 . The method of claim 2 , wherein the block of data is at least 128 bits. 6 . The method of claim 2 , wherein an input into the BLC comprises a tweak value. 7 . The method of claim 1 , wherein the computer operation comprises at least one of: (i) storing the encrypted plurality of symbols in a memory device, or (ii) transmitting the encrypted plurality of symbols over a network. 8 . The method of claim 1 , wherein each SLC of the set of SLCs uses a different tweak value to encrypt respective one or more symbols of the second plurality of symbols. 9 . The method of claim 1 , wherein each symbol of the second plurality of symbols is an 8-bit symbol or a 16-bit symbol. 10 . The method of claim 1 , wherein each SLC of the set of SLCs encrypts a separate symbol of the second plurality of symbols and outputs a separate encrypted symbol of the encrypted plurality of symbols. 11 . A method comprising: obtaining an encrypted plurality of symbols; decrypting the encrypted plurality of symbols using a set of two or more symbol-level ciphers (SLCs) to obtain a first plurality of symbols, wherein each SLC of the set of SLCs decrypts one or more encrypted symbols of the encrypted plurality of symbols, and wherein the first plurality of symbols comprises one or more error correction symbols for a second plurality of symbols; obtaining a block of data that comprises the second plurality of symbols, wherein obtaining the block of data comprises: performing error correction decoding of the first plurality of symbols; and selecting, based on a result of the error correction decoding, a computer operation associated with the block of data. 12 . The method of claim 11 , wherein performing the error correction decoding of the first plurality of symbols generates an encrypted block of data, and wherein obtaining the block of data further comprises: decrypting the encrypted block of data with a block-level cipher (BLC). 13 . The method of claim 12 , wherein each symbol of the first plurality of symbols is dependent on all symbols of the encrypted plurality of symbols. 14 . The method of claim 12 , wherein the block of data is at least 128 bits, and wherein each symbol of the first plurality of symbols is an 8-bit symbol or a 16-bit symbol. 15 . The method of claim 11 , wherein each SLC of the set of SLCs uses a different tweak value to decrypt respective one or more encrypted symbols of the encrypted plurality of symbols, and wherein each SLC of the set of SLCs decrypts a separate symbol of the encrypted plurality of symbols and outputs a separate symbol of the first plurality of symbols. 16 . The method of claim 11 , wherein selecting the computer operation associated with the block of data comprises one of: responsive to the result of the error correction decoding being a success, performing one or more additional operations using the block of data; or responsive to the result of the error correction decoding being a failure, causing a remedial action to be performed. 17 . A system comprising: a memory system; and one or more processing units operatively coupled to the memory system, the one or more processing units to: obtain a block of data comprising a first plurality of symbols; generate, based on the first plurality of symbols, a second plurality of symbols, wherein the second plurality of symbols comprises one or more error correction symbols for the first plurality of symbols; encrypt the second plurality of symbols using a set of two or more symbol-level ciphers (SLCs) to obtain an encrypted plurality of symbols, wherein each SLC of the set of SLCs encrypts one or more symbols of the second plurality of symbols; and store the encrypted plurality of symbols in the memory system. 18 . The system of claim 17 , wherein the one or more processing units are further to: retrieve the encrypted plurality of symbols from the memory system; decrypt the encrypted plurality of symbols using the set of SLCs to obtain a third plurality of symbols, wherein each SLC of the set of SLCs decrypts one or more encrypted symbols of the encrypted plurality of symbols, and wherein the third plurality of symbols differ from the second plurality of symbols in at least one symbol; obtain the block of data comprising the first plurality of symbols, wherein to obtain the block of data, the one or more processing units are to: perform an error correction decoding of the third plurality of symbols. 19 . The system of claim 17 , wherein to generate the second plurality of symbols, the processing units are to process the first plurality of symbols with a block-level cipher (BLC), and wherein each symbol of the second plurality of symbols is dependent on all symbols of the first plurality of symbols. 20 . The system of claim 17 , wherein each SLC of the set of SLCs encrypts a separate symbol of the second plurality of symbols and outputs a separate encrypted symbol of the encrypted plurality of symbols.
Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words · CPC title
using arrangements adapted for a specific error detection or correction feature · CPC title
Encoding or coding, e.g. Huffman coding or error correction · CPC title
Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.