2

我想使用 PKCS#7 作为一些加密、签名内容的容器格式,我们需要在 CBC 模式下使用基于 ISO 10126 的填充的 AES。我似乎找不到对用于此组合的算法标识符的具体引用。我可以自己发明,但会失去与其他工具的互操作性。

4

3 回答 3

4

不需要指定填充模式。这是真的,因为 PKCS#7(与许多其他加密容器一样)使用 ASN.1/BER 编码。由于 BER 编码包含填充纯文本内消息的确切长度,因此填充的实际值无关紧要。

于 2011-04-28T21:43:21.807 回答
1

事实证明,填充模式不需要指定,只有加密算法很重要。

于 2009-02-10T08:00:27.430 回答
1

我相信如果您使用 PKCS#7 作为您的格式,则填充被规定为“PKCS7”填充(n 个八位字节的值“n”,请参阅RFC 2315,第 10.3.2 节)。

AES/CBC 的算法标识符在例如RFC 3565中给出:

-- AES information object identifiers --

aes OBJECT IDENTIFIER ::= { joint-iso-itu-t(2) country(16) us(840)
               organization(1) gov(101) csor(3)_ nistAlgorithms(4)  1 }

-- AES using CBC-chaining mode for key sizes of 128, 192, 256

id-aes128-CBC OBJECT IDENTIFIER ::= { aes 2 }
id-aes192-CBC OBJECT IDENTIFIER ::= { aes 22 }
id-aes256-CBC OBJECT IDENTIFIER ::= { aes 42 }

因此,例如 CBC 模式下 128 位 AES 的 OID 是 2.16.840.1.101.3.4.1.2

从技术上讲,这些是针对CMS的,本质上是更新的 PKCS#7。

于 2011-09-14T16:04:56.140 回答