IP Library Granted Patent US 12689617
Granted Patent B2
US 12689617 · App. 19/204,280 · Granted Jul 21, 2026

Cryptographic method for verifying data

Inventor: Bruno Sangle-Ferriere (Paris, FR)
H04L63/0428
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 12689617
App. No.
19/204,280
Granted
Jul 21, 2026
Kind
B2
Abstract

A method, implemented by at least one apparatus, for comparing a first dataset and a second dataset, in particular with a view to determining whether these two datasets are identical. This method not requiring the presence of these two datasets in the apparatus, and including the following steps a) mixing a number, called the mixer number, with the first dataset, using a mixing function, in order to obtain mixed data, b) hashing the mixed data using a hash function, and c) comparing the hash thus obtained in step b) with a third dataset assumed to be the hash of the second dataset mixed with the same mixer number as that used in step a) and with the same mixing function.

Claims (84)

1 . A method for verifying with an apparatus an integrity of a first dataset originating from a sender, the method comprising:

receiving, using one or more computing device processors, from a sender, a first dataset;

determining, using the one or more computing device processors, a mixer number, wherein the mixer number is randomly generated, wherein the mixer number is shared with the sender and the apparatus, wherein the mixer number is generated based on at least one input value, wherein the at least one input value comprises a physical quantity varying from a first verification attempt to a second verification attempt;

obtaining, using the one or more computing device processors, and based on a mixing function, mixed data, wherein the mixing function comprises mixing the mixer number with the first dataset, wherein the mixing function comprises adding the mixer number to the first dataset, or the mixing function comprises an encryption function, wherein the encryption function uses the mixer number to encrypt the first dataset;

generating, using the one or more computing device processors, and based on a hash function, a first hash, wherein the generating the first hash comprises applying the hash function to the mixed data;

renewing or retrieving, using the one or more computing device processors, a single-use key, wherein the mixer number or the single-use key is at least 10 bits long;

receiving, using the one or more computing device processors, from the sender, a second dataset, wherein the second dataset is encrypted, and wherein the second dataset is generated by the sender, wherein generation of the second dataset comprises the sender:

obtaining, using the mixing function, based on the mixer number and the first dataset, a result,

applying the hash function to the result, thereby generating a second hash, and

encrypting, using the single-use key, the second hash, thereby generating an encrypted second hash;

decrypting, using the one or more computing device processors, using the single-use key, the second dataset, thereby generating a decrypted second dataset, wherein the decrypted second dataset comprises the second hash;

comparing, using the one or more computing device processors, the first hash with the decrypted second dataset; and

in response to determining the first hash and the decrypted second dataset are associated:

verifying, using the one or more computing device processors, an integrity of the first dataset, wherein the verifying the integrity of the first dataset comprises determining the first dataset is not altered during the receiving the first dataset,

counting, using the one or more computing device processors, at least one failed verification attempt, and

ceasing, using the one or more computing device processors, the comparing the first hash with the decrypted second dataset when the at least one failed verification attempt reaches a preset number, wherein the mixer number is at least partially renewed for a verification attempt.

2 . The method according to claim 1 , wherein the single-use key is a constant.

3 . The method according to claim 1 , further comprising:

generating, using the one or more computing device processors, the at least one failed verification attempt; and

sending, using the one or more computing device processors, a verification result to the sender.

4 . The method according to claim 1 , wherein the determining the mixer number comprises receiving the mixer number, wherein the mixer number is encrypted.

5 . The method according to claim 1 , wherein the hash function comprises: SHA1, SHA2, SHA256, MD5, or the Jenkins function.

6 . The method according to claim 1 , wherein the mixer number is encrypted using the single-use key, and wherein the mixer number is decrypted by the sender.

7 . The method according to claim 1 , further comprising sending, using the one or more computing device processors, an identifier associated with the mixer number to the sender, wherein the sender, using the identifier associated with the mixer number, retrieves the mixer number from a file or a memory.

8 . The method according to claim 1 , further comprising receiving, using the one or more computing device processors, an identifier associated with the mixer number, wherein the verifying the integrity of the first dataset is based on the identifier associated with the mixer number.

9 . The method according to claim 8 , wherein a number associated with the identifier associated with the mixer number is retrieved from a memory, a file, or a data server, and wherein the number associated with the identifier associated with the mixer number comprises the mixer number.

10 . The method according to claim 1 , further comprising:

receiving, using the one or more computing device processors, from the sender, an identifier associated with the first dataset; and

identifying, using the one or more computing device processors, based on the identifier associated with the first dataset, the first dataset.

11 . The method according to claim 10 , wherein the identifier associated with the first dataset is associated with the sender.

12 . The method according to claim 1 , further comprising receiving, using the one or more computing device processors, from the sender, an identifier associated with the sender.

13 . A computer program product comprising a non-transitory computer useable medium including computer readable code, wherein the computer readable code, when executed using one or more computing device processors, causes the one or more computing device processors to:

receive, from a sender, a first dataset;

determine a mixer number, wherein the mixer number is randomly generated, wherein the mixer number is known to the sender and to an apparatus, wherein the mixer number is generated based on at least one input value, wherein the at least one input value comprises a physical quantity varying from a first verification attempt to a second verification attempt;

obtain, based on a mixing function, mixed data, wherein the mixing function comprises mixing the mixer number with the first dataset, wherein the mixing function comprises adding the mixer number to the first dataset, or the mixing function comprises an encryption function, wherein the encryption function uses the mixer number to encrypt the first dataset;

generate, based on a hash function, a first hash, wherein the generating the first hash comprises applying the hash function to the mixed data;

renew or retrieve a single-use key, wherein the mixer number or the single-use key is at least 10 bits long;

receive, from the sender, a second dataset, wherein the second dataset is encrypted, and wherein the second dataset is generated by the sender, wherein generation of the second dataset comprises the sender:

obtaining, using the mixing function, based on the mixer number and the first dataset, a result,

applying the hash function to the result, thereby generating a second hash, and

encrypting, using the single-use key, the second hash, thereby generating an encrypted second hash;

decrypt the second dataset using the single-use key, thereby generating a decrypted second dataset, wherein the decrypted second dataset comprises the second hash;

compare the first hash with the decrypted second dataset; and

in response to determining the first hash and the decrypted second dataset are associated:

verify an integrity of the first dataset, wherein the verify the integrity comprises determining the first dataset is not altered during the receiving the first dataset,

count at least one failed verification attempt, and

cease the compare the first hash with the decrypted second dataset when the at least one failed verification attempt reaches a preset number, wherein the mixer number is at least partially renewed for a verification attempt.

14 . An apparatus for verifying an integrity of a first dataset originating from a sender, the apparatus comprising:

at least one memory comprising a set of instructions; and

at least one processing device configured for executing the set of instructions, wherein the set of instructions cause the at least one processing device to perform operations of:

receiving, from a sender, a first dataset;

determining a mixer number, wherein the mixer number is randomly generated, wherein the mixer number is shared with the sender and the apparatus, wherein the mixer number is generated based on at least one input value, wherein the at least one input value comprises a physical quantity varying from a first verification attempt to a second verification attempt;

obtaining, based on a mixing function, mixed data, wherein the mixing function comprises mixing the mixer number with the first dataset, wherein the mixing function comprises adding the mixer number to the first dataset, or the mixing function comprises an encryption function, wherein the encryption function uses the mixer number to encrypt the first dataset;

generating, based on a hash function, a first hash, wherein the generating the first hash comprises applying the hash function to the mixed data;

renewing or retrieving a single-use key, wherein the mixer number or the single-use key is at least 10 bits long;

receiving, from the sender, a second dataset, wherein the second dataset is encrypted, and wherein the second dataset is generated by the sender, wherein generation of the second dataset comprises the sender:

obtaining, using the mixing function, based on the mixer number and the first dataset, a result,

applying the hash function to the result, thereby generating a second hash, and

encrypting, using the single-use key, the second hash, thereby generating an encrypted second hash;

decrypting, using the single-use key, the second dataset, thereby generating a decrypted second dataset, wherein the decrypted second dataset comprises the second hash;

comparing the first hash with the decrypted second dataset;

in response to determining the first hash and the decrypted second dataset are associated, verifying an integrity of the first dataset, wherein the verifying the integrity of the first dataset comprises determining the first dataset is not altered during the receiving the first dataset;

counting at least one failed verification attempt; and

ceasing the comparing the first hash with the decrypted second dataset when the at least one failed verification attempt reaches a preset number, wherein the mixer number is at least partially renewed for a verification attempt.

15 . A method for verifying with an apparatus an integrity of a first dataset originating from a sender, the method comprising:

receiving, using one or more computing device processors, from a sender, a first dataset;

determining, using the one or more computing device processors, a mixer number, wherein the mixer number is randomly generated, wherein the mixer number is shared with the sender and the apparatus, wherein the mixer number is associated with at least one physical quantity wherein the mixer number is generated based on at least one input value, wherein the at least one input value comprises a physical quantity varying from a first verification attempt to a second verification attempt;

obtaining, using the one or more computing device processors, and based on a mixing function, mixed data, wherein the mixing function comprises mixing the mixer number with the first dataset, wherein the mixing function comprises adding the mixer number to the first dataset, the mixing function comprises an encryption function, wherein the encryption function uses the mixer number to encrypt the first dataset, or the mixing function comprises an XOR logic function;

generating, using the one or more computing device processors, and based on a hash function, a first hash, wherein the generating the first hash comprises applying the hash function to the mixed data, and wherein the hash function comprises: SHA1, SHA2, SHA256, MD5, or the Jenkins function;

renewing or retrieving, using the one or more computing device processors, a single-use key, wherein the mixer number or the single-use key is at least 10 bits long;

receiving, using the one or more computing device processors, from the sender, a second dataset, wherein the second dataset is encrypted, and wherein the second dataset is generated by the sender, wherein generation of the second dataset comprises the sender:

obtaining, using the mixing function, based on the mixer number and the first dataset, a result,

applying the hash function to the result, thereby generating a second hash, and

encrypting, using the single-use key, the second hash, thereby generating an encrypted second hash;

decrypting, using the one or more computing device processors, using the single-use key, the second dataset, thereby generating a decrypted second dataset, wherein the decrypted second dataset comprises the second hash;

comparing, using the one or more computing device processors, the first hash with the decrypted second dataset; and

in response to determining the first hash and the decrypted second dataset are associated:

verifying, using the one or more computing device processors, an integrity of the first dataset, wherein the verifying the integrity of the first dataset comprises determining the first dataset is not altered during the receiving the first dataset,

counting, using the one or more computing device processors, at least one failed verification attempt, and

ceasing, using the one or more computing device processors, the comparing the first hash with the decrypted second dataset when the at least one failed verification attempt reaches a preset number, wherein the mixer number is at least partially renewed for a verification attempt.

16 . The method according to claim 15 , wherein the determining the mixer number comprises receiving the mixer number, wherein the mixer number is encrypted.

17 . The method according to claim 15 , further comprising sending, using the one or more computing device processors, an identifier associated with the mixer number to the sender, wherein the sender, using the identifier associated with the mixer number, retrieves the mixer number from a file or a memory.

18 . The method according to claim 15 , further comprising receiving an identifier associated with the mixer number, wherein the verifying the integrity of the first dataset is based on the identifier associated with the mixer number.

19 . The method according to claim 18 , wherein a number associated with the identifier associated with the mixer number is retrieved from a memory, a file, or a data server, and wherein the number associated with the identifier associated with the mixer number comprises the mixer number.