Upload
brian-bryan
View
216
Download
0
Tags:
Embed Size (px)
Citation preview
1
Algorithms and Patents
Aaron Bloomfield
CS 4102
Spring 2011
2
Pop Quiz! This isn’t for credit (other than attendance
credit), but to observe people’s perceptions of algorithms and patents
3
My definition of patent… … for this slide set is any legal aspect that
restricts the transfer of something It could be a trademark, legal injunction, treaty,
law, etc. But it will generally be patents
4
Algorithms and Patents Algorithms are not patentable
An algorithm is a series of “simple manipulations of abstract concepts, numbers, or signals”
http://en.wikipedia.org/wiki/Algorithm#Legal_issues This was a US Supreme Court ruling in 1972
Gottschalk v. Benson, in regards to a numerical algorithm: “the patent would wholly pre-empty the mathematical formula and in practical effect would be a patent on the algorithm itself”
This would be allowing a patent on an abstract idea, which went against a century of legal precedent
http://en.wikipedia.org/wiki/Gottschalk_v._Benson
5
However, software is patentable We can all think of lots of examples
But what if a given piece of software is the only implementation of a given algorithm? And if any similar implementations would infringe
on that software patent?
6
An aside: idiotic software patents A granted patent on linked lists, filed in 2006
http://yro.slashdot.org/article.pl?sid=06/11/23/1546218
The patent abstract: “A computerized list is provided with auxiliary pointers for traversing the list in different sequences. One or more auxiliary pointers enable a fast, sequential traversal of the list with a minimum of computational time. Such lists may be used in any application where lists may be reordered for various purposes.”
7
Restricted algorithms Cryptography
Is considered a “war munition” by the US gov’t But the 1st amendment made restricting
cryptography in the US difficult So one could not export the cryptography
Early browsers had two versions: “International” version: 40-bit encryption “Domestic” version: 128-bit encryption
http://en.wikipedia.org/wiki/Export_of_cryptography_in_the_United_States
8
Problems with export restrictions You could export an algorithm, just not an
implementation And if it was in printed form, then you could
export it And all the servers that held this
cryptographic software were outside the US RSA is un-crackable, and non-US versions
exist, so the restriction on exporting out of the US isn’t all that useful And was developed (independently) in the UK
The US Gov’t and War Munitions
10
Current status There are restrictions exporting cryptography
to rogue states and terrorist organizations Like exporting pretty much anything else to those
groups The US Commerce Department’s BIS (Bureau
of Industry and Security) must be notified before open source cryptography is made publically available But no approval is needed
Companies must get approval before exporting
Mostly, the US gov’t has given up on trying to seriously restrict this type of software, since it’s ubiquitous
11
WIPO Copyright Treaty The World Intellectual Property Organization
(WIPO) Copyright Treaty was signed in 1996 by all major nations (88 total) http://en.wikipedia.org/wiki/WIPO_Copyright_Treaty It’s meant to be an update to the Berne
Convention Which was a copyright treaty from 1886
It’s implemented in the US by the 1998 Digital Millennium Copyright Act (DCMA) http://en.wikipedia.org/wiki/Digital_Millennium_Copyrigh
t_Act
The European Union has a similar law (http://en.wikipedia.org/wiki/Copyright_Directive)
12
Digital Millennium Copyright Act It criminalizes production and dissemination of
technology, devices, or services intended to circumvent measures (commonly known as digital rights management or DRM) that control access to copyrighted works
It also criminalizes the act of circumventing an access control, whether or not there is actual infringement of copyright itself
In addition, the DMCA heightens the penalties for copyright infringement on the Internet
13
DMCA controversies… … where to start? It’s poorly written, to begin with It hinders scientific research, such as cryptanalysis
(which is circumventing DRM) It’s been used to prevent researchers from publishing
about security holes It’s been used by open source projects to sue
commercial businesses they compete with It forces websites to take down information even if there
is little (or no!) proof of copyright infringement It forces analog equiment manufacturers to support
outdated copy prevention technology, which just helps Macrovision’s (now Rovi) profits
http://en.wikipedia.org/wiki/Digital_Millennium_Copyright_Act#Criticisms
14
DeCSS CSS is the Content Scrambling System, with which DVDs are
encrypted It was introduced in 1996 http://en.wikipedia.org/wiki/Content_Scramble_System
DeCSS, the crack, appeared in 1999 And it turns out it was rather weak, due to the US government’s
restrictions on exporting encryption http://en.wikipedia.org/wiki/DeCSS
The Motion Picture Association of America attempted to use legal action under the DMCA to make this algorithm illegal
But can they? Probably not, but they have deeper legal pockets than you do to pursue this in court.
It was declared illegal to have a DeCSS implementation on your computer
So others created clever ways of distributing it that wasn’t in “ready to use” software form
DeCSS: The C program
#include<stdlib.h> typedef unsigned int uint; char ctb[512]="33733b2663236b763e7e362b6e2e667bd393db0643034b96de9ed60b4e0e4\ 69b57175f82c787cf125a1a528fca8ac21fd999d10049094190d898d001480840913d7d35246\ d2d65743c7c34256c2c6475dd9dd5044d0d4594dc9cd4054c0c449559195180c989c11058185\ 081c888c011d797df0247074f92da9ad20f4a0a429f53135b86c383cb165e1e568bce8ec61bb\ 3f3bba6e3a3ebf6befeb6abeeaee6fb37773f2267276f723a7a322f6a2a627fb9f9b1a0e9a9e\ 1f0b8f8b0a1e8a8e0f15d1d5584cd8dc5145c1c5485cc8cc415bdfdb5a4edade5f4bcfcb4a5e\ cace4f539793120692961703878302168286071b7f7bfa2e7a7eff2bafab2afeaaae2ff"; typedef unsigned char uchar;uint tb0[11]={5,0,1,2,3,4,0,1,2,3,4};uchar* F=NULL; uint lf0,lf1,out;void ReadKey(uchar* key){int i;char hst[3]; hst[2]=0;if(F==\ NULL){F=malloc(256);for(i=0;i<256;i++){hst[0]=ctb[2*i];hst[1]=ctb[2*i+1];F[i]=\ strtol(hst,NULL,16);}}out=0;lf0=(key[1]<<9)|key[0]|0x100;lf1=(key[4]<<16)|(key\ [3]<<8)|key[2];lf1=((lf1&0xfffff8)<<1)|(lf1&0x7)|0x8;}uchar Cipher(int sw1,\ int sw2){int i,a,b,x=0,y=0;for(i=0;i<8;i++){a=((lf0>>2)^(lf0>>16))&1;b=((lf1\ >>12)^(lf1>>20)^(lf1>>21)^(lf1>>24))&1;lf0=(lf0<<1)|a;lf1=(lf1<<1)|b;x=(x>>1)\ |(a<<7);y=(y>>1)|(b<<7);}x^=sw1;y^=sw2;return out=(out>>8)+x+y;} void \ CSSdescramble(uchar *sec,uchar *key){uint i;uchar *end=sec+0x800;uchar KEY[5]; for(i=0;i<5;i++)KEY[i]=key[i]^sec[0x54+i];ReadKey(KEY);sec+=0x80;while(sec!=\ end)*sec++=F[*sec]^Cipher(255,0);}void CSStitlekey1(uchar *key,uchar *im) {uchar k[5];int i; ReadKey(im);for(i=0;i<5;i++)k[i]=Cipher(0,0);for(i=9;i>=0;\ i--)key[tb0[i+1]]=k[tb0[i+1]]^F[key[tb0[i+1]]]^key[tb0[i]];}void CSStitlekey2\ (uchar *key,uchar *im){uchar k[5];int i;ReadKey(im);for(i=0;i<5;i++)k[i]=\ Cipher(0,255);for(i=9;i>=0;i--)key[tb0[i+1]]=k[tb0[i+1]]^F[key[tb0[i+1]]]^key\ [tb0[i]];}void CSSdecrypttitlekey(uchar *tkey,uchar *dkey){int i;uchar im1[6]; uchar im2[6]={0x51,0x67,0x67,0xc5,0xe0,0x00};for(i=0;i<6;i++)im1[i]=dkey[i]; CSStitlekey1(im1,im2);CSStitlekey2(tkey,im1);}
DeCSS: The shirt (and tie!)
DeCSS: The poem
How to decrypt a
DVD: in haiku form.
(Thanks, Prof. D. S. T.)
------------------------
(I abandon my
exclusive rights to make or
perform copies of
this work, U. S. Code
Title Seventeen, section
One Hundred and Six.)
Muse! When we learned to
count, little did we know all
the things we could do
some day by shuffling
those numbers: Pythagoras
said "All is number"
long before he saw
computers and their effects,
or what they could do
Table Zero is:Five, zero, one, two, three, four,oh, one, two, three, four.
Table One is long:two to the eighth power bytes.Ready? Here they are:
Fifty one; then onehundred fifteen; fifty nine;thirty eight; ninety
nine; thirty five; onehundred seven; one hundredeighteen; sixty two;
one hundred twentysix; fifty four; forty three;one hundred ten; then
DeCSS: The number The world’s first illegal prime number:
485650789657397829309841894694286137707442087351357924019652073668698513401047237446968797439926117510973777701027447528049058831384037549709987909653955227011712157025974666993240226834596619606034851742497735846851885567457025712547499964821941846557100841190862597169479707991520048667099759235960613207259737979936188606316914473588300245336972781813914797955513399949394882899846917836100182597890103160196183503434489568705384520853804584241565482488933380474758711283395989685223254460840897111977127694120795862440547161321005006459820176961771809478113622002723448272249323259547234688002927776497906148129840428345720146348968547169082354737835661972186224969431622716663939055430241564732924855248991225739466548627140482117138124388217717602984125524464744505583462814488335631902725319590439283873764073916891257924055015620889787163375999107887084908159097548019285768451988596305323823490558092032999603234471140776019847163531161713078576084862236370283570104961259568184678596533310077017991614674472549272833486916000647585917462781212690073518309241530106302893295665843662000800476778967984382090797619859493646309380586336721469695975027968771205724996666980561453382074120315933770309949152746918356593762102220068126798273445760938020304479122774980917955938387121000588766689258448700470772552497060444652127130404321182610103591186476662963858495087448497373476861420880529443
DeCSS: The images
DeCSS: The recordings All this info from
http://www-2.cs.cmu.edu/~dst/DeCSS/Gallery/
Or do a Google search for “decss gallery”
DeCSS: The movie