亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種AES算法和HASH認(rèn)證結(jié)合的文件加密方案

        2019-03-21 11:35:36葉小艷

        葉小艷

        (廣州大學(xué)華軟軟件學(xué)院 網(wǎng)絡(luò)技術(shù)系,廣東 廣州 510990)

        0 引 言

        個(gè)人電腦的信息安全,側(cè)重于個(gè)人計(jì)算機(jī)內(nèi)部的信息管理。對重要文件進(jìn)行加密,是常用的信息管理策略。因此,運(yùn)用有效的信息加密策略,對個(gè)人電腦的安全具有重要的意義。傳統(tǒng)的文件加密方法一般有兩種[1]:一種是利用應(yīng)用軟件本身所帶的加密功能給文件加密,例如Word、Excel、Access、WPS、PDF文件都有自帶的加密功能。這種加密方法容易操作,是常用的文件加密方法。但它的缺點(diǎn)是只能針對部分格式的文件進(jìn)行加密解密。另一種是利用專門軟件的加密功能進(jìn)行加密。例如使用WinZip、WinRaR以及腳本編程對文件(夾)進(jìn)行加密。這類加密方法采用的是單向加密方法,加密速度顯然較慢,使用過程比較麻煩。

        無論是用應(yīng)用軟件本身所帶的加密功能給文件加密,還是利用專門軟件的加密功能進(jìn)行加密,它們采取的都是基于單一模式加密算法的文件保護(hù)方案。這使得文件的保密性以及數(shù)據(jù)的完整性得不到很好地保護(hù)。另外大多數(shù)文件加密軟件只支持本地加密和本地解密。例如,文件夾加密超級大師只允許用戶在本地進(jìn)行加密、解密操作來防止別人盜取加密信息。當(dāng)加密數(shù)據(jù)必須轉(zhuǎn)移到別的計(jì)算機(jī)上進(jìn)行解密操作時(shí),解密操作將不會成功。

        為了提高數(shù)據(jù)的保密性和完整性,最大限度地防止惡意用戶攻擊或用戶的錯(cuò)誤操作,提出一種基于AES算法和HASH認(rèn)證相結(jié)合的文件加密機(jī)制。在該機(jī)制中,對于需要加密的文件,加密軟件用文件流讀取的方式讀取文件,同時(shí)使用HASH認(rèn)證,并用AES算法進(jìn)行加密,密鑰使用即時(shí)生成策略,以用戶名、硬盤序列號和SALT生成的SALT值作為參數(shù)進(jìn)行保存,使得加密文件不僅能很好地保證文件的機(jī)密性和完整性,而且能夠在異地進(jìn)行解密,而不影響其安全性[2-6]。

        1 AES算法和HASH認(rèn)證結(jié)合的加密方案

        1.1 AES算法

        AES算法是一種對稱密鑰加密體制算法,又稱Rijndael加密算法,是一種安全高效的加密算法[7]。這種加密體制中信息的發(fā)送方和接受方用同一個(gè)密鑰去加密和解密數(shù)據(jù),運(yùn)用了寬軌跡策略的設(shè)計(jì)策略,針對差分密碼分析和線性密碼分析原理提出的算法優(yōu)化。Rijndael是一種迭代分組算法,采用了可變的分組長度和密鑰長度。為了滿足AES算法的要求,對分組長度和密鑰長度進(jìn)行了限制,分別為:分組長度128 bit,密鑰長度128 bit/192 bit/256 bit,相應(yīng)的輪數(shù)為10/12/14[8]。

        1.2 HASH認(rèn)證

        HASH認(rèn)證是利用HASH函數(shù)的消息認(rèn)證,就是將任意長度的消息壓縮到某一固定長度的消息摘要的函數(shù)進(jìn)行認(rèn)證,為數(shù)據(jù)的快速存取提供了一種方法,或者說通過一種算法建立鍵值與真實(shí)值之間的對應(yīng)關(guān)系[9]。因?yàn)槊恳粋€(gè)真實(shí)值只能有一個(gè)鍵值,而一個(gè)鍵值可以對應(yīng)多個(gè)真實(shí)值,因此通過鍵值與真實(shí)值對應(yīng)的關(guān)系快速地在數(shù)組等條件中存取數(shù)據(jù)。HASH認(rèn)證不僅能夠提供口令相互認(rèn)證,而且克服了傳統(tǒng)單一模式加密算法的弱點(diǎn),有效地保護(hù)文件信息,并能有效防止他方攻擊,能很好地加強(qiáng)文件加密的安全性與提高解密的效率。

        1.3 AES算法和HASH認(rèn)證結(jié)合的文件加密方案

        1.3.1 文件加密過程

        文件加密的過程實(shí)際上就是把明文轉(zhuǎn)換為密文的過程。文件加密不但要保證文件的機(jī)密性,還需要保證文件的完整性。而保證數(shù)據(jù)完整的有效性方法就是使用消息認(rèn)證。AES算法和HASH認(rèn)證相結(jié)合的文件加密過程如下所述。

        該加密方法的基本思想是改變源文件內(nèi)容,進(jìn)行混合加密。為此用二進(jìn)制方式讀取源文件,然后采用HASH認(rèn)證技術(shù)。假定通信雙方為A和B,當(dāng)A有要發(fā)送B的報(bào)文時(shí),計(jì)算該報(bào)文的散列值,散列值將作為消息摘要。由于散列值是輸入消息的函數(shù)值,只要輸入消息有任何改變,就會導(dǎo)致得到不同的散列值[10]。例如采用SHA-256算法,SHA-256算法輸入的是264-1位數(shù)據(jù),輸出的消息摘要是256位。然后使用Rijndael算法進(jìn)行加密,用加密后的數(shù)據(jù)覆蓋源文件,以達(dá)到加密和消息認(rèn)證的功能。

        當(dāng)源文件加密后,消息認(rèn)證會對信息的完整性和真實(shí)性進(jìn)行驗(yàn)證,要求發(fā)送方A和接收方B共享一個(gè)秘密值S,發(fā)送方生成消息M和秘密值S的散列值,然后與消息M一起發(fā)送給對方[11],即:A→B:M‖[H(M‖S)];接收方B可以按照發(fā)送方相同的處理辦法生成消息M和秘密值S的散列值,兩者進(jìn)行比較,從而實(shí)現(xiàn)驗(yàn)證。該方法中秘密值S并不參與傳遞。因此,可以保證攻擊者無法偽造。然而,要使用加密算法確保數(shù)據(jù)的機(jī)密性,還需把加密機(jī)制與認(rèn)證機(jī)制相混合。Rijndael算法與HASH認(rèn)證混合加密過程模型如圖1所示。

        圖1 混合加密模型

        1.3.2 文件解密過程

        文件解密包括基于本地和基于異地的兩種環(huán)境的解密。

        (1)基于本地的文件解密。

        本地文件解密,實(shí)際上是文件加密的逆過程。

        如圖2所示,解密可以簡單地看作密文轉(zhuǎn)化為明文的過程。

        圖2 解密過程

        在解密的過程中,要讀取附在加密文件中的SALT值、當(dāng)前硬盤序列號的X、Y值以及當(dāng)前用戶名,流程如圖3所示。

        通過Rijndael算法與HASH認(rèn)證混合運(yùn)算得到256位的即時(shí)密鑰[12]。對加密文件數(shù)據(jù)進(jìn)行解密后,便得到了HASH函數(shù)認(rèn)證后的源文件數(shù)據(jù)了。然后分離HASH認(rèn)證部分和源文件的數(shù)據(jù),對源文件數(shù)據(jù)進(jìn)行完整性驗(yàn)證操作。生成HASH函數(shù)散列值后與HASH認(rèn)證的散列值相比較,便可判斷數(shù)據(jù)的完整性。最后,刪除文件名、SALT值、X、Y值。

        圖3 本地解密流程

        (2)基于異地的文件解密。

        異地文件解密,顧名思義就是在非本地計(jì)算機(jī)上對加密數(shù)據(jù)進(jìn)行解密。

        異地文件解密流程如圖4所示。

        圖4 異地文件解密流程

        ①把用戶名和硬盤序列號簡單地看作兩個(gè)8階矩陣,其中的元素為十六進(jìn)制數(shù)(0-F),這樣,一個(gè)矩陣就可以表示32字節(jié)的數(shù)據(jù),如果使用ASCII碼,則可以表示32個(gè)字母或數(shù)字(用戶名和硬盤序列號不會超過32個(gè)字節(jié))。其中,用戶名矩陣為A,硬盤序列號矩陣為B。當(dāng)用戶名和硬盤序列號的數(shù)據(jù)不足32位時(shí),就要進(jìn)行填充。填充的方法是先填充比特最高位F,其余填充0。填充完畢后,兩個(gè)矩陣分別存有256位的數(shù)據(jù)。

        ②根據(jù)SALT值、用戶名以及硬盤序列號得出一個(gè)256位的密鑰。在文件異地解密的過程中,因?yàn)橛脖P序列號是未知的,所以混合解密的算法與混合加密算法有所不同。

        硬盤序列號矩陣的實(shí)對稱矩陣B1、B2可以用λ1、X和λ2、Y(λ1、X和λ2、Y分別是B1、B2對應(yīng)的最小特征值和對應(yīng)特征向量)代替,且B1、B2是不能由λ1、X和λ2、Y反推得到的[13]。保存λ1、X和λ2、Y值,便可以代替矩陣B。對λ1、X和λ2、Y進(jìn)行處理,便可以代替對B1、B2進(jìn)行處理[14]。從而得到異地文件解密的算法。

        2 驗(yàn)證與效果

        以用戶名0640109129,硬盤序列號081005FB0B00LGCM3SNA為例。

        將用戶名轉(zhuǎn)化成ASCII碼的十六進(jìn)制表示:

        3 0 3 6 3 4 3 0 3 1 3 0 3 9 3 1 3 2 3 9 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

        將硬盤序列號轉(zhuǎn)化成ASCII碼的十六進(jìn)制表示:

        3 0 3 8 3 1 3 0 3 0 3 5 4 6 4 2 3 0 4 2 3 0 3 0 4 C 4 7 4 3 4 D 3 3 5 3 4 E 4 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

        得到:

        K=

        加密過程:(1)分解B矩陣,得到B1、B2:

        分別計(jì)算B1、B2的λ1、X值和λ2、Y值(文中使用了athematica 5.0計(jì)算)。解得B1的特征值有:37.67863723027871(取最大特征值)。其對應(yīng)的特征向量為(X值):

        {0.11768585809982075`,0.1074119768921271`,

        0.1355670682574105`,0.13484618706555201`,

        0.4214799748600844`,0.38710584297166695`,

        0.28900995565292276`,0.7259667516656944`}

        B2的特征值有:39.66680261555876(取最大特征值),其對應(yīng)的特征向量為(Y值):

        {0.2050783476568194`,0.09100674266886734`,

        0.17354467785099853`,0.27472793463327216`,

        0.3906151655916963`,0.44295236831364776`,

        0.24892415015479563`,0.6582683420290661`}

        (2)計(jì)算出:

        AC={{149,87,131,108,145,187,92,111},{122,112,83,70,91,170,97,117},{155,54,119,112,181,203,62,73},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0}}

        A1={{4,7,3,12,1,11,12,15},{10,13,3,6,11,10,1,5},{11,6,4,0,5,11,14,9},{0,0,0,13,0,0,0,0},{0,0,0,0,10,0,0,0},{0,0,0,0,0,5,0,0},{0,0,0,0,0,0,3,0},{0,0,0,0,0,0,0,13}}

        解密過程:分為本地解密和異地解密兩種情況。

        (1)本地解密狀態(tài)。

        A1B1(B2Y)T={{6 830.46,3 031.12,5 780.18,9 150.25,13 010.1,14 753.2,8 290.81,21 924.7},{4 970.09,2 205.55,4 205.86,6 658.05,9 466.58,10 735,6 032.69,15 953.2},{5 954.44,2 642.38,5 038.86,7 976.71,11 341.5,12 861.1,7 227.5,19 112.8},{537.309,238.439,454.69,719.792,1 023.42,1 160.54,652.186,1 724.68},{1 291.87,573.288,1 093.23,1 730.62,2 460.64,2 790.34,1 568.07,4 146.7},{593.256,263.267,502.034,794.74,1 129.98,1 281.38,720.094,1 904.25},{265.752,117.932,224.889,356.008,506.181,574.002,322.57,853.02},{2 892.69,1 283.68,2 447.9,3 875.12,5 509.75,6 247.98,3 511.15,9 285.08}}

        (2)異地解密狀態(tài)。

        A1λ1X(λ2Y)T={{6 830.46,3 031.12,5 780.18,9 150.25,13 010.1,14 753.2,8 290.81,21 924.7},{4 970.09,2 205.55,4 205.86,6 658.05,9 466.58,10 735,6 032.69,15 953.2},{5 954.44,2 642.38,5 038.86,7 976.71,11 341.5,12 861.1,7 227.5,19 112.8},{537.309,238.439,454.69,719.792,1 023.42,1 160.54,652.186,1 724.68},{1 291.87,573.288,1 093.23,1 730.62,2 460.64,2 790.34,1 568.07,4 146.7},{593.256,263.267,502.034,794.74,1 129.98,1 281.38,720.094,1 904.25},{265.752,117.932,224.889,356.008,506.181,574.002,322.57,853.02},{2 892.69,1 283.68,2 447.9,3 875.12,5 509.75,6 247.98,3 511.15,9 285.08}}

        由以上計(jì)算結(jié)果可得知A1B1(B2Y)T的值和A1λ1X(λ2Y)T的值相等。

        經(jīng)過十六輪運(yùn)算,得到結(jié)果為:

        A16={{11,1,12,13,13,14,2,7},{3,1,5,8,0,2,15,3},{12,4,12,6,11,2,7,5},{7,1,1,12,5,5,5,3},{9,10,13,12,1,3,12,2},{10,0,9,10,14,10,11,4},{3,10,12,11,2,15,0,8},{1,15,11,10,14,5,4,13}}

        A1XORA16={{8,1,15,11,14,10,1,7},{0,0,6,8,3,11,12,2},{15,6,15,15,11,2,7,5},{7,1,1,12,5,5,5,3},{9,10,13,12,1,3,12,2},{10,0,9,10,14,10,11,4},{3,10,12,11,2,15,0,8},{1,15,11,10,14,5,4,13}}

        由此獲得密鑰為:

        3 結(jié)束語

        文件加密軟件采用AES算法和HASH認(rèn)證相結(jié)合的加密方式對文件數(shù)據(jù)進(jìn)行加密。其機(jī)密性源于加密算法的實(shí)施。文件加密軟件采用密鑰長度為256位的Rijndael算法[15]。該算法有效抵御窮舉搜索和抵抗線性密碼分析和差分密碼分析,并且該算法復(fù)雜度低、效率高,令文件加密軟件可以抵御被動攻擊(截取),使得攻擊者在截取數(shù)據(jù)后,利用即時(shí)密鑰生成的密鑰管理方案,可以令攻擊者因不在本地計(jì)算機(jī)上進(jìn)行解密,而無法還原數(shù)據(jù)信息,從而更大地保證了加密數(shù)據(jù)的安全性。為保證數(shù)據(jù)完整性,文件加密軟件采用基于Hash散列函數(shù)的認(rèn)證,使得文件加密軟件在保證數(shù)據(jù)完整性中取得了不錯(cuò)效果,可以有效防止攻擊者對系統(tǒng)進(jìn)行主動攻擊,包括偽造、篡改信息。但文中未對文件的存儲、備份和災(zāi)難恢復(fù)等進(jìn)行研究,下一步將從這些方面深入研究文件加密體制。

        玩弄白嫩少妇xxxxx性| 国产三级精品三级在线| 天堂免费av在线播放| 日本国产成人国产在线播放| 日本大尺度吃奶呻吟视频| 亚洲日韩区在线电影| 亚洲色图偷拍自拍亚洲色图| 国产白浆一区二区三区性色| 97久久精品无码一区二区天美| 中文字幕日韩高清| 国产丝袜高跟美腿一区在线| 国产在线91精品观看| 精品国内在视频线2019| 人妻丰满熟妇AV无码区HD| 日本一区二区三区小视频| 免费播放成人大片视频| 全免费a敌肛交毛片免费| 麻豆精品久久久久久久99蜜桃| 国产精品,在线点播影院| 麻豆久久91精品国产| 国产精品久久久久乳精品爆| 99精品国产在热久久国产乱| 亚洲中文字幕人妻诱惑| 自拍偷自拍亚洲一区二区| 五月综合激情婷婷六月色窝| 免费av在线国模| 日本人妖一区二区三区| 久久精品国产成人午夜福利| 亚洲av无码潮喷在线观看| 久久成人永久免费播放| 麻豆国产精品久久天堂| 欧美激情肉欲高潮视频| 国产人碰人摸人爱视频| 黄色av三级在线免费观看| 国产日产久久高清ww| 狠狠色噜噜狠狠狠狠7777米奇| 天天草夜夜草| 少妇熟女天堂网av天堂| 成人做受黄大片| 亚洲综合色一区二区三区另类| 久久久一本精品久久久一本|