It's not a bug, it's a feature

Numeri primi illegali: esistono? Si, ma non sono legalmente attaccabili

Qual è il minimo comune multiplo tra i numeri primi, un concetto puramente matematico, e l’informatica? Per chi non lo sapesse è la sicurezza! Ed è principalmente per questo motivo che sono particolarmente affascinanti ed esistono delle vere e proprie taglie a pagamento sui nuovi numeri primi che vengono scoperti. Ma sapevate che alcuni di questi numeri primi sono, legalmente parlando, “illegali”?

La ricerca dei numeri primi illegali è però una sorta di “gioco”, un gioco che ha come l’obiettivo quello di interpretare in modo paradossale le leggi citate dal Digital Millennium Copyright Act (DMCA). Il tutto ha inizo dal matematico e programmatore statunitense Phil Carmody, con l’obiettivo di individuare un numero primo talmente grande da essere si degno di interesse nelle pubblicazioni scientifiche, ma che allo stesso tempo codifichi delle informazioni la cui diffusione è soggetta a restrizioni.

Lo sapevate che ogni cosa al mondo può essere univocamente rappresentata da un numero?

Può sembrare un po’ strano per chi non è dentro il mondo del digitale, ma noi informatici abbiamo sviluppato una certa abilità nel trovare una codifica univoca per praticamente ogni cosa. Alla fine dei conti, tutto vive sotto forma di bit (1 e 0), che messi insieme formano milioni di numeri diversi.

Non è un caso infatti che la codifica ASCII, sia su 7 che 8 bit, prevede un assegnamento univoco carattere <-> numero, o che ogni pixel è rappresentato da 3 numeri (red, green e blue) con valori ognuno da 0 a 255 ad indicarne l’intensità. Mettendo tutti questi numeri insieme otteniamo testi enormi, immagini ad una risoluzione incredibile, o canzoni.

Tabella ASCII su 8 bit

Uno stesso “oggetto” può però essere rappresentato da diversi numeri in base alla codifica scelta, il trucco per capirsi sta però nel scegliere a priori con quale codifica stiamo parlando. Ecco perchè una stessa immagine può avere diversi formati (jpg, png, gif): l’informazione è la stessa, ma codificata in maniera diversa o meglio, il dato è compresso in maniera diversa, e ciò significa che i numeri al suo interno sono diversi in base al formato scelto. Anche i programmi stessi, alla fine dei conti, sono si un insieme di istruzioni di basso livello ma ogni istruzione è un insieme di bit che tutti insieme formano un numero grande.

Ora immaginatevi aver scritto un numero a caso su un foglio, e questo numero, guardacaso, se convertito in binario rappresenta una serie di istruzioni che permette di decodificare un flusso dati governativo protetto, e che di conseguenza questo programma sarebbe illegali in mani non governative. Ma noi abbiamo semplicemente scritto un numero su un foglio, non abbiamo rubato nessun software a nessuno. Di chi è la colpa?

Benché la legislazione sulla tutela dei diritti d’autore protegga le opere dell’ingegno, dal punto di vista giuridico è difficile, se non impossibile, bloccare la diffusione e la condivisione di un numero (soprattutto se di particolare interesse, come un numero primo), anche se in qualche modo codifica dei contenuti protetti da copyright, perché esso può ammettere numerosi utilizzi differenti. Un numero non è inoltre brevettabile o assoggettabile a copyright in quanto tale.

La storia di Jon Lech: una diatriba legale sulla decodifica dei DVD protetti da DRM

La faccenda sui numeri primi illegali ha inizio nel 2002 con John Lech Johansen. Noto anche col nome DVD Jon, è un programmatore norvegese che si occupa di reverse engineering di formati di file proprietari. Membro del gruppo di cracker Master of Reverse Engineering (MoRE), nel 2002 sviluppò il software DeCSS, e fu processato per aver pubblicato il codice sorgente del software sul suo sito web.

Cos’ha di particolare questa storia? DeCSS è un programma scritto in C che permetteva di aggirare le protezioni DRM imposte sui DVD. Johansen è stato processato e poi assolto, ma la vicenda è stata da spunto per molti per analizzare sotto vari aspetti l’illegalità di programmi e dati su computer o sull’interpretazione del Digital Millennium Copyright Act.

Il codice di DeCSS scritto in C: può essere utilizzato per aggirare la codifica DRM imposta sui DVD.

Numeri primi illegali: che aspetto hanno?

Basandosi sul discorso sulla codifica fatta nei paragafi precedenti, un ipotetico metodo per cercare di aggirare la restrizione e distrubuire senza problemi software in principio illegale è quello di codificare in qualche modo il programma sotto una forma alternativa che avesse altri utilizzi legittimi o addirittura proprietà notevoli tali da renderla pubblicabile.

Pensiamo infatti di prendere il codice binario che compone il programma, e comprimiamolo. Comprimendolo, viene fuori altro codice binario compresso che, come tale, è esprimibile sotto forma di un numero anche decimale.

Bene, nel 2001 il matematico e programmatore Phil Carmody ha iniziato la ricerca di qualche numero primo che potesse codificare DeCSS. Ed essendo la ricerca di numeri primi importantissima per la ricerca, sia a livello matematico (per le varie proprietà che offrono i numeri primi) che informatico (vedi RSA), tale numero sarebbe stato tranquillamente degno di interesse scientifico e quindi pubblicabile.

Sfruttando alcune caratteristiche della codifica gzip e basandosi sul teorema di Dirichlet (che afferma che dati due numeri interi coprimi a e b, esistono infiniti primi della forma a + nb), Carmody è riuscito prima a dimostrare l’esistenza almeno teorica di numeri primi che soddisfacessero tali requisiti, e successivamente ne ha individuato concretamente alcuni.

Il primo numero primo illegale ad essere scoperto era relativamente piccolo, composto solamente 1041 cifre. Ha così deciso Carmody di proseguire con la sua ricerca, individuando in seguito un numero di ben 1905 cifre, all’epoca il decimo più grande primo individuato e quindi inserito in alcune pubblicazioni di settore.

Abbiamo detto che un numero può rappresentare diverse cose, e diverse cose possono essere rappresentate da diversi numeri. Chi ci vieta quindi di rappresentare un programma come un’immagine? Attualmente nessuno, ecco che aspetto ha il primo numero primo illegale, nonchè un software non legale, scoperto da Carmody:

Rappresentazione grafica del numero primo illegale scoperto da Carmody creata associando ad ogni bit un colore, grigio o nero, a seconda se zero od uno. Il primo bit è quello più significativo, i quadratini corrispondenti ai bit sono mandati a capo per avere una immagine rettangolare. Credits: wikipedia

Carmody non si è però fermato qui, e ha proseguito la sua ricerca con un ulteriore obiettivo: trovare dei numeri primi che codificassero direttamente il programma in codice macchina, senza passare da nessun algoritmo di compressione intermedio. Con un ulteriore lavoro ha quindi individuato un ulteriore numero primo che rappresentasse in rapporto 1:1 un file eseguibile ELF Linux per architettura i386, dalle funzionalità analoghe a DeCSS. Si tratta così del primo programma eseguibile per il quale è stata individuata una rappresentazione sotto forma di numero primo.

Curiosi di sapere che aspetto ha un eseguibile rappresentato come numero primo?

Prendete questo numero, scrivetelo su un file in codifica binaria e avrete l’eseguibile linux di DeCCS. Ed ecco quindi com’è possibile distribuire informazioni illegali, legalmente mascherate da numeri primi. Affascinante, no?

Published by
Gabriele La Greca