Block Cipher Latency Reduction via Pre-computed Round Keys

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing block cipher implementations for securing data in memory devices face high latency issues when encrypting and decrypting small memory locations, which is a challenge due to the counter-intuitive nature of Cipher Block Chaining (CBC) mode and the latency inherent in typical block cipher applications.

Innovation Solution

The proposed solution involves pre-processing the block cipher by encrypting the memory address in a first plurality of rounds and generating data round keys from these rounds, then using these keys for a second plurality of rounds to encrypt the data, and vice versa for decryption, allowing concurrent processing to reduce latency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional block cipher encryption is applied to secure data in memory devices, then security is improved, but latency increases significantly

Engineering Contradiction:
ImprovesecurityVSAvoidlatency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-computing and storing round keys in a round key table before actual encryption/decryption operations. When data needs to be encrypted or decrypted, the pre-computed round keys are directly retrieved from the table rather than being generated on-the-fly, significantly reducing the time required for cryptographic operations while maintaining security through the use of complete block cipher rounds

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent segments the block cipher encryption process into distinct phases: key scheduling phase (pre-computing round keys), encryption phase (applying rounds to data), and decryption phase (reversing the process). By separating key generation from data transformation and pre-computing the key schedule, the system reduces latency during actual data access operations while maintaining comprehensive security through all cipher rounds

Inventive Principle:
Principle #1Segmentation

2Reliability

If memory address is used as initialization vector for CBC mode encryption, then security against attackers is improved, but the encryption process becomes counter-intuitive and less efficient for single blocks

Engineering Contradiction:
ImprovesecurityVSAvoidencryption efficiency
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent applies preliminary action by pre-computing the encryption of the memory address (treated as initialization vector) and storing the resulting round keys in a lookup table. This pre-computation step is performed before data encryption, allowing the actual encryption process to simply retrieve pre-computed keys and apply them to the data block, making the process more efficient and less counter-intuitive while maintaining the security benefits of address-based initialization

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP2356771B1Low latency block cipher
Publication Date: 2018.05.30 QUALCOMM INC
  • EP2356771B1 patent drawingFigure 1
  • EP2356771B1 patent drawingFigure 2
  • EP2356771B1 patent drawingFigure 3

AI summary

A block cipher is provided that secures data by encrypting it based on the memory address where it is to be stored. When encrypting data for storage in the memory address, the memory address is encrypted in a first plurality of block cipher rounds. Data round keys are generated using information from the first plurality of block cipher rounds. Data to be stored is combined with the encrypted memory address and encrypted in a second plurality of block cipher rounds using the data round keys. The encrypted data is then stored in the memory location. When decrypting data, the memory address is again encrypted as before while the encrypted stored data is decrypted in a second plurality of the block cipher rounds using the data round keys to obtain a partially decrypted data. The partially decrypted data is combined with the encrypted memory address to obtain fully decrypted data.