Sample-parallel sparse cipher-block chaining (CBCS) encryption

US12489605B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-12489605-B2
Application numberUS-202117535231-A
CountryUS
Kind codeB2
Filing dateNov 24, 2021
Priority dateNov 25, 2020
Publication dateDec 2, 2025
Grant dateDec 2, 2025

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A content provider in a content distribution system may be configured to reduce latency in a content distribution system by storing multiple frames from a sequence of frames in different buffers and encrypting, in parallel, the frames stored in the different buffers. For example, the content provider may encrypt each buffer via a different instruction pipeline of a processor.

First claim

Opening claim text (preview).

What is claimed: 1 . A method comprising: receiving a segment of a content asset, wherein the segment comprises a sequence of video frames; storing each of a first plurality of video frames of the sequence in a different one of a plurality of buffers; encrypting, in parallel, at least a portion of each of the first plurality of video frames stored in the plurality of different buffers, wherein the encrypting, in parallel, the at least the portion of each video frame stored in the plurality of different buffers comprises processing each buffer via a different instruction pipeline of a processor, and wherein the processing of at least one buffer in one instruction pipeline is offset from the processing of another buffer in another pipeline by one or more instruction cycles of the processor. 2 . The method of claim 1 , further comprising: upon completion of encrypting the at least the portion of the video frame stored in one of the buffers, storing in that one buffer a next video frame of a second plurality of video frames of the sequence; and encrypting at least a portion of the next video frame stored in the one buffer, wherein the encrypting of the at least the portion of the next video frame continues in parallel with the encrypting of the at least the portions of the video frames stored in the other buffers. 3 . The method of claim 1 , wherein encrypting, in parallel, the at least the portion of each video frame stored in the plurality of different buffers comprises providing an initialization vector to an encryption function. 4 . The method of claim 3 , wherein each buffer contains a 16-byte block and the encryption function includes a pattern or encrypted bytes. 5 . The method of claim 3 , wherein the encryption function is an Advanced Encryption Standard Cipher Block Chaining (AES-CBC) encryption function. 6 . The method of claim 1 , wherein the segment of the content asset is an International Organization for Standardization base media file format (ISO-BMFF) segment. 7 . The method of claim 1 , wherein the sequence of video frames comprises a plurality of bytes stored at an original location, wherein encrypting, in parallel, the at least the portion of each video frame stored in the plurality of different buffers comprises copying the plurality of bytes from the original location to a non-sparse buffer, and wherein the non-sparse buffer is aligned with a central processing unit (CPU) cache. 8 . A method comprising: receiving, at a central processing unit (CPU), a segment of a content asset, wherein the segment comprises a sequence of video frames; storing, by the CPU, each of a plurality of video frames of the sequence in a different one of a plurality of buffers, wherein a first video frame of the plurality of video frames is stored in a first buffer of the plurality of buffers and a second video frame of the plurality of video frames is stored in a second buffer of the plurality of buffers; providing, by a first instruction pipeline of the CPU at a first clock cycle of the CPU, the first buffer to an encryption function; and providing, by a second instruction pipeline of the CPU at a second clock cycle of the CPU, the second buffer to the encryption function, wherein encryption of the first video frame is performed simultaneously to encryption of the second video frame. 9 . The method of claim 8 , wherein a third video frame of the plurality of video frames is stored in a third buffer of the plurality of buffers, and wherein the method further comprises providing, by a third instruction pipeline of the CPU at a third clock cycle of the CPU, the third buffer to the encryption function, wherein encryption of the third video frame is performed simultaneously to encryption of the first video frame. 10 . The method of claim 9 , wherein a fourth video frame of the plurality of video frames is stored in a fourth buffer of the plurality of buffers, further comprising providing, by a fourth instruction pipeline of the CPU at a fourth clock cycle of the CPU, the fourth buffer to the encryption function, wherein encryption of the fourth video frame is performed simultaneously to encryption of the first video frame. 11 . The method of claim 8 , wherein a third video frame of the plurality of video frames is stored in the second buffer of the plurality of buffers, further comprising providing, by the second instruction pipeline of the CPU at a third clock cycle of the CPU, the second buffer to the encryption function, wherein encryption of the third video frame is performed simultaneously to encryption of the first video frame. 12 . The method of claim 8 , further comprising: providing, by the first instruction pipeline of the CPU at the first clock cycle of the CPU, a first initialization vector to the encryption function; and providing, by the second instruction pipeline of the CPU at the second clock cycle of the CPU, a second initialization vector to the encryption function. 13 . The method of claim 8 , wherein each buffer contains a 16-byte block and the encryption function includes a pattern of encrypted bytes. 14 . The method of claim 8 , wherein the encryption function is an Advanced Encryption Standard Cipher Block Chaining (AES-CBC) encryption function. 15 . The method of claim 8 , wherein the segment of the content asset is an International Organization for Standardization base media file format (ISO-BMFF) segment. 16 . The method of claim 8 , wherein at least one of the first buffer and the second buffer is a non-sparse buffer and the non-sparse buffer is aligned with a CPU cache. 17 . A non-transitory computer-readable medium comprising instructions that, when executed, cause: receiving a segment of a content asset, wherein the segment comprises a sequence of video frames; storing each of a first plurality of video frames of the sequence in a different one of a plurality of buffers; encrypting, in parallel, at least a portion of each of the first plurality of video frames stored in the plurality of different buffers, wherein the encrypting, in parallel, the at least the portion of each video frame stored in the plurality of different buffers comprises processing each buffer via a different instruction pipeline of a processor, and wherein the processing of at least one buffer in one instruction pipeline is offset from the processing of another buffer in another pipeline by one or more instruction cycles of the processor. 18 . The non-transitory computer-readable medium of claim 17 , wherein the instructions, when executed, further cause: upon completion of encrypting the at least the portion of the video frame stored in one of the buffers, storing in that one buffer a next video frame of a second plurality of video frames of the sequence; and encrypting at least a portion of the next video frame stored in the one buffer, wherein the encrypting of the at least the portion of the next video frame continues in parallel with the encrypting of the at least the portions of the video frames stored in the other buffers. 19 . The non-transitory computer-readable medium of claim 17 , wherein the instructions that, when executed, cause encrypting, in parallel, the at least the portion of each video frame stored in the plurality of different buffers, cause providing an initialization vector to an encryption function. 20 . The non-transitory computer-readable medium of claim 19 , wherein each buffer contains a 16-byte block and the encryption function includes a pattern or e

Assignees

Inventors

Classifications

  • by decomposing the content in the time domain, e.g. in time segments · CPC title

  • by partially encrypting, e.g. encrypting the ending portion of a movie · CPC title

  • involving video stream encryption · CPC title

  • Parallelization or pipelining, e.g. for accelerating processing of cryptographic operations · CPC title

  • using hash chains, e.g. blockchains or hash trees · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US12489605B2 cover?
A content provider in a content distribution system may be configured to reduce latency in a content distribution system by storing multiple frames from a sequence of frames in different buffers and encrypting, in parallel, the frames stored in the different buffers. For example, the content provider may encrypt each buffer via a different instruction pipeline of a processor.
Who is the assignee on this patent?
Comcast Cable Comm Llc
What technology area does this patent fall under?
Primary CPC classification H04L9/0637. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Dec 02 2025 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 7 related publications on this page (citations in our corpus or others sharing the same primary CPC).