IP Library Granted Patent US 11,606,214
Granted Patent B2
US 11,606,214 · App. 17/160,263 · Granted Mar 14, 2023

Decryption and variant processing

Inventors: David Blankenbeckler (Longmont, CO); Nikola Kolarovic (Novi Sad, RS); Ninoslav Zmukic (Novi Sad, RS); Tihomir Andjelic (Novi Sad, RS)
Assignee: Western Digital Technologies, Inc.
H04L9/3247G06F9/46G06F12/1408G06F21/10G06F21/602G06F21/6218G06F21/72H04L9/0618H04L9/0897H04L9/3268H04L63/0428H04L63/10H04L63/164H04N19/00H04N19/436H04N19/467H04N21/4334H04N21/4344H04N21/4405H04N21/4435H04N21/4627H04N21/4884G06F12/1441G06F2212/1052G06F2221/0733G06F2221/2107H04L2209/603H04L2209/608
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 11,606,214
App. No.
17/160,263
Granted
Mar 14, 2023
Kind
B2
Abstract

A plurality of byte ranges forms a sample for content output from a player device, and includes at least one double-encrypted byte range. The plurality of byte ranges is stored in a secured memory, and the at least one double-encrypted byte range is partially decrypted to generate at least one decrypted singe-encrypted byte range. The plurality of byte ranges is stored in an unsecured memory using the at least one decrypted single-encrypted byte range in place of the at least one double-encrypted byte range.

Claims (51)

1. A player device, comprising:

an unsecured memory;

a secured memory; and

a secured processor configured to:

receive a plurality of byte ranges from the unsecured memory including at least one double-encrypted byte range and at least one of a single-encrypted byte range and an unencrypted byte range, the plurality of byte ranges forming a sample for content output from the player device;

store the received plurality of byte ranges in the secured memory;

partially decrypt the at least one double-encrypted byte range to generate at least one decrypted single-encrypted byte range; and

store in the unsecured memory the plurality of byte ranges using the at least one decrypted single-encrypted byte range in place of the at least one double-encrypted byte range and including the at least one of the single-encrypted byte range and the unencrypted byte range.

2. The player device of claim 1 , wherein the secured processor is further configured to order the plurality of byte ranges before storing in the unsecured memory, the plurality of byte ranges including the at least one decrypted single-encrypted byte range.

3. The player device of claim 1 , further comprising an unsecured processor configured to perform Network Abstraction Layer (NAL) repacking of the plurality of byte ranges including the at least one decrypted single-encrypted byte range stored in the unsecured memory.

4. The player device of claim 1 , wherein the secured processor is further configured to:

receive from the unsecured memory the plurality of byte ranges including the at least one decrypted single-encrypted byte range;

fully decrypt the plurality of byte ranges; and

store the fully decrypted plurality of byte ranges in the secured memory.

5. The player device of claim 4 , further comprising a decoder configured to:

access from the secured memory the fully decrypted plurality of byte ranges; and

decode the fully decrypted plurality of byte ranges.

6. The player device of claim 5 , wherein the decoder is further configured to access the fully decrypted plurality of byte ranges from the secured memory using Inter-Process Communication (IPC) on a secure audio/video path.

7. The player device of claim 1 , further comprising an unsecured processor configured to execute a producer thread before the secured processor receives the plurality of byte ranges from the unsecured memory, the producer thread including at least one of caching a file received by the player device, decompressing the received file, reading sample metadata from the decompressed file, reading sample data including the plurality of byte ranges from the decompressed file, and storing the sample data in a read buffer of the unsecured memory.

8. The player device of claim 7 , wherein the unsecured processor is further configured to execute part of a consumer thread, the consumer thread including obtaining sample data from the read buffer in a particular order for further execution of the consumer thread by the secured processor.

9. A method of operating a player device, the method comprising using a secured processor of the player device for:

receiving a plurality of byte ranges from an unsecured memory of the player device, the plurality of byte ranges including at least one double-encrypted byte range and at least one of a single-encrypted byte range and an unencrypted byte range, and wherein the plurality of byte ranges forms a sample for content output from the player device;

storing the received plurality of byte ranges in a secured memory of the player device;

partially decrypting the at least one double-encrypted byte range to generate at least one decrypted single-encrypted byte range; and

storing in the unsecured memory the plurality of byte ranges using the at least one decrypted single-encrypted byte range in place of the at least one double-encrypted byte range and including the at least one of the single-encrypted byte range and the unencrypted byte range.

10. The method of claim 9 , further comprising ordering the plurality of byte ranges using the secured processor before storing in the unsecured memory, the plurality of byte ranges including the at least one decrypted single-encrypted byte range.

11. The method of claim 9 , further comprising using an unsecured processor of the player device for performing Network Abstraction Layer (NAL) repacking of the plurality of byte ranges including the at least one decrypted single-encrypted byte range stored in the unsecured memory.

12. The method of claim 9 , further comprising using the secured processor for:

receiving from the unsecured memory the plurality of byte ranges including the at least one decrypted single-encrypted byte range;

fully decrypting the plurality of byte ranges; and

storing the fully decrypted plurality of byte ranges in the secured memory.

13. The method of claim 12 , further comprising using a decoder of the player device for:

accessing from the secured memory the fully decrypted plurality of byte ranges; and

decoding the fully decrypted plurality of byte ranges.

14. The method of claim 13 , wherein the decoder accesses the fully decrypted plurality of byte ranges from the secured memory using Inter-Process Communication (IPC) on a secure audio/video path.

15. The method of claim 9 , further comprising using an unsecured processor of the player device for executing a producer thread before the secured processor receives the plurality of byte ranges from the unsecured memory, the producer thread including at least one of caching a file received by the player device, decompressing the received file, reading sample metadata from the decompressed file, reading sample data including the plurality of byte ranges from the decompressed file, and storing the sample data in a read buffer of the unsecured memory.

16. The method of claim 15 , further comprising using the unsecured processor for executing part of a consumer thread, the consumer thread including obtaining sample data from the read buffer in a particular order for further execution of the consumer thread by the secured processor.

17. A player device, comprising:

an unsecured memory;

a secured memory; and

means for:

receiving a plurality of byte ranges from the unsecured memory including at least one double-encrypted byte range and at least one of a single-encrypted byte range and an unencrypted byte range, the plurality of byte ranges forming a sample for content output from the player device;

storing the received plurality of byte ranges in the secured memory;

partially decrypting the at least one double-encrypted byte range to generate at least one decrypted single-encrypted byte range; and

storing in the unsecured memory the plurality of byte ranges using the at least one decrypted single-encrypted byte range in place of the at least one double-encrypted byte range and including the at least one of the single-encrypted byte range and the unencrypted byte range.

18. The player device of claim 17 , further comprising means for ordering the plurality of byte ranges before storing in the unsecured memory, the plurality of byte ranges including the at least one decrypted single-encrypted byte range.

19. The player device of claim 17 , further comprising an unsecured processor configured to perform Network Abstraction Layer (NAL) repacking of the plurality of byte ranges including the at least one decrypted single-encrypted byte range stored in the unsecured memory.

20. The player device of claim 17 , further comprising means for:

receiving from the unsecured memory the plurality of byte ranges including the at least one decrypted single-encrypted byte range;

fully decrypting the plurality of byte ranges; and

storing the fully decrypted plurality of byte ranges in the secured memory.

Assignments (10)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
RELEASE OF SECURITY INTEREST AT REEL 056285 FRAME 0292 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0001 →
SECURITY INTEREST Recorded May 19, 2021
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 056285/0292 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 27, 2021
From: BLANKENBECKLER, DAVID; KOLAROVIC, NIKOLA; ZMUKIC, NINOSLAV; ANDJELIC, TIHOMIR
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 055054/0229 →