Except that software does not need to be implemented with electricity. You could run software using a complicated mechanical computer. You could run software using pen and paper. For many patented algorithms, pen-and-paper work is not even infeasible, just slower than using a computer.
Additionally, what you are interested in with software is not the electrons; you do not save electrons somewhere to reuse them later. The results of a computation are just as useful if they are printed, output as punched tape, transmitted as radio waves, or stored as electrons in a capacitor. The electrons are just a part of the machine that is running the software; they are not part of the software itself. Software patents do not say, "A method of manipulating electrons" because that is not what software is or does. Electronic computers happen to be the most effective way to use software, but software is not defined what sort of computer is used.
it is quite likely any CS professor he asks that will confirm that CS is mathematical
Only theoreticians would say that; there are plenty of CS professors who view software development as a kind of engineering work, and who would say that software is related to math in the same way that circuits are -- mathematical foundations, but with something more. You and I both disagree, but unfortunately the US government tends to favor any argument that presents opportunities for businesses to open new revenue streams (regardless of the cost to society).
However, there are some benefits to close source operating systems, especially to business who require 24x7x365 support, enterprise management tools, and feature/UI stability
This has nothing to do with patents
http://www.redhat.com/
I agree that trivial software processes should not be patentable, but when you put a series of trivial processes together to create an OS, a game, or an application, these should be patentable as they are non-obvious, non-trivial, and rises to the level of creation.
So by putting lots and lots of abstract things together, you somehow wind up with something that is not abstract? I said that I draw the line at abstract: something which operates only on abstract concepts should not be patentable no matter how complicated it is.
Except that a chemical process operates on real, physical matter, while software operates only on abstractions like numbers. Software is entirely abstract; the closest an algorithm comes to an industrial process is computing how some industrial process should be carried out (which, if memory serves me, was the subject of the first software patent). I draw the line at abstraction -- something which is completely abstract should be beyond the reach of the patent system, which is logic behind the existing rule that mathematics cannot be patented (except when we allow it to be patented e.g. DSP patents, crypto patents, etc. -- all forms of software patents).
I think the key difference between software and industrial processes is that software operates only on abstract data, while industrial processes operate on actual material. I cannot write a computer program that produces plastic, no matter how fancy the program is; the closest I can come is writing a program that computes how plastic could be produced using some machine or industrial process.
The dividing line is the abstract nature of software, which is itself just an extension of the abstract nature of mathematics. Your web browser is a mathematical operation that maps HTML, Javascript, CSS, and mouse and keyboard inputs to images (which are displayed on your screen). The Church-Turing thesis pretty much says this, using an abstract model of computation that is even more powerful than the computer that you are using to read this.
Now, to be fair, there are two things that influence my view on this matter. The first is that amount of theoretical work that I do, where algorithms and "software" are described in a very formal language, and so I tend to view all software as being mathematics; I know full well that a lot of people view software development as engineering work and would disagree with my "software is just math" view of the world. The second is that I do not accept the argument that copyrights are a form of property, which is a necessary view to have if you equate software with an industrial process.
Process patents were supposed to be granted on manufacturing processes that are not truly mechanical -- for example, processes involving complicated chemistry. That is fine, it is certainly in the spirit of the patent system and not simply "using someone else' invention for what it was intended."
Somewhere along the line, though, we got industrial processes confused with mathem^H^H^H^H^H software.
We are not supposed to have patents on mathematics, yet that is exactly what software patents are -- especially patents on signal processing techniques, cryptography, etc., which are the patents that most severely threaten innovation.
Patents on industrial processes are not the same thing as patents on mathematics, and that is what cryptography patents are. At one time it was RSA that was patented, and the RSA patent contributed to the stagnation of cryptography deployment in the early days of the Internet (we are still feeling the effects of that now). Today, it is elliptic curve crypto that is being mired down by patents, and cutting edge cryptographic technology is languishing in obscurity because of it. Patents have been granted on lattice crypto, which is even more obscure than ECC.
Mathematics is not supposed to be patentable, yet somehow these crypto patents -- which are really just patents on algebra -- have been granted, and our national security is threatened by it (the NSA has licensed some ECC patents for use in certain security sensitive contexts, but that is not even close to what we need). That anyone could defend that situation is mind boggling to me.
That is why I wrote, "Arrest or kill" -- sometimes they have enough restraint not to use their assault rifles, and then other times they lack that restraint and wind up killing bystanders, children, and their targets.
To be honest, for technical writing LaTeX+BibTeX is a hell of lot easier to deal with than any word processing software (LyX being the "exception"), at least in my opinion. There are a few non-technical reasons for this, like the fact that most of the relevant conferences and journals in my field publish LaTeX style definitions and that BibTeX citations are available everywhere (and I do not have to procure additional software just for biblioigraphy management).
I am more concerned about them increasing the number of helicopter patrols. Where I live now, the state sends out helicopters to look for cannabis plants, then indiscriminately arrests anyone who has a cannabis plant on their property. We recently had someone in my county arrested and convicted of cultivating marijuana because the patrol spotted feral hemp on his property.
Tickets are one thing, but when you have a paramilitary force prepared to arrest or kill anyone over these plants, you are dealing with tyranny.
Why even bring up one time pads? A stream cipher or various stream-cipher-like modes of block ciphers would be sufficient in practice, and in theory we can show that (under certain widely accepted hardness assumptions) you can make a stream cipher with many-message security against computationally bounded adversaries. There is a well-known construction of a secure stream cipher from a one-way function and a hardcore predicate for that function.
Once the attacker knows the algorithm being used, nothing today will stop him from detecting that data is present
Except for time, since we generally want ciphers whose ciphertext is computationally indistinguishable from a uniform random sequence i.e. where no efficient algorithm can distinguish between ciphertext and randomly sampled strings with non-negligible probability, even when the algorithm is publicly known (as long as the secret key is not publicly known). Whether such a thing is actually possible is still an open question, but there are good reasons to think that it is possible.
if someone is LOOKING for data to be hidden in the image
There are ways to defend against this; I would start by looking at the Learning With Errors problem, which I suspect could be used for strong steganography systems (it is already being used for cutting edge cryptography).
In theory you're right, but practical application can be a problem.
That is the pattern with the Tor project. In the 90s, a lot of work went into anonymity systems that were resilient to concerted efforts to defeat the anonymity guarantees (mixmaster). Tor took some of these ideas, but had to sacrifice the strong security guarantees to ensure practicality, since high latency is not going to be acceptable for most applications. Strong steganography will probably not be practical, but some ideas from stego theory will wind up being used by Tor.
Think of it in terms of error correcting codes. You and I agree on a secret linear code, and we then add our codewords to a noisy channel (at the lowest power possible to allow decoding to occur). If the noise power is high enough, then our codewords should be undetectable in the channel; but we can still recover the codewords because we know what error correcting code is being used (it is widely believed that detecting the codewords without knowledge of the code is hard; this is just a restatement of the Learning With Errors problem). Our secret key is a description of the code (which is just a matrix) and we can even turn this into a public key system.
Now, the trick is to determine if the system is still secure when the noise is sampled in some specific way that we cannot control. Is the background noise in a voice chat suitable? What about packet delays (which might be manipulated by your ISP to break the system)? The method described above works fine as a cryptosystem, but there is more work to be done if you want a stegosystem.
Over in practical land, you need a noisy channel where the amount of noise is high enough to overpower efforts to detect your hidden signal, but where someone with special knowledge (knowledge of the secret key) can perform run an error correcting code to recover the hidden signal. This is not at all implausible; we already know how to make cryptosystems based on random linear codes; the real work would be ensuring that security is maintained even when you use the channel's naturally occurring noise to hide the signal (which may not be guaranteed).
Makes it sound like it's flat out impossible to figure out the traffic contains encrypted data.
Well, in terms of steganography, we can speak of "strong" or "provably secure" steganography which can guarantee that no process can decide if a hidden message exists in the cover traffic with non-negligible advantage. If you have a low enough SNR, detecting the existence of the signal at all become impossible; the only trick is to ensure that someone with the secret key can still extract that signal.
Is this really 'hacking' when you guess the password?
It is hacking if you manually enter a URL, so yes, guessing a password is hacking too. Basically, if people are not creative enough to think of how their security system might be defeated, then anyone who defeats it is a hacker (and deserves a jail sentence).
Money is also artificially limited. With modern technology, it is easy for each one of us to print money.
Except that money without the backing of a bank or a government is worthless. Counterfeiting money means more than just making copies, it means convincing people that those copies are actually backed and have value. This is a very different situation from music and movies -- whether or not a particular copy of a movie is authorized has no bearing on your ability to enjoy the movie.
To put it another way: Money comes with all sorts of hard-to-copy features that can be used to verify its authenticity. There is no technical reason that music and movies could not come with such markings...but hardly anyone would bother to check (compare with the way people check $100 bills).
Have you ever thought that the same might be valid for movies, songs and games? artificial scarcity is what enables their creation, keeping their value high enough to be able to spend lots of man years developing those products.
That is one way to do things, but creating artificial scarcity means rolling back the clock and preventing people from having general purpose computers. As long as there are PCs, there will be copyright infringement, and it will happen on a grand scale.
if you don't want performance to be free, do not encode it digitally and accept that restraint.
Sure, except that the bands that do make their songs available online will become more popular and see more revenue from their live shows. The way for musicians to monetize filesharing is to use filesharing as a form of from advertising, and if we stopped spinning our wheels trying to keep copyright alive we could spend our time developing systems that enhance the advertising capability of filesharing. Imagine if when you downloaded a song, you also could receive information on when and where the band that played it will be holding their next concert, with a convenient link to buy tickets.
Except that software does not need to be implemented with electricity. You could run software using a complicated mechanical computer. You could run software using pen and paper. For many patented algorithms, pen-and-paper work is not even infeasible, just slower than using a computer.
Additionally, what you are interested in with software is not the electrons; you do not save electrons somewhere to reuse them later. The results of a computation are just as useful if they are printed, output as punched tape, transmitted as radio waves, or stored as electrons in a capacitor. The electrons are just a part of the machine that is running the software; they are not part of the software itself. Software patents do not say, "A method of manipulating electrons" because that is not what software is or does. Electronic computers happen to be the most effective way to use software, but software is not defined what sort of computer is used.
How many people have you seen executed in the name of religion lately?
it is quite likely any CS professor he asks that will confirm that CS is mathematical
Only theoreticians would say that; there are plenty of CS professors who view software development as a kind of engineering work, and who would say that software is related to math in the same way that circuits are -- mathematical foundations, but with something more. You and I both disagree, but unfortunately the US government tends to favor any argument that presents opportunities for businesses to open new revenue streams (regardless of the cost to society).
https://en.wikipedia.org/wiki/Quadratic_formula
What differentiates a software patent from a math patent? Well, nothing, as it turns out:
https://en.wikipedia.org/wiki/Church-turing_thesis
Moreover, software patents have caused substantial harm to the state of computer security:
http://www.wired.com/techbiz/media/news/2000/09/38635
https://en.wikipedia.org/wiki/ECC_patents
We need to find a good way of protecting the folks who invest in that first copy. If that means patents, I think that's fine.
Let's try avoid reliance on this:
https://en.wikipedia.org/wiki/Artificial_scarcity
However, there are some benefits to close source operating systems, especially to business who require 24x7x365 support, enterprise management tools, and feature/UI stability
I agree that trivial software processes should not be patentable, but when you put a series of trivial processes together to create an OS, a game, or an application, these should be patentable as they are non-obvious, non-trivial, and rises to the level of creation.
So by putting lots and lots of abstract things together, you somehow wind up with something that is not abstract? I said that I draw the line at abstract: something which operates only on abstract concepts should not be patentable no matter how complicated it is.
Except that a chemical process operates on real, physical matter, while software operates only on abstractions like numbers. Software is entirely abstract; the closest an algorithm comes to an industrial process is computing how some industrial process should be carried out (which, if memory serves me, was the subject of the first software patent). I draw the line at abstraction -- something which is completely abstract should be beyond the reach of the patent system, which is logic behind the existing rule that mathematics cannot be patented (except when we allow it to be patented e.g. DSP patents, crypto patents, etc. -- all forms of software patents).
I think the key difference between software and industrial processes is that software operates only on abstract data, while industrial processes operate on actual material. I cannot write a computer program that produces plastic, no matter how fancy the program is; the closest I can come is writing a program that computes how plastic could be produced using some machine or industrial process.
The dividing line is the abstract nature of software, which is itself just an extension of the abstract nature of mathematics. Your web browser is a mathematical operation that maps HTML, Javascript, CSS, and mouse and keyboard inputs to images (which are displayed on your screen). The Church-Turing thesis pretty much says this, using an abstract model of computation that is even more powerful than the computer that you are using to read this.
Now, to be fair, there are two things that influence my view on this matter. The first is that amount of theoretical work that I do, where algorithms and "software" are described in a very formal language, and so I tend to view all software as being mathematics; I know full well that a lot of people view software development as engineering work and would disagree with my "software is just math" view of the world. The second is that I do not accept the argument that copyrights are a form of property, which is a necessary view to have if you equate software with an industrial process.
Process patents were supposed to be granted on manufacturing processes that are not truly mechanical -- for example, processes involving complicated chemistry. That is fine, it is certainly in the spirit of the patent system and not simply "using someone else' invention for what it was intended."
Somewhere along the line, though, we got industrial processes confused with mathem^H^H^H^H^H software.
We are not supposed to have patents on mathematics, yet that is exactly what software patents are -- especially patents on signal processing techniques, cryptography, etc., which are the patents that most severely threaten innovation.
Patents on industrial processes are not the same thing as patents on mathematics, and that is what cryptography patents are. At one time it was RSA that was patented, and the RSA patent contributed to the stagnation of cryptography deployment in the early days of the Internet (we are still feeling the effects of that now). Today, it is elliptic curve crypto that is being mired down by patents, and cutting edge cryptographic technology is languishing in obscurity because of it. Patents have been granted on lattice crypto, which is even more obscure than ECC.
Mathematics is not supposed to be patentable, yet somehow these crypto patents -- which are really just patents on algebra -- have been granted, and our national security is threatened by it (the NSA has licensed some ECC patents for use in certain security sensitive contexts, but that is not even close to what we need). That anyone could defend that situation is mind boggling to me.
If only the paramilitary drug squads were not killing people:
http://www.drugwarrant.com/articles/drug-war-victim/
That is why I wrote, "Arrest or kill" -- sometimes they have enough restraint not to use their assault rifles, and then other times they lack that restraint and wind up killing bystanders, children, and their targets.
To be honest, for technical writing LaTeX+BibTeX is a hell of lot easier to deal with than any word processing software (LyX being the "exception"), at least in my opinion. There are a few non-technical reasons for this, like the fact that most of the relevant conferences and journals in my field publish LaTeX style definitions and that BibTeX citations are available everywhere (and I do not have to procure additional software just for biblioigraphy management).
You are probably thinking of this guy:
https://en.wikipedia.org/wiki/Hillel_the_Elder
Who summarized it as the inverse of what you said:
What is hateful to you, do not do to others.
I am more concerned about them increasing the number of helicopter patrols. Where I live now, the state sends out helicopters to look for cannabis plants, then indiscriminately arrests anyone who has a cannabis plant on their property. We recently had someone in my county arrested and convicted of cultivating marijuana because the patrol spotted feral hemp on his property.
Tickets are one thing, but when you have a paramilitary force prepared to arrest or kill anyone over these plants, you are dealing with tyranny.
Why even bring up one time pads? A stream cipher or various stream-cipher-like modes of block ciphers would be sufficient in practice, and in theory we can show that (under certain widely accepted hardness assumptions) you can make a stream cipher with many-message security against computationally bounded adversaries. There is a well-known construction of a secure stream cipher from a one-way function and a hardcore predicate for that function.
Once the attacker knows the algorithm being used, nothing today will stop him from detecting that data is present
Except for time, since we generally want ciphers whose ciphertext is computationally indistinguishable from a uniform random sequence i.e. where no efficient algorithm can distinguish between ciphertext and randomly sampled strings with non-negligible probability, even when the algorithm is publicly known (as long as the secret key is not publicly known). Whether such a thing is actually possible is still an open question, but there are good reasons to think that it is possible.
if someone is LOOKING for data to be hidden in the image
There are ways to defend against this; I would start by looking at the Learning With Errors problem, which I suspect could be used for strong steganography systems (it is already being used for cutting edge cryptography).
In theory you're right, but practical application can be a problem.
That is the pattern with the Tor project. In the 90s, a lot of work went into anonymity systems that were resilient to concerted efforts to defeat the anonymity guarantees (mixmaster). Tor took some of these ideas, but had to sacrifice the strong security guarantees to ensure practicality, since high latency is not going to be acceptable for most applications. Strong steganography will probably not be practical, but some ideas from stego theory will wind up being used by Tor.
Think of it in terms of error correcting codes. You and I agree on a secret linear code, and we then add our codewords to a noisy channel (at the lowest power possible to allow decoding to occur). If the noise power is high enough, then our codewords should be undetectable in the channel; but we can still recover the codewords because we know what error correcting code is being used (it is widely believed that detecting the codewords without knowledge of the code is hard; this is just a restatement of the Learning With Errors problem). Our secret key is a description of the code (which is just a matrix) and we can even turn this into a public key system.
Now, the trick is to determine if the system is still secure when the noise is sampled in some specific way that we cannot control. Is the background noise in a voice chat suitable? What about packet delays (which might be manipulated by your ISP to break the system)? The method described above works fine as a cryptosystem, but there is more work to be done if you want a stegosystem.
Over in practical land, you need a noisy channel where the amount of noise is high enough to overpower efforts to detect your hidden signal, but where someone with special knowledge (knowledge of the secret key) can perform run an error correcting code to recover the hidden signal. This is not at all implausible; we already know how to make cryptosystems based on random linear codes; the real work would be ensuring that security is maintained even when you use the channel's naturally occurring noise to hide the signal (which may not be guaranteed).
Makes it sound like it's flat out impossible to figure out the traffic contains encrypted data.
Well, in terms of steganography, we can speak of "strong" or "provably secure" steganography which can guarantee that no process can decide if a hidden message exists in the cover traffic with non-negligible advantage. If you have a low enough SNR, detecting the existence of the signal at all become impossible; the only trick is to ensure that someone with the secret key can still extract that signal.
Here is the mainstream definition of hacking:
If nobody thought of a way that a security system could be defeated, then anyone who defeats that system is a hacker and has engaged in hacking.
Is this really 'hacking' when you guess the password?
It is hacking if you manually enter a URL, so yes, guessing a password is hacking too. Basically, if people are not creative enough to think of how their security system might be defeated, then anyone who defeats it is a hacker (and deserves a jail sentence).
Everyone is very keen on sharing until it is their stuff that is being shared.
I guess he has not heard of these people:
http://www.fsf.org/
Money is also artificially limited. With modern technology, it is easy for each one of us to print money.
Except that money without the backing of a bank or a government is worthless. Counterfeiting money means more than just making copies, it means convincing people that those copies are actually backed and have value. This is a very different situation from music and movies -- whether or not a particular copy of a movie is authorized has no bearing on your ability to enjoy the movie.
To put it another way: Money comes with all sorts of hard-to-copy features that can be used to verify its authenticity. There is no technical reason that music and movies could not come with such markings...but hardly anyone would bother to check (compare with the way people check $100 bills).
Have you ever thought that the same might be valid for movies, songs and games? artificial scarcity is what enables their creation, keeping their value high enough to be able to spend lots of man years developing those products.
That is one way to do things, but creating artificial scarcity means rolling back the clock and preventing people from having general purpose computers. As long as there are PCs, there will be copyright infringement, and it will happen on a grand scale.
if you don't want performance to be free, do not encode it digitally and accept that restraint.
Sure, except that the bands that do make their songs available online will become more popular and see more revenue from their live shows. The way for musicians to monetize filesharing is to use filesharing as a form of from advertising, and if we stopped spinning our wheels trying to keep copyright alive we could spend our time developing systems that enhance the advertising capability of filesharing. Imagine if when you downloaded a song, you also could receive information on when and where the band that played it will be holding their next concert, with a convenient link to buy tickets.