Slides Dia 2
description
Transcript of Slides Dia 2
-
Fundamentos de lenguajesde programacin cuntica
Da 2: Algoritmos cunticos
Alejandro Daz-CaroUniversidad Nacional de Quilmes
22o Escuela de Verano de Ciencias InformticasRo Cuarto, Crdoba 9 al 14 de febrero de 2015
-
Algoritmos ms conocidos y criptografa
I Deutsch
I Deutsch-Jotza
I Grover
I BB84
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 2 / 14
-
Algoritmo de Deutsch
Objetivo:Dado un orculo Uf que implementa la funcin
f : {0, 1} {0, 1}, determinar si f es constante o no
Uf |x , y = |x , y f (x)
|0 HUf
H
|1 H
|01 Deustch alg.
|f (0) f (1)[|0|1
2
] |0 [ |0|12 ]|1
[|0|1
2
]Si es
constante
Sino
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 3 / 14
-
Algoritmo de Deutsch
Objetivo:Dado un orculo Uf que implementa la funcin
f : {0, 1} {0, 1}, determinar si f es constante o no
Uf |x , y = |x , y f (x)
|0 HUf
H
|1 H
|01 Deustch alg.
|f (0) f (1)[|0|1
2
] |0 [ |0|12 ]|1
[|0|1
2
]Si es
constante
Sino
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 3 / 14
-
Algoritmo de Deutsch
Objetivo:Dado un orculo Uf que implementa la funcin
f : {0, 1} {0, 1}, determinar si f es constante o no
Uf |x , y = |x , y f (x)
|0 HUf
H
|1 H
|01 Deustch alg.
|f (0) f (1)[|0|1
2
] |0 [ |0|12 ]|1
[|0|1
2
]Si es
constante
Sino
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 3 / 14
-
Algoritmo de Deutsch
Objetivo:Dado un orculo Uf que implementa la funcin
f : {0, 1} {0, 1}, determinar si f es constante o no
Uf |x , y = |x , y f (x)
|0 HUf
H
|1 H
|01 Deustch alg. |f (0) f (1)[|0|1
2
] |0 [ |0|12 ]|1
[|0|1
2
]Si es
constante
Sino
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 3 / 14
-
Algoritmo de Deutsch-JotzaObjetivo:
Dado un orculo Uf que implementa la funcinf : {0, 1}n {0, 1}, determinar si f es constante o balanceada
Uf |x , y = |x , y f (x)
|0 H
Uf
H
|0 H H...
...
|1 H
|0n|1 DJ alg.
|0n[|0|1
2
]|
[|0|1
2
]Si es
constante
Si esbalanceada
donde | noincluye |0n
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 4 / 14
-
Algoritmo de Deutsch-JotzaObjetivo:
Dado un orculo Uf que implementa la funcinf : {0, 1}n {0, 1}, determinar si f es constante o balanceada
Uf |x , y = |x , y f (x)
|0 H
Uf
H
|0 H H...
...
|1 H
|0n|1 DJ alg.
|0n[|0|1
2
]|
[|0|1
2
]Si es
constante
Si esbalanceada
donde | noincluye |0n
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 4 / 14
-
Algoritmo de Deutsch-JotzaObjetivo:
Dado un orculo Uf que implementa la funcinf : {0, 1}n {0, 1}, determinar si f es constante o balanceada
Uf |x , y = |x , y f (x)
|0 H
Uf
H
|0 H H...
...
|1 H
|0n|1 DJ alg.
|0n[|0|1
2
]|
[|0|1
2
]Si es
constante
Si esbalanceada
donde | noincluye |0n
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 4 / 14
-
Algoritmo de Deutsch-JotzaObjetivo:
Dado un orculo Uf que implementa la funcinf : {0, 1}n {0, 1}, determinar si f es constante o balanceada
Uf |x , y = |x , y f (x)
|0 H
Uf
H
|0 H H...
...
|1 H
|0n|1 DJ alg. |0n
[|0|1
2
]|
[|0|1
2
]Si es
constante
Si esbalanceada
donde | noincluye |0n
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 4 / 14
-
Algoritmo de bsqueda de GroverPreliminares: Orculo
Uf |x , y = |x , y f (x)
Tomar y = | = 12 (|0 |1) entonces
Uf |x , y = Uf(|x 1
2(|0 |1)
)= 1
2(Uf |x , 0 Uf |x , 1)
= 12(|x , f (x) |x , 1 f (x)) = |x 1
2(|f (x) |1 f (x))
= (1)f (x)|x , y
Uf no modifica y . . . lo omitimos
OrculoU|x = (1)f (x)|x
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 5 / 14
-
Algoritmo de bsqueda de GroverPreliminares: Orculo
Uf |x , y = |x , y f (x)
Tomar y = | = 12 (|0 |1) entonces
Uf |x , y = Uf(|x 1
2(|0 |1)
)= 1
2(Uf |x , 0 Uf |x , 1)
= 12(|x , f (x) |x , 1 f (x)) = |x 1
2(|f (x) |1 f (x))
= (1)f (x)|x , y
Uf no modifica y . . . lo omitimos
OrculoU|x = (1)f (x)|x
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 5 / 14
-
Algoritmo de bsqueda de GroverPreliminares: Inversin sobre el promedio
| = 12n
x{0,1}n
|x
=
12n...12n
2n
Inversin sobre el promedioG = 2|| I
22n 1 22n 22n2
2n22n 1 22n... ... ...
22n
22n 22n 1
2n2n
G
x{0,1}n
ax |x
=
x{0,1}n(2A ax )|x
donde A es el promedio de los ax
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 6 / 14
-
Algoritmo de bsqueda de GroverPreliminares: Inversin sobre el promedio
| = 12n
x{0,1}n
|x =
12n...12n
2n
Inversin sobre el promedioG = 2|| I
22n 1 22n 22n2
2n22n 1 22n... ... ...
22n
22n 22n 1
2n2n
G
x{0,1}n
ax |x
=
x{0,1}n(2A ax )|x
donde A es el promedio de los ax
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 6 / 14
-
Algoritmo de bsqueda de GroverPreliminares: Inversin sobre el promedio
| = 12n
x{0,1}n
|x =
12n...12n
2n
Inversin sobre el promedioG = 2|| I
22n 1 22n 22n2
2n22n 1 22n... ... ...
22n
22n 22n 1
2n2n
G
x{0,1}n
ax |x
=
x{0,1}n(2A ax )|x
donde A es el promedio de los ax
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 6 / 14
-
Algoritmo de bsqueda de GroverPreliminares: Inversin sobre el promedio
| = 12n
x{0,1}n
|x =
12n...12n
2n
Inversin sobre el promedioG = 2|| I
22n 1 22n 22n2
2n22n 1 22n... ... ...
22n
22n 22n 1
2n2n
G
x{0,1}n
ax |x
=
x{0,1}n(2A ax )|x
donde A es el promedio de los ax
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 6 / 14
-
Algoritmo de bsqueda de GroverEl algoritmo
Objetivo:Localizar el x0 tal que f (x0) = 1
1. Aplicar Hadamard a |0n
2. Aplicar el orculo U3. Aplicar la inversin sobre el promedio G
4. Repetir pasos 2 y 3 durante
pi
4arcsen(
12n )
iteraciones
(clculo del nmero ptimo de iteraciones, en el apunte, seccin 2.3.4)
Explicacin paso a paso en el pizarrn(y ejemplo)
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 7 / 14
-
Aplicacin criptogrficaOne-time pad, un mtodo clsico infalible. . .
b1 b2 b1 b2 (b1 b2)b2
1 1 0 11 0 1 10 1 1 00 0 0 0
ClaveMensajecifrado
Mensaje
original
Mensaje
Clave
Mensaje
cifrado
Probabilidad de adivinar el mensaje original a partir del cifrado: 12nIgual que la posibilidad de adivinar el mensaje original sin ninguna
informacin extra!
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 8 / 14
-
Aplicacin criptogrficaOne-time pad, un mtodo clsico infalible. . .
b1 b2 b1 b2 (b1 b2)b2
1 1 0 11 0 1 10 1 1 00 0 0 0
ClaveMensajecifrado
Mensaje
original
Mensaje
Clave
Mensaje
cifrado
Probabilidad de adivinar el mensaje original a partir del cifrado: 12nIgual que la posibilidad de adivinar el mensaje original sin ninguna
informacin extra!
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 8 / 14
-
Aplicacin criptogrficaOne-time pad, un mtodo clsico infalible. . .
b1 b2 b1 b2 (b1 b2)b2
1 1 0 11 0 1 10 1 1 00 0 0 0
ClaveMensajecifrado
Mensaje
original
Mensaje
Clave
Mensaje
cifrado
Probabilidad de adivinar el mensaje original a partir del cifrado: 12nIgual que la posibilidad de adivinar el mensaje original sin ninguna
informacin extra!
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 8 / 14
-
Aplicacin criptogrficaOne-time pad, un mtodo clsico infalible. . .
b1 b2 b1 b2 (b1 b2)b2
1 1 0 11 0 1 10 1 1 00 0 0 0
ClaveMensajecifrado
Mensaje
original
Mensaje
Clave
Mensaje
cifradoProbabilidad de adivinar el mensaje original a partir del cifrado: 12n
Igual que la posibilidad de adivinar el mensaje original sin ningunainformacin extra!
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 8 / 14
-
Aplicacin criptogrficaOne-time pad, un mtodo clsico infalible. . .
b1 b2 b1 b2 (b1 b2)b2
1 1 0 11 0 1 10 1 1 00 0 0 0
ClaveMensajecifrado
Mensaje
original
Mensaje
Clave
Mensaje
cifradoProbabilidad de adivinar el mensaje original a partir del cifrado: 12n
Igual que la posibilidad de adivinar el mensaje original sin ningunainformacin extra!
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 8 / 14
-
Aplicacin criptogrficaOne-time pad, un mtodo clsico infalible. . .
Entonces, si es tan simple y seguro. . . porqu no es utilizado?
I Largo del mensaje = largo de la clave (para 100% de seguridad)I Clave de encriptacin y desencriptacin iguales (y secretas)
I Dificultad para distribuir las claves
Ah entra el mtodo BB84: es un mtodo dedistribucin de claves de manera segura.
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 9 / 14
-
Aplicacin criptogrficaOne-time pad, un mtodo clsico infalible. . .
Entonces, si es tan simple y seguro. . . porqu no es utilizado?
I Largo del mensaje = largo de la clave (para 100% de seguridad)I Clave de encriptacin y desencriptacin iguales (y secretas)
I Dificultad para distribuir las claves
Ah entra el mtodo BB84: es un mtodo dedistribucin de claves de manera segura.
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 9 / 14
-
Aplicacin criptogrficaOne-time pad, un mtodo clsico infalible. . .
Entonces, si es tan simple y seguro. . . porqu no es utilizado?
I Largo del mensaje = largo de la clave (para 100% de seguridad)I Clave de encriptacin y desencriptacin iguales (y secretas)
I Dificultad para distribuir las claves
Ah entra el mtodo BB84: es un mtodo dedistribucin de claves de manera segura.
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 9 / 14
-
Aplicacin criptogrficaQKDBB84
Objetivo: Crear y transmitir una clave de manera segura
Esquema + Base {|0, |1} {|+, |}
Codif. 0 = |01 = |1
0 = |1 = |+
1. A: secuencia aleatoria de 0s o 1s y eleccin aleatoria de esquemas para c/bit2. B: eleccin aleatoria del esquema de medicin para cada bit recibido3. A: transmite la sucesin de esquemas empleada4. B: informa en qu casos coincidieron5. La clave queda definida por los bits donde se usaron los mismos esquemas6. Intercambio de hashes para verificacin
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 10 / 14
-
Aplicacin criptogrficaQKDBB84: Ejemplo
+ : 0 = |0, 1 = |1 : 0 = |, 1 = |+1. A: secuencia aleatoria de 0s o 1s y eleccin aleatoria de esquemas para c/bit2. B: eleccin aleatoria del esquema de medicin para cada bit recibido3. A: transmite la sucesin de esquemas empleada4. B: informa en qu casos coincidieron5. La clave queda definida por los bits donde se usaron los mismos esquemas6. Intercambio de hashes para verificacin
Bits de A 1 0 0 1 0 0 0 1Esquemas de A + + + +Valores de A |+ |0 |0 |+ | |0 | |1
Esquemas de B + + + + Valores de B |0 |+ |0 |+ |1 |0 | |
Coincidencias Clave 0 1 0 0
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 11 / 14
-
Aplicacin criptogrficaQKDBB84: Ejemplo
+ : 0 = |0, 1 = |1 : 0 = |, 1 = |+1. A: secuencia aleatoria de 0s o 1s y eleccin aleatoria de esquemas para c/bit2. B: eleccin aleatoria del esquema de medicin para cada bit recibido3. A: transmite la sucesin de esquemas empleada4. B: informa en qu casos coincidieron5. La clave queda definida por los bits donde se usaron los mismos esquemas6. Intercambio de hashes para verificacin
Bits de A 1 0 0 1 0 0 0 1Esquemas de A + + + +Valores de A |+ |0 |0 |+ | |0 | |1
Esquemas de B + + + + Valores de B |0 |+ |0 |+ |1 |0 | |Coincidencias
Clave 0 1 0 0
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 11 / 14
-
Aplicacin criptogrficaQKDBB84: Ejemplo
+ : 0 = |0, 1 = |1 : 0 = |, 1 = |+1. A: secuencia aleatoria de 0s o 1s y eleccin aleatoria de esquemas para c/bit2. B: eleccin aleatoria del esquema de medicin para cada bit recibido3. A: transmite la sucesin de esquemas empleada4. B: informa en qu casos coincidieron5. La clave queda definida por los bits donde se usaron los mismos esquemas6. Intercambio de hashes para verificacin
Bits de A 1 0 0 1 0 0 0 1Esquemas de A + + + +Valores de A |+ |0 |0 |+ | |0 | |1
Esquemas de B + + + + Valores de B |0 |+ |0 |+ |1 |0 | |Coincidencias
Clave 0 1 0 0
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 11 / 14
-
Aplicacin criptogrficaQKDBB84: Inviolabilidad (terica)
Agregamos un espa: C
I A enva 0 con esquema : |I Si C usa esquema +, el estado pasa a |0 o |1I Si B usa esquema , obtiene | con probabilidad 12 y |+ con
probabilidad 12I Mientras ms bits se envan, la probabilidad de no detectar a C
decrece exponencialmente:Bits Probabilidad1 bit 3/4 = 0,758 bits (3/4)8 = 0,10011128 bits (3/4)128 = 1,018 10161Mb (3/4)1024 = 1,155 101281MB (3/4)8192 = 3,17 101024
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 12 / 14
-
Aplicacin criptogrficaQKDBB84: Inviolabilidad (terica)
Agregamos un espa: C
I A enva 0 con esquema : |
I Si C usa esquema +, el estado pasa a |0 o |1I Si B usa esquema , obtiene | con probabilidad 12 y |+ con
probabilidad 12I Mientras ms bits se envan, la probabilidad de no detectar a C
decrece exponencialmente:Bits Probabilidad1 bit 3/4 = 0,758 bits (3/4)8 = 0,10011128 bits (3/4)128 = 1,018 10161Mb (3/4)1024 = 1,155 101281MB (3/4)8192 = 3,17 101024
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 12 / 14
-
Aplicacin criptogrficaQKDBB84: Inviolabilidad (terica)
Agregamos un espa: C
I A enva 0 con esquema : |I Si C usa esquema +, el estado pasa a |0 o |1
I Si B usa esquema , obtiene | con probabilidad 12 y |+ conprobabilidad 12
I Mientras ms bits se envan, la probabilidad de no detectar a Cdecrece exponencialmente:Bits Probabilidad1 bit 3/4 = 0,758 bits (3/4)8 = 0,10011128 bits (3/4)128 = 1,018 10161Mb (3/4)1024 = 1,155 101281MB (3/4)8192 = 3,17 101024
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 12 / 14
-
Aplicacin criptogrficaQKDBB84: Inviolabilidad (terica)
Agregamos un espa: C
I A enva 0 con esquema : |I Si C usa esquema +, el estado pasa a |0 o |1I Si B usa esquema , obtiene | con probabilidad 12 y |+ con
probabilidad 12
I Mientras ms bits se envan, la probabilidad de no detectar a Cdecrece exponencialmente:Bits Probabilidad1 bit 3/4 = 0,758 bits (3/4)8 = 0,10011128 bits (3/4)128 = 1,018 10161Mb (3/4)1024 = 1,155 101281MB (3/4)8192 = 3,17 101024
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 12 / 14
-
Aplicacin criptogrficaQKDBB84: Inviolabilidad (terica)
Agregamos un espa: C
I A enva 0 con esquema : |I Si C usa esquema +, el estado pasa a |0 o |1I Si B usa esquema , obtiene | con probabilidad 12 y |+ con
probabilidad 12I Mientras ms bits se envan, la probabilidad de no detectar a C
decrece exponencialmente:Bits Probabilidad1 bit 3/4 = 0,758 bits (3/4)8 = 0,10011128 bits (3/4)128 = 1,018 10161Mb (3/4)1024 = 1,155 101281MB (3/4)8192 = 3,17 101024
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 12 / 14
-
Aplicacin criptogrficaQKDBB84 en la vida real
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 13 / 14
-
Ejercicio
En una lista de 1000 elementos,1. Cul es el nmero ptimo de iteraciones del
algoritmo de Grover?2. Cul es la probabilidad de error?
Alejandro Daz-Caro Fundamentos de lenguajes de programacin cuntica - RIO15 14 / 14