IP Library Granted Patent US 12,488,338
Granted Patent B2
US 12,488,338 · App. 18/444,568 · Granted Dec 2, 2025

Offline mode for distribution of encryption keys

Inventors: Michael David Dahn (San Francisco, CA); Bryan Daniel Berg (Seattle, WA)
Assignee: Stripe, Inc.
G06Q20/3829G06Q2220/10
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 12,488,338
App. No.
18/444,568
Granted
Dec 2, 2025
Kind
B2
Abstract

The subject technology enables encryption key distribution when a processor is in offline mode. When offline, key distribution servers can distribute private/public key pairs in place of the processor. The servers can distribute a public key to a user device for encryption of data. The encrypted data can be provided to the processor, which can return a token in response to provide to the first server.

Claims (74)

1 . A method comprising:

receiving, by a user device and from a server side application, a first script for performing a first secure operation with the server side application with facilitation from a service provider server, the first script comprising a first public key obtained from a key distribution server; and

executing, by the user device, the first script to perform the first secure operation, the executing comprising:

determining, by the user device, whether the service provider server is unavailable to facilitate the first secure operation; and

in response to determining, by the user device, that the service provider server is unavailable to perform the first secure operation:

encrypting, by the user device and using the first public key, first private information to facilitate the first secure operation; and

transmitting, by the user device, the encrypted first private information to the server side application;

receiving, by the user device and from the server side application, a second script for performing a second secure operation with the server side application with facilitation from the service provider server, the second script comprising a second public key obtained from the key distribution server; and

executing, by the user device, the second script to perform the second secure operation, the executing comprising:

determining, by the user device, whether the service provider server is available to facilitate the second secure operation; and

in response to determining, by the user device, that the service provider server is available to facilitate the second secure operation:

encrypting, with the second public key, second private information for performing the second secure operation;

transmitting the encrypted second private information to the service provider server;

receiving from the service provider server, a token derived from the second private information having been decrypted by the service provider server using a private key obtained from the key distribution server; and

transmitting, to the server side application, the token in lieu of the second private information.

2 . The method of claim 1 , wherein obtaining the first public key from the key distribution server comprises:

receiving, by the user device and from the server side application, a form for user input, wherein the form includes an instruction to encrypt the first private information using the first public key.

3 . The method of claim 2 , wherein sending the token to the server side application comprises:

associating, by the user device, the token with the form; and

submitting, by the user device and to the server side application, the form.

4 . The method of claim 1 , wherein the first public key, from the key distribution server, is sourced from a dynamic public-private key pair randomly generated by the service provider server.

5 . The method of claim 4 , wherein the dynamic public-private key pair is associated with an encryption usage period and a decryption expiry time, the decryption expiry time after an end of the encryption usage period.

6 . The method of claim 1 , further comprising receiving an offline mode indicator from the server side application and sending of the token is based on the offline mode indicator.

7 . The method of claim 1 , wherein:

the private information comprises a private key, and

the public key and the private key comprise ephemeral keys.

8 . An electronic device comprising:

a memory; and

a processor configured to:

receive, from a server side application, a script for performing a secure operation with the server side application with facilitation from a service provider server, the script comprising a public key obtained from a key distribution server; and

execute the script to perform the secure operation, the executing comprising:

determine whether the service provider server is unavailable to facilitate the secure operation;

in response to a first determination that the service provider server is unavailable to perform the secure operation:

encrypt private information using the public key to facilitate the secure operation; and

transmit the encrypted private information to the server side application; and

in response to a second determination that the service provider server is available to facilitate the secure operation:

encrypt, with the public key, private information for performing the secure operation;

transmit the encrypted private information to the service provider server;

receive from the service provider server, a token derived from the private information having been decrypted by the service provider server using a private key obtained from the key distribution server; and

transmitting, to the server side application, the token in lieu of the private information.

9 . The electronic device of claim 8 , wherein the processor is configured to obtain the public key from the key distribution server by:

receiving from the server side application, a form for user input, wherein the form includes an instruction to encrypt the private information using the public key.

10 . The electronic device of claim 9 , wherein the processor is configured to send the token to the server side application by:

associating the token with the form; and

submitting to the server side application, the form.

11 . The electronic device of claim 8 , wherein the public key, from the key distribution server, is sourced from a dynamic public-private key pair randomly generated by the service provider server.

12 . The electronic device of claim 11 , wherein the dynamic public-private key pair is associated with an encryption usage period and a decryption expiry time, the decryption expiry time after an end of the encryption usage period.

13 . The electronic device of claim 8 , wherein the processor is further configured to receive an offline mode indicator from the server side application and sending of the token is based on the offline mode indicator.

14 . The electronic device of claim 8 , wherein:

the private information comprises a private key, and

the public key and the private key comprise ephemeral keys.

15 . A non-transitory computer-readable medium comprising:

computer-readable instructions that, when executed by a processor, cause the processor to perform one or more operations comprising:

receiving, by a user device and from a server side application, a script for performing a secure operation with the server side application with facilitation from a service provider server, the script comprising a public key obtained from a key distribution server;

executing, by the user device, the script to perform the secure operation, the executing comprising:

determining, by the user device, whether the service provider server is unavailable to facilitate the secure operation;

in response to determining, by the user device, that the service provider server is unavailable to facilitate the secure operation:

encrypting, by the user device and using the public key, private information for performing the secure operation;

transmitting, by the user device, the encrypted private information to the server side application; and

in response to determining that the service provider server is available to facilitate the secure operation:

encrypting, with the public key, private information for performing the secure operation;

transmitting the encrypted private information to the service provider server;

receiving from the service provider server, a token derived from the private information having been decrypted by the service provider server using a private key obtained from the key distribution server; and

transmitting, to the server side application, the token in lieu of the private information.

16 . The non-transitory computer-readable medium of claim 15 , wherein obtaining the public key from the key distribution server comprises:

receiving, by the user device and from the server side application, a form for user input, wherein the form includes an instruction to encrypt the private information using the public key.

17 . The non-transitory computer-readable medium of claim 16 , wherein sending the token to the server side application comprises:

associating, by the user device, the token with the form; and

submitting, by the user device and to the server side application, the form.

18 . The non-transitory computer-readable medium of claim 15 , wherein the public key, from the key distribution server, is sourced from a dynamic public-private key pair randomly generated by the service provider server.

19 . The non-transitory computer-readable medium of claim 18 , wherein the dynamic public-private key pair is associated with an encryption usage period and a decryption expiry time, the decryption expiry time after an end of the encryption usage period.

20 . The non-transitory computer-readable medium of claim 15 , wherein:

the private information comprises a private key, and

the public key and the private key comprise ephemeral keys.

Assignments (1)
CHANGE OF NAME Recorded Jan 30, 2026
From: STRIPE, INC.
To: STRIPE, LLC
Reel/Frame 074572/0345 →