Golomb
Golomb
Golomb
Algoritmo S C S Algoritmo
Determinístico
Determinístico
Criptograma
MENSAJE M M MENSAJE
Rachas de 1s
Rachas de 0s Un 1 entre dos 0s
Un 0 entre dos 1s
Racha de 00s
Racha de 1111s Racha de 11s Un 00 entre dos 1s
Un 1111 entre dos 0s Un 11 entre dos 0s Racha de 000s
Un 000 entre dos 1s
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 4
© Jorge Ramió Aguirre Madrid (España) 2002
Distribución de las rachas de dígitos
Función de Autocorrelación:
– Autocorrelación AC(k) fuera de fase de una secuencia
Si de período T desplazada k bits a la izquierda:
AC(k) = (A - F) / T
Aciertos bits iguales Fallos bits diferentes
Ejemplo
Si 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 Si k = 1
A= 1 1 1 0 1 0 1 1 0 0 1 0 0 0 1 A=7; F=8
F= AC(1)= -1/15
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 6
© Jorge Ramió Aguirre Madrid (España) 2002
Importancia de una AC(k) constante
Si 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0
• Facilidad de implementación:
– Debe ser fácil construir un generador de secuencia
cifrante con circuitos electrónicos y chips, con bajo
coste, alta velocidad, bajo consumo, un alto nivel de
integración, etc.
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 8
© Jorge Ramió Aguirre Madrid (España) 2002
Primer postulado de Golomb G1
Postulado G1:
– Deberá existir igual número de ceros que de unos. Se
acepta como máximo una diferencia igual a la unidad.
S1 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0
En la secuencia S1 de 15 bits, hay 8 unos y 7
ceros, luego cumple con el postulado G1.
S2 1 1 0 1 0 1 0 1 0 0 0 1 0 0 0 1
En la secuencia S2 de 16 bits, hay 7 unos y 9
ceros, luego no cumple con el postulado G1.
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 9
© Jorge Ramió Aguirre Madrid (España) 2002
Significado del postulado G1
Si 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0
Si 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0
Si 0 1 1 1 0 1 0 0 Secuencia original
Si 0 1 1 1 0 1 0 0 No cumple con G3
Si 1 0 1 0 11 0 0 Sí cumple con G3
S1 S2 S3 S4
Si
Sea la semilla: S1S2S3S4 = 0111 Operaciones
XOR 1
1 Observe que
0 OR primero se
0 0 transmite
AND NOT S4S3S2S1
Si
S101 S012 S13 S14 1
S1 S2 S3 S4
Semilla: S1S2S3S4 = 0111
Continuando la secuencia Si = 1110 1100 1010 0001
Tmáx = 2n = 24 = 16 (Secuencia de De Bruijn)
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 21
© Jorge Ramió Aguirre Madrid (España) 2002
Generadores lineales LFSR (1)
a(t) = C1a(t-1) C2a(t-2) C3a(t-3) ... Cna(t-n)
Ci = {1,0} conexión/no conexión celda Cn = 1
Función única: XOR Tmáx = 2n - 1
Polinomio asociado:
f(x) = Cnxn + Cn-1xn-1 + .... + C2x2 + C1x + 1
XOR
Generador
C1 C2 C3 C4 LFSR de 4
etapas/celdas
S1 S2 S3 S4 Si
Curso de Seguridad Informática. Tema 9: Cifrado en Flujo con Clave Secreta. 22
© Jorge Ramió Aguirre Madrid (España) 2002
Generadores lineales LFSR (2)
En función del polinomio asociado tendremos:
Si asignamos valores
C1 C2 C3 C4=1 de esos 2n = 8 bits
S1 S2 S3 S4 Si S1S2S3S4S5S6S7S8
seremos capaces de
S5 = C1•S1 C2•S2 C3•S3 C4•S4 resolver este sistema
S6 = C1•S5 C2•S1 C3•S2 C4•S3 Primero se transmite
S7 = C1•S6 C2•S5 C3•S1 C4•S2 S4S3S2S1 (semilla) y
S8 = C1•S7 C2•S6 C3•S5 C4•S1 luego bits S5S6S7S8.
3 LFSR con R1
C1: bit
m-secuencia
de reloj
0
21 C2
Si
R2
C2: bit
n1 = 19 de reloj
n2 = 22 22 C3 7 0
n3 = 23 R3
C3: bit
Clave = 64 bits de reloj