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

?

用于在線升級的無密鑰加解密方法研究

2021-01-07 08:36:24陳栩睿
數字通信世界 2020年12期
關鍵詞:明文密文解密

陳栩睿

(西南大學電子信息工程學院,重慶 400715)

1 傳統(tǒng)的主流加密方式

隨著數字化信息技術的不斷發(fā)展,信息安全問題也日顯突出,企業(yè)或個人的部分敏感數據應該加密保存或發(fā)布,在特定裝置中才能被解密使用,例如嵌入式設備的程序升級文件。同時,移動互聯(lián)網內容消費時代正在普及,越來越多的用戶愿意為優(yōu)質內容付費,企業(yè)或個人為保護自己的數字內容不被竊取,需要對內容進行加密傳輸,最后在智能終端解密使用。另外,應用中還要求數據解密過程應盡量不消耗額外的硬件資源,否則會降低用戶的體驗感。

目前,主流的加密方式有單密鑰模式、雙密鑰模式兩種。單密鑰模式采用的是對稱加密算法,即加密密鑰和解密密鑰相同,加密產生密文,其長度和明文大致相同,一般包括 DES、3DES、AES等。雙密鑰模式也稱為公鑰模式,其采用的是非對稱加密算法,加密和解密所使用的是不同的密鑰,即通常所說的“公鑰”和“私鑰”,公鑰與私鑰是一對,如果用公鑰對數據進行加密,只有用對應的私鑰才能解密;如果用私鑰對數據進行加密,那么只有用對應的公鑰才能解密。但嚴格意義上說,只能使用公鑰加密,使用私鑰來解密。而使用私鑰加密更多的起到簽名的作用,讓公鑰解密來驗證身份,因為公鑰是要傳遞的,有泄露風險。 RSA算法、 Elgamal算法、橢圓離散對數算法等就屬于雙密鑰模式。

然而,單密鑰加密方式中,由于加密和解密使用的是同一個密鑰,一旦加密方或解密方泄露了密鑰,就會喪失安全,因此,安全性較低。雙密鑰加密方式的計算壓力較大,而且,采用雙密鑰加密方式加密后,密文的數據長度會增長,保存和傳輸壓力會加大。因此,上述傳統(tǒng)的主流加密方式不適用于嵌入式平臺的智能終端程序和文件的在線升級應用。針對嵌入式平臺的智能終端中的程序和文件的在線升級應用,本文提出了一種無密鑰的加解密方法及算法。

2 算法描述

嵌入式平臺的智能終端中程序和文件在線升級的無密鑰加密方法,主要是在確保算法安全性的基礎上考慮算法的便捷性。本文提出的無密鑰加密方法是通過選用不同的摘要算法來得到類密鑰信息,并通過異或運算來生成密文;同時,通過選用相應的長度算法,來確保數據塊的分割不易被反譯識別。

具體過程是:先將程序和文件數據分割為n個不固定字節(jié)長度的數據塊,自數據的起始到結尾依次為DB1、DB2……DBn,DBn的長度為Ln,其中,n≥1。再從每個數據塊的起始地址開始,選取不少于一個字節(jié)作為頭部,DBn的頭部為Hn,數據塊的起始地址是通過迭代的方式獲取,即數據塊DBn的地址取決數據塊DBn-1的地址和長度,數據塊DB1的起始地址為整個數據文件的首地址。

接著,從Hn任取不少于一個比特作為摘要算法的輸入元素Xn。然后,使用摘要算法fH(·)計算出每個數據塊頭部的類密鑰信息,再將該類密鑰信息與頭部明文進行相應的異或運算,得到頭部密文。同時,利用長度算法fL(·)計算數據塊長度,利用不同的摘要算法fK(·)計算數據塊內所有字節(jié)數據流的摘要信息來作為數據塊內的類密鑰信息,再利用該類密鑰信息與每一個字節(jié)數據進行相應的異或運算得到密文。

圖1 數據塊及其頭部劃分示意圖

摘要算法主要是指數據摘要算法,它表示輸入任意長度的數據,輸出固定長度的數據,相同的輸入數據始終得到相同的輸出,不同的輸入數據盡量得到不同的輸出。數據摘要算法具有不可逆性,其主要功能有數據簽名、數據完整性驗證等,這里我們主要是利用它來計算生成類密鑰信息。常用的數據摘要算法有:CRC、MD5、SHA等,可以根據實際應用的便捷或復雜程度的要求進行選擇。

解密方法與加密方法對稱,先提取第一個數據塊的頭部密文和元素,通過摘要算法計算出第一個數據塊的頭部明文,并通過長度算法fL(·)計算第一個數據塊的長度,然后計算第一個數據塊中除頭部外每一個字節(jié)的類密鑰信息和明文,接著再提取第二個數據塊的頭部密文和元素,依次進行解密計算。

3 算法流程

整個無密鑰加解密算法的具體流程如下:

3.1 加密流程

(1)提取數據塊DB1的頭部H1。

(2)從H1中任意選不少于一個比特作為所選摘要算法的輸入元素X1,數據塊長度和字節(jié)的類密鑰信息計算均以該元素作為輸入。

(3)按如下摘要算法計算 H1的類密鑰信息,并通過異或運算得到密文C1:

式中,數據塊頭部密文摘要算法fH使用前一個數據塊的頭部密文Cn-1,計算本數據塊的頭部類密鑰信息,并通過與頭部明文Hn進行異或運算得到密文Cn。當n=1時,Cn-1即C0為一個約定的初值M。注意,使用頭部密文時,不能覆蓋X1所在的比特位。

(4)計算數據塊DB1的長度L1:

(5)計算數據塊DB1內除頭部外的每一個字節(jié)Dk的類密鑰信息Sk和密文Ek,數據塊中每一個字節(jié)Dk使用不同的摘要算法,計算出第k個字節(jié)的類密鑰信息Sk:

(6)提取下一數據塊的頭部,重復步驟(2)-(5),直到所有數據塊加密完成即可。流程圖如圖2所示。

圖2 無密鑰加密算法流程圖

圖3 無密鑰解密算法流程圖

3.2 解密流程

(1)從數據塊DB1的頭部中提取出密文C1。

(2)從數據塊DB1的頭部中提取出元素X1。

(3)按如下算法解密生成數據塊DB1的頭部明文H1:

其中,明文不覆蓋X1。

(4)計算數據塊 DB1長度L1:

(5)計算數據塊DB1內除頭部外的每一個字節(jié)密文Ek的類密鑰信息Sk,然后與密文Ek進行異或運算得到明文Dk:

(6)提取下一數據塊的頭部密文和元素,重復步驟(2)-(5),直到所有數據解密完成即可。流程圖如圖3所示。

4 結束語

由于該無密鑰加解密方法先將數據分割為n個不固定長度的數據塊;再從每個數據塊的起始地址開始,選取不少于一個字節(jié)作為頭部;接著從數據塊的頭部中任取不少于一個比特作為摘要算法的輸入元素;然后使用摘要算法和異或運算,從每個數據塊的頭部計算出頭部類密鑰信息和密文、數據塊長度以及數據塊所有字節(jié)的類密鑰信息,使用該類密鑰信息與每一個字節(jié)的明文進行異或運算得到密文,從而完成加密。解密是通過與加密過程對稱的解密過程實現(xiàn)。這種加解密方法的加密過程中數據塊長度和每個字節(jié)的類密鑰信息具備隨機性,所以逆向“碰撞”難以破解,而且本方法屬于算法流程不公開的加密方法,只是應用在專屬的智能終端等設備上,并很好地利用了多種數據摘要算法,安全性高。

同時,本方法按字節(jié)順序計算密文,不用緩存數據,沒有復雜的運算,計算壓力較小。另外,采用本方法加密后不會改變密文的數據長度,從而不會增加數據的保存和傳輸壓力。我們已將該方法應用于專用智能終端的嵌入式軟件的在線升級中,一年共完成了4版軟件的在線升級,流程很順暢,用戶體驗感很好,沒有發(fā)生軟件被破譯后盜用的現(xiàn)象。

猜你喜歡
明文密文解密
解密“熱脹冷縮”
一種針對格基后量子密碼的能量側信道分析框架
一種支持動態(tài)更新的可排名密文搜索方案
基于模糊數學的通信網絡密文信息差錯恢復
解密“一包三改”
少先隊活動(2020年9期)2020-12-17 06:17:31
炫詞解密
奇怪的處罰
奇怪的處罰
四部委明文反對垃圾焚燒低價競爭
铜山县| 尤溪县| 剑川县| 临漳县| 华亭县| 祥云县| 蒙阴县| 吐鲁番市| 沙坪坝区| 陈巴尔虎旗| 方正县| 内乡县| 电白县| 灵丘县| 东明县| 益阳市| 轮台县| 南昌市| 宜城市| 蕲春县| 塔城市| 元氏县| 庐江县| 鄂托克前旗| 芦溪县| 大连市| 板桥市| 定西市| 黄冈市| 滨海县| 健康| 周宁县| 奇台县| 乐平市| 安康市| 德州市| 喀什市| 磐安县| 井冈山市| 蓬溪县| 达孜县|