IP Library Granted Patent US 11,263,415
Granted Patent B2
US 11,263,415 · App. 16/986,817 · Granted Mar 1, 2022

Transferring data files using a series of visual codes

Inventors: Armin Ebrahimi (Palo Alto, CA); Gaurav Khot (Cupertino, CA)
Assignee: Ping Identity Corporation
G06K7/1439G06K7/1095G06K19/06037G06K19/06112G09C5/00H04L9/14H04L9/30H04L9/3236H04L9/3247H04L9/3271
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,263,415
App. No.
16/986,817
Granted
Mar 1, 2022
Kind
B2
Abstract

Software on an image-capturing device iteratively captures a visual code in a series of visual codes displayed in a repeating progression on a screen of a mobile device. The visual code was generated from a display block that resulted from a partition of an original data file into a series of display blocks of at least a specified size. The software converts the visual code back into a display block and reads a header for the display block, discarding the display block if it has already been captured, as determined by the ordered identifying block number in a header. The software stops the iterative capturing when all of the display blocks in the series have been captured, as determined by the count in the header and coalesces the captured display blocks into the original data file, using an order determined by the ordered identifying block numbers.

Claims (40)

1. A method, comprising operations of:

digitally signing, at a device of a user and using a private key associated with the user, a data file to define a signed data file;

partitioning the signed data file into a plurality of data segments;

converting the plurality of data segments into a series of presentation blocks; and

iteratively presenting each presentation block from the series of presentation blocks for capture by a receiving device such that

the receiving device (1) captures the series of presentation blocks, (2) derives each data segment from the plurality of data segments from the series of presentation blocks, (3) reconstructs the signed data file from the plurality of data segments, (4) verifies a digital signature of the signed data file using a public key paired with the private key, and (5) verifies integrity of the data file by retrieving a certificate associated with the data file, from a public storage and digitally signed by a certifying entity.

2. The method of claim 1 , wherein each presentation block from the series of presentation blocks includes a header having an identifying block number and a count of a total number of presentation blocks in the series of presentation blocks.

3. The method of claim 1 , wherein the partitioning of the signed data file includes selecting a size for each data segment from the plurality of data segments to ensure compliance of each presentation block from the series of presentation blocks with a predetermined size restriction.

4. The method of claim 1 , wherein the iteratively presenting each presentation block from the series of presentation blocks causes a rotation of the series of presentation blocks in a loop that repeats until each presentation block from the series of presentation blocks is confirmed captured by the receiving device.

5. The method of claim 1 , wherein each presentation block from the series of presentation blocks is a visual code comprising a QR code or bar code.

6. The method of claim 1 , further comprising:

encrypting the signed data file using a public key of the receiving device before partitioning the signed data file that is encrypted into the plurality of data segments,

wherein the receiving device decrypts the signed data file prior to verifying the digital signature of the signed data file.

7. The method of claim 1 , wherein the certificate is a first instance of the certificate, the method further comprising:

including a second instance of the certificate as part of the data file before digitally signing the data file, wherein the second instance of the certificate certifies the data file and is used to verify the integrity of the data file.

8. The method of claim 1 , wherein each presentation block from the series of presentation blocks is an audio presentation block.

9. The method of claim 1 , wherein the data file is an image file.

10. The method of claim 1 , wherein the data file contains biometric data of the user.

11. The computer system of claim 10 , wherein the receiving device is configured as a kiosk provided in association with an airline.

12. The computer system of claim 10 , wherein the data file contains biometric data of the user.

13. The computer system of claim 10 , wherein each presentation block from the series of presentation blocks is an audio presentation block.

14. The method of claim 1 , wherein the public storage is a blockchain, the blockchain receives data for storage from a plurality of entities, the data received for storage is configured to be processed to generate a transaction record that is dependent on previous data stored to the blockchain, wherein the transaction record being dependent on previous data stored to the blockchain ensures that data stored to the blockchain is not modifiable, as later data stored to the blockchain continues to be dependent on previous data stored to the blockchain.

15. The method of claim 1 , wherein the iteratively presenting includes presenting each presentation block from the series of presentation blocks for a time period, the time period based on a quality of a scanner of the receiving device.

16. The method of claim 1 , wherein a size of each presentation block from the series of presentation blocks is based on a quality of a scanner of the receiving device.

17. A computer system comprising:

a processor; and

memory coupled to the processor and having stored therein instructions that, if executed by the processor, cause the processor to execute a method comprising:

digitally signing, at a device of a user and using a private key associated with the user, a data file to define a signed data file;

partitioning the signed data file into a plurality of data segments;

converting the plurality of data segments into a series of presentation blocks; and

iteratively presenting each presentation block from the series of presentation blocks for capture by a receiving device such that

the receiving device ( 1 ) captures the series of presentation blocks, ( 2 ) derives each data segment from the plurality of data segments from the series of presentation blocks, ( 3 ) reconstructs the signed data file from the plurality of data segments, ( 4 ) verifies a digital signature of the signed data file using a public key paired with the private key, and ( 5 ) verifies integrity of the data file by retrieving a certificate associated with the data file, from a public storage and digitally signed by a certifying entity.

18. The computer system of claim 17 , wherein in the method the partitioning of the signed data file includes selecting a size for each data segment from the plurality of data segments to ensure compliance of each presentation block from the series of presentation blocks with a predetermined size restriction.

19. The computer system of claim 17 , wherein in the method the iteratively presenting each presentation block from the series of presentation blocks causes a rotation of the series of presentation blocks in a loop that repeats until each presentation block from the series of presentation blocks is confirmed captured by the receiving device.

20. The computer system of claim 17 , wherein in the method each presentation block from the series of presentation blocks is a visual code comprising a QR code or bar code.

21. The computer system of claim 17 , the method further comprising:

encrypting the signed data file using a public key of the receiving device before partitioning the signed data file that is encrypted into the plurality of data segments,

wherein the receiving device decrypts the signed data file prior to verifying the digital signature of the signed data file.

22. The computer system of claim 17 , wherein the certificate is a first instance of the certificate, the method further comprising:

including a second instance of the certificate as part of the data file before digitally signing the data file, wherein the second instance of the certificate certifies the data file and is used to verify the integrity of the data file.

Assignments (8)
RELEASE OF SECURITY INTEREST AT R/F 61703/0988 Recorded Nov 14, 2025
From: BLUE OWL CAPITAL CORPORATION
To: PING IDENTITY CORPORATION
Reel/Frame 073570/0777 →
SECURITY INTEREST Recorded Nov 13, 2025
From: PING IDENTITY CORPORATION; PING IDENTITY INTERNATIONAL, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 073557/0093 →
RELEASE OF SECURITY INTEREST Recorded Oct 19, 2022
From: BANK OF AMERICA, N.A.
To: PING IDENTITY CORPORATION
Reel/Frame 061709/0527 →
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Oct 18, 2022
From: PING IDENTITY CORPORATION
To: OWL ROCK CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 061703/0988 →
SECURITY INTEREST Recorded Nov 23, 2021
From: PING IDENTITY CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 058944/0687 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2021
From: SHOCARD, LLC
To: PING IDENTITY CORPORATION
Reel/Frame 056094/0825 →
CHANGE OF NAME Recorded Apr 30, 2021
From: SHOCARD, INC.
To: SHOCARD, LLC
Reel/Frame 056107/0645 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2021
From: EBRAHIMI, ARMIN; KHOT, GAURAV
To: SHOCARD, INC.
Reel/Frame 056094/0796 →
Continuity (4)
Continuation 16019411 · Jun 26, 2018
Continuation 15208580 · Jul 12, 2016
Provisional Application 62304934 · Mar 7, 2016
Related Publication 20210192166A1 · Jun 24, 2021
Cited By (1)
US 12,518,278