More On Encryption Source Code Appeal
ill-logic writes "Here's an article at News.com that gives some more detailed info on the appeals court ruling overturning a case involving a programmer posting source code for his crypto program on the net. The judge ruled that his code is protected under the first amendment. At least there is one non-programmer out there that knows there are benefits in programmers swapping code. "
There = proof(whole)-> Code.Source == Language;
So, according to your def. source generated from say, VB (Heaven forbid) isn't source code.
tell that to the rosenbergs (sold nuclear secrets to russia and were hung).
The difference is that some document describing top secret military plans is not something you wrote. Those who do create them have voluntarily agreed not to disseminate them. This is different from the government preventing you from sharing something you created without your consent. That is what free speech is about, your personal right (and obligation if you ask me) to speak your mind and share your ideas. This case was not about export laws although it may very well come to affect them. Source code is speech in that it is a language used to convey ideas. Source code is not the same as a binary, the binary is the result of that source being compiled or assembled. The first being made for people and the second for the computer. One of the cornerstones of our democracy is the principle that government does not have the power to stifle anyone. It does not have the right to tell someone that certain forms of speech are acceptable and others are not. Speech is the means by which we share ideas, to control speech is to control the ideas it communicates which is totally antithetical to any form of true democracy. Government is not the source of our freedom, it does not grant or deny us rights at its whim. It is our instrument, created and maintained by us for the purpose of protecting freedoms which are our birthright. Some people don't understand this. They get into a frame of mind where they see the government as a surrogate parent, telling them what to do and what to think. That isn't the way of life of a healthy person. A healthy person makes up his or her own mind and acts accordingly. The fight for freedom is never over because tyrany never sleeps.
Anti-bigomy laws are unconstitutional in that many religions permit one of have more than one marriage partner. The constitution gurantees freedom of religion. So what happens when the gov't finds out what your doing? It goes like this.
(1) Gov't files bigomy charges against you.
(2) Gov't exerts lots of legal pressure for you to cut back to one spouse
(3) If you refuse, a trial date is set
(4) If you still haven't backed down, the charges are mysteriously dropped without comment.
Why? The gov't wants to keep anti-bigomy laws on the books for self-image reasons and so the IRS doesn't have to come with 3+ person joint tax returns. With the charges dropped, the law was never challenged in court so it stays on the books. The next person to break it goes through the above process such that fear of 'the process' becomes a deterrent to breaking an unconstitutional law that never goes away.
Suppose the gov't dropped it's case againse Bernstein? Now he can do crypto. Then next person to try, though, will get sued all over again. Will they have the time and money to spend fighting a years long case? Will the next person? Or the next?
Laws don't have to be constitutional to stay on the books and fsck people over again and again.
NT Emacs is quite stable, though running subprocesses under Win95 is sometimes a little wonky....
So it be. Have you ever read the kernel's source? I would classify it as _beautiful_. This mean the programmers have a kind of artistic sense (right, nonprogrammers would never see the inherent beauty in the sources, but it's a kind of art anyway).
You explained in a way even a programmer could understand.
>> A program (source code) is not a machine; it is at best a description of a machine.
>You're limiting your scope to a physical "machine" (calculator, etc) to a running program , but the description of a machine is a machine according to CS theory. If not, then how come a finate state automaton is a machine, have you ever seen one of those built (you have in way, but you know what I mean)?.
>Don't tell me you never had an exam like this
>Build a finate state machine that functions as the coin return mechanism of a soda machine ?
>Obviously you didn't build a soda machine nor a circuit, but you wrote the machine either in a little diagram or pseudocode or a regular expression, right ? That's the type of machine we're talking about here.
No it isn't. We are talking of the legal defenition of a machine -- you know, the one that is used for IP law. While IANAL, I do know that source code alone does not qualify.
>I agree, but does it make it okay to publish or
>otherwise make available to foreign nations the >blueprints to build a laser to blind spy
>satellites or distrupt communications satellites?
In a word, yes. Unless the laser was designed under NDA from your company, or as a confidential govt. project, you DO have the right to publish such plans. That doesn't mean you can sell the lasers, or that you HAVE to publish it, but you can.
Or how about pseudo-code. Take canonical algorithms and data structures (eg. merge sort and binary heap). The easiest way of describing to a human how those work is through pseudo-code.
DES encryption is not just a "machine", it is an idea, a mathematical concept. The best way communicate that idea to someone is going to closely resemble the actual code.
Do free speech and free expression only cover "simple" ideas?
Are the Schrodinger equation or Maxwell's equations "speech"? I would say so. Very compact and succinct, but speech non the less. If you don't agree, ask any physicist.
It's not a device until you compile it. High level languages are mainly for human use, or we'd all still be writing programs by toggling 32 switches on or off and then hitting enter.
Ok, so what you are saying is that a recipe has less protection under the first ammendment than political speech?
I find that laughable! Ha Ha.
Source code was created so that a human could express ideas relating to performing tasks easily.
It so happens that in order to be un-ambigious, this language must be structured, much as mathematics is a structured language relating to formulas, source is a structured set of languages relating to algorithms.
Let me put it this way: If I put a source file on my desktop and click upon it, my computer happily obliges me by opening up an editor, and not a compiler.
This suggests rather strongly that source code is meant to be read and interpreted by humans, and as such is communicative speech.
if(person.attribute("ignorant")==TRUE)
then person.thinks(!free_speech);
else person.thinks(free_speech);
IF you understood that, then it must have been speech... Do you understand?
A pathological example of source code as speech are the entries into the obfuscated C programming contest. here we have source that is intentionally as byzantine and opaque to human eyes is as possible within the confines of the C compiler, yet in spite of this, the primary purpose of these programs is as a sort of art to be viewed is source form by other humans. The fact that it compiles and executes is necessary for the source to be considered interesting in this case, but the act of running the program isn't something that is typically very useful. Clearly in this case, source is speech.
I thought both mean "repeal the laws that make it a crime." So where's the difference?
I believe GPL has a neat definition of source code. It's the form of code which the programmer used to create the software. Thus, I don't think you could cheese a good judge with dissassembled source, since it's not the form in which the program was created.
--ac
Sorce code isn't a machine. It is a series of instructions.
A machine does some thing.
Source ( or any executable instructions) doesn't do any thing per say it tells the machine (computer) what to do.
Not just source, but all software is "information," and therefor speech.
True, 'Source' is different from 'Dissassembly'
Source is written by humans, while disassembly was machine generated. 'Source' being the Source, i.e. the Origination, or Design Plan of the program.
Some points: 1) We are not talking about CS defenitions; we are talking aboout legal definitions. 2) Claiming that instructions do something makes them a machine is the same as claiming that a recipe makes them a cook -- rediculous.
The Law News Network has another article, http://www.lawnewsnetwork .com/stories/A1253-1999May6.html, with a bit more focus on the legal aspects ... including what happens next.
I've been following crypto politics for a number of years now. This ruling is a good sign. But that fence-sitting from the second judge is troublesome; basically, Sanity is only partially in control here.
This whole thing is a symptom of the ongoing fascist tendancies of the government. Get real; they try to defend against terrorists by taking privacy away from everyone else, and thus preventing them from defending themselves against more routine crimes.
- Dave
ahhhh, but if YOU designed the idea without using any patended devices, and not for a corporation simply for yourself, could they government do anything? I suppose they could restrain you afterwards but they could not use PRIOR restraint. You can desiminate any idea you can manufacture. As far as I know, provided you did not create that idea for someone else, working on something already covered under such laws. After you came up with the idea, I suppose they might do something.
And indeed the EFF is paying for Bernstein's most excellent lawyer. Please support them. I know I'm joining.
>> What's the difference between a regular computer language (c,java,perl) vs "compiled" machine code besides the obvious levels of complexity and lack of portability (machine code)?
... or pseudo code? But you get the idea -- the languages fall into a continuum from the nearly incomprehensible (machine code) to the very comprehensible but nearly unusable(1) (natural human languages). And does the line shift as the computer can handle higher levels of human comprehensibility? (e.g. if a computer could use english as a programming language, would english lose its protected status?)
> C, Java, Perl, and even FORTRAN are meant to be read by other people. As such it could be considered a form of expression. Free speech is meant to safeguard communication between people. Compiled machine code is not meant to be read by people but only by a machine. Therefore, it isn't a language as far as free speech is concerned.
This raises an interesting meta-question. Namely how many people need to understand something in order for it to be language protected by the 1st amendment? I'm sure that there are some people to whom the machine code could be expressive of the ideas of a program -- but that there are relatively very few of them. So where do we draw the line? Could binaries (understood by a few people) be considered speech? What about assembly code? Or code in C or perl or
(1) For a computer anyway.
This happens to a few patent applications - your patent is delayed indefinitely and you get a secrecy order. This has a lot in common with what they wanted to use the patent to do to the rest of us, so I have no sympathy.
Let's say I were to create a computer language and compiler that would use natural language (albeit very refined language) to create a program.
Like COBOL?
>...even if the computer understands you (which will require Star Trek levels of AI)...
Have you ever played Zork or Adventure? The first Zork game ran on a PDP-10, and its parser was definitely not "Star Trek levels of AI", but it could understand you, and it could respond accordingly.
>the main purpose of natural languages is and will forever be to communicate with humans.
I don't think it's really fair to separate languages based on what they are meant to communicate with. Using your analogy, every non-human animal language is not speach. Thus, are only human languages "natural languages"? No, absolutely not.
A Turing machine is, but you can only make a *description* of one with normal ink and paper, because ink and paper don't *do* anything. A universal Turing machine tape is also merely a description of the device a universal Turing machine (including my own brain) would become while acting on it - the tape itself is inert. Likewise, viruses are not alive, though life reacts to them.
"Normal" barring a machine based on chemical reactions between unusual inks and papers representing states, of course....
So, if you wrote PGP in assembly, with nice, long variable names, and readable labels, I would consider that source code. If you wrote it in C, compiled, and dissassembled it, I would not consider it source any more. It doesn't seem to hard to establish whether any given program was originally written in assembly or not; thus, it should not be a big issue in court.
--ac
that link wasn't there at the time the original news.com article was posted.
At first there was text at the bottom saying "more information coming soon"
Actually, VB code files are human-readable pretty easily, just as long as you move the files over to a Linux box where you won't get GPFs every 15 seconds just by keeping Emacs open.
The primary purpose of _most_ source code is to instruct a computer. But source code can, and _is_, used to explain ideas to _people_. The most obvious example of this is pseudo-code.
The U.S. government, in its brief in the appeal of the Junger case, argues that it would not be unreasonable for the government to restrict posting of virus source code as well -- because of the harmful potential of viruses.
This is truly absurd. Without source code, it's harder to explain how a virus works. If the government wants to penalize those who harm other people's computer systems by deploying viruses, that's one thing. But when they claim that they can essentially stop discussion of viruses, that's entirely another. And, IMNSHO, that's a clear violation of my 1st amendment rights.
The importance of recognizing source code's expressive value isn't simply about finding a back-door for crypto. It really _is_ about my freedom, as a computer scientist, to express my ideas to others.
Oh, come on. SOME of us CAN read and write machine code.
> A program is a machine, it has nothing to do with a computer nor wheter it's compiled or not. See my response to "Feh!".
A program (source code) is not a machine; it is at best a description of a machine.
latin for "Friend of the Court"
All sorce code is information and therefore speech.
> Exactly how I feel, can't programs be looked upon as a sort of deterministic (finate?) state machine ?
No. The source code is not a machine of any kind. Otherwise source code by itself would be patentable. But it isn't(1). At best, the source code describes a machine.
(1)Strictly speaking, the so-called "software patents" only apply when the algorithm described is actually run on a real computer. This is why you can write and publish code for a patented algorithm without violating the patent, but after you've compiled/translated it to run you have.
for the sole purpose of Crypto development. It sucks. I mean, If I did most of the work at home in WA and just tell the Boss I did it at the office in CAN (to get is done faster), who's really gonna know? This whole crypto law is lame to begin with.
> You can use a computer language to communicate ideas (ie code examples, explaining an algorithm, exam question, etc) but that's not their main purpose. In other words , computer languages can be used to communicate ideas but their main purpose is to instruct a computer (hence "computer" language).
I disagree. The primary purpose of most "computer" languages is to be easily readable by humans. If the main purpose was to instruct a computer then assembly, or even machine code, would be a better choice. After all, it is easier for the computer to understand lower level languages. But higher level languages were developed with the express purpose of making the code easier for people to understand. One side effect of being understandable to humans is that since the computer has to jump through a lot of hoops to use the code it doesn't matter which computer has to jump through the hoops, so we get the possibility of portability.
So we'll force everybody to have GNU tools and use them! Great!
ENGLISH
The FSF /GPL already has a reasonable definition of source code. Basically, it is something along the lines of "The most natural representation of the program for human understanding and modification." In general, I think this means "The machine-readable language used by the author to write the original program." Thus, CFront output from C++ code would not qualify, yet assembly boot-block code for x86 would. After all, it is possible to write a Java->C++ compiler, or a C++->Java compiler (not very efficient, though!), yet the "source", as the name implies, is the original form of the program.
No, but the graphical layout of the windows you draw, etc. are source code for it. So if you save these in whatever VB's file format is, and then load them up to view in it, it should be ok. And the actual code you write (do VB programmers actually ever do that?) is, of course, source.
More than once I've directly edited hexidecimal machine code, if I can read it, and I'm a human, then it's exportable, right?
(I also used to be able to read hexidecimal ascii text, but I'm much better now.)
- Somebody write a program that uses 46 (or whatever it is that Our Benevolent Uncle allows us to ship) bits, that calls a VERY SMALL native module that specifically performs the "part that's 46-bit" (or whatever it is that Uncle Sugar lets us ship).
- Somebody else hand-code the 128 bit version of that module in hex.
Now, here are three important points:- Keep careful documentation to prove that you're writing by hand.
- Put in an optimization that no standard compilers currently perform.
- Make sure that you know of somebody outside the U.S. who can read it, and is interested.
Then, you can:- Redistribute the 46-bit "front end"
- Redistribute the 128-bit binary code. That's human written, and contains tweaks that can (currently) be done only by a human.
The binary code should then be "free speech," since it demonstrates a new, unique method of performing a particular operation to the (admittedly small, but nonzero) population that can actually read a hex dump.Yep! djb rocks!
There is more than one way to skin a cat. And so, says the government, we lost at the 9th Court of Appeals, and we might lose at the Supreme Court. That means nothing. Sure, we can no longer use *that* law to prevent widespread use of strong crypto, so we will use another. Too many laws in so many other places, will, in practice, still result in what we want. If you think the new ones are also unconstitutional, we will invent new ones again. Win all you want, does it really make a difference even if you are occasionally winning a case or two?
It would be trivial to make an installer that atomatically assembles code.
Yes, and this neatly fixes things like assembly, which in general are not "source code", yet, in ie, kernel or boot code, some amount of assembly is required. Also, if you do assmebly code optimization of crypto routines, that is also part of the "source code".
"We find that the export administration regulations operate as a prepublication licensing scheme that burdens scientific expression, vest boundless discretion in government officials, and lack adequate procedural safeguards,"
Am I the only one who's disgusted by this gibberish?
To hell with the decision, it's just law. This is serious.
Posted by FascDot Killed My Previous Use:
Dude! I drive from Bellingham to Oak Harbor every day--and it's not for crypto. Even lamer.
I've seen several arguments here for both sides. Some say that source is just a machine. It's there to perform a function. Others say that it's expressive and can be used to communicate ideas. I've tended to see it more from the view of those who think source is not really speech. I guess the arguments from that side have just been better. I did have a question though for those who believe that source is not speech.
Let's say I were to create a computer language and compiler that would use natural language (albeit very refined language) to create a program. Now, the source would essentially be a description of what the program should do. The compiler would translate it into a working program. (nevermind how difficult this would be, it's just for the sake of this argument) Would this still be considered just source code? Even though you can read it just like a technical manual or some other document that describes the inner workings of something? I just want to know how far everyone wants to carry this thing. Should technical papers that describe how to build or create something not be given any protection under the first amendment? What about recipes? Where is the line? What qualification must it meet in order to be considered speech? That's the real question I guess. Even though I've been favoring one side, I want to look at this objectively. Any answers?
It's not enough to bash in heads, you've got to bash in minds. - Captain Hammer
Hey, Rob...here's an unsolicited suggestion for making /. a little bit more literate:
Whenever you post a story that touches upon the US Constitution, the Bill of Rights, and restrictions to what people can write/say/transfer, include a little reminder at the end that the proper spellings are "speech" and "amendment."
Learn to spell: nickel, missile, lose, solely, amendment, speech, kernel, probably, ridiculous, deity, hierarchy, versus
Someone mentionned that the primary goal of code is a language to talk to the machine, not to exchange ideas. I think this is a valid point, but in the case we care, the crypto law created a particular circumstance where one was unable to communicate an idea (crypto algorithm) via source code.
I understand that, I was only responding to someone saying that he primarily uses code to communicate ideas. What I was saying was that that's ok, but not the primary function of code (which you seem to agree)
So for that particular case, the code was *really* used as a way to communicate an idea to others. If this guy is able to phone somebody else and describe the algorithm, why should it be prohibited that he sends a page of source code instead. Source code here is clearly used as a way of communicating something to others, not giving instructions to the machine.
Your point here just makes me wonder now, what about pseudo code ? If the problem here is not communicating the idea but the exchange of code that can be compiled , what about pseudocode ? Can that be posted and escape these restrictions ?
Just wondering.
- sigs are for wimps.
I could swear I read that same news.com story linked to from the previous story about this. :-)
Chris
If you are a news reporter and receive top secret military data you *CAN* desiminate it, I believe. What you *CAN'T* do, as a government employee is compromise the security of this country, and if you do so you *CAN* be tried for treason. Cryptography does not sell out our nation to a foreign power. It is, at its root, an equation, nothing more. It is just a piece of information, a piece of math. It is an idea. And the freedom of ideas is *NECESARY* in a free society.
> However, I have to wonder
:)
> about the whole code == speech thing.
You used a C conditional operator in that sentence
(I'm not trying to make too much of a point, I just found it amusing)
There is, after all, a difference between sharing ideas about things which are potentially damaging to you with your enemies, and outfitting your enemies with guns. The thought that really underlies proprietary software and crypto regulations in the USA is "we're the only ones who can do this," which is blatantly false, and nieve as well. Sharing thoughts, ideas, and sometimes even implementations is what has changed us from a society of relatively weak technology to a society of high technology in little over 100 years.
The gvmnt, in its infinite wisdom, has concocted the idea that some things are "born secret". That is that even if you were to independently come up with something that the gvmnt had already decided was secret, what you discovered would be secret by definition, and you could get in trouble for distributing it. The last time I saw it mentioned was in relation to people trying to independently engineer atomic weapons. Apparently somebody stumbled on something that the gvmnt had already declared "top secret", and they wouldn't let him publish.
...phil
...phil
"For a list of the ways which technology has failed to improve our quality of life, press 3."
IANAL, but I believe that technically you can only be tried for treason if the country is in a state of war.
...phil
...phil
"For a list of the ways which technology has failed to improve our quality of life, press 3."
Posted by FascDot Killed My Previous Use:
regulations - plural subject
operate, vest and lack - plural predicates
What's the problem?
If you are talking about "burdens" note that it is embedded in the phrase "scheme that burdens" which is perfectly legitimate.
Posted by FascDot Killed My Previous Use:
If the only way to export encryption-enabled software is via source, then the only encryption-enabled software that can be export is Open Source.
Which means Apache, for instance, can finally build SSL right in, but IIS cannot.
Okay, so opensource crypto software becomes exportable, but only in source-code form, from what it seems. What about if you make an rpm of crypto software that includes the binary in addition to the source? Is that still disallowed? This is a problem for things like Linux distributions that want to have Apache working 'out of the box'.
Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.
But the emotions and thoughts to be created can not be predicted even if the audience is defined as a set of variables, machines have predictable outputs that's why they are programmed (given all variables).
The only inherit limit to predicting a human response to normal speech is the due to quantum uncertainity. _Theoretically_ we could predict a human response that would be 99.99999999999999% accurate if we just knew enough about the system (brain chemistry, neural structure, etc...) (ie. "given all variables").
Likewise, our ability to predict a computers response to speech is also bound by this same uncertainity. Maybe the RAM flipped a bit, a drive sector demagnetized, transistor wouldn't switch, or some other little unexpected, highly unlikely quantum disturbance, and suddenly the computer is no longer predictable. Sure it doesn't happen often, but it's basically the same problem as with humans.
We you get right down to it, a human is a machine, just like a computer. A computer is an incredibly simple machine, and so we can almost always predict its response. A human brain is such a complex, chaotic system that predictions of its response is far more unreliable than that of a computer. Regardless, a computer language, like a human language, is often manipulative, but never deterministic.
I was wondering this myself....
It's not enough to bash in heads, you've got to bash in minds. - Captain Hammer
Nonetheless, it is still a recipe on how to carry out a process, which has much less grounds for first amendment protection than political speech.
Exactly. It is speech. But it's not POLITICAL speech, so it has less protection than other forms of speech.
Does this mean they're getting rid of those silly US/crypto laws?
Earn cash in your spare time! Blackmail your friends!
Uhm. This wasn't being written for an audience of lawyers. It's being written for an audience of people on the street. I bet most of them don't even know what exactly a "friend-of-court" brief is much less an amicus curiae!
** Martin
Well, they have to infringe on constitutionaly guaranteed rights for them to be repealed. And, the export rules aren't removed yet. They've only proven that the source is speach and therefore constitutionally protected. However, other forms of speech are NOT constitutionally protected, this means that if the government can show that the speach is an immediate threat then they can again restrict them.
But, this puts the burden of proof on the government, not the authors.
** Martin
The secret to enjoying Slashdot is to realize that it should not be taken too seriously.
In Engligh, that means that the Appeal court now orders the district court to implement this decision, and nothing happens until they do.
Why do I get the feeling that the DOJ is going to stay this decision before the appeal court has a chance to "make it so"?
Sigh, oh sigh.
- Sam
The secret to enjoying Slashdot is to realize that it should not be taken too seriously.
I never would have thought that the encryption export laws would be removed this way. Remarkable that the system of checks and balances actually worked for once.
I wonder when/if the drug and/or prostitution/sodomy laws, etc. will ever be declared unconstitutional, since they seem to infringe on certain liberties.
Ben
Judging from the way the /. article was
worded, it sounded like the programmer
is just some Joe Random guy...
Not so. Daniel J. Bernstein has written
quite a bit of Open Source software. If
you don't recognize the name, you might
recognize one of his most popular
works: Qmail.
-Creon
IANAL, but from reading the opinion of the court online, it seems that the question is essentially whether or not source code is considered "expression" under the Constitution (and thus entitled to full 1st Amendment protections) or if it is to be considered "conduct" (from what I could tell this seems to mean something which has expressive properties but is mainly functional in nature, and thus entitled to a lesser 1st Amendment protection).
Two of the three appellate judges (Fletcher and Bright)in this case decided that source code, since it was designed to be read by humans, and often used to communicate ideas, should be considered "expression". The dissenting member (Nelson) of the panel considered it to be "conduct", since he believed its primary purpose was to be run through a compiler to generate machine code.
A brief excerpt (from Fletcher):
We emphasize the narrowness of our First Amendment holding. We do not hold that all software is expressive. Much of it surely is not. Nor need we resolve whether the challenged regulations constitute content-based restrictions, subject to the strictest constitutional scrutiny, or whether they are, instead, content-neutral restrictions meriting less exacting scrutiny. We hold merely that because the prepublication licensing regime challenged here applies directly to scientific expression, vests boundless discretion in government officials, and lacks adequate procedural safeguards, it constitutes an impermissible prior restraint on speech.
However, the fight may not be over yet. Bright states:
I join Judge Fletcher's opinion. I do so because the speech aspects of encryption source code represent communication between computer programmers. I do, however, recognize the validity of Judge Nelson's view that encryption source code also has the functional purpose of controlling computers and in that regard does not command protection under the First Amendment. The importance of this case suggests that it may be appropriate for review by the United States Supreme Court.
So the Supreme Court may end up reviewing this one. Especially since in a similar case (Junger vs government) a different district court had ruled the opposite of in this case. In fact, the dissenting judge in this case cites the Junger ruling in his commentary.
You're not alone. This era is full of contempt for the proper use of language. Oddly enough, this is particularly true of programmers, many of whom would cheerfully beat you to death for failing to adhere to OOP idioms in C++, but who will butcher English without a second thought.
Proud member of the Weirdo-American community.
A few years ago, I wrote some code to "read" english-language descriptions of property deeds and then used the description to draw plat maps in AutoCAD. As natural language tools get more sophisticated, you'll be able to program all sorts of tasks in your native tongue (perhaps even by speaking the recipie). Then where will you draw the line between speech and programming?
I don't even know if the plaintiff in the case has been allowed to post his code, due to the the appeal. Additionally, the decision may only apply to him at this point. No "laws" have been overturned. You'd better remove that link, call your lawyer, and wait for more details to emerge before posting this for the whole world to see.
(Don't say I didn't warn you, when the G-men come bustin' down your door... :)
Perhaps the very restrictions are an indication of the duality of source code.
One must believe that restrictions placed on 'encryption source code' are in place to prevent the communication of ideas behind the encryption (to the outside world) as much as they are in place to prevent the dissemination of encryption tools to the world at large.
By restricting communication of encryption ideas the US gains (supposedly) protection from the implementation of those very ideas.
The intent of the government (to prevent the spread of encryption theory by preventing export of source code) could be used to show the validity of the argument that Source Code communicates ideas.
If you read the opinion, or even the first paragraph of it, you'll see that the primary point it makes is that the export restrictions constitute a prior restraint on scientific expression.
I agree, but does it make it okay to publish or otherwise make available to foreign nations the blueprints to build a laser to blind spy satellites or distrupt communications satellites? This after all is entitled to similar free speech.
I do not necessarily agree with banning encryption, but simply claiming "free speech" is not the answer and now opens up or at least questions some larger issues.
~afniv
"Man könnte froh sein, wenn die Luft so rein wäre wie das Bier"
~afniv
"Man könnte froh sein, wenn die Luft so rein wäre wie das Bier"
Richard von Weizs
It is my understanding that certain techonologies cannot be transferred to any foreign country irregardless of "who owns" the information. A company can develop their own high techonology sensor or detector using advanced procedures, but they still cannot sell or allow access to the information to foreigners without approval. It can be simple text, which everyone agrees is a protected form of speech, but it is still regulated technology.
~afniv
"Man könnte froh sein, wenn die Luft so rein wäre wie das Bier"
~afniv
"Man könnte froh sein, wenn die Luft so rein wäre wie das Bier"
Richard von Weizs
The consequences have not been thought through. It does not have to be top secret military plans either as mentioned above.
According to ITARS (International Traffic in Arms Regulations), I cannot reveal certain technologies whether in written, illustrative, and which ever means. I go to jail if caught. This is for technology that would be not very difficult to get in the U.S and does not have to be top secret or classified information.
So, is the First Amendment being violated? After-all, I most likely would be in a foreign country when sharing the information.
So the question begs to be answered, if the U.S. cannot restrict source code based on the First Amendment, how can it be illegal for me to allow a foreigner to see a schematic of my high technology unclassified work?
I also agree that encryption should not be banned from exports. I see the benefits of my secure communications and the worldwide growth of the Internet commerce more important. But at what sacrifice?
I do find it difficult to work with ITARS expecially when working with foreign partners, but I also recognize the danger of divulging information that could later bomb me at home.
~afniv
"Man könnte froh sein, wenn die Luft so rein wäre wie das Bier"
~afniv
"Man könnte froh sein, wenn die Luft so rein wäre wie das Bier"
Richard von Weizs
Others have already approached this point from the property angle (the gov't owns the plans, so they get to choose who's allowed to see them), but there's another direction which has been ignored: Prior restraint.
That phrase comes up repeatedly in the articles on this decision. Now, IANAL, so I may not be understanding the term correctly, but it would appear that the ban on crypto was found unconstitutional because it prohibits "speech" on certain topics without consideration of the actual content.
In the example of high-grade military lasers, the crypto ban would be the equivalent of a law stating that, because lasers have military purposes, you can't tell anyone how to make a laser - it doesn't matter what you have to say about lasers, there's a "prior restraint" in place, so it's not allowed.
But, again, IANAL. Legalese being what it is, "prior restraint" may well mean something completely different.
Isn't binary still a form of computer language?
My understanding of the case was that the professor had won the right to publish encryption source code in a scientific article. (That is, that the law prevented him from his right of scientific expression.) It doesn't generally apply to computer code which isn't being used for illustrative purposes.
So this might apply to binary code, if a bunch of hex was published in a scientific journal. It also might apply to a download which accompanies such an article, but it certainly doesn't remove cryptography restrictions, or technology export laws (esp. with govt. contracts, which probably have additional wording).
--
Business. Numbers. Money. People. Computer World.
A document describing top-secret military plans is speech too, but I'm not allowed to give it to a foreign party (and probably not allowed to pass it around within the U.S. too).
Actually, when the NY Times published the "Pentagon Papers" during the Vietnam War, the Supreme Court did rule that publishing these stolen classified documents was within the NY Times' free press rights. (I don't know if "exporting" came up - it certainly would now days with the Internet.)
--
Business. Numbers. Money. People. Computer World.
You can give names to machine code instructions (they do have names you know, STORE, LOAD , etc), or you can write it directly with an editor. Also, what do you say about hex code , isn't that another representation of binary numbers more easily understood by humans.
:P
Free speech is meant to safeguard communication between people
Agreed, but even tough many argue that code is for communicating with others, I have yet to see a valid argument against the fact that computer languages are mainly for easier human->computer communication ! (And no, I'm not including pseudocode here, that's another argument)
Anyways, the anonymous response is better than mine, make sure you read it.
- sigs are for wimps.
... does not make natural language a "computer language". Computer languages as usually defined need to be expressed as a non deterministic finate state automata (machine) or a set of regular expressions (which can then build a NDFA).
In addition, and I'll say it again, the main purpose of a computer language is allow humans to build a machine (or set of instructions) for a computer to execute. That's not the main purpose of natural languages, even if the computer understands you (which will require Star Trek levels of AI), the main purpose of natural languages is and will forever be to communicate with humans.
- sigs are for wimps.
1)I'm not talking about a legal definition, where did I say anything about that??? read the posts.
2)It would be nice if you made your arguments with maybe some references or technical detail.
BTW - A Turing machine is not a machine ???
- sigs are for wimps.
Seems to be on topic. Yet another case of moderators putting their opinions before principle !
- sigs are for wimps.
A program (source code) is not a machine; it is at best a description of a machine.
You're limiting your scope to a physical "machine" (calculator, etc) to a running program , but the description of a machine is a machine according to CS theory. If not, then how come a finate state automaton is a machine, have you ever seen one of those built (you have in way, but you know what I mean)?.
Don't tell me you never had an exam like this
Build a finate state machine that functions as the coin return mechanism of a soda machine ?
Obviously you didn't build a soda machine nor a circuit, but you wrote the machine either in a little diagram or pseudocode or a regular expression, right ? That's the type of machine we're talking about here.
- sigs are for wimps.
*LOL*. You forgot to type in the sound of the police beating you up before taking you away !
BTW I love that signature "Free the Mallocs" , he hehe
- sigs are for wimps.
What's the difference between a regular computer language (c,java,perl) vs "compiled" machine code besides the obvious levels of complexity and lack of portability (machine code) ?
Just asking since it seems rulings are favoring "source code" distribution but not "binary" distribution. Seems to me these 2 things are the same if you look at them from a different point of view. Hey, I know a couple of people that still program at the machine level !
- sigs are for wimps.
However, I have to wonder about the whole code == speech thing. I mean, okay, on the one hand, you're talking about a *language*, in which you can express ideas (heck, people write poetry in Perl), but on the other hand, a program is essentially a machine.
... poetry, etc.
Exactly how I feel, can't programs be looked upon as a sort of deterministic (finate?) state machine ?
And the main purpose of a program (and a computer language) is to build such machine so that the computer can execute said code. The other uses for programs are secondary; sample code, er
Anyways, I'm against the stupid crypto laws, but I don't see the code / free speech thing clearly yet. I'm wondering if many of us are agreeing to it because it might be the one argument to defeat these archaic restrictions imposed by the goverment.
- sigs are for wimps.
The main purpose of source code is to give the compiler a recipe about how to assemble a binary file ...
... / an algorithm) but I call it a (state) machine. How does your recipe idea differ from technical blueprints ??? Are these also free speech ?
No, I have to disagree. The main purpose of a computer language (hence source code) is to allow a human to give a set of instructions or build a machine/program to be executed by a computer (whatever a computer is). Having it compiled and converted to binary is implementation dependent, and obviously what happens today, but not really the "main purpose".
You could build a braind dead piece of hardware that read ascii text of some language (let's say BASIC, to keep it simple) and use that language as it's machine code. It'd be stupid, but possible.
As far as the "recipe" angle, I don't know what that buys you. You could call a program a recipe (a set of steps to
- sigs are for wimps.
See my previous reply to the other AC.
...
Source code isn't a machine. It is a series of instructions. A machine does some thing.
A series of instructions do something, if not, what are the instructions for ????
Source ( or any executable instructions) doesn't do any thing per say it tells the machine (computer) what to do.
I'll say it yet again
See my previous definition of machine, or read up on compiler and or automata theory for the proper definition of a machine (ie state machines, etc)
BTW - I'm really getting more and more convinced that we need to start voting "aye" for that CS certification
- sigs are for wimps.
A program is a machine, it has nothing to do with a computer nor wheter it's compiled or not. See my response to "Feh!".
- sigs are for wimps.
Great post. It seems some of us are debating the same thing the judges are. This is a very complicated issue.
- sigs are for wimps.
the export administration regulations {
operate as a prepublication licensing scheme that burdens scientific expression,
vest boundless discretion in government officials,
and lack adequate procedural safeguards,"
}
Kaa
Kaa
Kaa's Law: In any sufficiently large group of people most are idiots.
A lot of people around here seem to have doubts about whether source code is REALLY speech. Well, this subject is probably worth a discussion of its own, but the point here is that the court held that for the purposes of the US legal system source code is speech. That does not imply any observations on whether it makes any sense in other context to treat source code as speech.
For example, one quite famous case from last century said that underground oil deposits are a wild animal. Don't ask.
Kaa
Kaa
Kaa's Law: In any sufficiently large group of people most are idiots.
A person is not a machine, and I won't believe otherwise until someone proves to me what the nature of conciousness, and self-awareness are. The corresponidences between machine languages and human languages are not direct, nor is it sufficiently precise to say that a poem "compiles" on a person.
But more importantly, there is a difference between the intent involved in creating a program vs. speaking or writing. Programs serve only one function: to give instructions to machines. Human utterances my serve to give instructions, but they may also be used to do a lot of other things.
It is possible to draw analogies between programs and poems, but they're not the same thing. I think you're confusing analogies with equivalences.
---Joe Merlino gnupg public key ID: 1E91EBAF
That's a very good point. I hadn't thought of it like that.
---Joe Merlino gnupg public key ID: 1E91EBAF
A lot of people here seem to be happy of the ruling but think code isn't really speech.
Someone mentionned that the primary goal of code is a language to talk to the machine, not to exchange ideas. I think this is a valid point, but in the case we care, the crypto law created a particular circumstance where one was unable to communicate an idea (crypto algorithm) via source code. So for that particular case, the code was *really* used as a way to communicate an idea to others. If this guy is able to phone somebody else and describe the algorithm, why should it be prohibited that he sends a page of source code instead. Source code here is clearly used as a way of communicating something to others, not giving instructions to the machine.
my 2 cents.
I agree, but does it make it okay to publish or otherwise make available to foreign nations the blueprints to build a laser to blind spy satellites or distrupt communications satellites? This after all is entitled to similar free speech.
:P
Very interesting point you have here. I had to spend a while thinking about it. But I believe I would be correct in saying that distribution of such technologies would show mallicious intent to commit treason (hand em high boys).
While distribution of encryption code, expecially if the rest of the world has just as good of code, shows no mallicious intent to hurt your government other than just to give it a really good rasberry
Also if you were to distribute such technologies most likly unless your just a super genius of amazing magnatude, either you would be working at the University in which there would already be a system in place telling you what you can and cannot do with the information you learned. Its called a Non disclosure agreement ladies and gentlemen.. and nomatter how much we hate them, they don't violate our freedom of speach. Or you are working at some laboritory funded by the government, in which you are going around your employers back and giving out secrets. (once again.. hang em high)
C, Java, Perl, and even FORTRAN are meant to be read by other people. As such it could be considered a form of expression. Free speech is meant to safeguard communication between people. Compiled machine code is not meant to be read by people but only by a machine. Therefore, it isn't a language as far as free speech is concerned.
I think there are some important differences here.
A document describing top-secret military plans would be disclosing proprietary govt information. You would either have to be a person with top-secret access to get it, or you would have to get such a person to get it for you. Either way, they would be violating laws against stealing govt documents.
On the other hand, a program that you've either written from scratch or based on code/algorithms in the public domain would not involve such theft.
I do agree, though, that "free speech" is a wacky way to approach these laws.
--
--
Jason Eric Pierce
I read the majority and dissenting opinions (ugh... I hate legalese...), and from what I gathered there, the principle foundation of the decision was the fact that source code was readable and understandable by a person and was thus able to clearly communicate ideas, such as encryption algorithims. Binary code was not intended for this purpose (hmm... just know thought about the ramifications of intent), and beyond that, it was not dealt with, so I would assume (I am a physic/comp sci major, so I might be wrong here) that is is not covered by the decision. As far as the munition part, that deals with prior restraint, which is one of the three main points used in the majority opinion. Basically, since they have decided that source code (in this case, the encryption program) was a language, then the code was a language and thus falls within the confines of free speech. The Supreme Court already has numerous decisions stating that prior restraint of speech is unconstitutional, and that, in turn, is what the munition label is doing; it is a prior restraint. Well, I hope that answers those questions... as far as your company, maybe it falls under regulation due to the contract (pure speculation here, but worth looking into)? You might want to check that out... would shed some light... too bad we don't get many constitutional lawyers reading /. -G.
Not likely that other laws that infringe upon personal liberty would be affected by this sort of thing. Thanks to years of religious and governmental indoctrination on the subjects of drugs, sex, etc., it will be a very long time before Joe Average will be able to admit to himself that a "free" country's government should not overly concern itself with dictating morality for the masses.
"That's Tron. He fights for the Users."
The export regulations on cryptography also prevent US citizens for example giving lectures on (regulated) cryptography algorithms in foreign contries. Clearly, this is a violation of the first amendment (if you develop a crypto algorithm on your own, it's not confidential :) So I guess the point about source code being free speech is derived from the fact that it is possible to explain algorithms.
Really. I posted some brand-new code yesterday and... Hey... Who are you guys? Wait a minute! I have the right to remain silent? What are you talking about? Mmmph....
:) */
/* Shamelessly stealing slashdot schtick
Save the whales. Feed the hungry. Free the mallocs.
Thad
The Bolachek Journals
Classifying source code as speech in relation to the first amendment has nothing to do with any other function it performs. Obviously source code isn't a language that people write novels or political opinions in, but that does not mean it is not a form of expression. Source code is more than just speech but for the purpose of protecting our rights to share it, classifying it as speech will do just fine.
Muslim community leaders warn of backlash from tomorrow morning's terrorist attack.
When the powers that be try to trample over freedom, the easiest way to let them win is to conform to what they demand. I wish I had developed some cryptography algorithms because the very first thing I would do is post them and any source code using them as far and as wide as I could. The Clinton administration does not have the constitutional power to dictate what I can and cannot say. Furthermore _I_ say they can't dictate to me. They may think they can do it, but that is only true for those who lay down and do what they are told. The price of freedom after all, is eternal vigilance.
Muslim community leaders warn of backlash from tomorrow morning's terrorist attack.
Most objects made with screws are machines, not pieces of art. Similarly, most source programs which have been purposedly obfuscated are not intended for humans.
It is true that artists sometimes use screws or
C code in their works. So someone will have to decide whether a bunch of metal and screws (or a bunch of C statements) is a piece of art (thus protected), a form of scientific communication (thus protected too) or a machine (restricted.)
I understand this court decision as meaning "source code used as a form of scientific communication is free speech."
Next time, someone will be charged because even though it was source code, it was not intended for scientific communication. (Nor it was a piece of art...)
If all source code is allowed to be exported, then
executables will be exported in assembly with no
comments and assembled overseas. It would be
as much obfuscated as possible so that it in
essence will be equivalent to compiled code.
If the Government claims this is not valid, then
all sources will have to be subject to a panel of
experts which will decide whether the source code
was really intended for humans or not.
Of course, this will create a mess even bigger
than the one we have now. So I guess, unless
the Government changes their ideas about crypto
stuff, this court decission will have no real
impact.
The main purpose of "The Anarchist's Cookbook" is to give people recipes about how make bombs so that they can do so if they desire. The main purpose of source code is to give the compiler a recipe about how to assemble a binary file. In both cases, prior restraint of publication of the recipe have now been declared unconstitutional (go team!). There may exist national security concerns, but this legislation sweeps too broadly and fails under strict scrutiny.
Besides, the better analogy is to math formulas and jargon, which were already previously covered by the 1st ammendment.
"If one is really a superior person, the fact is likely to leak out without too much assistance" -- John Andrew Holmes
The simple, REALISTIC stand, which is similar to free capitalism itself, is a completely unrestricted encrytption industry. Everyone, even terrorists, should have a right to privacy. it IS the best way, although not perfect, admittedly.
BY THE WAY, does anyone know that Hitler quotation (preferably in german) which goes something like Ein furher, Ein whatever (One everything) which people have compared to something Gates said? you know what I'm talking about... Just put it up! I need it for a paper i'm doing. Thanks
Calling out bogus battery capacity claims.
What does "amicus curiae" mean?
I think you're just being too uptight.
If you want real Latin phrases, why not catch the radio on the web from Norway. All Latin, all the time.
Will in Seattle
Will in Seattle
This is an impossible burden to prove with crypto export laws -- they don't serve any "vitally necessary interest" in keeping foreigners from having the technology, since it's much too late for that, and the courts are unlikely to recognize the government's real objective (maintaining the ability to do widespread, as opposed to individually targeted, surveillance) as a legitimate "vitally necessary interest".
/. If the government wants us to respect the law, it should set a better example.
It's rather obvious that our legal system is whacked when it can cost the average person their entire life savings and more just to protect their rights. The simple fear of the cost can make people give up their rights. Even if you know you're right and can prove it in court, it can be dragged out until you run out of money and credit and you lose because you can't pay for a lawyer to do the paperwork properly. Most average people don't have much savings. If they lose, they lose big. It's wrong. It should be changed. But it won't be. It benefits the right people just the way it is.
It's not enough to bash in heads, you've got to bash in minds. - Captain Hammer
- Sam
The secret to enjoying Slashdot is to realize that it should not be taken too seriously.
From one point of view, all language acts (from speech to written and all forms of performance in between) are machines, "[built] out of nothing but logic and a set of syntactical rules." Language has a number of purposes; communication is but one. Creative writing can be thought of as functional in the sense that it strives to create thoughts or emotions in the audience or reader.
All writing also has a meta-context which tells about the time in which it was written and the author who wrote it. You can tell what century (and sometimes what decade) just from the sentence construction and the vocabulary of the artifact; sometimes you can even tell the nationality of the author. Source code is no different, although you need to look at different aspects: commenting, structure, variable names, use of different language constructs.
I believe that there is an equivalence; language is language, thought is thought, and if the machine that a poem "compiles" on is a person and a perl script "compiles" on a Linux box (although both are interpreted languages in very much the same way), well, a machine is a machine.
While I wouldn't send a postcard to my mom written in Ada, I also wouldn't type a program in Italian. And, frankly, both can be used to communicate algorithms or recipes or driving directions or what the weather is like.
The current ruling assigns freedom of speech to source code within a limited context, that of encryption scientists using it as a medium of communication in their field. While this is a step in the right direction, it leaves open many issues in the more general source code = free speech issue.
In the dissenting opinion in this case, as well as several respondents here, it has been stated that source code, in and of itself, constitutes a mechanism, or machine, with the inherent capability of performing the task for which it was written. In rebuttal, I will provide the following argument:
Source code, in and of itself, can do nothing, regardless of the format it is in (electronic, written in a book, or tatooed on your arm).
That source code is the clear and explicit instructions for the performance of some task is non-arguable, however the most ingenious 'C' source code, stored on a floppy, sitting on your desk, does nothing but gather dust.
In order for source code to perform the task for which it was written, it requires the additional resource that interprets those instructions to produce the effect described by the source. This additional resource *must* always be present in some form. If not, the source then becomes nothing more that a fairly rigorous description of some task.
The argument has been presented that the deterministic nature of source code provides the mechanical aspect of it's nature, in that as the instructions are unambiguous, they would be interpreted identically by any device designed to execute code. While this is true, it does not abrogate the need for the execution device, without which, source code becomes merely words.
The free speech concept enters in when we consider that we can communicate, in equally unambiguous terms, the entire functionality of a given program, using any human language. Or if you wish, we can create a program listing of sorts using prepositional logic, that would be just as deterministic and unambiguous as any specified programming language, and yet there would be little argument that such descriptions would fall under the umbrella of free speech.
In other words, the argument against source code as free speech boils down to the assertion that since no further human interpretation or modification is necessary to allow this task to execute on some device, that it automatically loses its free speech privelege as a result.
Since a sufficiently rigorous human language description of a process is effectively equal to a source code description of the same process, either both must be considered free speech, or neither. The act of translating the human language process into a source language process does not remove the freedom from the speech.
Nunc Tutus Exitus Computarus.
HL - Human Language
CL - Computer Language
CLs are deterministic, HLs are not.
ex: "Give me that thing over there."
CLs can be decomposed into a state machine, HLs cannot (or if they can, it's an unsolved problem)
ex: "I love you"
Creative writing can be thought of as functional in the sense that it strives to create thoughts or emotions in the audience or reader.
But the emotions and thoughts to be created can not be predicted even if the audience is defined as a set of variables, machines have predictable outputs that's why they are programmed (given all variables).
I just don't see how a human language fits the "Automata Theory" definition of a machine.
- sigs are for wimps.
If you use your Web site to pass top-secret military plans to the Russians, or libel somebody, or violate copyrights, then you can be sued or prosecuted. The First Amendment doesn't give you a blanket immunity for this kind of thing.
However, the government can't require you to pass all of your Web pages through a government censor to make sure that they contain nothing classified, libelous, or copyright-violating.
That's prior restraint. If a law involves prior restraint on expression, the courts tend to look on it with great suspicion.
send all spam to theotherwhitemeat@ropine.com
According to one source the court published the descision on the web and included information that under current law is not for export. If the Supreme Court were silly enough to uphold current law, could the 9th court be prosecuted?
--- If you don't want to know the answer, don't ask the question.
A program and a computer are collectively a machine, but source code is just text. Look, I'll bet you I read more source code that I actually compile. I read source code to understand concepts, to learn new techniques, and to understand an algorithm. Source code conveys information to me. That's speech. Period. Now some will say, "Yeah, but you can also give source code to a computer and, ultimately, do something functional with it." Ok, fine. So what? Does that somehow obviate the fact that it's speech? How could it? You said that you don't think we should necessarily reduce the two to an equivalence (source code and speech). I agree with that, but people need to realize that that statement does NOT imply that Speech != Source Code, but rather Speech >= Source Code.
>- Bryan Ischo said: "Even if source code is speech [snip], how does it relate to export laws? A document describing top-secret military plans is speech too, but I'm not allowed to give it to a foreign party (and probably not allowed to pass it around within the U.S. too). So how is source code, given that it is free speech, any different from this?" Actually, when you look at it from the abstract legal stand point, this is the strongest position to hold (at least within the US). By taking advantage of the strict anti-censure measures granted in the First Admendment, this will ensure future Comstock-like laws will either not be created or shot-down rapidly; basically, assume the Supreme Court case is one, nothing can be done to stop it short of another Supreme Court ruling or a constitutional admendment. Once the position is firmly establish that is free speech, NOTHING can be done to restrict it (remember, this precisely the reason we have such an invasive press and no one can do anything about it). Using any other method would apply some ability to restrict; basically this professor and his lawyer(s) wanted to get it established with as few restrains or hooks as possible. As for the government document bit, remember, by the same token, you may only freely print and disseminate what you own; the government owns those documents, not those who read them, and thus they may decide who can and cannot read them; that professor owns his crypto, he can decide who can read it... that is the whole principle, in fact. Free speech merely gives YOU, not the government, the right to decide who can read your work. Hope that clarified it a bit for you... -G.
BeBoxer pointed out rightly yesterday that "source code == protected speech" has the greatest implications for Free/Open Source developers.
Possible scenario -- Mozilla with 128-bit encryption is allowed to be distributed in source code form worldwide. Binary-only browsers are subject to the current restrictions.
Other possibilities -- American companies specializing in crypto software or using strong-crypto technology choose to release source code because it's the only way they can export their products. They can still restrict modification, redistribution, etc. so it's not really Free Software, but maybe it will lead to that.
As others have mentioned, the ruling itself is fairly narrow in scope. Still, it will be interesting to see where this goes.
Save the whales. Feed the hungry. Free the mallocs.
The essential problem in cryptography is the real and crying need for open standards and flexibility. Of the many articles that clear the air on this topic and related stuff, some can be found at http://www.counterpane.com from Bruce S. He calls all unknown and untested algorithms/methods snake oil, a smart and appropriate name.
This judgement just goes to prove that most people if intelligently provided the facts go to make the appropriate decision. The US crypto laws are simply ridiculous. You cant download software, but you can print the source code, ship it across, scan it back and compile, I mean this is going just too far. Someone better do something about this pretty soon, the Supreme Court seems the most aware !!!
Mmmmmmm. Floor pie!
Even if source code is speech (which I kinda doubt but I haven't formed any definitive opinions yet), how does it relate to export laws?
A document describing top-secret military plans is speech too, but I'm not allowed to give it to a foreign party (and probably not allowed to pass it around within the U.S. too). So how is source code, given that it is free speech, any different from this?
BTW, this is not to say that I am for export restrictions on encryption software. Far from it. I am totally opposed to these laws and I am even registered as an "arms dealer" on that page that lets you ftp encryption software to a source outside the US and then be listed as a known arms dealer, in protest of the laws.
BUT, I think that ruling that source code is free speech and therefore restricting its export is a violation of the 1st amendment is not a good way to go about repealing these laws. The result is good, but the means are completely backwards.
My experience with ITARS is brief. I work at an advanced tehcnology company this is also a defense contractor, but my project is a government contracted sensor for scientific research. There are some foreign partners involved and as a result, I was warned to be careful of what drawings are hanging on the walls and what types of information I discussed during their visits. Similarly, my data is examined before I can forward it to certain countries even when the destination is to a co-worker. Nothing I do is close to being classified.
You may have touched on what I find confusing. You say that transporting a binary is still illegal. Two comments:
You are correct that it is important to have all the information. However, IANAL, so I don't understand the immediate legal consequences, which is why I bring up (or rather Bryan Ischo brought up) the concern in this thread of the general "free speech" interpretation. This seems to me to fly in the face of all other export restrictions regarding information.
~afniv
"Man könnte froh sein, wenn die Luft so rein wäre wie das Bier"
~afniv
"Man könnte froh sein, wenn die Luft so rein wäre wie das Bier"
Richard von Weizs
Not trying to be nitpicky (and I'm not really disagreeing with your post) but ...
You can use a computer language to communicate ideas (ie code examples, explaining an algorithm, exam question, etc) but that's not their main purpose. In other words , computer languages can be used to communicate ideas but their main purpose is to instruct a computer (hence "computer" language).
This is probably what they meant by "functional aspect". It's sad that they use this for the stupid crypto laws, but I'm not sure computer languages are free speech. If they are free speech (which I'm not really against,but confused) then other things like hardware diagrams, mathematical formulas, plans for a house, etc should also be considered free speech (they probably are ?).
- sigs are for wimps.
As a practial matter, I'm glad the court ruled the way it did (the dubious precident-setting status of the ninth curcuit not withstanding). I think the U.S. crypto regulations are stupid and reactionary, and any step towards getting rid of them is a good thing.
However, I have to wonder about the whole code == speech thing. I mean, okay, on the one hand, you're talking about a *language*, in which you can express ideas (heck, people write poetry in Perl), but on the other hand, a program is essentially a machine.
I have to think that the process of creating software occupies some middle ground between expression and construction. You're building a machine, but you're building it out of nothing but logic and a set of syntactical rules.
I believe that code should have the same protection as speech, but I don't think that we should necessarily reduce the two to an equivalence.
---Joe Merlino gnupg public key ID: 1E91EBAF
First, this is the Federal Court of Appeals, not the Supreme Court. The government doesn't always listen to the Court of Appeals.
Second, this ruling only protects the transmission of encryption source code, not binaries. Any restrictions on binaries are just as much in force today as they were before the ruling. It does, however, mean you can put source code up on your web or FTP site and expect not to be hassled for it. If you are hassled for it, you can expect to have an easier legal battle with this precident in hand.
----
Open mind, insert foot.
No decision was overturned, it was upheld. That is, Bernstein had won a previous case and the court upheld that ruling in the 9th district court. Professor Junger is the one who lost his case here in the 6th district (http://samsara.law.cwru.edu).
The difference is fairly important because 2 courts making the same ruling adds some credence. This will surely go to the Supreme Court next, where I believe Bernstein will win again.
** Martin
Gah. After several attempts to get the user login to work in lynx, I have given up.
Anyway, I wanted to respond to the questions people have been posting as to whether source code ought to be considered protected, expressive speech.
In short, yes. If you read the opinion, or even the first paragraph of it, you'll see that the primary point it makes is that the export restrictions constitute a prior restraint on scientific expression. This is a crucial point, that not many people seem to have remarked on, and I'm very happy that the court saw how important it is. I've been involved in the scientific community most of my life (my parents are both marine biologists at a major oceanographic research institution), so I have a particular interest in this aspect. Free exchange of scientific ideas is, as anyone who understands the issues will tell you, absolutely essential to scientific progress. We like to talk about how wonderful our culture of openness and sharing of source code and ideas is, and I'm not saying it isn't, but you know what? We didn't come up with it. We borrowed it from the tradition, which has existed as long as anyone has done scientific or mathematical research, of publishing one's results in peer-reviewed journals, of sharing one's information, and of helping other people doing similar projects. Collaboration and sharing of knowledge is one of the most important principles of scientific research, just as it is of the free software community.
Scott Madin, cookieless.
http://www.student.carleton.edu/M/madins/
Pancakes is the better part of valor.
While many are celebrating this ruling due to the crypto export implications, I think real victory is for the deeper issue: is source code speech? While the fight's not over, I'm very encouraged that the appelate court reaffirmed that source code is expressive and is a form of speech (at least within the narrow context of this case).
The Junger case was similar. It involved a law professor who wanted to post crypto source code for his "Computers and the Law" class. A lower court (going against the ruling of the lower court in this case), sided with the government and dismissed the expressive nature of source code due to its functional aspect. They basically said source code wasn't speech. This was, IMHO, a bad bad ruling. I really find it offensive that the court would assert that a language such as C that I spend a large portion of my time reading and writing (often just for fun), isn't speech. I use computer languages to communicate ideas. That's speech. The judge (Gwinn) in the Junger case just didn't "get it." I've read this ruling, and it's obvious that at least some of the judges (or more likely, their aids) do "get it."
Let's just hope that if this goes to the Supreme Court, they're as enlightened.