
密碼算法是以研究數據保密為目的,對存儲或者傳輸的信息採取秘密的交換以防第三者對信息竊取的技術。被交換的信息稱為明文( Plaintext),它可以是一段有意義的文字或者數據。變換過後的形式稱為密文( Ciphertext),密文應該是一串雜亂排列的數據,從字面上沒有任何含義。從明文到密文的變換過程稱為加密( Encryption),變換本身是一個以加密密鑰k1為參數的函數,記做EA(P)。密文經過通信信道的傳輸到達目的地後需要還原成有意義的明文才能被通信接受方理解,將密文C還原為明文P的變換過程稱為解密( Decryption),該變換是以解密密鑰k2為參數的函數,記作D2(C)。
1.對稱加密算法
如果加密和解密採用的是同一密鑰,即k1=k2,並且Da2(Ek1(P))=P,則稱為對稱加密算法。該算法的特點是算法公開、計算量小、加密速度快、加密效率高。常見的對稱加密算法有DES、IDEA和AES等。
2.非對稱加密算法
如果加密和解密中採用不同的密鑰,每個通信方均需要k1、k2兩個密鑰,在進行保密通信時,通常將加密密鑰k1公開(稱為公鑰 public key),而保留解密密鑰k2(稱為私鑰 private key)。非對稱加密算法比對稱加密算法計算複雜度高,大量數據加密時用對稱加密算法的速度比非對稱加密算法快100~1000倍,因此,公鑰算法被用來對少量關鍵數據進行加密或數字簽名。被廣泛使用的算法是RSA算法,现在可信計算的非對稱加密算法使用的都是RSA算法。
