【密码学原理】公钥密码学基本原理

    科技2022-07-10  138

    公钥算法是基于数学函数而不是基于代替和置换,与只使用一个密钥的对称密码不同,公钥密码是非对称的,它使用两个独立的密钥。

    公钥密码的提出,主要用于解决两个问题:密钥分配问题和数字签名问题。

    公钥算法依赖于一个加密密钥和一个与之相关的解密密钥:

    仅根据密码算法和加密密钥来确定解密密钥在计算上是不可行的,也就是说加密密钥与解密密钥相互独立两个密钥中的任何一个都可以用于加密,另一个用于解密公钥密码体制中有:明文,加密算法,公钥和私钥,密文,解密算法。

    在加密的时候,Bob拥有Alice等多人的公钥,如果要给Alice发送消息,就用Alice的公钥对消息加密,然后将密文发送给Alice。在Alice接收到Bob发送过来的密文后,用Alice自己的私钥进行解密,得到明文。

    在这个加密和解密过程中,与对称密码不同的是,加密密钥和解密密钥是不同的两个值,加密的密钥(公钥)是公开的,所有人都可以知道,但是解密的密钥(私钥)是接收方才可以拥有的,是受保护的。即使知道公钥也不能解密密文,这是公钥加密的特点,只有拥有私钥才能解密密文,确保了密文的安全传输。

    Bob用自己的私钥给明文加密,然后将密文发送给Alice,Alice通过Bob的公钥解密。这里解密输出的明文,是大家都可以知道,因为Bob的公钥是公开的,所以任何人都可以解密,所以不具有保密性。为什么要用Bob的私钥加密?

    Bob的私钥只有Bob自己拥有,其他任何人都不会拥有,所以如果能够用Bob的公钥对密文解密,那么这个密文就应该是Bob加密,这就可以用于数字签名。类似于手写的签名,自己笔迹似乎只有自己才能写出来,自己的笔迹就相当于私钥,别人模仿不了。

    公钥密码应该满足:

    密钥对的生成在计算上是容易的已知公钥和明文,发送方生成相应的密文在计算上是容易的接收方用私钥对接收到的密文解密恢复明文在计算上是容易的已知公钥,攻击者要确定对应的私钥,在计算上是困难的已知公钥和密文,攻击者要恢复明文在计算上是困难的加密和解密函数的顺序可以交换(非必须)

    在公钥密码学提出后,目前只有几个满足条件的算法(RSA,椭圆曲线,DH,DSS) ,说明满足条件不容易。要满足这些条件就是要找到一个单向陷门函数:每个函数值都存在唯一的逆,并且就是函数值是容易的,但是求逆是困难的。

    若k和X已知,计算是容易的若k和Y已知,计算是容易的若Y已知,k未知,就是是困难的

    和对称密码一样,公钥密码也容易受到穷举攻击,解决办法就是增长密钥长度。另一种就是给定公钥,计算私钥,但是这种方法还没有得到证明。 

    Processed: 0.067, SQL: 8