当前位置: 首页 > news >正文

广州公司制作网站0735郴州网

广州公司制作网站,0735郴州网,网站数据接口怎么做,百度识图网页入口RSA 算法 RSA 加密和签名#xff1a;因大整数因子分解难算#xff0c;合数可成公钥。 d - 私钥#xff0c;e - 公钥#xff0c;n - 可公开的合数#xff0c;(e,n) 作为公钥可以公开#xff0c;(d,n) 作为私钥。 详细理论证明参考#xff1a;RSA算法原理#xff08;二…RSA 算法 RSA 加密和签名因大整数因子分解难算合数可成公钥。 d - 私钥e - 公钥n - 可公开的合数(e,n) 作为公钥可以公开(d,n) 作为私钥。 详细理论证明参考RSA算法原理二 假设明文消息为 M密文为 C 加密过程 M e m o d n C M^e\mod{n}C MemodnC 解密过程 C d m o d n M C^d\mod{n}M CdmodnM RSA 签名举例 #-*- coding:utf-8 -*- import random# 求最大公约数 def gcd(a, b):if a b:return gcd(b, a)elif a % b 0:return belse:return gcd(b, a % b)# 快速幂取模 def power(a, b, c):ans 1while b ! 0:if b 1:ans (ans * a) % cb 1a (a * a) % creturn ans# 快速幂 def quick_power(a: int, b: int) - int:ans 1while b ! 0:if b 1:ans ans * ab 1a a * areturn ans# 大素数检测 def Miller_Rabin(n):a random.randint(2, n - 2) # 随机第选取一个a∈[2,n-2]# print(随机选取的a%lld\n%a)s 0 # s为d中的因子2的幂次数。d n - 1while (d 1) 0: # 将d中因子2全部提取出来。s 1d 1x power(a, d, n)for i in range(s): # 进行s次二次探测newX power(x, 2, n)if newX 1 and x ! 1 and x ! n - 1:return False # 用二次定理的逆否命题此时n确定为合数。x newXif x ! 1: # 用费马小定理的逆否命题判断此时xa^(n-1) (mod n)那么n确定为合数。return Falsereturn True # 用费马小定理的逆命题判断。能经受住考验至此的数大概率为素数。# 卢卡斯-莱墨素性检验 def Lucas_Lehmer(num: int) - bool: # 快速检验pow(2,m)-1是不是素数if num 2:return Trueif num % 2 0:return Falses 4Mersenne pow(2, num) - 1 # pow(2, num)-1是梅森数for x in range(1, (num - 2) 1): # num-2是循环次数1表示右区间开s ((s * s) - 2) % Mersenneif s 0:return Trueelse:return False# 扩展的欧几里得算法ab1 (mod m), 得到a在模m下的乘法逆元b def Extended_Eulid(a: int, m: int) - int:def extended_eulid(a: int, m: int):if a 0: # 边界条件return 1, 0, melse:x, y, gcd extended_eulid(m % a, a) # 递归x, y y, (x - (m // a) * y) # 递推关系左端为上层return x, y, gcd # 返回第一层的计算结果。# 最终返回的y值即为b在模a下的乘法逆元# 若y为复数则ya为相应的正数逆元n extended_eulid(a, m)if n[1] 0:return n[1] melse:return n[1]# 按照需要的 bit 来生成大素数 def Generate_prime(key_size: int) - int:while True:num random.randrange(quick_power(2, key_size - 1), quick_power(2, key_size))if Miller_Rabin(num): # 大概率是素数return num# 生成公钥和私钥 def KeyGen(p: int, q: int):n p * qe random.randint(1, (p - 1) * (q - 1))while gcd(e, (p - 1) * (q - 1)) ! 1:e random.randint(1, (p - 1) * (q - 1))d Extended_Eulid(e, (p - 1) * (q - 1))return n, e, ddef Sign(x: int, d: int, n: int) - int:s power(x, d, n)return sdef Verify(s: int, e: int, n: int) - int:x_ power(s, e, n)return x_if __name__ __main__:key_size 512p Generate_prime(key_size)q Generate_prime(key_size)n, e, d KeyGen(p, q)# 消息x int(input(Message: ))if type(x) ! int: raise ValueError(Must be an integer!)# 签名s Sign(x, d, n)# 验证x_ Verify(s, e, n)Valid (x_ x)# Attacks_ random.randint(1, (p - 1) * (q - 1))m_ random.randint(1, (p - 1) * (q - 1))# 记录print(p:\t, p)print(q:\t, q)print(Private Key↓)print(N:\t, n)print(d:\t, d)print(Public Key↓)print(N:\t, n)print(e:\t, e)print(Signature↓)print(s:\t, s)
http://www.yutouwan.com/news/411536/

相关文章:

  • 东营可以做网站的公司在哪营销型网站制作企业
  • 建设主管部门网站网页素材有哪几大类
  • 做的好的食用菌公司网站有邯郸网站设计有哪些
  • 网站建设教程吧评论凡科网站建设怎么样
  • 网站这么推广修改wordpress插件怎么用
  • 乡土文化网站怎么做做哪种网站比较简单
  • 汉中专业网站建设无锡企业建站模板
  • 廊坊企业网站建设公司怎么制作游戏u盘
  • 客户端建站建筑企业资质加盟
  • 中国农村建设网站首页连云港网站建设方案
  • 湖州市建设培训中心网站手机app界面设计图
  • 注册网站时手机号格式不正确3000ok新开传奇网站
  • 建设境外网站需要什么手续自己做网站生意怎么样
  • 网站开发深圳公司大创网
  • js判断是手机还是电脑访问网站静态网站建设报告
  • 棋牌网站搭建平台wordpress 撰写设置
  • 衡水网站建设制作网站seo评测
  • 大型服装商城网站建设成都科技网站建设热
  • 游戏道具网站开发湛江网站建设产品优化
  • 网站关键词的分类成都网络推广培训
  • 网站公司深圳深圳关键词优化平台
  • 高碑店网站建设价格aspnet网站开发例题
  • 做网站没有按照合同履行建设网站需要什么手续
  • 网站域名绑定好处关于建设网站的图片
  • vs2010 网站开发教程织梦网站模板源码php
  • 网站的相对路径商业网站教程
  • 对网站二次开发的认识阳江网红打卡地方
  • 济南网站建设系统介绍服务学校网站建设厂家
  • 用花生做网站公司做的局域网网站怎么登陆
  • 东台网站网站建设广州番禺区有什么好玩的地方