No cloning theorem
From Academic Kids

The no cloning theorem is a result of quantum mechanics which forbids the creation of identical copies of an arbitrary unknown quantum state. It was stated by Wootters, Zurek, and Dieks in 1982, and has profound implications in quantum computing and related fields.
Note that the state of one system can be identically entangled with the state of another system, such as by using a CNOT gate, but this does not constitute cloning since the systems will always yield the same value upon measurement. The no cloning theorem describes the inability to make separately measurable states.
Contents 
Proof
Suppose the state of a quantum system A is a qubit, which we wish to copy. The state can be written (see braket notation) as
 <math>\psi\rangle_A = a 0\rangle_A + b 1\rangle_A<math>.
The complex coefficients a and b are unknown to us. In order to make a copy, we take a system B with an identical Hilbert space and initial state <math>e\rangle_B<math> (which must be independent of <math>\psi\rangle_A<math>, of which we have no prior knowledge). The composite system is then described by the tensor product, and its state is
 <math>\psi\rangle_A e\rangle_B<math>.
There are only two ways to manipulate the composite system. We could perform an observation, which irreversibly collapses the system into some eigenstate of the observable, corrupting the information contained in the qubit. This is obviously not what we want. Alternatively, we could control the Hamiltonian of the system, and thus the time evolution operator U(Δt), which is linear. We must fix a time interval Δt, again independent of <math>\psi\rangle_A<math>. Then U(Δt) acts as a copier provided
<math>U(\Delta t) \psi\rangle_A e\rangle_B<math> <math>= \psi\rangle_A \psi\rangle_B<math> <math>= (a 0\rangle_A + b 1\rangle_A)(a 0\rangle_B + b 1\rangle_B)<math> <math>= a^2 0\rangle_A 0\rangle_B + a b 0\rangle_A 1\rangle_B + b a 1\rangle_A 0\rangle_B + b^2 1\rangle_A 1\rangle_B<math>
for all ψ. This must then be true for the basis states as well, so
 <math>U(\Delta t) 0\rangle_A e\rangle_B = 0\rangle_A 0\rangle_B <math>
 <math>U(\Delta t) 1\rangle_A e\rangle_B = 1\rangle_A 1\rangle_B <math>.
Then the linearity of U(Δt) implies
<math>U(\Delta t) \psi\rangle_A e\rangle_B<math> <math>= U(\Delta t) (a 0\rangle_A + b 1\rangle_A)e\rangle_B<math> <math>= a 0\rangle_A 0\rangle_B + b 1\rangle_A 1\rangle_B<math> <math>\ne a^2 0\rangle_A 0\rangle_B + a b 0\rangle_A 1\rangle_B + b a 1\rangle_A 0\rangle_B + b^2 1\rangle_A 1\rangle_B<math>
Thus, <math>U(\Delta t) \psi\rangle_A e\rangle_B<math> is generally not equal to <math>\psi\rangle_A \psi\rangle_B<math>, as may be verified by plugging in a = b = 2^{1/2}, so U(Δt) cannot act as a general copier. Q.E.D.
Consequences
The no cloning theorem prevents us from using classical error correction techniques on quantum states. For example, we cannot create backup copies of a state in the middle of a quantum computation, and use them to correct subsequent errors. Error correction is vital for practical quantum computing, and for some time this was thought to be a fatal limitation. In 1995, Shor and Steane revived the prospects of quantum computing by independently devising the first quantum error correcting codes, which circumvent the no cloning theorem.
In contrast, the no cloning theorem is a vital ingredient in quantum cryptography, as it forbids eavesdroppers from creating copies of a transmitted quantum cryptographic key.
Fundamentally, the nocloning theorem protects the uncertainty principle in quantum mechanics. If one could clone an unknown state, then one could make as many copies of it as one wished, and measure each dynamical variable with arbitrary precision, thereby bypassing the uncertainty principle. This is prevented by the noncloning theorem.
More fundamentally, the no cloning theorem prevents superluminal communication via quantum entanglement. Consider the EPR thought experiment, and suppose quantum states could be cloned. Alice could send bits to Bob in the following way:
If Alice wishes to transmit a "0", she measures the spin of her electron in the z direction, collapsing Bob's state to either <math>z+\rangle_B<math> or <math>z\rangle_B<math>. Bob creates many copies of his electron's state, and measures the spin of each copy in the z direction. If Alice transmitted a "0", all his measurements will produce the same result; otherwise, his measurements will be split evenly between +1/2 and 1/2. This would allow Alice and Bob to communicate across spacelike separations, potentially violating causality.
Imperfect cloning
Even though it is impossible to make perfect copies of an unknown quantum state, it is possible to produce imperfect copies. This can be done by coupling a larger auxiliary system to the system that is to be cloned, and applying a unitary transformation to the combined system. If the unitary transformation is chosen correctly, several components of the combined system will evolve into approximate copies of the original system. Imperfect cloning can be used as an eavesdropping attack on quantum cryptography protocols, among other uses in quantum information science. Imperfect cloning is further discussed in the article quantum error correction.
While a unitary operator <math>{\hat U}<math> which describes cloning of an arbitrary unknown quantum state <math>\psi\rangle_A<math> into a given state <math>e\rangle_B<math> as the evolution <math>\psi\rangle_A e\rangle_B \rightarrow {\hat U} \psi\rangle_A e\rangle_B = \psi\rangle_A \psi\rangle_B<math> is not linear, according to the proof stated above. It is perhaps worth noting that an appropriate such unitary operator <math>{\hat U}<math> nevertheless is nonlinear.
See also
References
 Wootters, W.K. and Zurek, W.H.: A Single Quantum Cannot be Cloned. Nature 299 (1982), pp. 802803
 Dieks, D.: Communication by EPR devices. Physics Letters A, vol. 92(6) (1982), pp. 271272
 Buzek, V. and Hillery, M.: "Quantum cloning". Physics World 14 (11) (2001), pp. 2529de:NoCloningTheorem