国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Web的動態(tài)插值DES加密算法

2022-07-19 08:08孫建國高春庚
關(guān)鍵詞:服務(wù)端加密算法解密

孫建國,高春庚

(濟(jì)源職業(yè)技術(shù)學(xué)院 人工智能學(xué)院,河南 濟(jì)源 459000)

十四五規(guī)劃將人工智能AI列入科技發(fā)展的重中之重,人工智能在各個行業(yè)得到了長足的發(fā)展。人工智能三大核心要素為數(shù)據(jù)、算法、算力[1]。算法大部分開源,深度學(xué)習(xí)、卷積神經(jīng)網(wǎng)絡(luò)算法目前已經(jīng)比較成熟[2];因為云計算的出現(xiàn),算力已不是瓶頸;數(shù)據(jù)作為算法的糧食,需要不斷地給模型注入新的數(shù)據(jù),提高算法的準(zhǔn)確度。數(shù)據(jù)的重要性不言而喻[3]。

保護(hù)數(shù)據(jù),特別是標(biāo)注好的數(shù)據(jù),成為算法公司防止惡意競爭的重要任務(wù)。人工智能服務(wù)平臺,例如百度眾測、數(shù)據(jù)堂、格物鈦等多家平臺,通過搭建自己的服務(wù)平臺,甚至是采用數(shù)據(jù)私有化方式,確保數(shù)據(jù)安全[4]。Web模式為了提高訪問速度,圖片數(shù)據(jù)需要暫存本地,數(shù)據(jù)安全很難保證。大的廠商采用服務(wù)器虛擬化軟件Citrix、VMWare控制訪問權(quán)限,將數(shù)據(jù)和操作分離,有效地保障了數(shù)據(jù)安全,但數(shù)據(jù)訪問過慢,降低了數(shù)據(jù)操作的效率[5]。一個有效的加密算法,數(shù)據(jù)存儲在本地,也很難被破解,同時也可提高數(shù)據(jù)操作的流暢性。

針對傳統(tǒng)DES加密算法密鑰容易被破解安全性較低的問題,本文設(shè)計一種基于Web的動態(tài)插值DES加密算法。本算法在傳統(tǒng)DES算法基礎(chǔ)上,根據(jù)數(shù)據(jù)的不同批次,設(shè)置多個關(guān)鍵位置,并在不同的位置插入加密數(shù)值;并結(jié)合服務(wù)端傳送不同批次數(shù)據(jù)的位置序列及對應(yīng)的加密值給客戶端,方便客戶端軟件解密數(shù)據(jù),有效使用數(shù)據(jù)。

一、DES算法

DES(Data Encryption Standard)是一種分組對稱密鑰加密算法,該算法每次處理固定長度的數(shù)據(jù)段。使用相同的8字節(jié)密鑰,進(jìn)行16輪迭代。每輪迭代都利用置換和代替兩個基本操作實現(xiàn)加解密[6]。

到目前為止,窮舉分析是攻擊DES算法最有效的方法之一,遍歷8字節(jié)密鑰空間需要較長時間。但隨著計算機(jī)計算能力的提高,暴力破解密鑰將會變得非常容易[7]。

二、改進(jìn)的DES算法

DES算法核心是密鑰,因為算法的開源性,導(dǎo)致密鑰一旦被攻破,數(shù)據(jù)整個將被完全解密出來[8]。改進(jìn)的DES算法首先從算法底層入手,在數(shù)據(jù)的指定位置中插入變化的數(shù)值;然后通過Web服務(wù)器下發(fā)每次的位置數(shù)據(jù)、數(shù)值數(shù)據(jù)以及密鑰;客戶端工具加入混淆編譯,防止解密過程密鑰被破解。具體算法流程如圖1所示。

圖1 改進(jìn)的DES算法圖

(一)動態(tài)插值

改進(jìn)的DES算法主要基于密鑰、插值位置、插值這三個關(guān)鍵值。為了防止破解,需要動態(tài)變換。動態(tài)插值采用客戶端/服務(wù)器模式,通過客戶端和服務(wù)器的按需交互,實現(xiàn)插值及密鑰的及時更新。

動態(tài)插值主要包括服務(wù)器動態(tài)插值生成、動態(tài)插值存儲以及動態(tài)插值下發(fā)三部分,具體算法流程如圖2所示。

圖2 動態(tài)插值算法流程

動態(tài)插值生成包括插值位置、插值生成兩部分。

插值位置作為加密的重點(diǎn)要素需要首先考慮,既要考慮插值個數(shù),也要兼顧插值位置分布。插值個數(shù)太少,容易被破解;插值個數(shù)過多,將浪費(fèi)大量的加密解密時間。服務(wù)端首先根據(jù)日常加密文件大小,確定插值數(shù)量最多不超過總長度的二分之一,同時控制插值數(shù)量最小不少于文件總長度的五分之一。插值數(shù)量確定后,采用均分方式,結(jié)合文件大小,指定插值段。在一定的插值段內(nèi),調(diào)用隨機(jī)數(shù),控制最近兩次位置間隔不少于20個字符來生成插值位置。如果出現(xiàn)少于20個字符間隔數(shù)據(jù),本次位置數(shù)據(jù)需要重新生成。經(jīng)過一系列操作,最終生成插值位置。

插值位置產(chǎn)生后,一一對應(yīng)生成動態(tài)插值。加密文件一般為非文本文件,即使是文本文件,也可以按照二進(jìn)制文件加密和解密。將加密文件統(tǒng)一按照二進(jìn)制方式處理,既可以使用95個可見ASICC碼字符,也可以使用161個控制字符或者其他特殊字符,進(jìn)一步擴(kuò)大了插值數(shù)值范圍。插值使用隨機(jī)函數(shù)生成,通過比對最近幾次插值,回避重復(fù)值過多、易被破解的問題。

密鑰采用多種類型字符組合,可以使用0~9、a~z、A~Z常規(guī)字符,也可以使用“-”“+”“_”“/”“?”“.”“>”“<”等一些特殊字符。密鑰使用隨機(jī)函數(shù)產(chǎn)生,并通過算法控制必須包括4種類型字符,減少相同字符重復(fù)出現(xiàn)次數(shù),通過與服務(wù)器存儲的多個密鑰比較,確保唯一性。

服務(wù)器管理多個廠家、多種類型的標(biāo)注數(shù)據(jù),每周甚至每天還會有新的數(shù)據(jù)加入。為了管理這些錯綜復(fù)雜的數(shù)據(jù),需要對不同廠家、不同類型、不同日期的數(shù)據(jù)予以區(qū)分??蛻舳酥魂P(guān)心實際的標(biāo)注數(shù)據(jù),而且標(biāo)注數(shù)據(jù)往往都是以G為單位,所以無需在數(shù)據(jù)庫中存儲實際的標(biāo)注數(shù)據(jù)。算法本身關(guān)心的是和密鑰相關(guān)的數(shù)據(jù),所以需要把廠家、類型、日期這些信息與標(biāo)注數(shù)據(jù)存儲在一起,客戶端根據(jù)這些信息獲取不同的密鑰和插值。廠家、類型、日期這些信息可以采用傳統(tǒng)的DES算法加密,密鑰經(jīng)常更換。

客戶端導(dǎo)入加密數(shù)據(jù)時,首先通過DES解密,解析出廠家、類型、日期這些信息,并把它發(fā)送至服務(wù)端。服務(wù)端響應(yīng)后,在服務(wù)器中查詢并回復(fù)插值位置、插值和密鑰給客戶端,客戶端通過插值解密,恢復(fù)標(biāo)注數(shù)據(jù)。圖片數(shù)據(jù)將形成數(shù)據(jù)流直接導(dǎo)入圖片區(qū),標(biāo)記數(shù)據(jù)采用動態(tài)方式,用時解密單個文件,一旦停止使用,立馬轉(zhuǎn)為加密文件。為了防止客戶端使用過程中被破解,可以采用間歇式數(shù)據(jù)交互方式定期向服務(wù)端回傳插值和密鑰,一旦發(fā)現(xiàn)異常,將關(guān)閉客戶端甚至可以刪除客戶端及加密數(shù)據(jù)來保護(hù)數(shù)據(jù)。

除了服務(wù)端、客戶端數(shù)據(jù)加密外,在傳輸過程中,還需要采用安全簽名等多種方式確保數(shù)據(jù)不能在網(wǎng)絡(luò)通信環(huán)節(jié)被破解。

(二)插值加密

插值加密需要定義2個數(shù)組變量s_iDesPos、s_bDesVal。s_iDesPos是需要插值的位置,根據(jù)文件長度fLen,確定插值位置個數(shù)大于fLen/5,小于fLen/2,一般設(shè)置為fLen/3即可。s_bDesVal是每個加密位置對應(yīng)的插值,長度與插值位置一致,是一個隨機(jī)字節(jié)數(shù)組。

具體加密過程為:

(1)通過原始的DES加密算法完成首次加密。

(2)使用File文件對象,打開加密后的文件,并讀入數(shù)據(jù)輸入流ms中。

(3)設(shè)置當(dāng)前寫入位置變量iWritePos和寫入數(shù)量變量iWriteCount,兩個變量初值均為0。

(4)打開加密后文件fs。

(5)單字節(jié)方式讀取數(shù)據(jù)輸入流ms。

(6)如果寫入數(shù)量iWriteCount小于插值位置s_iDesPos數(shù)組總長度,并且當(dāng)前寫入位置iWritePos等于插值位置s_iDesPos[iWriteCount],寫入插值s_bDesVal[iWriteCount]至加密文件fs中,并遞加當(dāng)前寫入數(shù)量變量iWriteCount。寫入插值后,仍需要將原始加密數(shù)據(jù)寫入fs,并改變當(dāng)前寫入位置iWritePos;否則,只寫入原始加密數(shù)據(jù)、改變當(dāng)前寫入位置。

(7)重復(fù)步驟5、6,直到輸入流ms讀取完畢為止。

fs = File.OpenWrite(savePath);

int iWritePos = 0;

int iWriteCount = 0;

foreach (byte b in ms.ToArray())

{

if (iWriteCount < s_iDesPos.Length && s_iDesPos[iWriteCount]== iWritePos)

{

fs.WriteByte(s_bDesVal[iWriteCount]);

iWriteCount++;

}

fs.WriteByte(b);

iWritePos++;

}

(三)混淆編譯

客戶端使用過程中,潛在的風(fēng)險就是反編譯。一旦客戶端被反編譯,固定密匙很容易被看到;通過服務(wù)端傳遞的密匙也有可能會被追查到內(nèi)存地址,進(jìn)而破解密匙。通過混淆編譯,可以防止客戶端被暴力破解。C#編寫的代碼可使用VS自帶的Dotfuscator實現(xiàn)混淆代碼、變量名修改、字符串加密等功能。Java編寫的代碼可使用ProGuard,一個純Java編寫的混淆工具,有客戶端和JAR包兩種使用方式。可以將程序打包為JAR,然后用工具進(jìn)行混淆,也可以在maven中導(dǎo)入ProGuard的插件,對代碼進(jìn)行混淆[9]。

三、算法實施及效果

基于Web的動態(tài)插值DES加密算法動態(tài)插值部分前端頁面采用JSP技術(shù),后臺采用B/S(Browser/Server)結(jié)構(gòu),MVC設(shè)計模式以及當(dāng)前流行的整合框架SSM(Struts2+Spring+Mybatis),結(jié)合MySQL數(shù)據(jù)庫,使用Eclipse開發(fā)實現(xiàn)服務(wù)器動態(tài)插值生成、動態(tài)插值存儲。使用ProGuard的插件,完成Java代碼的混淆編譯。

數(shù)據(jù)加密、解密部分使用Microsoft Visual Studio 2015中的WebClient+WebRequest實現(xiàn)動態(tài)插值下載,借用傳統(tǒng)的DES加密、解密算法,在多個位置上插入加密值實現(xiàn)動態(tài)插值;通過VS2015自帶的Dotfuscator實現(xiàn)混淆代碼,防止反編譯。

標(biāo)注數(shù)據(jù)來源于4家自動駕駛相關(guān)算法研究公司,覆蓋前視數(shù)據(jù)、環(huán)視數(shù)據(jù)、鳥瞰車位數(shù)據(jù),前視數(shù)據(jù)60萬左右,環(huán)視數(shù)據(jù)40多萬,車位數(shù)據(jù)20多萬。圖片多為1K(1280*720)數(shù)據(jù)和2K(1920*1080)數(shù)據(jù),部分?jǐn)?shù)據(jù)為4K(4096*2160)超高清數(shù)據(jù),鳥瞰數(shù)據(jù)分辨率較為特殊,不同公司分辨率大小不一。

使用改進(jìn)的DES算法,完成百萬級數(shù)據(jù)的加密。算法及數(shù)據(jù)運(yùn)營6年,期間出現(xiàn)員工暴力破解的情況,但還未破解成功,數(shù)據(jù)即被刪除;與合作公司經(jīng)常溝通數(shù)據(jù)安全,并未出現(xiàn)數(shù)據(jù)被倒賣盜用的問題,有效回避了同行業(yè)不正當(dāng)競爭。

基于改進(jìn)的DES算法的標(biāo)注工具使用人數(shù)突破500人,日使用頻率達(dá)到8個小時以上,年使用頻率達(dá)到300天以上,對比未使用改進(jìn)的DES算法的標(biāo)注工具,從未出現(xiàn)加密、解密過程造成的數(shù)據(jù)延遲、報錯等各種異常。由此可見,本文算法在保證數(shù)據(jù)安全性的同時,有效地提高了數(shù)據(jù)的可靠性和穩(wěn)定性。

四、結(jié)語

在傳統(tǒng)DES算法基礎(chǔ)上,提出了一種改進(jìn)的DES加密算法。通過在DES加密后數(shù)據(jù)隨機(jī)位置插值,提高數(shù)據(jù)破解難度;使用客戶端/服務(wù)端模式,動態(tài)下載密鑰相關(guān)數(shù)據(jù),保證插值位置、插值、DES密鑰實時更新;結(jié)合Java、C#混淆編譯,防止加密解密工具被破解。多方面提高了數(shù)據(jù)的安全性。該算法運(yùn)用在數(shù)據(jù)標(biāo)注行業(yè)6年,未出現(xiàn)數(shù)據(jù)泄露情況,具有較強(qiáng)的實用性。

猜你喜歡
服務(wù)端加密算法解密
炫詞解密
解密“一包三改”
炫詞解密
新時期《移動Web服務(wù)端開發(fā)》課程教學(xué)改革的研究
在Windows Server 2008上創(chuàng)建應(yīng)用
混沌參數(shù)調(diào)制下RSA數(shù)據(jù)加密算法研究
HES:一種更小公鑰的同態(tài)加密算法
基于小波變換和混沌映射的圖像加密算法
解密“大調(diào)解”
對稱加密算法RC5的架構(gòu)設(shè)計與電路實現(xiàn)
托里县| 五指山市| 民乐县| 湖州市| 土默特左旗| 湖南省| 嘉义县| 海南省| 通州区| 长葛市| 商洛市| 河北省| 娄底市| 玉树县| 军事| 宜阳县| 鄂州市| 瓮安县| 弥勒县| 博乐市| 酒泉市| 山阳县| 东方市| 东辽县| 娱乐| 西平县| 南康市| 高雄县| 桂平市| 贵港市| 北宁市| 中方县| 定兴县| 京山县| 临西县| 贵港市| 高雄市| 凌海市| 卢湾区| 嘉定区| 涞水县|