In physics, its the ability for particles to exist in multiple/parallel dynamic states at a particular point in time. In computing, would it be the ability of a data bit to equal 1 or 0 at the same time, a third value like NULL[unknown] or multiple values?.. How can this technology be applied to: computer processors, programming, security, etc.?.. Has anyone built a practical quantum computer or developed a quantum programming language where, for example, the program code dynamically changes or is autonomous?

+8  A: 

I think that wikipedia/quantum_computer article is pretty much there.

Preet Sangha
That was one of the best written articles ive read on that site!
+2  A: 

There are a number of applications of quantum computing.

One huge one is the ability to solve NP-hard problems in P-time, by using the indeterminacy of qubits to essentially brute-force the problem in parallel. (The struck-out sentence is false. Quantum computers do not work by brute-forcing all solutions in parallel, and they are not believed to be able to solve NP-complete problems in polynomial time. See e.g. here.)

Superposition of states don't lead to parallel processing.
@Pierreten: well not parallel processing in the traditional sense, but it's a decent metaphor. When you apply quantum algorithms to a superposed state, it's essentially like applying the algorithm to each component of the superposition, all at the same time.
David Zaslavsky
The real tricks are in getting information **back out of** the resulting state.
@detly; observation will collapse the wavefunction to discernable information.
@David point taken
Oh god, this is distressing. PLEASE repeat after me: "*Quantum computers cannot solve NP-hard problems in polynomial time. They do NOT work by trying all brute-force solutions in parallel!"* I don't know who started this awful misconception, or why it persists. Please read Scott Aaronson's many entries on this matter, or just pick up a quantum computing textbook. (BQP is believed to be a strict subset of NP.)
The disclaimer is: you can only be sure that your solution is only N% percent correct (N maximized using an oracle function), but if the way to test the correctness of the solution has lower complexity than the problem (for example, multiplication vs factorization of two primes), you can just test it, and repeat if needed.
ShreevatsaR is completely correct; see also my answer below.
Greg Kuperberg
+1  A: 

Yes, there is quantum encryption, by which if someone tries to spy on your communication, it destroys the datastream such that neither they nor you can read it.

However, the real power of quantum computing lies in that a qubit can have a superposition of 0 and 1. Big deal. However, if you have, say, eight qubits, you can now represent a superposition of all integers from 0 to 255. This lets you do some rather interesting things in polynomial instead of exponential time. Factorization of large numbers (IE, breaking RSA, etc.) is one of them.

you mean like a no-cloning feature?
Frank Computer
+2  A: 

The other factor where the word "quantum" computing is used regards an "entangled pair". Essentially if you can create an entangled pair of particles which have a physical "spin", quantum physics dictates that the spin on each electron will always be opposite.

If you could create an entangled pair and then separate them, you could use the device to transmit data without interception, by changing the spin on one of the particles. You can then create a signal which is modulated by the particle's information which is theoretically unbreakable, as you cannot know what spin was on the particles at any given time by intercepting the information in between the two signal points.

A whole lot of very interested organisations are researching this technique for secure communications.

+2  A: 

You also might want to look at this.

+19  A: 

I have done research in quantum computing, and here is what I hope is an informed answer.

It is often said that qubits as you see them in a quantum computer can exist in a "superposition" of 0 and 1. This is true, but in a more subtle way than you might first guess. Even with a classical computer with randomness, a bit can exist in a superposition of 0 and 1, in the sense that it is 0 with some probability and 1 with some probability. Just as when you roll a die and don't look at the outcome, or receive e-mail that you haven't yet read, you can view its state as a superposition of the possibilities. Now, this may sound like just flim-flam, but the fact is that this type of superposition is a kind of parallelism and that algorithms that make use of it can be faster than other algorithms. It is called randomized computation, and instead of superposition you can say that the bit is in a probabilistic state.

The difference between that and a qubit is that a qubit can have a fat set of possible superpositions with more properties. The set of probabilistic states of an ordinary bit is a line segment, because all there is a probability of 0 or 1. The set of states of a qubit is a round 3-dimensional ball. Now, probabilistic bit strings are more complicated and more intersting than just individual probabilistic bits, and the same is true of strings of qubits. If you can make qubits like this, then actually some computational tasks wouldn't be any easier than before, just as randomized algorithms don't help with all problems. But some computational problems, for example factoring numbers, have new quantum algorithms that are much faster than any known classical algorithm. It is not a matter of clock speed or Moore's law, because the first useful qubits could be fairly slow and expensive. It is only sort-of parallel computation, just as an algorithm that makes random choices is only in weak sense making all choices in parallel. But it is "randomized algorithms on steroids"; that's my favorite summary for outsiders.

Now the bad news. In order for a classical bit to be in a superposition, it has be a random choice that is secret from you. Once you look a flipped coin, the coin "collapses" to either heads for sure or tails for sure. The difference between that and a qubit is that in order for a qubit to work as one, its state has to be secret from the rest of the physical universe, not just from you. It has to be secret from wisps of air, from nearby atoms, etc. On the other hand, for qubits to be useful for a quantum computer, there has to be a way to manipulate them while keeping their state a secret. Otherwise its quantum randomness or quantum coherence is wrecked. Making qubits at all isn't easy, but it is done routinely. Making qubits that you can manipulate with quantum gates, without revealing what is in them to the physical environment, is incredibly difficult.

People don't know how to do that except in very limited toy demonstrations. But if they could do it well enough to make quantum computers, then some hard computational problems would be much easier for these computers. Others wouldn't be easier at all, and great deal is unknown about which ones can be accelerated and by how much. It would definitely have various effects on cryptography; it would break the widely used forms of public-key cryptography. But other kinds of public-key cryptography have been proposed that could be okay. Moreover quantum computing is related to the quantum key distribution technique which looks very safe, and private-key cryptography would almost certainly still be fairly safe.

Greg Kuperberg
Is it possible for a bit to have a third value other than 1 or 0, like "unknown"[NULL]?
Frank Computer
Frank, there is a whole ball of values, or rather states. 1 is at the North pole of the ball, 0 is at the South pole, and you can have anything in between. There isn't a "third" state, there are a lot of states. I know that some of the books describe a "third" state, but it's wrong. It doesn't make any more sense than to say that the Earth has a "third" pole.
Greg Kuperberg
@Greg: So, in your opinion, what would be the best way to implement quantum methods for ensuring privacy on the internet?..I'm currently using IE8 with "InPrivate" Browsing. Don't know how effective it is. It's supposed to prevent cookies and other things from being accessed.
Frank Computer
My opinion is that quantum methods are irrelevant to practical security on the Internet for the forseeable future. If serious quantum computers existed, which for now they don't, then ssl connections (as in https) would have to be changed for all browsers. If you needed quantum key distribution, which for now you don't, then you would need a direct optic fiber line with special modems and no routing. Quantum computation and quantum key distribution are very important theoretical topics and very unimportant practical topics.
Greg Kuperberg
@Greg: Can you build it? i.e. a quantum computer.. or a pseudo-quantum computer?.. what changes are needed to CPU's, memory and storage?
Frank Computer
Here is a photo of a typical state-of-the-art apparatus: A laser and ion trap system that holds up to 10 qubits (but doesn't do all that much with them). It takes thousands of hours of labor to build it.
Greg Kuperberg
@Greg: Is it possible to software emulate quantum computing even though hardware uses two-state bits?
Frank Computer
@Frank: You can only emulate a quantum computer very slowly. Each new qubit that you add makes the emulate twice as slow. So emulating more than about 30 qubits is impossible. That's the whole reason that quantum computation is interesting, that it's something new that can't be emulated.
Greg Kuperberg
@Greg: But at least we do know the logic involved in properly emulating quantum computing, except we don't have fast enough hardware to support it?
Frank Computer
Yes, we can write down a mathematical definition of quantum computation and very, very slowly emulate it. But it's not that we don't have "fast enough" hardware, it's that emulation in classical hardware inevitably scales very badly. The entire Google data center would not be able to simulate more than 60 qubits or so. The deeper point is that this is what makes quantum computation interesting: it's fundamentally different and it cannot be emulated efficiently.
Greg Kuperberg

I know of the existence of a true "quantum computer" that has actually been around for a long time, it has a neural network design, its called a BRAIN!

Frank Computer
it has to be quantum-like!.. because how else could it have the capability to instantly process images, sound, smell, logic?
Frank Computer