IP Library Granted Patent US 10,503,880
Granted Patent B2
US 10,503,880 · App. 15/671,339 · Granted Dec 10, 2019

Method and apparatus for limiting access to data by process or computer function with stateless encryption

Inventors: Ryan D. Walsh (San Francisco, CA); Michael P. Snyder (San Francisco, CA)
G06F21/12G06F21/10G06F21/6218H04L63/101H04L63/102G06F2221/2141H04L2463/101
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,503,880
App. No.
15/671,339
Granted
Dec 10, 2019
Kind
B2
Abstract

Systems and methods related to DRM content usage mechanisms for both online and offline usage of content are disclosed, including systems providing secure access to data regardless of network state or connectivity state to the networked access control mechanism. An access control mechanism having a secondary offline access control mechanism is presented, further including multiple implementations for data encapsulation, as well as providing a method for writes to files and to the filesystem itself by externally created applications with no API or modification to their operation.

Claims (29)

1. A method for stateless encryption or decryption of files associated with a content management system, comprising:

determining, for a string of data, a base block number based on a read/write address and a block size;

setting a start value of a counter based on the base block number and the block size translated from the read/write address;

determining a number of blocks to encrypt or decrypt based on a size of read/write data;

determining a count value of the counter based on the base block number and the number of blocks to encrypt or decrypt;

writing a block number of a first block to an initialization vector (IV) string;

encrypting or decrypting the IV string with an encryption key to generate ciphertext;

logically combining the ciphertext with the first block; and

decrementing the count value of the counter by the block size and repeatedly performing the logically combining steps until a loop count is exhausted to provide the stateless encryption or decryption of files associated with the content management system.

2. The method of claim 1 , wherein the base block number is determined by dividing the block address by the block size.

3. The method of claim 1 , wherein the number of blocks is determined by dividing a read/write size by the block size.

4. The method of claim 1 , wherein the block size is 16 bytes.

5. The method of claim 1 , further comprising, for each block in the number of blocks, writing the block number for a respective block to the IV string, encrypting or decrypting the IV string with the encryption key to generate the ciphertext; logically combining the ciphertext with the respective block, and decrementing the counter by the block size until the counter is zero.

6. The method of claim 5 , further comprising writing the logically combined ciphertext with each block to a file.

7. The method of claim 1 , wherein the ciphertext is logically combined with the first block by an exclusive OR logical combination.

8. A computer-readable storage device for stateless encryption or decryption of files associated with a content management system having instructions stored thereon that, when executed by a processor, cause the processor to:

translate a read/write address to a start value of a counter based on a block size and a base block number;

determine a number of blocks to encrypt or decrypt based on a size of read/write data;

determine a count value of the counter based on the base block number and the number of blocks to encrypt or decrypt;

write a block number of a first block to an initialization vector (IV) string;

encrypt or decrypt the IV string with an encryption key to generate ciphertext;

logically combine the ciphertext with the first block; and

decrement the count value of the counter by the block size and repeatedly performing the logically combining steps until a loop count is exhausted to provide the stateless encryption or decryption of files associated with the content management system.

9. The computer-readable storage device of claim 8 , wherein the read/write address is algebraically translated to the counter value by dividing the read/write address by a block size.

10. The computer-readable storage device of claim 8 , wherein the number of blocks is determined by dividing a read/write size by a block size.

11. The computer-readable storage device of claim 10 , wherein the block size is 16 bytes.

12. The computer-readable storage device of claim 8 , further comprising instructions stored thereon that, when executed by the processor, cause the processor to, for each block in the number of blocks, write the block number for a respective block to the IV string, encrypt or decrypt the IV string with the encryption key to generate the ciphertext; logically combine the ciphertext with the respective block, and decrement the counter until the counter is zero.

13. The computer-readable storage device of claim 12 , further comprising instructions stored thereon that, when executed by the processor, cause the processor to write the logically combined ciphertext with each block to a file.

14. The computer-readable storage device of claim 8 , wherein the ciphertext is logically combined with the first block by an exclusive OR logical combination.

Assignments (3)
SECURITY INTEREST Recorded Dec 17, 2020
From: BEATPORT, LLC
To: BLUE TORCH FINANCE, LLC, AS AGENT
Reel/Frame 054683/0712 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2020
From: PULSELOCKER, INC.
To: BEATPORT, LLC
Reel/Frame 053207/0815 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2017
From: WALSH, RYAN D.; SNYDER, MICHAEL P.
To: PULSELOCKER, INC.
Reel/Frame 043227/0980 →
Continuity (4)
Continuation 13773600 · Feb 21, 2013
Provisional Application 61601491 · Feb 21, 2012
Provisional Application 61699297 · Sep 11, 2012
Related Publication 20170357786A1 · Dec 14, 2017