Está en la página 1de 5

PEC 1 PARA LA ASIGNATURA COMPONENTES DE LA CIBERSEGURIDAD

DEL ALUMNO GUILLERMO TORRES CERRATO


PROBLEMA 1
Sea G un PRG como se explica a continuación:
G(s)=s|| s1 ⊕ s2 ⊕… ⊕ sn donde si es el i-esimo bit de s∈{0, 1}n
Demuestra que G no es un PRG seguro.

Resultado:
El resultado de la operación XOR bit a bit s1 ⊕ s2 ⊕… ⊕ sn tiene como
resultado longitud 1, por lo que el resultado de la operación será o bien un 0 o
bien un 1 concatenado a la cadena s. Para una cadena aleatoria
uniformemente distribuida s de longitud n bits, se cumple que la probabilidad de
que el bit que se añade como resultado de G(s) en la operación XOR es 1 con
probabilidad ½ (y 0 con probabilidad ½). Ejemplo para n = 4:
s = 0000 0⊕0⊕0⊕0=0
s = 0001 0⊕0⊕0⊕1=1
s = 0010 0⊕0⊕1⊕0=1
s = 0011 0⊕0⊕1⊕1=0
s = 0100 0⊕1⊕0⊕0=1
s = 0101 0⊕1⊕0⊕1=0
s = 0110 0⊕1⊕1⊕0=0
s = 0111 0⊕1⊕1⊕1=1
s = 1000 1⊕0⊕0⊕0=1
s = 1001 1⊕0⊕0⊕1=0
s = 1010 1⊕0⊕1⊕0=0
s = 1011 1⊕0⊕1⊕1=1
s = 1100 1⊕1⊕0⊕0=0
s = 1101 1⊕1⊕0⊕1=1
s = 1110 1⊕1⊕1⊕0=1
s = 1111 1⊕1⊕1⊕1=0
Se observa que se obtiene n/2 veces el resultado de 0 y n/2 veces el resultado
de 1. Por lo tanto, el adversario conoce s y sabe que el oráculo le devolverá s
concatenado con 1 o 0 con una cierta distribución de probabilidad mayor a la
que si fuese una función aleatoria, con una probabilidad para este ejercicio de:
1 1
𝑃= > 𝑛
2 2
Esta probabilidad se cumple para todas las longitudes de n, ya que la longitud
de s mínima es 1, lo que daría como resultado |G(s)| = 2 y:
1 1 1
𝑃= > 2=
2 2 4
Con lo cual, el adversario es capaz de distinguir con claridad la diferencia
entre este PRG y una función aleatoria real.
Si el adversario quisiera ser capaz de preveer qué mensaje le va a devolver el
oráculo dado una cadena s aleatoria de cualquier longitud n, realizaría las
siguientes operaciones. Dado:
𝑠 = 𝑠0 𝑠1 𝑠2 … 𝑠𝑛−1
El adversario supone al azar, que el bit que va a añadir la función G(s) será 0 o
1. En caso de suponer que el bit que añadirá sea 0, realizará la operación XOR
de s con una cadena de longitud n bits de ceros:
𝑝0 = 000 … 0 𝑠𝑖𝑒𝑛𝑑𝑜 |𝑝| = 𝑛
𝑔 = 𝑠 ⊕ 𝑝0
Después, realizará el XOR bit a bit de g, tal que:
𝐹(𝑔) = 𝑔0 ⊕ 𝑔1 ⊕ 𝑔2 … ⊕ 𝑔𝑛−1

Ahora, F(g) puede dar dos resultados, un bit con valor 0 o un bit con valor 1:
- En caso de ser F(g) = 0, la hipótesis del adversario es correcta y el
resultado del supuesto PRG G(s) será G(s) = s||0.
- En caso de ser F(g) = 1, la hipótesis del adversario es incorrecta y el
resultado del supuesto PRG G(s) será G(s) = s||1.
Problema 2
Alicia usa un servidor que proporciona un servicio de almacenamiento de
números. El servidor y sus clientes usan un Merkle-tree para verificar la
integridad de los números almacenados en el servidor a la hora de
descargarlos. Para el computo del Merkle-tree, el servidor y sus clientes
usan una función hash H que no es segura. La función hash H acepta en
input un conjunto de números y devuelve la suma de los números en input.
O sea, H(x1,x2,…)=x1+x2+…

Alicia almacena en el servidor los siguientes números:


N1=6 N2=22 N3=12 N4=30 N5=1 N6=23 N7=10 N8=11
Resolución:
(a) Calcula el valor del nodo raíz del Merkle-tree de Alicia
El árbol Merkle-Tree completo queda de la siguiente manera:

Nr=115= H(Nj,Nk)

Nj=70=H(Na,Nb) Nk=45= H(Nc,Nd)

Na=28=H(N1,N2) Nb=42=H(N3,N4) Nc=24=H(N5,N6) Nd=21=H(N7,N8)

N1=6=H(F1) N2=22=H(F2) N3=12=H(F3) N4=30=H(F4) N5=1=H(F5) N6=23=H(F6) N7=10=H(F7) N8=11=H(F8)

Los valores de Ni con i = a,b,c,d,j,k,r se calculan de la siguiente forma:


 Na = H(N1,N2) = 6+22=28.
 Nb = H(N3,N4) = 12+30 = 42.
 Nc= H(N5,N6) = 1+23 = 24.
 Nd= H(N7,N8) = 10+11 = 21.
 Nj= H(Na,Nb) = 28+42 = 70.
 Nk= H(Nc,Nd) = 24+21 = 45.
 Nr= H(Nj,Nk) = 70+45 = 115.

(b) Alicia descarga el número N2. Demuestra un ataque donde el


servidor puede enviarle N2=8 con una Merkle-proof valida.
Para la consecución del ataque, el atacante deben modificar el árbol N1, de
manera que el valor Na mantenga su valor, sabiendo que:
Na = H(N1,N2) = N1+8 = 28 ; N1 = 28-8 = 20
De manera que el valor raíz conserve su valor, Nr = 115.

Na=28=H(N1,N2)

N1=20=H(F N2=8=H(F2)
1)
Problema 3
Sea F una PRF. Demuestra que el MAC que se describe a continuación no
es seguro:
MACk(m) devuelve t=Fk(m1) ⊕ · · · ⊕ Fk(mℓ) donde k∈{0,1}n y
m=m1||m2||…||mℓ y todos los mi tienen la misma longitud.
Resolución:
El MAC no es seguro, debido a que el adversario puede encontrar dos mensajes
m≠m’ tal que el t que devuelve MACk(m) y el t’ que devuelve MACk(m’) sea tal
que t=t’.
Demostración:
El adversario calcula el mac del mensaje m = m1||m2||…||mℓ, y obtiene:
t = Fk(m1) ⊕ Fk(m2) ⊕ · · · ⊕ Fk(mℓ).
Por otro lado, si el adversario hace una trasposición de los m i correspondientes
al mensaje m, obtiene m’, cuya una de las posibles combinaciones de las ℓx
posibles (siendo x la longitud de los mensajes m i) puede ser m’=mℓ||m1||…||m2,
el cual hace que como resultado se obtenga:
t’ = Fk(mℓ) ⊕ Fk(m1) ⊕· · · ⊕ Fk(m2).
Siendo t=t’ debido a que la operación XOR cumple la propiedad conmutativa.

Problema 4
Sea IV,c1,c2,c3,c4,c5 el ciphertext del mensaje m = m1,m2,m3,m4,m5 cifrado
con un block cipher en modalidad CBC (IV es el initialization vector). Alicia
envía el ciphertext a Bob pero el bloque c2 no es recibido (Bob recibe
IV,c1,c3,c4,c5). Cuales bloques del mensaje m Bob puede descifrar
correctamente? ¿Y si la modalidad fuera CTR?
Resolución:
Para un cifrador en bloque tipo CBC, en caso de fallo de un bloque ci, los bloques
afectados en el receptor en la fase de descifrado de la información son c i y ci+1,
Tal y como se muestra en el esquema de descifrado:
Los bloques afectados son el 2 y el 3, y a partir de ese momento y con el bloque
cifrado c3 recibido correctamente, el proceso de desencriptado continúa con
normalidad. Por lo tanto, Bob recibe correctamente m1,m4,m5
En el caso de un cifrador en bloque tipo CTR, en caso de fallo de un bloque ci,
el bloque afectado en el receptor en la fase de descifrado de la información es
únicamente ci, ya que en la fase de cifrado cada mensaje m i sólo depende
(además de la clave) del IV y de su correspondiente valor añadido con el
contador.
En este caso, en el receptor Bob puede descifrar todos los bloques
correctamente excepto c2, por lo que recibe correctamente m1,m3,m4,m5.

También podría gustarte