algorithms and patents aaron bloomfield cs 4102 spring 2011 1

21
Algorithms and Patents Aaron Bloomfield CS 4102 Spring 2011 1

Upload: brian-bryan

Post on 19-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Algorithms and Patents Aaron Bloomfield CS 4102 Spring 2011 1

1

Algorithms and Patents

Aaron Bloomfield

CS 4102

Spring 2011

Page 2: Algorithms and Patents Aaron Bloomfield CS 4102 Spring 2011 1

2

Pop Quiz! This isn’t for credit (other than attendance

credit), but to observe people’s perceptions of algorithms and patents

Page 3: Algorithms and Patents Aaron Bloomfield CS 4102 Spring 2011 1

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

Page 4: Algorithms and Patents Aaron Bloomfield CS 4102 Spring 2011 1

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

Page 5: Algorithms and Patents Aaron Bloomfield CS 4102 Spring 2011 1

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?

Page 6: Algorithms and Patents Aaron Bloomfield CS 4102 Spring 2011 1

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.”

Page 7: Algorithms and Patents Aaron Bloomfield CS 4102 Spring 2011 1

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

Page 8: Algorithms and Patents Aaron Bloomfield CS 4102 Spring 2011 1

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

Page 9: Algorithms and Patents Aaron Bloomfield CS 4102 Spring 2011 1

The US Gov’t and War Munitions

Page 10: Algorithms and Patents Aaron Bloomfield CS 4102 Spring 2011 1

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

Page 11: Algorithms and Patents Aaron Bloomfield CS 4102 Spring 2011 1

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)

Page 12: Algorithms and Patents Aaron Bloomfield CS 4102 Spring 2011 1

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

Page 13: Algorithms and Patents Aaron Bloomfield CS 4102 Spring 2011 1

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

Page 14: Algorithms and Patents Aaron Bloomfield CS 4102 Spring 2011 1

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

Page 15: Algorithms and Patents Aaron Bloomfield CS 4102 Spring 2011 1

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);}

Page 16: Algorithms and Patents Aaron Bloomfield CS 4102 Spring 2011 1

DeCSS: The shirt (and tie!)

Page 17: Algorithms and Patents Aaron Bloomfield CS 4102 Spring 2011 1

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

Page 18: Algorithms and Patents Aaron Bloomfield CS 4102 Spring 2011 1

DeCSS: The number The world’s first illegal prime number:

485650789657397829309841894694286137707442087351357924019652073668698513401047237446968797439926117510973777701027447528049058831384037549709987909653955227011712157025974666993240226834596619606034851742497735846851885567457025712547499964821941846557100841190862597169479707991520048667099759235960613207259737979936188606316914473588300245336972781813914797955513399949394882899846917836100182597890103160196183503434489568705384520853804584241565482488933380474758711283395989685223254460840897111977127694120795862440547161321005006459820176961771809478113622002723448272249323259547234688002927776497906148129840428345720146348968547169082354737835661972186224969431622716663939055430241564732924855248991225739466548627140482117138124388217717602984125524464744505583462814488335631902725319590439283873764073916891257924055015620889787163375999107887084908159097548019285768451988596305323823490558092032999603234471140776019847163531161713078576084862236370283570104961259568184678596533310077017991614674472549272833486916000647585917462781212690073518309241530106302893295665843662000800476778967984382090797619859493646309380586336721469695975027968771205724996666980561453382074120315933770309949152746918356593762102220068126798273445760938020304479122774980917955938387121000588766689258448700470772552497060444652127130404321182610103591186476662963858495087448497373476861420880529443

Page 19: Algorithms and Patents Aaron Bloomfield CS 4102 Spring 2011 1

DeCSS: The images

Page 20: Algorithms and Patents Aaron Bloomfield CS 4102 Spring 2011 1

DeCSS: The recordings All this info from

http://www-2.cs.cmu.edu/~dst/DeCSS/Gallery/

Or do a Google search for “decss gallery”

Page 21: Algorithms and Patents Aaron Bloomfield CS 4102 Spring 2011 1

DeCSS: The movie