久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

DES加密算法原理簡析

 望穿墻 2016-06-20

轉(zhuǎn):http://marshal-r./blog/2089963

一,、介紹

 

    DES算法全稱Data Encryption Standard,,即數(shù)據(jù)加密標準,是一種對稱加密算法,。也許你更早接觸到的是RSA算法——非對稱加密算法的代表,,它的一個典型應用是在ssh無密碼登錄中生成一對公鑰、私鑰,。但是,,RSA算法有一個致命缺點:處理速度很慢,因此只適合加密安全性要求極高而又較短的信息,。相比之下,,DES處理速度則快多了,,可用于加密信息比較長的場合。

    而且,,通過定期在通信網(wǎng)絡的源端和目的端同時改用新的Key,,便能更進一步提高數(shù)據(jù)的保密性,這也正是現(xiàn)在金融交易網(wǎng)絡的流行做法,。目前,,DES算法在POS、ATM,、磁卡及智能卡(IC卡),、加油站、高速公路收費站等領(lǐng)域被廣泛應用,,以此來實現(xiàn)關(guān)鍵數(shù)據(jù)的保密,,如信用卡持卡人的PIN的加密傳輸,IC卡與POS間的雙向認證,、金融交易數(shù)據(jù)包的MAC校驗等,,均用到DES算法。

 

    DES算法的入口參數(shù)有三個:Key,、Data,、Mode。其中Key為8個字節(jié)共64位,,是DES算法的工作密鑰;Data也為8個字節(jié)64位,,是要被加密或被解密的數(shù)據(jù),;Mode為DES的工作方式,有兩種:加密或解密,。DES算法把64位的明文輸入塊轉(zhuǎn)變?yōu)?4位的密文輸出塊,,它所使用的密鑰也是64位。

 

 

二,、DES加密原理圖


分組加密
 


DES加密過程總覽


子密鑰生成過程

 


DES加密過程


三,、DES加密詳解

 

    1、獲取子密鑰Ki(一共16個)

        DES的初始密鑰K為64位,,按8行8列從左往右從上往下排列,,其中每行第8位用于奇偶校驗,因此Key實際可用位數(shù)為56,。

        首先,,64位的初始密鑰K經(jīng)過PC-1之后,生成56位的串,。

 

        

        由表可知,,初始密鑰K第8,、16、24,、32,、40、48,、56,、64共8個校驗位被去掉,剩余56位按表所示方式排列:第57位放在第1位,,第49位放在第2位,,依次類推。

 

        經(jīng)過PC-1置換之后,,將置換輸出再分為前28位C0和后28位D0兩部分,,分別循環(huán)左移1位得到C1和D1,然后將兩部分合并成56位,,然后經(jīng)過PC-2變換之后生成48位的子密鑰K1,。


        
         C1、D1分別循環(huán)左移1位得到C2,、D2,,合并經(jīng)過PC-2生成子密鑰K2。依次類推,,直至生成子密鑰K16,。注意,每輪循環(huán)左移的位數(shù)有如下規(guī)定:


        

        至此,,加密過程需要的16個子密鑰全部生成完畢,,下面我們來看具體如何加密。

 

 

    2,、加密過程

        2.1 初始置換

            64位明文串經(jīng)過一個初始置換函數(shù)IP,,生成重新排列之后的64位輸出,分為左32位L0和右32位R0,,用于F函數(shù)16輪迭代運算的首次迭代的初始輸入,。


           
 

        2.2 迭代運算

            R0與子密鑰K1經(jīng)過密碼函數(shù)變換F(R0,K1)得到32位輸出f1,f1與L0做二進制異或運算,,結(jié)果賦給R1,,R0則原封不動地賦給L1。然后R1與子密鑰K2經(jīng)過函數(shù)變換F(R1,K2)得到32位輸出f2,,f2與L1做二進制異或運算,,結(jié)果賦給R2,R1則原封不動地賦給L2....依此類推,一共經(jīng)過16次迭代運算直至最后生成L16和R16,。

 

        2.3 末置換

            L16,、R16合在一起64位,經(jīng)過末置換函數(shù)IP-1,,得到64位密文輸出,。


           
 

 

    3、密碼函數(shù)F

        密碼函數(shù)F接受兩個輸入:32位數(shù)據(jù)和48位子密鑰,,輸出結(jié)果為32位,。具體運算如下:

        3.1 擴展置換

            32位數(shù)據(jù)通過擴展置換E從32位擴展為48位,擴展置換通過將原32位數(shù)據(jù)中的某些位重復出現(xiàn)達到擴展的目的,。


           
 

        3.2 異或運算

            擴展置換的輸出(48位)與子密鑰(48位)做異或運算,,輸出為48位。

 

        3.3 S盒置換

            將異或運算得到的48位結(jié)果數(shù)據(jù)分成8個6位的塊,,每塊通過對應的一個S盒產(chǎn)生一個4位的輸出,。8個6位數(shù)據(jù)的置換結(jié)果連在一起,形成32位輸出結(jié)果,。

            每個S盒實際上是一張4(0-3)行16(0-15)列的置換表,,注意,行列編號都從0開始,。


           
 

            S盒接收6位的數(shù)據(jù),,經(jīng)過置換輸出4位的數(shù)據(jù),其具體置換過程為:將6位數(shù)據(jù)的第1位和第6位取出來,,形成一個2位的二進制數(shù)x(從0-3),,剩下的4位構(gòu)成另一個二進制數(shù)y(從0-15),然后查出S盒x行y列對應的十進制整數(shù),,將該整數(shù)轉(zhuǎn)換為一個4位二進制數(shù),,即為S盒的輸出。

           

        3.4 P盒置換

            S盒置換的最終結(jié)果32位數(shù)據(jù)通過P盒置換,,同樣生成32位輸出結(jié)果。


           
 

 

    參考文獻:http://baike.baidu.com/view/584868.htm?fr=aladdin

                     http://simplesource.blog.163.com/blog/static/103414062007221112947879/

                     http://wenku.baidu.com/link?url=Dw7UUpR5m3N6Ioht5IauMkAgONqxhKdLfq_RKo7DrkZx_2HT7bXyfriZdnBE2BPV9KPManidU3DYSU_ir0g2zKUvIbO4NPkY5IC4OZd8y

    本站是提供個人知識管理的網(wǎng)絡存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多