加密簽名演算法
1. RSA加密、解密、簽名、驗簽的原理及方法
RSA加密是一種非對稱加密。可以在不直接傳遞密鑰的情況下,完成解密。這能夠確保信息的安全性,避免了直接傳遞密鑰所造成的被破解的風險。是由一對密鑰來進行加解密的過程,分別稱為公鑰和私鑰。兩者之間有數學相關,該加密演算法的原理就是對一極大整數做因數分解的困難性來保證安全性。通常個人保存私鑰,公鑰是公開的(可能同時多人持有)。
加密和簽名都是為了安全性考慮,但略有不同。常有人問加密和簽名是用私鑰還是公鑰?其實都是對加密和簽名的作用有所混淆。簡哪睜單的說,加密是為了防止信息被泄露,而簽名是為了防止信息被篡改。這里舉2個例子說明。
RSA的加密過程如下:
RSA簽名的過程如下:
總結:公鑰加密、私鑰解密、私鑰簽名、公鑰驗簽。
RSA加密對明文的長度有所限制,規定需加密的明文最大長度=密鑰長度-11(單位是位元組,即byte),所以在加密和解密的過程中需要分塊進行。而密鑰默認是1024位,即1024位/8位-11=128-11=117位元組。所以默認加密前的明文最大長度117位元組,解密密文最大長度為128字。那指知么李逗歲為啥兩者相差11位元組呢?是因為RSA加密使用到了填充模式(padding),即內容不足117位元組時會自動填滿,用到填充模式自然會佔用一定的位元組,而且這部分位元組也是參與加密的。
2. 不可逆的加密演算法 有哪些
不可逆的加密演算法有:哈希演算法(Hash Algorithm)和公鑰加密演算法中的數字簽名演算法。
哈希演算法是一種被廣泛應用的不可逆加密演算法。它將任意長度的輸入轉化為固定長度的輸出。哈希演算法的特點是單向性,即已知輸入可以很容易地通過哈希函數得到哈希值,但已知哈希值卻無法逆向推導出原始輸入。這使得哈希演算法在數據完整性校驗和密碼存儲等領域得到了廣泛應用。常見的哈希演算法包括MD5、SHA-1和SHA-2系列等。
公鑰加密演算法中的數字簽名演算法也是不可逆的。數字簽名是為了驗證信息發送者的身份以及信息的完整性。在數字簽名過程中,發送者使用私鑰對信息進行加密處理,生成一個簽名。接收者使用發送者的公鑰來驗證簽名的有效性。由於數字簽名的生成涉及私鑰的使用並且也是單向的加密過程,因此也是不可逆的。典型的公鑰加密演算法如RSA演算法既可用於加密通信,也可用於數字簽名。
這些不可逆加密演算法在安全領域起到了重要作用,由於其特有的單向性特點,保證了數據的安全性和隱私保護。哈希演算法的固定長度輸出和快速計算特性使得它在數據校驗和密碼存儲方面非常有效;而數字簽名則確保了數據的來源真實可靠,通信過程中的信息完整,以及抗否認性。