公钥和私钥

        公钥是与私钥算法一起使用的密钥对的非秘密一半。公钥通常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。公钥和私钥是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),其中的一个向外界公开,称为公钥;另个自己保留,称为私钥。通过这种算法得到的密钥对能保证在世界范围内是唯一的。使用这个密钥对的时候,如果用其中一个密钥加密一段数据,必须用另一个密钥解密。如用公钥加密数据就必须用私钥解密,如果用私钥加密也必须用公钥解密,否则解密将不会成功。

        1976年,当时在美国斯坦福大学的迪菲(Whitfield Diffie)和赫尔曼(MartinHellman)两人发表了论文《密码编码学新方向》(New Direction in Cryptogra-phy),指出在通信双方之间不直接传输加密密钥的保密通信是可能的,并提出了非对称公钥加密(公开密钥密码)的新思想,把密钥分为加密的公钥和解密的私钥,它是第一个实用的在非保护信道中建立共享密钥方法,这是密码学的一场革命。这种思想最早由英国信号情报部门雷夫・莫寇(Ralph C. Merkle)在1974年提出来的,但是当时这被列为是机密。之后在1976年,迪菲和赫尔曼两位学者以单向函数与单向暗门函数为基础,为发讯与收讯的两方创建密钥,发明了“D-H密钥交换算法”实现信息加密。该算法的有效性依赖于离散对数的难度。2002年,赫尔曼建议将该算法改名为“ Diffie-Hellman-Merkle密钥交换”以表明 Ralph C. Merkle对于公钥加密算法的贡献 [2]  

        公钥加密算法中使用两个密钥,而不是使用一个共享的密钥。一个密钥是公钥(public key),一个密钥是私钥(private key)。用公钥加密的密文只能用对应私钥解密,反之,用私钥加密的密文只能用对应公钥解密。在操作过程中,公钥是对外界公开的,所有人都可以知道,而私钥是自己保存的,只有自己才能知道。但是一个人只能持有公钥和私钥的其中一个,而不能同时共享。如果A要发一份秘密信息给B,则A只需要得到B的公钥,然后用B的公钥加密秘密信息,此加密的信息只有B能用其保密的私钥解密。反之,B也可以用A的公钥加密保密信息给A。信息在传送过程中,即使被第三方截取,也不可能解密其内容 [2]  
1979年,Merkle和Hellman提出“MH背包算法”。“MH背包算法”源于背包问题(NP完全问题),其工作原理是:假定甲想加密,则先产生一个较易求解的背包问题,并用它的解作为专用密钥;然后从这个问题出发,生成另一个难解的背包问题,并作为公共密钥。如果乙想向甲发送报文,乙就可以使用难解的背包问题对报文进行加密,由于这个问题十分难解,所以一般没有人能够破译密文;甲收到密文后,可以使用易解的专用密钥解密公钥加密是一项重大的创新,从根本上改变了加密和解密的过程
posted @ 2020-11-06 23:48  Ander2015  阅读(104)  评论(0编辑  收藏  举报