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