Problemas de Criptografıa: CTC . Profa. M.E. Alonso: (Hoja no. 4, 6

Anuncio
Problemas de Criptografı́a: CTC . Profa. M.E. Alonso: (Hoja no. 4, 6 de Junio de 2007).
1. Sea A un conjunto finito. Una permutación σ ∈ Sn induce una biyección llamada permutación
de posición σ : An → An : c 7→ cσ = (cσ(0) , ..., cσ(n−1) )
Dada una biyección de τ : A → A y una posición i ∈ {1, , n} se tiene una biyección llamada
permutación de sı́mbolos en una posición: τi : An → An : τi (c0 , . . . , cn−1 ) = (c0 , ..., τ (ci ), ..., cn−1 ).
Dos códigos C1 , C2 ⊂ An se dice que son equivalentes si se puede pasar de uno a otro por
composicón de un número finito de permutaciones de posición, o permutaciones de sı́mbolos
en una posición. Se pide
(i) Probar que dos códigos equivalentes en An tienen la misma distancia mı́nima.
(ii) Probar que dos códigos lineales en los que la matriz generadora de uno de ellos se encuentra
aplicando permutaciones de filas y columnas a la del otro son equivalentes. Idem para la
matriz de control de paridad.
(i) Probar que

1 0
 1 1
G1 := 
 1 1
0 0
los códigos binarios lineales


0
1 0


0 
0 1
y G2 := 
 1 1
1 
1
1 1
dados por las matrices generadoras siguientes:

1
0 
 son equivalentes
0 
1
2. Sea C ⊂ Fq n un código lineal definido sobre Fq , de longitud n y de dimensión k. Y sea
C ⊥ := {y ∈ Fnq :< x, y >= 0, ∀x ∈ C}
el códigio dual. Se pide probar que
si C es un código cı́clico de longitud n y dimensión k, con polinomio generador g ∈ Fq [X], y
h = h0 + . . . + hk X k ∈ Fq [X], y polinomio de control h.g = X n − 1, entonces el código cı́clico
∗
⊥
cuyo polinomio generador es h−1
k .h (para que sea mónico) es equivalente al dual de C, C .
−1
Donde, h∗ = X k .h(1/X) es el recı́proco del polinomio h. cuyo polinomio generador es hk .h∗
(polinomio mónico ) es equivalente al dual de C, C ⊥ .
3. Sea C un código

0 1 0
G :=  0 0 1
1 0 0
lineal de F52 definido por la matriz generadora

0 1
0 1 
1 1
i) Calcular la dimensión de C la distancia mı́nima de C, una matrı́z de control de paridad, y
todas las palabras del código.
ii) Determinar el código dual C ⊥ en F2 5 . Calcular todas los “cosets” o clases de equivalencia
mod. C ⊥ ,y representantes de estas clases de peso mı́nimo. Aplicando el proceso explicado
de decodificación, si se recibió 01001 ¿qué palabra de C ⊥ con mayor seguridad fué la que se
envió?
4. Recordemos que un código lineal [n, n − k, d] se dice perfecto si : ∀y ∈ Fn2 existe una única
palabra código x ∈ C t.q. d(x, y) = t := [d − 1/2]. Probar que los códigos de Hamming son
perfectos.
5. Encontrar un código binario lineal [8, 3] con distancia mı́nima 3. ¿Puede existir uno binario
lineal del tipo [8, 3] con distancia mı́nima 4?
6. i) Calcular una matrı́z generadora y una de control de paridad para el dual del código de
Hamming binario H3 . Tomar como matriz de control de paridad de este último:


1 0 0 1 1 0 1
H :=  0 1 0 1 0 1 1 
0 0 1 0 1 1 1
i) Codificar el mensaje 0110 y 1011 con H3⊥ .
iii)Comprobar que H3 es equivalente al código cı́clico binario de longitud 7 definido con
polinomio generador x3 + x + 1
7. Sean G1 y G2 matrices generadoras de códigos lineales de parámetros [n1 , k, d1 ] y [n2 , k, d2 ]
respectivamente. Demostrar que los código lineales cuya matrices generadoras son G y G′ :
G1 0
G :=
0 G2
G′ :=
G1 G2
tienen por parámetros [n1 +n2 , 2k, δ] y [n1 +n2 , k, δ′ ] respectivamente, siendo: δ = min(d1 , d2 )
y, δ′ ≥ d1 + d2
8. Encontrar un polinomio mı́nimo para un código binario BCH de dimensión 12 y distancia
asignada d = 5. Calcular su distancia de Hamming.
9. ¿Cuántos códigos binarios cı́clicos irreducibles (i.e. maximales) de logitud 15 hay?. Calcular
sus polinomios generadores, dimensiones y distancias mı́nimas.
10. ¿Cuál es la longitud más corta posible de un código binario cı́clico cuyo polinomio generador
es g := x7 + x + 1? Idem g1 = x9 + x + 1.
11. Sea ζ ∈ F24 (cuerpo de 16 elementos) una raı́z de f = X 4 + X + 1 (i.e. se puede ver ζ como
la clase de X en F2 [X]/ < X 4 + X + 1 >).
i) Comprobar que ζ es un elemento primitivo de F24 (i.e. que el polinomio f es primitivo), y
en consecuencia ζ es una raı́z primitva 15 de la unidad.
ii) Calcular el orden de ζ 3 en el grupo F24 ∗ y el polinomio irreducible (mı́nimo) de ζ 3 sobre
F2 , que llamo fζ 3 .
iii) Sea C el codigo cı́clico de longitud 15 definido por las condiciones de anularse en ζ y ζ 3 ;
C := {h(X) ∈ (F2 [X]/ < X 15 − 1 >) : h(ζ) = 0, h(ζ 3 ) = 0}
Comprobar que el polinomio generador de C es f.fζ 3
iv) Comprobar que una matriz de control de paridad H del código C se obtiene de la matriz
H0 que esta definida en el cuerpo F24 ,
H0 :=
1 ζ ζ 2 . . . ζ 13 ζ 14
1 ζ 3 ζ 6 . . . ζ 39 ζ 42
sustituyendo cada entrada de H0 , un cierto ζ j , por un vector columna de cuatro filas de 0
y 1’s que son las coordenadas del ζ j en funcion de la base {1, ζ, ζ 2 , ζ 3 } de F24 como F2 -esp.
vectorial. v) Escribirla. ¿Cuántos errores corrige C?
12. Sea C ⊂ F2 9 el código binario dado por: (v0 , . . . , v8 ) ∈ C ⇔ v0 = v1 = v2 ; v3 = v4 = v5 ; v6 =
v7 = v8 . Demostrar que C es equivalente a un código cı́clico.


0 1 2 2 1
 1 0 1 2 2 



13. Sea S5 la matriz 
 2 1 0 1 2 . Considermos el código lineal de F3 , G11 con matriz
 2 2 1 0 1 
1 2 2 1 0


1
.
generadora G :=  I6
S5
(i) Demostrar que dicho código es un [11, 6] código. (ii) Calcular la matrı́z generadora del
código extendido G11 (iii) Calcular las distancias mı́nimas de G11 y de G11 .
4
6
7
8
14. Sea C ⊂ F15
2 el código cı́clico cuyo polinomio generador es 1 + X + X + X + X . Calcular
la dimensión, una matriz generadora y la distancia mı́nima ?. Si se recibió la palabra 1 +
X 3 + X 4 + X 5 , ¿ cual es la palabra que con más seguridad se envió? y ¿el mensaje original?
15. (i) Probar que el menor m tal que F2m contiene todas las raı́ces primitivas 31- ésimas de
la unidad es m = 5. (ii) Sea α una tal raı́z (sera un elemento primitivo de F32 ). Demostrar que los siguientes conjuntos de raı́ces primitivas tienen el mismo polinomio mı́nimo:
M1 = {α, α2 , α4 , α8 , α16 }, M3 = {α3 , α6 , α12 , α24 , α17 }, M5 = {α5 , α9 α10 , α18 , α20 }, M7 =
{α7 , α14 , α19 , α25 , α28 }. (iii) Calcular dichos polinomios, resp. : g1 , g3 , g5 , g7 , (iv) Considerese el código binario de longitud 31
C = {h(X) ∈ (F[X]/ < X 31 − 1 >) : h(αi ) = 0, ∀i ≤ 7}
. Probar que C es un código cı́clico, calcular su polinomio generador, su dimensión, y su
distanci mı́nima.
16. F un cuerpo finito de q elementos y sea n = q − 1. Sea α una raı́z primitiva n-ésima de la
unidad α ∈ F (ya que n = q − 1) y sea g(x) = (x − α)(x − α2 )...(x − αd−1 ). Hemos visto en
clase que el código cı́clico con polinomio generador g es un código BCH particular llamado
código de Reed-Salomon 1 , de parámetros [n, n − 1 − d, d]
(i) Comprobar que es un MDS código (verifica la igualdad en la cota de Singleton)
(ii) Sea F = F23 , representando los elementos de F por bytes. ¿Qué longitud tienen una
palabra código? ¿ Cuántos bytes tienen de información y cuántos de redundancia? ¿Cuál
es el mayor número de errores (bytes) que este código puede corregir? (iii) Teniendo en
cuenta que las palabras código tienen coordenadas que son bytes (ie. cada coordenada es una
colección de 8 bits), cual serı́a la mayor longitud de una cadena de bits tal que si se conoce
que esta cadena esta corrompida se pueda corregir el error?
(iv) Describir un código Reed-Salomon (ejercicio anterior) de longitud 15 y dimensión 13
sobre F16 = F2 [x]/ < x4 + x + 1 >, analizando cuál es el máximo número de errores que puede
corregir y dando su matriz de control de paridad.
17. ¿Qué dimensión tendrá un F3 código BCH de longitud 80 que pueda corregir hasta 5 errores?
(Indic. Escribir la factorización en factores irreducibles de x80 − 1 en F3 [x], usando el Maple
(“Berlekamp(x80 − 1,x) mod 3;”). Escribir todos los polinomios primitivos en F3 [x] de grado
4, (que aparecen necesariamente como factores de x80 − 1). Sea α una raı́z primitiva cuarta de
1
Los códigos Reed–Salomon, como el anterior se usan en CD’s y comunicaión espacial, cuando los errores se dan
en bandas de información cercanas.
uno cualquiera de estos. Escribir las raı́ces de los otros polinomios primitivos como potencias
de éste α, y aplicar la construcción BCH)
18. ¿Es el dual de un código BCH un código BCH? ¿Y el de uno Reed-Salomon?.
19. Sea n = 2m −1 y sea α un generador del grupo multiplicativo F∗2m ,(ie. decir una raı́z primitiva
n -ésima).
Sea p(x) el polinomio mı́nimo de α sobre F2 , y escribamos la factorización de p(x):
Qm−1
j
p(x) = j=0
(x − α2 ). Escribimos las potencias de α en función de la base de F2m como
Pm−1
F2 espacio vectorial: {1, α, α2 , , ..., αm }, αj = i=0
ci αi , y construimos la matriz H de talla
m
t
m × (2 − 1) cuya j- columna es (c0 , . . . , cm−1 ) . Se pide:
(i) Comprobar que las columnas de H recorren todos los desarrollos binarios de los números:
1, 2, . . . , 2m − 1. (ii) Sea C el código cı́clico cuyo polinomio generador p(x); probar que
(0 , . . . , wn−1 ) ∈ C sı́ y sólo si Hwt = 0. (iii) Demostrar que C es equivalente al código de
Hamming [2m − 1, 2m − m − 1].
20. Sea Σ una matriz 32 × 32 cuyas entradas hij son 1 ó −1’s, de acuerdo con la regla siguiente:
DadosP
i, j ∈ {1, . . . , 32} escribimos los desarrollos binarios: i = a4 a3 a2 a1 a0 , j=b4 b3 b2 b1 b0 , y
hij = 4l=0 al bl . Sea Σ∗ la matriz de 64 × 32 completando Σ con las filas de −Σ.
(i) Demostrar que el producto escalar de cada dos filas distintas de Σ∗ es 0 y de cada fila por
sı́ misma es 32.
(ii) Consideremos el código de longitud 32 cuyas 64-palabras son las filas de Σ∗ . Sea w una
palabra enviada y v la recibida, donde quizás se produjeron algunos erroes (cambio de 1 por
−1). Comprobar que, si se produjo exactamente 1 error el producto escalar de la palabra
v con las distintas filas de Σ∗ es + − 2, salvo con una fila que es + − 30. Si se produjeron
exactamente 3 errores, ¿ qué sucede con esos productos escalares?. ¿Y si fueron 7? ¿Cuántos
errores puede corregir ese código?
NB. Este código llamado de Hadamard fué utilizado en 1969 por el Mariner para enviar
fotografı́as de la Luna. Cada pixel de la foto tenı́a una intensidad de negro que era medida
por un número de 6 bits. Estos 6 bits se modificaban de “modo adecuado” ãdiendo una
redundancia hasta completar una fila (de longitud 32) de la matriz Σ∗ , que era la palabra
código enviada.
Descargar