導航:首頁 > 源碼編譯 > aes演算法的准則

aes演算法的准則

發布時間:2023-05-22 18:32:38

『壹』 aes演算法是什麼

AES:Advanced Encryption Standard(高級加密標准),是美國國家標准與技術研究所用於加密電子數據的規范,該演算法匯聚了設計簡單、密鑰安裝快、需要的內存空間少、在所有的平台上運行良好、支持並行處理並且可以抵抗所有已知攻擊等優點。

AES是一個迭代的、對稱密鑰分組的密碼,它可以使用128、192 和 256 位密鑰,並且用 128 位(16位元組)分組加密和解密數據。

AES具有應用范圍廣

等待時間短、相對容易隱藏、吞吐量高等優點,在性能等各方面都優於WEP演算法。利用此演算法加密,WLAN的安全性將會獲得大幅度提高。AES演算法已經在802.11i標准中得到最終確認,成為取代WEP的新一代的加密演算法。但是由於AES演算法對硬體要求比較高,因此AES無法通過在原有設備上升級固件實現,必須重新設計晶元。

以上內容參考:網路-AES技術

『貳』 aes是什麼意思

aes的意思:AES技術是一種對稱的分組加密技術,使用128位分組加密數據,提供比WEP/TKIPS的RC4演算法更高的加密強度。

AES的加密碼表和解密碼表是分開的,並且支持子密鑰加密,這種做法優於以前用一個特殊的密鑰解密的做法。AES演算法支持任意分組大小,初始時間快。特別是它具有的並行性可以有效地利用處理器資源。

AES特點:

AES具有應用范圍廣、等待時間短、相對容易隱藏、吞吐量高等優點,在性能等各方面都優於WEP演算法。利用此演算法加密,WLAN的安全性將會獲得大幅度提高。

AES演算法已經在802.11i標准中得到最終確認,成為取代WEP的新一代的加密演算法。但是由於AES演算法對硬體要求比較高,因此AES無法通過在原有設備上升級固件實現,必須重新設計晶元。

『叄』 AES演算法原理

AES加密過程是在一個4×4的位元組矩陣上運作,這個矩陣又稱為「體(state)」,其初值就是一個明文區塊(矩陣中一個
元素大小就是明文區塊中的一個Byte)。(Rijndael加密法因支持更大的區塊,其矩陣行數可視情況增加)加密時,
各輪AES加密循環(除最後一輪外)均包含4個步驟:

矩陣中的各位元組通過一個8位的S-box進行轉換。這個步驟提供了加密法非線性的變換能力。S-box與GF(28)上的乘法反元素有關,已知具有良好的非線性特性。為了避免簡單代數性質的攻擊,S-box結合了乘法反元素及一個可逆的仿射變換矩陣建構而成。此外在建構S-box時,刻意避開了固定點與反固定點,即以S-box替換位元組的結果會相當於錯排的結果。AES演算法中的S盒如圖2.2所示
例如一個位元組為0x19,經過S盒變換查找n(1,9) = 0xd4,所以就替換為0xd4。

ShiftRows描述矩陣的行操作。在此步驟中,每一行都向左循環位移某偏移量。在AES中(區塊大小128位),第一行維持不變,第二行里的每個位元組都向左循環移動一格。同理,第三行及第四行向左循環位移的偏移量就分別是2和3。經過ShiftRows之後,矩陣中每一豎列,都是由輸入矩陣中的每個不同列中的元素組成。

在MixColumns步驟,每一列的四個位元組通過線性變換互相結合。每一列的四個元素分別當作 的系數,合並即為GF(28)中的一個多項式,接著將此多項式和一個固定的多項式在molo 下相乘。此步驟亦可視為Rijndael有限域之下的矩陣乘法。MixColumns函數接受4個位元組的輸入,輸出4個位元組,每一個輸入的位元組都會對輸出的四個位元組造成影響。因此ShiftRows和MixColumns兩步驟為這個密碼系統提供了擴散性。

AES演算法利用外部輸入密鑰K(密鑰串的字數為Nk),通過密鑰的擴展程序得到共計4(Nr+1)字的擴展密鑰。它涉及如下三個模塊:
(1)位置變換(rotword)——把一個4位元組的序列[A,B,C,D]變化成[B,C,D,A];
(2)S盒變換(subword)——對一個4位元組進行S盒代替;
(3)變換Rcon[i]——Rcon[i]表示32位比特字[xi-1,00,00,00]。這里的x是(02),如 Rcon[1]=[01000000];Rcon[2]=[02000000];Rcon[3]=[04000000]……
擴展密鑰的生成:擴展密鑰的前Nk個字就是外部密鑰K;以後的字W[[i]]等於它前一個字W[[i-1]]與前第Nk個字W[[i-Nk]]的「異或」,即W[[i]]=W[[i-1]]W[[i- Nk]]。但是若i為Nk的倍數,則W[i]=W[i-Nk]Subword(Rotword(W[[i-1]]))Rcon[i/Nk]。

『肆』 aes演算法步驟

aes演算法由四個不同的變換組成,包括一個置換和三個替代:

位元組代替(SubBytes):用一個S盒完成分組的位元組到位元組的代替。

行移位(ShiftRows):一個簡單的置換。

列混淆(MixColumns):利用域GF(28)上的算術特性的一個代替。

輪密鑰加(AddRoundKey):當前分組和擴展密鑰的一部分進行按位XOR(異或)。

輸入的密鑰被擴展成由44個32位子所組成的數組w[i],由上圖可知,每輪有四個不同的字(128位)作為該輪到密鑰。

對加密和解密的操作,演算法由輪密鑰加開始,接著執行9輪迭代運算,每輪都包含所有4個階段的代替,接著是第10輪的三個階段。

僅僅在輪密鑰加階段使用密鑰。由於這個原因,該演算法以輪密鑰加開始,以輪密鑰加結束。

『伍』 對稱加密演算法AES

AES(Advanced Encryption Standard),高級加密標准,對稱演算法,是下一代的加密演算法標准,速度快,安全級別高,在21世紀AES 標準的一個實現是 Rijndael 演算法;
AES加密演算法是密碼學中的高級加密標准,該加密演算法採用對稱分組密碼體制,密鑰長度的最少支持為128、192、256,分組長度128位,演算法應易於各種硬體和軟體實現。這種加密演算法是美國聯邦政府採用的區塊加密標准,這個標准用來替代原先的DES,已經被多方分析且廣為全世界所使用。
它適用於敏感內容進行加密傳輸,防止被竊取。

『陸』 什麼是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輪則不再需要進行列混淆。

進行解密的時候,需要進行逆向位元組替代,逆向行移位、逆向列混淆和輪密鑰加。

『柒』 Advanced Encryption Standard(AES) 加密演算法簡介

AES(The Advanced Encryption Standard)是美國國家標准與技術研究所用於加密電子數據的規范。它被預期能成為人們公認的加密包括金融、電信和政府數字信息的方法。美國國家標准與技術研究所(NIST)在2002年5月26日建立了新的高級數據加密標准(AES)規范。AES是一個新的可以用於保護電子數據的加密演算法。

1998年National Institute of Standards and Technology(NIST)開始AES第一輪分析、測試和徵集,共產生了15個候選演算法。其中包括CAST-256, CRYPTON, DEAL, DFC, E2, FROG, HPC, LOKI97, MAGENTA, MARS,RC6, Rijndael, SAFER+, Serpent, Twofish。 其中五個候選演算法進入第二輪: MARS, RC6, Rijndael, Serpent, andTwofish. 1999年3月完成了第二輪AES2的分析、測試,最終確認Rijndael演算法獲得勝利。NIST於2002年5月26日制定了新的高級加密標准(AES)規范。

AES是典型的對稱加密演算法,應用廣泛。數據發信方將明文和加密密鑰一起經過特殊加密演算法處理後,使其變成復雜的加密密文發送出去。收信方收到密文後,若想解讀原文,則需要使用加密用過的密鑰及相同演算法的逆演算法對密文進行解密,才能使其恢復成可讀明文。在對稱加密演算法中,使用的密鑰只有一個,發收信雙方都使用這個密鑰對數據進行加密和解密,這就要求解密方事先必須知道加密密鑰。其優點是對稱加密演算法的特點是演算法公開、計算量小、加密速度快、加密效率高。不足之處是,雙方都使用同樣鑰匙,安全性得不到保證。

在此扯一下題外話,不對稱加密演算法,比如著名的RSA演算法,使用兩把完全不同但又是完全匹配的一對鑰匙----公鑰和私鑰。在使用不對稱加密演算法加密文件時,只有使用匹配的一對公鑰和私鑰,才能完成對明文的加密和解密過程。加密明文時採用公鑰加密,解密密文時使用私鑰才能完成,而且加密者知道收信方的公鑰,只有解密者才是唯一知道自己私鑰的人。

AES演算法基於排列和置換運算。排列是對數據重新進行安排,置換是將一個數據單元替換為另一個。AES使用幾種不同的方法來執行排列和置換運算。AES是一個迭代的、對稱密鑰分組的密碼,它可以使用128、192和256位密鑰,並且用128位(16位元組)分組加密和解密數據。與公共密鑰加密使用密鑰對不同,對稱密鑰密碼使用相同的密鑰加密和解密數據。通過分組密碼返回的加密數據的位數與輸入數據相同。迭代加密使用一個循環結構,在該循環中重復置換和替換輸入數據。密碼學簡介據記載,公元前400年,古希臘人發明了置換密碼。1881年世界上的第一個電話保密專利出現。在第二次世界大戰期間,德國軍方啟用「恩尼格瑪」密碼機,密碼學在戰爭中起著非常重要的作用。

AES加密過程是在一個4×4的位元組矩陣上運作,這個矩陣又稱為「state」,其初值就是一個明文區塊(矩陣中一個元素大小就是明文區塊中的一個Byte)。加密時,各輪AES加密循環(除最後一輪外)均包含4個步驟:

1.AddRoundKey — 矩陣中的每一個位元組都與該次round key做XOR運算;每個子密鑰由密鑰生成方案產生。
2.SubBytes — 通過一個非線性的替換函數,用查找表的方式把每個位元組替換成對應的位元組。
3.ShiftRows — 將矩陣中的每個橫列進行循環式移位。
4.MixColumns — 為了充分混合矩陣中各個直行的操作。這個步驟使用線性轉換來混合每內聯的四個位元組。

『捌』 加密演算法之AES

AES採用分組密碼體制,首先將明文分成以16個位元組長度為基準位元組段,如果最後不足16位元組則同樣使用填充。然後分組對每段位元組段進行加密得到密文,再將最後得到的密文拼接在一起形成最終的密文。AES演算法的密鑰長度可以分為128位,256位,512位。

整個加密過程如下圖所示:

功能實現,在客戶端中將明文進行AES加密後通過TCP鏈接發送至另一個客戶端,另一端通過密鑰對密文進行解密得到明文

『玖』 AES加密演算法原理

AES是分組密鑰,演算法輸入128位數據,密鑰長度也是128位。用Nr表示對一個數據分組加密的輪數(加密輪數與密鑰長度的關系如表1所列)。每一輪都需要一個與輸入分組具有相同長度的擴展密鑰Expandedkey(i)的參與。由於外部輸入的加密密鑰K長度有限,所以在演算法中要用一個密鑰擴展程序(Keyexpansion)把外部密鑰K擴展成更長的比特串,以生成各輪的加密和解密密鑰。x0dx0a1.1圈變化x0dx0aAES每一個圈變換由以下三個層組成:x0dx0a非線性層——進行Subbyte變換;橡螞x0dx0a線行混合層——進行ShiftRow和MixColumn運算;x0dx0a密鑰加層——進行AddRoundKey運算。x0dx0a① Subbyte變換是作用在狀態中每個位元組上態氏的一種非線性位元組轉換,可以通過計算出來的S盒進行映射。x0dx0ax0dx0a② ShiftRow是一個位元組換位。它將狀態中的行按照不同的偏移量進行循環移位,而這個偏移量也是根據Nb的不同而選擇的[3]。x0dx0ax0dx0a③ 在MixColumn變換中,把狀態中的每一列看作GF(28)上的多項式a(x)與固定多項式c(x)相乘的結果。 b(x)=c(x)*a(x)的系數這樣計算:x0dx0a*運算不是普通的乘法運算,而是特殊的運算,帆如散即 b(x)=c(x)·a(x)(mod x4+1) 對於這個運算 b0=02。a0+03。a1+a2+a3 令xtime(a0)=02。a0x0dx0a其中,符號「。」表示模一個八次不可約多項式的同餘乘法[3]。x0dx0ax0dx0a對於逆變化,其矩陣C要改變成相應的D,即b(x)=d(x)*a(x)。x0dx0a④ 密鑰加層運算(addround)是將圈密鑰狀態中的對應位元組按位「異或」。x0dx0ax0dx0a⑤ 根據線性變化的性質[1],解密運算是加密變化的逆變化。

『拾』 什麼是AES對稱加密

AES加密標准又稱為高級加密標准Rijndael加密法,是美國國家標准技術研究所NIST旨在取代DES的21世紀的加密標准。AES的基本要求是,採用對稱分組密碼體制,密鑰長度可以為128、192或256位,分組長度128位,演算法應易在各種硬體和軟體上實現。1998年NIST開始AES第一輪分析、測試和徵集,共產生了15個候選演算法

閱讀全文

與aes演算法的准則相關的資料

熱點內容
網盤忘記解壓碼怎麼辦 瀏覽:852
文件加密看不到裡面的內容 瀏覽:651
程序員腦子里都想什麼 瀏覽:430
oppp手機信任app在哪裡設置 瀏覽:185
java地址重定向 瀏覽:268
一年級下冊摘蘋果的演算法是怎樣的 瀏覽:448
程序員出軌電視劇 瀏覽:88
伺服器系統地址怎麼查 瀏覽:54
解壓游戲發行官 瀏覽:601
國外小伙解壓實驗 瀏覽:336
頂級大學開設加密貨幣 瀏覽:437
java重載與多態 瀏覽:528
騰訊應屆程序員 瀏覽:942
一鍵編譯程序 瀏覽:129
語音加密包哪個好 瀏覽:341
有什麼學習高中語文的app 瀏覽:283
安卓手機的表格里怎麼打勾 瀏覽:411
阿里雲伺服器有網路安全服務嗎 瀏覽:970
超解壓兔子視頻 瀏覽:25
單片機怎麼測負脈沖 瀏覽:176