Algoritmos de criptografía

En esta ocasión les presento un proyecto de Markus Humm alojado en github llamado Delphi Encryptium Compendium (DEC)

Consiste en una biblioteca de algoritmos criptográficos desarrollada para Delphi y que funciona desde Delphi 2009 hasta Delphi 10.4.1., en caso de que se necesite usar en versiones anteriores el desarrollador recomienda usar la versión 5.2 de DEC

Respecto a la fase de testing de esta biblioteca, Markus dice lo siguiente:

DEC 5.2 vino con un programa de prueba "arcano" que probaba los algoritmos implementados usando datos de prueba proporcionados a través de algún archivo de texto. Para muchos algoritmos, estos datos de prueba provienen de la documentación oficial de los propios algoritmos. DEC 5.2 pasa estas pruebas.

DEC 6.0 reelaboró ​​estas pruebas en pruebas DUnit y DUnitX. También agregamos algunas pruebas más y con esto reemplazamos el programa de prueba "arcano" que usaba código difícil de entender. Algunas de las pruebas unitarias implementadas aún pueden fallar, pero esto se debe simplemente a que son sceletons vacíos en este momento esperando a ser completados. Primero tenemos que averiguar cómo implementar estas pruebas y tal vez buscar datos de prueba. ¿Por qué no ayuda investigando datos de prueba útiles para esas pocas pruebas? Estamos hablando de pruebas de modo de encadenamiento de bloques para los cifrados específicamente.

Los algoritmos que contiene DEC son los siguientes:

Algoritmos de cálculo de Hash


MD2
MD4
MD5
RipeMD128
RipeMD160
RipeMD256
RipeMD320
SHA0
SHA1
SHA224
SHA256
SHA384
SHA512
Haval128
Haval160
Haval192
Haval224
Haval256
Tiger
Panama
Whirlpool0
Whirlpool1
WhirlpoolT
Square
Snefru128
Snefru256
Sapphire


Algoritmos de cifrado


Null
Blowfish
Twofish
IDEA
Cast256
Mars
RC4
RC6
AES
Square
SCOP
Sapphire
1DES
2DES
3DES
2DDES
3DDES
3TDES
3Way
Cast128
Gost
Magma
Misty
NewDES
Q128
RC2
RC5
SAFER
Shark
Skipjack
TEA
XTEA
TEAN


Modos de concatenación de bloques
(Los modos que acaban en x han sido inventados por el desarrollador de DEC)

ECBx
CBCx
CTSx
CTS3
CFB8
CFBx
OFB8
OFBx
CFS8
CFSx


Algoritmo de desviación de clave


KDF1
KDF2
KDF3
MGF1
PBKDF2


Algoritmos de autenticación de mensajes
HMAC


Tipos de formateado
Copy
HEX
HEXL
Base16
Base16L
DECMIME32
Base64
MIME64
Radix64
PGP
UU
XX
ESCAPE
 

Tipos de CRCs


8
10
12
16
16CCITT
16XModem
24
32
32CCITT
32ZModem
8ATMHEC
8SMBus
15CAN
16ZMODEM

 DEC se puede descargar e instalar desde Getit

En mi caso tengo Rad Studio - Delphi 10.4.1

Menú Tools - Getit Packgage Manager

 


Pulsamos el botón INSTALL y Aceptamos los términos de uso   

A continuación comenzará a instalar las librerías, esperamos un poco y ya lo tenemos instalado en nuestro Delphi


Desde su repositorio de Github tenemos una carpeta Demo con varios programas para cmd y para Firemonkey, en mi caso para probarlo he ejecutado uno que se llama Cipher_FMX


Como función de cifrado he seleccionado AES, como formato de input hay que seleccionar Copy, luego nos pedirá la clave de encriptación que es el texto que queramos, después teclearemos el vector de inicio en formato hexadecimal (ACAE), el byte de relleno (AC) y por último seleccionamos el modo de cifrado cmCFS8.

Para que el texto se encripte a medida que se va tecleando marco el check "Live calculation", y ahora sólo nos queda teclear un texto en la caja "Plain text" y ver el mismo encriptado en la caja "Cipher text"

Si quieren copiar el resultado del cifrado de texto en sus programas y evitar problemas con la codificación de caracteres, les recomiendo que usen como formato de salida "base64"

 


 

 

 

 

 




















 

 

 

 

 

 

No hay comentarios:

Publicar un comentario