密码算法是以研究数据保密为目的,对存储或者传输的信息采取秘密的交换以防第三者对信息窃取的技术。被交换的信息称为明文( 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算法。