* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Dense Coding - School of Computing Science
Bohr–Einstein debates wikipedia , lookup
Scalar field theory wikipedia , lookup
Basil Hiley wikipedia , lookup
Bell test experiments wikipedia , lookup
Particle in a box wikipedia , lookup
Delayed choice quantum eraser wikipedia , lookup
Measurement in quantum mechanics wikipedia , lookup
Quantum decoherence wikipedia , lookup
Density matrix wikipedia , lookup
Path integral formulation wikipedia , lookup
Quantum electrodynamics wikipedia , lookup
Probability amplitude wikipedia , lookup
Quantum field theory wikipedia , lookup
Copenhagen interpretation wikipedia , lookup
Coherent states wikipedia , lookup
Hydrogen atom wikipedia , lookup
Quantum dot wikipedia , lookup
Many-worlds interpretation wikipedia , lookup
Quantum fiction wikipedia , lookup
Symmetry in quantum mechanics wikipedia , lookup
Orchestrated objective reduction wikipedia , lookup
Interpretations of quantum mechanics wikipedia , lookup
Bell's theorem wikipedia , lookup
History of quantum field theory wikipedia , lookup
Quantum entanglement wikipedia , lookup
Quantum computing wikipedia , lookup
Quantum group wikipedia , lookup
Canonical quantization wikipedia , lookup
Quantum machine learning wikipedia , lookup
Quantum state wikipedia , lookup
Quantum cognition wikipedia , lookup
Hidden variable theory wikipedia , lookup
EPR paradox wikipedia , lookup
Communicating Quantum Processes Simon Gay Department of Computing Science University of Glasgow, UK Rajagopal Nagarajan Department of Computer Science University of Warwick, UK Overview Quantum computing is of great interest because it has the potential to solve some hard problems efficiently. Only a few algorithms are known and at present there are no techniques for generic improvement of algorithmic performance. Physical implementations of quantum computers of useful size are a long way in the future. Recent interest in quantum programming languages, including semantic studies, is very significant. Communicating Quantum Processes / POPL 2005 2 Overview Our work addresses quantum protocols rather than algorithms. A range of protocols has been developed: cryptographic key distribution, communication protocols exploiting entanglement, ... Quantum cryptographic techniques are provably secure even in the presence of quantum computers. Quantum cryptography is much easier to implement than quantum computing. City-scale demonstrations have taken place, and components are commercially available. Quantum cryptography (and other quantum communication systems) will become an important practical technology in the near future. Communicating Quantum Processes / POPL 2005 3 Overview Although quantum cryptographic protocols have been proved mathematically to be secure, we believe that there is a need for verification of systems which combine quantum and classical computation and communication. Computer science has a range of theories, techniques and tools which have been successfully used to verify classical communication and cryptographic systems. Formal modelling languages, specification logics, type theory, model-checking tools, automated theorem-proving, ... Our research programme: to apply these techniques to combined quantum/classical systems. Communicating Quantum Processes / POPL 2005 4 Overview We have defined a formal language, CQP, for modelling systems which combine quantum and classical computation and communication. CQP is based on a combination of the pi calculus and Selinger’s language QPL. Details of the semantics have also been influenced by Jorrand & Lalire’s QPAlg. CQP has a static type system which controls the use of quantum state, corresponding to the no cloning theorem. The type system and the operational semantics are related by a Type Preservation theorem of the usual kind. Communicating Quantum Processes / POPL 2005 5 Recall Concepts of Quantum Computation Qubits: basis states |0 and |1 , superpositions |0 + |1 Measurement: measuring |0 + |1 has the result 0 with probability (and final state |0). 2 1 with probability (and final state |1). 2 Systems of multiple qubits: for example a two-qubit system has basis states |0|0 |0|1 |1|0 |1|1 Communicating Quantum Processes / POPL 2005 6 Recall Concepts of Quantum Computation Unitary transformation: for example CNot and H defined by 1 CNot |0|x = |0|x (0 1) H |0 = 2 1 CNot |1|x = |1|1-x (0 1) H |1 = 2 Entanglement: a multi-qubit state which is not a tensor product 1 (0 0 1 1) for example 2 measuring the first qubit yields either |0|0 or |1|1 and in either case both qubits now have the same value Entanglement is used by several protocols as a resource for information transmission. Communicating Quantum Processes / POPL 2005 7 Dense Coding A protocol allowing 2 classical bits of information to be transmitted by sending 1 qubit and making use of entanglement. Alice and Bob share an entangled pair of qubits: x, y. Alice wishes to send n (0 n 3) to Bob. There is a quantum channel q linking them. Alice x 1 x, y (0 0 1 1) 2 Bob y (0 n 3) can transmit qubits q Communicating Quantum Processes / POPL 2005 8 Dense Coding A protocol allowing 2 classical bits of information to be transmitted by sending 1 qubit and making use of entanglement. Alice and Bob share an entangled pair of qubits: x, y. Alice wishes to send n (0 n 3) to Bob. There is a quantum channel q linking them. Alice(x:Qbit, q:^[Qbit], n:0..3) = ... Bob(y:Qbit, q:^[Qbit]) = ... System(x:Qbit, y:Qbit, n:0..3) = (new q:^[Qbit])( Alice(x,q,n) | Bob(y,q) ) Communicating Quantum Processes / POPL 2005 9 Dense Coding Alice uses n to select one of the 4 Pauli transformations, applies it to x, and sends x to Bob. Alice x 1 x, y (0 0 1 1) 2 Bob y n x send x to Bob Alice(x:Qbit, q:^[Qbit], n:0..3) = {x *= n} . q![x] . Stop Communicating Quantum Processes / POPL 2005 10 Dense Coding Alice uses n to select one of the 4 Pauli transformations, applies it to x, and sends x to Bob. Alice x n 1 x, y (0 0 1 1) 2 eg. n=1 x x, y Bob y 1 (1 0 0 1) 2 send x to Bob Alice(x:Qbit, q:^[Qbit], n:0..3) = {x *= n} . q![x] . Stop Communicating Quantum Processes / POPL 2005 11 Dense Coding Bob receives x, applies CNot to x,y, applies H to x, then measures x,y. The result uniquely determines n. Alice x 1 x, y (0 0 1 1) 2 Bob y n x send x to Bob x, y CNot x, y H n measure x,y Communicating Quantum Processes / POPL 2005 x, y 12 Dense Coding Bob receives x, applies CNot to x,y, applies H to x, then measures x,y. The result uniquely determines n. Alice x n 1 x, y (0 0 1 1) 2 Bob y eg. n=1 x send x to Bob x, y 1 (1 0 0 1) 2 CNot x, y H n measure x,y Communicating Quantum Processes / POPL 2005 x, y 13 Dense Coding Bob receives x, applies CNot to x,y, applies H to x, then measures x,y. The result uniquely determines n. Alice x n 1 x, y (0 0 1 1) 2 Bob y eg. n=1 x send x to Bob x, y 1 (1 0 0 1) 2 CNot H n measure x,y 1 x, y (1 1 0 1) 2 x, y Communicating Quantum Processes / POPL 2005 14 Dense Coding Bob receives x, applies CNot to x,y, applies H to x, then measures x,y. The result uniquely determines n. Alice x n 1 x, y (0 0 1 1) 2 Bob y eg. n=1 x send x to Bob x, y 1 (1 0 0 1) 2 CNot H n measure x,y 1 x, y (1 1 0 1) 2 x, y 0 1 Communicating Quantum Processes / POPL 2005 15 Dense Coding Bob receives x, applies CNot to x,y, applies H to x, then measures x,y. The result uniquely determines n. Alice x n 1 x, y (0 0 1 1) 2 Bob y eg. n=1 x send x to Bob x, y 1 (1 0 0 1) 2 CNot H 1 measure x,y 1 x, y (1 1 0 1) 2 x, y 0 1 Communicating Quantum Processes / POPL 2005 16 Dense Coding Bob receives x, applies CNot to x,y, applies H to x, then measures x,y. The result uniquely determines n. Bob(y:Qbit, q:^[Qbit]) = q?[z:Qbit] . {z,y *= CNot} . {z *= H} . Use(measure x,y) Communicating Quantum Processes / POPL 2005 17 Dense Coding Alice(x:Qbit, q:^[Qbit], n:0..3) = {x *= n} . q![x] . Stop Bob(y:Qbit, q:^[Qbit]) = q?[z:Qbit] . {z,y *= CNot} . {z *= H} . Use(measure x,y) System(x:Qbit, y:Qbit, n:0..3) = (new q:^[Qbit])( Alice(x,q,n) | Bob(y,q) ) System is parameterized by x and y (and we must assume that they are entangled). Communicating Quantum Processes / POPL 2005 18 Dense Coding with Entanglement Server We can make the system more self-contained: Alice and Bob receive their entangled qubits from a third process. (EPR source or entanglement server) q A B Alice’(s:^[Qbit], q:^[Qbit], n:0..3) = s?[x:Qbit] . Alice(x,q,n) s t Bob’(t:^[Qbit], q:^[Qbit]) = t?[y:Qbit] . Bob(y,q) S Source(s:^[Qbit], t:^[Qbit]) = (qbit x,y)({x *= H} . {x,y *= CNot} . s![x] . t![y] . Stop) System(n:0..3) = (new q, s, t:^[Qbit])( Alice’(s,q,n) | Bob’(t,q) | Source(s,t) ) Communicating Quantum Processes / POPL 2005 19 The Language CQP This example has introduced our language CQP. Defining a formal language for describing protocols is a valuable step. We have also defined a formal operational semantics. It is based on the pi calculus, with the addition of global state (for the qubits) and probabilistic reductions (arising from measurements). CQP has a static type system which, in addition to checking correct use of values and channels, guarantees that qubits are not syntactically copied. Communicating Quantum Processes / POPL 2005 20 Reduction in CQP Communication 1 x, y ( 0 0 1 1 ) ; q ; (q! [ x].Stop | q ?[ z : Qbit ].Use( z)) 2 1 x, y ( 0 0 1 1 ) ; q ; (Stop | Use( x )) 2 Communicating Quantum Processes / POPL 2005 21 Reduction in CQP Measurement 1 x, y ( 0 0 1 1 ) ; q ; Use(measure x, y ) 2 1 ( x, y 0 0 ; q ; Use(0)) 2 1 2 1 ( x, y 1 1 ; q ; Use(3)) 2 1 2 x, y 0 0 ; q ; Use(0) x, y 1 1 ; q ; Use(3) Communicating Quantum Processes / POPL 2005 22 The No Cloning Theorem There is no unitary transformation U such that for all U( s ) ( s is some standard initial state for the second qubit). This means that there is no procedure for duplicating an arbitrary quantum state. Suppose that Alice continues with some behaviour, after sending the qubit to Bob. Alice(x:Qbit, q:^[Qbit], n:0..3) = {x *= n} . q![x] . Continue If Continue refers to x, then the natural interpretation would be that x has been copied. We cannot allow this. Communicating Quantum Processes / POPL 2005 23 Typechecking for No Cloning Alice(x:Qbit, q:^[Qbit], n:0..3) = {x *= n} . q![x] . Continue The static type system of CQP guarantees that Continue does not refer to x. Technically: the fact that x is sent along q means that Continue is typechecked in an environment which does not contain x. The details are based on several pi calculus type systems, going back to Kobayashi, Pierce & Turner (1996). Similar ideas have recently been used to guarantee unique ownership of packets in a network system (Ennals, Sharp & Mycroft, 2004). Communicating Quantum Processes / POPL 2005 24 Future Work The purpose of defining CQP is to support formal reasoning about quantum systems. There are several directions to explore. Model checking: we are now using the probabilistic model checking tool PRISM to analyze quantum systems. In the future we will translate CQP models automatically into PRISM, exploiting static analysis at the CQP level. Logics for specification: need to be developed for both automatic and non-automatic verification. Type-theoretic methods: can we get more from a type system? For example: can we develop type systems for high-level properties such as secrecy? Communicating Quantum Processes / POPL 2005 25