windows.security.cryptography.core中的对称算法名称究竟是什么意思?

本文关键字:究竟 是什么 意思 算法 对称 cryptography security core windows | 更新日期: 2023-09-27 18:06:56

我正在创建一个应用程序,需要使用Windows通用SDK加密一些数据。

我有代码,它看起来很好,我使用AesCbcPkcs7算法。我对代码没有任何问题,但我不明白的是"Aes"之后的"CbcPkcs7"究竟是什么意思。我指的是Windows.Security.Cryptography.Core.SymmetricAlgorithmNames
下的算法名称就像那些…

AesCbc
AesCcm
AesEcb
AesEcbPkcs7
AesGcm

windows.security.cryptography.core中的对称算法名称究竟是什么意思?

AES是分组密码,因此只能加密固定大小(16字节)的块。

需要一种操作模式来加密多个块。例如,ECB按原样对明文的每个块分别应用块密码以获得密文块。ECB有问题,因为它在语义上不安全,所以CBC模式与随机初始化向量在大多数情况下使用更好。更好的是像GCM这样的认证模式,它不仅提供机密性,还提供完整性/真实性。

这仍然不够,因为像CBC这样的模式只允许您加密块大小的倍数的明文。为了加密任何长度的明文,需要一个填充方案将明文填充到块大小的下一个倍数。pkcs# 7填充通过附加字节来工作,每个字节的值表示附加的字节数。

像CTR和GCM这样的模式是流模式,因此不需要额外的填充模式来加密任意长度的明文。