IP Library Granted Patent US 12682121
Granted Patent B2
US 12682121 · App. 18/927,656 · Granted Jul 14, 2026

Cryptographic method for verifying data

Inventor: Bruno Sangle-Ferriere (Paris, FR)
G06F21/64H04L9/0643H04L9/3239
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 12682121
App. No.
18/927,656
Granted
Jul 14, 2026
Kind
B2
Abstract

A method, performed in an environment where data transmission is vulnerable to quantum computers, for comparing a first dataset and a second dataset, in particular with a view for determining whether these two datasets are identical. The method not requiring the presence of these two datasets in the apparatus, and including the following steps of: 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, wherein the a length of the mixer number is longer than a length of the hash 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 (131)

1 . A method for verifying a dataset originating from at least one first hardware computing processor associated with a first user, the method performed in an environment where data transmission is vulnerable to quantum computers, the method comprising:

receiving, using at least one second hardware computing processor, a first dataset from the at least one first hardware computing processor associated with the first user;

retrieving, using the at least one second hardware computing processor, a secret number, wherein the secret number is shared between the at least one first hardware computing processor and the at least one second hardware computing processor;

executing, using the at least one second hardware computing processor, a mixing computing operation to generate a first mixed data using the secret number and the first dataset;

executing, using the at least one second hardware computing processor, a hash computing operation to generate a first hash based on the first mixed data;

retrieving, using the at least one first hardware computing processor, the secret number;

executing, using the at least one first hardware computing processor, the mixing computing operation to generate a second mixed data using the first dataset and the secret number;

executing, using the at least one first hardware computing processor, the hash computing operation to generate a second hash using the second mixed data;

renewing, using the at least one first hardware computing processor, a first encryption key;

encrypting, using the at least one first hardware computing processor, the second hash with the first encryption key to generate an encrypted second hash;

sending, using the at least one first hardware computing processor, the encrypted second hash to the at least one second hardware computing processor;

receiving, using the at least one second hardware computing processor, the encrypted second hash from the at least one first hardware computing processor;

retrieving, using the at least one second hardware computing processor, the first encryption key;

decrypting, using the at least one second hardware computing processor, the encrypted second hash with the first encryption key to generate a decrypted second hash;

comparing, using the at least one second hardware computing processor, the first hash with the decrypted second hash to determine an association between the first hash and the decrypted second hash;

in response to determining the association between the first hash and the decrypted second hash, verifying an integrity of the first dataset using the at least one second hardware computing processor;

in response to determining a lack of the association between the first hash and the decrypted second hash, recording or counting a failed verification attempt comprising at least one of: the first dataset, a summary of the first dataset, first identification data associated with the first user, the secret number, the first encryption key, second identification data associated with the secret number, or third identification data associated with the first encryption key; and

in response to recording a predetermined number of failed verification attempts associated with the first dataset, discontinuing a re-execution of the method for verifying the first dataset originating from the at least one first hardware computing processor associated with the first user,

wherein a first length of the secret number is longer than a second length of the first hash, and

wherein the secret number is at least partially renewed for a verification attempt.

2 . The method according to claim 1 , wherein the secret number is generated using a random number generator.

3 . The method according to claim 1 , wherein a third length of the first encryption key is zero.

4 . The method according to claim 1 , wherein the secret number is encrypted when sent to the at least one first hardware computing processor.

5 . The method according to claim 2 , wherein the secret number is encrypted when sent to the at least one first hardware computing processor.

6 . The method according to claim 3 , wherein the secret number is encrypted when sent to the at least one first hardware computing processor.

7 . A method for verifying a dataset originating from at least one first hardware computing processor associated with a first user, the method performed in an environment where data transmission is vulnerable to quantum computers, the method comprising:

receiving, a first dataset from the at least one first hardware computing processor associated with the first user;

generating, using the at least one first hardware computing processor, a first secret number;

executing, using the at least one first hardware computing processor, a mixing computing operation to generate a first mixed data using the first dataset and the first secret number;

executing, using the at least one first hardware computing processor, a hash computing operation to generate a first hash using the first mixed data;

retrieving or renewing, using the at least one first hardware computing processor, a first encryption key;

encrypting, using the at least one first hardware computing processor, the first hash with the first encryption key to generate a second dataset;

retrieving or renewing, using the at least one first hardware computing processor, a second encryption key;

encrypting, using the at least one first hardware computing processor, the first secret number with the second encryption key to generate a first encrypted secret number;

sending, using the at least one first hardware computing processor, the first dataset, the second dataset, and the first encrypted secret number;

receiving, using at least one second hardware computing processor, the first dataset, the second dataset, and the first encrypted secret number;

decrypting, using the at least one second hardware computing processor, the second dataset with the first encryption key to generate a decrypted second dataset, wherein the first encryption key is only shared between the at least one first hardware computing processor and the at least one second hardware computing processor;

decrypting, using the at least one second hardware computing processor, the first encrypted secret number with the second encryption key to generate a decrypted secret number;

executing, using the at least one second hardware computing processor, the mixing computing operation to generate a second mixed data using the first dataset and the decrypted secret number;

executing, using the at least one second hardware computing processor, the hash computing operation to generate a second hash using the second mixed data;

comparing, using the at least one second hardware computing processor, the second hash with the decrypted second dataset to determine an association between the second hash and the decrypted second dataset;

in response to determining the association between the second hash and the decrypted second dataset, verifying an integrity of the first dataset using the at least one second hardware computing processor;

in response to determining a lack of the association between the second hash and the decrypted second dataset, recording or counting a failed verification attempt comprising at least one of: the first dataset, a summary of the first dataset, first identification data associated with the first user, the first secret number, the first encryption key, second identification data associated with the first secret number, or third identification data associated with the first encryption key; and

in response to recording a predetermined number of failed verification attempts associated with the first dataset, discontinuing a re-execution of the method for verifying the first dataset originating from the at least one first hardware computing processor associated with the first user,

wherein a first length of the first secret number is longer than a second length of the first hash.

8 . The method according to claim 7 , wherein the first secret number is generated using a random number generator.

9 . The method according to claim 7 , wherein the first encryption key comprises a single-use key.

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

generating, using the at least one second hardware computing processor, a first time stamp associated with receiving a first dataset signature associated with the first dataset;

receiving, using the at least one second hardware computing processor, a second time stamp associated with receiving the first secret number from the at least one first hardware computing processor;

determining, using the at least one second hardware computing processor, a difference between the first time stamp and the second time stamp; and

comparing, using the at least one second hardware computing processor, the difference between the first time stamp and the second time stamp with a predetermined time lag.

11 . The method according to claim 10 , wherein the first secret number is renewed at least partially for a verification attempt.

12 . The method according to claim 7 , wherein a size associated with the first encryption key is zero.

13 . A method for comparing and verifying a dataset originating from at least one first hardware computing processor associated with a first user and a second dataset originating from at least one second hardware computing processor associated with a second user, the method performed in an environment where data transmission is vulnerable to quantum computers, the method comprising:

receiving a first dataset from the at least one first hardware computing processor associated with the first user;

generating, using the at least one first hardware computing processor, a first secret number;

executing, using the at least one first hardware computing processor, a mixing computing operation to generate a first mixed data using the first dataset and the first secret number;

executing, using the at least one first hardware computing processor, a hash computing operation to generate a first hash using the first mixed data;

renewing, using the at least one first hardware computing processor, a first encryption key;

encrypting, using the at least one first hardware computing processor, the first secret number with the first encryption key to generate a first encrypted secret number;

sending, using the at least one first hardware computing processor, the first encrypted secret number;

receiving, using the at least one second hardware computing processor, the first encrypted secret number;

decrypting, using the at least one second hardware computing processor, the first encrypted secret number with the first encryption key to generate a decrypted secret number;

executing, using the at least one second hardware computing processor, the mixing computing operation to generate a second mixed data using the second dataset and the decrypted secret number;

executing, using the at least one second hardware computing processor, the hash computing operation to generate a second hash using the second mixed data;

renewing, using the at least one first hardware computing processor, a second encryption key;

encrypting, using the at least one second hardware computing processor, the second hash with a first the second encryption key to generate an encrypted second hash;

sending, using the at least one second hardware computing processor, the encrypted second hash to the at least one first hardware computing processor;

receiving, using the at least one first hardware computing processor, the encrypted second hash;

decrypting, using the at least one first hardware computing processor, the encrypted second hash with the second encryption key to generate a decrypted second hash,

wherein the second encryption key is only shared between the at least one first hardware computing processor and the at least one second hardware computing processor;

comparing, using the at least one first hardware computing processor, the first hash with the decrypted second hash to determine an association between the first hash and the decrypted second hash;

in response to determining the association between the first hash and the decrypted second hash, comparing and verifying the first dataset against the second dataset;

in response to determining a lack of the association between the first hash and the decrypted second hash, recording or counting a failed verification attempt comprising at least one of: the first dataset, a summary of the first dataset, first identification data associated with the first user, the first secret number, the first encryption key, second identification data associated with the first secret number, or third identification data associated with the first encryption key; and

in response to recording a predetermined number of failed verification attempts associated with the first dataset, discontinuing a re-execution of the method for comparing and verifying the first dataset originating from the at least one first hardware computing processor associated with the first user and the second dataset originating from the at least one second hardware computing processor associated with the second user,

wherein a first length of the first secret number is longer than a second length of the first hash, and

wherein the first secret number is at least partially renewed for a verification attempt.

14 . The method according to claim 13 , wherein the first secret number is generated using a random number generator.

15 . The method according to claim 13 , wherein the first encryption key comprises a single-use key.

16 . The method according to claim 13 , further comprising:

generating, using the at least one second hardware computing processor, a first time stamp associated with receiving a first dataset signature associated with the first dataset;

receiving, using the at least one second hardware computing processor, a second time stamp associated with receiving the first secret number from the at least one first hardware computing processor;

determining, using the at least one second hardware computing processor, a difference between the first time stamp and the second time stamp; and

comparing, using the at least one second hardware computing processor, the difference between the first time stamp and the second time stamp with a predetermined time lag.

17 . The method according to claim 13 , wherein a third length of the first encryption key is zero.

18 . The method according to claim 13 , wherein the first encryption key comprises a single-use key used to encrypt only one dataset.

19 . A method for verifying a dataset originating from at least one first hardware computing processor associated with a first user, the method performed in an environment where data transmission is vulnerable to quantum computers, the method comprising:

providing, using the at least one first hardware computing processor associated with the first user, a first dataset;

generating, using at least one second hardware computing processor associated with a second user, a secret number;

sending using the at least one second hardware computing processor associated with the second user, the secret number to the at least one first hardware computing processor associated with the first user;

executing, using the at least one first hardware computing processor, a mixing computing operation to generate a first mixed data using the secret number and the first dataset;

executing, using the at least one first hardware computing processor, a hash computing operation to generate a first hash based on the first mixed data;

retrieving or renewing, using the at least one first hardware computing processor, a first encryption key;

executing, using the at least one first hardware computing processor, a first encrypting computing operation to encrypt the secret number with the first encryption key to generate an encrypted secret number;

executing, using the at least one second hardware computing processor, a first decrypting computing operation to decrypt the encrypted secret number with the first encryption key to generate a decrypted secret number;

executing, using the at least one second hardware computing processor, the mixing computing operation to generate a second mixed data using the decrypted secret number and a third dataset;

executing, using the at least one second hardware computing processor, the hash computing operation to generate a second hash based on the second mixed data;

executing, using the at least one second hardware computing processor, a second encrypting computing operation with the first encryption key to generate an encrypted second hash;

sending, using the at least one second hardware computing processor, the encrypted second hash to the at least one first hardware computing processor;

executing, using the at least one second hardware computing processor, a second decrypting computing operation to decrypt the encrypted second hash with the first encryption key to generate a decrypted second hash;

comparing, using the at least one first hardware computing processor, the first hash with the decrypted second hash to determine an association between the first hash and the decrypted second hash;

in response to determining the association between the first hash and the second hash, verifying an integrity of the first dataset;

in response to determining a lack of the association between the first hash and the decrypted second hash, recording or counting a failed verification attempt comprising at least one of: the first dataset, a summary of the first dataset, first identification data associated with the first user, the secret number, the first encryption key, second identification data associated with the secret number, or third identification data associated with the first encryption key; and

in response to recording a predetermined number of failed verification attempts associated with the first dataset, discontinuing a re-execution of the method for verifying the first dataset originating from the at least one first hardware computing processor associated with the first user.

20 . The method according to claim 19 , wherein the secret number is generated using a random number generator.

21 . The method according to claim 19 , wherein a first length of the first encryption key is zero.

22 . A method for verifying a dataset originating from at least one first hardware computing processor associated with a first user, the method performed in an environment where data transmission is vulnerable to quantum computers, the method comprising:

receiving, using at least one second hardware computing processor, a dataset from the at least one first hardware computing processor associated with the first user,

retrieving, using the at least one first hardware computing processor, a secret number;

executing, using the at least one first hardware computing processor, a first mixing computing operation to generate a first mixed data using the dataset and the secret number;

executing, using the at least one first hardware computing processor, a hash computing operation to generate a first hash using the first mixed data;

retrieving, using the at least one second hardware computing processor, the secret number from at least one second computing device, wherein the secret number is shared between the at least one first hardware computing processor and the at least one second hardware computing processor;

executing, using the at least one second hardware computing processor, a second mixing computing operation to generate a second mixed data using the secret number and the dataset;

executing, using the at least one second hardware computing processor, a second hash computing operation to generate a second hash based on the first mixed data;

retrieving or renewing, using the at least one first hardware computing processor, an encryption key;

encrypting, using the at least one second hardware computing processor, the second hash with the encryption key to generate an encrypted second hash;

sending, using the at least one second hardware computing processor, the encrypted second hash to the at least one first hardware computing processor;

receiving, using the at least one first hardware computing processor, the encrypted second hash from the at least one first hardware computing processor;

retrieving, using the at least one first hardware computing processor, the encryption key;

decrypting, using the at least one first hardware computing processor, the encrypted second hash with the encryption key, thereby generating a decrypted second hash;

comparing, using the at least one first hardware computing processor, the first hash with the decrypted second hash to determine an association between the first hash and the decrypted second hash;

in response to determining the association between the first hash and the decrypted second hash, verifying an integrity of the dataset using the at least one first hardware computing processor;

in response to determining a lack of the association between the first hash and the decrypted second hash, recording or counting a failed verification attempt comprising at least one of: the dataset, a summary of the dataset, first identification data associated with the first user, the secret number, the encryption key, second identification data associated with the secret number, or third identification data associated with the encryption key; and

in response to recording a predetermined number of failed verification attempts associated with the dataset, discontinuing a re-execution of the method for verifying the dataset originating from the at least one first hardware computing processor associated with the first user,

wherein a first length of the secret number is longer than a second length of the first hash, and

wherein the secret number is at least partially renewed for a verification attempt.

23 . The method according to claim 22 , wherein a third length of the encryption key is zero.

24 . The method according to claim 4 , wherein the secret number is encrypted with a single-use key used to encrypt only one dataset.

25 . The method according to claim 5 , wherein the secret number is encrypted with a single-use key used to encrypt only one dataset.

26 . The method according to claim 6 , wherein the secret number is encrypted with a single-use key used to encrypt only one dataset.