Lição
A teoria — Cifrar um bloco em dez (CENC cbcs)
Common Encryption (ISO/IEC 23001-7) permite que um conjunto de ficheiros cifrados sirva a vários sistemas DRM. Cifra amostras de media com AES-128 e mantém a sua estrutura legível. Cada fatia de vídeo codificada é dividida numa parte em claro (o comprimento da unidade NAL, o cabeçalho e o cabeçalho da fatia) e num intervalo protegido a seguir. O esquema cenc executa o AES em modo de contador sobre todos os bytes desse intervalo. O esquema cbcs executa o AES em modo CBC sobre um padrão de blocos inteiros de 16 bytes, um cifrado e nove deixados em claro. Isto repete-se até ao fim do intervalo, e um bloco parcial no final permanece em claro.
O que significa cada símbolo
L- a fatia, uma unidade NAL de fatia codificada, em bytes
h- o cabeçalho em claro: prefixo de comprimento, cabeçalho NAL e cabeçalho da fatia, que a cifragem de subamostras deixa legíveis
B- blocos inteiros de 16 bytes no intervalo protegido P = L − h; o cbcs cifra ⌈B/10⌉ deles
- Pressupõe
- Um único tamanho de fatia para todo o fluxo. Um codificador real escreve fatias grandes para as imagens a partir das quais outras são previstas e pequenas para as restantes. Os números por fatia mantêm-se fatia a fatia, e os números do fluxo descrevem um fluxo de fatias iguais. O cabeçalho em claro tem 32 bytes por omissão, pois esse é o único comprimento que uma especificação fixa: o SAMPLE-AES da Apple deixa em claro o byte de tipo NAL e os 31 bytes seguintes. Um empacotador CENC deixa em claro exatamente os cabeçalhos, que variam de fatia para fatia. Os conjuntos de parâmetros, as mensagens SEI e as caixas MP4 em torno das amostras estão em claro e ficam de fora, pelo que a fração de texto cifrado num ficheiro real é ligeiramente inferior. O áudio é AAC-LC a 48 kHz, 1024 amostras por trama e cifrado. Um serviço que deixe o seu áudio em claro retira igualmente o áudio do trabalho.
- Falha quando
- Como forma de ocultar qualquer coisa que não as imagens. Os cabeçalhos em claro estão ali para serem lidos. Eles revelam o tipo de cada fatia, o tamanho de cada trama e a temporização de todo o fluxo a qualquer pessoa que possua o ficheiro, tenha ou não a chave.
Problema resolvido na íntegra
-
O máximo que um padrão 1:9 pode cifrar em excesso 3 passos
Até que ponto acima de um décimo pode uma fatia ir? Prima Uma fatia por linha MB: 306 bytes, 10,46% texto cifrado. A página imprime uma fatia de cada vez. Descubra a maior fração que o cbcs pode cifrar numa fatia de pelo menos 1.000 bytes com um cabeçalho de 32 bytes, e como esse pior cenário encolhe à medida que as fatias crescem.
Abrir este problema na ferramenta
-
A fração é 16⌈B/10⌉/L. Enquanto ⌈B/10⌉ se mantém, esta apenas diminui à medida que L cresce. Os piores tamanhos são aqueles em que um novo bloco cifrado acabou de começar: um intervalo protegido de exatamente 10k + 1 blocos inteiros, com k + 1 deles cifrados.
-
Nesses tamanhos L = h + 16(10k + 1). Divida, e separe o décimo: o que resta é o excesso acima de 10%, um número fixo de bytes sobre L.
-
Com h = 32 o excesso é de 11,2 bytes sobre L. O primeiro pior tamanho aos ou acima dos 1.000 bytes é k = 6: 61 blocos inteiros, 7 deles cifrados, numa fatia de 1.008 bytes.
Resposta
112 bytes em 1.008, 11,11%. Nada com 1.000 bytes ou mais faz pior. O excesso cai como 1/L: a pior fatia de 10.000 bytes ou mais tem 10.128 bytes com 10,11%, o topo da faixa que a primeira perspetiva cita. A fórmula indica igualmente qual o cabeçalho que põe fim à cifragem excessiva. O excesso é 16 − (h + 16)/10 bytes, o que é zero em h = 144. Uma fatia cujo cabeçalho em claro tenha 144 bytes ou mais nunca tem mais de um décimo de si mesma cifrada, em qualquer tamanho.
-
Referências (3)
- The standard itself. Paywalled; the publisher's preview is openly readable and carries the introduction, the scope and the table of contents, which is where the page's two quotations come from: ISO/IEC 23001-7:2023, Information technology — MPEG systems technologies — Part 7: Common encryption in ISO base media file format files. 4th edition. Preview via iTeh Standards.
- The cbcs rules as a working decryptor applies them, with the standard's §9.6.1 and §10.4.2 quoted in its comments: the pattern over whole blocks, the partial block left clear, and a 0:0 pattern meaning every block: The Chromium Authors, media/cdm/cbcs_decryptor.cc, Chromium source tree (BSD licence).
- HLS's transport-stream format, SAMPLE-AES, which uses the same one-block-in-ten pattern with a fixed 32-byte clear leader. RFC 8216 names it as the format for non-fMP4 segments and 'cbcs' for fMP4 ones: Apple Inc., "MPEG-2 Stream Encryption Format for HTTP Live Streaming", §2.2 H.264 Video Streams and §2.3 Audio Streams. Documentation Archive, updated 2015-10-29.