赞
踩
S-DES
非对称密码的核心是公钥和私钥。
公钥是用于加密数据的密钥,而私钥则用于解密数据
发送方使用接收方的公钥来加密,接收方使用自己的私钥来解密
公钥公开,只要私钥保密即可
如RSA
,相对来说更安全
p
和q
,并计算它们的乘积n=p*q
φ(n)=(p-1)*(q-1)
e
作为公钥指数d
,使得(d * e) mod φ(n) = 1
(n, e)
,私钥是(n, d
)
- 明文长度小于
n
- P和Q通常是相近长度的大素数
- p和q的值往往较大,通常超过
2048
位或更大的数字(否则易破解)- 通常,e可以选为固定值
65537
(随机生成的可能不够随机,可能造成私钥泄漏)- 加密时可以对消息进行填充处理,避免一些攻击
c = m^e mod n
,其中c是密文m = c^d mod n
,其中m是明文
- 加密必须用公钥,解密必须用配套密钥
- RSA算法中的指数函数(加密)和对数函数(解密)都具有单向性质,也就是难以逆推。
- 公钥和私钥的功能是由数学特性和限制决定的。
import random
from sympy import isprime
def modinv(a, m):
"""计算a关于模数m的模反元素"""
def egcd(a, b):
"""扩展欧几里得算法,用于计算最大公约数和系数"""
if a == 0:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。