Cinco aplicaciones de muestra escritas para Delphi proporcionan una introducción al cifrado simétrico con AES, cifrado asimétrico con RSA y cifrado híbrido como una combinación de algoritmos de cifrado y signo y verificación. Todo el código basado en Pure Delphi usando Winapi.winrt y Winapi.security.Cryptography Biblioteca entregada desde Delphi 10 Seattle. No se requieren bibliotecas adicionales de terceros. Este código solo se ejecuta en Windows y, por lo tanto, usa el VCL.
Esta primera aplicación de muestra demuestra lo fácil que es usar cifrado asimétrico para mensajes pequeños. Para este propósito, la aplicación proporciona diferentes variantes del algoritmo RSA. La longitud de la clave también se puede seleccionar. La longitud máxima del mensaje está limitada por la longitud de la clave.

Esta segunda aplicación de muestra demuestra lo fácil que es usar cifrado simétrico para mensajes reales más largos. Para este propósito, la aplicación proporciona diferentes variantes del algoritmo AES. La longitud de la clave también se puede seleccionar. Para el cifrado de bloque CBC, se requiere un vector inicial adicional, que debe volver a recoger para cada cifrado. La longitud del mensaje debe ser un múltiplo de la longitud del bloque. Para hacer esto, el mensaje debe ser acolchado. El algoritmo de relleno PKCS7 lo hace más seguro que usar un carácter constante como relleno.

Esta tercera aplicación de muestra demuestra cómo cifrar un mensaje con la clave pública del receptor de este mensaje. La clave privada apropiada del receptor se utiliza para el descifrado posterior. Con cada cifrado, se genera una nueva clave de sesión para cifrar simétricamente todo el mensaje. Solo esta clave de sesión está encriptada y descifrada por algoritmos asimétricos.

La cuarta aplicación de muestra expande la aplicación de muestra anterior al permitir el descifrado en más de un destinatario.
Para varios destinatarios, la clave de la sesión se cifran asimétricamente con sus claves públicas y se agrega al mensaje.

La aplicación de muestra Fiveth expande la aplicación de muestra anterior agregando una firma del remitente al mensaje. Al descifrar, esta firma se usa para verificar si el remitente creó el mensaje con la clave pública conocida por mí.

Los proyectos de muestra se desarrollan y preparan para Delphi 12.0 Athena.
Delphi es una marca registrada de Embarcadero Technologies, Inc.
Christoph Schneider
Schneider Infosystems Ltd
Noviembre de 2023