Firmas digitales

Mateo Sanabria Ardila
Introducción a la criptografía
Criptografía
Simétrica
ASimétrica
protocolos
-
DES
-
AES
-
3DES
-
IDEA
-
...
-
RSA
-
DH
-
ELGAMAL
-
ECC

Advertencia: Se podrida decir que la parte que vine del curso no es tan pesada. Sin embargo, si no se tienen los conceptos claros no se va a entender N A D A!

security service
Cuando se diseña un criptosistema (un compendio de algoritmo/protocolos criptograficos) se busca que satisfaga cierto objetivos, como lo pueden ser:
-
Confidencialidad:Partes no autorizadas NO tiene acceso a la información.
-
Autenticidad:Se sabe con certeza la identidad del la 'persona' que envia el mensaje.
-
Integridad: El mensaje no fue modificado durante la transmisión.
-
No repudio: Quien envia el mensaje no puede negar que envio el mensaje.



Por que se firma un documento?
Como se puede lograr el mismo comportamiento de una firma física, asegurando: Auntenticidad, Integridad y no repudio?
Firma digital: RSA
Firma Digital: RSA
KprA=d
\tiny K_{prA} = d
KpubA=(n,e)
\tiny K_{pubA} = (n,e)


(n,e)
\tiny (n,e)
S=SigKprA≡xd mod n
\tiny
S = Sig_{K_{prA}} \equiv x^d \ mod \ n
(x,s)
\tiny (x,s)
VerKpubA(x,s)
\tiny Ver_{K_{pubA}}(x,s)
Se≡x∗ mod n
\tiny
S^e \equiv x^* \ mod \ n
KpubA=(n,e)
\tiny K_{pubA} = (n,e)
Por que es correcta la firma digital basada en RSA?
pues en el mundo real no lo es!
Firma Digital: RSA
KprA=d
\tiny K_{prA} = d
KpubA=(n,e)
\tiny K_{pubA} = (n,e)


(n,e)
\tiny (n,e)
S=SigKprA≡xd mod n
\tiny
S = Sig_{K_{prA}} \equiv x^d \ mod \ n
(x′,s′)
\color{red}\tiny (x',s')
VerKpubA(x,s)
\tiny Ver_{K_{pubA}}(x,s)
Se≡x∗ mod n
\tiny
S^e \equiv x^* \ mod \ n
KpubA=(n,e)
\tiny K_{pubA} = (n,e)

1. Toma un s′∈Zn
\color{red} \tiny 1. \ Toma \ un \ s' \in \mathbb{Z}_n
2. x′≡s′e mod n
\color{red} \tiny 2. \ x' \equiv s'^e \ mod \ n
existential forgery attack
Que pasa cuando Bob quiere verificar el mensaje?
x′≡s′e mod n El pinzas
x' \equiv s'^{e} \ mod \ n \ \textbf{El pinzas}
x≡se mod n Alice
x \equiv s^{e} \ mod \ n \ \textbf{Alice}
Limitaciones: Es muy difícil que 'el pinzas' logre encontrar un mensaje x' que cumpla con la semántica necesaria
existential forgery attack
Contra ataque: Imponer una regla de formato para los mensajes que son enviados en el canal de comunicación.
Firma digital: ELGAMAL
Cifrado: ELGAMAL


d=KprB∈{2,⋯,p−2}
\tiny d = K_{prB} \in \{2, \cdots ,p-2\}
KpubB=β≡αb mod p
\tiny K_{pubB} = \beta \equiv \alpha^{b} \ mod \ p
y≡x×KM modp
\tiny y \equiv x \times K_M \ \textbf{mod} p
Escoge un p primo y un generador alpha
(β,p,α)
\tiny (\beta,p,\alpha)
(y,KE)
\tiny (y,K_E)
KE≡αi mod p
\tiny K_{E} \equiv \alpha^{i} \ mod \ p
i∈{2,⋅,p−2}
\tiny i \in \{2, \cdot, p-2 \}
KM≡βi mod p
\tiny K_{M} \equiv \beta^{i} \ mod \ p
KM≡KEd mod p
\tiny K_M \equiv K_{E}^{d} \ \textbf{mod} \ p
x≡y×KM−1
\tiny x \equiv y \times K_{M}^{-1}
Firma Digital: ELGAMAL


s≡(x−d⋅r)⋅kE−1 mod p−1
\color{green} \tiny s \equiv (x-d\cdot r) \cdot k_{E}^{-1} \ \textbf{mod} \ p-1
gcd(kE,p−1)=1
\tiny \textbf{gcd}(k_E,p-1) = 1
kE∈{2,⋯,p−2}
\tiny k_E \in \{2, \cdots, p-2 \}
r≡αkE mod p
\color{green} \tiny r \equiv \alpha^{k_E} \ \textbf{mod} \ p
(x,(r,s))
\tiny (x,(r,s))
(β,p,α)
\tiny (\beta,p,\alpha)
t≡βr⋅rs mod p
\color{green}\tiny t \equiv \beta^r \cdot r^s \ \textbf{mod} \ p

t≡αx mod p
\color{blue}\tiny t \equiv \alpha^x \ \textbf{mod} \ p
Firma Digital: ELGAMAL


s≡(x−d⋅r)⋅kE−1 mod p
\color{green} \tiny s \equiv (x-d\cdot r) \cdot k_{E}^{-1} \ \textbf{mod} \ p
gcd(kE,p−1)=1
\tiny \textbf{gcd}(k_E,p-1) = 1
kE∈{2,⋯,p−2}
\tiny k_E \in \{2, \cdots, p-2 \}
r≡αkE mod p
\color{green} \tiny r \equiv \alpha^{k_E} \ \textbf{mod} \ p
(x,(r,s))
\tiny (x,(r,s))
(β,p,α)
\tiny (\beta,p,\alpha)
t≡βr⋅rs mod p
\color{green}\tiny t \equiv \beta^r \cdot r^s \ \textbf{mod} \ p
t≡αx mod p
\color{red}\tiny t \not\equiv \alpha^x \ \textbf{mod} \ p

Por que es correcta la firma digital basada en ELGAMAL?
Se quiere probar que si Alice tiene la llave publica de Bob y el mensaje es correcto con respecto a la firma (r,s) Alice es capaz de comprobar la firma del mensaje
βr⋅rs≡αx mod p
\beta^r \cdot r^s \equiv \alpha^x \ \textbf{mod} \ p
Por que se debe cambiar Ke en cada comunicación entre alice y bob ?

Por ejemplo: suponga que el pinzas tiene acceso a dos mensajes, con sus respectivas firmas, que puede hacer?
EFA: ELGAMAL


r≡αiβj mod p
\tiny r \equiv \alpha^{i}\beta^j \ \textbf{mod} \ p
(x,(r,s))
\color{red}\tiny (x,(r,s))
(β,p,α)
\tiny (\beta,p,\alpha)
t≡βr⋅rs mod p
\color{green}\tiny t \equiv \beta^r \cdot r^s \ \textbf{mod} \ p
t≡αx mod p
\color{blue}\tiny t \equiv \alpha^x \ \textbf{mod} \ p

1. Toma un i,j
\tiny 1. \ \ Toma \ un \ i,j
2. Calcula la firma
\tiny 2. \ \ Calcula \ la \ firma
tal que gcd(j,p−1)=1
\tiny tal \ que \ \textbf{gcd}(j,p-1) = 1
s≡−rj−1 mod p−1
\tiny s \equiv -rj^{-1} \ \textbf{mod} \ p-1
3. x≡s⋅i mod p−1
\tiny 3.\ \ x \equiv s \cdot i \ \textbf{mod} \ p-1

Por que el pinzas se puede hacer pasar como bob? que significa esto?
Que se puede hacer para detener al pinzas?
https://www.youtube.com/watch?v=AQXRX55hgHs&t=3204s
Min. 40

Firmas digitales Mateo Sanabria Ardila Introducción a la criptografía
Firmas Digitales
By Mateo Sanabria Ardila
Firmas Digitales
Firmas Digitales
- 193