BASE
BASE 10, BASE 16 不用介绍。
其他三个:
- Used Base36 conversion table:
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ
- Used Base60 conversion table:
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwx
- Used Base64 conversion table:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
//////////////////////////////////////////////
msieve, with qs and gnfs factor core:
msieve v1.32:
http://www.boo.net/~jasonp/qs.html
Tested msieve v1.30:
CPU CM530, 1.73G, MEM 1G, DDRII-667
using msieve v1.30,
when 250+bits, time estimated,
every +10 bits, need +2 times,
every +40 bits, need +10 times,
every +120 bits, need +1000 times.
256 bits:
elapsed time 00:09:33
281 bits:
elapsed time 00:35:59
321 bits:
elapsed time 06:18:20
//////////////////////////////////////////////
Generate:
生成key pairs.生成的素数都是Blum数,即 P=3 mod 4
Test:
测试keypairs.包括RSA测试和Rabin测试。
Rev:
Reverse,翻转N。 Little endian <-> Big endian
比如:
12AB67 <-> 67AB12
Next 2 Primes:
计算大于N的2个依次的素数。结果存于P,Q当中。
next 2 prime功能很有意思,你可以找到你喜欢的p,q.
比如,你可以生成含200个连续0的p,q。
不过这样的P,Q用来做RSA加密就不太好了,有所好必有所患。
会被社会工程的。
比如你可以找到如下的素数:
N =
800000000000000000000000000000000000000000000000000000000000
P =
80000000000000000000000000000000000000000000000000000000001D
Q =
800000000000000000000000000000000000000000000000000000000083
(3) DLP功能
Generate:
生成key pairs.生成的素数P是Blum数,即 P=3 mod 4
Test:
测试keypairs.包括ELGAMAL加密、解密测试,和签名、验证测试。
New GX:
P不变,换一组G,X.
GXP-> Y:
输入 G,X,P,计算 Y = G^X mod P.
即离散幂数,POWMOD。
XYP-> G:
由Y = G^X mod P,计算出G.
G是Y的X次根模P,离散指数问题。
X=2,P为素数,可计算二次剩余的根。