您好,登錄后才能下訂單哦!
? ? ? ?RSA屬于非對稱加密算法,它雖然解決了“在不安全的信道上安全地傳遞密鑰”這一問題,但缺點在于運算量太大,造成加/解速度太慢,所以在具體的工程應用上是混合使用了對稱和和非對稱加密算法,比如SSL/TLS協議是混合使用了RSA和AES算法。具體的過程是,用RSA算法加密對稱密碼再傳遞給對方,然后雙方使用對稱加密算法通信;另外,RSA還起到CA認證的作用(其實就是驗證由CA的私鑰簽名的,對方的公鑰)。
? ? ? ?由此可見,RSA的作用已經由“加密數據”減弱為“驗證CA證書”和“共享對稱密鑰”,如果第二個作用由DH算法代替,那么,RSA就僅用于驗證CA證書了。
? ? ? ?為了理解用RSA共享對稱密鑰的過程,本文用手動的方法來逐步實現。
? ? ? ??
? ? ? ?A用戶要把數據加密傳輸給B用戶,步驟如下:
? ? ?1、B生成公鑰/私鑰對,并把其中的公鑰導出,通過公開信道傳遞給A;
? ? ?2、A生成對稱密碼;
? ? ?3、A用對稱加密算法對文件進行AES加密;
? ? ?4、A用B的公鑰加密對稱密碼(形成數字信封);
? ? ?5、A將數字信封和密文通過網絡等渠道傳送B;
? ? ?6、B用自己的私鑰解密對稱密碼;
? ? ?7、B用解密后的對稱密碼解密密文;
? ? ?具體的操作步驟:
? ? 1、B生成RSA密鑰對文件key.pri,然后從中提取公鑰key.pub并通過公開信道傳遞給A:
? ? ? ? ? ?
???openssl?genrsa?-out?key.pri?4096 ???openssl?rsa?-in?key.pri?-pubout?-out?key.pub
? ? ?2、A生成32字節的隨機密碼文件passwd.bin:
? ? ? ? ? ? ? ??
???openssl?rand?-out?passwd.bin?32
? ? ? 3、準備待加密文件test.txt,用上面的隨機密碼,以AES算法加密明文test.txt,輸出的密文是test.enc,key派生函數是pbkdf2:
? ? ? ? ? ?
???openssl?enc?-pbkdf2?-aes-256-cbc?-in?test.txt?-out?test.enc?-pass?file:passwd.bin ???del?test.txt
? ? ?4、A用B發過來的公鑰key.pub加密隨機密碼文件passwd.bin,形成數字信封passwd.enc:
? ? ? ? ? ??
???openssl?rsautl?-encrypt?-in?passwd.bin?-inkey?key.pub?-pubin?-out?passwd.enc ???del?passwd.bin
? ? ??5、A通過公開信道,將密文test.enc和passwd.enc發送給B:
? ? ? ? ? ? ? ?
? ? ?6、B首先用自己的私鑰解密數字信封,得到對稱密碼文件passwd.bin:
? ? ? ? ? ?
???openssl?rsautl?-decrypt?-in?passwd.enc?-out?passwd.bin?-inkey?key.pri
? ? ? 7、B再用對稱密碼解密消息,得到明文test.txt,算法和秘鑰派生函數與加密時用到的參數一樣:
? ? ? ? ? ?
? ? ? ? ? ??openssl?enc?-d?-aes-256-cbc?-pbkdf2?-in?test.enc?-out?test.txt?-pass?file:passwd.bin
????????非對稱加密工具可以使用可以使用gpg4win
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。