Method for checking the integrity of a program or data, and apparatus for implementing this method
First Claim
1. A method for verifying integrity, against an original message (M), of a subsequent message containing information, the method including the steps of:
- storing the original message in an electronic portable object (1) having a processing circuit (11) and at least one non-volatile memory area (10) accessible only by said processing circuit (11);
storing a secret key (K) in the at least one non-volatile memory area (10) of the electronic portable object;
using the processing circuit (11) and the secret key (K) to apply an algorithm (A) to at least a part of the original message to calculate at least one original signature (S1, S2, . . . Sm) of the original message within the electronic portable object;
storing each original signature (S, S1, S2, . . . Sm) of the original message in said at least one non-volatile memory area (10) of the electronic portable object under control of the processing circuit (11);
verifying the integrity of the subsequent message against the original message by executing the algorithm (A) within the processing circuit (11) of the electronic portable object, the processing circuits (11) having inputs of the subsequent message and the secret key (K), to calculate at least one subsequent signature of at least one part of the subsequent message to be verified;
using the processing circuit (11) of the portable object to compare, within the electronic portable object, each subsequent signature calculated from the subsequent message with each original signature from the memory area (10) of the portable object; and
displaying to a user using a computer system external to the portable object, whether or not each subsequent signature calculated from the subsequent message is in matching relationship with a respective original signature calculated from a respective original message,wherein algorithm (A) is a calculation algorithm which takes into account, for calculation of each original and subsequent signature, at least one secret key (K) stored in the memory area (10) of the portable object, accessible only within the electronic portable object and under control of said processing circuits (11).
1 Assignment
0 Petitions
Accused Products
Abstract
The invention relates to a method and apparatus for checking the integrity of a message such as a program and/or data against an original message supposed to correspond to it.
By using an algorithm (A) on at least part of the original message, at least one signature (S1, S2, . . . Sm) of this part is calculated and memorized in a memory area (10) of a portable object (1) which also has processing circuits (11) able to implement algorithm (A). In order to check the integrity of a message, at least one signature of a message part is calculated by the processing circuits (11) of the portable object by implementing the algorithm (A) and is compared to an original message signature supposed to correspond, and memorized in memory area (10).
283 Citations
22 Claims
-
1. A method for verifying integrity, against an original message (M), of a subsequent message containing information, the method including the steps of:
-
storing the original message in an electronic portable object (1) having a processing circuit (11) and at least one non-volatile memory area (10) accessible only by said processing circuit (11); storing a secret key (K) in the at least one non-volatile memory area (10) of the electronic portable object; using the processing circuit (11) and the secret key (K) to apply an algorithm (A) to at least a part of the original message to calculate at least one original signature (S1, S2, . . . Sm) of the original message within the electronic portable object; storing each original signature (S, S1, S2, . . . Sm) of the original message in said at least one non-volatile memory area (10) of the electronic portable object under control of the processing circuit (11); verifying the integrity of the subsequent message against the original message by executing the algorithm (A) within the processing circuit (11) of the electronic portable object, the processing circuits (11) having inputs of the subsequent message and the secret key (K), to calculate at least one subsequent signature of at least one part of the subsequent message to be verified; using the processing circuit (11) of the portable object to compare, within the electronic portable object, each subsequent signature calculated from the subsequent message with each original signature from the memory area (10) of the portable object; and displaying to a user using a computer system external to the portable object, whether or not each subsequent signature calculated from the subsequent message is in matching relationship with a respective original signature calculated from a respective original message, wherein algorithm (A) is a calculation algorithm which takes into account, for calculation of each original and subsequent signature, at least one secret key (K) stored in the memory area (10) of the portable object, accessible only within the electronic portable object and under control of said processing circuits (11). - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. Apparatus for verifying integrity, against an original message (M), of a subsequent message by calculating an original signature (S) from the original message (M) using a conversion algorithm (A), and comparing the original signature (S) with a subsequent signature calculated from the subsequent message, the apparatus comprising:
-
at least one portable object (1) including a processing circuit (11) for implementing the conversion algorithm (A) to calculate at least one one of the signatures from at least one message, means (10) for memorizing within the portable object the at least one signature calculated from the at least one message by the processing circuit (11), a secret key (K) stored within the means (10) for memorizing for use as a data input to the algorithm (A) when the at least one signature is calculated by the processing circuit (11), connecting means for connecting said processing circuit (11) to an external device (2) for execution of the subsequent message by the device (2), and comparing means in electrical communication with the processing circuit ( 11 ) and the means for memorizing for comparing the original signature (S) calculated by the processing circuit (11) with the subsequent message signature calculated by the processing circuit (11); and means for informing a system user via the external device (2) of a result generated by the portable object comparing means, the processing circuit (11) of the portable object calculating at least one subsequent signature of a subsequent message presented thereto for integrity verification, and the comparing means comparing the subsequent signature calculated for verification with an original signature memorized in the portable object means (10) for memorizing. - View Dependent Claims (14, 15, 16)
-
-
17. A method for verifying integrity, against an original message (M), of a subsequent message containing information, the method including the steps of:
-
dividing the original message into a total number (m) of modules (M1, M1, . . . Mm); using processing means to apply an algorithm A to each module of the original message to calculate a respective signature (S1, S2, . . . Sm) of each module; using an electronic portable object having a processing circuit (11) and memory means including one non-volatile protected memory area (10) accessible only by said processing circuit, and storing said signatures in said protected memory area and said algorithm in said memory means; and verifying the subsequent message in the portable object by; selecting, in the subsequent message, a partial number (p) of modules less than said total number (m) of modules, said partial number being such that the a probability of detecting an alteration in the subsequent message, by considering only said partial number of modules, has a predetermined value; using said processing circuit to apply said algorithm to each selected module to calculate a respective signature; selecting in said protected memory area the signatures of those modules of the original message which correspond to the selected modules of the subsequent message and comparing said signatures of the original message with the signatures of the subsequent message; and let the portable object send an output signal indicating whether or not integrity between original and subsequent messages is met depending on whether or not said signatures of the original message are in matching relationship with the respective signatures of the subsequent message. - View Dependent Claims (18, 19, 20, 21, 22)
-
Specification