Cifrado de imágenes digitales: Método matricial
• El cifrado de imágenes es interesante para: telefonía móvil, correo electrónico, televisión de pago, etc. Por eso se está trabajando actualmente mucho en este tema.
• Las imágenes digitales son matrices de números entre 0 y 255 (8 bits). Teniendo en cuenta eso,muchos métodos criptográficos, en principio pensados para cifrar texto, se pueden adaptar para cifrar imágenes.
• Supongamos, por ejemplo, que tenemos una imagen
Vamos a cifrarla con el método matricial de Hill.
Cogemos los niveles de gris de dos en dos, empezando en la esquina superior izquierda de la matriz y moviéndonos de izquierda a derecha y de arriba a abajo: el primer bloque será ,el segundo bloque será , y así sucesivamente.
512512
1211
,aa 1413
,aa
7918
3521K
13073
740
137
125
7918
3521)256(mod
17
252
13073
740
Cifrado de imágenes digitales: método matricial
Imagen original Imagen cifrada
No todas las matrices K tienen inversa módulo 256.
dc
baK
ac
bd
bcadK
11
Como estamos trabajando módulo 256, es necesario además que el número |K| sea primo relativo con el módulo:
0 bcadK
1),256( Kmcd
20715
820
KK
7918
3521K )256(mod51029 K
Clave no válida Clave válida
Cifrado de imágenes digitales: Cifrado de Vernam* A B C D E F G H I J K L M N O P Q R
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
S T U V W X Y Z ( ) , ¿ !
19 20 21 22 23 24 25 26 27 28 29 30 31
Alfabeto de 32 caracteres. Se necesitan 5 bits para cada letra00000 para *
00001 para A
...
11111 para !
Mensaje=“MAR”
Clave=“XYZ”U
X
M
2110101
1100024
0110113
2(
2(
2(
Para descifrar se suma
la misma clave:M
X
U
1301101
1100024
1010121
2(
2(
2(
Mensaje cifrado=“U...”
Mensaje descifrado=“M...”
Cifrado de imágenes digitales: Cifrado de Vernam
Imagen original Clave Imagen cifrada
Imagen original Clave = Imagen cifrada
Imagen cifrada Clave = Imagen original
Cifrado
Descifrado
Los niveles de gris de la imagen original y de la clave son números de 8 bits: entre negro=0=00000000(2 hasta blanco=255=11111111(2
Ejemplo:
12001111000
11111011251
10000011131
2(
2(
2(
Cifrado usando alguna transformadaImagen original: 65536256256
• Se convierte en un vector 1D de 65536 componentes .
• Se le aplica la DFT, por ejemplo, se transforma en otro vector también de 65536 componentes.
• Intercambiamos las componentes pares por las impares.
• Se calcula la transformada inversa
Fichero de audio original Fichero de audio cifrado
Cifrado de imágenes digitales: Mapa del gato de Arnold
Volvemos a trabajar con matrices (como en el método de Hill).
Ahora (x, y) no van a ser dos niveles de gris sino la posición del píxel en la imagen
Imagen original: 124124 123,,2,1,0
123,,2,1,0
y
x )124(mod'
'
21
11
y
xK
y
xK
Iteración 1 Iteración 2 Iteración 5 Iteración 10 Iteración 14 Iteración 15
Si N=101 periodo 25
Si N=124 periodo=15
Si N=150 periodo=300Vladimir Arnold (Rusia, 1937-)
Cifrado de imágenes digitales: Funciones caóticas
La función logística: ]4,0[
)1(
1,01,0:
rxxrx
f
Se genera la sucesión )1()(10 nnnn
xxrxfxx
El resultado puede ser radicalmente distinto, según los valores de r y el valor inicial . Vamos a hacer, por ejemplo, 100 iteraciones.0
x
}6296.0,6296.0,6296.0,6296.0,6296.0,6296.0,6296.0,6296.0,{
7.2;1.00
rx
},8236.0,4794.0,8236.0,4794.0,8236.0,4794.0,8236.0,4794.0,8236.0,4794.0,{
3.3;1.00
rx
0.9777} 0.4253, 0.8791, 0.6739, 0.2145, 0.0568, 0.0144, 0.0036, 0.0009, 0.0002, 0.9999,,{
4;1.00
rx
Cifrado de imágenes digitales: Funciones caóticas
Fractal de Feigenbaum (EEUU, 1944 -) o gráfico de bifurcación.
Cifrado de imágenes digitales: Funciones caóticas
Sensibilidad a las condiciones iniciales: efecto mariposa
Para un valor de r no caótico: 7.2r
}6296.0,6296.0,6296.0,6296.0,6296.0,6296.0,6296.0,6296.0,{
1.00
x
}6296.0,6296.0,6296.0,6296.0,6296.0,6296.0,6296.0,6296.0,{
101.00
x
}6296.0,6296.0,6296.0,6296.0,6296.0,6296.0,6296.0,6296.0,{
9.00
x
Para un valor de r caótico: 4r
0.3724} 0.1039, 0.0266, 0.0067, 0.9983, 0.4794, 0.8607, 0.3134, 0.0856, ,{
1.00
x
0.4439} 0.1271, 0.0329, 0.9917, 0.5455, 0.8371, 0.7018, 0.2270, ,{
101.00
x
Cifrado de imágenes digitales: Funciones caóticas
Imagen cifradaImagen original
Clave=0.6530
Clave secreta: r y 0x
},,,{655362562566553621iiiI Imagen original:
)1(446530.010 nnn
xxxrx
Generamos la secuencia secreta:
nnnnniyixEy ')256),1000(mod(
Cifrado de imágenes digitales: Funciones caóticas
6530.00x
6531.00x
Imagen cifrada
Imagen descifrada
Imagen descifrada
Cifrado de imágenes digitales: Funciones caóticas
Imagen cifradaImagen original
65536,,2,1)1(46530.0 10 nxxxx nnn
Se ordena la sucesión obtenida de menor a mayor y el orden de colocación en la lista ordenada de nos dará el lugar donde irá a parar el píxel i-ésimo de la imagen
ix
},,,,{ 65536321 xxxx
256256Imagen original: },,,,{ 65536321 PPPP
Cifrado de imágenes digitales: Funciones caóticas
Imagen cifrada
Imagen descifrada con clave 0.6530
Imagen descifrada con clave 0.6531