DeCSS e i numeri primi illegali

27 November 2009 da Francesco

Che un numero primo (ma anche un numero e basta) possa essere considerato illegale e’ assurdo, ed effettivamente non esiste nessuna norma che miri a rendere illegale il possesso di alcuni numeri. Qualche anno fa si e’ pero’ verificata una curiosa coincidenza (intenzionale) quando un matematico di nome Phil Carmody scopri’ un numero primo che rappresentava la versione compressa con gzip di un noto programma usato per bypassare il sistema di protezione CSS dei DVD, DeCSS. Ma partiamo dall’inizio…

DeCSS e’ un programma rilasciato nell’Ottobre 1999 da un gruppo di tre persone di cui due rimangono ancora anonime. John Lec Johansen, che si era occupato della creazione dell’interfaccia grafica, e’ l’unico membro noto di questo gruppo, ed ovviamente e’ stato anche l’unico a subire le conseguenze legali della pubblicazione su internet di DeCSS. Dopo vari processi iniziati nel 2000, nel 2004 Joahansen viene assolto a il suo caso viene chiuso. Tra il 2000 e il 2004 per protestare contro le leggi che impedivano la pubblicazione di codice sorgente di programmi come DeCSS, nacquero nuovi metodi piu’ o meno originali per diffonderne il codice sorgente, attraverso immagini steganografate, poemi haiku, codice stampato sulle magliette o… numeri primi illegali.

Per Phil Carmody l’idea che del codice sorgente potesse essere intrinsecamente illegale era assolutamente bizarra, e cosi’ si mise a cercare un modo di rappresentare il codice di DeCSS che non potesse essere in alcun modo considerato illegale. Il sito che attualmente si trova a questo indirizzo archiviava, e archivia ancora, i numeri primi che hanno particolari proprieta’. Cosi’, armatosi di molta pazienza e di vari tool per lavorare sui numeri primi (come test di primalita’ probabilistici o deterministici), riusci’ a trovare un numero primo abbastanza lungo (1901 cifre) da meritare di essere archiviato sul sito, anche perche’ rientrava nella top 20 dei numeri primi testati con l’algoritmo ECPP. Tra l’altro, visto che gzip ignora i caratteri dopo uno zero binario alla fine di un file compresso, dovrebbero in realta’ esistere infiniti numeri primi che rappresentano la stessa cosa, cioe’ il codice compresso di DeCSS.

Dopo qualche mese, Phil Carmody e’ anche riuscito a trovare un numero primo che rappresenta un eseguibile valido in ambiente Linux e che offre le stesse funzionalita di DeCSS. Se volete qualche dettaglio piu’ tecnico sulla ricerca di questi due numeri primi potete visitare questa e questa pagina. Se non vi fidate sul fatto che quel numero primo corrisponda esattamente ad un archivio che genera il codice di DeCSS vi lascio questo programma in Perl (non scritto da me, ma opera di un certo Jamie McCarthy) che prende il numero primo da una pagina web, crea un archivio gzip ed estrae il codice:

#!/usr/bin/perl
use LWP::Simple;
use Math::BigInt;
my $html = get("http://www.utm.edu/research/primes/curios/48565...29443.html");
my($prime) = $html =~ m{<blockquote>([^<]+)</blockquote>};
$prime =~ s{\D+}{};
$prime = Math::BigInt->;new($prime);
my $binary = '';
while ($prime > 0) {
$binary = pack("N", ($prime % 2**32)) . $binary;
$prime /= 2**32;
}
$binary =~ s{^\0+}{};
open(my $fh, "| gunzip -c 2>/dev/null") or die "cannot gunzip, $!";
print $fh $binary;
close $fh;

Sulla pagina inglese di Wikipedia dedicata ai numeri primi illegali trovate anche i due numeri (quello del file gzip e quello del file eseguibile) che ho omesso in questo articolo. Alla prossima.

Condividi l'articolo!
  • Digg
  • del.icio.us
  • Facebook
  • Diggita
  • StumbleUpon
  • Technorati
  • Twitter

Tags: , ,
Pubblicato in Informatica | Commenti (0)

No comments yet

Leave a Reply