Judge Kaplan subsequently issued a memorandum order in which he indicated that executable source code was not subject to First Amendment protection against prior restraint of speech. This finding is contrary to that of the 9th Circuit US Court of Appeals, who ruled in the Bernstein cryptography case that source code is indeed protected speech. In their decision, The 9th Circuit even quoted some Scheme code from the declaration of MIT Professor Harold Abelson, explaining why source code is an effective and sometimes preferred means of human communication. Professor Andrew Appel of Princeton University also filed a declaration explaining the importance for computer science of being able to publish source code. More recently, the 6th Circuit US Court of Appeals ruled in the Junger cryptography case that, independent of its functional significance, the expressive nature of source code affords it First Amendment protection.
If code that can be directly compiled and executed may be suppressed
under the DMCA, as Judge Kaplan asserts in his preliminary ruling, but
a textual description of the same algorithm may not be suppressed,
then where exactly should the line be drawn? This web site was
created to explore this issue, and point out the absurdity of Judge
Kaplan's position that source code can be legally differentiated from
other forms of written expression.
Exhibit | Description |
Anonymous C source code Hoy filing | This is the source
code for the CSS descrambling algorithm that was posted
anonymously to the LiViD mailing list in October 1999. The C code was
supposedly written by someone who disassembled a software DVD player
to uncover the descrambling algorithm. It was this posting that led
Frank Stevenson to conduct his analysis of the CSS encryption
scheme. The code was subsequently included in an unsealed (whoops!) legal filing by John Hoy, president of the DVD-CCA, in the California trade secret lawsuit against Andrew McLaughlin and 92 other defendants. Guess it's not a trade secret anymore. More about that here. |
css_descramble.c or or or | These are
different C implementations of the descrambling algorithm. css_descramble.c, by Derek Fawcus, is part
of the css-auth package, which is a
component of LiViD, a Linux DVD player. It is interesting to compare
this implementation with the anonymous C source code to see how they
differ in strategy. Fawcus' version uses fewer tables, and unrolls
one of the loops. Such a comparison is only possible by examining the
source code. Yet another implemenation,
with only a single table, was produced by Frank Stevenson, and is less
than 2,000 characters long. A group of computer scientists from the École Centrale Paris have produced an open source DVD player called Videolan; its decryption module is here. |
qrpff Perl code: shorter or faster Cotton version: order the t-shirt | ![]() This work grew out of Keith's preparation for a 6-hour seminar on DVD decryption taught at MIT in Jan-Feb 2001. Suggestions for further shortening the code should be sent to sipb-iap-dvd@mit.edu. Recently featured in Wired, Slashdot, The Register, and ZDNet / USA Today / MSNBC. And now you can order the t-shirt. |
efdtt.c: The tiniest known C implementation | ![]() Here's an ASCII art version of efdtt.c by Alex Bowley. |
Anonymous SML code |
This is a translation of the Anonymous C source code into Standard ML, a functional programming language popular among theoretically-oriented computer scientists. Since the code is purely functional, the author of this translation, a Carnegie Mellon undergraduate, says: Coupled with the ML definition, it's no stretch to think of it as a mathematical formula rather than a "device". Are mathematical formulas still protected speech? The student is taking no chances; he's asked to remain anonymous. |
Mathematical description and |
![]() Hannum's description inspired Ralph Loader to use the LEGO proof development system to generate a proof that any CSS-encrypted text can be decrypted. According to Loader: "a deep mathematical result called the Curry-Howard isomorphism ... relates mathematical proofs and computer programs. Applied to the theorem I proved, Curry-Howard states that any proof of that theorem is in fact a program implementing CSS. The theorem proving tool I used (LEGO) can actually run this program - albeit very inefficiently." Maybe theorem provers should be illegal too. |
Merlin and Robby explain Hannum's decryption formula: Javascript or VBScript | ![]() ![]() |
css_descramble.scheme
css_descramble.java
css_descramble.js or
descrambler written |
![]()
An anonymous author contributed a CSS descrambler in pure lambda calculus, where even integers are represented as functions. Is this "code"? Or is it pure mathematics? The same author also produced a descrambler written in Brainfuck, a Turing machine-like language with only eight operators. A truly minimalist description of the algorithm. |
page1.gif page2.gif page3.gif |
![]() This is not the source code; it's a picture of the source code. These GIF files are not directly readable by a C compiler. However, a human looking at these images could certainly type the C code into a text file. Or the files could perhaps be converted automatically, by an OCR program. Are these page images considered an illegal "circumvention device" under the DMCA? Or, since they're not executable, are they protected speech? |
new-language.txt | Here is an implementation of the descrambling algorithm in a new programming language for which no compiler currently exists. This language, similar to C, was invented by Dave Touretzky. Since the code in this form is not executable, it is presumably protected speech. But if someone writes a compiler for this language, would Dave Touretzky then become liable for trafficking in a circumvention device under section 1201 of the DMCA? |
plain-english.html |
![]() If natural language processing technology advances to the point that a machine could translate this English text into executable code, could the text then be suppressed under the DMCA? |
css-auth.eng and | In
October, 2000, Omri Schwarz released Perl scripts
for automatically translating C to English, and English back to C.
Here is the English version of css-auth.c that it produces, called css-auth.eng. Another C-to-English-to-C tool, called BabelBuster, has been released by Jonathan M. Baccash of Princeton University in April, 2001. This work was Jonathan's senior thesis. Here is his version of css-auth in English. |
english-and-c.html |
![]() |
decss-haiku.txt | ![]() |
Cryptanalysis of CSS |
![]() And here is a more accessible tutorial on CSS by Gregory Kesden. Should these lecture notes, taken from a course taught at Carnegie Mellon University, be declared illegal? What about this case study on CSS by Jason Cherry? |
DeCSS
T-shirt or qrpff t-shirt from CopyLeft qrpff tie from The Digital Group | ![]() ![]() The source code for css_descramble.c was available on the back of this t-shirt from CopyLeft. (Don't try ordering from them now.) Copyleft was sued for their trouble. Also offered: "I am a circumvention device" t-shirt with the qrpff Perl code on the front. The Digital Goroup was offering this qrpff tie, with the Perl decryption code. Click here for a close-up view. Are sales of these clothing items banned under the DMCA? Would merely wearing one of these in public constitute "trafficking in a circumvention device" as defined in section 1201 of the DMCA? |
Dramatic reading or or |
![]() Joe Wecker of the band Don't Eat Pete recorded a musical version of my "plain English" rendition of the source code, with musical accompaniment. This is a 7.2Mbyte MP3 file that runs 7 minutes 28 seconds. Transcript courtesy of Keith Dawson of tbtf.com. Shane Killian later did a hilarious square dance version. Both songs have been banned from MP3.com. Are these kinds of "artistic performances" covered by Judge Kaplan's injunction? Jeff Schrepfer turned the code directly into music, as a MIDI file. The file was created by starting with the source code and "removing all the white space, then transforming each ASCII character into a single 32nd note of its midi equivalent (midi notes, like ASCII characters, are coded into values ranging from 1 to 127.)" Mike Castleman improved on this by encoding whitespace and newlines in the note lengths. |
css-auth inspired audio CD | ![]() |
DeCSS The Movie and |
![]() ![]() |
DVD logo in css-auth source | ![]() To view the entire source, click on "Select All" from your browser's Edit menu. |
Circuit implementation in Verilog, with pictures
Highly optimized |
![]() Tony Bybell contributed a highly optimized Verilog implementation based on the mathematical formulation of the decryption algorithm by Charles Hannum. |
Yahoo greeting card | Someone sent me a Yahoo electronic greeting card with the source code for css_descramble.c as the message (plus a two-for-one coupon for a Slurpee). Yahoo greeting cards expire after 60 days, so this file would have been good through the end of October, 2000, but Yahoo pulled it on September 13 after the Salon article referenced it. |
2001 Onteora High School yearbook | ![]() |
![]() | The New York Times linked to 2600 magazine's list of DeCSS mirrors in a CyberLaw Journal column published on April 28, 2000. Such a link may be illegal according to Judge Kaplan's ruling, although this affidavit by Richard J. Meislin, editor in chief of New York Times Digital, says it is "sound and appropriate journalism". |
![]() | Visit our Steganography Wing to see many additional creative ways to encode the source for the decryption algorithm, including as a prime number. |
As long as I am mayor of this city [Jersey City, New Jersey] the great
industries are secure. We hear about constitutional rights, free
speech and the free press. Every time I hear these words I say to
myself, That man is a Red, that man is a Communist. You never hear a
real American talk like that. -- Frank "I am the law" Hague (1896-1956) (Quote provided by Marina Brown.) |
New York DVD Trial and Its Sequelae |
My declaration referencing this Gallery |
Other declarations that reference mine: Schumann, Gold, Boyden |
My deposition, discussing the Gallery and other things |
My testimony at trial, and the Source vs. Object Code essay referenced therein. |
Defendant's post-trial brief, August 8, 2000. (Cites Touretzky testimony that code is expressive speech) |
Plaintiff's post-trial brief, August 8, 2000. (Unsupported argument that code is not speech; evasive about the Gallery exhibits) |
Judge Kaplan's decision, August 18, 2000 (see footnotes 183 and 275) |
EFF document archive for this case. |
Amicus brief filed in the appeal to the 2nd Circuit, co-sponsored by Touretzky and many other computer scientists. January 23, 2001. |
MPA legal threat against this web site, my reply, and their acknowledgement. (February-March, 2001) |
My Viewpoint piece in the Communications of the Association for Computing Machinery (vol. 43, August 2001, pp. 23-25) |
My slides from A Great Debate: Is Computer Code Protected Speech?, November 30, 2001, at Carnegie Mellon University. Michael Shamos v. David Touretzky; moderated by Peter Shane. Peter Shane's and Michael Shamos' slides are here (Powerpoint). You can also watch the video (Windows media). More info is available in this article from The Tartan. |
How Did We Get Into This Mess? |
![]() |
The OpenLaw DVD FAQ is an authoritative source of information related to DVD encryption, the DeCSS software, applicable law, and the various legal cases in progress. Also see the (anti)-MPAA FAQ. |
Charles C. Mann's thoughtful essay on copyright issues in the September, 1998 edition of Atlantic Monthly is well worth reading, as is the excellent roundtable discussion among Mann, John Perry Barlow, Lawrence Lessig, and Mark Stefik. |
Media Coverage of the Gallery or Testimony |
EFF Press Release, July 25, 2000 (EFF Detonates Mind Bomb on Final Day of DVD Trial) |
Associated Press, July 26, 2000 |
Hollywood Reporter, July 26, 2000 (story by Ian Mohr) |
The Industry Standard, July 26, 2000 (story by Jeff Howe) |
The Micro Times, July 26, 2000 (story by Steven Bonisteel) |
New York Times, July 31, 2000 (by Amy Harmon; front page of Business section) |
Slashdot, July 31, 2000 (sparked by NY Times story) |
The Industry Standard, July 31, 2000 (story by Chris Howe) |
Slashdot, August 1, 2000 ("If you can put it on a t-shirt, it's speech") |
Wired, August 2, 2000 (by Farhad Manjoo; focuses on the DeCSS t-shirt) |
The Village Voice, August 2, 2000 (by Jeff Howe) |
Newsday, August 6, 2000 (by Clive Thompson: Is Software Free Speech?) |
Pittsburgh Post-Gazette, August 7, 2000 (by Byron Spice; front page!) |
Salon, August 7, 2000 (by Damien Cave) |
CBS News, August 9, 2000 (story by Chris Hawke) |
Videobusiness.com, August 7, 2000 (by Paul Sweeting) |
Newsday, August 10, 2000 (by Rita Ciolli: "Key Witness in Internet Drama") [link expired] |
Washington Post, August 18, 2000 (by David Streitfeld; page E01) |
Pittsburgh Tribune-Review, August 21, 2000 (by Bill Zlatos) |
Linux World, August 22, 2000 (by Deborah Durham-Vichr) |
TBTF.com, August 24, 2000 (by Keith Dawson) |
Washington Post, August 25, 2000 (by Rob Pegoraro; page E01) |
The Standard, September 4, 2000 (by Keith Dawson) |
![]() |
Slashdot, September 13, 2000 (discussion of the Salon interview) |
USA Today, September 21, 2000 (Hot Sites section) |
Wired, November 17, 2000 (article on Judge Kaplan by Declan McCullagh) |
The Chronicle of Higher Education, February 16, 2001 (by Andrea Foster) |
Slashdot, February 25, 2001 (DeCSS Haiku and reply to MPA threat letter) |
Linux Today, February 27, 2001 (reply to MPA threat letter) |
Wired, March 7, 2001 (Perl descrambler, MPA letter) |
Slashdot, March 7, 2001 (Perl descrambler) |
The Register, March 8, 2001 (Perl descrambler) |
ZDNet, March 8, 2001 (by Rob Lemos: Perl descrambler) -- also carried by USA Today and MSNBC |
Geek.com, March 8, 2001 (Perl code; Gallery of Descramblers) |
The Register, March 13, 2001 (tiniest known C implementation) |
Geek.com, March 13, 2001 (Hannum code; Gallery of Descramblers) |
Digital Coast Daily, March 14, 2001 (Hannum interview; Gallery and free speech) |
SiliconValley.com, March 14, 2001 (scroll 2/3 down: Gallery, Hannum code) |
Le Monde, March 16, 2001. English translation here. |
TBTF.COM, March 16, 2001 (Phil Carmody's prime encoding) |
Video Business, March 19, 2001 (by Ann Donahue) |
The Independent, March 19, 2001 (by Chris Gulker; also available here |
![]() |
Vilaweb.com, March 21, 2001 (in Catalan; based on Wired News article) |
ACM Technews, March 21, 2001 (quotes from Wired News profile) |
The Bangkok Post, March 28, 2001 |
![]() |
Premier, March 2001 issue ("Hack to the Future", by Janet Shprintz) |
Milwaukee Journal Sentinel Online, March 31, 2001 (by Jim Higgins; DeCSS haiku) |
Neue Zurcher Zeitung, April 7, 2001 (in German) |
![]() |
01net.com, April 23, 2001 (in French; includes an interview with Samuel Hocevar) |
Tech TV, April 24, 2001 (live interview on "Screen Savers" TV show; supplementary info webbed) |
Scientific American, May 2001 issue (News Scan: In Brief) |
Linux User (UK), May 2001 issue (PDF format; article name "Prime suspect: a story of encryption, piracy, farce, and the film industry") |
Newsday, May 1, 2001, p. A45 (by Rita Ciolli: Appeals court hears case on DVD code) |
USA Today, May 2, 2001 (editorial: Hollywood's Hush Tactics) |
San Francisco Chronicle, May 3, 2001 (by Benny Evangelista) |
Liberation, May 9, 2001 (Liberation is a prominent French newspaper) |
CMU School of Computer Science, June 28, 2001 (by Jai Glasgow) |
Technology Review, July 1, 2001 (by Simson Garfinkel) |
Communications of the ACM, August, 2001 (Viewpoint piece by David S. Touretzky: Free speech rights for programmers) |
The Chronicle of Higher Education, August 10, 2001 (by Andrea L. Foster; interviews with four CMU faculty members) |
BarraPunto.com (the Spanish SlashDot), August 28, 2001 (interview in Spanish; scroll down for Enlgish version) |
The Vigil of Planetary NetArt, October 2001 (selection by John Ippolito) |
Los Angeles Times, November 3, 2001 (Dave Wilson on California appeals court trade secret ruling) |
The Tartan, December 4, 2001 (by John Davin, on the Shamos-Touretzky debate) |
The New York Times, December 9, 2001 |
BYTE magazine, January 21, 2002 (op-ed piece by Shannon Cochran) |
Illegal Art, October 2002, with gallery showings in New York and Chicago. Sponsored by The Center for Media, Culture, and History at New York University. |
News.com, January 2, 2003 (by Declan McCullagh; links to the Gallery) |
To Experiment with DVD Technology |
Doom9's MPEG Palace provides both source code and executables for a variety of programs for decrypting DVD movies, compressing them to DivX format, and playing them. |
AfterDawn.com offers downloadable software plus helpful technical information, explaining things like how various ripping programs work. |
![]() |
Dave Wilson, technology editor for the LA Times, has a March 15, 2001 article about these web sites. The MPAA wants to ban them, but many are outside the US. |
Popular open source or GPLed DVD player programs include Videolan (from France), Ogle (from Sweden), and Xine. Xine requires a plugin to add CSS decryption capabilities; several different plugins are available. The most recent is DVDNAV at dvd.sf.net. Another, called d4d, was released by Captain CSS. A now obsolete plug-in can be found at kuroyi.net. |
csscat version 0.2 is a Linux utility that decrypts and copies VOB files to a hard drive. It's based on the libdvdcss library from Videolan. Here's the gzipped tar file. |
Looking for the source code to the original DeCSS program (as a matter of purely historical interest)? It's available: DeCSS.c. There's also DeCSSplus, which improves upon the original DeCSS by replacing the Xing player key with Frank Stevenson's cryptographic attack on the title key. |
Another comprehensive source of information about programs to decrypt DVDs or modify DVD players (e.g., to remove region coding) is Oleg's DVDsoft. |
The Gallery is a scholarly publication. Cite it as follows:
Touretzky, D. S. (2000) Gallery of CSS Descramblers. Available: <http://www.cs.cmu.edu/~dst/DeCSS/Gallery>, (access date).
For more information on citation of web sites in scholarly publications, see How to Cite a Website or visit APAStyle.org.
Also visit the Gallery of Adobe Remedies.
Last modified: Wed Feb 13 21:39:39 EST 2008