Examen de Septiembre 2010

Transcripción

Examen de Septiembre 2010
Examen de Criptografía y Seguridad en
Comunicaciones
(2ª convocatoria)
13-IX-2010
Ejercicio 1
En un escenario clásico de votación electrónica en un referéndum, los dos únicos
votos posibles son el “SI” y el “NO” codificados en base64. En el escenario
particularizado para un votante V, contaremos con la autoridad electoral cuyas
funciones serán: verificar la identidad del votante, que no haya votado ya y dar al
votante una “firma ciega” del voto. Dicho voto estará cifrado para la autoridad de
recuento. Y para evitar que los mismos votos produzcan los mismos cifrados, mientras
que el votante y la autoridad electoral utilizarán claves RSA, la autoridad de recuento
usará Elgamal.
Claves de V: p = 251; q =107; n = 26857; e = 4077
Claves de la autoridad electoral: p = 211; q = 223; n = 47053; e = 11
Claves de la autoridad de recuento: p = 43759; g = 3; la clave secreta x = 10 y la
correspondiente pública y = gx = 310 (mod 43759)= 15290
El protocolo de votación será el siguiente:
1. V envía a la autoridad electoral una propuesta de firma ciega B del sentido del
voto y una firma de la misma.
2. La autoridad electoral le devuelve al votante la firma ciega, después de
comprobar su identidad y que no ha votado antes, mediante la verificación de la
firma anterior.
3. El votante reconstruye la firma válida de la autoridad electoral y le envía a la
autoridad de recuento, el voto cifrado y la firma de la autoridad electoral.
En el caso de un voto concreto los mensajes intercambiados fueron:
1. (26826, 4864)
2. (9426)
3. ((22468, 102), 24312)
Calcula:
1. Las claves secretas de V y de la autoridad electoral (1 punto)
2. El factor de ceguera, c (1 punto)
3. Comprobar que el cifrado de Vernam del entero aleatorio, k, (empleado en
el cifrado Elgamal del voto) utilizando como clave el factor de ceguera
anterior, es 27 (1 punto)
4. Si el descifrado del voto fuera “SI” (que sí resulta serlo), ¿sería válido el
voto? (2 puntos)
PROTOCOLO DE FIRMA CIEGA Y VERFICACIÓN.
Alicia pretende que Blanca, con sus claves RSA, le firme el mensaje M, sin que sepa lo
que firma. Para ello Alicia le envía B=Mce (mod N) donde c es un entero aleatorio
elegido por Alicia. Blanca le devuelve F=Bd (mod N) y Alicia puede calcular la firma
correcta como S=(F⁄c) (mod N) y comprobar que es correcta si M=S e (mod N).
CIFRADO Y DESCIFRADO ELGAMAL
Establecidos los parámetros correspondientes a un criptosistema Elgamal, el cifrado del
mensaje M es C = (a, b), donde: a ≅ g k (mod p ) , b ≅ My k (mod p ) , siendo y la clave
pública del criptosistema. Para el descifrado, simplemente consistiría en calcular
 b 
M ≅  x  (mod p ) , siendo x la clave secreta del criptosistema.
a 
(
)
FIRMA ELGAMAL
Con los mismos parámetros anteriores, la firma del mensaje M es F = (r, s), donde:
(
)
r ≅ g k (mod p )
M − xr
(mod p − 1)
s≅
k
Valor
Carácter
6 bits
codificado
0
000000
A
1
000001
B
2
000010
C
3
000011
D
4
000100
E
5
000101
F
6
000110
G
7
000111
H
8
001000
I
9
001001
J
10
001010
K
11
001011
L
12
001100
M
13
001101
N
14
001110
O
15
001111
P
Valor
6 bits
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Carácter
codificado
010000
Q
010001
R
010010
S
010011
T
010100
U
010101
V
010110
W
010111
X
011000
Y
011001
Z
011010
a
011011
b
011100
c
011101
d
011110
e
011111
f
Tabla de codificación en Base 64
Valor
6 bits
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
Carácter
codificado
100000
g
100001
h
100010
i
100011
j
100100
k
100101
l
100110
m
100111
n
101000
o
101001
p
101010
q
101011
r
101100
s
101101
t
101110
u
101111
v
Valor
Carácter
6 bits
codificado
48
110000
w
49
110001
x
50
110010
y
51
110011
z
52
110100
0
53
110101
1
54
110110
2
55
110111
3
56
111000
4
57
111001
5
58
111010
6
59
111011
7
60
111100
8
61
111101
9
62
111110
+
63
111111
/
(Relleno)
=

Documentos relacionados