一文了解對稱加密和非對稱加密
數據加密技術是對數據的一種保護,加密技術可以讓不知道密鑰的非法用戶無法獲得數據的實際內容。
數據加密手段主要分為兩大類,即對稱加密和非對稱加密。兩者在安全性、性能、適用場景上都有一些差異。
越難破解的加密算法就需要越大的計算量,這是一對無法調和的矛盾體。對稱加密使用相同的密鑰進行加密和解密,加密計算過程主要使用位運算進行加密處理,所以是一種高速的加解密算法。非對稱加密使用一對公鑰和私鑰進行加密和解密,公鑰負責加密、私鑰負責解密。所以密鑰通常由數據接收方創建,然后把公鑰分發個數據發送方。非對稱加密需要使用到大數乘法和大數取模等運算,所以計算較慢。
加密的性能也依賴于硬件支持,高級加密標準指令集(AES-IN)是Intel在2008年3月提出的x86指令集的擴展,可以用于Intel和AMD微處理器。開啟硬件支持后,加解密處理速度是未開啟硬件支持的3-4倍。可以使用下面的方法進行測試:
CPU是否包含AES指令集:
grep -m1 -o aes /proc/cpuinfo
使用AES指令集進行加密性能測試的結果:
openssl speed -elapsed -evp aes-256-cbc
OPENSSL_ia32cap="~0x200000200000000" openssl speed -elapsed -evp aes-256-cbc
保險柜再安全,如果鑰匙和密碼丟了也會被非法者輕易破解保險柜的保護。所以密鑰對于加密數據至關重要,如何保管密鑰也成了一個關鍵問題。由于非對稱密鑰的特性,可以先分發公鑰給對方,再由對方使用公鑰加密數據。所以數據傳輸過程中,通常使用非對稱加密的方式傳遞對稱加密的密鑰,密鑰安全數據才能安全。保障密鑰安全后,再對傳輸的數據采用對稱加密。小數據量的密鑰采用更安全的方式,大數據量的內容數據采用“更快速”的加密方式,這樣可以在性能和安全性上找到平衡點。
加密是我們保護信息的手段,應選擇已經證明安全可靠的算法并嚴格遵守加密流程。如果隨意創造加密算法或者對數據進行多次加密處理都可能起到適得其反的效果。