为Delphi编写的五个示例应用提供了与AES的对称加密的介绍,与RSA和Hybrid加密的不对称加密是加密算法以及符号和验证和验证的组合。使用Winapi.winrt和Winapi.security.Cryptography库以自Delphi 10 Seattle Seattle提供的所有代码,使用纯delphi。无需其他第三方库。此代码仅在Windows上运行,因此使用VCL。
第一个示例应用程序演示了使用不对称加密来获取小消息有多容易。为此,应用程序提供了RSA算法的不同变体。还可以选择关键长度。最大消息长度受密钥长度的限制。

第二个示例应用程序演示了使用对称加密以获取更长的真实消息是多么容易。为此,应用程序提供了AES算法的不同变体。还可以选择关键长度。对于CBC块加密,需要一个额外的初始向量,必须为每个加密重新审议。消息长度必须是块长度的倍数。为此,需要填充消息。 PKCS7填充算法比使用恒定字符作为填充物更安全。

第三个示例应用程序演示了如何使用此消息的接收器的公共密钥加密消息。接收器的适当私钥用于后续解密。通过每个加密,将生成一个新的会话密钥,以对称地加密整个消息。只有该会话密钥才能通过不对称算法进行加密和解密。

第四个示例应用程序通过允许多个收件人解密来扩展先前的示例应用程序。
对于几个收件人,会话密钥通过其公共键不对称地加密并附加到消息上。

Fiveth示例应用程序通过将发送方签名添加到消息中扩展了先前的示例应用程序。解密时,使用此签名来检查发件人是否使用我知道的公钥创建的消息。

为Delphi 12.0 Athena开发并准备了样本项目。
Delphi是Embarcadero Technologies,Inc。的注册商标。
克里斯托夫·施耐德(Christoph Schneider)
Schneider Infosystems Ltd
2023年11月