首页
社区
课程
招聘
[求助]问个有关RSA的小问题
2008-11-20 09:17 4357

[求助]问个有关RSA的小问题

2008-11-20 09:17
4357
收藏
点赞0
打赏
分享
最新回复 (7)
雪    币: 6073
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
forgot 26 2008-11-20 09:28
2
0
windows优化大师还有rsa 64呢
雪    币: 195
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
eddieson 2008-11-20 09:55
3
0
晕,版主答非所问呐
雪    币: 108
活跃值: (141)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
NetRoc 12 2008-11-20 10:12
4
0
一样的,RSA加密前会先补足位数
雪    币: 6073
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
forgot 26 2008-11-20 10:22
5
0
该如何是该如何答?
雪    币: 6073
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
forgot 26 2008-11-20 11:29
6
0
from random import getrandbits
def is_prime(p):
    return pow(2, p-1, p) == 1 #费马小定理
def get_prime(bits):
    while True:
        p = getrandbits(bits)
        if is_prime(p):
            break
    return p
def get_inverse(a, b): #欧几里德扩展, FUCK, 太难写了
    if a < b:
        a, b = b, a
    oa, ob = a, b
    pp = [1, 0]
    p  = [0, 1]
    while b != 1:        
        m = a % b
        t = (a - m)/b
        x = [pp[0]-p[0]*t, pp[1]-p[1]*t]
        #print pp, '-', p, '*', t, '->', x
        pp = p
        p = x        
        a, b = b, m    
    return (x[1] + oa) % oa
# x^phi(n) = 1 mod n 欧拉定理 phi(n) = n-1 if n is prime
# x^phi(n)+1 = x mod n
# x^de = x mod n
# de = phi(n)+1
# de = 1 mod phi(n)
bits = 304
e = 0x10001
p = get_prime(bits/2)
q = get_prime(bits/2)
n = p*q
f = (p-1)*(q-1) #欧拉函数
d = get_inverse(e, f)
m = 0x7878787878 # lower than bits
c = pow(m, e, n)
t = pow(c, d, n)
print 'N: %X' % n
print 'E: %X' % e
print 'D: %X' % d
print 'RSA(%X):\n%X' % (m, c)
print 'RSA(%X):\n%X' % (c, t)
assert m == t

N: 48F21EC3C0D0EC6FD6DA640029F4C042C5CE5770AA412AC9D017D38FE53222A0305905A97FF
E: 10001
D: 26DFD181650A72568FDBC71B4740C60D4FB94718ECCB7463B3F4D3F4A814A8B37F1CDBB6A41
RSA(7878787878):
19F792E4AEDEA9C81BDDE9B265EE9E944718BD76D6315817BE85559FE0B2789719E603E157A
RSA(19F792E4AEDEA9C81BDDE9B265EE9E944718BD76D6315817BE85559FE0B2789719E603E157A):
7878787878
雪    币: 1223
活跃值: (469)
能力值: (RANK:460 )
在线值:
发帖
回帖
粉丝
monkeycz 11 2008-11-20 16:59
7
0
恶补python中。。。
雪    币: 6073
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
forgot 26 2008-11-20 17:07
8
0
准备转向Haskell OCaml...
游客
登录 | 注册 方可回帖
返回