PBOC/EMV之DES密钥算法 - 中国一卡通网
用户名密码 [免费注册] [找回密码] 推广技巧 发布求购 建商铺  发产品  会员体制比较  
 

PBOC/EMV之DES密钥算法

来源:技术为王博客 小马  作者:中国一卡通网 收编  发布时间:2010-11-15 14:21:21  字体:[ ]

关键字:DES  智能IC卡  EMV  

摘   要:Des是在金融电子领域用的比较多的一种加解密算法, 比如POS,ATM,智能IC卡等领域.


    接着要把这个48位的right还原成32位,也就是进行数据的压缩,压缩的步骤如下:
    1 把right分成8部分,每部分6位,表示如下:
    a=r1r2…r6
    b=r7r8..r12
    c=r13r14..r18
    d=r19r20…r24
    e=r25r26..r30
    f=r31r32..r36
    g=r37r38..r42
    h=r43r44..r48

    下面再给出8个表格: 

    上面这8个表格,分别对应a~h, 注意a~h都是6位,表示成整数范围为0~63, 所以把它们换成整数都能在上面各自对应的表格中找到一个4位的值. 举个例子:
    a=57, 在表1中找到57对应的位置是0x3, 则a=0x3.
    经过这样变换后,a~h都从原来的6位变为4位,再把它们拼起来,生成一个32的数,表示为
    Right=r1r2…r32
    再把这个32位的数,各个位换一下位置,换位的规则按照下面的表格: 

    也就是新数据的第1位为原数据的16位,依次类推. 新生成的数据为:
    Right=r16r7…r25
    然后,把这个right和left异或,结果给right, right原来的值给left. 这样得到一对新的left和right.

    还记得前面的<迭代标志>吗,用新计算的left和right重新回到<迭代标志>,做同样的操作,一共迭代16次, 每一次都是用前一次得到的left和right, 但要记得中间有一步要用到key(i)做异或, 这个i就是迭代的次数.
    假设第16迭代后,得到的分别是left(16), right(16), 则新的数据为
    Data=right(16)left(16), 注意这里不是left(16)right(16).
    新的data是一个64位的数, 按照下面的表格,调整一下各个位的位置,

    Data=d40d8…d25.
    这个data就是加密后的数据。

    最后说一下如何解密,des是一种对称的加密算法,也就是加密,解密是同一人密钥, 算法也相同,唯一不同的就是, 在数据迭代时,第一次用key(16),第二次用key(15),依次类推,一直到key(1). 

    另外,现在有一些des算法的变种,也比较流行,典型的一个就是3des.它的原理可以简单描述如下:
    有三个56位长度的密钥(8字节), 分别为key1, key2, key3.
    第一步,用key1对数据加密.
    第二步,用key2解密.
    第三步, 用key3加密

    三个key如果不相等, 相当于密钥长度是168位,这样就更加安全。

更多

新闻投稿合作邮箱:yktchina-admin@163.com    字体[ ] [收藏] [进入论坛]

推荐文章

论坛热帖