利用匯編語言實現DES加密算法
發布時間:2008/5/27 0:00:00 訪問次數:575
     來源:《單片機與嵌入式系統應用》
     摘要: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匯編的位操作可以方便地實現置換功能。但用匯編語言實現算法的迭代運算及循環功
上一篇:紅外線光電開關術語解釋