Cinco aplicações de amostra escritas para Delphi fornecem uma introdução à criptografia simétrica com EAs, criptografia assimétrica com RSA e criptografia híbrida como uma combinação de algoritmos de criptografia e sinais e verificação. Todo o código baseado em Pure Delphi usando a biblioteca Winapi.winrt e Winapi.security.criptografia entregue desde Delphi 10 Seattle. Não são necessárias bibliotecas adicionais de terceiros. Esse código é executado apenas no Windows e, portanto, usa o VCL.
Este primeiro aplicativo de amostra demonstra como é fácil usar a criptografia assimétrica para pequenas mensagens. Para esse fim, o aplicativo fornece diferentes variantes do algoritmo RSA. O comprimento da chave também pode ser selecionado. O comprimento máximo da mensagem é limitado pelo comprimento da chave.

Este segundo aplicativo de amostra demonstra como é fácil usar a criptografia simétrica para mensagens reais mais longas. Para esse fim, o aplicativo fornece diferentes variantes do algoritmo AES. O comprimento da chave também pode ser selecionado. Para criptografia de bloco CBC, é necessário um vetor inicial adicional, que deve ser re-ciche para cada criptografia. O comprimento da mensagem deve ser um múltiplo do comprimento do bloco. Para fazer isso, a mensagem precisa ser acolchoada. O algoritmo de preenchimento do PKCS7 torna isso mais seguro do que usar um caractere constante como um preenchimento.

Este terceiro aplicativo de amostra demonstra como criptografar uma mensagem com a chave pública do destinatário desta mensagem. A chave privada apropriada do receptor é usada para descriptografia subsequente. A cada criptografia, uma nova chave de sessão é gerada para criptografar simetricamente a mensagem inteira. Somente esta chave de sessão é criptografada e descriptografada por algoritmos assimétricos.

O quarto aplicativo de amostra expande o aplicativo de amostra anterior, permitindo a descriptografia por mais de um destinatário.
Para vários destinatários, a chave da sessão é criptografada assimetricamente com suas chaves públicas e anexada à mensagem.

O aplicativo Fiveth Sample expande o aplicativo de amostra anterior adicionando uma assinatura do remetente à mensagem. Ao descriptografar, essa assinatura é usada para verificar se a mensagem foi criada pelo remetente com a chave pública conhecida por mim.

Os projetos de amostra são desenvolvidos e preparados para Delphi 12.0 Athena.
Delphi é uma marca registrada da Embarcadero Technologies, Inc.
Christoph Schneider
Schneider Infosystems Ltd
Novembro de 2023