密码学
文章平均质量分 58
Afololer
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
python实现DSA签名数字证书
一、数字签名采用数字签名,能完成这些功能: (1)确认信息是由签名者发送的; (2)确认信息自签名后到收到为止,未被修改过; (3)签名者无法否认信息是由自己发送的。与公钥加密不同,数字签名是用私钥加密,公钥解密,那么每个人都能识别他的身份RSA签名的逻辑框图RSA加密二、DSA签名1、随机选取p、q、g、h,1<h<p-1,q最好是p的素因子,其中g需要满足g≡\equiv≡hp−1qh^\frac{p-1}{q}hqp−1mod p 并且h原创 2021-06-05 17:14:05 · 3136 阅读 · 2 评论 -
python实现RSA加密详细
一、原理采用数学函数来进行变换,密文产生的结果远比普通代换多,用公钥进行加密,私钥进行解密。二、基本步骤选取素数p、qMiller-Rabin素性检验计算 n = p * q φ(n) =(p-1)(q-1)选择整数e (公钥) 满足1<e< φ(n)(有乘法逆元) 且e与 φ(n) 互素(有唯一乘法逆元)计算 d*e mod q =1 的d 由于计算机表达整数的长度有限,需要用快速幂算法计算扩展欧几里得求逆元以{e,n}为公钥 {d,n}为密钥原创 2021-06-05 13:53:39 · 1089 阅读 · 0 评论 -
对称密码和公钥密码密钥的分配
一、单钥密码的密钥分配单钥密码,即加密和解密都用同一密钥的加密体制分配方法:A选取发给B第三方A选取发给B第三方选取发给A和BA和B已有共同密钥,一方选取新密钥时,用旧密钥加密发给另一方选取发给A和BA和B已有共同密钥,一方选取新密钥时,用旧密钥加密发给另一方缺点:容易受到冒充,而且n个用户互相通信,机构要管理n* (n-1)/2 对密钥,代价大较好的分配方法 : 密钥分配中心在密钥分配中心,每个用户都与中心之间有固定密钥,用户联系的时候产生临时密钥Ks,一定时间后销毁二、分配步骤原创 2021-06-05 13:45:04 · 5106 阅读 · 1 评论 -
python仿射变换求乘法逆元扩展欧几里得
概念给出2个数M和N(M < N),且M与N互质,找出一个数K满足0 < K < N且K * M % N = 1,满足条件的K则为M的逆元暴力求解法def get(m,n): for i in range(1,n-1): if i*m%n==0: return i扩展欧几里得求解法如果y是n的逆元,则mx+ny =gcd(m,n),那么如何求y呢已知m,n是互素的,最终状态时m*1+n*0 = 1那么一直求上一个状态逆推回去到右边为gcd(m,n)时,求得逆2021-06-05 12:21:36 · 850 阅读 · 0 评论 -
python验证素数 Miller-Rabin概率检测法菜鸟都能懂
前提条件不解释,数学家的结晶如果p为素数,在 1~p-1之中,只有1和p-1的平方mod p等于1证明如下-1 mod p 可以看作是 p-1 mod ppython代码`def tobinary(a): d = [] c = a while(c!=0): b = c % 2 c = int(c/2) d.append(b) return d``def ml(n): for i in range(5原创 2021-06-05 00:57:29 · 814 阅读 · 0 评论
分享