Dynamic Initialization Vector Generation for Storage Security

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing encryption techniques using logical block addresses as initialization vectors create security vulnerabilities when there are multiple copies of the same logical block address on storage media, as they can lead to 'known plain text' attacks where identical blocks encrypt to the same value, compromising data security.

Innovation Solution

Generating an enhanced initialization vector based on the logical block address and a value that changes every time it is written to, such as a counter or random number, ensuring each copy of the same logical block address has a unique initialization vector, thereby reducing the risk of 'known plain text' attacks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the logical block address is used as the initialization vector for encryption, then the encryption process is simple and efficient, but security vulnerabilities arise when multiple copies of the same logical block address exist on the media

Engineering Contradiction:
Improveencryption efficiencyVSAvoiddata security
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent modifies the initialization vector by incorporating a dynamic parameter (counter value or random number) that changes with each write operation to the same logical block address. This transforms the static LBA-based IV into a dynamic IV that includes both the LBA and a changing value, ensuring that even identical data blocks encrypted at different times produce different ciphertexts, thereby resolving the security vulnerability while maintaining encryption efficiency

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent introduces dynamic elements (incrementing counters or random numbers) into the initialization vector generation process. Instead of using a fixed LBA as the IV, the system now generates a dynamic IV that evolves with each write operation. This dynamic approach ensures that multiple copies of the same LBA receive different IVs, preventing known plaintext attacks while preserving the simplicity and speed of the encryption process

Inventive Principle:
Principle #15Dynamics

2Device complexity

If a static initialization vector based on logical block address is used, then the system is easy to implement, but it creates known plain text attack vulnerabilities

Engineering Contradiction:
Improvesystem complexityVSAvoidsecurity vulnerability
Core Design Contradiction:
Device complexityVSObject-affected harmful factors

Solution Approach 1:

The patent enhances the initialization vector by adding a dynamic parameter (counter or random number) to the existing LBA-based IV. This parameter change transforms the static IV into a dynamic one without significantly increasing system complexity. The enhanced IV structure (LBA + changing value) prevents known plaintext attacks while maintaining implementation simplicity through straightforward counter incrementation or random number generation

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The patent introduces an intermediary element (counter or random number generator) that sits between the LBA and the final IV. This intermediary adds the necessary variability to the IV generation process without requiring fundamental changes to the encryption system. The counter or random number acts as a mediator that ensures each write operation produces a unique IV, thereby eliminating security vulnerabilities while keeping the overall system architecture simple

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS9959216B2Generating and using an enhanced initialization vector
Publication Date: 2018.05.01 SANDISK TECHNOLOGIES LLC
  • US9959216B2 patent drawing
  • US9959216B2 patent drawing
  • US9959216B2 patent drawing

AI summary

Embodiments for generating and using an enhanced initialization vector are disclosed. In one embodiment, data and a record identifier to which the data is to be written are received. An initialization vector for encrypting the data is then generated. The initialization vector is based on the record identifier and a value that changes every time that the record identifier is to be written to. The value can be generated, for example, by a counter that increments every time the record identifier is to be written to or by a random number generator that generates a random number every time the record identifier is to be written to. In some embodiments, the generated initialization vector is also based on a second value, such as, for example, a value that is shared by other storage modules or a value that is unique to the storage module.