freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)論文aes加密算法-閱讀頁

2025-07-13 11:22本頁面
  

【正文】 應(yīng)使得密鑰的每一位數(shù)字影響到密文的許多位數(shù)字以防止對密鑰進(jìn)行逐段破譯,同時(shí)明文的每一位數(shù)字也應(yīng)影響密文的許多位數(shù)字以便隱蔽明文數(shù)字統(tǒng)計(jì)特性。密碼分析者尋求這些冗余度將會更難。一個(gè)簡單的換位密碼,如列換位體制,只簡單地重新排列明文字符。算法比較分析自DES算法1977年首次公諸于世以來,學(xué)術(shù)界對其進(jìn)行了深入的研究,圍繞它的安全性等方面展開了激烈的爭論。b. DES的密鑰的位數(shù)太短,只有56比特,而且各次迭代中使用的密鑰是遞推產(chǎn)生的,這種相關(guān)必然降低密碼體制的安全性, 在現(xiàn)有技術(shù)下用窮舉法尋找密鑰已趨于可行。 迄今為止, DES算法中的S盒8個(gè)選擇函數(shù)矩陣的設(shè)計(jì)原理因美國政府方面的干預(yù), 不予公布。S盒設(shè)計(jì)中利用了重復(fù)因子, 致使加密或解密變換的密鑰具有多值性, 造成使用DES合法用戶的不安全性。這樣, DES的安全性幾乎全部依賴于S盒,攻擊者只要集中力量對付S盒就行了。DES算法要提高加密強(qiáng)度(例如增加密鑰長度), 則系統(tǒng)開銷呈指數(shù)增長。相對DES算法來說,AES算法無疑解決了上述問題,主要表現(xiàn)在如下幾方面: ,在有反饋模式、無反饋模式的軟硬件中,Rijndael都表現(xiàn)出非常好的性能。,分組長度和密鑰長度設(shè)計(jì)靈活。e. AES的密鑰長度比DES大,它也可設(shè)定為32比特的任意倍數(shù),最小值為128比特,最大值為256比特, 所以用窮舉法是不可能破解的。f. AES算法的設(shè)計(jì)策略是寬軌跡策略(Wide Trail Strategy, WTS)??傊?,AES算法匯聚了安全性、效率高、易實(shí)現(xiàn)性和靈活性等優(yōu)點(diǎn),是一種較DES更好的算法??旄叩?AES能提供更快的數(shù)據(jù)加密方法,且與各種不同的產(chǎn)品兼容 速度快,安全級別高AES 正日益成為加密各種形式的電子數(shù)據(jù)的實(shí)際標(biāo)準(zhǔn)。 慢低低分組比較短、密鑰太短、密碼生命周期短、運(yùn)算速度較慢 適用于加密大量數(shù)據(jù)的場合 AES算法的安全性現(xiàn)代密碼分析技術(shù)包括差分密碼分析技術(shù)、線性密碼分析技術(shù)和密鑰相關(guān)的密碼分析,它改善了破譯速度,但是破譯速度還是很慢。Eli Biham和Adi Shamir提出了差分密碼分析方法,該方法比窮舉攻擊有效。簡單地,選擇具有固定差分的一對明文,這兩個(gè)明文可隨機(jī)選取,只要求他們符合特定差分條件,密碼分析者甚至不必知道他們的值,然后使用輸出密文中的差分,按照不同的概率分配給不同的密鑰。但是,這里有幾個(gè)要點(diǎn)要特別注意。差分分析所要求的巨大時(shí)間量和數(shù)據(jù)量幾乎超過了每個(gè)人的承受能力。其次,這首先是一種選擇明文攻擊,為了得到有用的明文一密文對,必須對所有的明文一密文對進(jìn)行篩選。線性密碼分析是Mitsuru Matusi提出的,這種攻擊使用線性近似值來描繪分組密碼的操作。這就是概率位p的線性近似值。得到的數(shù)據(jù)越多,猜測越可靠。線性分析極大的依賴于S盒的結(jié)構(gòu),而AES的S盒有良好非線性和較高的數(shù)學(xué)復(fù)雜度。它將輪變換分成兩個(gè)可逆步驟:⑴ 一個(gè)局部的非線性變換。⑵ 一個(gè)可提供高度擴(kuò)散性的線性混合變換。考慮到與密鑰有關(guān)的密碼攻擊,在密鑰擴(kuò)展中還運(yùn)用了字代替(SubWord)和字旋轉(zhuǎn)(RotWord)訪法為子密鑰提供了高擴(kuò)散性和混亂性。現(xiàn)有已知的強(qiáng)力攻擊主要有窮盡密鑰搜索攻擊、字典攻擊、查表攻擊和時(shí)間存儲權(quán)衡攻擊,這些攻擊的共同點(diǎn)是可作用于任何分組密碼,攻擊的復(fù)雜度只依賴于分組長度和密鑰長度。總之,對所有已知攻擊而言,AES是安全的。例如,S盒構(gòu)造中有限域逆操作的使用導(dǎo)致了線性逼近和差分分布表中的各項(xiàng)趨近于均勻分布,這就為抵御差分和線性攻擊提供了安全性。顯然,對AES現(xiàn)在還不存在快于窮盡密鑰搜索的攻擊。經(jīng)過對DES 算法和AES 算法的比較分析,我們可以得出結(jié)論, 后者的效率明顯高于前者, 而且由于AES 算法的簡潔性,使得它的實(shí)現(xiàn)更為容易。AES算法的優(yōu)點(diǎn):速度快??刹⑿羞\(yùn)算,適合于未來處理器和專用芯片實(shí)現(xiàn)。緊致的密碼設(shè)計(jì)結(jié)構(gòu)。局限性:該密碼的局限性與其逆有關(guān)。在軟件實(shí)現(xiàn)上,該密碼及其逆密碼使用不同的代碼或表。3 AES加密算法的實(shí)現(xiàn) 3 AES加密算法的實(shí)現(xiàn) 美國ATamp。C++是具有國際標(biāo)準(zhǔn)的編程語言,通常稱作ANSI/ISO C++。 C++是一種使用非常廣泛的計(jì)算機(jī)編程語言,是一種靜態(tài)數(shù)據(jù)類型檢查的,支持多重編程范式的通用程序設(shè)計(jì)語言。C++被設(shè)計(jì)成給程序設(shè)計(jì)者更多的選擇的語言。C++避免平臺限定或沒有普遍用途的特性。C++被設(shè)計(jì)成無需復(fù)雜的程序設(shè)計(jì)環(huán)境。從編寫程序的難易程度和程序的性能綜合考慮,C++是最佳的選擇。對于VB和Java等語言,代碼在運(yùn)行時(shí)由對應(yīng)的解釋程序解釋,而且每次運(yùn)行程序時(shí)都要將代碼轉(zhuǎn)換為可直接由機(jī)器執(zhí)行的機(jī)器碼,這樣做效率偏低,不僅僅是已編譯過的C++程序運(yùn)行得較快,而且微軟C++編譯器已存在多年,這一事實(shí)意味著微軟的編譯器程序員已經(jīng)把許多優(yōu)點(diǎn)和經(jīng)驗(yàn)集中到編譯器上,以至于它能產(chǎn)生非常高效的機(jī)器碼。 C++ 編寫 AES 類現(xiàn)在我已研究了構(gòu)成 AES 加密算法的各個(gè)成分,我將用 C++ 來實(shí)現(xiàn)它。 private int Nb。 private int Nr。 private byte[,] Sbox。 西安工業(yè)大學(xué)畢業(yè)設(shè)計(jì)(論文) private byte[,] w。 private byte[,] State。數(shù)據(jù)一般用字節(jié)作為基本儲存單元而不是用4字節(jié)的字作為兩個(gè)重要數(shù)據(jù)成員的長度。Nr代表輪數(shù)。密鑰長度依照枚舉參數(shù)KeySize的值被賦值為 6 或 8。輪數(shù)是12或14中的任意一個(gè)并且是基于密碼分析學(xué)理論的。為實(shí)現(xiàn)AES加解密算法,所以本次設(shè)計(jì)的主要接口為Cipher和InvCipher兩個(gè)接口函數(shù)。InvCipher接口主要是用于解密算法的功能實(shí)現(xiàn)。我設(shè)想從應(yīng)用程序中調(diào)用構(gòu)造函數(shù)和方法。我調(diào)用的加密和解密例程如下:()。這里是 AES 類構(gòu)造函數(shù)的代碼為: public Aes(KeySize keySize, byte[] keyBytes){ SetNbNkNr(keySize)。 (, 0)。 //建立S盒 BuildInvSbox()。 //置換輪數(shù) KeyExpansion()。  接下來,你必須將傳入構(gòu)造函數(shù)的字節(jié)拷貝到類域變量中。 (, 0)。現(xiàn)在密鑰擴(kuò)展例程 、Cipher 方法和 InvCipher 方法各自都需要 Sbox[] 和 iSbox[],因此我本來可以在 Cipher 和 InvCipher 兩個(gè)方法中初始化 Sbox[] 并調(diào)用 KeyExpansion 方法,但是將它們放入構(gòu)造函數(shù)會代碼結(jié)構(gòu)更加清晰。正如后面你將看到的,還有另外一個(gè)可供選擇的方法為 Sbox 和 iSbox 表提供值。置換輪常數(shù)表 Rcon 。 Rcon 的賦值代碼 AES構(gòu)造函數(shù)在建立完密鑰調(diào)度表w[]后結(jié)束,而w[]是在 KeyExpansion 方法中完成的。規(guī)范文檔使用一個(gè)假設(shè)的4字節(jié)的字?jǐn)?shù)據(jù)類型。在用 new 操作符為密鑰調(diào)度 表w[]分配空間后,w[]最初的Nk(4,6,或8) 行從被傳遞到構(gòu)造函數(shù)的種子密鑰key[]數(shù)組中獲值。[row,1] = [4*row+1]。[row,3] = [4*row+3]。它需要一些從 byte 到 int 的強(qiáng)制類型轉(zhuǎn)換并轉(zhuǎn)回到 byte,因?yàn)楫惢虿僮鳌癪”是不能定義在 C++ 的 byte 類型上,例如:temp[0] = (byte)( (int)temp[0] ^ (int)[row/Nk,0] )??偟膩碚f,AES構(gòu)造函數(shù)接受一個(gè)密鑰的長度為12192 或 256 位和一個(gè)字節(jié)數(shù)組種子密鑰值。構(gòu)造函數(shù)還創(chuàng)建了四個(gè)表:兩個(gè)由加密和解密方法使用的替換表,一個(gè)輪常數(shù)表,和一個(gè)輪密鑰的密鑰調(diào)度表。Cipher 方法以拷貝明文輸入數(shù)組到狀態(tài)矩陣State[]為開始。在最后一輪時(shí),正如規(guī)范中所說的那樣,MixColumns 調(diào)用被省略了。 for(c=0。 c++) { for(r=0。 r++) { state[r][c] ^= k[r][c]。 for(r=0。 r++) { for(c=0。 c++) { state[r][c] = Sbox[state[r][c]]。請注意 State[r,c] 是用 w[c,r] 來異或并不是w[r,c]。  ShiftRows 方法的代碼如下:void CBm53AES::ShiftRows(unsigned char state[][4])//行移位變換{ unsigned char t[4]。 for(r=1。 r++) { for(c=0。 c++) { t[c] = state[r][(c+r)%4]。 c4。 } }//循環(huán)左移} AES加密流程圖 MixColumns 方法部分代碼如下:void CBm53AES::MixColumns(unsigned char state[][4])//列混合變換{ unsigned char t[4]。 for(c=0。 c++) { for(r=0。 r++) { t[r] = state[r][c]。 r4。 }//進(jìn)行列混合運(yùn)算 }}Cipher 方法其輸入反復(fù)應(yīng)用四個(gè)操作來產(chǎn)生加密的輸出。SubBytes 用某個(gè)替換表中的值替代字節(jié)。 用C++編寫的AES InCipher方法  AES 解密算法背后的基本原則很簡單:解密一個(gè)加密塊,也就是以反向順序還原(Undo)每個(gè)操作?! ES規(guī)范稱解密例程為 InvCipher?! nvSubBytes,InvShiftRows 和 InvMixColumns 方法的代碼和與之有關(guān)的 SubBytes,ShiftRows和 MixColumns 方法的代碼非常接近?! ≌缒憧赡懿聹y到的,iSbox[] 就是還原任何被 Sbox[] 處理的對應(yīng)操作。如果你在 iSbox[] 中找到 0xb7的替代值,你便可得到 0x20。 InvMixColumns 方法還原 MixColumns 的工作,但沒有用顯而易見的方法。它證明逆運(yùn)算是相似的,只是被 0x09,0x0b,0x0d 和 0x0e 乘,如下所示: State[0,c] = 0x0e * State[0,c] + 0x0b * State[1,c] + 0x0d * State[2,c] + 0x09 * State[3,c]State[1,c] = 0x09 * State[0,c] + 0x0e * State[1,c] + 0x0b * State[2,c] + 0x0d * State[3,c]State[2,c] = 0x0d * State[0,c] + 0x09 * State[1,c] + 0x0e * State[2,c] + 0x0b * State[3,c]State[3,c] = 0x0b * State[0,c] + 0x0d * State[1,c] + 0x09 * State[2,c] + 0x0e * State[3,c] 用于 AES 加密算法的所有的操作都是可逆的,因此解密算法本質(zhì)上是加密的所有操作的倒轉(zhuǎn)。分析如下: 權(quán)限分析 為規(guī)范和便于管理與使用,只有系統(tǒng)管理員擁有所有權(quán)限,負(fù)責(zé)系統(tǒng)的日常運(yùn)行,能夠及時(shí)添加或修改數(shù)據(jù)庫中的人員信息,并擁有系統(tǒng)數(shù)據(jù)庫修改權(quán)。用戶信息管理模塊流程為: 進(jìn)入用戶登陸頁面,輸入管理員用戶名和密碼,系統(tǒng)首先判斷數(shù)據(jù)庫中是否存在,不存在則引入出錯(cuò)提示界面,存在則轉(zhuǎn)入所有用戶信息列表,管理員可以進(jìn)行用戶信息管理,對用戶信息可以添加、刪除、修改、查看。設(shè)計(jì)分為三部分:界面設(shè)計(jì)、庫表設(shè)計(jì)以及界面與數(shù)據(jù)庫信息交互設(shè)計(jì)。本系統(tǒng)中使用編輯,在編輯中內(nèi)容安排的一個(gè)原則是文本框的內(nèi)容要與建立的數(shù)據(jù)庫表中的相關(guān)屬性條目相對應(yīng),以便以后的連接查詢操作。初始狀態(tài)僅含有系統(tǒng)管理員的幾條記錄,其余記錄待管理員添加提交存入。 本系統(tǒng)為用戶信息管理模塊。XX大學(xué)畢業(yè)設(shè)計(jì)(論文) 用戶管理模塊示意圖,主要是調(diào)用ACCESS數(shù)據(jù)庫中存儲的管理員的用戶名和密碼,如果輸入正確,進(jìn)入下一步操作,如果錯(cuò)誤,系統(tǒng)提示:輸入的用戶名或密碼不存在。 查詢記錄界面,主要是添加新的用戶信息并保存與數(shù)據(jù)庫中。 刪除記錄界面,主要是對用戶信息進(jìn)行修改,修改完成后保存到數(shù)據(jù)庫。然后我建立數(shù)據(jù)庫db,由于系統(tǒng)中需要存儲管理員信息以及用戶信息,故在db中建立兩張表,MANAGE(管理員表)和USER(用戶信息表)。 設(shè)置USERNAME和PWDUSER表設(shè)置了1個(gè)主鍵和4個(gè)字段,分別是UID、NAME、SEX、AGE、P
點(diǎn)擊復(fù)制文檔內(nèi)容
職業(yè)教育相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1