利用汇编语言实现DES加密算法
发布时间:2008/5/27 0:00:00 访问次数:585
     来源:《单片机与嵌入式系统应用》
     摘要:des算法是一种数据加密算法。自从1977年公布以来,一直是国际上的商用保密通信和计算机通信的最常用的加密标准。des算法的实现一般用高级语言。
    
    
     关键词:加密算法
     des 汇编语言
    
    
     目前在金融界及非金融界的保密通信中,越来越多地用到了des算法。des(data
     encryption standard)即数据加密算法,是ibm公司于 1977年研究成功并公开发表的。随着我国三金工程尤其是金卡工程的启动,des算法在pos、atm、磁卡及智能卡(ic卡)中被广泛应用,以此来实现关键数据的保密。如信用卡持卡人的pin的加密传输、ic卡与pos间的双向认证、金融交易中的密码键盘等,均用到des算法。由于密码键盘不可能使用高级语言,所以用汇编语言实现des就非常实用。
    
    1 des算法的简单原理
    
     des是一种分组密码。假定明文m是由0和1组成的长度为64位的符号串,密钥k也是64位的0、1符号串。
    
     设:m=m1m2m3…m64
    
     k=k1k2k3…k64
    
     加密过程可表达如下:
    
     des(m)=ip-1·t16·t15…t2·t1·ip(m)
    
     其中:ip(m)是初始置换,ip-1是逆置换,t16~t1是16次迭代。
    
     (1)初始置换ip
    
     功能是把输入的明文m按位重新组合,并把输出分为l0、r0两部分,每部分各长32位,其置换规则如下:
     58,50,42,34,26,18,10,2,
     60,52,44,36,28,20,12,4,
     62,54,46,38,30,22,14,6,
     64,56,48,40,32,24,16,8,
     57,49,41,33,25,17,9 ,1,
     59,51,43,35,27,19,11,3,
     61,53,45,37,29,21,13,5,
     63,55,47,39,31,23,15,7
    
     (2)逆置换ip-1
    
     经过16次迭代运算后,得到l16、r16,将此作为输入,进行逆置换。逆置换满足:
    
     ip·ip-1=ip-1·ip=i
    
     逆置换正好是初始置换的逆运算。
    
     (3)t16~t1的迭代计算
    
     des的迭代算法采用模2加法。
    
     在通信网络的两端,双方约定了一致的密钥。在通信的源点用密钥对核心数据进行加密并形成密文,然后,以密文的形式在公共通信网中传输到通信网络的终点。数据到达终点后,用同样的密钥对密文数据进行解密,便再现了明文形式的核心数据。这样,便保证了核心数据(如pin、mac等)在公共通信网中传输的安全性和可靠性。
    
    2 汇编语言的实现
    
     用汇编语言实现des算法有它的优势也有它的难点。优势是51汇编的位操作可以方便地实现置换功能。但用汇编语言实现算法的迭代运算及循环功
     来源:《单片机与嵌入式系统应用》
     摘要:des算法是一种数据加密算法。自从1977年公布以来,一直是国际上的商用保密通信和计算机通信的最常用的加密标准。des算法的实现一般用高级语言。
    
    
     关键词:加密算法
     des 汇编语言
    
    
     目前在金融界及非金融界的保密通信中,越来越多地用到了des算法。des(data
     encryption standard)即数据加密算法,是ibm公司于 1977年研究成功并公开发表的。随着我国三金工程尤其是金卡工程的启动,des算法在pos、atm、磁卡及智能卡(ic卡)中被广泛应用,以此来实现关键数据的保密。如信用卡持卡人的pin的加密传输、ic卡与pos间的双向认证、金融交易中的密码键盘等,均用到des算法。由于密码键盘不可能使用高级语言,所以用汇编语言实现des就非常实用。
    
    1 des算法的简单原理
    
     des是一种分组密码。假定明文m是由0和1组成的长度为64位的符号串,密钥k也是64位的0、1符号串。
    
     设:m=m1m2m3…m64
    
     k=k1k2k3…k64
    
     加密过程可表达如下:
    
     des(m)=ip-1·t16·t15…t2·t1·ip(m)
    
     其中:ip(m)是初始置换,ip-1是逆置换,t16~t1是16次迭代。
    
     (1)初始置换ip
    
     功能是把输入的明文m按位重新组合,并把输出分为l0、r0两部分,每部分各长32位,其置换规则如下:
     58,50,42,34,26,18,10,2,
     60,52,44,36,28,20,12,4,
     62,54,46,38,30,22,14,6,
     64,56,48,40,32,24,16,8,
     57,49,41,33,25,17,9 ,1,
     59,51,43,35,27,19,11,3,
     61,53,45,37,29,21,13,5,
     63,55,47,39,31,23,15,7
    
     (2)逆置换ip-1
    
     经过16次迭代运算后,得到l16、r16,将此作为输入,进行逆置换。逆置换满足:
    
     ip·ip-1=ip-1·ip=i
    
     逆置换正好是初始置换的逆运算。
    
     (3)t16~t1的迭代计算
    
     des的迭代算法采用模2加法。
    
     在通信网络的两端,双方约定了一致的密钥。在通信的源点用密钥对核心数据进行加密并形成密文,然后,以密文的形式在公共通信网中传输到通信网络的终点。数据到达终点后,用同样的密钥对密文数据进行解密,便再现了明文形式的核心数据。这样,便保证了核心数据(如pin、mac等)在公共通信网中传输的安全性和可靠性。
    
    2 汇编语言的实现
    
     用汇编语言实现des算法有它的优势也有它的难点。优势是51汇编的位操作可以方便地实现置换功能。但用汇编语言实现算法的迭代运算及循环功
上一篇:红外线光电开关术语解释