Download Computación Cuántica y Fundamentos de Lenguajes de
Document related concepts
no text concepts found
Transcript
Introducción a la Computación Cuántica y Fundamentos de Lenguajes de Programación Primer encuentro Alejandro Díaz-Caro LCC – FCEIA – UNR – 18 y 19 de octubre de 2016 Un poco de historia Richard Feynman First Conference on the Physics of Computation, MIT, 1981 Simulación I Física clásica =⇒ computación clásica I Física cuántica =⇒ ¿computación clásica? Necesidad de una computadora cuántica para simular física cuántica Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 2 / 23 Un poco de historia Richard Feynman First Conference on the Physics of Computation, MIT, 1981 Simulación I Física clásica =⇒ computación clásica I Física cuántica =⇒ ¿computación clásica? Necesidad de una computadora cuántica para simular física cuántica Entre tanto en Rusia. . . R. P. Poplavskii Uspekhi Fizicheskikh Nauk, 115:3, 465–501, 1975 Inviabilidad computacional de simular sistemas cuánticos (debido al ppio de superposición) Yuri I. Manin I Moscow, Sovetskoye Radio, 1980 I Uso del número exponencial de estados de base I Propuesta de teoría de computación cuántica Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 2 / 23 Un poco de historia (continuación) Paul Benioff Charles Bennett y Gilles Brassard Journal of Statistical Physics 29 (3):515– Int. Conference on Computers, Systems and 546, 1982 Signal Processing, EE.UU., 1984 I Primer framework teórico para computación cuántica I BB84: Método de distribuciónd de claves para criptografía David Deutsch Proceedings of the Royal Society A 400 (1818):97–117, 1985 I . . . Varios hitos históricos omitidos . . . Máquina de Turing Cuántica: máquina cuántica universal Peter Shor Lov Grover 35th Annual Symposium on Foundations of Computer Science, EE.UU., 1994 28th Annual ACM Symposium on the Theory of Computing, EE.UU., 1996 I Algoritmo cuántico para factorizar números primos Alejandro Díaz-Caro I Algoritmo de búsqueda (con ganancia cuadrática) Computación Cuántica y Fundamentos de Lenguajes de Programación 3 / 23 Álgebra En el pizarrón I I I Alejandro Díaz-Caro Espacio de Hilbert Producto tensorial Notación bra-ket Computación Cuántica y Fundamentos de Lenguajes de Programación 4 / 23 Bits cuánticos Un qubit es. . . (para un físico) . . . un sistema cuántico con dos niveles de energía y que puede ser manipulado arbitrariamente Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 5 / 23 Bits cuánticos Un qubit es. . . (para un físico) . . . un sistema cuántico con dos niveles de energía y que puede ser manipulado arbitrariamente pero nosotros no somos físicos. . . (para un matemático o informático) . . . un vector normalizado del espacio de Hilbert C2 Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 5 / 23 Bits cuánticos Un qubit es. . . (para un físico) . . . un sistema cuántico con dos niveles de energía y que puede ser manipulado arbitrariamente pero nosotros no somos físicos. . . (para un matemático o informático) . . . un vector normalizado del espacio de Hilbert C2 n-qubits: un vector de n N n C2 = C 2 i=1 Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 5 / 23 Operadores En el pizarrón I I I I Operador Adjunto y propiedades Proyector Operador hermítico Alejandro Díaz-Caro I I I I Operador unitario Operador de medición Compuertas cuánticas Evolución Computación Cuántica y Fundamentos de Lenguajes de Programación 6 / 23 No-controlada Negación H= Alejandro Díaz-Caro √1 2 1 1 + |1i) − |1i) 1 −1 X |0i = |1i X |1i = |0i 0 1 X= 1 0 CNOT |0x i = |0x i CNOT |1x i = |1i ⊗ X |x i I 0 CNOT = 0 X Identidad H|1i = √1 (|0i 2 √1 (|0i 2 Cambio de fase H|0i = Matrices de Pauli Hadamard Compuertas más comunes y operadores de Pauli I|0i = |0i I|1i = |1i 1 0 I= 0 1 Z |0i = |0i Z |1i = −|1i 1 0 Z= 0 −1 I X iXZ Z Computación Cuántica y Fundamentos de Lenguajes de Programación 7 / 23 Teorema de no-clonado Teorema (No clonado) No existe ninguna compuerta cuántica U tal que para algún |φi ∈ CN y para todo |ψi ∈ CN se cumpla U|ψφi = |ψψi Es decir. . . No existe una máquina universal de clonado Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 8 / 23 Teorema de no-clonado Teorema (No clonado) No existe ninguna compuerta cuántica U tal que para algún |φi ∈ CN y para todo |ψi ∈ CN se cumpla U|ψφi = |ψψi Es decir. . . No existe una máquina universal de clonado o más simplemente No se puede copiar un qubit desconocido Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 8 / 23 Teorema de no-clonado Teorema (No clonado) No existe ninguna compuerta cuántica U tal que para algún |φi ∈ CN y para todo |ψi ∈ CN se cumpla U|ψφi = |ψψi Es decir. . . No existe una máquina universal de clonado o más simplemente No se puede copiar un qubit desconocido Demostración en el pizarrón Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 8 / 23 Estados de Bell |x i H • βxy |y i Alejandro Díaz-Caro Entrada |00i |01i |10i |11i Salida β00 β01 β10 β11 = = = = Computación Cuántica y Fundamentos de Lenguajes de Programación √1 (|00i 2 √1 (|01i 2 √1 (|00i 2 √1 (|01i 2 + |11i) + |10i) − |11i) − |10i) 9 / 23 Estados de Bell |x i H Entrada |00i |01i |10i |11i • βxy |y i Ejemplo: M0 M= M1 = |0ih0| = |1ih1| Salida β00 β01 β10 β11 = = = = √1 (|00i 2 √1 (|01i 2 √1 (|00i 2 √1 (|01i 2 + |11i) + |10i) − |11i) − |10i) Entonces (M ⊗ I)β00 Alejandro Díaz-Caro |00i |11i Computación Cuántica y Fundamentos de Lenguajes de Programación 9 / 23 Codificación superdensa Objetivo: Transmitir 2 bits clásicos enviando tan sólo 1 qubit Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 10 / 23 Codificación superdensa Objetivo: Transmitir 2 bits clásicos enviando tan sólo 1 qubit 1. A y B preparan β00 Z b1 X b2 | • H β00 b1 | | 2. Se llevan cada uno un qubit 3. A aplica Z b1 X b2 a su qubit 4. A envía su qubit a B b2 5. B aplica CNOT y H a ambos 6. B mide Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 10 / 23 Teleportación cuántica Objetivo: Transmitir 1 qubit enviando 2 bits clásicos Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 11 / 23 Teleportación cuántica Objetivo: Transmitir 1 qubit enviando 2 bits clásicos |ψi 1. A y B preparan β00 • H 2. Se llevan cada uno un qubit 3. A aplica CNOT y H al qubit a transmitir y el suyo del par β00 4. A mide y envía el resultado a B Z b1 X b2 Alejandro Díaz-Caro |ψi 5. B aplica Z b1 X b2 (b1 y b2 de A) Computación Cuántica y Fundamentos de Lenguajes de Programación 11 / 23 Paralelismo cuántico Primera intuición f : {0, 1} → {0, 1} Resultados posibles: 2 Cantidad de evaluaciones para obtenerlos: 2 Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 12 / 23 Paralelismo cuántico Primera intuición f : {0, 1} → {0, 1} Resultados posibles: 2 Cantidad de evaluaciones para obtenerlos: 2 Supongamos que existe la siguiente compuerta: Uf |x , 0i = |x , f (x )i Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 12 / 23 Paralelismo cuántico Primera intuición f : {0, 1} → {0, 1} Resultados posibles: 2 Cantidad de evaluaciones para obtenerlos: 2 Supongamos que existe la siguiente compuerta: Uf |x , 0i = |x , f (x )i |0i H Uf |ψi = |0,f (0)i+|1,f (1)i √ 2 |0i Es decir: 1 1 1 H(1) Uf √ (|0, f (0)i+|1, f (1)i) |00i −−−→ √ (|0i+|1i)|0i = √ (|00i+|10i) −→ 2 2 2 Cantidad de evaluaciones de Uf para obtener los dos resultados: 1 Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 12 / 23 Algoritmo de Deutsch Objetivo: Dado un “oráculo” Uf que implementa la función f : {0, 1} → {0, 1}, determinar si f es constante o no Uf |x , y i = |x , y ⊕ f (x )i Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 13 / 23 Algoritmo de Deutsch Objetivo: Dado un “oráculo” Uf que implementa la función f : {0, 1} → {0, 1}, determinar si f es constante o no Uf |x , y i = |x , y ⊕ f (x )i |0i H H Uf |1i Alejandro Díaz-Caro H Computación Cuántica y Fundamentos de Lenguajes de Programación 13 / 23 Algoritmo de Deutsch Objetivo: Dado un “oráculo” Uf que implementa la función f : {0, 1} → {0, 1}, determinar si f es constante o no Uf |x , y i = |x , y ⊕ f (x )i |0i H H Uf |1i |01i Alejandro Díaz-Caro H Deustch alg. ··· → Computación Cuántica y Fundamentos de Lenguajes de Programación 13 / 23 Algoritmo de Deutsch Objetivo: Dado un “oráculo” Uf que implementa la función f : {0, 1} → {0, 1}, determinar si f es constante o no Uf |x , y i = |x , y ⊕ f (x )i |0i H H Uf |1i |01i Alejandro Díaz-Caro Deustch alg. H · · · → ± |f (0) ⊕ f (1)i h |0i−|1i √ 2 Si es constante ±|0i h |0i−|1i √ 2 i ±|1i h |0i−|1i √ 2 i Sino i Computación Cuántica y Fundamentos de Lenguajes de Programación 13 / 23 Algoritmo de Deutsch-Jotza Objetivo: Dado un “oráculo” Uf que implementa la función f : {0, 1}n → {0, 1}, determinar si f es constante o balanceada Uf |x , y i = |x , y ⊕ f (x )i Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 14 / 23 Algoritmo de Deutsch-Jotza Objetivo: Dado un “oráculo” Uf que implementa la función f : {0, 1}n → {0, 1}, determinar si f es constante o balanceada Uf |x , y i = |x , y ⊕ f (x )i |0i H |0i H .. . |1i Alejandro Díaz-Caro H H Uf .. . H Computación Cuántica y Fundamentos de Lenguajes de Programación 14 / 23 Algoritmo de Deutsch-Jotza Objetivo: Dado un “oráculo” Uf que implementa la función f : {0, 1}n → {0, 1}, determinar si f es constante o balanceada Uf |x , y i = |x , y ⊕ f (x )i |0i H |0i H .. . |1i |0i ⊗n Alejandro Díaz-Caro |1i H H Uf .. . H D–J alg. ··· → Computación Cuántica y Fundamentos de Lenguajes de Programación 14 / 23 Algoritmo de Deutsch-Jotza Objetivo: Dado un “oráculo” Uf que implementa la función f : {0, 1}n → {0, 1}, determinar si f es constante o balanceada Uf |x , y i = |x , y ⊕ f (x )i |0i H |0i H .. . |1i ⊗n |1i .. . ±|0i ⊗n h D–J alg. ··· → Si es balanceada Alejandro Díaz-Caro H Uf H Si es constante |0i H ±|ψi h |0i−|1i √ 2 i |0i−|1i √ 2 i Computación Cuántica y Fundamentos de Lenguajes de Programación donde |ψi no ⊗n incluye |0i 14 / 23 Algoritmo de búsqueda de Grover Preliminares: Oráculo Uf |x , y i = |x , y ⊕ f (x )i Tomar y = |−i = √1 (|0i 2 − |1i) entonces 1 1 Uf |x , y i = Uf |x i √ (|0i − |1i) = √ (Uf |x , 0i − Uf |x , 1i) 2 2 1 1 = √ (|x , f (x )i − |x , 1 ⊕ f (x )i) = |x i √ (|f (x )i − |1 ⊕ f (x )i) 2 2 f (x ) = (−1) |x , y i Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 15 / 23 Algoritmo de búsqueda de Grover Preliminares: Oráculo Uf |x , y i = |x , y ⊕ f (x )i Tomar y = |−i = √1 (|0i 2 − |1i) entonces 1 1 Uf |x , y i = Uf |x i √ (|0i − |1i) = √ (Uf |x , 0i − Uf |x , 1i) 2 2 1 1 = √ (|x , f (x )i − |x , 1 ⊕ f (x )i) = |x i √ (|f (x )i − |1 ⊕ f (x )i) 2 2 f (x ) = (−1) |x , y i Uf no modifica y . . . lo omitimos Oráculo U|x i = (−1)f (x ) |x i Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 15 / 23 Algoritmo de búsqueda de Grover Preliminares: Inversión sobre el promedio 1 |φi = √ 2n Alejandro Díaz-Caro X |x i x ∈{0,1}n Computación Cuántica y Fundamentos de Lenguajes de Programación 16 / 23 Algoritmo de búsqueda de Grover Preliminares: Inversión sobre el promedio √1 1 |φi = √ 2n Alejandro Díaz-Caro 2n X x ∈{0,1}n |x i = ... √1 2n 2n Computación Cuántica y Fundamentos de Lenguajes de Programación 16 / 23 Algoritmo de búsqueda de Grover Preliminares: Inversión sobre el promedio √1 1 |φi = √ 2n 2n X |x i = ... x ∈{0,1}n √1 2n 2n Inversión sobre el promedio G = 2|φihφ| − I 2 2n −1 2 2n .. . 2 2n Alejandro Díaz-Caro 2 2n 2 2n −1 .. . 2 2n 2 2n 2 2n ··· ··· ··· 2 2n .. . − 1 2n ×2n Computación Cuántica y Fundamentos de Lenguajes de Programación 16 / 23 Algoritmo de búsqueda de Grover Preliminares: Inversión sobre el promedio √1 1 |φi = √ 2n 2n X |x i = ... √1 2n x ∈{0,1}n 2n Inversión sobre el promedio G = 2|φihφ| − I 2 2n −1 2 2n .. . 2 2n 2 2n 2 2n −1 .. . 2 2n 2 2n 2 2n ··· ··· ··· 2 2n .. . − 1 2n ×2n G X ax |x i x ∈{0,1}n = X (2A − ax )|x i x ∈{0,1}n donde A es el promedio de los ax Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 16 / 23 Algoritmo de búsqueda de Grover El algoritmo Objetivo: Localizar el x 0 tal que f (x 0 ) = 1 ⊗n 1. Aplicar Hadamard a |0i 2. Aplicar el oráculo U 3. Aplicar la inversión sobre el promedio G π√ 4. Repetir pasos 2 y 3 durante iteraciones 1 4arcsen( 2n ) (cálculo del número óptimo de iteraciones, en el apunte, sección 2.3.4) Explicación paso a paso en el pizarrón (y ejemplo) Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 17 / 23 Aplicación criptográfica One-time pad, un método clásico infalible. . . b1 ⊕ b2 0 1 1 0 Mensaje cifrado Mensaje Alejandro Díaz-Caro b2 1 0 1 0 Clave b1 1 1 0 0 z }| { (b1 ⊕ b2 ) ⊕b2 1 1 0 0 Computación Cuántica y Fundamentos de Lenguajes de Programación 18 / 23 Aplicación criptográfica One-time pad, un método clásico infalible. . . b1 ⊕ b2 0 1 1 0 Mensaje cifrado Mensaje Alejandro Díaz-Caro b2 1 0 1 0 Clave b1 1 1 0 0 z }| { (b1 ⊕ b2 ) ⊕b2 1 1 0 0 Computación Cuántica y Fundamentos de Lenguajes de Programación 18 / 23 Aplicación criptográfica One-time pad, un método clásico infalible. . . Mensaje cifrado b1 ⊕ b2 0 1 1 0 Mensaje cifrado Mensaje original Mensaje Alejandro Díaz-Caro b2 1 0 1 0 Clave b1 1 1 0 0 Clave z }| { (b1 ⊕ b2 ) ⊕b2 1 1 0 0 Computación Cuántica y Fundamentos de Lenguajes de Programación 18 / 23 Aplicación criptográfica One-time pad, un método clásico infalible. . . Mensaje cifrado Clave b1 1 1 0 0 b2 1 0 1 0 b1 ⊕ b2 0 1 1 0 z }| { (b1 ⊕ b2 ) ⊕b2 1 1 0 0 Mensaje Clave Mensaje cifrado Mensaje original Probabilidad de adivinar el mensaje original a partir del cifrado: Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 1 2n 18 / 23 Aplicación criptográfica One-time pad, un método clásico infalible. . . Mensaje cifrado b1 ⊕ b2 0 1 1 0 Mensaje cifrado Mensaje original Mensaje b2 1 0 1 0 Clave b1 1 1 0 0 Clave z }| { (b1 ⊕ b2 ) ⊕b2 1 1 0 0 Probabilidad de adivinar el mensaje original a partir del cifrado: 21n ¡Igual que la posibilidad de adivinar el mensaje original sin ninguna información extra! Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 18 / 23 Aplicación criptográfica One-time pad, un método clásico infalible. . . Entonces, si es tan simple y seguro. . . ¿porqué no es utilizado? Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 19 / 23 Aplicación criptográfica One-time pad, un método clásico infalible. . . Entonces, si es tan simple y seguro. . . ¿porqué no es utilizado? I I Largo del mensaje = largo de la clave (para 100 % de seguridad) Clave de encriptación y desencriptación iguales (y secretas) I Alejandro Díaz-Caro Dificultad para distribuir las claves Computación Cuántica y Fundamentos de Lenguajes de Programación 19 / 23 Aplicación criptográfica One-time pad, un método clásico infalible. . . Entonces, si es tan simple y seguro. . . ¿porqué no es utilizado? I I Largo del mensaje = largo de la clave (para 100 % de seguridad) Clave de encriptación y desencriptación iguales (y secretas) I Dificultad para distribuir las claves Ahí entra el método BB84: es un método de distribución de claves de manera segura. Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 19 / 23 Aplicación criptográfica QKD–BB84 Objetivo: Crear y transmitir una clave de manera segura Esquema Base Codif. + {|0i, |1i} × {|+i, |−i} 0 = |0i 0 = |−i 1 = |1i 1 = |+i 1. A: secuencia aleatoria de 0s o 1s y elección aleatoria de esquemas para c/bit 2. B: elección aleatoria del esquema de medición para cada bit recibido 3. A: transmite la sucesión de esquemas empleada 4. B: informa en qué casos coincidieron 5. La clave queda definida por los bits donde se usaron los mismos esquemas 6. Intercambio de hashes para verificación Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 20 / 23 Aplicación criptográfica QKD–BB84: Ejemplo +: 0 = |0i, 1 = |1i ×: 0 = |−i, 1 = |+i 1. A: secuencia aleatoria de 0s o 1s y elección aleatoria de esquemas para c/bit 2. B: elección aleatoria del esquema de medición para cada bit recibido 3. A: transmite la sucesión de esquemas empleada 4. B: informa en qué casos coincidieron 5. La clave queda definida por los bits donde se usaron los mismos esquemas 6. Intercambio de hashes para verificación Bits de A Esquemas de A Valores de A Esquemas de B Valores de B Alejandro Díaz-Caro 1 × |+i + |0i 0 + |0i × |+i 0 + |0i + |0i 1 × |+i × |+i 0 × |−i + |1i 0 + |0i + |0i Computación Cuántica y Fundamentos de Lenguajes de Programación 0 × |−i × |−i 1 + |1i × |−i 21 / 23 Aplicación criptográfica QKD–BB84: Ejemplo +: 0 = |0i, 1 = |1i ×: 0 = |−i, 1 = |+i 1. A: secuencia aleatoria de 0s o 1s y elección aleatoria de esquemas para c/bit 2. B: elección aleatoria del esquema de medición para cada bit recibido 3. A: transmite la sucesión de esquemas empleada 4. B: informa en qué casos coincidieron 5. La clave queda definida por los bits donde se usaron los mismos esquemas 6. Intercambio de hashes para verificación Bits de A Esquemas de A Valores de A Esquemas de B Valores de B Coincidencias Alejandro Díaz-Caro 1 × |+i + |0i 0 + |0i × |+i 0 + |0i + |0i √ 1 × |+i × |+i √ 0 × |−i + |1i 0 + |0i + |0i √ Computación Cuántica y Fundamentos de Lenguajes de Programación 0 × |−i × |−i √ 1 + |1i × |−i 21 / 23 Aplicación criptográfica QKD–BB84: Ejemplo +: 0 = |0i, 1 = |1i ×: 0 = |−i, 1 = |+i 1. A: secuencia aleatoria de 0s o 1s y elección aleatoria de esquemas para c/bit 2. B: elección aleatoria del esquema de medición para cada bit recibido 3. A: transmite la sucesión de esquemas empleada 4. B: informa en qué casos coincidieron 5. La clave queda definida por los bits donde se usaron los mismos esquemas 6. Intercambio de hashes para verificación Bits de A Esquemas de A Valores de A Esquemas de B Valores de B Coincidencias Clave Alejandro Díaz-Caro 1 × |+i + |0i 0 + |0i × |+i 0 + |0i + |0i √ 1 × |+i × |+i √ 0 1 0 × |−i + |1i 0 + |0i + |0i √ 0 × |−i × |−i √ 0 0 Computación Cuántica y Fundamentos de Lenguajes de Programación 1 + |1i × |−i 21 / 23 Aplicación criptográfica QKD–BB84: Inviolabilidad (teórica) Agregamos un espía: C Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 22 / 23 Aplicación criptográfica QKD–BB84: Inviolabilidad (teórica) Agregamos un espía: C I A envía 0 con esquema ×: |−i Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 22 / 23 Aplicación criptográfica QKD–BB84: Inviolabilidad (teórica) Agregamos un espía: C I A envía 0 con esquema ×: |−i I Si C usa esquema +, el estado pasa a |0i o |1i Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 22 / 23 Aplicación criptográfica QKD–BB84: Inviolabilidad (teórica) Agregamos un espía: C I A envía 0 con esquema ×: |−i I Si C usa esquema +, el estado pasa a |0i o |1i I Si B usa esquema ×, obtiene |−i con probabilidad probabilidad 21 Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 1 2 y |+i con 22 / 23 Aplicación criptográfica QKD–BB84: Inviolabilidad (teórica) Agregamos un espía: C I A envía 0 con esquema ×: |−i I Si C usa esquema +, el estado pasa a |0i o |1i I Si B usa esquema ×, obtiene |−i con probabilidad probabilidad 21 I Mientras más bits se envían, la probabilidad de no detectar a C decrece exponencialmente: Bits Probabilidad 3/4 = 0,75 1 bit 8 bits (3/4)8 = 0,10011 128 bits (3/4)128 = 1,018 × 10−16 1Mb (3/4)1024 = 1,155 × 10−128 1MB (3/4)8192 = 3,17 × 10−1024 Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 1 2 y |+i con 22 / 23 Aplicación criptográfica QKD–BB84 en la vida real Alejandro Díaz-Caro Computación Cuántica y Fundamentos de Lenguajes de Programación 23 / 23