Tabla de Contenidos

Cifrado Homomorfico

Cuando un tercero tiene que operar con nuestros datos y no queremos que los vea, se aplica cifrado homomorfico, que permite realizar operaciones sobre datos cifrados.

A la hora de operar con cifrado homomorfico se usan los siguientes componentes:

Sabiendo esto, sabemos que la clave pública (a,b) del cifrado homomorfico es:

$(a,b = S^T*a+e $ $MOD q) ∈ Z^n_q * Z_q$

Esta fórmula es solo la clave pública, si queremos proceder a realizar el cifrado utilizando esta, debemos introducir otros 2 elementos:

El cifrado homomórfico se vería de la siguiente forma:

$(a,b = S^T*a+e+Δ*m $ $MOD q)$

Cuando se mandan datos a un tercero para operar con ellos, se madan a y b

$Δ*m+e = b+S^T*a$

$m+e = (b+S^T*a)/Δ$ $MOD q$

$m = ||(b+S^T*a)/Δ - e$ $MOD q||$

pan:chomoej1.png

Sumas sobre cifrado Homomórfico

pan:chsuma.png

Multiplicación de cifrado homomórfico contra una pequeña constante

pan:chmultcons.png

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. pan:descgadget1.png

La descomposición gadget permite calcular varios factores de la constante C. Se tienen en cuenta los siguientes datos:

pan:descgadget2.png

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)$:

Lo que reduce el error de forma considerable

$C = C_2*2^{P*2} + C_1*2^{P*1} + C_0*2^{P*0}$

Para ello, se crean varios mensajes cifrados: pan:descgadget3.png

pan:descgadgetejemplo.png