US 12,463,948 B2
Distributed data content protection
Ville Ollikainen, Vihti (FI); Markku Kylanpaa, Helsinki (FI); Anni Karinsalo, Oulu (FI); and Pekka Koskela, Oulu (FI)
Assigned to Adeia Guides Inc., San Jose, CA (US)
Filed by Adeia Guides Inc., San Jose, CA (US)
Filed on Dec. 23, 2022, as Appl. No. 18/088,295.
Prior Publication US 2024/0214361 A1, Jun. 27, 2024
Int. Cl. H04L 9/40 (2022.01); H04L 67/1097 (2022.01)
CPC H04L 63/0435 (2013.01) [H04L 67/1097 (2013.01)] 20 Claims
OG exemplary drawing
 
1. A method for encrypting data in a distributed storage environment, the method comprising:
dividing a media item into segments, the segments including a first segment and a subsequent segment;
encoding the at least first and subsequent segments as at least a first representation and a second representation, wherein the first representation and the second representation are encoded at different bitrates;
generating a content encryption key, a raw initialization value, and a first continuity reference;
generating from the first continuity reference and the raw initialization value, a first master initialization vector for the first segment and a first segment continuity reference;
generating a first representation-specific initialization vector for the first representation of the first segment, and a second representation-specific initialization vector for the second representation of the first segment, each based upon the first master initialization vector;
encrypting the first representation of the first segment with the first representation-specific initialization vector and the content encryption key, and the second representation of the first segment with the second representation-specific initialization vector and the content encryption key, to generate an encrypted first segment;
generating from the first segment continuity reference a second master initialization vector for the subsequent segment and a subsequent segment continuity reference;
generating a third representation-specific initialization vector for the first representation of the subsequent segment and a fourth representation-specific initialization vector for the second representation of the subsequent segment, each based upon the second master initialization vector;
encrypting at least the first representation of the subsequent segment with the third representation-specific initialization vector and the content encryption key, and the second representation of the subsequent segment with the fourth representation-specific initialization vector and the content encryption key, to generate an encrypted subsequent segment;
generating a segment reference list of the encrypted segments into which the media item has been divided and information about the representations into which each segment has been encoded;
publishing, to a secure storage location, the segment reference list, the content encryption key, the raw initialization value, and the continuity reference; and
outputting, to the distributed storage environment at least the encrypted first segment and the encrypted subsequent segment.