Address-dependent key generator by XOR tree

US10313128B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10313128-B2
Application numberUS-201414473006-A
CountryUS
Kind codeB2
Filing dateAug 29, 2014
Priority dateAug 29, 2014
Publication dateJun 4, 2019
Grant dateJun 4, 2019

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.

A method of providing security in a computer system includes producing a plurality of sub-keys from key material and a respective address of a memory location in a memory and possibly other information. The method may include mixing the sub-keys together using a binary tree of exclusive-or operations, and to produce an intermediate result. The method may include performing a scrambling operation on the intermediate result to produce a key with which a block of ciphertext may be produced. And the method may include performing a write operation to write the block of ciphertext at the memory location having the respective address. In this regard, the memory may include a window of memory locations each of which stores a respective block of ciphertext produced with a respective key that changes from memory location to memory location.

First claim

Opening claim text (preview).

What is claimed is: 1. A system for providing security in a computer system, the system comprising one or more logic circuits configured to at least: receive a respective address of a memory location in a memory; produce a plurality of sub-keys from random key material and based on random key material and based on the respective address, the plurality of sub-keys being a plurality of blocks of random numbers; mix the plurality of sub-keys together to produce an intermediate result, the plurality of sub-keys being mixed using a binary tree of multiple levels of bitwise exclusive-or operations; perform a scrambling operation on the intermediate result to produce a key; produce a block of ciphertext with the key; and perform a write operation to write the block of ciphertext at the memory location having the respective address, wherein the memory includes a window of memory locations each of which stores a respective block of ciphertext produced with a respective key that changes from memory location to memory location, the key is produced further based on a version value that is updated with each write operation at the memory location having the respective address, and each memory location of the window of memory locations stores the respective block of ciphertext produced with the respective key that also depends on the version value and thereby changes with each write operation, wherein the respective address and version value are composed of respective sub-sequences of bits that concatenated form a sequence of bits at respective bit positions, and the random key material is composed of a sequence of blocks of random numbers at respective block positions, and wherein the one or more logic circuits being configured to produce the plurality of sub-keys includes being configured to produce the plurality of sub-keys further from the version value, including the one or more logic circuits being configured to identify a plurality of bits from the sequence of bits, and select the plurality of blocks from the sequence of blocks at respective positions corresponding to those of the plurality of bits, the plurality of blocks being selected as the plurality of sub-keys. 2. The system of claim 1 , wherein the respective address is composed of a sequence of bits at respective positions, and the random key material is composed of a sequence of blocks of random numbers at respective positions, and wherein the one or more logic circuits being configured to produce the plurality of sub-keys includes being configured to identify a plurality of bits from the sequence of bits, and select the plurality of blocks from the sequence of blocks at respective positions corresponding to those of the plurality of bits, the plurality of blocks being selected as the plurality of sub-keys. 3. The system of claim 2 , wherein the one or more logic circuits being configured to identify the plurality of bits includes being configured to identify only those bits of the sequence of bits having a preset binary value. 4. The system of claim 2 , wherein the sequence of blocks includes a first sequence of blocks of random numbers and a second sequence of blocks of random numbers, wherein the one or more logic circuits being configured to identify the plurality of bits includes being configured to identify as a first one or more bits those bits of the sequence of bits having a binary value of one, and identify as a second one or more bits those bits of the sequence of bits having a binary value of zero, and wherein the one or more logic circuits being configured to select the plurality of blocks includes being configured to select one or more blocks from the first sequence of blocks at respective positions corresponding to those of the first one or more bits, and select one or more blocks from the second sequence of blocks at respective positions corresponding to those of the second one or more bits. 5. The system of claim 1 , wherein the one or more logic circuits being configured to mix the plurality of sub-keys includes being configured to mix the plurality of sub-keys together and with at least a portion of the version value. 6. The system of claim 1 , wherein the one or more logic circuits being configured to perform the scrambling operation includes being configured to perform the scrambling operation on the version value added to the intermediate result. 7. The system of claim 1 , wherein the one or more logic circuits being configured to perform the scrambling operation includes being configured to cipher the intermediate result with another key to produce the key. 8. The system of claim 1 , wherein the one or more logic circuits being configured to perform the scrambling operation includes being configured to perform the scrambling operation with an increased-sized, reduced-round cipher, a permutation defined by one or more rotate-add-exclusive-or operations, or one or more layers of substitution boxes. 9. A method of providing security in a computer system, the method comprising: receiving a respective address of a memory location in a memory; producing a plurality of sub-keys from random key material and based on random key material and based on the respective address, the plurality of sub-keys being a plurality of blocks of random numbers; mixing the plurality of sub-keys together to produce an intermediate result, the plurality of sub-keys being mixed using a binary tree of multiple levels of bitwise exclusive-or operations; performing a scrambling operation on the intermediate result to produce a key; producing a block of ciphertext with the key; and performing a write operation to write the block of ciphertext at the memory location having the respective address, wherein the memory includes a window of memory locations each of which stores a respective block of ciphertext produced with a respective key that changes from memory location to memory location, the key is produced further based on a version value that is updated with each write operation at the memory location having the respective address, and each memory location of the window of memory locations stores the respective block of ciphertext produced with the respective key that also depends on the version value and thereby changes with each write operation, wherein the respective address and version value are composed of respective sub-sequences of bits that concatenated form a sequence of bits at respective bit positions, and the random key material is composed of a sequence of blocks of random numbers at respective block positions, and wherein producing the plurality of sub-keys includes producing the plurality of sub-keys further from the version value, including identifying a plurality of bits from the sequence of bits, and selecting the plurality of blocks from the sequence of blocks at respective positions corresponding to those of the plurality of bits, the plurality of blocks being selected as the plurality of sub-keys. 10. The method of claim 9 , wherein the respective address is composed of a sequence of bits at respective positions, and the random key material is composed of a sequence of blocks of random numbers at respective positions, and wherein producing the plurality of sub-keys includes identifying a plurality of bits from the sequence of bits, and selecting the plurality of blocks from the sequence of blocks at respective positions corresponding to those of the plurality of bits, the plurality of blocks being selected as the plurality of sub-keys. 11. The method of claim 10 , wherein identifying the plurality of bits includes identifying only those bits of the sequence of bits having a preset binary value. 12.

Assignees

Inventors

Classifications

  • Countermeasures against attacks on cryptographic mechanisms (network architectures or network communication protocols for protection against malicious traffic H04L63/1441) · CPC title

  • to assure secure storage of data (address-based protection against unauthorised use of memory G06F12/14; record carriers for use with machines and with at least a part designed to carry digital markings G06K19/00) · CPC title

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

  • Generation of secret information including derivation or calculation of cryptographic keys or passwords · CPC title

  • H04L9/3242Primary

    involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC · 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 US10313128B2 cover?
A method of providing security in a computer system includes producing a plurality of sub-keys from key material and a respective address of a memory location in a memory and possibly other information. The method may include mixing the sub-keys together using a binary tree of exclusive-or operations, and to produce an intermediate result. The method may include performing a scrambling operatio…
Who is the assignee on this patent?
Boeing Co
What technology area does this patent fall under?
Primary CPC classification H04L9/3242. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Jun 04 2019 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).