Java卡中没有AES密码填充

拉乌尔722

在JavaCard 2.2.2 API中,我可以看到一些对称密码是通过填充模式实现的,例如:

密码算法ALG_DES_CBC_ISO9797_M1使用CBC模式下的DES或外部CBC模式下的三重DES提供密码,并根据ISO 9797方法1方案填充输入数据。

但是对于AES密码,没有可用的填充模式(ALG_AES_BLOCK_128_ECB_NOPADALG_AES_BLOCK_128_CBC_NOPAD)。

那么如何解释该算法不支持它呢?

这些填充方法是否容易受到使用AES的已知攻击的影响?

马丁·波德威斯

如果其他填充模式可用,则取决于您使用的Java Card API以及特定Java Card的实现细节。

以后的API有:

getInstance由于模式和填充方法的爆炸式增长,添加了特殊方法。

较旧的API实现可能确实没有这些方法,但是请再次检查可用性。


AES本身是一个分组密码。诸如CBC之类的不同模式使用密码和填充-因此CBC_AES_PKCS7PADDING在某种意义上将更加合乎逻辑。因此,作为分组密码,AES不容易受到填充oracle攻击的攻击。

CBC,另一方面对填充甲骨文脆弱-和其他明文甲骨文-攻击。因此,如果您需要针对这些攻击的防护措施,则应使用AES-CMAC身份验证标签保护IV和密文。

但是,这不是不包括填充模式的原因。现在肯定存在不同的填充模式

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章