1. 程式人生 > >AES與RSA相結合資料加密方案

AES與RSA相結合資料加密方案

RSA演算法是公開金鑰系統的代表,其安全性建立 在具有大素數因子的合數,其因子分解困難這一法則之上的。Rijndael演算法作為新一代的高階加密標準,執行時不需要計算機有非常高的處理能力和大的內 存,操作可以很容易的抵禦時間和空間的攻擊,在不同的執行環境下始終能保持良好的效能。這使AES將安全,高效,效能,方便,靈活性集於一體,理應成為網 絡資料加密的首選。相比較,因為AES金鑰的長度最長只有256位元,可以利用軟體和硬體實現高速處理,而RSA演算法需要進行大整數的乘冪和求模等多倍字 長處理,處理速度明顯慢於AES[5];所以AES演算法加解密處理效率明顯高於RSA演算法。在金鑰管理方面,因為AES演算法要求在通訊前對金鑰進行祕密分 配,解密的私鑰必須通過網路傳送至加密資料接收方,而RSA採用公鑰加密,私鑰解密(或私鑰加密,公鑰解密),加解密過程中不必網路傳輸保密的金鑰;所以 RSA演算法金鑰管理要明顯優於AES演算法。
從上面比較得知,由於RSA加解密速度慢,不適合大量資料檔案加密,因此在網路中完全用公開密碼體制傳 輸機密資訊是沒有必要,也是不太現實的。AES加密速度很快,但是在網路傳輸過程中如何安全管理AES金鑰是保證AES加密安全的重要環節。這樣在傳送機 密資訊的雙方,如果使用AES對稱密碼體制對傳輸資料加密,同時使用RSA不對稱密碼體制來傳送AES的金鑰,就可以綜合發揮AES和RSA的優點同時避 免它們缺點來實現一種新的資料加密方案。加解密實現流程如下圖。
這裡寫圖片描述

具體過程是先由接收方建立RSA金鑰對,接收方通過Internet傳送RSA公鑰到傳送方,同時儲存RSA私鑰。而傳送方建立AES金鑰,並用該 AES金鑰加密待傳送的明文資料,同時用接受的RSA公鑰加密AES金鑰,最後把用RSA公鑰加密後的AES金鑰同密文一起通過Internet傳輸傳送 到接收方。當接收方收到這個被加密的AES金鑰和密文後,首先呼叫接收方儲存的RSA私鑰,並用該私鑰解密加密的AES金鑰,得到AES金鑰。最後用該 AES金鑰解密密文得到明文。

AES+RSA結合最佳實踐
基本要求
保證傳輸資料的安全性
保證資料的完整性
能夠驗證客戶端的身份
基本流程

請求:
1. 
伺服器端(server)和客戶端(client)分別生成自己的金鑰對 2. server和client分別交換自己的公鑰 3. client生成AES金鑰(aesKey) 4. client使用自己的RSA私鑰(privateKey)對請求明文資料(params)進行數字簽名 5. 將簽名加入到請求引數中,然後轉換為json格式 6. client使用aesKey對json資料進行加密得到密文(data) 7. client使用sever的RSA公鑰對aesKey進行加密(encryptkey) 8. 分別將data和encryptkey作為引數傳輸給伺服器端 伺服器端進行請求響應時將上面流程反過來即可

具體實現流程可做優化,例如:client將encryptkey傳輸給伺服器端的方式可以通過HttpHeader來實現。

相關推薦

AESRSA結合資料加密方案

RSA演算法是公開金鑰系統的代表,其安全性建立 在具有大素數因子的合數,其因子分解困難這一法則之上的。Rijndael演算法作為新一代的高階加密標準,執行時不需要計算機有非常高的處理能力和大的內 存,操作可以很容易的抵禦時間和空間的攻擊,在不同的執行環境下始終能

前後端API互動資料加密——AESRSA混合加密完整例項

  前言    前段時間看到一篇文章講如何保證API呼叫時資料的安全性(傳送門:https://blog.csdn.net/ityouknow/article/details/80603617),文中講到利用RSA來加密傳輸AES的祕鑰,用AES來加密資料,並提供如下思路:   說人話就是前

WebSocket資料加密——AESRSA混合加密

  前言   之前在寫“一套簡單的web即時通訊”,寫到第三版的時候沒什麼思路,正好微信公眾號看到一篇講API互動加密,於是就自己搞了一套AES與RSA混合加密,無意中產生應用在WebSocket想法,好在思路都差不多,稍微改動一下就能實現,特意寫這篇部落格記錄下來   WebSo

淺析DESAESRSA三種典型加密算法的比較

問題 通訊 無法 尋找 rsa算法 結合 rsa加密 軟件技術 -c DES與AES的比較 自DES 算法公諸於世以來,學術界圍繞它的安全性等方面進行了研究並展開了激烈的爭論。在技術上,對DES的批評主要集中在以下幾個方面: 1、作為分組密碼,DES 的加密單位僅有64

AESRSA加密

AES using System; using System.Text; using System.Security.Cryptography; using System.IO; namespace winfAESEncryptDecrypt { public

Java對稱非對稱加密解密,AESRSA

加密技術可以分為對稱與非對稱兩種. 對稱加密,解密,即加密與解密用的是同一把祕鑰,常用的對稱加密技術有DES,AES等 而非對稱技術,加密與解密用的是不同的祕鑰,常用的非對稱加密技術有RSA等 為什麼要有非對稱加密,解密技術呢 假設這樣一種場景A要傳送一段訊息給B,但是又

api介面資料加密方案一則

背景說明   Api在傳輸過程中可能被竊聽,某些情況下需要對api進行加密。 當然可以使用https 本文介紹另一種加密方式   解決方案 需要聯合使用對稱加密AES與非對稱加密RSA 每次呼叫客戶端隨機產生一個aes密碼,並把呼叫明文加密成呼叫密

Java的遞迴、如何結合

遞迴技術 需求:掃描D:\test所有子資料夾及子子資料夾下的.jpg檔案。 我們如果用迴圈來做這件事,我們不知道迴圈的結束條件,也不知道到底有多少層,所以比較麻煩。 我們可以用一種新的思想:遞迴。 遞迴舉例: 從前有一座山,山裡有座廟,廟裡有個老和尚,老和尚在給小和尚講故

androidHTML5結合實現的省市縣三級聯動

eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--){d[c]=k[c]||c}k=[function(e){return d[e]}];e=function(){return'\\w

4.2JMeter 介面測試fiddler結合

關於JMeter工具的功能點介紹在網上找了一個相對全面的認知https://blog.csdn.net/zl1zl2zl3/article/details/78194194   安裝fiddler 連結:https://pan.baidu.com/s/1UNjatNPNO5my

將使用者物品結合的CF

1、Collaborative Filtering and Deep Learning Based Recommendation System For Cold Start Items 將冷啟動問題CS,根據稀疏程度進一步劃分CCS(稀疏性為100%)和ICS(稀疏性達到85%) (1)利

ssh遠端免密登入alias結合

操作Linux是現在任何一家IT公司都要求的技能,而且Linux博大精深,都是以各種命令l來操作,要學會靈活使用,提高工作效率 ssh免密登入和alias命令結合使用 在測試工作中,對於檢視一些問題,一些程序的時候,我們需要登入到服務端的後臺機器,去檢視

Opencv之HOG特徵SVM結合的人體檢測(增加自舉法)

Hello~洛基在上一篇關於人體檢測的文章末尾提到了自舉法,這裡科普一下,所謂自舉法,即在一個容量為n的原始樣本中重複抽取一系列容量也是n的隨機樣本,並保證每次抽樣中每一樣本觀察值被抽取的概率都為1/n。好像不是很通俗易懂,說人話就是——應用於行人檢測中的自舉方法是,對於訓

QUIC FEC 的結合-互動協商方案

nwcrg I. Swett Internet-Draft

Android 資料加密方法 AES DES RSA AndroidKeyStore

Java概述 一、使用SecretKeySpec生成祕鑰進行對稱加密 一個問題 如果建立密碼器的時候, Cipher cipher = Cipher.getInstance(TRANSFORMATION); TRANSFORMATION = "AES"如果和生成祕鑰的演算法一樣設定為 “

RSADiffie-Hellman結合的保密通訊

最近由於工作需要在思考身份驗證和保密通訊 ,把它記錄下來.Deffie-Hellman 金鑰交換演算法最大的缺點的存在中間人攻擊的弱點,Deffie-Hellman簡述如下: 前提:約定一個大素數p,一個小於p的大整數g.A: X = gx mod p; x是一隨機整數.B:

DES、AESRSA、MD5加密演算法辨析應用場景

資訊保安Cryptographic Techniques 對稱加密演算法 Data Encryption Standard(DES) DES 是一種典型的塊加密方法:將固定長度的明文通過一系列複雜的操作變成同樣長度的密文,塊的長度為64位。同時,DE

Android資料加密RSA+AES混合加密

在上一篇Android資料加密 中已經介紹了Android中資料加密的情況,並且在總結中給出了RSA+AES混合加密的方案,下面就來介紹一下RSA+AES混合加密。 1.RSA+AES混合加密過程 Android端的資料加密過程: -首先生成一對

基於HTTP在網際網路傳輸敏感資料的訊息摘要、簽名加密方案

一、關鍵詞 HTTP,HTTPS,AES,SHA-1,MD5,訊息摘要,數字簽名,數字加密,Java,Servlet,Bouncy Castle 二、名詞解釋    數字摘要:是將任意長度的訊息變成固定長度的短訊息,它類似於一個自變數是訊息的函式

h5 網絡斷網時,返回上一個頁面 demo (檢測網絡代碼結合,更直觀看到結果)

oct width 加載 doctype lin 測試 htm mini offline 頁面一: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8">