IP Library Granted Patent US 8,189,769
Granted Patent B2
US 8,189,769 · App. 11/981,197 · Granted May 29, 2012

Systems and methods for encrypting data

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 8,189,769
App. No.
11/981,197
Granted
May 29, 2012
Kind
B2
Abstract

Data encryption techniques are presented. According to an embodiment of a method, a cryptographic hash of unencrypted data for data block X−1 is generated, and a hash of an encryption key is generated. An initialization vector for data block X is generated using the cryptographic hash and the hash of the encryption key. Data block X−1 and data block X are logically contiguous and data block X−1 logically precedes data block X. Encryption data for data block X is generated from unencrypted data for data block X using the initialization vector.

Claims (39)

1. A method implemented using processing circuitry, comprising:

generating, using the processing circuitry, a cryptographic hash of unencrypted data for data block X−1;

generating, using the processing circuitry, a hash of an encryption key;

generating, using the processing circuitry, an initialization vector for data block X using the cryptographic hash and the hash of the encryption key, wherein data block X−1 and data block X are logically contiguous and data block X−1 logically precedes data block X; and

generating, using the processing circuitry, encryption data for data block X from unencrypted data for data block X using the initialization vector.

2. The method of claim 1 , further comprising decrypting the encrypted data for data block X, including generating the cryptographic hash of unencrypted data for data block X−1, generating the hash of the encryption key, and generating the initialization vector for data block X using the hash of the encryption key and the cryptographic hash of unencrypted data for data block X−1.

3. The method of claim 1 , wherein generating the initialization vector includes applying an encryption salt-sector initialization vector technique using the hash of the encryption key and the cryptographic hash of the unencrypted data for data block X−1.

4. The method of claim 1 , wherein generating encryption data for data block X includes performing an XOR function on the initialization vector for data block X and the unencrypted data for data block X.

5. The method of claim 1 , further comprising decrypting the encrypted data for data block X, including determining the initialization vector for data block X using the cryptographic hash of the unencrypted data for data block X−1 and the hash of the encryption key, and using the initialization vector for data block X to decrypt the encrypted data for data block X into unencrypted data for data block X.

6. The method of claim 1 , wherein a data block M is logically between a first data block M−1 logically preceding data block M and a second data block M+1 logically subsequent to data block M, the method further comprising:

deleting data block M; and

encrypting data block M+1, including generating a cryptographic hash of unencrypted data for data block M−1, generating an initialization vector for data block M+1 using the cryptographic hash of unencrypted data for data block M−1 and the hash of the encryption key, and generating encrypted data for data block M+1 from unencrypted data for data block M+1 using the initialization vector.

7. The method of claim 1 , wherein a data block N−1 is logically contiguous with data block N+1, the method further comprising:

inserting data block N between data block N−1 and data block N+1, wherein data block N is logically subsequent to data block N−1 and is logically precedent to data block N+1;

encrypting data block N, including generating a cryptographic hash of unencrypted data for data block N−1, generating an initialization vector for data block N using the cryptographic hash of unencrypted data for data block N−1 and the hash of the encryption key, and generating encrypted data for data block N from unencrypted data for data block N using the initialization vector for data block N; and

encrypting data block N+1, including generating a cryptographic hash of unencrypted data for data block N, generating an initialization vector for data block N+1 using the cryptographic hash of unencrypted data for data block N and the hash of the encryption key, and generating encrypted data for data block N+1 from unencrypted data for data block N+1 using the initialization vector for data block N+1.

8. The method of claim 1 , wherein a data block M is logically between a first data block M−1 logically preceding data block M and a second data block M+1 logically subsequent to data block M and a data block N−1 is logically contiguous with data block N+1, the method further comprising:

deleting data block M and inserting data block N between data block N−1 and data block N+1;

encrypting data block M+1, including generating a cryptographic hash of unencrypted data for data block M−1, generating an initialization vector for data block M+1 using the cryptographic hash of unencrypted data for data block M−1 and the hash of the encryption key, and generating encrypted data for data block M+1 from unencrypted data for data block M+1 using the initialization vector;

encrypting data block N, including generating a cryptographic hash of unencrypted data for data block N−1, generating an initialization vector for data block N using the cryptographic hash of unencrypted data for data block N−1 and the hash of the encryption key, and generating encrypted data for data block N from unencrypted data for data block N using the initialization vector for data block N; and

encrypting data block N+1, including generating a cryptographic hash of unencrypted data for data block N, generating an initialization vector for data block N+1 using the cryptographic hash of unencrypted data for data block N and the hash of the encryption key, and generating encrypted data for data block N+1 from unencrypted data for data block N+1 using the initialization vector for data block N+1.

9. The method of claim 1 , further comprising:

performing a differential algorithm to identify different encrypted data blocks for two encrypted files, including to identify logically successive encrypted data blocks that are different bounded by a logically precedent encrypted data block (E Y ) and a logically subsequent encrypted data block (E Z ) which are not different for the two encrypted files.

10. A method implemented using processing circuitry, comprising:

generating, using the processing circuitry, a cryptographic hash of unencrypted data for data block X−1;

generating, using the processing circuitry, a hash of an encryption key;

generating, using the processing circuitry, an initialization vector for data block X using the cryptographic hash and the hash of the encryption key, wherein data block X−1 and data block X are logically contiguous and data block X−1 logically precedes data block X; and

decrypting, using the processing circuitry, an encrypted data block X into plaintext using the initialization vector.

11. The method of claim 10 , wherein generating the initialization vector includes applying an encryption salt-sector initialization vector technique using the hash of the encryption key and the cryptographic hash of the unencrypted data for data block X−1.

12. A system, comprising:

at least one machine and at least one machine-accessible and readable medium;

a cipher service, a differential service, and an initialization vector service implemented in the at least one machine-accessible and readable medium and to process on the at least one machine,

wherein the initialization vector service is to generate initialization vectors, the differential service is to provide functions used in comparing two files to identify differences in data blocks, and the cipher service is to transform unencrypted data into encrypted data and transform encrypted data into unencrypted data using the initialization vectors, and

wherein the system is configured to use the cipher service, the differential service and the initialization service to implement a process that includes:

generating a cryptographic hash of unencrypted data for data block X−1;

generating a hash of an encryption key;

generating an initialization vector for data block X using the cryptographic hash and the hash of the encryption key, wherein data block X−1 and data block X are logically contiguous and data block X−1 logically precedes data block X; and

generating encryption data for data block X from unencrypted data for data block X using the initialization vector.

13. The system of claim 12 , wherein the differential service is to compare two encrypted files, identify that an encrypted data block X is different for the files, and identify that, if decrypted versions of the two files were compared, the difference in encrypted data block X is reflected in a difference in decrypted data block X−1, decrypted data block X, or both decrypted data block X−1 and encrypted data block X.

Assignments (7)
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 028252/0216 Recorded Nov 24, 2014
From: CREDIT SUISSE AG
To: NOVELL, INC.
Reel/Frame 034470/0680 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 028252/0316 Recorded Nov 24, 2014
From: CREDIT SUISSE AG
To: NOVELL, INC.
Reel/Frame 034469/0057 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2012
From: CPTN HOLDINGS LLC
To: APPLE INC.
Reel/Frame 028856/0230 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 24, 2012
From: NOVELL, INC.
To: CPTN HOLDINGS LLC
Reel/Frame 028841/0047 →
GRANT OF PATENT SECURITY INTEREST SECOND LIEN Recorded May 23, 2012
From: NOVELL, INC.
To: CREDIT SUISSE AG, AS COLLATERAL AGENT
Reel/Frame 028252/0316 →
GRANT OF PATENT SECURITY INTEREST FIRST LIEN Recorded May 23, 2012
From: NOVELL, INC.
To: CREDIT SUISSE AG, AS COLLATERAL AGENT
Reel/Frame 028252/0216 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 30, 2008
From: RAMASAMY, ARUL SELVAN; SUDHAKAR, GOSUKONDA NAGA VENKATA SATYA
To: NOVELL, INC.
Reel/Frame 020443/0214 →