36
Fundamentos de lenguajes de programación cuántica Día 2: Algoritmos cuánticos Alejandro Díaz-Caro Universidad Nacional de Quilmes 22 o Escuela de Verano de Ciencias Informáticas Río Cuarto, Córdoba – 9 al 14 de febrero de 2015

Slides Dia 2

  • Upload
    janusdc

  • View
    221

  • Download
    0

Embed Size (px)

DESCRIPTION

Curso en la escuela de verano de ciencias informáticas de Río Cuarto, Córdoba, Argentina Fundamentos de lenguajes de programación cuántica Día 2: Algoritmos cuánticos

Citation preview

  • 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