公开密钥密码

对于对称密钥算法来说,加密者如何将指定的一个(种子)密钥发送给接密者,而且能保证不泄密呢?            密钥分配问题  

再有很多个用户的网络之中,任两个用户之间都需要有共享的密钥,当网络之中的用户数n很大时,需要管理的密钥数为n*(n-1)/2      密钥管理问题

当用户A收到用户B发来的消息时,用户A无法向任何第三方证明,此消息确实是来源于用户B的。                     无签名功能

为了解决这几个问题,从传统对称密钥算法发展到公开密钥算法。

 

工作前提:

首先,接收消息的端系统,产生一对用来加密和解密的密钥对。

然后,端系统将加密密钥(公钥)公开,另一个用来解密的密钥(私钥)保密。

工作过程:

A向B发送消息m,把消息m用B的公钥加密,得到密文c

B收到A发来的密文c,用自己的私钥解密,就能得到原文m

注意:

公钥(public_key)可以被任何人知道,用于加密或者验证签名

私钥(private_key)只能被消息的接受者或者签名者知道,用于解密或者签名

由私钥及公开参数容易计算出公钥,由公钥和公开参数很难计算出私钥。

 

公钥密码体制(也称双钥密码体制/非对称密码体制

分为:

密钥建立方案(Public Key Establishment Schemes,PKES)  用于交换秘密信息——常用于对称加密算法的密钥分配

公开密钥加密(Public Key Encryption,PKE)  用于加密任何消息,任何人都可以用公钥加密消息,私钥的拥有者可以解密密文消息,任何公钥加密方案能够用于密钥分配方案PKDS,一些公钥加密方案也是数字签名方案

数字签名( Signature Schemes,Ss)  用于生成对某消息的数字签名,私钥的拥有者生成数字签名,任何人可以用公钥验证名

公钥加密算法的特点:

最大特点:采用两个相关密钥将加密和解密能力分开    其中一个密钥是公开的,称为公开密钥,简称公开钥,用于加密  另一个密钥是为用户专用,因而是保密的,称为秘密密钥,简称秘密钥,用于解密

加、解密次序可换,EPKB[DSKB(m)]=DSKB[EPKB(m)]   这条公式很有用,但不是对所有的算法都适用

公钥密码算法的加、解密速度比对称密钥密码算法慢,因此公钥密码体制目前主要用于密钥和数字签名

穷举算法在理论上是能够破解公钥密码,但只要能保证密码足够长,保证计算安全就可以了

安全性依赖于足够的困难性差别,如NP和P问题(利用公钥及公开参数加密明文容易计算;利用私钥及公开参数解密密文容易计算;只利用公钥解密密文困难)

 

研究公钥密码算法就是要找出合适的单向陷门函数

定义 单向函数是两个集合X、Y之间的一个映射,使得Y中每一元素y都有惟一的一个原像x∈X,且由x易于计算它的像y,由y计算它的原像x是不可行的。

函数是单向陷门函数,是指该函数是易于计算的,但求它的逆是不可行的,除非再已知某些附加信息。当附加信息给定后,求逆可在多项式时间完成。

 

posted @ 2020-05-30 21:34  SjYu  阅读(865)  评论(0编辑  收藏  举报