Smart Card Random Number Generator Using Clock Cycle Counting

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing random number generators in electronic components, particularly in smart cards, face challenges in generating secure and variable random numbers due to the invariability of internal clock cycles and instability of external clock cycles, which limits their security and entropy.

Innovation Solution

The solution leverages the difference between internal and external clock cycles to generate random numbers by counting cycles between specific instructions, using the last byte of external clock cycles and combining them with internal clock signals to create a decorrelated clock, and then applying cryptographic functions like DES to enhance randomness, even if internal clock generation is defective.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If internal clock cycles are used to generate random numbers, then the generation process is simple and fast, but the random numbers lack variability and entropy

Engineering Contradiction:
Improverandom number generation speedVSAvoidrandom number security
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent combines internal clock cycles with external clock cycles to generate random numbers. The counter counts cycles of an external clock signal during the execution of a fixed number of processor instructions, and the random number is derived from the final counter value. This merging approach maintains the simplicity and speed of internal generation while introducing variability from the external clock's instability and drift, thereby providing both high productivity and reliable security.

Inventive Principle:
Principle #5Merging (Combining)

2Reliability

If external clock cycles are used to generate random numbers, then variability and entropy increase, but the generation process becomes more complex and slower

Engineering Contradiction:
Improverandom number securityVSAvoidrandom number generation speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent uses a fixed number of processor instructions as a predetermined time interval for counting external clock cycles. This preliminary action establishes a consistent measurement window that ensures the same execution time across different runs, thereby maintaining reproducibility and speed. The randomness arises from the variable number of external clock cycles that occur within this fixed interval due to clock instability, achieving both high reliability and productivity.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If the number of instructions between first and second instructions is increased, then the random number security improves, but the generation time increases

Engineering Contradiction:
Improverandom number entropyVSAvoidgeneration time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent changes the parameter of instruction count to an optimized value that balances security and speed. By selecting a fixed number of instructions that is sufficiently large to provide adequate entropy from external clock variations but not excessively large to cause unacceptable delays, the system achieves optimal performance. The random number is derived from the last byte of the counter value, maximizing entropy extraction while minimizing generation time.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP2336877B1Smart card with secure random number generator
Publication Date: 2014.02.19 OBERTHUR TECH SA
  • EP2336877B1 patent drawingFigure 1~2
  • EP2336877B1 patent drawing
  • EP2336877B1 patent drawing

AI summary

This smart card (150) conforming to the ISO 7816 standard includes a microcontroller (100) comprising: - a processor (120) clocked by an internal clock signal (SIGINT) in the microcontroller; - a counter (160) capable of counting a number of cycles (NCYC) of a signal from another clock, for example external (SIGEXT) to the microcontroller; - means (120) for generating a random number (VARALEA) from said number.