En esta plática se explicará desde cero la definición y diferencias entre la criptografía y la esteganografía. Se mostrarán diferentes formas de ocultar información en varios formatos.
Se liberarán herramientas con uso de transformadas trigonométricas discretas para optimizar los algoritmos esteganográficos sobre imágenes digitales evitando incremento en datos resultantes y poca pérdida de calidad en imágenes.
GUADALAJARACON 2012
http://www.guadalajaracon.org
Guadalajara, Jalisco, México - 20 y 21 de abril del 2012
El uso de las tic en la vida ,lo importante que son
Criptografía vs esteganografía [GuadalajaraCON 2012]
1. Aspectos de
criptograf´ y
ıa
esteganograf´ıa
Eduardo Ruiz
Duarte
Criptograf´ vs esteganograf´
ıa ıa
Eduardo Ruiz Duarte
Facultad de Ciencias UNAM
Abril 21 2012, GuadalajaraCON 2012
2. Caracter´
ısticas
Aspectos de
criptograf´ y
ıa
esteganograf´ıa
Eduardo Ruiz
Duarte
Criptograf´ Un mensaje cifrado es detectable f´cilmente
ıa: a
por pruebas probabil´
ısticas
Esteganograf´ Un mensaje oculto en la naturaleza de
ıa:
otro no es f´cilmente detectable
a
3. Caracter´
ısticas preferentes
Aspectos de
criptograf´ y
ıa
esteganograf´ıa
Eduardo Ruiz
Duarte
Criptograf´
ıa:
No lineal
Correlaci´n: La amplitud m´xima entre correlaciones de
o a
bloques cifrados debe ser m´
ınima
Probabilidad de propagaci´n diferencial: La
o
probabilidad de poder deducir bloques desde los anteriores
debe ser m´ ınima
Complejidad algebraica: El objeto matem´tico con el
a
que se representa el dato debe de ser difuso y confuso...
4. Caracter´
ısticas preferentes
Aspectos de
criptograf´ y
ıa
esteganograf´ıa
Eduardo Ruiz
Duarte
Esteganograf´
ıa:
Naturaleza: La naturaleza y atributos del objeto deben
ser modificados en lo m´s m´
a ınimo al momento de meterle
el mensaje
Transformaci´n: El mensaje debe de ser transformado a
o
manera que se asemeje a la funci´n que modela el objeto
o
5. ¿Entonces?
Aspectos de
criptograf´ y
ıa
esteganograf´ıa
Eduardo Ruiz
Duarte
La criptograf´ pide m´s caos, asemej´ndose a un
ıa a a
resultado estoc´stico.. en t´rminos de detecci´n
a e o
La esteganograf´ pide mayor c´mputo, transformadas que
ıa o
nos indiquen d´nde insertar un dato
o
6. Rumor
Aspectos de
criptograf´ y
ıa
esteganograf´ıa
Eduardo Ruiz
Duarte
Existen rumores que terroristas como los del WTC utilizaron
esteganograf´ para comunicarse, ya que podr´ haber estado
ıa ıan
intervenidos y como veremos enseguida, si cifraban su
comunicaci´n podr´ descubrir que algo tramaban,
o ıan
generalmente utilizaban avatars de foros o p´ginas
a
pornogr´ficas para transmitir el dato
a
7. Probabilidad
Aspectos de
criptograf´ y
ıa
esteganograf´ıa
Eduardo Ruiz
Duarte
¿Qu´ pasar´ si medimos la media aritm´tica de datos cifrados?
e a e
n
i =0 xi
µ(M) = , xi ∈ {0, 1, 2, ..., 255} ∀xi ∈ M, n = |M|
n
8. Pruebas
Aspectos de
criptograf´ y
ıa
esteganograf´ıa
Eduardo Ruiz
Duarte Binarios
$ ./a.out /bin/mount
85.15
$ ./a.out /bin/sh
91.36
$ ./a.out /bin/cp
93.70
$./a.out /bin/ls
97.94
Vemos que los valores est´n entre 80 y 100
a
9. Pruebas
Aspectos de
criptograf´ y
ıa
esteganograf´ıa Texto cifrado
Eduardo Ruiz $ openssl enc -aes256 -in /etc/services -out services.aes
Duarte
enter aes-256-cbc encryption password:josejose
$ ./a.out services.aes
127.93
$ openssl enc -aes256 -in /etc/services -out services.aes
enter aes-256-cbc encryption password:josejosUE
$ ./a.out services.aes
128.11
$ dd if=/dev/urandom of=randfile bs=1024 count=1024
1024+0 records in
1024+0 records out
$ ./a.out randfile
127.43
10. Observaciones
Aspectos de
criptograf´ y
ıa
esteganograf´ıa
Eduardo Ruiz
Duarte
si µ(M) ≈ 128 entonces M es un texto cifrado o pseudo
aleatorio
Los datos cifrados son detectables con µ y hay m´s
a
medidas y σ-´lgebras
a
AES cumple todos los requerimientos de cifrado por NIST
(National Institute of Standards and Technology)
Lo cual implica que entre MEJOR sea un algoritmo de
cifrado, es m´s f´cil detectarlo.
a a
11. Entrop´
ıa
Aspectos de
criptograf´ y
ıa Existe otra medida mucho mejor... la cual nos proporciona
esteganograf´ıa
mayor informaci´n... que nos permite medir si un conjunto de
o
Eduardo Ruiz
Duarte datos contiene redundancia. Esto nos puede servir para poder
saber si un archivo es ’comprimible’.. por ejemplo... (Ω, 2Ω , ρ)
n n
1
Γ(X ) = ρ(xi ) log2 =− ρ(xi ) log2 (ρ(xi ))
ρ(xi )
i =1 i =1
ımbolos de X , n = |Ω| y ρ(x) es una medida y X ∈ 2Ω
xi son s´
Donde 2Ω es la σ-´lgebra y Ω representa el conjunto de s´
a ımbolos
La imagen de los archivos bajo esta funci´n ser´ Γ(X ) ∈ [0, 8]
o a
Esta funci´n puede ser definida con cualquier medida inducida
o
en una σ-´lgebra
a
12. Pregunta
Aspectos de
criptograf´ y
ıa
esteganograf´ıa
Eduardo Ruiz
Duarte
¿Por qu´ los valores de Γ ∈ [0, 8] en nuestros archivos ?
e
14. Ejemplos dumps de internet en un router muy
concurrido
Aspectos de
criptograf´ y
ıa
esteganograf´ıa
Eduardo Ruiz $ ./entropy dumpinet/dump1.raw
Duarte
3.40
$ ./entropy dumpinet/dump2.raw
3.66
$ ./entropy dumpinet/dump3.raw
5.41
$ ./entropy dumpinet/dump4-ipsec.raw
6.05
$ ./entropy dumpinet/dump5-ipsec.raw
7.52
$ ./entropy dumpinet/dump6-ipsec.raw
7.24
15. Veamos unos dibujitos
Aspectos de
criptograf´ y
ıa
esteganograf´ıa
Eduardo Ruiz
Duarte
Vamos a observar c´mo se ven estos distintos tipos de
o
conjuntos de datos con un programa que calcula una gr´fica
a
del comportamiento del archivo
16. Pseudo Filosof´
ıa
Aspectos de
criptograf´ y
ıa
esteganograf´ıa
Eduardo Ruiz
Duarte
La vida contiene patrones, los lenguajes, la manera de
pensarlos y disenarlos tienen una sem´ntica, gram´tica,
a a
sintaxis. Y ´stas no presentan jam´s comportamientos
e a
estoc´sticos, ya que el fin con el que son disenados no contiene
a
caos. Por lo tanto, cuando se presenta en internet entrop´
ıa
alta, es por alguna raz´n extrana.
o
17. Despu´s de la barbacoa ahora los postrecitos
e
Aspectos de
criptograf´ y
ıa
esteganograf´ıa
Eduardo Ruiz
Duarte
M´todos que explico a continuaci´n muy brevemente sobre
e o
esteganograf´ b´sica con sus c´digos respectivos ser´n
ıa a o a
mostrados
LSB
DCT (Discrete Cosine Transform) en JPEG
18. LSB (Least Significant Bit)
Aspectos de
criptograf´ y
ıa Ok, s´per sencillo... en mapas de bits por componentes , por
u
esteganograf´ıa
ejemplo BMP o TIFF o cualquiera soportado por OpenCV lo
Eduardo Ruiz
Duarte puedes controlar por RGB (Red,Green,Blue)
Si cada pixel mide 24 bits tenemos un vector en 3 dimensiones
cuyos componentes son las entradas (r,g,b) ∈ F28 × F28 × F28
No es snobbismo , pero tampoco es parte de la presentaci´n
o
verlo as´
ı...
pero les puede dar una idea, F28 es un campo finito..
Y se puede asociar un Z−m´dulo por ser abeliano y ver la im´gen
o a
’quasi’ espacio vectorial (sobre un anillo)
19. Despu´s del debraye... regresamos
e
Aspectos de
criptograf´ y
ıa
esteganograf´ıa
Eduardo Ruiz Un pixel es un entero de 24 bits... 0xPPQQRR por ejemplo
Duarte
0xFF0000 es el rojo 0x0000FF es azul , entonces en binario se
ver´ algo asi como 0110101111110101100001101
ıa
Ahora imagina que quiero meter el bit K en ese pixel.
entonces mi pixel quedar´
ıa
011010111111010110000110K
Si K es 1 no se modifica el pixel , si K es 0 , se modifica 1 bit.
El pixel solo puede cambiar en una magnitud de 1/16777216
ya que son 224 combinaciones de colores
20. Entrop´
ıas
Aspectos de
criptograf´ y
ıa
esteganograf´ıa
Eduardo Ruiz
Duarte
$ ./entropy imagen.bmp
7.88
$ ./entropy imagen-steg.bmp
7.88
La entrop´ no var´ demasiado...
ıa ıa
21. JPEG
Aspectos de
criptograf´ y
ıa
esteganograf´ıa
Eduardo Ruiz
Duarte
Y que pasa con JPEG ? , ¿Por qu´ nadie puede? (o muy pocos
e
lo logran) La respuesta es simple.
22. JPEG
Aspectos de
criptograf´ y
ıa
esteganograf´ıa
Eduardo Ruiz
Duarte
Todo el mundo cree ser hacker, pero para ser 1337-H4X0R
al menos debes saber que significa o para que sirve y c´mo
o
funciona esto:
∞
F (ξ) := f (x)e −2πixξ dx ∀ξ ∈ R
−∞
Donde x es el momento y ξ es la frecuencia
23. Caracter´
ısticas b´sicas
a
Aspectos de
criptograf´ y
ıa
esteganograf´ıa
Eduardo Ruiz
Duarte
JPEG usa una un caso especial de Fourier que es la
transformada de coseno La cual se puede obtener f´cilmente de
a
la de Fourier expandiendo sus t´rminos con la identidad de
e
Euler sobre la exponencial, y con propiedades trigonom´tricas
e
de paridad en cosenos.
24. Deduzcamos la TC continua a trav´s de Fourier
e
Aspectos de
criptograf´ y
ıa
esteganograf´ıa
Eduardo Ruiz
Duarte
Si usamos que e ix = cos(x)+i sin(x) y suponemos que f es par
∞ ∞
F (ξ) := f (x) cos(x2πξ)dx−i f (x) sin(x2πξ)dx ∀ξ ∈ R
−∞ −∞
Ahora... porque la parte compleja se va a 0 ? (eso queremos
para obtener la TC)
25. TC continua
Aspectos de
criptograf´ y
ıa
esteganograf´ıa
Eduardo Ruiz f (x) cos(x2πξ) es par (¿porque?)
Duarte
f (x) sin(x2πξ) es impar
Y como se integra el seno de (−∞, ∞)
Esto es sim´trico con respecto al origen, y seno es impar..
e
Entonces: La parte compleja se va a 0 (Se complementa la
simetr´ y queda la parte real como todos sabemos:
ıa)
∞
F (ξ) := f (x) cos(x2πξ)dx
−∞
y Voila! an´logamente obtendr´
a ıamos la del seno si f fuera impar
26. Aspectos de
criptograf´ y
ıa
esteganograf´ıa
JPEG se fija que la luminancia es lo esencial para el ojo
Eduardo Ruiz
Duarte humano , entonces es a lo que le da m´s ´nfasis, ya que
a e
cambios en color son menos detectables para el ojo que
cambios de brillo.
JPEG usa la TCD (Transformada de coseno discreta) ya
que sabe juntar muy bi´n la energ´ en espacios m´s
e ıa a
chicos... y eso se aprovecha como ’compactificaci´n’
o
JPEG Guarda los coeficientes de la transformada que
como todos sabemos se puede representar por una matriz
(Nosotros somos hackers estudiosos)
JPEG pierde datos al momento de cuantizar al redondear
los valores flotantes (ah´ se pierde la calidad)
ı
30. ¿Entonces?
Aspectos de
criptograf´ y
ıa
esteganograf´ıa
Eduardo Ruiz
Duarte
Entonces si los colores se pierden, no nos sirve para guardar
datos... ¿Qu´ es lo que nos sirve para guardar nuestros bits?
e
31. P´rdida de datos
e
Aspectos de
criptograf´ y
ıa
esteganograf´ıa
Eduardo Ruiz
Duarte
Pu´s los coeficientes de la TCD!!
e
Despues de cuantizar (y perder datos) JPEG comprime con
Huffman de una manera muy rara , organizando la matriz en
zigzag ya que las frecuencias se organizan as´ de mayor a
ı,
menor as´ que generalmente hay muchos ceros al final ayuda a
ı
que se comprima muy bi´n.e
32. P´rdida de datos
e
Aspectos de
criptograf´ y
ıa
esteganograf´ıa
Eduardo Ruiz
Duarte
La transformada de coseno es invertible por eso podemos
recuperar la imagen, veamos por qu´ comprime muy bien..
e
Imaginen el espacio de frecuencia como una matriz y veremos
mucha redundancia la cual se comprime excelente
33. P´rdida de datos
e
Aspectos de
criptograf´ y
ıa
esteganograf´ıa La versi´n discreta de la transformada de coseno para los
o
Eduardo Ruiz bloques de 8x8 es as´ para un conjunto de pixeles f(x,y)
ı
Duarte
F (u, v ) =
(2x+1)uπ
1
4 C (u)C (v )
7
x=0
7
y =0 f (x, y ) ∗ cos 16 cos (2y +1)v π
16
C (x) = 0 si x=0 o C (x) = 1
La cuantizaci´n se hace con los elementos de la matriz Q(u, v ),
o
aqu´ tambi´n se pierden datos
ı e
F Q (u, v ) = ⌊ Q(u,v ) ⌋
F (u,v
)
Esta ultima es la que se almacena en JPEG y es la que
´
utilizamos para ocultar datos usando el LSB
34. P´rdida de datos
e
Aspectos de
criptograf´ y
ıa
esteganograf´ıa
El paso que pierde datos es cuando los coeficientes de la matriz
Eduardo Ruiz
son cuantizados, i.e. divididos uno por uno por otro entero el
Duarte
cual lo que hace es quitar las wavelets en la onda, ya que los
coeficientes estan dados por sumas de cosenos
35. ¿D´nde ocultar el dato?
o
Aspectos de
criptograf´ y
ıa
Examinemos un bloque de 8x8 pixeles
esteganograf´ıa
Rojo:Primeros 5 bits en LSB’s de primer bloque indican el
Eduardo Ruiz
Duarte
n´mero de bits que mide el n´mero de bits a insertar (25 = 32)
u u
Azul:Aqu´ est´ guardado el n´mero que representa los bits que
ı a u
vamos a guardar de la imagen
Verde:Aqu´ est´n los bits metidos en el LSB de cada coeficiente
ı a
N´tese que omitimos 00 y 01 para dejar la compresi´n de
o o
Huffman intacta.. y respetar la naturaleza de la TCD la cual
nos acumula toda la energ´ de un lado.
ıa
36. Final
Aspectos de
criptograf´ y
ıa
esteganograf´ıa
Eduardo Ruiz
Duarte
libjpeg es MUY cochina y dif´ de usar... pero ´sta tiene una
ıcil e
gran funci´n que te da los coeficientes de la TCD,
o
jvirt barray ptr *coefs = jpeg read coefficients (&arch);
Veamos unos ejemplos con una implementaci´n que oculta en
o
JPEG sin modificarlo tanto, ni su tamano.