加密签名算法之Retail算法(ISO9797-1-MAC-Alg3)

本文详细介绍了ISO9797-1-MAC-Alg3(零售算法)在Java卡中的应用,包括算法描述和具体实现步骤。该算法使用2倍DES密钥长度,通过ISO9797-m1或m2填充,结合DES的CBC和ECB模式进行加解密,生成8字节MAC。
摘要由CSDN通过智能技术生成

一、描述

javacard中用到了该算法,所以对其做个了解
下图为该算法的实现过程
在这里插入图片描述

二、具体实现

实现需要 2key长度的DESkey,(16字节),前8字节为K1,后8个字节为K2
明文

step1:
对明文数据进行填充,具体是ISO9797-m1 还是 ISO9797-m2,可以参考ISO9797协议数据填充
step2:
使用DES CBC模式(iv默认为0), K1加密,得到最后的8字节res1,
step3:
使用DES ECB模式,K2解密res1,得到新的8字节res2,
step4:
使用DES ECB模式,K1加密res2,得到最终的8字节res。

ALG_DES_MAC8_ISO9797_1_M1_ALG3 M1填充,最后mac取8字节
ALG_DES_MAC8_ISO9797_1_M2_ALG3 M2填充,最后mac取8字节
ALG_DES_MAC4_ISO9797_1_M1_ALG3 M1填充,最后mac取4字节
A

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值