Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Encryption Security

More On Encryption Source Code Appeal 158

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. "
This discussion has been archived. No new comments can be posted.

More On Encryption Source Code Appeal

Comments Filter:
  • by Anonymous Coward
    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)
  • 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.
    In short, yes. There's no difference between someone sharing, for example, the cure for cancer and someone sharing the blueprints or other schematics for a new type of laser, which has as one of its applications cutting things in orbit. Scream "national security" all you want, but chances are, and history will back me up on this, that the other guys already know about it because their scientists just found it. (e.g., Bell and his telephone). One mustn't ignore the other fact that the cure for cancer is also going to help your enemies - their ranks will be bolstered because of fewer people dying of cancer.

    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
  • IANAL, but I believe that technically you can only be tried for treason if the country is in a state of war.


    ...phil
  • 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'.
  • 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....

  • That's what I was looking for. I didn't really consider that portion of the opinion I guess. Thanks for pointing it out.

  • Just ship the source to Taiwan to be compiled, assembled into the iso image and mass produced. Then outsource foreign distribution overseas. Even without crypto, that could make business sense

  • The way I see it, I'd define "source code" as whatever programme information that is written or typed by a human being, which can be easily modified by another human being using the same method by which the code was first written or typed, and that would then require some kind of transformation before being executed by a computer's processor. By this reasoning, source code written in any computer language would be protected by this ruling. That includes interpreted languages like Perl. Java source files would be covered too, but not .class files, as these have been converted into some other format, from which the original code cannot be determined. The point is that anything wwritten by a person, as long as there is no particular intermediate conversion process that obfuscates it, is free speech.
  • 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.
  • Heh, real programers use cat>a.out :P
  • what about pseudocode ? Can that be posted and escape these restrictions?

    Actually, from reading the opinion (http://www.epic.org/crypto/export_controls/bernst ein_decision_9_cir.html), it seems that posting of "Instructions" was prohibited: Bernstein later wrote a set of instructions in English (the "Instructions") explaining how to program a computer to encrypt and decrypt data utilizing a one-way hash function, essentially translating verbatim his Source Code into prose form. [...] The State Department responded that Snuffle was a munition under the International Traffic in Arms Regulations ("ITAR"), and that Bernstein would need a license to "export" the Paper, the Source Code, or the Instructions.

    As for code being speech or functional, there's a decent point made in the opinion: Second, and more importantly, the government's argument, distilled to its essence, suggests that even one drop of "direct functionality" overwhelms any constitutional protections that expression might otherwise enjoy. This cannot be so.
    (Search for the words "draft card" to find why it cannot be so.)

    The majority decision has really well written arguments as to why "we reject the notion that the admixture of functionality necessarily puts expression beyond the protections of the Constitution."

    I highly recommend that everyone read it.

    -Virgil
    --
  • 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.


    Discussed in the opinion:
    The distinction urged on us by the government would prove too much in this era of rapidly evolving computer capabilities. The fact that computers will soon be able to respond directly to spoken commands, for example, should not confer on the government the unfettered power to impose prior restraints on speech in an effort to control its "functional " aspects.

    -Virgil
    --
  • Assembly, however, is readable. It is, after all, just another programming language (though the compiler-like programs you must run it through to make it executable are called "assemblers"). It is, in fact, made so that humandcan analyze and understand it; it just doesn't do that job very well.
  • Assembly language, yes.

    Compiled/assembled code, no.
  • Does this mean they're getting rid of those silly US/crypto laws?

  • 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
  • This was quoted over on sci.crypt, from Bernstien's attorney Cindy Cohn:
    First, the decision is not final for at least 52 days (45 for the govt to seek rehearing/7 more for mandate to issue), even if the government doesn't seek cert or rehearing. It could probably be cited as a slip opinion in the meantime, but is not binding precedent yet.

    Second, once it is final, it will only be binding precedent within the 9th Circuit.

    Third, the status pending further review will probably be determined by a motion for stay within the rehearing period. If such a stay is granted, as it was below [in the lower court], folks will probably have to wait until it's all over before they can publish without fear of prosecution. We will oppose any request for a stay, of course.

    - Sam
  • I just talked to a lawyer about this, and the decision is not in effect until the case is returned to the district court and the mandate is spread.

    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


  • 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 [epic.org] 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.

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


    This isn't about liberties; it's about money. Not allowing crypto to be exported would have caused this country grievous economic harm, billions of dollars' worth. It was just a matter of finding the right loophole to wiggle through.

    Drugs and prostitution would probably be at least decriminalized (as opposed to legalized), too, if doing so would make them more profitable enterprises. It won't, so they'll be remaining illegal and criminal.

  • 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.
  • Perhaps a more natural analogy would be programs and cooking recipies. One could argue that recipies are already used to "program" the machines that bake Twinkies and mix and bottle Jolt Cola.

    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?

  • If you're thinking "gosh, *I* live under the jurisdiction of the 9th Circuit, so I guess I can post my source code!", you should think again.

    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"
  • 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"
  • 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"
  • How can you state that anti-polygamy laws don't limit your marriage rights, while laws against same-sex marriages do?

    Polygamy is not even a religous issue in the lawbooks, even though the previous poster used that argument. There is absolutely no constitional basid for anti-polygamy laws.

    Regarding you argument against polygamy being a religious right: your counter agrument of human sacrifice is irrelevant. Human sacrifice involves the intentional harming of another human life. While some of us may rhetorically feel otherwise, marriages (regardless of the numbers of people invovled) do not. The analogy does not hold.

    Regardless of whether or not a church sanctioned it or not, a triganamous marriage is simply illegal in many (all?) states.

    Additionaly, the point was not about what was legal but how it (it being crypto distribution) could be suppressed.
  • 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?

    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.

  • Your argument is baloney from a legal perspective (IANAL), in that your "rights" to practice polagamy are not any more restricted than anyone else's. I'm sure if you practiced human sacrifice, you'd also find your "freedom of religion" impinged. Furthermore, nothing is preventing you from having a church-sanctioned 3-way, just as you mention, you just can't file tax forms to that effect and so on.

    A better argument would be the ban on same sex marriage, which regardless of your moral opinion, obviously does limit certain people's marriage rights wrt others.
    --
  • 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).

    --
  • 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.)
    --
  • 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.

    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. :P
  • ... 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.
  • 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.

    CS - 101
    Compiling has nothing to do with wheter a program is a "machine" or not, just like an algorithm has nothing to do wheter it runs on a computer as you know it today or a DNA strand. Again (see my post above) programs translate to state machines. The types of machines we're talking about here have nothing to do with hardware nor 1's or 0's.
  • 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 ???
  • Seems to be on topic. Yet another case of moderators putting their opinions before principle !
  • 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.
  • by Augusto ( 12068 )
    *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
  • 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 !
  • 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.

    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 ... poetry, etc.

    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.
  • The main purpose of source code is to give the compiler a recipe about how to assemble a binary file ...

    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 ... / an algorithm) but I call it a (state) machine. How does your recipe idea differ from technical blueprints ??? Are these also free speech ?
  • 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 ...
  • 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!".
  • Great post. It seems some of us are debating the same thing the judges are. This is a very complicated issue.
  • I think this is a tricky issue because how do you really define source code? Code that has to be compiled to run? Where does that leave Perl, Java, other interpreted langauges? Is interpreting the same as compiling? I could use a "null compiler" and call a binary my "source." Code that is human readable? What would be the status of entries into the obfuscated code contests?

    If one wanted to get around the "source code only" restriction, I would think it would be easy. One could have a small stub of source code included with the otherwise binary-only software. For RPM, you have one of the scripts cal gcc while you are installing. For IIS, you could even include a small compiler in its' install routine (with that much bloat, who'd notice?) that does essentially the same.

    What is source code?

    Jason Dufair
    "Those who know don't have the words to tell
  • "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,"
    }

    Kaa

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


    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.

  • That's a very good point. I hadn't thought of it like that.
  • 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.

    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 :P
    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)

  • 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)?



    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.


  • It was a rhetorical question.

    Basically, you can compile out binaries to assembly and ship that + an assembler as part of your program installer.

    Hence, non-opensource encryption code can be shipped under the "free speech" precedent.

    --


  • Wouldn't assembly language be "source"?

    --


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

    --

  • 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.
  • Perhaps I should narrowed my comments a bit on the matter; I do not have much knowledge as to the export laws regarding "restricted technology." Can you point me to a site or book that will enlighten me on this matter? I would not at all be suprised to find most of these tech restriction restrict the technology being developed under government contract and hence have restriction therein, but then, these are just musings on my part... I am serious about that site, however; I feel it would be good to know the current laws on the matter. On the same matter, remember that crytography can (and I think is) classified as a technology and a munition; it is still illegal to transport it internationally as a binary (ie, a technological model), but the source can be sent (ie, the simple text mentions in the previous post). As with any new court rulings, it is important to read the legal review to get the full understanding of the matter. Juast something to consider.... -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.
  • 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 :) */
  • Speaking as someone who has been through the export approval process, I have one thing to say.... WAHOOO! This looks like an important step in getting those idiotic laws off the books. Supreme Court here we come.

    Thad

  • 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.
  • 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.
  • 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.
  • > Wouldn't assembly language be "source"?

    Yes, but not machine code. Not assembled assembly. Not object files. Just the human readable stuff that can't be directly executed by a computer.
  • 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
  • In the case of source code vs. assembly vs. machine language, I would expect that the court wouldn't have difficulty discriminating between the three and upholding the right to export source code and not the other two. The ruling stated: "Source code is not meant solely for the computer, but is rather written in a language intended also for human analysis and understanding." If I were prosecuting the case for the state, I would get expert witnesses to testify that assembly and binary are not legible and therefore not "intended ...for human analysis and understanding" and therefore there is no prior restraint on the free exchange of ideas.
  • What does "amicus curiae" mean?
  • 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.

  • This is very exciting for me, since it allows me to make available the source to an application of cryptography I developed myself [samiam.org].

    - Sam

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

  • 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.
  • 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").

    I would say it's a much more difficult problem even if you knew "all the variables". I would even argue that this problem is NP complete and thus has no "solution" (like many other problem). Of course, for me to say that would require a mathematical proof, that I don't dare try :)

    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.

    No, when I said computers before I meant computers in the general term, not computers as we know them know. A computer could be anything, made out of silicon, a biological machine (DNA strands ! Has been done :), etc. But in the theoretical sense of a computer, it can be predicted, and it can be done mathematically. Not so with humans, since there are no theoretical humans. :)

    Regardless, a computer language, like a human language, is often manipulative, but never deterministic.

    Ouch ! This statement is waaaay wrong in some many ways it's not even funny. You're confusing concepts here. Computer languages are deterministic by definition, the failures that you talk about have nothing to do with determinism(if a then b) or non-determinism (if a it is be b or c), those are implementation details irrelevant to this type of discussion at this level. For more information on this refer to a book like "The Dragon Book" (Compilers, Principles, Techniques, and Tools - by Aho, Sethi and Ullman) or any Automata Theory book available in your school.
  • One of the key issues in the court's decision, as someone else here pointed out, is that ITAR is exercising prior restraint on free speech.

    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.

  • 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?
  • 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.
  • 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 !!!
  • by Bryan Ischo ( 893 ) on Friday May 07, 1999 @11:28AM (#1900592) Homepage
    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.
  • by afniv ( 10789 ) on Friday May 07, 1999 @01:31PM (#1900593) Homepage
    I don't know of anything specific on the web. A brief search found the Defense Trade Controls [pmdtc.org] website, although I don't think it is of much help.

    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:
    1. Isn't binary still a form of computer language?
    2. Revealing a source code of an encryption algorithm (a munition as you stated), regardless of how incomplete it is, would be similar to me allowing a drawing to be visible, regardless how incomplete it is.

    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"
  • by Augusto ( 12068 ) on Friday May 07, 1999 @11:31AM (#1900594) Homepage
    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 ?).
  • by nigiri ( 22248 ) on Friday May 07, 1999 @11:32AM (#1900595) Journal
    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.
  • by Gleef ( 86 ) on Friday May 07, 1999 @11:10AM (#1900596) Homepage
    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.
  • by heller ( 4484 ) on Friday May 07, 1999 @11:07AM (#1900597) Homepage
    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
  • by Scott Madin ( 5020 ) on Friday May 07, 1999 @11:52AM (#1900598) Homepage

    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/ [carleton.edu]

  • by geoGIF ( 19699 ) on Friday May 07, 1999 @11:22AM (#1900599)
    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 [slashdot.org] 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.

"Everything should be made as simple as possible, but not simpler." -- Albert Einstein

Working...