在CCS模式下使用AES并在PKCS#7内部使用ISO 10126填充时,算法标识符是什么?

StackOverflow https://stackoverflow.com/questions/304658

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

有帮助吗?

解决方案

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

其他提示

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

我相信如果你使用PKCS#7作为你的格式,填充被指定为,<!>“PKCS7 <!>”;填充(值为'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。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top