JavaCard Counter Atomicity via Segmented Updates

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In JavaCard environments, implementing a secure counter that reliably counts executions or uses without being affected by power interruptions is challenging due to the need for atomic data updates, which would significantly slow down processing if all updates were made atomic.

Innovation Solution

A method is introduced where a counter is reset with a correct user code and decremented with an erroneous code, storing these values in non-volatile memory, allowing for atomic counter updates without requiring all data writes to be immediate, thus maintaining processing speed.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all data updates in non-volatile memory are made atomic, then the counter reliability is improved, but the processing speed deteriorates

Engineering Contradiction:
Improvecounter reliabilityVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments data updates into two categories: atomic updates for critical counter data and non-atomic updates for other data. This allows the counter to maintain reliability through atomicity while other data can be updated without strict atomicity constraints, thereby maintaining overall processing speed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies different update characteristics to different data types. Specifically, counter data requires atomic updates for reliability, while other data can use deferred updates. This local differentiation allows the system to achieve both reliability where needed and performance where possible.

Inventive Principle:
Principle #3Local quality

2Productivity

If data updates are deferred to avoid slowing down operations, then the processing speed is improved, but the counter reliability deteriorates

Engineering Contradiction:
Improveprocessing speedVSAvoidcounter reliability
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system segments update operations by separating counter updates from other data updates. Counter updates use atomic write operations that immediately reflect changes, while other data can use deferred updates. This segmentation enables the system to maintain both speed and reliability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Different quality of update operations is applied locally to different data structures. The counter data structure uses atomic updates for reliability, while other data structures can use deferred updates for performance optimization.

Inventive Principle:
Principle #3Local quality

3Reliability

If atomicity is enforced for all data transactions, then the data integrity is improved, but the operational efficiency deteriorates

Engineering Contradiction:
Improvedata integrityVSAvoidoperational efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments transactions into atomic and non-atomic categories. Critical transactions involving counter data are made atomic to ensure integrity, while non-critical transactions can proceed without atomicity constraints, improving overall operational efficiency.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system applies atomicity selectively to specific data and operations rather than universally. This local quality approach ensures data integrity for counter operations while maintaining operational efficiency for other data processing tasks.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS8819449B2Event counter in a system adapted to the JavaCard language
Publication Date: 2014.08.26 STMICROELECTRONICS BELGIUM
  • US8819449B2 patent drawing
  • US8819449B2 patent drawing
  • US8819449B2 patent drawing

AI summary

The implementation of a counter in a microcontroller adapted to the JavaCard language while respecting the atomicity of a modification of the value of this counter, wherein the counter is reset by the sending to the microcontroller of an instruction to verify a user code by submitting a correct code, and the value of the counter is decremented by the sending to the microcontroller of the instruction to verify the user code with an erroneous code value.