là mã này sẽ cung cấp cho tôi giá trị chính xác cho khóa RSA (giả sử rằng các hàm khác là chính xác)? im gặp khó khăn chương trình của tôi để giải mã đúng, như trong khối nhất định không được giải mã đúngđây có phải là cách chính xác để tạo khóa rsa không?
này là trong python:
import random
def keygen(bits):
p = q = 3
while p == q:
p = random.randint(2**(bits/2-2),2**(bits/2))
q = random.randint(2**(bits/2-2),2**(bits/2))
p += not(p&1) # changes the values from
q += not(q&1) # even to odd
while MillerRabin(p) == False: # checks for primality
p -= 2
while MillerRabin(q) == False:
q -= 2
n = p * q
tot = (p-1) * (q-1)
e = tot
while gcd(tot,e) != 1:
e = random.randint(3,tot-1)
d = getd(tot,e) # gets the multiplicative inverse
while d<0: # i can probably replace this with mod
d = d + tot
return e,d,n
một bộ chìa khóa tạo:
e = 3daf16a37799d3b2c951c9baab30ad2d
d = 16873c0dd2825b2e8e6c2c68da3a5e25
n = dc2a732d64b83816a99448a2c2077ced
Điều gì sai với 'M2Crypto.RSA.gen_key'? – jfs
Có vẻ ổn với tôi, nếu có chút lạ. –
Đây có phải là học thuật không? Bạn thực sự không muốn viết mật mã của riêng mình cho mã thực. –