Encryption PIV卡应用验证(PKCS#1 v.1.5签名填充方案)

Encryption PIV卡应用验证(PKCS#1 v.1.5签名填充方案),encryption,cryptography,public-key-encryption,smartcard,Encryption,Cryptography,Public Key Encryption,Smartcard,我目前正在编写一个.NET API,用于使用PC/SC与智能卡设备进行交互。我的大部分API都在工作,但我确实对智能卡可以支持的通用身份验证命令感到困扰。我正试图遵循的程序见附录A.2(第25页) 我的问题是,我不明白PKCS#1 v1.5签名填充是什么意思,也不明白建议采用什么方法来生成符合格式指南的挑战。任何关于生成此类数据的指导都将不胜感激(使用现有的.NETAPI将是非常棒的) 此外,挑战是否需要这种格式?我尝试只发送几个随机生成的字节,但我收到了0x6A80的SW1/SW2(不正确的参

我目前正在编写一个.NET API,用于使用PC/SC与智能卡设备进行交互。我的大部分API都在工作,但我确实对智能卡可以支持的通用身份验证命令感到困扰。我正试图遵循的程序见附录A.2(第25页)

我的问题是,我不明白PKCS#1 v1.5签名填充是什么意思,也不明白建议采用什么方法来生成符合格式指南的挑战。任何关于生成此类数据的指导都将不胜感激(使用现有的.NETAPI将是非常棒的)


此外,挑战是否需要这种格式?我尝试只发送几个随机生成的字节,但我收到了0x6A80的SW1/SW2(不正确的参考数据),因此我确实意识到数据有一些结构要求。

PKCS#1 1.5版可作为提供。该文档中对MD2或MD5的限制显然已经过时。格式从第8.1节开始描述。块类型(BT)是01,因此填充字符串(PS)是一个常量0xff字节序列。NET类可用于生成此类签名。至于PIV卡标准的其余部分,则由您自己决定。

6A80是ISO 7816-4规定的“数据字段中的参数不正确”,这是一个更普遍的错误,可能与引用无关。亲爱的Chris,我想为我的智能卡编写一个PIV小程序。我应该在卡上实现整个签名过程,还是可以在卡上实现哈希计算和加密?我的意思是,是否有任何规范提到,整个过程必须在卡上实现,以使其成为PIV兼容卡?rfc3447确实指定了“数学上相同”的函数,包括SHA-1和SHA-2哈希函数-但之前的RFC,或者实际上是原始的,公开提供的PKCS#1 1.5和2.1规范可能更易于阅读。