本申請屬于數據加解密,尤其涉及一種數據加密、解密方法、裝置、設備及計算機可讀存儲介質。
背景技術:
1、隨著互聯網技術的發展,越來越多的數據信息通過網絡進行傳輸,信息保護問題日益突出,機密信息的傳輸尤為重要。
2、現有技術手段對數據進行加密時一般采用對稱加密手段。在通信過程中,數據發送方將原始數據分割成固定大小的塊,經過密鑰和加密算法逐個加密后,發送給接收方,接收方收到密文后結合解密算法使用相同密鑰解密組合后得出原始數據。在上述過程中,由于加解密算法是公開的,因此密鑰的安全傳遞就成為了至關重要的事。
3、而密鑰通常來說是通過雙方協商,以物理的方式傳遞給對方,或者利用第三方平臺傳遞給對方,一旦這過程出現了密鑰泄露,不法分子就能結合相應的算法攔截解密出其加密傳輸的內容。同時,該種技術的擴展性也差,每對通信用戶之間都需要協商密鑰,n個用戶的團體就需要協商n*(n-1)/2個不同的密鑰,不便于管理;而如果都使用相同密鑰的話,密鑰被泄漏的機率大大增加,加密也就失去了意義,因此目前的加密解密方式安全性都相對較低。
技術實現思路
1、本申請實施例提供一種數據加密、解密方法、裝置、設備及計算機可讀存儲介質,以解決目前通過密鑰對數據信息進行加、解密的方式數據傳輸安全性較低的問題。
2、第一方面,本申請實施例提供一種數據加密方法,應用于發送端,方法包括:
3、基于llvm項目框架對初始數據的源代碼進行詞法和語義分析,得到分析結果;
4、將分析結果轉換為抽象語法樹,所述抽象語法樹用于對所述源代碼進行代碼優化;
5、將代碼優化后的源代碼編譯為靜態單賦值形式的llvm?ir加密語句;
6、向與所述發送端通信連接的接收端發送所述llvm?ir加密語句。
7、第二方面,本申請實施例提供一種數據解密方法,應用于接收端,方法包括:
8、接收與所述接收端通信連接的發送端發送的llvm?ir加密語句;
9、將所述llvm?ir加密語句轉換為smt公式;
10、將所述smt公式輸入至smt求解器,輸出二進制編碼表;
11、將所述二進制編碼表與預設對照碼表進行對照以解密得到初始數據。
12、第三方面,本申請實施例提供了一種數據加密裝置,應用于發送端,裝置包括:
13、代碼分析模塊,用于基于llvm項目框架對初始數據的源代碼進行詞法和語義分析,得到分析結果;
14、代碼優化模塊,用于將分析結果轉換為抽象語法樹,所述抽象語法樹用于對所述源代碼進行代碼優化;
15、代碼編譯模塊,用于將代碼優化后的源代碼編譯為靜態單賦值形式的llvm?ir加密語句;
16、數據發送模塊,用于向與所述發送端通信連接的接收端發送所述llvm?ir加密語句。
17、第四方面,本申請實施例提供了一種數據解密裝置,應用于接收端,裝置包括:
18、數據接收模塊,用于接收與所述接收端通信連接的發送端發送的llvm?ir加密語句;
19、公式轉換模塊,用于將所述llvm?ir加密語句轉換為smt公式;
20、公式求解模塊,用于將所述smt公式輸入至smt求解器,以輸出二進制編碼表;
21、編碼對照模塊,用于將所述二進制編碼表與預設對照碼表進行對照以解密得到初始數據。
22、第五方面,本申請實施例提供了一種終端設備,設備包括:處理器以及存儲有計算機程序指令的存儲器;
23、處理器執行計算機程序指令時實現如第一方面的數據加密方法,或者實現如第二方面的數據解密方法。
24、第六方面,本申請實施例提供了一種計算機存儲介質,計算機可讀存儲介質上存儲有計算機程序指令,計算機程序指令被處理器執行時實現如第一方面的數據加密方法,或者實現如第二方面的數據解密方法。
25、第七方面,本申請實施例提供了一種計算機程序產品,其特征在于,計算機程序產品中的指令由終端設備的處理器執行時,使得終端設備執行如第一方面的數據加密方法,或者實現如第二方面的數據解密方法。
26、本申請實施例提供的應用于發送端的數據加密方法,基于llvm項目框架對初始數據的源代碼進行詞法和語義分析,得到分析結果;將分析結果轉換為抽象語法樹,所述抽象語法樹用于對所述源代碼進行代碼優化;將代碼優化后的源代碼編譯為靜態單賦值形式的llvm?ir加密語句;向與所述發送端通信連接的接收端發送所述llvm?ir加密語句。本申請實施例中,在發送端和接收端之間傳輸過程中的數據是未轉換成smt公式的llvm?ir語句,該語句由源碼轉化具有不可逆屬性,且要傳抵目標接收端后才會進行格式轉換,驗證解碼操作,具有優秀的保密與截取無效功能,本申請以一種非對稱加密或者說是對源碼的單向加密的方式,可以有效地防止傳輸過程中發送端的木馬、腳本對源信息進行竊取以及基站或服務器轉發時黑客對信息的截獲,從而保證信息命令傳輸時的安全。以及,基于本申請可形成用戶獨有的解碼體系,具體解碼內容可由用戶自行編輯,在提高數據安全性的同時還便于用戶對數據安全進行管理和個性化自定義,具有較高的商業價值和市場前景。
1.一種數據加密方法,應用于發送端,其特征在于,所述方法包括:
2.根據權利要求1所述的方法,其特征在于,所述基于llvm項目框架對初始數據的源代碼進行詞法和語義分析,得到分析結果,包括:
3.根據權利要求2所述的方法,其特征在于,所述將代碼優化后的源代碼編譯為靜態單賦值形式的llvm?ir加密語句,包括:
4.根據權利要求3所述的方法,其特征在于,所述將原始形式的llvm?ir中間語句進行靜態賦值,包括:
5.根據權利要求3所述的方法,其特征在于,所述將原始形式的llvm?ir中間語句進行靜態賦值,包括:
6.一種數據解密方法,應用于接收端,其特征在于,所述方法包括:
7.根據權利要求6所述的方法,其特征在于,所述將所述llvm?ir加密語句轉換為smt公式,包括:
8.根據權利要求7所述的方法,其特征在于,所述利用語義分析和所述llvm?ir加密語句的控制流信息對所述llvm?ir加密語句進行拓撲排序,包括:
9.根據權利要求7所述的方法,其特征在于,所述將所述llvm?ir加密語句轉換為smt公式的步驟,包括:
10.一種數據加密裝置,應用于發送端,其特征在于,所述裝置包括:
11.一種數據解密裝置,應用于接收端,其特征在于,所述裝置包括:
12.一種終端設備,其特征在于,所述設備包括:處理器以及存儲有計算機程序指令的存儲器;
13.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質上存儲有計算機程序指令,所述計算機程序指令被處理器執行時實現如權利要求1-5任意一項所述的數據加密方法,或者實現如權利要求6-9任意一項所述的數據解密方法。
14.一種計算機程序產品,其特征在于,所述計算機程序產品中的指令由終端設備的處理器執行時,使得所述終端設備執行如權利要求1-5任意一項所述的數據加密方法,或者實現如權利要求6-9任意一項所述的數據解密方法。