亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        DES加密算法的過程分析研究

        2018-02-26 08:11:20余啟航李斌勇楊雄凱
        關(guān)鍵詞:明文加密算法解密

        ◆余啟航 李斌勇 楊雄凱 姚 瑤

        DES加密算法的過程分析研究

        ◆余啟航 李斌勇 楊雄凱 姚 瑤

        (成都信息工程大學網(wǎng)絡(luò)空間安全學院 四川 610225)

        本文圍繞DES算法的加密問題,分析了DES算法的明文分組加密和子密鑰生成過程。針對DES所涉及的核心算法模塊,分別對IP初始置換、子密鑰獲取、E盒與S盒擴展、異或運算、P盒置換和逆初始置換模塊進行了深入地研究與設(shè)計。在此基礎(chǔ)上給出DES的部分核心算法的輸入與輸出實現(xiàn),并對其安全性進行了分析。本文所開展的研究,為深入理解DES加密算法和常規(guī)應用加密問題,提供了可行的參考。

        DES;子密鑰;置換;加密算法

        0 引言

        DES加密解密算法最初由美國IBM公司研究人員所設(shè)計發(fā)明,且為第一個公開的商用密碼算法標準,自誕生以來便得到了ISO的一致認可。DES是分組密碼算法的典型代表,它的明文分組長度為64bits,密鑰長度為64bits,其中包括有8bits的奇偶校驗,因此有效密鑰長度為56bits。DES加密解密算法使用的過程相同,且可以隨時均都可以進行變動。它們其中有極少數(shù)被認為是易破解的弱密鑰,但是很容易拋開它們不使用,因此其自身安全性主要依賴于有效密鑰。由于DES算法使用最大為64bits的邏輯運算以及標準算術(shù),它的子密鑰產(chǎn)生較為容易,可以適用于當前大部分計算機當中,因此近三十多年以來,其在保密通信密碼算法的研究使用中,扮演著極其重要的作用。

        1 DES算法分析

        DES算法加密過程首先先對明文分組進行操作,需要加密的明文分為每塊64bits的固定大小。如圖1所示左右兩部分分別為64bits的明文分組加密過程和其16個子密鑰生成的過程。

        圖1 DES加密算法流程

        2 DES核心算法模塊

        2.1 IP初始置換

        IP初始置換,在第一輪運算之前執(zhí)行,對輸入的分組采用如表1所示的IP初始變換,按照從左向右、從上向下進行置換。

        表1 IP初始置換

        2.2子密鑰獲取流程

        子密鑰的獲取流程如圖2所示。

        圖2 子密鑰獲取流程

        Step1:此處,用戶輸入 64 位的密鑰。根據(jù)密鑰置換表PC-1,將 64 位變成 56 位密鑰(此處去掉了奇偶校驗位)。

        Step2:PC-1 置換得到的56 位密鑰。此處密鑰被分為前28位 C0 和后28位 D0。分別對它們進行循環(huán)左移,C0 左移得到 C1,D0 左移得到 D1。

        Step3:將 C1 和 D1 合并變成 56 位。然后通過PC-2表進行壓縮置換,得到此輪的 48 位子密鑰 K1。

        Step4:再對 C1 和 D1 進行相同的左移和壓縮置換,獲取下一輪的子密鑰……一共進行16輪,于是可以得到 16 個 48 bits的子密鑰。

        2.3 E盒擴展

        E盒擴展置換,則是將右半部分32bits按照8行4列方式依次排列,得到一個8*4的二維矩陣,然后根據(jù)如表2所示的E盒擴展置換表擴展為8*6的二維矩陣。

        表2 E盒擴展

        2.4異或運算

        將P盒置換的結(jié)果與最初的64bits分組的左半部分異或,然后左、右半部分交換,接著開始另一輪。

        2.5 S盒擴展

        當產(chǎn)生了48bits密鑰后就可以和明文進行異或運算,便可得到48bits的密文。再開始下輪的S盒迭代運算,其功能是把6bit數(shù)據(jù)變?yōu)?bits數(shù)據(jù),每個S盒是一個4行、16列的表。每個S盒的使用方法為:S盒收到6bits的輸入,6bits的第1個bit和最后1個bits構(gòu)成的2位二進制為該S盒行號,中間的4bits二進制為該S盒的列號,然后根據(jù)行號和列號查S盒定義表得到對應的值(通常為十進制),該值就是S盒變換的輸出,并轉(zhuǎn)化為二進制。

        2.6 P盒置換

        S盒代替運算之后,輸出32bits,作為F函數(shù)最后一個變換P盒置換的輸入。將該 32bits位數(shù)據(jù)進行P盒置換,置換后得到一個仍然是 32 bits的結(jié)果,此處可得F函數(shù)的輸出值。

        2.7 逆初始置換

        DES完成16輪變換后,得到64bits數(shù)據(jù)作為IP-1逆初始置換的輸入,經(jīng)過IP-1逆初始置換表(如表3所示),64bits輸入數(shù)據(jù)位置重新編排,就得到64bits的密文。

        表3 逆初始置換

        3 DES核心算法實現(xiàn)

        3.1通過UnitoHex函數(shù)將unicode字符轉(zhuǎn)換為16進制

        def UnitoHex(string):

        return_string=''

        for i in string:

        return_string+="%02x"%ord(i)

        return return_string

        輸入:unicode字符串

        輸出:十六進制數(shù)據(jù)流

        3.2通過_CodeIP函數(shù)對密文或明文初始置換

        def _CodeIP(self,code):

        changed_code=''

        for i in range(64):

        changed_code+=code[ip[i]-1]

        return changed_code

        輸入:明文或密文

        輸出:對明文或密文初始置換后的64bit數(shù)據(jù)

        3.3通過_KeyIP函數(shù)對密鑰初始置換。

        def _KeyIP (self,key):

        changed_key=''

        for i in range(56):

        changed_key+=key[pc1[i]-1]

        return changed_key

        輸入:初始密鑰

        輸出:對密鑰初始置換后的56bit數(shù)據(jù)

        3.4通過_EBox函數(shù)進行E盒擴展置換

        def _EBox(self,code):

        return_list=''

        for i in range(48):

        return_list+=code[e[i]-1]

        return return_list

        輸入:32bit數(shù)據(jù)

        輸出:E盒擴展置換后的48bit數(shù)據(jù)

        3.5通過_Sbox函數(shù)進行S盒代替選擇置換

        def _SBox(self, key):

        return_list=''

        for i in range(8):

        row=int(str(key[i*6])+str(key[i*6+5]),2) raw=int(str( key[i*6+1])+str(key[i*6+2])+str(key[i*6+3])+str(key[i*6+4]),2)

        return_list+=self._toByte(s[i][row][raw],4)

        return return_list

        輸入:48bit數(shù)據(jù)

        輸出:S盒代替選擇置換后的32bit數(shù)據(jù)

        3.6通過_Pbox函數(shù)進行P盒置換

        def _PBox(self,code):

        return_list=''

        for i in range(32):

        return_list+=code[p[i]-1]

        return return_list

        輸入:32bit數(shù)據(jù)

        輸出:P盒置換后的32bit數(shù)據(jù)

        3.7通過_Xor函數(shù)對數(shù)據(jù)和子密鑰進行異或

        def _Xor(self,code,key):

        code_len=len(key)

        return_list=''

        for i in range(code_len):

        if code[i]==key[i]:

        return_list+='0'

        else:

        return_list+='1'

        return return_list

        輸入:E盒擴展置換后的48bit數(shù)據(jù)和PC-2的48bit子密鑰。

        輸出:異或后的48bit數(shù)據(jù)。

        4 安全性分析

        由于DES算法中只用到64bits密鑰中的其中56bits密鑰,而第8、16、...64bits中的8個bits并未參與DES運算,可以發(fā)現(xiàn)即DES的安全性是基于除8、16、...64bits以外的其余56bits的排列組合才可以得到保證的。因此,在實際進行保密通信中,應盡量避免使用第8、16、24等bits作為有效數(shù)據(jù)位進行加密解密,以免在進行保密通信的系統(tǒng)中產(chǎn)生數(shù)據(jù)被破譯的隱患。

        5 結(jié)束語

        DES加密解密算法較為復雜,其中用到多次不同置換方式,以及進制的轉(zhuǎn)換和有效位的采用等,這給實現(xiàn)此算法帶來了一定的難度。但是也正是因為此,它的安全性相比其他一般密碼算法的安全性較高。在未來進一步研究中,應著力研究DES有效位的使用,以及完善加密解密的過程和簡便其算法的實現(xiàn)過程,以增強其安全性,使之能更加廣泛地解決日常應用加密問題。

        [1]劉浪,周新衛(wèi).基于DES對稱加密體制的探討[J].科技廣場,2012.

        [2]方亮.DES加密算法IP模塊實現(xiàn)[D].電子科技大學,2011.

        [3]張芯苑.基于python的加密解密算法實現(xiàn)與研究[J].紡織報告,2017.

        [4]徐洪波,李穎華.DES加密算法在保護文件傳輸中數(shù)據(jù)安全的應用[J].信息網(wǎng)絡(luò)安全,2009.

        [5]張溫泉,趙紅敏,郝曉東.一種高速高安全性的DES算法設(shè)計[J].微電子學與計算機,2014.

        [6]張峰,鄭春來,耶曉東. DES加密算法的FPGA實現(xiàn)[J]. 現(xiàn)代電子技術(shù),2008.

        四川省教育廳重點項目(17ZA0069)、成都信息工程大學科研基金資助項目(KYTZ201618)。

        猜你喜歡
        明文加密算法解密
        解密“熱脹冷縮”
        解密“一包三改”
        少先隊活動(2020年9期)2020-12-17 06:17:31
        炫詞解密
        奇怪的處罰
        奇怪的處罰
        基于小波變換和混沌映射的圖像加密算法
        四部委明文反對垃圾焚燒低價競爭
        Hill加密算法的改進
        解密“大調(diào)解”
        XXXXBBBB欧美| 国产精品久久国产三级国| 国产亚洲精品视频网站| 草草影院ccyy国产日本欧美| 在线观看热码亚洲av每日更新 | 成人片黄网站色大片免费观看cn| 亚洲国产99精品国自产拍| 久久亚洲av午夜福利精品西区| 亚洲天堂二区三区三州| 成人av一区二区亚洲精| 一本色综合网久久| 色老板精品视频在线观看| 久久99国产伦精品免费| 亚洲综合天堂一二三区| 日本av在线一区二区| 日本无码人妻波多野结衣| 亚洲AV秘 无码二区在线| 亚洲国产线茬精品成av| 高黄暴h日本在线观看| 亚洲av第一页国产精品| 亚洲一区二区三区久久不卡| 亚洲一区二区懂色av| 夜夜高潮夜夜爽国产伦精品| 99亚洲精品久久久99| 亚洲黄片高清在线观看| 人成在线免费视频网站| 性欧美videofree高清精品| 亚洲mv国产精品mv日本mv| 综合中文字幕亚洲一区二区三区| 国产日产精品_国产精品毛片| 国产精品国产成人国产三级| 深夜福利国产| 久久亚洲中文字幕精品熟| 国产免费av片无码永久免费 | 午夜理论片日本中文在线| 亚洲国产成人av在线观看| 国产AV边打电话边出轨| 国产一区二区免费在线观看视频| 亚洲av无码精品无码麻豆| 色婷婷久久一区二区三区麻豆| 国产午夜精品久久久久九九|