增强型Rabin签名算法

增强型Rabin签名算法

本文章是一个对于增强型Rabin的讲解

1. 算法综述

​ Rabin算法是基于求合数n的平方根问题的困难性设计的算法。但是存在不确定性的问题。而增强的Rabin算法便在Rabin算法那的基础上增加了细节和限定条件解决了这个问题。其原理是基于二次剩余方面的数学知识。公开系数为2,签名检验较简单。

2. 算法结构
  1. 密钥生成

    随 机 选 择 两 个 B L U M 整 数 p 与 q , 计 算 公 钥 n = p q , 私 钥 d = ( n − q − q + 5 ) / 8 随机选择两个BLUM整数p与q,计算公钥n=pq,私钥d=(n-q-q+5)/8 BLUMpqn=pq,d=(nqq+5)/8:

    这 里 选 择 的 p 和 q 应 该 都 为 大 素 数 , 因 为 只 有 p , q 足 够 大 的 时 候 才 能 保 证 n 的 分 解 是 N P 难 问 题 这里选择的p和q应该都为大素数,因为只有p,q足够大的时候才能保证n的分解是NP难问题 pqpqnNP

  2. 签名生成

    给 出 冗 余 函 数 使 得 h ( m ) = m ~ : 这 里 的 冗 余 函 数 必 须 使 得 m ~ ∈ Z n 给出冗余函数使得h(m)= \widetilde{m}:这里的冗余函数必须使得\widetilde{m}\in Z_n 使h(m)=m 使m Zn

    计 算 m ~ 的 雅 各 比 符 号 J , s = { ( m ~ / 2 ) d m o d n , J = 1 m ~ d m o d n , J = − 1 : 这 里 是 为 了 保 证 s ∈ J n ( 部 分 签 名 中 还 有 a , b 参 数 , 但 并 不 需 要 ) 计算\widetilde{m}的雅各比符号J,s= \begin{cases} (\widetilde{m}/2)^{d}modn,J=1\\\widetilde{m}^{d}mod n,J=-1\end{cases}:这里是为了保证s\in J_n(部分签名中还有a,b参数,但并不需要) m J,s={(m /2)dmodn,J=1m dmodn,J=1sJn(a,b)

    签 名 s 生 成 , 交 给 B 进 行 验 证 签名s生成,交给B进行验证 sB

  3. 签名验证

    m 1 = s 2 m o d n , m ~ = { m 1 , m 1 = 6 m o d 8 2 m 1 , m 1 = 3 m o d 8 n − m 1 , m 1 = 7 m o d 8 2 ( n − m 1 ) , m 1 = 2 m o d 8 : 如 果 签 名 中 有 a , b , 参 数 则 不 需 要 做 判 断 m_{1}=s^{2}modn,\widetilde{m}=\begin{cases}m_1,m_1=6mod8\\2m_1,m_1=3mod8\\n-m_1,m_1=7mod8\\2(n-m_1),m_1=2mod8 \end{cases}:如果签名中有a,b,参数则不需要做判断 m1=s2modn,m =m1,m1=6mod82m1,m1=3mod8nm1,m1=7mod82(nm1),m1=2mod8:a,b,

    如 果 h ( m ) = m ~ , 则 验 证 成 功 如果h(m)=\widetilde{m},则验证成功 h(m)=m ,

总体上来看,Rabin数字签名一个显而易见的好处就是过程简单且计算量不高。它的安全性保证来源于QRP被公认为与整数分解具有相同的困难性。具体的算法构造思路与其他公钥算法如RSA较为类似。但是从上面也可以看出,它对冗余函数的要求还比较高,一是需要满足冗余函数的输出应该在Qn上,二是冗余函数也需要保证一定的安全性。同时消息同样也存在限制。这是其缺点。

3. 安全性分析

​ 增强的Rabin算法由于是Rabin算法的优化,其安全性与Rabin算法类似。

​ 前面提到冗余函数需要保证一定的安全性。原因有下:1.当这个冗余函数不是一个单向的函数如哈希函数时,此算法只能保证对选择明文攻击安全,而对选择密文攻击完全不安全。但当这个函数时一个单向陷门函数的时候,则保证了对于选择密文攻击的安全性。2. 冗余函数不能使两个不同的字符串映射到相同的数,这样会极大的降低整个系统的安全性。

​ 而对于输入消息的要求,同样也与冗余函数有关。当消息的总数达到其种类数达到n的Qn的元素的总个数时,根据生日悖论,无论冗余函数如何变化,始终满足不了冗余函数的第二个需求。但是这种情况只限于在消息m的数量级很高的时候,因为当m的数量级低的时候,即使冗余函数面对整个消息的空间存在多对一的情况,很少的消息中的两个消息的输入一样的概率依然很小。从这里也能看出,n的数量级应该取得合适的很大(这个合适指满足需求和效率的情况下),这样同时也会使n的分解问题的复杂度变得更高,一箭双雕。

4. 算法小结

​ 总的来说,增强的Rabin算法解决了Rabin算法存在的问题,继承了其有点,提高了安全性,是一个非常成功的优化。且对标RSA等算法时,可以看出在保证了安全性的前提下极大的优化了签名的检验和效率。但是同时也对冗余函数的选取提出了更高的要求。但是,可以看出,不管是Rabin,RSA还是增强后的Rabin,最终的安全性都是依赖于NP问题,或许在计算机或者数学发展到一定高度的一天,只要这个NP问题如大整数的分解问题被破解,这些密码体制的安全性终将不复存在。因此,密码学和数学乃至整个科学的发展都是密切相关的,互相服务互相促进。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值