• 
    

    
    

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

      AES 加密在嵌入式數(shù)據(jù)庫SQLite 中的應用

      2023-07-31 11:40:18武黎明王淑娟董祺寧
      火力與指揮控制 2023年6期
      關鍵詞:數(shù)組字節(jié)輕量化

      翟 禹,武黎明,王 祥,王淑娟,董祺寧

      (北方自動控制技術研究所,太原 030006)

      0 引言

      隨著坦克裝甲車輛的信息化發(fā)展,其各個分系統(tǒng)及嵌入式設備產(chǎn)生的數(shù)據(jù)量越來越大。以火控系統(tǒng)為例,包括武器狀態(tài)信息、發(fā)控信息、目標信息等。這些大量數(shù)據(jù)需要專門的嵌入式數(shù)據(jù)庫進行管理。SQLite 作為嵌入式平臺數(shù)據(jù)儲存的主要方式,具有體量小、可移植性高、管理簡單、狀態(tài)回滾方便等特點。然而SQLite 沒有用戶管理與加密功能,這意味著數(shù)據(jù)庫文件對所有人開放,都可以輕松用工具查看。對于重要的軍用設備,這種開放的文件存在信息安全隱患。加密一直是最受歡迎的信息安全解決方案之一,在數(shù)據(jù)安全中發(fā)揮著重要作用,加密算法研究具有重要意義。

      DAEMEN J 和RIJMEN V 創(chuàng)建了Rijndael 算法。Rijndael 算法于2001 年被美國國家標準與技術研究院(NIST)選為高級加密標準(advanced encryption standard,AES)[1]。AES 方法是一種對稱分組密碼,使用替換-排列網(wǎng)絡(SPN)具有速度快,安全級別高的優(yōu)勢[2]。PATIL S,PATIL R 并行應用了AES算法[3]。對于計算成本高昂的數(shù)據(jù)加密,例如音頻、視頻和圖像數(shù)據(jù)加密,AES 算法運行緩慢。因此,通過采用并行處理,能夠克服處理緩慢的缺點。TAHIR A S 為圖像加密開發(fā)了修改版AES,通過更改行移位階段,以提高安全性[4]。修改版AES 更安全,并且在測試后實現(xiàn)了針對統(tǒng)計攻擊的安全結果。JUREMI J 等提出了一個名為行列式旋轉的新階段,通過使用行列式矩陣計算為每輪生成不同的S盒來實現(xiàn)AES 的S 盒位置的旋轉[5]。通過隨機性試驗和雪崩試驗,證明了此方法獲得了高隨機性和高安全性。RIYALDHIA R 等提出了一種通過修改S 盒和行移位來改進AES 算法的方法[6]。經(jīng)過測試,所提出的改進AES 算法比原來的AES 減少了3 μs 的執(zhí)行時間。NAZIRI 等在S 盒架構中設計了乘法逆,限制了儲存器減輕了儲存占用[7]。何文才等在安卓平臺開啟多線程與計算器模式,使得SQLite 的加密速率提升了23.5%[8]。冷飛等提出融合RSA 與AES算法,降低了密鑰的管理復雜度[9]。費雄偉等引入統(tǒng)一計算架構平臺,實現(xiàn)AES 并行計算,提高了加密速度[10]。張詩永等提出256 位分組來構造新算法,增強了AES 算法的計算性能[11]。

      嵌入式設備計算資源有限、存儲空間狹小,若使用標準的AES 存在處理速度慢、數(shù)據(jù)傳輸時間長等缺陷?;谝陨戏治?,對AES 算法進行了輕量化的改進策略,在保證安全性的同時,加快AES 算法的進程。實驗結果表明,本文設計的輕量化AES 算法高效輕便,在SQLite 文件加密中表現(xiàn)優(yōu)秀。

      1 標準AES

      AES 是一種分組密碼,使用對稱密鑰進行加密和解密過程。明文大小等于128 位(相當于16 字節(jié)),而密鑰大小可以分為128、192 或256 位。AES算法中有輪次(迭代),總回合數(shù)由密鑰的大小決定,如表1 所示。

      表1 AES 算法規(guī)范Table 1 Specification of AES algorithm

      具體由4 個階段組成,分別是字節(jié)代替(Sub-Byte),行移位(ShiftRow),列混淆(MixColumn)和輪密鑰加(AddRoundKey)階段。這些階段以順序形式執(zhí)行,并在狀態(tài)數(shù)組(4×4 字節(jié))上作為輪次運行。明文在加密過程中作為參數(shù)通過這些輪次傳遞,如圖1 所示的4 個階段[12-13]。

      圖1 AES 算法結構Fig.1 Structure of AES algorithm

      1)字節(jié)代替:是一個非線性字節(jié)替換函數(shù),獨立地對狀態(tài)數(shù)組的每個字節(jié)進行操作,并基于有限域GF(28)中的乘法反轉。即查S 盒,替換字節(jié),S 盒如圖2 所示。

      圖2 S 盒Fig.2 S-box

      2)行移位:狀態(tài)中有4 行。第1 行不受影響(未移位),第2 行向左移動1 個字節(jié),第3 行向左移動2 個字節(jié),第4 行向左移動3 個字節(jié)。

      3)列混淆:此階段使用逐列操作狀態(tài),每列被視為GF(28)上的4 項多項式,并乘以固定多項式a(x)x4+1。列混淆使用式(1)計算:

      4)輪密鑰加:對128 位的狀態(tài)按位與128 的輪密鑰XOR 操作,即按位異或[14-15]。

      2 改進的輕量級AES 算法

      本文所提出的輕量化AES 算法改進了前兩個階段:字節(jié)代替和行移位階段,從而改善了加密和解密過程。此外,回合數(shù)縮短至4 輪。

      2.1 輕量化字節(jié)代替

      改進的字節(jié)代替階段使用替換表而不是標準AES 算法的S 盒。替換表由兩個條目組成;第1 個條目具有以0 值開頭并以F 值結束的升序形式的十六進制數(shù)字,第2 個條目具有以F 值開頭并以0值結束的降序形式的十六進制數(shù)字,如表2 所示。

      表2 輕量化替換表Table 2 Lightweight replacement table

      狀態(tài)數(shù)組中的每個字節(jié)分為兩位數(shù)(每個數(shù)字用十六進制表示)。在字節(jié)代替階段,字節(jié)的每個數(shù)字取決于替換表,該替換表在第1 個條目中搜索狀態(tài)的第1 個字節(jié)(字節(jié)由兩位數(shù)組成),并從第2 個條目中獲取相應的字節(jié)。例如,假設以下狀態(tài)數(shù)組,狀態(tài)的第1 個字節(jié)等于(FF),則替換為(00)。經(jīng)過輕量化替代后結果如下,如圖3 所示。

      圖3 輕量化字節(jié)代替Fig.3 Replacement with lightweight byte

      此外,由于輕量化替換表存在線性關系,其逆操作逆字節(jié)代替也用同一張表,加密解密均節(jié)省了存儲空間,替換表的大小為2×16,等于32 字節(jié),S盒由16×16 字節(jié)組成,等于256 字節(jié)。此外,在搜索過程中更快(僅搜索16 個條目)。算法1 解釋了輕量化字節(jié)代替階段的步驟。

      2.2 輕量化行移位

      在標準AES 中,行移位階段每次移位按特定編號執(zhí)行,由狀態(tài)數(shù)組中的行號確定的移動編號。輕量化后的行移位階段通過隨機移位數(shù)對每一行執(zhí)行循環(huán)移位。一維無序邏輯映射系統(tǒng)產(chǎn)生的隨機移位數(shù)由等式(2)表示:

      算法1:輕量化字節(jié)代替階段輸入:狀態(tài)數(shù)組、替換表輸出:新狀態(tài)數(shù)組開始For i=1 to 4 For j=1 to 4字節(jié)塊T=狀態(tài)[i][j];數(shù)值1=字節(jié)塊T 左邊值;數(shù)值2=字節(jié)塊T 右邊值;新數(shù)值1=代替(輕量化替換表,數(shù)值1);新數(shù)值2=代替(輕量化替換表,數(shù)值2);新字節(jié)塊T=結合(新數(shù)值1,新數(shù)值2);新狀態(tài)[i][j]=新字節(jié)塊T;Next j;Next i;結束

      其中,X0表示起始狀態(tài),i 表示迭代次數(shù),是系統(tǒng)控制參數(shù)。對于所有i,Xi+1的值是介于0 和1 之間的數(shù)字,而控制參數(shù)的值在(0,3)范圍內,具體取決于狀態(tài)數(shù)組中的行數(shù)。由無序系統(tǒng)隨機生成并排列在一個稱為“移位數(shù)”的一維數(shù)組中,如表3 所示。

      表3 行移位前狀態(tài)Table 3 Status before shift row

      狀態(tài)數(shù)組中的每一行都向左移動,不同的移位值取決于隨機移位數(shù)而不是標準AES 算法中的固定移位值(行號)。輕量化行移位階段如圖4 所示。

      圖4 輕量化行移位Fig.4 Lightweight shift row

      從圖4 中可以看出,移位數(shù)是變量值(不是固定值),排列由無序系統(tǒng)隨機實現(xiàn),以增加狀態(tài)數(shù)組的排列。此外,在解密過程中,輕量化后的逆行移位階段是通過使用相同的隨機移位數(shù)向右移位狀態(tài)數(shù)組來實現(xiàn)的。算法2 解釋的是修改移位行(MSR)階段的步驟。

      3 實驗結果及分析

      算法2:輕量化行移位階段輸入:狀態(tài)數(shù)組、無序移位數(shù)輸出:新狀態(tài)數(shù)組開始For i=1 to 4新狀態(tài)數(shù)組[i]=左移位(狀態(tài)數(shù)組[i],無序移位數(shù)[i]);Next i;結束

      本文在內存有限制的Ubuntu 虛擬機上進行實驗,模擬了嵌入式設備運行環(huán)境。創(chuàng)建了mysqlite.db數(shù)據(jù)庫文件,插入數(shù)據(jù)后,可用sqlite3 命令行打開文件進行查看。在加密后,再次用sqlite3 打開則有“File is not adatabase”的提示不能查閱。此實驗表明了本系統(tǒng)對sqlite 數(shù)據(jù)庫加密有效。

      下面將通過3 種標準進行評估:加密時間,存儲空間和雪崩效應。為展示輕量化AES 性能,實驗還加入了標準AES 和3DES 算法進行對比。表4 展示了5 條十六進制密文的示例。

      表4 十六進制密文示例Table 4 Example of hexadecimal ciphertext

      3.1 加密時間

      利用時間函數(shù)對3 種算法的加密時間進行測試研究。在SQLite 中插入不同大小的信息,測試不同條件下加密算法的加密時間。表5 展示了加密相同SQLite 文件所花費的時間,輕量化AES 比標準AES 快約8%,比3DES 快約17%。因為輕量化AES具有比標準AES 更快捷的字節(jié)替換階段,比3DES迭代輪數(shù)更少。經(jīng)實驗證明,輕量化AES 在加密速度上表現(xiàn)優(yōu)于另兩種方法。

      表5 加密時間測試Table 5 Encryption time test

      3.2 存儲空間

      對3 種算法進行內存占用統(tǒng)計,結果如表6 所示。輕量化AES 比標準AES 小17.8%,比3DES 小約27%。因為加密算法的工作取決于S 盒和逆S盒,輕量化AES 具有比標準AES 和3DES 更小的S盒。標準S 盒由8 個小S 盒(4x16)組成,而輕量化S盒由2x16 組成。經(jīng)統(tǒng)計,輕量化AES 在內存占用上表現(xiàn)優(yōu)于另兩種方法

      表6 內存測試Table 6 Memory test

      3.3 雪崩效應

      雪崩效應是加密算法的一種理想擴散屬性,是指當密碼發(fā)生微小改變時,導致輸出的不可區(qū)分性改變。雪崩效應可以通過式(3)計算

      雪崩效應=密文反轉字節(jié)數(shù)/密文總字節(jié)數(shù)(3)

      每個輸入消息的大小由16 個字符組成,代表一個塊,更改是在明文塊和密文塊之間進行的。通過在密文中使用幾個翻轉位來計算表4 中的示例得。

      由表7 可得,AES 在雪崩效應上優(yōu)于3DES,輕量化AES 略優(yōu)于標準AES。這意味輕量化AES 獲得更安全的加密SQLite 文件,不會輕易受到攻擊者的攻擊。輕量化AES 算法實現(xiàn)了較優(yōu)的數(shù)據(jù)擴散,即理論安全性。

      表7 雪崩效應Table 7 Avalanche effects

      4 結論

      武器平臺上的諸多嵌入式設備計算能力有限,儲存狹小。本文針對這一特點對AES 加密算法進行輕量化改進,并將其應用在嵌入式SQLite 中。所提出的算法通過修改加密過程中的兩個階段:字節(jié)代替和行移位來修改排列和加密時間,同時將迭代次數(shù)縮短至4 輪。經(jīng)測試,輕量化AES 比標準AES 快8%,比3DES 快17%,內存占用比標準AES 輕17.8%,比3DES 輕27%,雪崩效應略優(yōu)于另兩種算法。輕量化AES 在SQLite 中的性能表現(xiàn)良好,達到了預期研究目標。

      猜你喜歡
      數(shù)組字節(jié)輕量化
      JAVA稀疏矩陣算法
      電腦報(2022年13期)2022-04-12 00:32:38
      汽車輕量化集成制造專題主編
      No.8 字節(jié)跳動將推出獨立出口電商APP
      JAVA玩轉數(shù)學之二維數(shù)組排序
      電腦報(2020年24期)2020-07-15 06:12:41
      No.10 “字節(jié)跳動手機”要來了?
      一種輕量化自卸半掛車結構設計
      智富時代(2019年2期)2019-04-18 07:44:42
      簡談MC7字節(jié)碼
      瞄準掛車輕量化 鑼響掛車正式掛牌成立
      專用汽車(2016年1期)2016-03-01 04:13:19
      尋找勾股數(shù)組的歷程
      用戶:輕量化掛車的使用體驗
      專用汽車(2015年4期)2015-03-01 04:09:07
      吴桥县| 凉山| 廊坊市| 涞水县| 绍兴市| 甘洛县| 萨迦县| 黎平县| 浠水县| 磐石市| 徐闻县| 西乌珠穆沁旗| 浦县| 巴里| 甘德县| 曲周县| 融水| 岳普湖县| 尼木县| 黄陵县| 师宗县| 平乐县| 祥云县| 秭归县| 宜阳县| 湖口县| 白山市| 尼木县| 页游| 普宁市| 伊川县| 什邡市| 鞍山市| 昌吉市| 仙桃市| 瓦房店市| 德昌县| 屯留县| 盱眙县| 罗江县| 乐业县|