Proyecto SeCrypt

He comenzado un proyecto nuevo en "Google code" donde he recopilado todas las funciones criptográficas que he publicado en esta página. Ademas he aprovechado para darle un pequeño lavado de cara a las funciones, y organizarlo mejor separando las funciones de cifrado y descifrado de las funciones destinadas a trabajar con streams.

La página del proyecto es esta:
http://code.google.com/p/secrypt/

Incluye estas mejoras:

  • Aumento de la velocidad de AES256. Hasta 3 veces más rápido tanto el cifrado como el descifrado.
  • Parte de la tablas ahora se crean de forma dinamica en vez de incluirlas como constantes en el código
  • El algoritmo SHA256 ahora puede ejecutarse en sistemas con procesador ARM

La estructura del proyecto es la siguiente:

SeAES256.pas

  • AESExpandKey
    • Prepara la clave para ser utilizada
  • AESEncrypt
    • Cifra un bloque de 16 bytes
  • AESDecrypt
    • Descifra un bloque de 16 bytes
  • AESXORState
    • Realiza la operación XOR sobre dos bloques
  • AESSwapKey
    • Intercambia el orden de los bytes de la clave
  • AESCopyKey
    • Copia el contenido de una porción de memoria para ser utilizada como clave

SeBase64.pas

  • BinToStr
    • Convierte un conjunto de datos binarios en una cadena de texto (base64)
  • StrToBin
    • Convierte una cadena de texto (base64) en un conjunto de datos binarios
  • Base64CleanStr
    • Limpia una cadena de texto de todos los caracteres no pertenecen a base64

SeSha256.pas

  • CalcSHA256
    • Calcula el hash SHA256 de un conjunto de datos binarios, o de una cadena de texto
  • SHA256ToStr
    • Presenta el hash en formato hexadecimal para que pueda ser leído

SeStreams.pas

  • TAESEnc
    • Stream para cifrar datos usando AES256 con el metdodo CBC (Cipher-block chaining)
  • TAESDec
    • Stream para descifrar datos usando AES256 con el metdodo CBC (Cipher-block chaining)
  • TBase64Enc
    • Stream para codificar en base64 un conjunto de datos binarios
  • TBase64Dec
    • Stream para descodificar un conjunto de datos codificados en base64
  • StrToStream
    • Decodifica un conjunto de datos codificados en base64 y los guarda en un stream

Añadir nuevo comentario