PKCS11 中的机制是什么意思?例如:
CKM_RSA_PKCS
。
机制(
CKM_RSA_PKCS
)和签名算法(NoneWithRSA
)有什么区别?
机制是描述密码操作的常量值。例如,
CKM_RSA_PKCS
在 PKCS #11 手册中定义为:
PKCS #1 v1.5 RSA 机制,表示为 CKM_RSA_PKCS,是一种多用途 最初基于 RSA 公钥密码系统和块格式的机制 PKCS #1 v1.5 中定义。支持单部分加密和解密;单件 带或不带消息恢复的签名和验证;密钥包装;和钥匙 展开。此机制仅对应于 PKCS #1 v1.5 的部分: 涉及RSA;它不会将消息摘要或 DigestInfo 编码计算为 指定为
和md2withRSAEncryption
PKCS #1 v1.5 中的算法。md5withRSAEncryption
注意“多用途”条款 - 这种单一机制可用于加密/解密以及签名/验证。
Java 机制
NoneWithRSA
定义为:
RSA签名算法在执行RSA操作之前不使用摘要算法(例如MD5/SHA1)。有关 RSA 签名算法的更多信息,请参阅 PKCS1。
Java机制仅用于签名。
从描述来看,在 Java 中使用
NoneWithRSA
计算的签名似乎相当于在 PKCS #11 中使用 CKM_RSA_PKCS
计算的签名。
接受的答案是错误的。 CKM_RSA_PKCS 机制在通过 RSA 算法运行消息之前,将 PKCS#1 v1.5 填充应用于消息,而 NoneWithRSA 只执行没有填充的原始 RSA 操作(在这种情况下,输入长度必须与模数长度匹配)。