简单分析一下:
1.看int Status = 0x2605; (10 0110 0000 0101)//状态判断,二进制长度为0xE应循 ...
Nice!!!
如果要我评分,我会给90分。因为还有一点存在疑惑的地方可能会让大家看不明白。
你的分析中没有谈到关于 每一次乘法运算中都会有的 求模 运算的部分,于是问题就来了。
你把求模运算放到最后了,自然是你认为每一步中的求模运算并不影响Rel间的组合了。但是,
假如 Rel < Max, Rel * Rel < Max,
自然 (Rel % Max) * (Rel % Max) == (Rel * Rel) % Max。
求模运算并不影响Rel间的乘法组合。
假如 Rel < Max, Rel * Rel > Max,那么 Rel % Max = Rel。
于是 (Rel % Max) * (Rel % Max) != (Rel * Rel) % Max。
这样的话,该如何保证 求模 运算并不影响 Rel 间乘法的组合呢?
的确存在你说的这种情况。 只有 Max > POWER(PASS,0X2605)才能满足要求 不是大神。。。。。 看着很好,但我看不懂.呵呵.但,仍要参与,我来支持你了. 根据同余定理:
同余公式也有许多我们常见的定律,比如相等律,结合律,交换律,传递律….如下面的表示:
1)a≡a(mod d)
2)a≡b(mod d)→b≡a(mod d)
3)(a≡b(mod d),b≡c(mod d))→a≡c(mod d)
如果a≡x(mod d),b≡m(mod d),则
4)a+b≡x+m (mod d)
5)a-b≡x-m (mod d)
6)a*b≡x*m (mod d )
根据公式6,假设
第i步:
Rel *= Rel;
Rel %= Max;==> x1(i) ===>Rel ≡ x1(i)(mod Max)
Rel *= Pass;
Rel %= Max; ==> x2(i) ===> Rel ≡ x2(i)(mod Max)
.....
则 Rel 的连乘 ≡ x1(i)*x2(i)***********(mod Max) 与Max 大小无关系
本帖最后由 lhglhg 于 2014-12-4 09:28 编辑
谢谢,分享这么好的算法。谢谢100PB;{:soso_e113:}
看这式子,有点是RSA 的算法 ;
m = (c ^ d) mod n
初始化模数n; 初始化私钥d ; 密文c;明文m
c = (m ^ e) mod n
初始化模数n; 初始化公钥e ; 密文c;明文m
在RSA密码应用中,公钥KU是被公开的,即e和n的数值可以被第三方窃听者得到。破解RSA密码的问题就是从已知的e和n的数值(n等于pq),想法求出d的数值,这样就可以得到私钥来破解密文。从上文中的公式:d ≡e-1 (mod((p-1)(q-1)))或de≡1 (mod((p-1)(q-1))) 我们可以看出。密码破解的实质问题是:从Pq的数值,去求出(p-1)和(q-1)。换句话说,只要求出p和q的值,我们就能求出d的值而得到私钥。
当p和q是一个大素数的时候,从它们的积pq去分解因子p和q,这是一个公认的数学难题。比如当pq大到1024位时,迄今为止还没有人能够利用任何计算工具去完成分解因子的任务。因此,RSA从提出到现在已近二十年,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。
然而,虽然RSA的安全性依赖于大数的因子分解,但并没有从理论上证明破译RSA的难度与大数分解难度等价。即RSA的重大缺陷是无法从理论上把握它的保密性能如何。
lhglhg 发表于 2014-12-4 09:25
谢谢,分享这么好的算法。谢谢100PB;
看这式子,有点是RSA 的算法 ;
m = (c ^ d) mod n
我也没有想到这个问题,的确是非常的像。(⊙v⊙)嗯
页:
1
[2]