對稱密碼算法雖然密鑰管理繁瑣,但有着自身的優點,加解密運算速度非常快,適合處理大批量數據。非對稱密碼算法公私鑰可以分離,適合密鑰分發與管理,但運算速度慢,不適合大批量數據。若能夠將對稱密碼算法和非對稱密碼算法的優點結合起來,既能夠處理大批量的的數據,又能高效的分發管理密鑰,於是數字信封由此誕生。
數字信封的原理是采用對稱密碼算法對大批量數據進行加密,然后采用非對稱密碼算法對其中的對稱密鑰進行加密;解密過程時,首先用非對稱密碼算法解密獲取對稱密鑰,然后使用對稱密鑰解密數據,獲取數據明文。
和普通的信封類似,數字信封采用對稱密碼算法對數據進行加密類似於信紙上的內容,采用非對稱密碼算法對對稱密鑰進行加密類似於信封將信紙包起來。
數字信封的生成和解開過程如圖所示:
Step1 發送方A需要預先獲取接收方B的公鑰,然后隨機產生對稱密鑰,並使用該密鑰加密數據;
Step2 發送方A使用公鑰對對稱密鑰進行加密;
Step3 發送方A把數據密文和對稱密鑰密文一起發送給接收方B;
Step4 接收方B使用自己的私鑰對密鑰密文解密,獲取對稱密鑰;
Step5 接收方B使用密鑰對數據密文進行解密,獲取明文數據。