最早的公钥算法--单向陷门函数

陷门原指Bug漏洞,这里却巧妙的成为非对称密码算法的科学方法。这种非对称密码算法比RSA早7年。
这种陷门单向算法函数可以实现公钥加密,但无法做数据签名,还不是完善的非对称算法。

单向陷门函数(Trapdoor One-way Function) ,满足下列条件的函数 f f :

(1)正向计算容易,即如果知道了密钥 p x px 和消息 x x ,容易计算 y = f p x ( x ) y=f_px (x)

(2)在不知道密钥 s k sk 的情况下,反向计算不可行,即如果只知道消息 y y 而不知道密钥 s k sk ,则计算 x = f s k 1 ( y ) x=f_{sk}^{-1} (y) 是不可行的(所谓计算不可行,是指计算上相当复杂,在有限的时间和成本范围内很难得到想要的结果,已无实际意义)。

(3)在知道密钥 s k sk 的情况下,反向计算是容易的,即如果同时知道消息 y y 和密钥 s k 4 sk4 ,则计算 x = f s k 1 ( y ) x=f_{sk}^{-1} (y) 是容易的,这里密钥 s k sk 相当于陷门,它和 p k pk 配对使用的。

也就是说,对于单向陷门函数,它是指除非知道某种附加的信息,否则这样的函数在一个方向上计算容易,在另外的方向上要计算是不可行的;有了附加信息,函数的逆就可以容易计算出来。

注:

①仅满足(1)(2)两条的为单向函数,第(3)条为陷门性,其中的密钥 s k sk 称为陷门信息。

②当用陷门函数f作为加密函数时,可以将 p k pk 公开,此时加密密钥 p k pk 便称为公开密钥。 f f 函数的设计者将陷门信息 s k sk 保密,用作解密密钥,此时密钥 s k sk 被称作秘密密钥。由于加密函数 f f 是公开的,任何人都可以将信息 x x 加密成 y = f p x ( x ) y=f_px (x) ,然后发送给目的接收者。(当然可通过不完全信道传递)。由于目的接收者拥有 s k sk ,自然可以解出 x = f s k 1 ( y ) x=f_{sk}^{-1} (y)

③单向陷门函数的第(2)条性质表明窃听者由截获的密文 y = f p x ( x ) y=f_px (x) 推测消息的明文是不可行的。

猜你喜欢

转载自blog.csdn.net/u011893782/article/details/107646789