aes演算法des
㈠ DES和AES演算法的比較各自優缺點有哪些
聶定遠;李小俊
討論了目前主要的一些數據加密演算法、DES演算法及高級加密標准(AES)的Rijndael演算法。
比較了DES、AES對稱密碼演算法,得出AES具有比DES更好的安全性、效率、靈活性的結論。
【作者單位】:中國地質大學信息工程學院 湖北武漢430074
【關鍵詞】:密碼演算法;數據加密;DES;AES
【分類號】:TN918.1
【正文快照】:
1DES算滑野空法介紹DES演算法具有對稱性,既可以用於加密又可以用於解密。
對稱性帶來的一個很大的好處在於硬體實現,DES的加密和解密可以用完全相同的硬體來實現。
DES演算法的明文分組是64位,輸出密文也是64位。
所以密鑰的有效位數是56位,加上校驗位共64位。
總體流程信瞎如表1所示:輸入的64位明文,先脊轎經初始IP變換,形成64位數據,64位數據被分為兩部分,分別是L部分和 R部分;L和R經過16次迭代,形成新的64位;新的64位數據再經初始逆變換,輸出64位密文。
初始置換和逆初始置換是簡單的移位操作。
在迭代過程這一步驟,替代是在密鑰控制下進行的,而移位是按…
㈡ 幾種常用數據加密演算法的比較
幾種對稱性加密演算法:AES,DES,3DES
DES是一種分組數據加密技術(先將數據分成固定長度的小數據塊,之後進行加密),速度較快,適用於大量數據加密,而3DES是一種基於DES的加密演算法,使用3個不同密匙對同一個分組數據塊進行3次加密,如此以使得密文強度更高。
相較於DES和3DES演算法而言,AES演算法有著更高的速度和資源使用效率,安全級別也較之更高了,被稱為下一代加密標准。
幾種非對稱性加密演算法:RSA,DSA,ECC
RSA和DSA的安全性及其它各方面性能都差不多,而ECC較之則有著很多的性能優越,包括處理速度,帶寬要求,存儲空間等等。
幾種線性散列演算法(簽名演算法):MD5,SHA1,HMAC
這幾種演算法只生成一串不可逆的密文,經常用其效驗數據傳輸過程中是否經過修改,因為相同的生成演算法對於同一明文只會生成唯一的密文,若相同演算法生成的密文不同,則證明傳輸數據進行過了修改。通常在數據傳說過程前,使用MD5和SHA1演算法均需要發送和接收數據雙方在數據傳送之前就知道密匙生成演算法,而HMAC與之不同的是需要生成一個密匙,發送方用此密匙對數據進行摘要處理(生成密文),接收方再利用此密匙對接收到的數據進行摘要處理,再判斷生成的密文是否相同。
對於各種加密演算法的選用:
由於對稱加密演算法的密鑰管理是一個復雜的過程,密鑰的管理直接決定著他的安全性,因此當數據量很小時,我們可以考慮採用非對稱加密演算法。
在實際的操作過程中,我們通常採用的方式是:採用非對稱加密演算法管理對稱演算法的密鑰,然後用對稱加密演算法加密數據,這樣我們就集成了兩類加密演算法的優點,既實現了加密速度快的優點,又實現了安全方便管理密鑰的優點。
如果在選定了加密演算法後,那採用多少位的密鑰呢?一般來說,密鑰越長,運行的速度就越慢,應該根據的我們實際需要的安全級別來選擇,一般來說,RSA建議採用1024位的數字,ECC建議採用160位,AES採用128為即可。
㈢ 什麼是AES演算法
加密演算法分為單向加密和雙向加密。
單向加密 包括 MD5 , SHA 等摘要演算法。單向加密演算法是不可逆的,也就是無法將加密後的數據恢復成原始數據,除非採取碰撞攻擊和窮舉的方式。像是銀行賬戶密碼的存儲,一般採用的就是單向加密的方式。
雙向加密 是可逆的,存在密文的密鑰,持有密文的一方可以根據密鑰解密得到原始明文,一般用於發送方和接收方都能通過密鑰獲取明文的情況。雙向加密包括對稱加密和非對稱加密。對稱加密包括 DES 加密, AES 加密等,非對稱加密包括 RSA 加密, ECC 加密。
AES 演算法全稱 Advanced Encryption Standard ,是 DES 演算法的替代者,也是當今最流行的對稱加密演算法之一。
要想學習AES演算法,首先要弄清楚三個基本的概念:密鑰、填充、模式。
密鑰是 AES 演算法實現加密和解密的根本。對稱加密演算法之所以對稱,是因為這類演算法對明文的加密和解密需要使用同一個密鑰。
AES支持三種長度的密鑰:
128位,192位,256位
平時大家所說的AES128,AES192,AES256,實際上就是指的AES演算法對不同長度密鑰的使用。從安全性來看,AES256安全性最高。從性能來看,AES128性能最高。本質原因是它們的加密處理輪數不同。
要想了解填充的概念,我們先要了解AES的分組加密特性。AES演算法在對明文加密的時候,並不是把整個明文一股腦加密成一整段密文,而是把明文拆分成一個個獨立的明文塊,每一個明文塊長度128bit。
這些明文塊經過AES加密器的復雜處理,生成一個個獨立的密文塊,這些密文塊拼接在一起,就是最終的AES加密結果。
但是這里涉及到一個問題:
假如一段明文長度是192bit,如果按每128bit一個明文塊來拆分的話,第二個明文塊只有64bit,不足128bit。這時候怎麼辦呢?就需要對明文塊進行填充(Padding)。AES在不同的語言實現中有許多不同的填充演算法,我們只舉出集中典型的填充來介紹一下。
不做任何填充,但是要求明文必須是16位元組的整數倍。
如果明文塊少於16個位元組(128bit),在明文塊末尾補足相應數量的字元,且每個位元組的值等於缺少的字元數。
比如明文:{1,2,3,4,5,a,b,c,d,e},缺少6個位元組,則補全為{1,2,3,4,5,a,b,c,d,e,6,6,6,6,6,6}
如果明文塊少於16個位元組(128bit),在明文塊末尾補足相應數量的位元組,最後一個字元值等於缺少的字元數,其他字元填充隨機數。
比如明文:{1,2,3,4,5,a,b,c,d,e},缺少6個位元組,則可能補全為{1,2,3,4,5,a,b,c,d,e,5,c,3,G,$,6}
需要注意的是,如果在AES加密的時候使用了某一種填充方式,解密的時候也必須採用同樣的填充方式。
AES的工作模式,體現在把明文塊加密成密文塊的處理過程中。AES加密演算法提供了五種不同的工作模式:
ECB、CBC、CTR、CFB、OFB
模式之間的主題思想是近似的,在處理細節上有一些差別。我們這一期只介紹各個模式的基本定義。
電碼本模式 Electronic Codebook Book
密碼分組鏈接模式 CipherBlock Chaining
計算器模式 Counter
密碼反饋模式 CipherFeedBack
輸出反饋模式 OutputFeedBack
如果在AES加密的時候使用了某一種工作模式,解密的時候也必須採用同樣的工作模式。
AES加密主要包括兩個步驟: 密鑰擴展 和 明文加密 。
密鑰擴展過程說明(密鑰為16位元組):
函數g的流程說明:
輪常量(Rcon)是一個字,最右邊三個位元組總為0。因此字與Rcon相異或,其結果只是與該字最左的那個位元組相異或。每輪的輪常量不同,定位為Rcon[j] = (RC[j], 0, 0, 0)。(RC是一維數組)
RC生成函數:RC[1] = 1, RC[j] = 2 * RC[j – 1]。
因為16位元組密鑰的只進行10輪的擴展,所以最後生成的RC[j]的值按16進製表示為:
十輪的密鑰擴展後,就能生成44個字大小的擴展密鑰。擴展後的密鑰將用於AES對明文的加密過程。
S盒是16×16個位元組組成的矩陣,行列的索引值分別從0開始,到十六進制的F結束,每個位元組的范圍為(00-FF)。
進行位元組代替的時候,把狀態中的每個位元組分為高4位和低4位。高4位作為行值,低4位作為列值,以這些行列值作為索引從S盒的對應位置取出元素作為輸出,如下圖所示:
S盒的構造方式如下:
(1) 按位元組值得升序逐行初始化S盒。在行y列x的位元組值是{yx}。
(2) 把S盒中的每個位元組映射為它在有限域GF中的逆;{00}映射為它自身{00}。
(3) 把S盒中的每個位元組的8個構成位記為(b7, b6, b5, b4, b3, b2, b1)。對S盒的每個位元組的每個位做如下的變換:
ci指的是值為{63}的位元組c的第i位。
解密過程逆位元組代替使用的是逆S盒,構造方式為
位元組d={05}。
逆向行移位將狀態中後三行執行相反方向的移位操作,如第二行向右循環移動一個位元組,其他行類似。
要注意,圖示的矩陣的乘法和加法都是定義在GF(2^8)上的。
逆向列混淆原理如下:
輪密鑰加後的分組再進行一次輪密鑰加就能恢復原值.所以,只要經過密鑰擴展和明文加密,就能將明文加密成密文,進行解密的時候,只需要進行逆向變換即可。
圖[AES加密演算法的流程]中還需要注意,明文輸入到輸入狀態後,需要進行一輪的輪密鑰加,對輸入狀態進行初始化。 前9輪的加密過程,都需要進行位元組替代、行移位、列混淆和輪密鑰加,但是第10輪則不再需要進行列混淆。
進行解密的時候,需要進行逆向位元組替代,逆向行移位、逆向列混淆和輪密鑰加。
㈣ DES和AES演算法的比較,各自優缺點有哪些
一、數據加密標准不同
1、DES演算法的入口參數有三個:Key、Data、Mode。
其中Key為7個位元組共56位,是DES演算法的工作密鑰;Data為8個位元組64位,是要被加密或被解密的數據;Mode為DES的工作方式,有兩種:加密或解密。
2、AES的基本要求是,採用對稱分組密碼體制,密鑰的長度最少支持為128、192、256,分組長度128位,演算法應易於各種硬體和軟體實現。
因此AES的密鑰長度比DES大, 它也可設定為32比特的任意倍數,最小值為128比特,最大值為256 比特,所以用窮舉法是不可能破解的。
二、運行速度不同
1、作為分組密碼,DES的加密單位僅有64位二進制,這對於數據傳輸來說太小,因為每個分組僅含8個字元,而且其中某些位還要用於奇偶校驗或其他通訊開銷。處理速度慢、加密耗時
2、AES對內存的需求非常低,運算速度快,在有反饋模式、無反饋模式的軟硬體中,Rijndael都表現出非常好的性能。
三、適用范圍不同
1、數據加密標准,速度較快,適用於加密大量數據的場合。DES在安全上是脆弱的,但由於快速DES晶元的大量生產,使得DES仍能暫時繼續使用,為提高安全強度,通常使用獨立密鑰的三級DES
2、AES 適用於8位的小型單片機或者普通的32位微處理器,並且適合用專門的硬體實現,硬體實現能夠使其吞吐量(每秒可以到達的加密/解密bit數)達到十億量級。同樣,其也適用於RFID系統。
㈤ aes加密安全嗎
AES演算法作為DES演算法和MD5演算法的替代產品,10輪循環到目前為止還沒有被破解。一般多數人的意見是:它是目前可獲得的最安全的加密演算法。AES與目前使用廣泛的加密演算法─DES演算法的差別在於,如果一秒可以解DES,則仍需要花費1490000億年才可破解AES,由此可知AES的安全性。AES 已被列為比任何現今其它對稱加密演算法更安全的一種演算法。
㈥ 簡述DES演算法的S盒與AES演算法的S盒之間的相同點和不同點。
相同:具有良好的非線性,AES的非線性運算是位元組代換,對應於DES中唯一非線性運算S盒。不相同:1,DES演算法一共有8個S盒,AES演算法只有S盒和逆S盒。2.DES演算法的每個S盒都是4×16的矩陣,每一行包括所有16種4位二進制。AES演算法的每個S盒都是16×16的矩陣,每一行包括所有16種二位十六進制。3.DES演算法的S盒運算時輸入是6位二進制數,輸出為4位二進制。AES演算法的S盒運算時輸入為二位十六進制,輸出也為二位16進制數。4.DES演算法S盒計算式,輸入六位二進制數種,第一位與第六位二進制數對應的十進制數代表S盒中的行,中間4位二進制對應的十進制數對應S盒中的列.AES在S盒計算式,輸入2位十六進制數,第一位代表S盒中的行,第二位代表S盒的列。
㈦ AES和DES的比較
對稱加密AES和DES總結:
1.兩個加密算山明法都是對數據進行分塊加密
2.兩個加密演算法都需要去擴展密鑰
3.都有自己對拿老應的表對要加密的明文去做轉換
4.都是用消唯升子密鑰去對轉換之後的明文做加密處理
AES原理講解1
AES原理講解2
漫畫版AES原理講解
AES演算法的填充模式
㈧ 「DES」和「AES」演算法的比較,各自優缺點有哪些
DES演算法優點:DES演算法具有極高安全性,到目前為止,除了用窮舉搜索法對DES演算法進行攻擊外,還沒有發現更有效的辦法。
DES演算法缺點:
1、分組比較短。
2、密鑰太短。
3、密碼生命周期短。
4、運算速度較慢。
AES演算法優點:
1、運算速度快。
2、對內存的需求非常低,適合於受限環境。
3、分組長度和密鑰長度設計靈活。
4、 AES標准支持可變分組長度,分組長度可設定為32比特的任意倍數,最小值為128比特,最大值為256比特。
5、 AES的密鑰長度比DES大,它也可設定為32比特的任意倍數,最小值為128比特,最大值為256比特,所以用窮舉法是不可能破解的。
6、很好的抵抗差分密碼分析及線性密碼分析的能力。
AES演算法缺點:目前尚未存在對AES 演算法完整版的成功攻擊,但已經提出對其簡化演算法的攻擊。
(8)aes演算法des擴展閱讀:
高級加密標准(英語:Advanced Encryption Standard,縮寫:AES),在密碼學中又稱Rijndael加密法,是美國聯邦政府採用的一種區塊加密標准。
這個標准用來替代原先的DES,已經被多方分析且廣為全世界所使用。經過五年的甄選流程,高級加密標准由美國國家標准與技術研究院(NIST)於2001年11月26日發布於FIPS PUB 197,並在2002年5月26日成為有效的標准。2006年,高級加密標准已然成為對稱密鑰加密中最流行的演算法之一。