Ühe bloki krüpteerimine kümnest (CENC cbcs)

Määra videoviilu suurus ja mitu baiti päisest jääb lahtiseks. Leht krüpteerib selle Common Encryptioni standardi järgi. Kasutusel on kas cbcs-i üks blokk kümnest või cenc-i iga bait. Seejärel märgitakse, millised blokid on krüptotekst, ning arvutatakse, mida see tähendab tervele voole ja seadmele, mis peab seda dekrüpteerima.

Interaktiivse simulatsiooni laadimine...

Õppetund

Teooria — Ühe bloki krüpteerimine kümnest (CENC cbcs)

Common Encryption (ISO/IEC 23001-7) võimaldab ühel krüpteeritud failide kogumil teenindada mitut DRM-süsteemi. See krüpteerib meedia valimid AES-128-ga ning hoiab nende struktuuri loetavana. Iga kodeeritud videoviil jagatakse lahtiseks osaks, mis sisaldab NAL-i ühiku pikkust, päist ja viilu päist, ning sellele järgnevaks kaitstud vahemikuks. Skeem cenc käitab AES-i loendurirežiimis selle vahemiku iga baidi peal. Skeem cbcs käitab AES-i CBC režiimis tervete 16-baidiste blokkide mustri peal, kus üks blokk on krüpteeritud ja üheksa jäetakse lahtiseks. Seda mustrit korratakse vahemiku lõpuni ning lõpus olev osaline blokk jääb lahtiseks.

Mida iga sümbol tähendab

L
viil, üks kodeeritud viilu NAL-i ühik, baitides
h
lahtine päis: pikkuse eesliide, NAL-i päis ja viilu päis, mille alamvalimi krüpteerimine jätab loetavaks
B
terved 16-baidised blokid kaitstud vahemikus P = L − h; cbcs krüpteerib neist ⌈B/10⌉
Eeldab
Kogu voo peale on üks viilu suurus. Päris kooder kirjutab suured viilud piltidele, millelt ennustatakse teisi, ning väikesed ülejäänutele. Seega peavad viilupõhised näitajad paika viilu kaupa ning voo näitajad kirjeldavad võrdsete viiludega voogu. Lahtine päis on vaikimisi 32 baiti, kuna see on ainus pikkus, mille ükski spetsifikatsioon fikseerib. Nimelt jätab Apple'i SAMPLE-AES lahtiseks NAL-i tüübi baidi ja sellele järgnevad 31 baiti. CENC-i pakendaja jätab lahtiseks täpselt päised, mis aga erinevad viiluti. Parameetrite komplektid, SEI-sõnumid ja valimeid ümbritsevad MP4 kastid on lahtised ja jäetakse välja, seega on tõelise faili krüptoteksti osakaal veidi väiksem. Heli on krüpteeritud AAC-LC sagedusel 48 kHz, kus kaadris on 1024 valimit. Teenus, mis jätab oma heli lahtiseks, eemaldab heli ka töökoormusest.
Ei kehti, kui
See ei sobi peitma midagi muud peale piltide. Lahtised päised on mõeldud lugemiseks. Need reedavad faili valdajale nii iga viilu tüübi, iga kaadri suuruse kui ka terve voo ajastuse, olgu tal võti või mitte.

Üks blokk kümnest ei võrdu ühe baidiga kümnest 🖖

Vajuta 48-baidine lõik: kolmandik sellest on krüptotekst. Muster algab krüptitud plokiga. Kui kaitstud vahemikus on B tervikplokki, on neist krüptitud ⌈B/10⌉; üheplokilises vahemikus on krüptitud üks plokk. Vajuta Üks lõik makroplokirea kohta: 306 baiti, 10,46%. Redelilt näeb ülejäänut: 100 baidi korral 16,00% ja 200 korral 8,00%. Selle 32-baidise päisega jääb tulemus alates suurusest 10 kB alati 9,95% ja 10,11% vahele. Krüptimata päis ja viimane poolik plokk vähendavad osakaalu, B/10 ülespoole ümardamine suurendab seda. Skeem ise neid mõjusid ei tasakaalusta. Alumisel paneelil on kõik suurused korraga. Tekib saehambuline joon, mille hambad lõigu kasvades kahanevad; kümnendiku juurde koondub tulemus alles siis, kui ühe ploki erinevus enam kuigivõrd ei loe.

Lahtised üheksa kümnendikku on loetamatud selle kümnendiku asukoha tõttu 🖖

Vaata kaadri all olevat plokiriba. Kui krüptimata päisele järgneb vähemalt üks tervikplokk, on päise järel olev esimene bait lõigu suurusest olenemata krüptotekst. Edasi paiknevad krüptimata baidid kuni 144 baidi pikkuste jadadena ning iga sellise jada ees on 16-baidine plokk, mida võtmeta lugeda ei saa. Lõik on entroopiakodeeritud. Dekooder loeb bitte järjest ja saab ühe makroploki lõppemise teada alles seda dekodeerides. Seetõttu ei saa ta loetamatust plokist üle hüpata ja järgmises krüptimata jadas jätkata, vaid peatub juba esimese juures. Kaitstud rajal töödeldakse nii iga kodeeritud lõiku, sealhulgas tugipilte, mille põhjal teisi ennustatakse. Võtmeta pleier saab seega päistest aru, kuid pilte kuvada ei suuda. Päised jäetakse loetavaks meelega. ISO/IEC 23001-7 näeb ette alamvalimite krüptimise, et „võimaldada video elementaarvoogude tavapärast töötlemist ja redigeerimist enne dekrüptimist“.

cbcs säästab üheksa kümnendikku video koormusest, kuid jätab heli oma puutumata 🖖

Vajuta 360p telefonis. Video on endiselt 9,98% ulatuses krüptotekst. Helil puuduvad NAL-i ühikud, mida muster saaks sammhaaval läbida. Seetõttu krüpteeritakse see ilma mustrita, hõlmates iga kaadri igat tervet blokki ehk 98,53% igast AAC kaadrist. Kiiruse 1,5 Mbit/s juures moodustab 128 kbit/s heliriba baitidest 7,86% ja 45,69% AES-i koormusest. Kogu voos teeb cbcs 5,90 korda vähem dekrüpteerimist kui cenc, aga mitte kümme korda vähem. Vajuta 1080p, 5 Mbit/s ning sama heliriba annab 20,15% koormusest, säästes 8,20 korda. Standardi enda põhjendus mustriga krüpteerimisele on, et see "vähendab seadmete arvutusvõimsust, mida on vaja videoradade dekrüpteerimiseks", ning valitud sõna oli sealjuures just nimelt video.

Ülesanne täielikult lahendatud

  1. Maksimum, mida 1:9 muster suudab üle krüpteerida 3 sammu

    Kui palju üle kümnendiku võib üks viil minna? Vajuta Viil makrobloki reale: 306 baiti, 10,46% krüptoteksti. Leht prindib välja ühe viilu korraga. Leia suurim osakaal, mida cbcs suudab krüpteerida vähemalt 1 000-baidises viilus 32-baidise päisega, ning jälgi, kuidas see halvim juhtum viilude kasvades kahaneb.

    Ava see ülesanne tööriistas

    1. Osakaal on 16⌈B/10⌉/L. Kuni ⌈B/10⌉ püsib paigal, langeb see vaid L-i kasvades. Seega on halvimad suurused need, kus uus krüpteeritud blokk on just alanud. See on täpselt 10k + 1 tervest blokist koosnev kaitstud vahemik, millest k + 1 on krüpteeritud.

    2. Nende suuruste juures L = h + 16(10k + 1). Jaga läbi ja eralda kümnendik. Järele jääb 10% ületav osa ehk fikseeritud baidide arv L-i suhtes.

    3. Kui h = 32, on see ülejääk 11,2 baiti L-i kohta. Esimene halvim suurus vähemalt 1 000 baidi juures on k = 6 ehk 1 008-baidises viilus 61 tervet blokki, millest 7 on krüpteeritud.

    Vastus

    112 baiti 1 008-st ehk 11,11% ning ükski 1 000-baidine või suurem viil ei anna halvemat tulemust. Ülejääk langeb suhtes 1/L. Halvim vähemalt 10 000-baidine viil on 10 128 baiti osakaaluga 10,11%, mis on esimeses arusaamas viidatud vahemiku ülempiir. Valem ütleb ka, milline päis lõpetab ülekrüpteerimise. Ülejääk on 16 − (h + 16)/10 baiti, mis annab h = 144 juures nulli. Viil, mille lahtine päis on 144 baiti või pikem, ei saa seega ühelgi suurusel olla üle kümnendiku ulatuses krüpteeritud.

Allikad (3)