HDCP

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 31 ianuarie 2020; verificările necesită 11 modificări .

HDCP ( High-bandwidth Digital Content Protection  ) este o tehnologie de protecție a conținutului media dezvoltată de Intel  [ 1] și concepută pentru a preveni copierea ilegală a videoclipurilor de înaltă calitate transmise prin interfețe DVI (HDCP este o opțiune opțională pentru această interfață [2] ), DisplayPort (HDCP este opțional pentru această interfață), HDMI , GVIF sau UDI . Semnalul video protejat poate fi redat numai pe echipamente care acceptă HDCP.

Versiunea 1.x a sistemului de criptare HDCP a fost în cele din urmă spart în 2010 (cheia principală a sistemului a fost restaurată) [3] [4] .

Tehnologie

HDCP este conceput pentru a proteja transmisia de conținut media între un transmițător HDCP și un receptor HDCP. Tehnologia prevede, de asemenea, utilizarea repetitoarelor HDCP cu porturi securizate pentru fluxul de date în aval (de la furnizor la clientul serviciului). Sistemul poate avea până la șapte niveluri de repetoare HDCP și până la 128 de dispozitive compatibile HDCP.

Sistemul de protecție este format din trei componente principale:

Găsirea matricei secrete a DCP LLC

Pe 14 septembrie 2010, mai multe media online (ZDNet, Engadget) au raportat faptul publicării deschise a cheii master HDCP, cu care puteți crea chei private pentru dispozitivele HDCP ( chei private ale dispozitivului ) fără ajutorul infrastructurii cheii HDCP operator ( The Digital Content Protection LLC ). Odată cu publicarea cheii principale, toate măsurile de revocare a cheilor de dispozitiv au fost neutralizate, deoarece poate fi întotdeauna generată una nouă în locul vechii chei de dispozitiv (revocată) [5] [6] . Nu este complet clar cum a fost obținută cheia principală, se știe că publicarea cheii, împreună cu instrucțiunile de utilizare, a avut loc prin Twitter și pastebin . Engadget crede că atacatorul ar fi folosit metoda lui Crosby (2001).

2 zile mai târziu, pe 16 septembrie, Intel (creatorul HDCP) a confirmat că această cheie principală era reală și că protecția HDCP fusese efectiv spartă [3] [7] [8] . Intel amenință că va lua măsuri legale împotriva oricui produce dispozitive hardware care ocolesc protecția HDCP [9] .

Protocol de autentificare

Un protocol de autentificare este utilizat între un transmițător HDCP și un receptor HDCP pentru a verifica dacă acesta din urmă este un dispozitiv căruia i se permite să primească conținutul corespunzător . Confirmare - cunoașterea unui set secret de chei. Fiecare dispozitiv HDCP este furnizat cu un set unic de patruzeci de chei secrete pe 56 de biți, numite  DPK-uri ( chei private pentru dispozitive ), obținute de la DCP LLC . În timpul comunicării, dispozitivele creează un secret partajat care nu poate fi ascultat în timpul comunicării, iar acest secret este apoi folosit ca o cheie simetrică pentru a decripta conținutul HDCP destinat dispozitivului autentificat.

Fiecare dispozitiv HDCP stochează, pe lângă cheile private ale dispozitivului, identificatorul corespunzător de 40 de biți - KSV ( vectorul de selecție a cheii în engleză  , vectorul de selecție a cheii), care, ca și DPK, îl primește de la DCP LLC.

Protocolul de autentificare poate fi împărțit în trei părți:

Prima parte a protocolului de autentificare

Figura prezintă prima parte a protocolului de autentificare. În primul pas, transmițătorul HDCP ( dispozitivul A ) trimite un mesaj de declanșare către receptorul HDCP ( dispozitivul B ). Mesajul conține KSV ( Aksv ) al emițătorului și un număr pseudo-aleatoriu de 64 de biți ( An ) (numărul este generat de funcția hdcpRngCipher ).

Transmițătorul poate începe procesul de autentificare în orice moment, chiar dacă cel precedent tocmai s-a încheiat.

În al doilea pas, receptorul HDCP răspunde cu un mesaj cu KSV ( Bksv ) al receptorului și un bit REPEATER care indică dacă dispozitivul B este un repetor sau nu. Transmițătorul HDCP verifică dacă Aksv conține exact 20 de zerouri și 20 de unități și nu este pe lista neagră.

În această etapă, în ambele dispozitive se calculează un Km și Km' secret comun pe 56 de biți .

Calculul se face astfel:

Din setul DPK, cheile sunt însumate în funcție de reprezentarea biților a KSV-ului primit: dacă bitul este egal cu unu, atunci se folosește cheia corespunzătoare. Cheile sunt adăugate modulo fără depășire.

Exemplu:

Să presupunem că Bksv este 0x5A3. Reprezentarea binară este 10110100011.
Prin urmare, Dispozitivul A își adună cheile secrete la pozițiile 0, 1, 5, 7, 8, 10 și calculează Km secret partajat .

Dispozitivul B face un calcul similar folosind propriul set de chei secrete și vectorul de alegere primit de la dispozitivul A pentru a calcula Km' .

Al treilea pas folosește funcția hdcpBlockCipher pentru a calcula Ks , M0 , R0 . Valorile de declanșare pentru ca această funcție să funcționeze sunt Km (sau Km' ) și concatenarea bitului REPEATER cu An ( bitul REPEATER indică faptul că receptorul HDCP acceptă transmiterea ulterioară a datelor HDCP, adică este un repetitor) .

Dacă autentificarea a avut succes, atunci R0 = R0' , altfel sunt inegale în majoritatea cazurilor. Mai departe, cu ajutorul lui Ri' obținut în timpul celei de-a treia părți a protocolului, se va putea detecta că autentificarea a eșuat, în cazul în care valoarea lui R0 a indicat în mod eronat succesul autentificării.

A doua parte a protocolului de autentificare

A doua parte a protocolului de autentificare este necesară dacă receptorul HDCP este un repetor HDCP. Transmițătorul HDCP execută a doua parte a protocolului numai atunci când bitul REPEATER este setat , ceea ce înseamnă că receptorul HDCP este un repetor HDCP. Această parte a protocolului listează toate dispozitivele KSV conectate la repetorul HDCP în aval: porturi protejate de HDCP, repetoare HDCP, receptoare HDCP. Această listă este reprezentată ca un set contigu de octeți, în care fiecare KSV ocupă 5 octeți scriși în ordine directă.

Lungimea totală a listei KSV = 5 octeți * numărul de dispozitive HDCP active conectate

Porturile protejate de HDCP cu dispozitive HDCP inactive nu adaugă nimic la setul KSV, la fel cum însuși repetorul HDCP care inițiază crearea listei nu adaugă propriul KSV la acesta.

Verificarea integrității este necesară pentru a adăuga lista KSV primită de la repetitorul HDCP anterior. Repetorul HDCP care a solicitat lista calculează V și îl compară cu V' primit .

V = SHA-1 (lista KSV || starea B || M0 )

Unde:

Toate reprezentările de biți sunt în ordine directă.

Dacă V≠ V' , atunci verificarea integrității eșuează și repetorul HDCP nu va accepta lista. Acest lucru va expira temporizatorul watchdog și transmițătorul HDCP va putea detecta această eroare.

Pe lângă compilarea listei KSV, informațiile topologice (număr și adâncime) sunt propagate în arborele dispozitivului către transmițătorul HDCP. Numărul de dispozitive (de exemplu, număr de  dispozitive ) este calculat ca numărul tuturor repetoarelor și receptorilor HDCP de la dispozitivul care numără suma. Adâncimea pentru un  repetor HDCP este egală cu valoarea adâncimii maxime primită de la dispozitivele din aval din arborele repetitorului HDCP, plus unu . De exemplu, pentru un repetor HDCP cu patru ținte HDCP în aval, adâncimea este de unu și numărul de dispozitive este de patru.

Numărul de dispozitive dintr-un arbore nu poate depăși 127, iar numărul de niveluri (adâncime) nu poate depăși șapte.

Exemplu:

Transmițătorul HDCP, după ce detectează că bitul REPEATER a fost transmis , setează un timer watchdog de 5 secunde și solicită starea READY a repetorului HDCP . Dacă bitul de stare este setat la 1 (gata), atunci transmițătorul HDCP citește lista KSV și verifică dacă lista de dispozitive depășește dimensiunea și adâncimea specificate de specificație, apoi verifică integritatea listei calculând V . Dacă oricare dintre condiții nu este îndeplinită sau cronometrul expiră, atunci autentificarea nu este efectuată.

Reîncercarea se face prin trecerea unei noi valori pentru An și Aksv .

Reprezentarea pe biți a stării dispozitivului B
Numele domeniului Biți ocupați Descrierea câmpului
Rsvd 15:14 Rezervat. Valoarea este 0.
HDMI_RESERVED_2 13 Rezervat.
HDMI_MODE 12 Modul HDMI. Când bitul este setat la unu, receptorul HDCP trece de la modul DVI la modul HDMI. Bitul este resetat atunci când dispozitivul este pornit, repornit, un transmițător HDCP este conectat sau deconectat sau receptorul HDCP nu a primit date pentru 30 de cadre.
MAX_CASCADE_EXCEEDED unsprezece Afișează erori în topologie. Dacă setați la unul, există mai mult de șapte niveluri de repetoare în arborele dispozitivului.
ADÂNCIME 10:8 Afișează numărul de niveluri din sistem
MAX_DEVS_EXCEEDED 7 Afișează erori în topologie. Dacă setați la unul, există mai mult de 127 de dispozitive în arborele de sistem.
DEVICE_COUNT 6:0 Numărul total de dispozitive conectate. Întotdeauna zero pentru repetitoarele HDCP. Acest număr nu include repetitoarele HDCP în sine, ci dispozitivele atașate acestora.

A treia parte a protocolului de autentificare

Cea de-a treia parte a protocolului rulează în timpul intervalului de golire verticală care precede cadrul .  Fiecare dintre cele două dispozitive HDCP calculează noi numere de bază Ki , Mi și Ri , unde indexul i reprezintă numărul cadrului, începând de la unu pentru primul cadru criptat (după finalizarea primei părți a protocolului de autentificare). Indexul este incrementat cu unul cu fiecare cadru sau cu fiecare cadru criptat, în funcție de modul ADVANCE_CIPHER activat . Contorul de cadre nu crește dacă dispozitivul HDCP este în starea HDMI AVMUTE (modul în care sunetul este oprit dacă apar modificări care pot duce la zgomot în canalul audio [10] ) și nu crește după ieșirea din această stare. până la primul cadru criptat.

Transmițătorul HDCP verifică Ri' cu propriile calcule pentru a confirma că receptorul video este capabil să decodeze corect informațiile. Această verificare se face cel puțin la fiecare două secunde, de asemenea, este posibil să citiți Ri sincron în timpul următoarei modificări (la fiecare 128 de cadre). În acest caz, citirea Ri’ trebuie finalizată în termen de o milisecundă din momentul în care transmițătorul HDCP inițiază această acțiune, dacă dintr-un motiv oarecare operațiunea eșuează, atunci emițătorul HDCP consideră că receptorul HDCP nu a fost autentificat.

Pentru a crește probabilitatea detectării desincronizării în criptare, transmițătorul și receptorul HDCP pot suporta opțional Verificarea legăturii îmbunătățită, în care calculele pentru menținerea controlului sincronizarii cifrului sunt efectuate dacă este transmis un anumit pixel.

Modul ADVANCE_CIPHER  este un mod opțional în care starea de criptare și contorul de cadre sunt incrementate pentru fiecare cadru în modul DVI sau fiecare cadru în modul HDMI (cu excepția cazului în care este în starea AVMUTE ), indiferent dacă criptarea este activată sau nu.

Criptarea datelor

Criptarea HDCP are loc la intrarea TMDS ( Transition Minimized Differential Signaling , transmisie de semnal diferenţial cu minimizarea diferenţelor de nivel) a codificatorului, iar decriptarea are loc la ieşirea decodorului TMDS. Procedura de criptare constă în adăugarea pe biți ( XOR ) a fluxului de date cu o secvență pseudo-aleatorie generată de cifrul HDCP.  

În timpul intervalului vertical , funcția hdcpBlockCipher pregătește cifrul HDCP pentru a genera, pentru fiecare pixel al fluxului de intrare, o secvență pseudo-aleatorie de 24 de biți dependentă de cheie. Acești biți sunt suprapusi pe canalele TMDS, așa cum se arată în tabel pentru un exemplu de flux video RGB.

Afișare flux criptat
Cifrare de ieșire Canalul TMDS Biți de flux video
23:16 2 Roșu [7:0]
15:8 unu Verde [7:0]
7:0 0 Albastru [7:0]

În timpul intervalului de golire orizontală , cifrul  HDCP realocă cheia la fiecare 56 de biți, ceea ce face mai dificilă întreruperea cifrului linie cu linie.

Cifrul HDCP

Structura generală a unui cifru HDCP poate fi împărțită în trei straturi. Primul strat constă din patru registre de deplasare cu feedback liniar ( registru de deplasare cu feedback liniar în engleză  , LFSR ), a căror ieșire este de un bit. Dacă este dat un semnal de reintrare a cheii, atunci acest bit este plasat în stratul de mijloc. Stratul de mijloc este format din două părți similare. Prima parte, funcția B round  , efectuează o rundă a cifrului bloc folosind trei registre de 28 de biți Bx, By, Bz . A doua parte - funcția rotundă K  - este similară ca structură cu funcția B , dar funcționează ca ieșire a blocului Ky ( un flux de chei rotunde de 28 de biți către funcția rotundă B cu o frecvență de o cheie de 28 de biți pe ceas). În stratul inferior, fiecare ciclu comprimă cele patru ieșiri ale registrelor de 28 de biți By, Bz, Ky, Kz într-un bloc de secvență pseudo-aleatorie de 24 de biți .

Modul de registru de schimbare a feedback-ului linear

Modulul de registru cu deplasare liniară constă din patru LFSR de diferite lungimi și mixere diferite ( funcție de combinare ) .  Funcția de amestecare depinde de trei atingeri ( robinet în engleză ) din fiecare registru.  

Înregistrați polinoamele și derivațiile utilizate
Număr de înregistrare Înregistrează polinom Ieșiri utilizate pentru funcția de mixare
0 unu 2
3 5 unsprezece 16
2 5 9 cincisprezece
unu patru opt 13
0 3 7 12

Funcția shuffle constă din patru rețele shuffle în cascadă , fiecare incluzând doi biți de stare .  O operațiune XOR este efectuată pe una dintre robinetele fiecăruia dintre cele patru registre pentru a forma datele de intrare pentru prima etapă a rețelei. Alte atingeri de registru sunt folosite pentru a selecta intrarea către una dintre rețele. Ieșirea celei de-a patra rețele este adăugată ( XOR ) cu o atingere din fiecare registru.

Rețea cu mișcarea canalului

Figura prezintă schematic o rețea cu mișcarea canalului. În cazul în care rețeaua conține o pereche de valori booleene (A, B), intrarea este o valoare booleană D, iar intrarea de selecție este S, atunci valoarea parametrului S determină următoarea stare. Dacă S este zero, atunci ieșirea este A și starea (B, D) este setată. Dacă S este unul, atunci ieșirea este B și starea (A, D) este setată.

În toate modurile de operare, LSFR și funcția de amestecare sunt inițializate la un număr de 56 de biți. Cei 60 de biți din starea LSFR folosesc acești 56 de biți direct, plus adăugarea a aproximativ patru biți. Rețelele Shuffle sunt inițializate la aceeași valoare.

Fluxul de ieșire pe 1 bit al funcției de amestecare este singurele date obținute din funcționarea modulului LSFR. Acest flux furnizează modulului bloc material pentru a genera cheile dacă este primit un semnal pentru a redefini cheia.

Inițializarea registrelor de deplasare
Pic Valoarea initiala
LFSR3 [16] Complement la bitul de intrare [47]
[15:0] Biți de intrare [55:40]
LFSR2 [cincisprezece] Complement la bitul de intrare [32]
[14:0] Biți de intrare [39:25]
LFSR1 [13] Complement la bitul de intrare [18]
[12:0] Biți de intrare [24:12]
LFSR0 [12] Complement la bitul de intrare [6]
[11:0] Biți de intrare [11:0]
Schimbați rețelele Registrul A 0
Registrul B unu

Modul bloc

Acest modul constă din două componente separate numite funcții rotunde . Una dintre componente, funcția rotundă K, furnizează cealaltă componentă, funcția rotundă B  , cu un flux de taste. Fiecare componentă funcționează cu un set corespunzător de trei registre de 28 de biți.

Dacă a fost primit un semnal pentru a redefini cheia, atunci bitul din fluxul de ieșire al modulului LSFR este scris în al treisprezecelea bit al registrului Ky .

S-box-urile pentru ambele funcții rotunde constau din șapte S-box cu patru intrări și patru ieșiri. Pentru o funcție rotundă K , casetele S sunt denumite SK0, SK1.. ,SK6 . Pentru funcția rotundă B, casetele S sunt denumite SB0, SB1.., SB6 . Numărul de biți I*7+J al registrelor Bx sau Kx este scris la intrarea I a blocului J , iar bitul I*7+J al registrelor Bz, Kz este alimentat la ieșirea I a blocului J. În acest caz, bitul zero este considerat bitul cel mai puțin semnificativ.

Rețelele de difuzie pentru funcția rotundă K sunt prezentate în tabel. Trebuie remarcat faptul că nu există intrări suplimentare pentru această funcție în nicio rețea de difuzie. Jumătate din componentele de difuzie ale funcției B conțin intrări suplimentare, care primesc biți din registrul Ky ​​al funcției rotunde K .

Funcția de ieșire logică

Registrele Ky, Kz, By, Bz formează o funcție logică de ieșire. Fiecare dintre cei 24 de biți este obținut prin adăugarea (XOR) a nouă termeni, așa cum se arată în formula de mai jos:


Unde  - XOR , a  - înmulțire logică

Exemplu: Bitul de ieșire 0 este calculat după cum urmează:

Unele dintre funcțiile utilizate

hdcpBlockCipher

Această secvență este utilizată în timpul primei părți a protocolului de autentificare pentru a genera cheia de sesiune Ks și în timpul intervalului vertical care precede cadrul criptat pentru a deriva cheia de cadru Ki .

Secvența de funcționare a funcției hdcpBlockCipher Stările inițiale și ieșirea hdcpBlockCipher \
Etapă Acțiune
unu Încărcarea registrelor B și K ale modulului bloc
2 Realizarea a 48 de cicluri ale registrelor
3 Salvarea a 56 de biți mici pentru utilizare viitoare ca Ks, Ki
patru Mutați 84 de biți din registrele B în registrele K
5 Reîncărcați registrul B
6 Inițializarea Modulului LFSR
7 Cerere de schimbare a cheii
opt Efectuarea a 56 de cicluri de funcționare a modulului LFSR și bloc, salvând valoarea Mi pe 64 de biți în ultimele patru cicluri
9 Eliminarea unei cereri de modificare a cheii
Etapă Deci tu Valoarea LFSR inițială
(56 de biți)
Valoarea K initiala Valoarea inițială B
(65 biți)
Ieșire B
(84 de biți)
Ieșire funcție
hdcpBlockCipher
în timpul
autentificării
1-3 48 km (56 biți) REPETATOR || Un Ks
6-9 56 Ks Ks (84 de biți) REPETATOR || Un
hdcpBlockCipher
în timpul
intervalului vertical
1-3 48 Ks (56 de biți) REPETATOR ||
6-9 56 (84 de biți) REPETATOR ||

Pentru numerele de 8 biți a și b, rezultatul concatenării ab este un număr de 16 biți, unde a este bitul cel mai semnificativ și b este bitul cel mai puțin semnificativ.

În ambele funcții rotunde B și K , registrele x, y, z pot fi considerate ca un singur registru lung de 84 de biți.

Când sunt necesari mai puțin de 84 de biți de registru, se folosesc biții cei mai puțin semnificativi. Dacă mai puțin de 84 de biți sunt disponibili pentru inițializare, biții mai puțin semnificativi sunt completați, iar biții rămași sunt setați la zero.

Exemplu: Rezultatul pe 65 de biți al concatenării bitului REPEATER și a valorii An va fi scris în registrele Bx și By , plus în cei 9 biți cei mai puțin semnificativi ai registrului Bz , în timp ce cei 19 biți superiori ai registrului vor fi umpluți cu zerouri. De unde provin biții Mi și Ri este prezentat în tabelul de mai sus.

hdcpRngCipher

Această funcție este folosită ca generator de numere aleatoare , iar funcția trebuie să accepte o metodă care să vă permită să primiți biți de la o sursă externă. Biții trebuie amestecați extern cu valorile registrelor (fără înlocuire). Adică, nu ar trebui să existe nicio modalitate de a determina valoarea generată.

Sursa externă trebuie să aibă o probabilitate rezonabilă sau entropie . Adică, dacă, de exemplu, sunt date 1000000 de cicluri diferite, atunci numărul de numere care se repetă dintre 1000000 An nu trebuie să depășească 50%. Aceasta corespunde la aproximativ patruzeci (presupunând că ) biți arbitrari din 64.

Criptanaliză

Pentru a obține secretul partajat, dispozitivele își adaugă cheile secrete Ai în funcție de vectorul cheii primite. Rezultatul este un Km secret pe 56 de biți (emițător) și Km' (receptor) și trebuie să fie egali.

Apoi, după autentificare, receptorul criptează oportunitatea cu cheia primită și o trimite transmițătorului. Acesta, la rândul său, verifică cu cheia lui Km că ocazia este criptată corect.

Prin urmare, dacă definim 40 de vectori independenți liniar (chei secrete ale dispozitivului), atunci putem sparge complet sistemul, deoarece aceste chei vor forma baza unui spațiu de chei secrete cu 40 de dimensiuni și putem compune orice set de chei secrete ale oricărui dispozitiv de la ei. Pe de altă parte, dacă nu toate cele 40 de chei sunt liniar independente, atunci putem crea în continuare anumite seturi de chei secrete incluse în subspațiul găsit.

Exemplu: Să presupunem că avem 40 de dispozitive pentru care le cunosc vectorii de selecție cheie și seturi de chei secrete , apoi, ca urmare a schimbului de informații cu dispozitivul, pe care vrem să-l spargem, obținem un sistem de ecuații:

prin rezolvarea careia, vom obține cheile secrete ale dispozitivului atacat. Presupunerea pe care o facem este că toți cei 40 de vectori de selecție cheie ksv sunt independenți liniar.

Dacă spațiul acoperit nu are 40 de dimensiuni, atunci trebuie să existe încă o portiță. Fie acești vectori de selecție cheie sunt construiți în așa fel încât să nu fie posibilă formarea unei baze a unui spațiu cu patruzeci de dimensiuni din ei, fie avem nevoie de mai mult de 40 KSV pentru a acoperi întregul spațiu (fiecare dispozitiv suplimentar are o șansă mică de a fi dependent liniar de mulțimea deja obținută, aproximativ , unde n este dimensiunea spațiului acoperit)

De asemenea, putem crea singuri seturile corecte ale vectorului de selecție a cheilor și cheilor secrete ale dispozitivului dintr-o combinație liniară pe care o cunoaștem deja.

Exemplu:

1. Să alegem un dispozitiv arbitrar B, dacă B poate autentifica Ai, atunci egalitatea este adevărată:

2. Lasă

3. Știm că atunci când dispozitivul B autentifică dispozitivul X , se utilizează valoarea Km :

4. Adică, amintindu-ne faptul că (Ki)'m = Ki pentru tot i , putem calcula Km' :

5. Deoarece alegerea lui B a fost arbitrară, aceasta va funcționa pentru orice B și

Autentificarea între B și X va reuși. Singura dificultate poate fi construirea Xksv astfel încât să fie compusă din 20 de zerouri și 20 de unități.

Folosind HDCP

Folosit în playerele HD DVD și Blu-ray . Dacă dispozitivul de redare și, dacă este utilizat un computer, software-ul nu acceptă HDCP, atunci semnalul nu va fi transmis la ieșire sau va fi, dar cu o calitate degradată ( Image Constraint Token flag ) . 

Aprobat la 4 august 2004 de către Comisia Federală de Comunicații ( FCC) din SUA ca „ Tehnologie de protecție a ieșirilor digitale.  

Tehnologia este acceptată de Windows Vista .

Suportul HDCP este o condiție prealabilă pentru a se conforma mărcii „ HD ready ”, iar utilizarea sa este impusă de legile SUA pentru toate receptoarele de transmisie HD.

Vezi și

Note

  1. Digital Content Protection - About DCP , < http://www.digital-cp.com/about_dcp > Arhivat 5 decembrie 2009 la Wayback Machine 
  2. Specificația HDCP v1.4 (pdf)  (link descendent) . Protecția conținutului digital (8 iulie 2009). Arhivat din original pe 25 februarie 2012. , Pagina 31 0x15, Pagina 35
  3. 1 2 Pasăre Kiwi. Sfarsitul unei ere. Criptosistemul HDCP a fost complet și complet piratat . Computerra Online (20 septembrie 2010). Preluat la 26 septembrie 2019. Arhivat din original la 23 septembrie 2010.
  4. Nathan Willis. Impactul eliberării cheii master HDCP [LWN.net ]  . lwn.net (29 septembrie 2010). Preluat la 31 ianuarie 2020. Arhivat din original la 31 ianuarie 2020.
  5. Adrian Kingsley-Hughes. Protecția conținutului digital cu lățime de bandă mare (HDCP) ar putea fi dezafectată (link indisponibil) . ZDNet (14 septembrie 2010). Arhivat din original pe 16 iunie 2013. 
  6. ↑ Lawler, „cheia principală” a lui Richard HDCP, care se presupune că a fost lansată, deblochează permanent protecția la copiere HDTV . Engadget. Consultat la 14 septembrie 2010. Arhivat din original pe 14 septembrie 2010.
  7. HDTV Code Crack Is Real, Intel Confirms , Fox News  (16 septembrie 2010). Arhivat din original pe 19 aprilie 2012. Preluat la 15 ianuarie 2014.
  8. Intel confirmă că cheia principală HDCP este spartă
  9. Cablat. „ Intel amenință să dea în judecată pe oricine folosește HDCP Crack Arhivat la 22 februarie 2014 la Wayback Machine ”.
  10. Specificația HDMI 1.3a (PDF), HDMI Licensing, LLC. (10 noiembrie 2006). Arhivat din original pe 29 decembrie 2009. Recuperat la 24 noiembrie 2009. , Secțiunea: 5.3.6 Pachetul de control general

Link -uri