
按照技術特徵分類,密碼算法可以分為以下三類。
1.對稱算法
對稱算法是指加密密鑰與解密密鑰一樣的密碼算法,又叫做秘密密鑰算法或單密鑰算法。該類算法又分為流密碼算法和分組密碼算法。
流密碼算法又叫做序列密碼算法,每加密/解密一位或者一字節的明文或密文。
分組密碼算法把明文(密文)分成確定長度的數據塊(比特塊或字節塊),用同一密鑰和算法對每一明文(密文)塊加密(解密)後得到一樣長的密文(明文)塊,然後將密文(明文)塊按照順序組合起來最終得到明文(密文)。
常見的流密碼算法包括RC4;常見的分組密碼算法包括DES、IDEA、RC2、AES、SM4等。
2.非對稱算法
非對稱算法指的是加密的密鑰與解密的密鑰不一樣的密碼算法,從一個密鑰推導出另一個密鑰很難,又叫做公開密鑰算法或公鑰算法。該算法使用一個密鑰進行加密,使用另一個密鑰進行解密。其中加密密鑰可以公開,又叫做公開密鑰或公鑰;解密密鑰一定要保密,又叫私有密鑰或私鑰。
常見的非對稱算法包括RSA、DH、DSA、ECDSA、ECC、SM2等。
3.摘要算法
摘要算法指的是把隨意長的輸入消息數據轉換為確定長度的輸出數據的一種密碼算法,又叫做散列函數、哈希函數或雜湊函數、單向函數等。摘要算法所產生的確定長度的輸出數據叫做摘要值、散列值或哈希值。摘要算法沒有密鑰。
常見的摘要算法包括MD5、SHAI、SM3等。
