IP Library › Granted Patent US 11,997,189
Granted Patent B2
US 11,997,189 · App. 17/186,142 · Granted May 28, 2024

Encrypted communication using counter mode encryption and secret keys

Inventors: Nadim George Jabbour (Knightdale, NC); Ivan Portilla (Erie, CO)
Assignee: International Business Machines Corporation
H04L9/0656H04L9/0822
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 11,997,189
App. No.
17/186,142
Granted
May 28, 2024
Kind
B2
Abstract

A secret key is communicated to a receiver system. A one-time pad is generated using the secret key and a counter. An encrypted message is generated by performing an XOR operation on a first message using the one-time pad. The encrypted message and the counter are sent to the receiver system.

Claims (81)

1. A method for secure communications, the method comprising:

communicating a secret key to a receiver system;

generating a plurality of a one-time pads by encrypting a counter using the secret key, each one-time pad corresponding to a different value of the counter;

after generating the plurality of one-time pads, providing a message;

generating an encrypted message by performing an XOR operation on the message using a one-time pad from the plurality of one-time pads; and

sending the encrypted message and a value of the counter corresponding to the one-time pad to the receiver system.

2. The method of claim 1 , wherein communicating the secret key to the receiver system comprises:

generating an encrypted secret key by encrypting the secret key with a public key; and

sending the encrypted secret key to the receiver system.

3. The method of claim 2 , further comprising:

in response to sending the encrypted secret key to the receiver system, receiving an encrypted acknowledgement from the receiver system;

decrypting the encrypted acknowledgement using the secret key; and

verifying the acknowledgement.

4. The method of claim 1 , wherein generating the plurality of one-time pads comprises:

generating a first one-time pad using a first value of the counter,

incrementing the counter to a second value, and

generating a second one-time pad using the second value of the counter, and wherein the method further comprises:

after generating the plurality of one-time pads, providing a second message;

generating a second encrypted message by performing an XOR operation on the second message using the second one-time pad; and

sending the second encrypted message and the second value of the counter to the receiver system.

5. The method of claim 1 , wherein generating the plurality of one-time pads comprises encrypting a combination of a nonce and the counter with the secret key.

6. A method for secure communications, the method comprising:

receiving a secret key from a sender system;

generating a plurality of first one-time pads by encrypting a counter using the secret key, each one-time pad corresponding to a different value of the counter;

after generating the plurality of one-time pads, receiving an encrypted message and a value of the counter from the sender system; and

decrypting the encrypted message by performing an XOR operation on the encrypted message with the a one-time pad from the plurality of one-time pads, the one-time pad corresponding to the received value of the counter.

7. The method of claim 6 , wherein the generating the plurality of one-time pads comprises:

generating a first one-time pad using a first value of the counter,

incrementing the counter to a second value, and

generating a second one-time pad using the second value of the counter,

and wherein the method further comprises:

storing the first one-time pad with the first value of the counter and the second one-time pad with the second value of the counter; and

identifying, in response to receiving the first value of the counter from the sender system with the encrypted message, the first one-time pad, wherein the performing the XOR operation on the encrypted message with the one-time pad is performing the XOR operation on the encrypted message with the first one-time pad in response to the identifying the first one-time pad.

8. The method of claim 6 , wherein receiving the secret key from the sender system comprises:

receiving an encrypted secret key from the sender system, the encrypted secret key encrypted using a public key; and

decrypting the encrypted secret key using a private key corresponding to the public key.

9. The method of claim 8 , further comprising:

in response to receiving the secret key, encrypting an acknowledgement using the secret key; and

sending the encrypted acknowledgement to the sender system.

10. The method of claim 6 , wherein generating the plurality of one-time pads comprises encrypting a combination of a nonce and the counter with the secret key.

11. A computer program product for secure communications, the computer program product comprising a computer readable storage medium having program instruction embodied therewith, the program instructions executable by a processor to perform operations comprising:

communicating a secret key to a receiver system;

generating a plurality of one-time pads by encrypting a counter using the secret key, each one-time pad corresponding to a different value of the counter;

after generating the plurality of one-time pads, providing a message;

generating an encrypted message by performing an XOR operation on the message using a one-time pad from the plurality of one-time pads; and

sending the encrypted message and a value of the counter corresponding to the one-time pad to the receiver system.

12. The computer program product of claim 11 , wherein communicating the secret key to the receiver system comprises:

generating an encrypted secret key by encrypting the first secret key with a public key; and

sending the encrypted secret key to the receiver system.

13. The computer program product of claim 12 , wherein the operations further comprise:

in response to sending the encrypted secret key to the receiver system, receiving an encrypted acknowledgement from the receiver system;

decrypting the encrypted acknowledgement using the first secret key; and

verifying the acknowledgement.

14. The computer program product of claim 11 , wherein generating the plurality of one-time pads comprises:

generating a first one-time pad using a first value of the counter,

incrementing the counter to a second value, and

generating a second one-time pad using the second value of the counter,

and wherein the operations further comprise:

after generating the plurality of one-time pads, providing a second message;

generating a second encrypted message by performing an XOR operation on the second message using the second one-time pad; and

sending the second encrypted message and the second value of the counter to the receiver system.

15. The computer program product of claim 11 , wherein generating the one-time pad comprises encrypting a combination of a nonce and the counter with the first secret key.

16. The computer program product of claim 11 , wherein the operations further comprise:

receiving a second secret key from a sender system;

generating a second plurality of one-time pads using the second secret key and a second counter, each of the second plurality of one-time pads corresponding to a different value of the second counter;

receiving a second encrypted message from the sender system; and

decrypting the second encrypted message by performing an XOR operation on the second encrypted message with a one-time pad from the second plurality of one-time pads.

17. The computer program product of claim 16 , wherein generating the second plurality of one-time pads comprises:

generating a first one-time pad using a first value of the second counter,

incrementing the second counter to a second value,

generating a second one-time pad the second value of the second counter,

and wherein the operations further comprise:

storing the first one-time pad with the first value of the second counter and the second one-time pad with the second value of the second counter; and

identifying, in response to receiving the second value of the second counter from the sender system with the encrypted message, the second one-time pad, wherein the performing the XOR operation on the second encrypted message with the one-time pad is performing the XOR operation on the encrypted message with the second one-time pad in response to the identifying the second one-time pad.

18. The computer program product of claim 16 , wherein receiving the second secret key from the sender system comprises:

receiving an encrypted secret key from the sender system, the encrypted secret key encrypted using a public key; and

decrypting the encrypted secret key using a private key corresponding to the public key.

19. The computer program product of claim 18 , wherein the operations further comprise:

in response to receiving the second secret key, encrypting an acknowledgement using the second secret key; and

sending the encrypted acknowledgement to the sender system.

20. The computer program product of claim 16 , wherein generating the second plurality of one-time pads comprises encrypting a combination of a nonce and the second counter with the second secret key.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2021
From: JABBOUR, NADIM GEORGE; PORTILLA, IVAN
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 055420/0415 →
Continuity (1)
Related Publication 20220278826A1 · Sep 1, 2022