智能卡的报文鉴别码和加密代码

智能卡的报文鉴别码和加密代码

 

  一个报文的可靠性要比它的秘密性重要许多倍。“可靠”一词意味着报文没有被改变或受到操纵,因而是可信的。为此,一个计算的报文鉴别码MAC(Messεtge Authentication Code)被附加在报文之后,同时传送给收件人,收件人自己可以计算报文的MAC并与接收到的MAC相比较,如果它们相同,则报文在旅程中未被改变,参看图1。   

                                        

  图1 报文和报文的鉴别码(MAC)的通常安排

  使用秘密密钥的加密算法被用来产生MAC。这个密钥必须为通信的双方共同知道。原则上,MAC是一个短的差错检测码EDC(ERROR Detection Code),它仅能在知道相关的秘密密钥时才能被验证。因此也使用“加密校验和CCS(Cryptographic Cheek Sum)一词(以及一些其他的术语),但技术上CCS和MAC是完全等同的。这两个名称间的区别仅在于“MAC”一词用于数据传输,而“CCS”一词则用于所有其他应用领域。而“签名”一词则经常被用作“MAC”的代用词。

  然而,这和“数字签名”是不一样的,因为后者是用非对称加密算法产生的。

  原则上任何加密报文都可用来产生MAC,如图2所示。然而,实践中几乎排他地使用了DES,这里用该算法来解释处理过程。

  图2   MAC计算过程举例

  如果报文以CBC模式用DES算法加密,每一字组被链接至它前面的字组,这就是说最后的字组依赖于前面的所有字组。这个字组或它的一部分,表示了报文的MAC。然而,报文本身可以保持为明文,它不以加密的方式传送。

  有一些重要的条件和用DES算法产生MAC有关。如果报文的长度不严格地是8字节的整倍数,它总是必须被扩展,通常这就落入了填补的概念。然而,在绝大多数的情况下,仅用′00′之值来填补(按照ANSI X。99-报文鉴别),这里是允许的。因为,这里必须事先约定有关MAC在报文中的位置和长度,MAC本身由CBC模式加密最后所得字组的最左边(最高位)4字节形成。事实上填补的字节在传送报文时可不必传送,这就限定了所传送的数据是被保护的数据和所附的MAC。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值