IP Library Granted Patent US 9,373,003
Granted Patent B2
US 9,373,003 · App. 14/317,176 · Granted Jun 21, 2016

Systems and methods for automatically handling multiple levels of encryption and decryption

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 9,373,003
App. No.
14/317,176
Granted
Jun 21, 2016
Kind
B2
Abstract

Systems and methods are provided for automatically handling multiple levels of encryption and decryption. An electronic file is received to add to encrypted storage. The electronic file is encrypted to generate a new level of encryption for the electronic file using an encryption process that uses encryption data to generate the new level of encryption and to decrypt the new level of encryption. A set of existing encryption data associated with the electronic file is identified, wherein each existing encryption data from the set of existing encryption data is associated with an existing level of encryption already applied to the electronic file. The encryption data is added to the set of existing encryption data associated with the electronic file so that the existing levels of encryption and the new level of encryption can be decrypted.

Claims (67)

1. A computerized method for handling multiple levels of encryption so that data can be encrypted multiple times and subsequently decrypted to properly unencrypt the data, the method comprising:

receiving, by a computing device, an electronic file to add to encrypted storage that is in communication with the computing device;

encrypting, by the computing device, the electronic file to generate a new level of encryption for the electronic file using an encryption process that uses encryption data to generate the new level of encryption and to decrypt the new level of encryption;

identifying, by the computing device, a set of existing encryption data associated with the electronic file, wherein each existing encryption data from the set of existing encryption data is associated with an existing level of encryption already applied to the electronic file;

adding, by the computing device, the encryption data to the set of existing encryption data associated with the electronic file so that the existing levels of encryption and the new level of encryption can be decrypted;

identifying, by the computing device, a total number of levels of encryption among the existing levels of encryption and the new level of encryption; and

decrypting, by the computing device, all but one of the total number of levels of encryption from the electronic file.

2. The method of claim 1 , further comprising storing, for each of the existing levels of encryption and the new level of encryption, an index to keep track of how many blocks of the electronic file have been decrypted for the associated level of encryption.

3. The method of claim 2 , further comprising:

selecting a level of encryption from the existing levels of encryption and the new level of encryption to decrypt from the electronic file;

decrypting a data block of the electronic file pointed to by the index associated with the selected level of encryption using selected encryption data associated with the selected level of encryption;

updating the index by one to reflect that the data block is no longer encrypted for the selected level of encryption; and

associating the updated index with the electronic file.

4. The method of claim 1 , further comprising removing encryption information for each of the decrypted levels of encryption from the set of decryption information associated with the electronic file.

5. The method of claim 1 , further comprising:

receiving an access request by a computer program authorized to access the electronic file, the access request being associated with a set of blocks of the electronic file;

determining that none of the set of blocks are locked by a decryption process that is removing one or more levels of encryption of the block; and

allowing the access request.

6. The method of claim 1 , further comprising:

receiving an access request by a computer program authorized to access the electronic file, the access request being associated with a set of blocks of the electronic file;

determining a block from the set of blocks is locked by a decryption process that is removing one or more levels of encryption of the block; and

blocking the access request until all blocks in the set of blocks are decrypted to remove the one or more levels of encryption.

7. A computing device comprising:

a database; and

a processor in communication with the database, and configured to run a module stored in memory that is configured to cause the processor to:

receive an electronic file to add to encrypted storage that is in communication with the computing device;

encrypt the electronic file to generate a new level of encryption for the electronic file using an encryption process that uses encryption data to generate the new level of encryption and to decrypt the new level of encryption;

identify a set of existing encryption data associated with the electronic file, wherein each existing encryption data from the set of existing encryption data is associated with an existing level of encryption already applied to the electronic file;

add the encryption data to the set of existing encryption data associated with the electronic file so that the existing levels of encryption and the new level of encryption can be decrypted;

identify a total number of levels of encryption among the existing levels of encryption and the new level of encryption; and

decrypt all but one of the total number of levels of encryption from the electronic file.

8. The computing device of claim 7 , wherein the module stored in memory is further configured to cause the processor to store, for each of the existing levels of encryption and the new level of encryption, an index to keep track of how many blocks of the electronic file have been decrypted for the associated level of encryption.

9. The computing device of claim 7 , wherein the module stored in memory is further configured to cause the processor to:

select a level of encryption from the existing levels of encryption and the new level of encryption to decrypt from the electronic file;

decrypt a data block of the electronic file pointed to by the index associated with the selected level of encryption using selected encryption data associated with the selected level of encryption;

update the index by one to reflect that the data block is no longer encrypted for the selected level of encryption; and

associating the updated index with the electronic file.

10. The computing device of claim 7 , wherein the module stored in memory is further configured to cause the processor to remove encryption information for each of the decrypted levels of encryption from the set of decryption information associated with the electronic file.

11. The computing device of claim 7 , wherein the module stored in memory is further configured to cause the processor to:

receive an access request by a computer program authorized to access the electronic file, the access request being associated with a set of blocks of the electronic file;

determine that none of the set of blocks are locked by a decryption process that is removing one or more levels of encryption of the block; and

allow the access request.

12. The computing device of claim 7 , wherein the module stored in memory is further configured to cause the processor to:

receive an access request by a computer program authorized to access the electronic file, the access request being associated with a set of blocks of the electronic file;

determine a block from the set of blocks is locked by a decryption process that is removing one or more levels of encryption of the block; and

block the access request until all blocks in the set of blocks are decrypted to remove the one or more levels of encryption.

13. A non-transitory computer readable medium having executable instructions operable to cause an apparatus to:

receive an electronic file to add to encrypted storage that is in communication with the computing device;

encrypt the electronic file to generate a new level of encryption for the electronic file using an encryption process that uses encryption data to generate the new level of encryption and to decrypt the new level of encryption;

identify a set of existing encryption data associated with the electronic file, wherein each existing encryption data from the set of existing encryption data is associated with an existing level of encryption already applied to the electronic file;

add the encryption data to the set of existing encryption data associated with the electronic file so that the existing levels of encryption and the new level of encryption can be decrypted;

identify a total number of levels of encryption among the existing levels of encryption and the new level of encryption; and

decrypt all but one of the total number of levels of encryption from the electronic file.

14. The non-transitory computer readable medium of claim 13 , having executable instructions operable to cause the apparatus to store, for each of the existing levels of encryption and the new level of encryption, an index to keep track of how many blocks of the electronic file have been decrypted for the associated level of encryption.

15. The non-transitory computer readable medium of claim 13 , having executable instructions operable to cause the apparatus to:

select a level of encryption from the existing levels of encryption and the new level of encryption to decrypt from the electronic file;

decrypt a data block of the electronic file pointed to by the index associated with the selected level of encryption using selected encryption data associated with the selected level of encryption;

update the index by one to reflect that the data block is no longer encrypted for the selected level of encryption; and

associating the updated index with the electronic file.

16. The non-transitory computer readable medium of claim 13 , having executable instructions operable to cause the apparatus to:

receive an access request by a computer program authorized to access the electronic file, the access request being associated with a set of blocks of the electronic file;

determine that none of the set of blocks are locked by a decryption process that is removing one or more levels of encryption of the block; and

allow the access request.

17. The non-transitory computer readable medium of claim 13 , having executable instructions operable to cause the apparatus to:

receive an access request by a computer program authorized to access the electronic file, the access request being associated with a set of blocks of the electronic file;

determine a block from the set of blocks is locked by a decryption process that is removing one or more levels of encryption of the block; and

block the access request until all blocks in the set of blocks are decrypted to remove the one or more levels of encryption.

Assignments (17)
CORRECTIVE ASSIGNMENT TO CORRECT THE PROPERTY 14633493 WHICH WAS ENTERED INCORRECTLY AS 14633793 PREVIOUSLY RECORDED ON REEL 71176 FRAME 315. ASSIGNOR(S) HEREBY CONFIRMS THE FIRST LIEN NEWCO SECURITY AGREEMENT. Recorded Nov 10, 2025
From: PULSE SECURE, LLC; IVANTI, INC.; IVANTI US LLC; IVANTI SECURITY HOLDINGS LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 073818/0515 →
FIRST LIEN NEWCO SECURITY AGREEMENT Recorded May 5, 2025
From: PULSE SECURE, LLC; IVANTI, INC.; IVANTI US LLC; IVANTI SECURITY HOLDINGS LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 071176/0315 →
SECURITY INTEREST Recorded May 2, 2025
From: IVANTI, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071164/0482 →
NOTICE OF SUCCESSION OF AGENCY FOR SECURITY INTEREST AT REEL/FRAME 054665/0873 Recorded Apr 29, 2025
From: BANK OF AMERICA, N.A., AS RESIGNING AGENT
To: ALTER DOMUS (US) LLC, AS SUCCESSOR AGENT
Reel/Frame 071123/0386 →
SECURITY INTEREST Recorded Dec 9, 2020
From: CELLSEC, INC.; PULSE SECURE, LLC; IVANTI, INC.; MOBILEIRON, INC.; IVANTI US LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 054665/0062 →
SECURITY INTEREST Recorded Dec 9, 2020
From: CELLSEC, INC.; PULSE SECURE, LLC; INVANTI, INC.; MOBILEIRON, INC.; INVANTI US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 054665/0873 →
RELEASE OF SECURITY INTEREST : RECORDED AT REEL/FRAME - 43971/0495 Recorded Dec 1, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: APPSENSE US LLC
Reel/Frame 054560/0278 →
RELEASE OF SECURITY INTEREST : RECORDED AT REEL/FRAME - 43971/0549 Recorded Dec 1, 2020
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: APPSENSE US LLC
Reel/Frame 054560/0389 →
CHANGE OF NAME Recorded Mar 5, 2019
From: APPSENSE US LLC
To: IVANTI US LLC
Reel/Frame 048511/0832 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Sep 15, 2017
From: APPSENSE US LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 043971/0495 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Sep 15, 2017
From: APPSENSE US LLC
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 043971/0549 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 25, 2017
From: APPSENSE LIMITED
To: APPSENSE US LLC
Reel/Frame 043406/0821 →
RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT R/F 038333/0821 Recorded Sep 28, 2016
From: JEFFERIES FINANCE LLC
To: APPSENSE LIMITED
Reel/Frame 040171/0172 →
RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT R/F 038333/0879 Recorded Sep 28, 2016
From: JEFFERIES FINANCE LLC
To: APPSENSE LIMITED
Reel/Frame 040169/0981 →
SECURITY INTEREST Recorded Apr 20, 2016
From: APPSENSE LIMITED
To: JEFFERIES FINANCE LLC
Reel/Frame 038333/0821 →
SECURITY INTEREST Recorded Apr 20, 2016
From: APPSENSE LIMITED
To: JEFFERIES FINANCE LLC
Reel/Frame 038333/0879 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 18, 2016
From: BRANTON, PAUL KEITH; DELIVETT, PAUL
To: APPSENSE LIMITED
Reel/Frame 037764/0260 →