IP Library Granted Patent US 10,409,688
Granted Patent B2
US 10,409,688 · App. 15/429,269 · Granted Sep 10, 2019

System and method of using encryption algorithms in P2P encryption mode to restore integrity of data

Inventor: Alexander G. Tormasov (Moscow, RU)
Assignee: Acronis International GmbH
G06F11/1448G06F11/00G06F11/1464G06F11/1469H04L9/085H04L9/0894G06F2201/805
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 10,409,688
App. No.
15/429,269
Granted
Sep 10, 2019
Kind
B2
Abstract

A system and method is disclosed for using encryption algorithms in peer-to-peer encryption mode to restore the integrity of data. An example method is provided for generating a new derivative for a file that has a plurality of existing derivatives that have been stored on servers using an (n,k) algorithm, where the (n,k) algorithm provides that a minimum number k of the derivatives required to restore the file. The method includes accessing, on a server, a first derivative of the existing derivatives and forming a blob for the new derivative based on a modification operation that uses the first derivative. Moreover, the method includes determining a number of times the modification operation has been performed, and if the number of times the modification operation has been performed is equal to the minimum number k, uploading the blob to a server for storage thereon.

Claims (57)

1. A method for generating a new derivative for a file that has a plurality of existing derivatives stored on one or more servers using an (n,k) algorithm, wherein k is a minimum number of derivatives required to restore the file, the method comprising:

accessing, on a server, an existing derivative of the file stored on said server;

performing, by the server, a modification operation on the existing derivative to generate a blob for the new derivative;

determining a number of times the modification operation has been performed;

when the number of times the modification operation has been performed is not equal to k and there is an additional existing derivative stored on at least one server of the one or more servers, performing, by said server, the modification operation on the blob using the additional existing derivative and incrementing by one the number of times the modification operation has been performed until the modification operation has been performed k times; and

when the modification operation has been performed k times, uploading the blob to a server for storage thereon.

2. The method of claim 1 , further comprising:

when the modification operation has not been performed k times and there is no additional existing derivative stored on the at least one server, by the at least one server, transferring the blob to an additional server that is communicatively coupled to the at least one server.

3. The method of claim 2 , further comprising:

determining if there is an additional derivative stored on the additional server; and

when there is an additional derivative stored on the additional server, modifying the blob, by the additional server, based on the modification operation using the additional derivative.

4. The method of claim 3 , further comprising:

incrementing by one, by the additional server, the number of times the modification operation has been performed; and

when the modification operation has been performed k times, uploading the blob by the additional server to a server for storage thereon.

5. The method of claim 2 , further comprising selecting the additional server from among a plurality of servers by initiating an auction for the plurality of servers and transmitting the blob to the additional server that wins the auction.

6. The method of claim 2 , further comprising selecting the additional server from among a plurality of servers by selecting the additional server that has a maximum bandwidth for communicating with the at least one server.

7. The method of claim 1 , wherein the uploading of the blob to the server for storage thereon comprises:

polling a plurality of servers to identify a server that is willing to store the blob; and

uploading the blob to the server that is willing to store the blob and transmitting an electronic payment to the server upon confirmation that the blob is stored thereon.

8. A system for generating a new derivative for a file that has a plurality of existing derivatives stored on one or more servers using an (n,k) algorithm, wherein k is a minimum number of derivatives required to restore the file, the system comprising:

a processor on a server configured to:

access an existing derivative of the file stored on said server;

perform, by the server, a modification operation on the existing derivative to generate a blob for the new derivative;

determine a number of times the modification operation has been performed;

when the number of times the modification operation has been performed is not equal to k and there is an additional existing derivative stored on at least one server of the one or more servers, perform, by said server, the modification operation on the blob using the additional existing derivative and increment by one the number of times the modification operation has been performed until the modification operation has been performed k times; and

when the modification operation has been performed k times, upload the blob to a server for storage thereon.

9. The system of claim 8 , wherein the processor is further configured to:

when the modification operation has not been performed k times and there is no additional existing derivative stored on the at least one server, by the at least one server, transferring the blob to an additional server that is communicatively coupled to the at least one server.

10. The system of claim 9 ,

wherein a processor of the additional server determines when there is an additional derivative stored thereon, and

wherein, when there is an additional derivative stored on the additional server, the processor of the additional server is configured to modify the blob based on the modification operation using the additional derivative.

11. The system of claim 10 ,

wherein the processor of the additional server is configured to increment by one the number of times the modification operation has been performed; and

when the modification operation has been performed k times, the additional server is configured to upload the blob to a server for storage thereon.

12. The system of claim 9 , wherein the processor is further configured to select the additional server from among a plurality of servers by initiating an auction for the plurality of servers and transmitting the blob to the additional server that wins the auction.

13. The system of claim 9 , wherein the processor is further configured to select the additional server from among a plurality of servers by selecting the additional server that has a maximum bandwidth for communicating with the at least one server.

14. The system of claim 8 , wherein the processor is further configured to upload the blob to the server for storage thereon by:

polling a plurality of servers to identify a server that is willing to store the blob; and

uploading the blob to the server that is willing to store the blob and transmitting an electronic payment to the server upon confirmation that the blob is stored thereon.

15. A non-transitory computer readable medium storing computer executable instructions for generating a new derivative for a file that has a plurality of existing derivatives stored on one or more servers using an (n,k) algorithm, wherein k is a minimum number of derivatives required to restore the file, including instructions for:

accessing, on a server, an existing derivative of the file stored on said server;

performing, by the server, a modification operation on the existing derivative to generate a blob for the new derivative;

determining a number of times the modification operation has been performed;

when the number of times the modification operation has been performed is not equal to k and there is an additional existing derivative stored on at least one server of the one or more servers, performing, by said server, the modification operation on the blob using the additional existing derivative and incrementing by one the number of times the modification operation has been performed until the modification operation has been performed k times; and

when the modification operation has been k times, uploading the blob to a server for storage thereon.

16. The non-transitory computer readable medium according to claim 15 , further including instructions for:

when the modification operation has not been performed k times and there is no additional existing derivative stored on the at least one server, by the at least one server, transferring the blob to an additional server that is communicatively coupled to the at least one server.

17. The non-transitory computer readable medium according to claim 16 , further including instructions for:

determining if there is an additional derivative stored on the additional server; and

when there is an additional derivative stored on the additional server, modifying the blob, by the additional server, based on the modification operation using the additional derivative.

18. The non-transitory computer readable medium according to claim 17 , further including instructions for:

incrementing by one, by the additional server, the number of times the modification operation has been performed; and

when the modification operation has been performed k times, uploading the blob by the additional server to a server for storage thereon.

19. The non-transitory computer readable medium according to claim 16 , further including instructions for:

selecting the additional server from among a plurality of servers by initiating an auction for the plurality of servers and transmitting the blob to the additional server that wins the auction.

20. The non-transitory computer readable medium according to claim 16 , further including instructions for:

selecting the additional server from among a plurality of servers by selecting the additional server that has a maximum bandwidth for communicating with the at least one server.

Assignments (5)
REAFFIRMATION AGREEMENT Recorded Aug 28, 2022
From: ACRONIS AG; ACRONIS INTERNATIONAL GMBH; ACRONIS SCS, INC.; ACRONIS, INC.; GROUPLOGIC, INC.; NSCALED INC.; ACRONIS MANAGEMENT LLC; 5NINE SOFTWARE, INC.; ACRONIS GERMANY GMBH; ACRONIS NETHERLANDS B.V.; ACRONIS BULGARIA EOOD; DEVICELOCK, INC.; DEVLOCKCORP LTD; ACRONIS INC.
To: MIDCAP FINANCIAL TRUST
Reel/Frame 061330/0818 →
SECURITY INTEREST Recorded Dec 19, 2019
From: ACRONIS INTERNATIONAL GMBH
To: MIDCAP FINANCIAL TRUST
Reel/Frame 051418/0119 →
RELEASE OF SECURITY INTEREST Recorded Oct 21, 2019
From: OBSIDIAN AGENCY SERVICES, INC.
To: ACRONIS INTERNATIONAL GMBH; GROUPLOGIC, INC.
Reel/Frame 050783/0893 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 29, 2019
From: TORMASOV, ALEXANDER G
To: ACRONIS INTERNATIONAL GMBH
Reel/Frame 049883/0520 →
SECURITY INTEREST Recorded Jul 26, 2017
From: ACRONIS INTERNATIONAL GMBH; GROUPLOGIC, INC.
To: OBSIDIAN AGENCY SERVICES, INC., AS COLLATERAL AGENT
Reel/Frame 043350/0186 →
Continuity (1)
Related Publication 20180232284A1 · Aug 16, 2018
Cited By (2)
US 12,373,304 US 12,505,233