密钥是密码和明码之间的对应替代关系,分为
对称密钥与
非对称密钥。如以00、01、02、03代替字母A、B、C、D,那么00译成A、01译成B、02译成C、03译成D就是密钥。
密码学中:密钥(secret key)——用于加解密数据的工具;私钥(private key)——私有的加解密工具;公钥(public key)——公开的加解密工具。
根据密码算法所使用的加密密钥和解密密钥是否相同、能否由加密过程推导出解密过程(或者由解密过程推导出加密过程),可将密码体制分为
对称密码体制(也叫作单钥密码体制、秘密密钥密码体制、对称密钥密码体制)和
非对称密码体制(也叫作双钥密码体制、公开密钥密码体制、非对称密钥密码体制)。
对称密钥加密,又称私钥加密或会话密钥加密算法,即信息的发送方和接收方使用同一个密钥去加密和解密数据。它的最大优势是加/解密速度快,适合于对大数据量进行加密,但密钥管理困难。
非对称密钥加密系统,又称公钥密钥加密。它需要使用不同的密钥来分别完成加密和解密操作,一个公开发布,即公开密钥,另一个由用户自己秘密保存,即私用密钥。信息发送者用
公开密钥去加密,而信息接收者则用私用密钥去解密。公钥机制灵活,但加密和解密速度却比对称密钥加密慢得多。
所以在实际的应用中,人们通常将两者结合在一起使用,例如,对称密钥加密系统用于存储大量数据信息,而
公开密钥加密系统则用于加密密钥。
对于普通的对称密码学,加密运算与解密运算使用同样的密钥。通常,使用的对称加密算法比较简便高效,密钥简短,破译极其困难,由于系统的保密性主要取决于密钥的安全性,所以,在公开的计算机网络上安全地传送和保管密钥是一个严峻的问题。正是由于对称密码学中双方都使用相同的密钥,因此无法实现数据签名和不可否认性等功能。
20世纪70年代以来,一些学者提出了公开密钥体制,即运用单向函数的数学原理,以实现加、解密密钥的分离。加密密钥是公开的,解密密钥是保密的。这种新的密码体制,引起了密码学界的广泛注意和探讨。
不像普通的对称密码学中采用相同的密钥加密、解密数据,非对称密钥加密技术采用一对匹配的密钥进行加密、解密,具有两个密钥,一个是
公钥一个是
私钥,它们具有这种性质:每把密钥执行一种对数据的单向处理,每把的功能恰恰与另一把相反,一把用于加密时,则另一把就用于解密。用公钥加密的文件只能用私钥解密,而私钥加密的文件只能用公钥解密。 公共密钥是由其主人加以公开的,而私人密钥必须保密存放。为发送一份保密报文,发送者必须使用接收者的公共密钥对数据进行加密,一旦加密,只有接收方用其私人密钥才能加以解密。 相反地,用户也能用自己私人密钥对数据加以处理。换句话说,密钥对的工作是可以任选方向的。这提供了“
数字签名”的基础,如果要一个用户用自己的私人密钥对数据进行了处理,别人可以用他提供的公共密钥对数据加以处理。由于仅仅拥有者本人知道私人密钥,这种被处理过的报文就形成了一种电子签名——一种别人无法产生的文件。
数字证书中包含了公共密钥信息,从而确认了拥有密钥对的用户的身份。
简单的公共密钥例子可以用素数表示,将素数相乘的算法作为公钥,将所得的乘积分解成原来的素数的算法就是私钥,加密就是将想要传递的信息在编码时加入素数,编码之后传送给收信人,任何人收到此信息后,若没有此收信人所拥有的私钥,则解密的过程中(实为寻找素数的过程),将会因为找素数的过程(
分解质因数)过久而无法解读信息。