# US 10,148,440 B2 · Binary code authentication

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,148,440 B2
- Document ID: US10148440B2
- Status: Granted
- Kind: B2
- Application number: 15/104,938
- Filed: 2014-12-16
- Published: 2016-12-29
- Granted: 2018-12-04
- Earliest claimed: 2013-12-16
- Assignees: Morpho
- Applicants: Morpho
- Inventors: Cyrille Pepin; Johann Urvoy
- Web page: https://patentgrep.com/patent/US10148440B2

## CPC

- H04L 9/3239: {involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD}
- G06F 21/44: Program or device authentication
- G06F 21/51: at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
- G06F 21/64: Protecting data integrity, e.g. using checksums, certificates or signatures
- G06F 2221/033: Test or assess software
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

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.

## Claims

### Claim 1

A method for secure storage of a binary code in a smart card comprising:
/a/ computing, by a secure storage system, a first hash based on a source code, said source code corresponding to the binary code;
/b/ storing, by the secure storage system, the first hash and the binary code in the smart card; and
/c/ transmitting, by the secure storage system to an authentication system, a random number and a third hash, the third hash being computed on the basis of a concatenation of the first hash, a second hash and the random number, the second hash being computed on the basis of the binary code.

### Claim 2 (depends on 1)

The secure storage method according to claim 1, comprising storing, by the secure storage system, the random number in the smart card.

### Claim 3 (depends on 1)

The secure storage method according to claim 1, comprising storing in the smart card, by the secure storage system, at least one among the second hash and the third hash.

### Claim 4

A method for authenticating a binary code stored in a smart card, comprising:
/d/ acquiring, by an authentication system, a reference third hash;
/e/ acquiring, by the authentication system, an effective third hash on the basis of a concatenation of a first hash, of a second hash and of a random number, the first hash being stored in the smart card, the second hash being computed on the basis of the binary code to be authenticated; and
/f/ authenticating, by the authentication system, the binary code on the basis of a comparison of a reference third hash and the effective third hash.

### Claim 5 (depends on 4)

The authentication method according to claim 4, comprising transmitting the random number by the authentication system to the smart card.

### Claim 6 (depends on 4)

The authentication method according to claim 4, the random number being a predetermined random number received by the authentication system, acquiring, by the authentication system, the reference third hash comprising receiving, by the authentication system, the reference third hash.

### Claim 7 (depends on 4)

The authentication method according to claim 4, comprising choosing the random number by the authentication system and reading the first hash stored in the smart card by the authentication system, acquiring, by the authentication system, the reference third hash comprising computing the reference third hash by the authentication system.

### Claim 8

A method for protecting a smart card, comprising a method for secure storage of a binary code in a smart card, and a method for authenticating a binary code stored in the smart card,
wherein the method for secure storage comprises:
/a/ computing, by a secure storage system, a first hash based on a source code, said source code corresponding to the binary code;
/b/ storing, by the secure storage system, the first hash and the binary code in the smart card; and
/c/ transmitting, by the secure storage system to an authentication system, a random number and a third hash, the third hash being computed on the basis of a concatenation of the first hash, a second hash and the random number, the second hash being computed on the basis of the binary code; and
wherein the method for authenticating comprises:
/d/ acquiring, by an authentication system, a reference third hash;
/e/ acquiring, by the authentication system, an effective third hash on the basis of a concatenation of a first hash, of a second hash and of a random number, the first hash being stored in the smart card, the second hash being computed on the basis of the binary code to be authenticated; and
/f/ authenticating, by the authentication system, the binary code on the basis of a comparison of a reference third hash and the effective third hash.

### Claim 9 (depends on 1)

A non-transitory computer-readable storage media comprising a computer program comprising sequences of instructions implementing the steps of the method according to claim 1 when they are executed by processors.

### Claim 10

A secure storage system comprising one or more hardware processors,
the secure storage system being programmed to execute, by the one or more processors, instructions to compute a first hash on the basis of a source code, said source code corresponding to a binary code;
the secure storage system being programmed to execute, by the one or more processors, instructions to store the first hash and the binary code in a smart card;
the secure storage system being programmed to execute, by the one or more processors, instructions to transmit to an authentication system a random number and a third hash, the third hash being computed on the basis of a concatenation of the first hash, of a second hash and of the random number, the second hash being computed on the basis of the binary code.

### Claim 11

An authentication system for the authentication of a binary code stored in a smart card, the authentication system comprising
one or more hardware processors,
the authentication system being programmed to execute, by the one or more processors, instructions to obtain a reference third hash;
the authentication system being programmed to execute, by the one or more processors, instructions to obtain an effective third hash on the basis of a concatenation of a first hash, of a second hash and of a random number, the first hash being stored in the smart card, the second hash being computed on the basis of the binary code to be authenticated;
the authentication system being programmed to execute, by the one or more processors, instructions to authenticate the binary code on the basis of a comparison of a reference third hash and the effective third hash.

### Claim 12

A system for protecting a smart card comprising a secure storage system comprising one or more processors and an authentication system comprising
one or more hardware processors,
the secure storage system being programmed to execute, by the one or more processors of the storage system, instructions to compute a first hash on the basis of a source code, said source code corresponding to a binary code;
the secure storage system being programmed to execute, by the one or more processors of the storage system, instructions to store the first hash and the binary code in a smart card;
the secure storage system being programmed to execute, by the one or more processors of the storage system, instructions to transmit to an authentication system a random number and a third hash, the third hash being computed on the basis of a concatenation of the first hash, of a second hash and of the random number, the second hash being computed on the basis of the binary code;
the authentication system being programmed to execute, by the one or more processors of the authentication system, instructions to obtain a reference third hash; the authentication system being programmed to execute, by the one or more processors of the authentication system, instructions to obtain an effective third hash on the basis of a concatenation of a first hash, of a second hash and of a random number, the first hash being stored in the smart card, the second hash being computed on the basis of the binary code to be authenticated;
the authentication system being programmed to execute, by the one or more processors of the authentication system, instructions to authenticate the binary code on the basis of a comparison of a reference third hash and the effective third hash.
