Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| pan:cifrado_homomorfico_v2 [2025/12/24 16:57] – thejuanvisu | pan:cifrado_homomorfico_v2 [2025/12/31 16:36] (actual) – thejuanvisu | ||
|---|---|---|---|
| Línea 34: | Línea 34: | ||
| * **OJO**: a y b son necesarios para poder descrifrar el mensaje | * **OJO**: a y b son necesarios para poder descrifrar el mensaje | ||
| + | Cuando se mandan datos a un tercero para operar con ellos, se madan a y b | ||
| + | <WRAP box> | ||
| + | $Δ*m+e = b+S^T*a$ | ||
| + | </ | ||
| + | * $m' = Δ*m+e$ -> Mensaje aproximado con error | ||
| + | |||
| + | <WRAP box> | ||
| + | $m+e = (b+S^T*a)/ | ||
| + | </ | ||
| + | * $m' = m+e$ | ||
| + | |||
| + | <WRAP box> | ||
| + | $m = ||(b+S^T*a)/ | ||
| + | </ | ||
| + | * Redondeamos el resultado para el descifrado | ||
| + | * Si todo va bien, al realizar el redondeo desaparece el error aplicado y el valor final obtenido es el mensaje inicial. | ||
| + | |||
| + | {{drawio> | ||
| + | |||
| + | ===== Sumas sobre cifrado Homomórfico ===== | ||
| + | |||
| + | {{drawio> | ||
| + | |||
| + | ===== Multiplicación de cifrado homomórfico contra una pequeña constante ===== | ||
| + | |||
| + | {{drawio> | ||
| + | |||
| + | **NOTA**: Si el valor de C es muy grande puede descuadrarse todo al multiplicarse el error. | ||
| + | |||
| + | ===== Descomposición gadget ===== | ||
| + | |||
| + | La descomposición gadget consiste en tomar un número grande y descomponerlo en bloques. Esto se usa en las multiplicaciones con cifrado homomórfico para evitar que se descuadren los valores. | ||
| + | {{drawio> | ||
| + | |||
| + | La descomposición gadget permite calcular varios factores de la constante C. Se tienen en cuenta los siguientes datos: | ||
| + | * C: Constante a descomponer | ||
| + | * B: En cuantos trozos se va a descomponer, | ||
| + | * P: Valor de la potencia de 2 que se va a utilizar para realizar las divisiones. | ||
| + | {{drawio> | ||
| + | |||
| + | ==== Descomposición Gadget en el Cifrado Homomórfico ==== | ||
| + | |||
| + | Gracias a la descomposición gadget podemos descomponer una multiplicación homomórfica por una constante muy grande de la siguiente forma para $(a*c, b*c)$: | ||
| + | * $(a*c_0, b*c_0)$ | ||
| + | * $(a*c_1, b*c_1)$ | ||
| + | * $(a*c_2, b*c_2)$ | ||
| + | Lo que reduce el error de forma considerable | ||
| + | <WRAP box> | ||
| + | $C = C_2*2^{P*2} + C_1*2^{P*1} + C_0*2^{P*0}$ | ||
| + | </ | ||
| + | Para ello, se crean varios mensajes cifrados: | ||
| + | {{drawio> | ||
| + | |||
| + | {{drawio> | ||