• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

      2022-07-19 08:08:38孫建國高春庚
      濟源職業(yè)技術學院學報 2022年2期
      關鍵詞:服務端加密算法解密

      孫建國,高春庚

      (濟源職業(yè)技術學院 人工智能學院,河南 濟源 459000)

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

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

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

      一、DES算法

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

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

      二、改進的DES算法

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

      圖1 改進的DES算法圖

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

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

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

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

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

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

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

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

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

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

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

      (二)插值加密

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

      具體加密過程為:

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

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

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

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

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

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

      (7)重復步驟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++;

      }

      (三)混淆編譯

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

      三、算法實施及效果

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

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

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

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

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

      四、結語

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

      猜你喜歡
      服務端加密算法解密
      解密“熱脹冷縮”
      解密“一包三改”
      少先隊活動(2020年9期)2020-12-17 06:17:31
      炫詞解密
      云存儲中基于相似性的客戶-服務端雙端數據去重方法
      新時期《移動Web服務端開發(fā)》課程教學改革的研究
      消費導刊(2018年8期)2018-05-25 13:19:48
      在Windows Server 2008上創(chuàng)建應用
      基于小波變換和混沌映射的圖像加密算法
      Hill加密算法的改進
      解密“大調解”
      對稱加密算法RC5的架構設計與電路實現(xiàn)
      大悟县| 盐津县| 紫云| 万载县| 天津市| 云安县| 麦盖提县| 泗阳县| 库伦旗| 郸城县| 宝鸡市| 安吉县| 神农架林区| 乌拉特后旗| 康马县| 阳曲县| 溧阳市| 平舆县| 韶关市| 越西县| 丹凤县| 遵化市| 额济纳旗| 桦甸市| 邢台县| 板桥市| 宽城| 班戈县| 龙里县| 通江县| 涪陵区| 玉溪市| 渝中区| 临海市| 武乡县| 两当县| 新兴县| 和田县| 兴仁县| 池州市| 达日县|