『壹』 什麼是AES演算法
1997年1月2日,美國國家標准和技術研究院(National Institute of Standard and Technology,NIST)宣布徵集一個新的對稱密鑰分組密碼演算法作為新的加密標准,以取代即將過期的DES。新的演算法被命名為高級加密標准(Advanced)。1997年9月12日發布了徵集演算法的正式公告,要求AES具有128位分組長度,支持128、192和256位的密鑰長度。比三重DES有效,至少要與三重DES一樣安全,而且要求AES能在全世界范圍內免費得到。
1998年8月20日,NIST宣布接受15個演算法為AES的候選演算法,並提交全世界的密碼學界協助分析這些演算法。1999年8月,確定了5個候選決賽演算法,分別是MARS、RC6、Rijndael、Serpent和Twofish。經過對決賽演算法的進一步分析,2000年10月NIST決定將Rijndael作為AES,並於2002年5月26日制定了AES的規范。
Rijndael是由比利時的兩位密碼學家Daemen和Rijment共同設計的。Rijndael演算法是一個迭代型分組密碼,其分組長度和密鑰長度都可變,各自可以為128比特、192比特和256比特。Rijndael對明文以位元組為單位進行處理。以128位的分組、128位密鑰的情況為例,首先將明文按位元組分成列組,將明文的前4個位元組組成一列,接下來的4個位元組組成第二列,後面的位元組依次組成第三列和第四列,這樣就組成了一個4×4的矩陣,如圖所示。
這樣就完成了AES演算法。(本文為原創,轉載需向我請求許可權,謝謝~)
『貳』 柏拉圖之吻
它的意思是:只有精神上的戀愛。但沒有肉體上的結合。這樣純潔,潔白的愛情是不可玷污的。才稱為柏拉圖式的愛情。
也有人說它是一種永久的,不求回報的愛.即使不能相守,只要看到對方幸福,這份愛便會綿延下去,直到永恆.有些人,上帝給了他們緣分,讓他們相遇,但是卻忘了給他們交點,於是這份愛,只能變成遠遠的守望,而這兩個人,也將永遠如同平行線一般,不能在一起.
『叄』 英文翻譯成中文
高級加密標准
在加密技術,先進加密標准( AES ) ,也稱為Rijndael演算法,是一種分組密碼通過加密標准由美國政府。據分析廣泛,目前全球范圍內使用,如與它的前身[ 3 ]數據加密標准( DES ) 。 AES公司宣布了美國國家標准與技術局( NIST ) ,美國的FIPS酒吧197 (符合FIPS 197 ) 11月26日2001年5年的標准化進程,其中15人競爭的設計和評價,提出了Rijndael演算法之前,被選為最合適的(見先進加密標准過程的更多細節) 。它成為有效的標准2002年5月26日。截至2006年, AES公司是一個最流行的演算法中使用對稱密鑰加密。它可以選擇在許多不同的加密軟體包。這標志著第一次公眾已經獲得密碼批準的國家安全局的絕密資料(見安全的AES ,下文) 。
該密碼是由兩名比利時譯解密碼,瓊Daemen和Vincent Rijmen ,並提交給AES公司甄選過程,稱為「 Rijndael演算法」 ,一個皮包的姓名發明者。 ( Rijndael演算法是顯著[ rɛinda ː升] ) 。 [ 4 ]
不同的加密(先前的AES ) , AES公司是一個代替置換網路,而不是一個Feistel網路。 AES公司是快速的軟體和硬體,是比較容易執行,而且需要很少的內存。作為一個新的加密標准,這是目前部署大規模。
說明密碼
嚴格地說, AES公司是Rijndael演算法並不準確(盡管實際上他們互換使用)作為Rijndael演算法支持更大范圍的封鎖和關鍵尺寸; AES公司擁有一個固定的塊大小的128位和關鍵尺寸為128 , 192或256位,而Rijndael演算法可以指定與關鍵和塊大小在任何多的32位,最低的128位,最高為256位。
由於在計算1位元組等於8位,固定塊大小的128位通常是八分之一百二十八= 16位元組。 AES公司經營的4 × 4陣列的位元組,稱為狀態( Rijndael演算法版本與較大的塊大小有額外的列在該州) 。 AES公司的計算大多數都是在一個特殊的有限領域。
在密碼中指定的重復處理步驟,用於彌補輪打出變革之間的輸入純文本和最終輸出的密碼文字。一套扭轉輪適用於變換密碼的文字回到原來的純文字使用相同的加密密鑰。
『肆』 Rijndael演算法是否存在弱密鑰
Rijndael,在高級加密標准(AES)中使用的基本密碼演算法。
概述
(美國)國家標准技術研究所(NIST)選擇Rijndael作為美國政府加密標准(AES)的加密演算法,AES取代早期的數據加密標准(DES)。Rijndael由比利時計算機科學家Vincent Rijmen和Joan Daemen開發,它可以使用128位,192位或者256位的密鑰長度,使得它比56位的DES更健壯可靠。Rijndael也有一個非常小的版本(52位),合適用在蜂窩電話、個人數字處理器(PDA)和其他的小設備上。
近似讀音:Rijn [rain] dael [del] (萊恩戴爾)
Rijn 來源 Rhine [萊茵河]的荷蘭語(Dutch)發音。
dael 是常用的人名 這詞是兩個科學家的名字各出一段拼成的。
『伍』 Rijndael演算法、AES
Rijndael是以比利時發明人Vincent Rijmen, Joan Daemen的名字命名的演算法名。
AES是美國國家標准和技術協會的"高級加密標准"的標准。
Rijndael演算法發明人在1999年9月提交演算法到AES標准審議,和其他15個演算法競賽經過3輪論證勝出,成為AES2標准演算法,並在2001年公布。
現在Rijndeal和AES演算法基本同義。但說Rijndeal更注重的流程思路及原理的同一類演算法,而AES是連參數都被固定精確,可以復制出結果的標准文檔。
『陸』 128位高度加密法是什麼啊!
所謂對稱演算法就是指加密和解密過程均採用同一把密鑰。如DES,3DES,AES等演算法都屬於對稱演算法。下面會對這幾種有代表性的演算法一一做介紹。
DES演算法
DES(Data Encryption Standard)是一種經典的對稱演算法。其數據分組長度為64位,使用的密鑰為64位,有效密鑰長度為56位(有8位用於奇偶校驗)。它由IBM公司在70年代開發,經過政府的加密標准篩選後,於1976年11月被美國政府採用,隨後被美國國家標准局和美國國家標准協會(American National Standard Institute, ANSI) 承認。
該技術演算法公開,在各行業有著廣泛的應用。DES演算法從公布到現在已有20多年的歷史,隨著計算機能力的飛速發展,DES的56位密鑰長度顯得有些短了。現在,已經有可能通過窮舉的方法來對其進行攻擊。但是除此以外,還沒有發現窮舉以外的能有效破譯DES的方法。
三重DES
DES演算法現在已經不能提供足夠的安全性,因為其有效密鑰只有56位。因此,後來又提出了三重DES(或稱3DES),該方法的強度大約和112比特的密鑰強度相當。
這種方法用兩個密鑰對明文進行三次運算。設兩個密鑰是K1和K2,其演算法的步驟:
1. 用密鑰K1進行DES加密。
2. 用K2對步驟1的結果進行DES解密。
3. 用步驟2的結果使用密鑰K1進行DES加密。
13. AES演算法
1997年1月美國國家標准和技術研究所(NIST)宣布徵集新的加密演算法。2000年10月2日,由比利時設計者Joan Daemen和Vincent Rijmen設計的Rijndael演算法以其優秀的性能和抗攻擊能力,最終贏得了勝利,成為新一代的加密標准AES(Advanced Encryption Standard)。
Rijndael加密:
Rijndael是一個密鑰迭代分組密碼,包含了輪變換對狀態的重復作用。輪數Nr 的值取決於分組和密鑰的長度。對於AES,當密鑰長度為128比特時,Nr =10;當密鑰長度為192比特時,Nr =12;當密鑰長度為256比特時,Nr =14。
Rijndael演算法的加密過程如圖1所示。它包括一個初始密鑰加法,記作AddRoundKey,接著進行Nr-1次輪變換(Round),最後再使用一個輪變換(FinalRound)。
輪變換由4個步驟組成:SubBytes,ShiftRows,MixColumns和AddRoundKey。最後一輪與前Nr -1次輪變換稍有不同,省掉了其中的MixColumns步驟。
步驟SubBytes是Rijndael演算法中唯一的非線性變換。
步驟ShiftRows是一個位元組換位,它將狀態中的行按照不同的偏移量進行循環移位。使第i 行第j 位的位元組移動到位置(j -Ci)mod Nb,移動偏移量Ci 的值依賴於Nb 的取值。其中Nb =分組長度/32,對於AES,Nb 取固定長度4。
步驟MixColumns是作用在狀態各列的置換演算法。
密鑰加法AddRoundKey將狀態與一個輪密鑰進行異或。輪密鑰是由密碼密鑰通過密鑰編排方案[1]導出。輪密鑰的長度等於分組的長度。
Rijndael解密:
Rijndael解密演算法有2種形式。一種是直接解密演算法,即直接利用步驟InsubBytes,InvShiftRows,InvMixColumns和AddRoundKey的逆並倒置其次序對數據進行解密。
另一種是等價解密演算法。等價解密演算法有利於有效實現良好的運算次序。
『柒』 Rijndael 演算法流程和參數
最近我在項目中遇到了Rijndael演算法進行加密的場景,使用它作為一種對稱加密的手段防禦網路攻擊,下面說一下他的流程,部分圖解是手寫然後掃描出來的。
Rijndael演算法是AES演算法的一種,是一種分組加密模式,也就是說把明文分成定長的若干段,用定長的密鑰進行加密計算。下圖中綠色矩陣代表k密鑰(key),黃色矩陣代表明文或者狀態(state)。
Rijndael流程是由四種基本的運算組成的,這四種運算以特定的順序進行循環,對初始的明文和密鑰進行計算,數據的形式是矩陣,矩陣中的每一個元素都是一個位元組(8 bits)的16進製表示,比如128bits的數據用4×4的矩陣表示,那麼每一個元素就佔有8 bits,也就是一個位元組,分成上半位元組(4 bits)和下半位元組(4 bits),就得到了諸如"a0", "c6"此類的數據,那麼128bits的明文和密鑰就可以用矩陣表示並且進行計算。
首先介紹總體流程,其中具有循環:
中間循環模塊的循環次數和密鑰與密文塊的長度有關:128bits密鑰--10輪循環、192bits--12輪循環、256bits--14輪循環。
可以看到子環節有四種:subBytes, shiftRows, mixColumns, addRoundKey,下面手畫的圖中分別用[1], [2], [3], [4]方框去在圖中進行標記。值得注意的是初始的處理和尾輪循環都是不太一樣的,不是完整的四個子環節。
【1】將元素的高半位元組和低半位元組作為x y坐標,映射S-box中的元素,進行矩陣的整體替換
【2】將第i行(從0行開始)的元素向左推,被推出的元素放在右側
需要注意的是每次經過步驟【4】,使用的key都是不同的,初始的key經過計算不斷的變化,這個過程也叫做計運算元密鑰:
計運算元密鑰的第一列的步驟如下:
輸入輸出的參數可以參照一些工具網站,可以提供加密的計算服務
『捌』 【密碼學筆記】第3部分 對稱密碼
跟諸位大牛相比,筆者閱歷尚淺、經驗不足,筆記中若有錯誤,還需繼續修正與增刪。歡迎大家的批評與指正。
查看上一篇請點擊以下鏈接: 【密碼學筆記】第2部分 歷史上的密碼
1. XOR運算
2. 一次性密碼本
3. 對稱密碼演算法
3.1 DES
3.2 三重DES
3.3 AES
3.4 Rijndael
4. 對稱密碼的選擇
5. 對稱密碼的評價
參考書目
XOR運算,又稱為 異或 運算,運算結果是 同0異1 。
對同一個比特序列進行兩次XOR之後就會回到最初的狀態,因此XOR運算可用於對稱密碼的加密和解密。
一次性密碼本(又稱為 維納密碼 )是一種非常簡單的密碼,它的原理是「 將明文與一串隨機的比特序列進行XOR運算 」。
一次性密碼本是無法破譯的。 這是因為在對它嘗試解密的過程中,所有的排列組合都會出現,既會包含規則字元串,也會包含英文單詞,還會包含亂碼。由於明文中所有可能的排列組合都會出現,因此 我們無法判斷其中哪一個才是正確的明文 。
一次性密碼本是一種非常不實用的密碼。 原因如下:
a. 密鑰的配送 。( 最大的問題 )如果能夠有一種方法將密鑰安全地發送出去,那麼就可以用同樣的方法安全地發送明文。
b. 密鑰的保存 。 密鑰的長度必須和明文的長度相等。 如果能夠有辦法安全保存與明文一樣長的密鑰,那就有辦法安全保存明文本身。
c. 密鑰的重用 。在一次性密碼本中絕對不能重用過去用過的隨機比特序列,因為作為密鑰的比特序列一旦泄露,過去所有的機密通信內容將全部被解密。
d. 密鑰的同步 。在通信過程中,發送者和接收者的密鑰的比特序列不允許有任何錯位,否則錯位的比特後的所有信息都將無法解密。
e. 密鑰的生成 。一次性密碼本需要生成大量的隨機數,這里的隨機數並不是通過計算機程序生成的偽隨機數,而必須是無重現性的真正隨機數。
DES是一種將64比特的明文加密成64比特的密文的對稱密碼演算法,它的密鑰長度是56比特。
DES是以64比特的明文(比特序列)為一個單位來進行加密的,這個64比特的單位稱為 分組 。以分組為單位進行處理的密碼演算法稱為 分組密碼 。
DES每次只能加密64比特的數據,如果要加密的明文比較長,就需要對DES加密進行迭代,而迭代的具體方式就稱為 模式(mode) 。
DES的基本結構又稱為 Feistel網路 ,這一結構不僅被用於DES,在其他很多密碼演算法中也有應用。在Feistel網路中,加密的各個步驟稱為 輪(round) ,整個加密過程就是進行若干次輪的循環。下圖展現的是Feistel網路中一輪的計算流程。DES是一種16輪循環的Feistel網路。
一輪的具體計算步驟 如下:
a. 將輸入的數據等分為左右兩部分;
b. 將輸入的右側直接發送到輸出的右側;
c. 將輸入的右側發送到輪函數;
d. 輪函數根據右側數據和子密鑰,計算出一串看上去是隨機的比特序列;
e. 將上一步得到的比特序列與左側數據進行XOR運算,並將結果作為加密後的左側。
我們需要用不同的子密鑰對一輪的處理重復若干次,並在每兩輪處理之間將左側和右側的數據對調。
Feistel網路的解密操作只要按照相反的順序來使用子密鑰就可以完成了。
Feistel網路的性質 :
a. 輪數可以任意增加;
b. 加密時無論使用任何函數作為輪函數都可以正確解密(即使該函數不存在反函數);
c. 加密和解密可以用完全相同的結構來實現。
綜上所述,無論是任何輪數、任何輪函數,Feistel網路都可以 用相同的結構實現加密和解密 ,且加密的結果必定能夠正確解密。
三重DES是為了增加DES的強度,將DES重復3次所得到的一種密碼演算法,也稱為 TDEA ,通常縮寫為 3DES 。
明文經過三次DES處理才能變成最後的密文,由於DES密鑰的長度實質上是56比特,因此三重DES的密鑰長度就是168比特。
三重DES並不是進行三次DES加密,而是 加密→解密→加密 的過程,目的是 讓三重DES能夠兼容普通的DES ,當所有密鑰都相同時,三重DES也就等同於普通的DES。
盡管三重DES目前還被銀行等機構使用,但其處理速度不高,除了特別重視向下兼容性的情況以外,很少被用於新的用途。
AES是取代其前任標准(DES)而成為新標準的一種對稱密碼演算法。全世界的企業和密碼學家提交了多個對稱密碼演算法作為AES的候選,最終選出了一種名為 Rijndael 的對稱密碼演算法,並將其確定為AES。
AES的選拔並不僅僅考慮一種演算法是否存在弱點,演算法的速度、實現的容易性等也都在考慮范圍內。此外,這種演算法還必須能夠在各種平台上有效工作。
Rijndael是由比利時密碼學家設計的 分組密碼演算法 ,被選為新一代的標准密碼演算法——AES。
和DES一樣,Rijndael演算法也是由多個 輪 構成的,其中每一輪分為 SubBytes 、 ShiftRows 、 MixColumns 和 AddRoundKey 共4個步驟。DES使用Feistel網路作為其基本結構,而Rijndael使用的是 SPN結構 。
加密過程 :
a. 首先,需要 逐個位元組 地對16位元組的輸入數據進行SubBytes處理,即以每個位元組的值(0~255)為索引,從一張擁有256個值的 替換表 (S-Box)中查找出對應值( 類似於簡單替換密碼 )。
b. 進行ShiftRows處理,即以4位元組為單位的 行(row) 按照一定的規則向左平移,且每一行平移的位元組數是不同的。
c. 進行MixColumns處理,即對一個4位元組的值進行比特運算,將其變為另外一個4位元組值。
d. 最後,將MixColumns的輸出與輪密鑰進行 XOR ,即進行AddRoundKey處理。至此,Rijndael的一輪就結束了。實際上,在Rijndael中需要重復進行10~14輪計算。
在SPN結構中, 輸入的所有比特在一輪中都會被加密 。和每一輪都只加密一半輸入的比特的Feistel網路相比,這種方式的優勢在於 加密所需要的輪數更少 。此外,這種方式還有一個優勢,即 SubBytes、ShiftRows和MixColumns可以分別以位元組、行和列為單位進行並行計算 。
在Rijndael的 加密 過程中,每一輪所進行的處理為:
SubBytes→ShiftRows→MixColumns→AddRoundKey
而在 解密 時,則是按照相反的順序來進行的,即:
AddRoundKey→InvMixColumns→InvShiftRows→InvSubBytes
解密過程 :
Rijndael演算法背後有著 嚴謹的數學結構 ,即從明文到密文的計算過程可以全部用公式來表達,這是以前任何密碼演算法都不具備的性質。如果Rijndael的公式能夠通過數學運算來求解,那也就意味著Rijndael能夠通過數學方法進行破譯,這也為新的攻擊方式的產生提供了可能。
(1) 因為現在用暴力破解法已經能夠在現實的時間內完成對DES的破譯, DES不應再用於任何新的用途 。但是也需要保持與舊版本軟體的兼容性。
(2) 盡管在一些重視兼容性的環境中會使用三重DES,但 我們也沒有理由將三重DES用於新的用途 ,它會逐漸被AES所取代。
(3) 現在應該使用的演算法是AES(Rijndael) ,因為它安全、快速,而且能夠在各種平台上工作。
(4) AES最終候選演算法應該可以作為AES的備份 ,因為這些密碼演算法也都經過了嚴格的測試,且沒有發現任何弱點。
(5) 一般來說, 我們不應該使用任何自製的密碼演算法 ,而是應該使用AES。
優點 :
使用一種密鑰空間巨大,且在演算法上沒有弱點的對稱密碼,就可以通過密文來確保明文的機密性。 巨大的密鑰空間能夠抵禦暴力破解,演算法上沒有弱點可以抵禦其他類型的攻擊。
不足 :
a. 用對稱密碼進行通信時,還會出現 密鑰的配送問題 ,即如何將密鑰安全地發送給接受者。為了解決密鑰配送問題,需要 公鑰密碼技術 。
b. 盡管使用對稱密碼可以確保機密性,但僅憑這一點還並不能完全放心。 例如發送者可能發送偽造的密文,並利用解密時返回的錯誤來盜取信息。
衷心感謝您的閱讀。
查看下一篇請點擊以下鏈接: 【密碼學筆記】第4部分 分組密碼的模式
『玖』 rijndaelmanaged c#是什麼演算法
AES 高級加密標准(英語:Advanced Encryption Standard,縮寫:AES),在密碼學中又稱Rijndael加密法
Rijndael(讀作rain-dahl)是由美國國家標准與技術協會(NIST)所選的高級加密標准(AES)的候選演算法。這個標准用來替代原先的DES,已經被多方分析且廣為全世界所使用。
Rijndael 演算法首先是一個密鑰分組加密的演算法,通過置換(permutations )和替換(substitutions)迭代加密,進過多輪操作形成密文。
AES算是Rijndael演算法的一種特殊實現,選的分組為128bit(16位元組),密鑰可以使用128、192 和 256bit三種,而Rijndael使用的密鑰和區塊長度可以是32位的整數倍,以128位為下限,256比特為上限。加密過程中使用的密鑰是由Rijndael密鑰生成方案產生。
AES加密過程是在一個4×4的位元組矩陣上運作,這個矩陣又稱為「狀態(state)」,其初值就是一個明文區塊(矩陣中一個元素大小就是明文區塊中的一個Byte)。(Rijndael加密法因支持更大的區塊,其矩陣行數可視情況增加)加密時,各輪AES加密循環(除最後一輪外)均包含4個步驟:
AddRoundKey — 矩陣中的每一個位元組都與該次輪秘鑰(round key)做XOR運算;每個子密鑰由密鑰生成方案產生。
SubBytes — 通過非線性的替換函數,用查找表的方式把每個位元組替換成對應的位元組。
ShiftRows — 將矩陣中的每個橫列進行循環式移位。
MixColumns — 為了充分混合矩陣中各個直行的操作。這個步驟使用線性轉換來混合每列的四個位元組。
『拾』 數據加密原理和演算法是什麼
拜託,數據加密本身是一門很大的學問,不可能只用一兩句話說清楚的。
數據加密的演算法多種多樣,而且隨著科技的發展不斷推陳出新。目前PC上最常用的是rijndael演算法,該演算法已被美國政府採納為標准加密演算法,簡稱AES。在此之前,美國政府採用的是另一種演算法,稱為DES,近年來隨著解密技術的不斷進步,DES已逐漸被淘汰。
加密的原理呢,不同的演算法也各有不同,一般都包括異或、移位、替換等操作。加密演算法大體上分為流水加密和塊式加密兩大類,PC上採用的都是塊式加密,就是把原文分成相同長度的數據塊,例如每32位元組分為一塊,然後對每一塊單獨進行加密。
其他的太多了,說不完,而且我也不完全懂,想學的話你自己買書去看吧。