
密碼算法是描述密碼處理過程的運算規則。例如,加密算法指把信息變成密文的計算方法。密碼算法主要有對稱密碼與非對稱密碼兩大類算法。
對稱密碼算法指加、解密的密鑰一樣,或知道其一密鑰很易推導出另一個密鑰。根據原理不同,對稱密碼算法又分成分組密碼與流密碼。通常情況下,對稱密碼加密算法的加解密速度非常快,適用大批量數據加密的場合。例如,SM4是一種典型的分組對稱密碼算法,分組長度是128bit,密鑰長度是128bit。其他常見的對稱密碼算法有DES、AES等。
公鑰密碼算法(也叫非對稱密碼算法)指用來加、解密的密鑰不一樣,且由加密的密鑰是無法推導得到解密密鑰的。這類算法正因為被叫公鑰算法,是由於加密密鑰是能廣泛公開的,任何人均能得到加密密鑰並用於加密信息,但僅有對應解密密鑰的人才能將信息解密。在公鑰密碼算法機制中,用來加密的密鑰叫做公鑰,而解密的密鑰叫私鑰。私鑰由用戶保存,且不能泄露,公鑰則能公開發佈。例如,SM2是一種橢圓曲線公鑰密碼算法,其密鑰長度是256bit。常見的公鑰密碼算法包括RSA等。
公鑰密碼算法體制最大優勢是,能妥善解決對稱密碼算法很難處理的密鑰交換問題。然而,公鑰密碼算法普遍比對稱密碼算法的加密速率慢得多,因此大量的數據加密傳輸不適合用。在實際應用中,公鑰密碼算法一般是與對稱密碼算法結合在一起用,用密碼算法交換/協商密鑰,而用對稱密碼算法用密鑰對數據加密。
此外還有一類算法叫密碼雜湊算法(湊也被稱作散列、哈希等)。該算法的作用是把隨意長的輸入消息串變化為確定長度的二進制串。該算法主要用於配合公鑰密碼算法計算數字簽名。例如,SM3是一種密碼雜湊算法,其輸出為256bit。常見的密碼雜湊算法有MD5、SHA-1、SHA256等。
國密算法指由國家密碼主管组织批准發佈的一系列自主密碼算法。常見的國密算法有SM2、SM3、SM4等。
