非對稱加密是指進行明文到密文加密和進行密文到明文解密時使用不同的密鑰。
非對稱加密算法在使用前首先要生成公私鑰對,一個用于加密,另一個用于解密,其中用于加密的密鑰可以公開,稱為公鑰(Public Key),用于解密的密鑰需要嚴格保存不能公開,稱為私鑰(Private Key)。
當Alice向Bob請求公鑰時,Bob將公鑰發(fā)送給Alice。
Alice獲得公鑰后使用公鑰對消息加密,對于加密后的消息,只有加密公鑰所對應(yīng)私鑰的持有者才能解密消息,在這里也就是私鑰的擁有者Bob。
Alice使用獲得的公鑰將消息加密后發(fā)送給Bob,然后Bob用自己的私鑰進行解密,獲得原始信息。
與對稱加密不同的是,Bob不需要將私鑰通過網(wǎng)絡(luò)發(fā)送出去,因此安全性大大提高。
優(yōu)點:非對稱加密解決了對稱加密中密鑰傳輸難的問題,降低了密鑰管理的難度,通信雙方不需要建立一個安全的信道即可進行密鑰的交換,
缺點1:但這樣產(chǎn)生了新的問題,非對稱加密的加解密速度慢于對稱加密,不適合大量數(shù)據(jù)需要加解密的場景,性能相對較差。
缺點2:因為公鑰公開,如果有人用公鑰加密數(shù)據(jù)發(fā)送給接收者,接收者是無法判斷發(fā)送者身份的。
非對稱加密代表算法:RSA、橢圓曲線算法(ECC)、SM2。