下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
白盒AES加密在軟件保護中的應用摘要加密是軟件保護中最古老、最常見的方法,它常常和其他的方法和混合起來使用,以進一步增強對軟件的保護效果。由于軟件是處在“白盒”的執(zhí)行環(huán)境中的,傳統(tǒng)的加密方法在軟件保護領域難以取得良好的效果,這并因為非加密算法的強度不夠,而是由于軟件的執(zhí)行過程是可以被跟蹤的,也就是說密鑰和加密算法對于攻擊者是可見的,所以需要特定的針對白盒模型的加密手段來保護軟件及密鑰安全。本文主要探討軟件保護中的密鑰安全問題,分析了傳統(tǒng)軟件密鑰保護方法的局限與不足,提出一種最佳的解決方案,即白盒加密算法,并具體分析了一種基于AES加密的白盒實現(xiàn)算法。引言軟件保護主要是為了防止軟件被破解、被修改或被盜版等,現(xiàn)在軟件保護技術主要包括,代碼混淆[1]、加密、多態(tài)、水印、指紋、虛擬機、遠程過程調(diào)用和基于硬件的保護等,我們往往根據(jù)不同的保護目的,選擇或混合使用不同技術對軟件。其中加密技術是使用最廣泛的軟件保護技術之一,如軟件加殼就是對整個代碼段進行一次性加密運行時一次性解密,自修改代碼就是在軟件運行的過程中根據(jù)需要動態(tài)地進行代碼塊的加。傳統(tǒng)的加密技術的有一個基本假設就是攻擊者無法獲得密鑰,具體而言,認為攻擊者并未實質性地接觸到密鑰或者任何內(nèi)部操作,僅僅能觀察到一些外部信息或者操作,這些信息包括系統(tǒng)內(nèi)的明文(輸入)或者密文(輸出)。但在軟件保護領域傳統(tǒng)加密算法遇到了很大的挑戰(zhàn),這主要是實際上是處在白盒定義主要包括三點,一是攻擊者對主機和軟件具有完全控制權,二是軟件態(tài)執(zhí)行過程是,三是加密算法內(nèi)部細節(jié)完全可見。在環(huán)境中,傳,很容易被跟蹤和定位,并以密鑰為線索分析加于軟件保護上時,需要較為成熟的進行保護并在軟件解密由于軟件環(huán)境中的。白盒的動可見的這種白盒統(tǒng)的密鑰由于需要存儲在軟件中密算法的種類進而對程序進行破解,因此當加密技術應用更多關注如何隱藏和保護密鑰。1相關研究在軟件保護領域中,密鑰保護的思路主要有三種,第一種是自生成密鑰,即信息自身生成出來的;第二種是分塊密鑰,即密鑰有很多塊,存放在不同位置。第三種是白盒加密[2],其核心思想是讓密鑰固化在加密算法中,同時用人類無法理解的隨機矩陣將算法混淆。密鑰是由需要保護1.1自生成密鑰自生成密鑰的基本思路是讓由文件自身的信息來生成密鑰,要取信息來生成密鑰就必須將文件分塊加密,這是因為若文件沒有分塊,即僅有一塊,加密后文件變成了密鑰依賴的生成信息也就不存在了。自生成密鑰的實現(xiàn)方法是首先對文件進行分塊,然后按指定順序依次加密,每一塊的密鑰都不是提取自身的信息,而是依賴于其他塊的信息,這種順序依賴原則可以保證始終從文件自身提文,密
有信息可以用來生成密鑰,在解密時必須嚴格按照加密相反的順序逐塊解密。自生成密鑰的缺點有兩點,一是必須按順序解密,所以當僅需要解密Bi塊將B1,B2,···Bi塊全部解密。二是需要保存加密順序t及分塊的數(shù)量n,由于每次解密時都需要訪問t和n,因此它們是加密敏感數(shù)據(jù),很容易成為攻擊的突破口。時,必須算法的自生成密鑰算法的本質并沒有脫離使用密鑰,它是一種把單密鑰設計改成循環(huán)動態(tài)生成密鑰并加密的算法,該算法嚴重依賴解密順序,使用場景有一定的限制,而且重復生成密鑰會帶來較大開銷。1.2分塊密鑰分塊密鑰算法[3]可以n把才能打開保險箱。具體而言就是將密鑰且在每次執(zhí)行程序時隨機提取因子來恢復密鑰,由于每次僅需要獲取其中的部分即可完成解密任務,即每次解密都可以取不一樣的密鑰塊組合,假設共有m個密鑰塊,解密需要n個,則有效解密密鑰組合有種,效地干擾攻擊者跟蹤密鑰生成的過程,降低了密鑰被直接定位的風險。形象地比喻成為保險箱配許多把鑰匙,每次必須籌齊其中的拆分成多份偽隨機的因子,并密鑰塊因此可以有分塊加密算法看上去很好地隱藏了密鑰,將密鑰換了一種表現(xiàn)形式,程序還是需要先恢復密鑰然后才能進行解密,一旦密鑰被恢復,就將會暴露于內(nèi)存中,而且無論取哪些隨機因子,最終恢復的密鑰唯一的,所以該算法并不能從根本上解決密鑰安全問題。但是其本質并沒有消除密鑰,而且是2白盒加密基本原理白盒加密淆因子對加密算法進行混淆。其主要目的是為了讓加密算法“黑盒化”,讓人類無法理解其中的運算流程和邏輯。白盒加密算法主要適用于分塊加密類算法,分塊算法本質是定長輸入i到定長輸出o的映射關系(i與o等長),因此當密鑰確定時,可以一個巨大的映射表來替換,這樣加密合就完全變成了一個黑盒。即給定輸入獲得輸出,中間過程不可見,這樣就用查表的方法隱藏了加密過程和密鑰算法的核心思路是將密鑰固化到算法中,并加入人類無法理解的混加密將加密算法用算法和密鑰的組。在實際應用中,表分解為若干張子表,并在對子表進行混淆,以阻礙攻擊者逆向分析出隱藏在子表中的邏輯和恢復密鑰為了減小查表的大小,往往需要根據(jù)加密算法的特點,將總。3白盒AES加密算法的實現(xiàn)Chow等人[2]最早提出一種白盒AES的實現(xiàn)方法,第一步是用查表的方法來表示AES加密第二步是在AES加密的每一輪的每個變換前后加入混淆編碼以進一步混淆查隱藏在表格中的邏輯,阻礙攻擊者逆該方法主要包括兩步,算法,
向推導出密鑰,下面簡述白盒AES的加密過程。3.1查表實現(xiàn)查表實現(xiàn)就是將原來的加密算法用查表的形式替換,即算法本身變成了表格和查表方法的組合。假設有一個輸入和輸出都是128bit的AES加密算法,那么可以窮舉所有可能的明文輸入(plaintext),就得到了所有的密文輸出(ciphertext)。因為輸入是128bit,則(plaintext)共有2128種可能,每種可能對應一個大小為128bit的(ciphertext),所以可以用一個2128×128bit大小的表來表示該算法。類似于這樣輸入和輸出是固定大小的算法都可以轉化為用查找映射表來表示。在AES加密中,由于輸入包括了密鑰(key)和明文(plaintext)信息,在構建查表實現(xiàn)時可以必須固定其密鑰,這樣用構建出的映射表中不僅含有加密算法而且還隱藏著密鑰信息,這就是實現(xiàn)白盒加密的基本思路。在實際應用中直接采用一個如此巨大的映射表是不現(xiàn)實的(注:映射表大小為2128×128bit=292TB≈5×1027TB),不僅因為生成的映射表太過巨大無法存儲,而且也因為生成映射表時需要遍歷所有可能的輸入并得到輸出,而在如此大的空間上搜索需要海量的計算開銷,所以必須采用一定的優(yōu)化策略用小表取代大表,因此需要根據(jù)AES加密的特點,有針對性地設計查表方法。首先來分析一下的實現(xiàn)過程。AES是一個128bit到128bit的分塊加密算法,密鑰長度可以是128bit、192bit和256bit。的第一步是對密鑰(key)進行拓展,擴展為輪密鑰(Roundkeys),之后以16字節(jié)(128bit)為單位進行加密,加密過程主要包括4步,分別是SubBytes、ShiftRows、MixColumns以及AddRoundKey??梢詫⑤斎氲?6字節(jié)看成一4×4個的矩陣將其賦值給一個中間變量,記為state,每個步驟都是在對state進行變換,SubBytes是以字節(jié)為單位的替換操作,SubBytes是以行為單位進行位移操作,MixColumns是以列為單位進行的變換,AddRoundKey是與輪密鑰進行異或操作。這4步操作一共進行Nr輪(根據(jù)密鑰長度大小,Nr分別為10、12和14),最后一輪不進行MixColumns,最終得到的state即為輸出的密文。標準的128bit密鑰的算法實現(xiàn)過程如圖一(左)所示。為了得到AES查表實現(xiàn),同時減小查表的大小,可以將的各個子步驟分別用查表實現(xiàn)。具體而言,可以將SubBytes、ShiftRows、MixColumns和AddRoundKey分別用查表表示,將以及AddRoundKey和SubBytes組合作為一個操作并用查表表示。AES加密的4個主要操作是SubBytes、ShiftRows、MixColumns和AddRoundKey。可以首先改變算法邊界,將AddRoundKey和SubBytes和排在一起,對AES加密過程進行等價替換,如圖一(中)所示。為了將AddRoundKey和SubBytes和放在一起,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 合同結束競業(yè)協(xié)議
- 合同轉讓三方協(xié)議
- 合租房屋協(xié)議合同
- 吊車起重合同范本
- 品牌獨家合同范本
- 木工承建合同范本
- 金屬材料及其核心特性探究(高中物理教學設計)
- 石膏墻材制品生產(chǎn)工安全應急評優(yōu)考核試卷含答案
- 聚醚裝置操作工安全文明考核試卷含答案
- 重冶凈液工安全檢查評優(yōu)考核試卷含答案
- 一年級數(shù)學重疊問題練習題
- 三維動畫及特效制作智慧樹知到課后章節(jié)答案2023年下吉林電子信息職業(yè)技術學院
- 胰腺囊腫的護理查房
- 臨床醫(yī)學概論常見癥狀課件
- 事業(yè)單位專業(yè)技術人員崗位工資標準表
- 知識圖譜與自然語言處理的深度融合
- 物業(yè)管理理論實務教材
- 仁川國際機場
- 全檢員考試試題
- 光刻和刻蝕工藝
- 常用康復量表
評論
0/150
提交評論