Smart Card Binary Code Authentication via Pre-computed Hashes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing methods for authenticating binary code stored in smart cards lack assurance, as they do not effectively verify the integrity of the code, allowing potential modifications to go undetected.

Innovation Solution

A method involving the computation of hashes for both the source and binary code, with a random number, and transmitting these hashes for authentication, ensuring the binary code's authenticity by comparing a reference hash with an effective hash recomputed from the smart card.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional authentication methods (GetData command, CRC computation) are used, then the authentication process is simple, but the reliability of code authenticity verification is insufficient

Engineering Contradiction:
Improvecode authenticity verificationVSAvoidauthentication system
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by pre-computing hash values of the source code during the code development phase and storing them securely in the smart card before the code is deployed. This allows the authentication system to verify code integrity without needing to re-compute hashes from source code, thereby improving reliability while maintaining operational simplicity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces hash functions as an intermediary mechanism between the source code and the binary executable code. By computing hashes of both source code and compiled binary code and storing them in the smart card, the system creates a verifiable chain of integrity without requiring direct access to source code during authentication, thus enhancing reliability while controlling complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If multiple hash computations are performed on source code and binary code, then the guarantee of code authenticity is improved, but the computation time and processing complexity increase

Engineering Contradiction:
Improvecode authenticity guaranteeVSAvoidauthentication processing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs hash computations on the source code during the code development and compilation phase, storing the results in the smart card before deployment. This preliminary computation eliminates the need for time-consuming hash calculations during authentication operations, thereby improving reliability without significantly increasing authentication processing time.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates hash value copies of the source code and stores them in the smart card alongside the binary code. These pre-computed hash copies serve as reference values for quick authentication comparisons, reducing the computational burden and time required during actual authentication operations while maintaining strong integrity guarantees.

Inventive Principle:
Principle #26Copying

3Ease of operation

If hash values are stored in the smart card for verification, then the ease of authentication operation is improved, but the risk of hash value extraction and misuse increases

Engineering Contradiction:
Improveauthentication verificationVSAvoidhash extraction risk
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The patent embeds the hash values within the secure memory structure of the smart card, nesting them alongside the binary code in a protected environment. This nesting approach allows easy authentication operations while protecting the hash values from external extraction attempts, as they are stored within the card's secure boundary rather than externally accessible locations.

Inventive Principle:
Principle #7Nested doll (Nesting)

Solution Approach 2:

The patent uses the smart card's secure memory and authentication protocol as an intermediary layer between the stored hash values and external access requests. This intermediary mechanism enables easy verification operations while preventing direct hash extraction, as any access to hash values must go through the card's secured authentication interface.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10148440B2Binary code authentication
Publication Date: 2018.12.04 IDEMIA FRANCE SAS
  • US10148440B2 patent drawing
  • US10148440B2 patent drawing

AI summary

The description particularly relates to methods for authenticating binary code stored in a smart card. The description also relates to systems and a computer program capable of implementing said methods, as well as to storage media containing such a computer program.