PDF de programación - Demostración de cifrado simétrico y asimétrico

Imágen de pdf Demostración de cifrado simétrico y asimétrico

Demostración de cifrado simétrico y asimétricográfica de visualizaciones

Publicado el 13 de Junio del 2018
295 visualizaciones desde el 13 de Junio del 2018. Una media de 14 por semana
791,3 KB
8 paginas
Creado hace 3a (20/03/2015)
46

››

Julio César Mendoza T.
Ingeniería de Sistemas – Quito

RESUMEN

En el presente artículo se presenta una
breve introducción a la criptografía sin
profundizar en las matemáticas que
soportan los algoritmos criptográficos;
simplemente se abordará al cifrado a un
nivel muy básico, para mostrar una visión
de los distintos tipos (simétricos y asimé-
tricos) y realizar una demostración de
cifrado aplicando ambas
técnicas
mediante la aplicación del algoritmo RSA
y 3DES en Visual Basic.NET. El propósito
de éste articulo es mostrar técnicas senci-
llas, fáciles de integrar en aplicaciones y
que tengan un impacto mínimo en la
facilidad de empleo.

Para finalizar se mencionan las venta-
jas y desventajas de la utilización del
cifrado simétrico y asimétrico.

INTRODUCCIÓN

y

graphos

La criptografía es una palabra que
proviene de las palabras griegas Kriptos
(ocultar)
(escritura).
Literalmente significa “escritura oculta”,
es decir mantener seguro los secretos
mediante la codificación de los mensajes
para hacerlos ilegibles, de tal manera que
solo pueda verla aquel receptor que el
emisor desea.

En terminología de cifrado:

• El mensaje original recibe el nom-

bre de texto claro.

• El mensaje codificado se denomina

texto cifrado.

• El proceso de convertir el texto
claro en texto cifrado se denomina
cifrado.

• El proceso de recuperar el texto
claro a partir del texto cifrado se
denomina descifrado.

Una parte importante de la aplicación
de los algoritmos criptográficos son las
claves. Una clave criptográfica es similar a
una llave física que se usa para cerrar o
abrir una puerta. Para cada tipo de cerra-
dura existe una llave con una forma espe-

››

47

cífica que se ajuste a aquella con cierta
longitud apropiada capaz de girar y abrir
la cerradura. [1] Las claves criptográficas
son similares a las llaves físicas de muchas
maneras. Cada algoritmo criptográfico
necesita una clave con la extensión
correcta (número correcto de bits). Se
puede procesar un algoritmo criptográfi-
co con cualquier clave que tenga la longi-
tud apropiada, pero solo la que tenga el
patrón correcto de bits hará que el algo-
ritmo descifre la información cifrada.

El cifrado ayuda a garantizar: confi-
dencialidad, autenticación e integridad.
Los algoritmos de cifrado se clasifican en
simétricos y asimétricos.

Una parte importante de la aplicación
de los algoritmos criptográficos son
las claves. Una clave criptográfica es
similar a una llave física que se usa
para cerrar o abrir una puerta. Para
cada tipo de cerradura existe una
llave con una forma específica que se
ajuste a aquella con cierta longitud
apropiada capaz de girar y abrir la
cerradura.

A. Criptografía Simétrica

La criptografía simétrica utiliza la
misma clave para cifrar y descifrar el
mensaje de datos, es decir se basa en un
secreto compartido. Es por esta razón
que la seguridad de este proceso depen-
de de la posibilidad de que una persona
no autorizada consiga la clave de sesión o
clave secreta.

Los algoritmos criptográficos simétri-
cos tienen dos versiones: cifrador en blo-
que y cifrador en flujo. Una cifra es una
palabra para describir un algoritmo de
cifrado. Los cifradores en bloque codifi-
can datos en bloques pequeños de longi-
tud fija de 64 bits de longitud. Hay
muchos cifradores en bloque que inclu-
yen DES, 3-DES, RC2, RC5, RC6 y Rijndael
(conocido como AES)

48

››

DES es un algoritmo simétrico cuyas
abreviaturas significa “Estándar de cifra-
do de datos” o “Data Encryption
Estandar” y es un cifrador en bloque de
64 bits de longitud. La palabra triple hace
referencia a la forma que funciona el
cifrado; en primer lugar se cifra el texto
en claro; a continuación, éste resultado
se vuelve a cifrar, lo que da lugar a que el
texto claro se cifre en tres ocasiones y el
resultado es un robusto cifrado de 192
bits, determinando el número total de
posibles claves. Por ejemplo, una clave de
192 bits tiene 2192 posibles valores

La variante [1] más simple del Tripe

DES funciona de la siguiente manera:

• Donde M es el mensaje a cifrar y k1,

k2 y k3 las respectivas claves DES.

Para explicar como funciona el cifrado
simétrico se utilizará 3DES en el siguiente
ejemplo (Figura A1), donde se seguirá los
siguientes pasos:

1. Una vez digitado el “Texto Claro” y la
“Clave”,
se presiona el botón
“Cifrado” y automáticamente se cifra-
rá el texto utilizando el algoritmo
Triple-DES y se mostrará el resultado
en el cuadro “Texto Cifrado”

2. Posteriormente se presiona el botón
“Descifrar” y se descifrará con la
misma clave automáticamente el
“Texto cifrado“ y se mostrará el resul-
tado en el cuadro “Texto Claro”

Figura A1. Cifrado Simétrico

A continuación se presenta las funciones, utilizadas en cada uno de los pasos reali-

zados anteriormente:

1. Encriptar(textoClaro, clave): ésta función cifra la cadena “textoClaro” utilizan-
do una cadena “clave” de 24 caracteres de longitud y muestra su resultado en
el cuadro de texto “Texto Cifrado”.

Function Encriptar(ByVal textoClaro As String, ByVal clave As String) As String

Dim des As New TripleDESCryptoServiceProvider()
Dim uCodifica As New UnicodeEncoding()
Dim textoClaroByte() As Byte = uCodifica.GetBytes(textoClaro)
Dim textoCifradoByte As New MemoryStream()
Dim slt(0) As Byte

››

49

Dim pdb As New PasswordDeriveBytes(clave, slt)
Dim claveByte() As Byte = pdb.GetBytes(24)
des.Key = claveByte
des.IV = pdb.GetBytes(8)
Dim csEncrypted As New CryptoStream(textoCifradoByte, des.CreateEncryptor(), _
CryptoStreamMode.Write)
csEncrypted.Write(textoClaroByte, 0, textoClaroByte.Length)
csEncrypted.FlushFinalBlock()
Return Convert.ToBase64String(textoCifradoByte.ToArray())
End Function

2. Decrypt ( textoCifrado, clave): ésta función descifra la cadena “textoCifrado”
utilizando la misma cadena “clave” y asigna su resultado en el cuadro de texto
“Texto Claro”

Function Decrypt(ByVal textoCifrado As String, ByVal clave As String) As String

Dim des As New TripleDESCryptoServiceProvider()
Dim uCodifica As New UnicodeEncoding()
Dim textoCifradoByte() As Byte = Convert.FromBase64String(textoCifrado)
Dim textoClaroMem As New MemoryStream()
Dim textoCifradoMem As New MemoryStream(textoCifradoByte)
Dim arreglo(0) As Byte
Dim pdb As New PasswordDeriveBytes(clave, arreglo)
Dim claveByte() As Byte = pdb.GetBytes(24)
des.Key = claveByte
des.IV = pdb.GetBytes(8)
Dim desDecifrado As New CryptoStream(textoCifradoMem, des.CreateDecryptor(),
_ CryptoStreamMode.Read)
Dim varEscritura As New StreamWriter(textoClaroMem)
Dim varLectura As New StreamReader(desDecifrado)
varEscritura.Write(varLectura.ReadToEnd)
varEscritura.Flush()
desDecifrado.Clear()
des.Clear()
Return uCodifica.GetString(textoClaroMem.ToArray())
End Function

B. Criptografía Asimétrica

Los algoritmos asimétricos son diferentes a los simétricos en un sentido muy impor-
tante. Cuando se genera una clave simétrica, simplemente se escoge un número ale-
atorio de la longitud apropiada. Al generar claves asimétricas el proceso es más com-
plejo.

Los algoritmos asimétricos se llaman asimétricos porque en lugar de usar
una sola clave para realizar la codificación y la decodificación, se utilizan dos
claves diferentes: una para cifrar y otra para descifrar. Estas dos claves se
encuentran asociadas matemáticamente, cuya característica fundamental es que una
clave no puede descifrar lo que cifra.

Cuando se completa la generación de una clave asimétrica se define una clave de
cifrado (clave pública) y una clave de descifrado (clave privada); la primera puede ser
conocida por todo el mundo, pero, de otro lado se debe tener mucho cuidado en ocul-

50

››

tar la clave privada. Las claves asimétricas
tienen la sorprendente propiedad de que
lo que se está cifrando con una clave sólo
se puede descifrar con la otra.

Existen pocos algoritmos asimétricos.
El algoritmo Diffie-Hellman se basa en las
matemáticas de logaritmos discretos y
aunque no es tan exitoso como el RSA es
un algoritmo de uso común. RSA fue
inventado en el MIT por Rivest, Shamir y
Adleman puede cifrar un mensaje de
máximo 116 bytes (58 caracteres) y se
basa en la factorización de dos números
primos

Para explicar como funciona el cifrado
asimétrico se utilizará RSA en el siguiente
ejemplo (Figura A2), donde se seguirá los
siguientes pasos:

1. Una vez digitado el texto en claro pro-
cedemos a presionar el botón
“Generar clave pública / privada” cuyo
resultado se observa en el cuadro de
texto “Par Claves”. Para ello matemá-
ticamente se seguirán los siguientes
pasos:

• Seleccione dos números primos lar-

gos p y q de manera que p = q .

/

• Calcule n = pq .
• Calcule φ(n) = (p - 1)(q - 1).
• Seleccione un entero positivo e tal
que el 1 < e < φ (n) tales que e y
Ê(n) sean Primos entre sí .

• Calcule d tal que de = (mod φ (n))

Donde:

• La clave privada será d y la clave
pública será e.. Adicionalmente el
parámetro n debe hacerse público.
• La clave pública consiste en: n, el
módulo y e, el exponente público (a
veces exponente de cifrado).

• La clave privada consiste en: n, el
módulo, el cual es público y apare-
ce en la clave pública; d, el expo-
nente privado (a veces el exponen-
te de descifrado), el cual debe per-
manecer oculto.

2. Luego presionamos el botón “Cifrar
Datos con clave pública” y el texto en
claro se cifrará utilizando el algoritmo
RSA y se mostrará el resultado en el
cuadro “Texto cifrado”. Para ello inter-
namente se aplicará:

Donde:

• m es el mensaje, c es el texto cifra-

do correspondiente a m

››

51

3. Seguidamente se presiona el botón “Descifrar datos con clave privada” y se mos-
trará su resultado en el cuadro “Text
  • Links de descarga
http://lwp-l.com/pdf11849  

Comentarios de: Demostración de cifrado simétrico y asimétrico (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad

Revisar política de publicidad