IP Library Granted Patent US 11,128,640
Granted Patent B2
US 11,128,640 · App. 16/855,437 · Granted Sep 21, 2021

Data comprising encryption key

Inventor: Subhash Sankuratripati (Playa Vista, CA)
Assignee: Snap Inc.
H04L63/123H04L9/0838H04L9/0891H04L63/0442H04L63/061H04W12/033
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,128,640
App. No.
16/855,437
Granted
Sep 21, 2021
Kind
B2
Abstract

Systems and methods for end to end encryption are provided. In example embodiments, a computer accesses an image including a geometric shape. The computer determines that the accessed image includes a candidate shape inside the geometric shape. The computer determines, using the candidate shape, an orientation of the geometric shape. The computer determines a public key of a communication partner device by decoding, based on the determined orientation, data encoded within the geometric shape. The computer receives a message. The computer verifies, based on the public key of the communication partner device, whether the message is from the communication partner device. The computer provides an output including the message and an indication of the communication partner device if the message is verified to be from the communication partner device. The computer provides an output indicating an error if the message is not verified to be from the communication partner device.

Claims (79)

1. A method comprising:

capturing an image via a camera of a computing device;

determining a public signing key of a communication partner device by decoding data encoded within the image, the data comprising the public signing key;

receiving via a wireless network a message at the computing device;

verifying, based on the public signing key of the communication partner device, whether the message is from the communication partner device; and

in response to a verification that the message is from the communication partner device,

providing an output including the message and an indication of the communication partner device,

comparing the public signing key to a preexisting public key for the communication partner device, and

determining the preexisting public key is trusted in response to the comparison indicating the public signing key and the preexisting public key are equivalent.

2. The method of claim 1 , wherein the image includes a geometric shape, and wherein the method further comprises:

determining that the image includes a candidate shape inside the geometric shape;

determining an orientation of the geometric shape; and

wherein determining the public signing key comprises:

determining the public signing key by decoding, based on the determined orientation, data encoded within the geometric shape.

3. The method of claim 2 , wherein determining that the image includes the candidate shape inside the geometric shape comprises:

detecting a shape within the geometric shape;

comparing the detected shape with a set of reference shapes to determine a similarity score; and

determining that the similarity score exceeds a threshold.

4. The method of claim 2 , wherein the geometric shape comprises a rectangle with rounded corners, and wherein determining the orientation of the geometric shape comprises:

determining an upward direction of the candidate shape; and

setting an upward direction of the geometric shape based on the upward direction of the candidate shape and based on a direction of at least one side of the rectangle.

5. The method of claim 4 , wherein the set upward direction of the geometric shape is perpendicular or parallel to the at least one side of the rectangle.

6. The method of claim 4 , wherein a ray corresponding to the set upward direction of the geometric shape and a ray corresponding to the determined upward direction of the candidate shape make an angle of less than 45 degrees.

7. The method of claim 1 , wherein the computing device is a user device of a social messaging system, and wherein comparing the public key to the preexisting public key comprises:

sending an indication of the public key and an indication of the communication partner device to the social messaging system, and wherein the determining the preexisting key is trusted comprises:

receiving from the social messaging system an indication of whether the public key and a preexisting public key are equivalent.

8. The method of claim 1 , further comprising:

generating, at the computing device, a private key (a) of the computing device;

computing a public signing key (A) of the computing device, the public signing key of the computing device being computed according to an equation: A=g{circumflex over ( )}a mod p, wherein p is a prime number that exceeds a threshold, and g is a primitive root modulo p;

computing a shared secret (s) of the computing device and the communication partner device according to an equation: s=B{circumflex over ( )}a mod p, wherein B indicates the public signing key;

decrypting the received message using the shared secret; and

encrypting, for transmission to the communication partner device, a second message using the shared secret.

9. The method of claim 8 , wherein p, g, A, and B are publicly accessible values, and wherein the private key (a) of the computing device is a secret value stored securely at the computing device.

10. The method of claim 8 further comprising:

periodically modifying a value of the private key (a) of the computing device after a passage of a predetermined time period or after sending a predetermined number of messages;

re-computing the public signing key (A) of the computing device based on the modified value of the private key (a) of the computing device;

notifying the communication partner device of the re-computed value of the public signing key (A) of the computing device; and

re-computing the shared secret (s) of the computing device and the communication partner device based on the modified value of the private key (a) of the computing device.

11. The method of claim 1 further comprising:

receiving the image via a web browser, a social networking application, or a messaging service.

12. A system comprising:

hardware processing circuitry;

a hardware memory storing instructions that when executed, configure the hardware processing circuitry to perform operations comprising:

capturing an image via a camera of the computing device;

determining a public signing key of a communication partner device by decoding data encoded within the image, the data comprising the public signing key;

receiving via a wireless network a message at the computing device;

verifying, based on the public signing key of the communication partner device, whether the message is from the communication partner device; and

in response to a verification that the message is from the communication partner device,

providing an output including the message and an indication of the communication partner device,

comparing the public signing key to a preexisting public key for the communication partner device, and

determining the preexisting public key is trusted in response to the comparison indicating the public signing key and the preexisting public key are equivalent.

13. The system of claim 12 , wherein the instructions further configure the hardware processing circuitry to perform the following operations:

determining that the image includes a candidate shape inside the geometric shape;

determining an orientation of the geometric shape; and

wherein determining the public signing key comprises:

determining the public signing key by decoding, based on the determined orientation, data encoded within the geometric shape.

14. The system of claim 13 , wherein determining that the image includes the candidate shape inside the geometric shape comprises:

detecting a shape within the geometric shape;

comparing the detected shape with a set of reference shapes to determine a similarity score; and

determining that the similarity score exceeds a threshold.

15. The system of claim 13 , wherein the geometric shape comprises a rectangle with rounded corners, and wherein determining the orientation of the geometric shape comprises:

determining an upward direction of the candidate shape; and

setting an upward direction of the geometric shape based on the upward direction of the candidate shape and based on a direction of at least one side of the rectangle.

16. The system of claim 13 , wherein the set upward direction of the geometric shape is perpendicular or parallel to the at least one side of the rectangle.

17. A non-transitory computer readable medium comprising instructions that when executed configure hardware processing circuitry to perform operations comprising:

capturing an image via a camera of the computing device;

determining a public signing key of a communication partner device by decoding data encoded within the image, the data comprising the public signing key;

receiving via a wireless network a message at the computing device;

verifying, based on the public signing key of the communication partner device, whether the message is from the communication partner device; and

in response to a verification that the message is from the communication partner device,

providing an output including the message and an indication of the communication partner device,

comparing the public signing key to a preexisting public key for the communication partner device, and

determining the preexisting public key is trusted in response to the comparison indicating the public signing key and the preexisting public key are equivalent.

18. The non-transitory computer readable medium of claim 17 , wherein the operations further comprise:

determining that the image includes a candidate shape inside the geometric shape;

determining an orientation of the geometric shape; and

wherein determining the public signing key comprises:

determining the public signing key by decoding, based on the determined orientation, data encoded within the geometric shape.

19. The method of claim 1 , further comprising: in response to the verification indicating that the message is not from the communication partner device, providing an output indicating an error.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2021
From: SANKURATRIPATI, SUBHASH
To: SNAPCHAT, INC.
Reel/Frame 057167/0927 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2021
From: SNAPCHAT, INC.
To: SNAP INC.
Reel/Frame 057167/0968 →
Continuity (3)
Continuation 16256639 · Jan 24, 2019
Continuation 15099719 · Apr 15, 2016
Related Publication 20200389466A1 · Dec 10, 2020
Cited By (1)
US 12,388,839