IP Library Granted Patent US 9,912,471
Granted Patent B2
US 9,912,471 · App. 14/654,280 · Granted Mar 6, 2018

Method for operating a portable data carrier, and such a portable data carrier

Inventor: Thomas Stocker (Munich, DE)
Assignee: GEISECKE+DEVRIENT MOBILE SECURITY GMBH
H04L9/003G06F21/64H04L9/3239H04L9/3242
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,912,471
App. No.
14/654,280
Granted
Mar 6, 2018
Kind
B2
Abstract

A method for operating a portable data carrier includes a processing unit for processing commands and a memory unit for storing data, with random wait states being inserted into the processing of the commands for thwarting SPA/DPA attacks. An actual checksum may be computed over the data of a selected region of the memory unit during a random wait state. A portable data carrier is arranged for executing the method.

Claims (17)

1. A method for operating a dual-interface portable data carrier having a processing unit for processing commands, a memory unit for storing data, a first contact-type interface for communication with a terminal device, and a second contactless interface for communication with the terminal device, the method comprising:

inserting random wait states into the processing of the commands for thwarting simple power analysis (SPA) or differential power analysis (DPA) attacks;

computing an actual checksum over the data of a selected physical region of the memory unit during a random wait state, wherein the selected physical region of the memory unit for computing the actual checksum over the data stored therein by the processing unit is variable and is selected based on a duration of the random wait state;

determining an expected checksum for the data of said selected physical region of the memory unit;

comparing the actual checksum computed over the data of the selected physical region of the memory unit with the determined expected checksum for the data of said selected physical region of the memory unit; and

blocking a further operation of the portable data carrier if the comparison of the actual checksum with the expected checksum yields that the actual checksum does not match the expected checksum.

2. The method according to claim 1 , wherein the steps of computing the actual checksum over the data of the selected physical region of the memory unit and of comparing the actual checksum with the expected checksum are begun and terminated within the random wait state.

3. The method according to claim 1 , wherein the computation of the actual checksum over the data of the selected physical region of the memory unit extends over more than one random wait state.

4. The method according to claim 3 , wherein the commands to be processed by the processing unit are part of a command routine, and wherein the computation of the actual checksum over the data of the selected physical region of the memory unit is terminated after the processing of a last command of the command routine within a context of the random wait state, an idle state or a wait state having a duration pre-specified by the processing unit.

5. The method according to claim 1 , wherein the random wait state is subdivided into two substantially equally long portions, with the actual checksum being computed over the data of the same selected physical region of the memory unit during both portions of the random wait state.

6. The method according to claim 1 , wherein the actual checksum is a cyclic redundancy check (CRC) checksum or a cryptographic checksum, with the cryptographic checksum being generated while employing a symmetric and/or asymmetric cryptographic method on the basis of cryptographic hash functions including SHA-1, MD5, HMAC-SHA1, HMAC-MD5, AES-CBC-MAC, or on the basis of signatures with suitable signature algorithms including RSA, DSA, EC-DSA.

7. A portable data carrier comprising: a processor and a memory, wherein the memory of the portable data carrier stores instructions that when executed by the unit processor perform a method including:

inserting random wait states into a processing of commands performed by the processor of the portable data carrier for thwarting simple power analysis (SPA) or differential power analysis (DPA) attacks;

computing an actual checksum over data stored in a selected physical region of the memory during a random wait state, wherein the selected physical region of the memory for computing the actual checksum over the data stored therein by the processor is variable and is selected based on a duration of the random wait state;

determining an expected checksum for the data of said selected physical region of the memory;

comparing the actual checksum computed over the data of the selected physical region of the memory with the determined expected checksum for the data of said selected physical region of the memory; and

blocking a further operation of the portable data carrier if the comparison of the actual checksum with the expected checksum yields that the actual checksum does not match the expected checksum.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 18, 2017
From: GIESECKE & DEVRIENT GMBH
To: GIESECKE+DEVRIENT MOBILE SECURITY GMBH
Reel/Frame 043230/0485 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 19, 2015
From: STOCKER, THOMAS
To: GIESECKE & DEVRIENT GMBH
Reel/Frame 035869/0640 →
Priority Claims (1)
DE 10 2012 025 416 · Dec 21, 2012 · national
Continuity (1)
Related Publication 20150333903A1 · Nov 19, 2015