IP Library Granted Patent US 12,003,622
Granted Patent B1
US 12,003,622 · App. 18/485,296 · Granted Jun 4, 2024

Enabling secure storage and sharing of images

Inventors: Gary Anderson (San Mateo, CA); Nicholas Franco (San Jose, CA); Jason Sean Gagne-Keats (Cupertino, CA)
Assignee: OSOM PRODUCTS, INC.
H04L9/085G06F21/106H04L9/14H04L9/30H04L67/34
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,003,622
App. No.
18/485,296
Granted
Jun 4, 2024
Kind
B1
Abstract

The disclosed technology relates to using a blockchain to manage files and ownership thereof for a file sharing and storage service. The blockchain can also record and track edits to the files. The file sharing and storage service can automatically analyze the files to identify various visual features and subjects, and record metadata thereof to the blockchain.

Claims (155)

1. At least one non-transitory computer-readable storage medium storing instructions, which, when executed by at least one data processor of a system, cause the system to:

enable secure sharing between multiple blockchains including:

create a digital storage associated with a first public key associated with a first user,

wherein the digital storage is associated with a first private linear sequence of storing image operations,

wherein the first private linear sequence storing image operations encrypts a content of a block that is part of the first private linear sequence storing image operations;

obtain an image;

encrypt the image using the first public key associated with the digital storage to obtain a first encrypted image;

store the first encrypted image on the first private linear sequence storing image operations;

receive a request to share the first encrypted image with a second public key associated with a second user,

wherein the second public key is different from the first public key;

determine whether the second public key has permission to access the first encrypted image;

upon determining that the second public key has the permission to access the first encrypted image, decrypt the first encrypted image using a first private key to obtain a decrypted image;

send a request for permission to create a common workspace;

receive the permission to create the common workspace;

upon receiving the permission to create the common workspace, create a third private key and a third public key;

share the third private key and the third public key with the first user and the second user;

encrypt the decrypted image using the third public key to obtain a third encrypted image; and

store the third encrypted image in a common workspace including a third private linear sequence storing image operations associated with the third public key,

wherein the third private linear sequence is configured to receive an indication of an image edit to be performed on the third encrypted image;

wherein the third private linear sequence is configured to perform the image edit to the third encrypted image; and

wherein the third private linear sequence is configured to store the image edit as a second block in the third private linear sequence storing image operations,

wherein the second block in the third private linear sequence storing image operations is accessible to both the first user and the second user.

2. The at least one non-transitory computer-readable storage medium of claim 1 , wherein the instructions to determine whether the second public key has permission to access the first encrypted image comprise instructions to:

obtain multiple contacts associated with the first public key,

wherein the multiple contacts indicate multiple second public keys;

determine whether the second public key is among the multiple second public keys;

upon determining that the second public key is among the multiple second public keys, grant the permission to access the first encrypted image to the second public key; and

upon determining that the second public key is not among the multiple second public keys, deny the permission to access the first encrypted image to the second public key.

3. The at least one non-transitory computer-readable storage medium of claim 1 , comprising instructions to:

determine whether the permission to create the common workspace is received;

upon determining that the permission to create the common workspace is not received, receive an indication of an edit to be performed on the third encrypted image;

encrypt the decrypted image using the second public key to obtain a second encrypted image; and

store the second encrypted image on a second private linear sequence storing image operations associated with the second public key;

perform the edit to the second encrypted image; and

store the edit as a second block in the second private linear sequence storing image operations,

wherein the second block is accessible to the second user but not the first user.

4. The at least one non-transitory computer-readable storage medium of claim 1 , comprising instructions to:

determine an element represented in the image,

wherein the element includes an object, a location, or a being; and

based on the element, suggest a name associated with the image.

5. The at least one non-transitory computer-readable storage medium of claim 1 , comprising instructions to:

determine a person represented in the image,

wherein the person does not have access to the first private key,

wherein the person has access to a second private key associated with the second public key; and

suggest sharing the first encrypted image with the second public key.

6. The at least one non-transitory computer-readable storage medium of claim 1 , comprising instructions to:

receive an indication of an edit to be performed on the first encrypted image;

perform the edit to the first encrypted image; and

store the edit as a second block in the first private linear sequence storing image operations.

7. The at least one non-transitory computer-readable storage medium of claim 1 , comprising instructions to:

receive an indication of an edit to be performed on the first encrypted image;

perform the edit to the first encrypted image;

store the edit as a second block in the first private linear sequence storing image operations;

determine a sharing property associated with the first encrypted image,

wherein the sharing property indicates to edit the third encrypted image, to provide a notification of the edit to the first encrypted image, or to do neither; and

based on the sharing property, edit the third encrypted image, provide the notification of the edit to the first encrypted image, or do neither.

8. A method comprising:

enable secure sharing between multiple blockchains including:

creating a digital storage associated with a first public key associated with a first user,

wherein the digital storage is associated with a first private linear sequence storing file operations,

wherein the first private linear sequence storing file operations encrypts a content of a block that is part of the first private linear sequence storing file operations;

obtaining a file;

encrypting the file using the first public key associated with the digital storage to obtain a first encrypted file;

storing the first encrypted file on the first private linear sequence storing file operations;

receiving a request to share the first encrypted file with a second public key associated with a second user,

wherein the second public key is different from the first public key;

determining whether the second public key has permission to access the first encrypted file;

upon determining that the second public key has the permission to access the first encrypted file, decrypting the first encrypted file using a first private key to obtain a decrypted file;

sending a request for permission to create a common workspace;

receiving the permission to create the common workspace;

upon receiving the permission to create the common workspace, creating a third private key and a third public key;

sharing the third private key and the third public key with the first user and the second user;

encrypting the decrypted file using the third public key to obtain a third encrypted file; and

storing the third encrypted file in a common workspace including a third private linear sequence storing file operations associated with the third public key,

wherein the third private linear sequence is configured to receive an indication of an file edit to be performed on the third encrypted file;

wherein the third private linear sequence is configured to perform the file edit to the third encrypted file; and

wherein the third private linear sequence is configured to store the file edit as a second block in the third private linear sequence storing file operations,

wherein the second block in the third private linear sequence storing file operations is accessible to both the first user and the second user.

9. The method of claim 8 , comprising:

determining an element represented in the file,

wherein the element includes an object, a location, or a being; and

based on the element, suggesting a name associated with the file.

10. The method of claim 8 , comprising:

determining a person represented in the file,

wherein the person does not have access to the first private key,

wherein the person has access to a second private key associated with the second public key; and

suggesting sharing the first encrypted file with the second public key.

11. The method of claim 8 , wherein determining whether the second public key has permission to access the first encrypted file comprises:

obtaining multiple contacts associated with the first public key,

wherein the multiple contacts indicate multiple second public keys;

determining whether the second public key is among the multiple second public keys;

upon determining that the second public key is among the multiple second public keys, granting the permission to access the first encrypted file to the second public key; and

upon determining that the second public key is not among the multiple second public keys, denying the permission to access the first encrypted file to the second public key.

12. The method of claim 8 , comprising:

receiving an indication of an edit to be performed on the first encrypted file;

performing the edit to the first encrypted file;

storing the edit as a second block in the first private linear sequence storing file operations;

determining a sharing property associated with the first encrypted file,

wherein the sharing property indicates to edit the third encrypted file, to provide a notification of the edit to the first encrypted file, or to do neither; and

based on the sharing property, selectively performing editing the third encrypted file, providing the notification of the edit to the first encrypted file, or doing neither.

13. The method of claim 8 , comprising:

identify a person represented in the file; and

based on the person, suggest a name associated with the file.

14. A system comprising:

at least one hardware processor; and

at least one non-transitory memory storing instructions, which, when executed by the at least one hardware processor, cause the system to enable secure sharing between multiple blockchains including:

obtain a first public key associated with a first private linear sequence storing file operations

wherein the first private linear sequence storing file operations encrypts a content of a block that is part of the first private linear sequence storing file operations;

obtain a file;

encrypt the file using the first public key to obtain a first encrypted file;

store the first encrypted file on the first private linear sequence storing file operations;

receive a request to share the first encrypted file with a second public key,

wherein the second public key is different from the first public key;

determine whether the second public key has permission to access the first encrypted file;

upon determining that the second public key has the permission to access the first encrypted file, decrypt the first encrypted file using a first private key to obtain a decrypted file;

send a request for permission to create a common workspace;

receive a permission to create the common workspace;

upon receiving the permission to create the common workspace, create a third private key and a third public key;

share the third private key and the third public key with a first user associated with the first public key and a second user associated with the second public key;

encrypt the decrypted file using the third public key to obtain a third encrypted file; and

store the third encrypted file in a common workspace including a third private linear sequence storing file operations associated with the third public key,

wherein the third private linear sequence is configured to receive an indication of a file edit to be performed on the third encrypted file;

wherein the third private linear sequence is configured to perform the file edit to the third encrypted file; and

wherein the third private linear sequence is configured to store the file edit as a second block in the third private linear sequence storing file operations,

wherein the second block in the third private linear sequence storing file operations is accessible to both the first user and the second user.

15. The system of claim 14 , comprising instructions to:

determine an element represented in the file,

wherein the element includes an object, a location, or a being; and

based on the element, suggest a name associated with the file.

16. The system of claim 14 , comprising instructions to:

determine a person represented in the file,

wherein the person does not have access to the first private key,

wherein the person has access to a second private key associated with the second public key; and

suggest sharing the first encrypted file with the second public key.

17. The system of claim 14 , wherein the instructions to determine whether the second public key has permission to access the first encrypted file comprise instructions to:

obtain multiple contacts associated with the first public key,

wherein the multiple contacts indicate multiple second public keys;

determine whether the second public key is among the multiple second public keys;

upon determining that the second public key is among the multiple second public keys,

grant the permission to access the first encrypted file to the second public key; and

upon determining that the second public key is not among the multiple second public keys, deny the permission to access the first encrypted file to the second public key.

18. The system of claim 14 , comprising instructions to:

receive an indication of an edit to be performed on the first encrypted file;

perform the edit to the first encrypted file; and

store the edit as a second block in the first private linear sequence storing file operations.

19. The system of claim 14 , comprising instructions to:

receive an indication of an edit to be performed on the first encrypted file;

perform the edit to the first encrypted file;

store the edit as a second block in the first private linear sequence storing file operations;

determine a sharing property associated with the first encrypted file,

wherein the sharing property indicates to edit the third encrypted file, to provide a notification of the edit to the first encrypted file, or to do neither; and

based on the sharing property, edit the third encrypted file, provide the notification of the edit to the first encrypted file, or do neither.

20. The system of claim 14 , comprising instructions to:

identify a person represented in the file; and

based on the person, suggest a name associated with the file.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2025
From: OSOM PRODUCTS INC
To: ENSIGHT LLC
Reel/Frame 072743/0051 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 9, 2024
From: ANDERSON, GARY; FRANCO, NICHOLAS; GAGNE-KEATS, JASON SEAN
To: OSOM PRODUCTS, INC.
Reel/Frame 066426/0016 →
Continuity (2)
Continuation In Part 18320197 · May 18, 2023
Continuation In Part 18319997 · May 18, 2023
Cited By (4)
US 12,256,020 US 12,434,663 US 12,450,606 US 12,524,506