An illegal prime number.
A mathematician has generated a
prime
number which, by a suitable application of twisted legal logic,
may be construed as being
illegal
in the United States. The 1401-digit number, discovered by Phil
Carmody of Nokia, is shown in decimal form below and on Chris Caldwell's
Prime Curios
site at the University of Tennessee at Martin. If you were to write
this same number in hexadecimal form, they say, it would be a gzip
file of the original form of DeCSS -- a C program that decrypts DVD
movies. (I have not tested this assertion, nor did the original
poster to the Random
mailing list.) Courts have ruled that this program is an illegal
circumvention device under the Digital Millenium Copyright Act. See
Dave Touretzky's
Gallery of CSS
Descramblers for many more artistic forms of this illegal code.
Thanks to TBTF Irregular Monty Solomon for word on this prime story.
4856507896573978293098418946942861377074420873513579240196520736
6869851340104723744696879743992611751097377770102744752804905883
1384037549709987909653955227011712157025974666993240226834596619
6060348517424977358468518855674570257125474999648219418465571008
4119086259716947970799152004866709975923596061320725973797993618
8606316914473588300245336972781813914797955513399949394882899846
9178361001825978901031601961835034344895687053845208538045842415
6548248893338047475871128339598968522325446084089711197712769412
0795862440547161321005006459820176961771809478113622002723448272
2493232595472346880029277764979061481298404283457201463489685471
6908235473783566197218622496943162271666393905543024156473292485
5248991225739466548627140482117138124388217717602984125524464744
5055834628144883356319027253195904392838737640739168912579240550
1562088978716337599910788708490815909754801928576845198859630532
3823490558092032999603234471140776019847163531161713078576084862
2363702835701049612595681846785965333100770179916146744725492728
3348691600064758591746278121269007351830924153010630289329566584
3662000800476778967984382090797619859493646309380586336721469695
9750279687712057249966669805614533820741203159337703099491527469
1835659376210222006812679827344576093802030447912277498091795593
8387121000588766689258448700470772552497060444652127130404321182
610103591186476662963858495087448497373476861420880529443
Updated 2001-03-20, 5:45 pm:
TBTF Irregular Jamie McCarthy provided this compact perl program to
grab the prime from the UTM site, pack it into binary, and feed it
to gunzip. Below is an updated version that works on Windows and
with slightly older versions of perl. (Jamie thanks Ted Anderson
and Gregory Krohne for pointing out Windows issues and for testing
on Windows.)
I have verified that running this program on a Net-connected machine
outputs four subroutines of DeCSS (CSSdescramble, CSStitlekey1,
CSStitlekey2, and CSSdecrypttitlekey). Brad Threatt wrote to note
that the tables needed to actually compile and use this code are
missing. Both McCarthy and Threatt pointed out that this
prime-number trick is possible because of a particular of the gzip
format: it ignores any bytes after the end of the gzipped content,
so you can add bytes until you achieve a prime number.
#!/usr/bin/perl
# Public domain. Questions to Jamie McCarthy, jamie@mccarthy.vg
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 =~ tr{0-9}{}cd;
$prime = Math::BigInt->new($prime);
my $binary = '';
while ($prime > 0)
{
$binary = pack("N", ($prime % 2**32)) . $binary;
$prime /= 2**32;
}
$binary =~ s{^\0+}{};
local *FH;
open(FH, "| gunzip -acq") or die "cannot gunzip, $!";
binmode FH;
print FH $binary;
close FH;