Programmable Block Cipher with Masked Inputs for DPA Resistance

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing block ciphers are vulnerable to side-channel attacks like differential power analysis (DPA), and they require multiple instances to perform different modes of operation, increasing the size and complexity of integrated circuits.

Innovation Solution

A programmable block cipher with masked inputs that uses a single block cipher to perform various modes of operation, such as ECB, CBC, and CFB, by masking input data with random information to reduce susceptibility to DPA attacks and minimize circuit size through shared logic components and multiplexers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple block cipher instances are used to perform different modes of operation, then the versatility and functionality are improved, but the circuit size and complexity increase

Engineering Contradiction:
Improvemodes of operationVSAvoidcircuit size
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements a universal block cipher architecture that can perform multiple modes of operation (ECB, CBC, CFB, OFB, CTR) using a single cipher instance. The design uses mode selection logic and configurable feedback paths to enable different operational modes without requiring separate cipher instances for each mode, thereby reducing circuit size while maintaining versatility

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent employs dynamic configuration of the block cipher through mode selection signals that reconfigure the internal data paths and feedback mechanisms. The circuit dynamically switches between different operational modes by enabling or disabling specific feedback loops and data routing paths, allowing a single static circuit to perform multiple functions

Inventive Principle:
Principle #15Dynamics

2Reliability

If block cipher is used without masking, then the circuit complexity is reduced, but the security against side-channel attacks deteriorates

Engineering Contradiction:
ImprovesecurityVSAvoidcircuit complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces masking variables as intermediary elements that are XORed with the intermediate values during block cipher computation. These masking variables act as mediators that obscure the relationship between the cryptographic key and the power consumption, protecting against DPA attacks while adding minimal circuit complexity through simple XOR operations

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent applies parameter changes by transforming the intermediate values through masking operations. The masking variables are generated and updated during the computation process, changing the parameters of the intermediate values to hide the secret key information from side-channel analysis while maintaining the correctness of the cryptographic operation

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP3552339B1Programmable block cipher with masked inputs
Publication Date: 2024.07.03 CRYPTOGRAPHY RESEARCH INC
  • EP3552339B1 patent drawingFigure 1
  • EP3552339B1 patent drawingFigure 2
  • EP3552339B1 patent drawingFigure 3

AI summary

An indication of a mode of operation to be performed with a block cipher may be received. Logic associated with the block cipher may be configured based on the indicated mode of operation to be performed with the block cipher. Furthermore, an input data and a mask data may be received. The input data may be combined with the mask data to generate a masked input data based on the configured logic. The masked input data may be provided to the block cipher based on the configured logic and an output data may be generated with the block cipher based on the provided masked input data.