-
大小: 5KB文件类型: .py金币: 2下载: 0 次发布日期: 2024-01-31
- 语言: Python
- 标签: miller_rabin RSA 大素数 python
资源简介
0、可直接复制执行
1、生成1024比特的随机大整数
2、对该整数进行小素数检验,在进行miller_rabin算法检测
3、获得大素数p、q后,计算n、e、的d过程有说明
4、可以对任意数字字母汉字加解密
5、内容的注释详细,易理解;用像伪代码般的python码出来的更容易对代码转换
代码片段和文件信息
import math
from functools import reduce #用于合并字符
from os import urandom #系统随机的字符
import binascii #二进制和ASCII之间转换
#===================================================
def Mod_1(xn):
‘‘‘取模负1的算法:计算x2= x^-1 (mod n)的值,
r = gcd(a b) = ia + jb x与n是互素数‘‘‘
x0 = x
y0 = n
x1 = 0
y1 = 1
x2 = 1
y2 = 0
while n != 0:
q = x // n
(x n) = (n x % n)
(x1 x2) = ((x2 - (q * x1)) x1)
(y1 y2) = ((y2 - (q * y1)) y1)
if x2 < 0:
x2 += y0
if y2 < 0:
y2 += x0
return x2
#===================================================
def Fast_Mod(apm):
‘‘‘快速取模指数算法:计算 (a ^ p) % m 的值‘‘‘
apm=int(a)int(p)int(m)
if (p == 0) :
return 1
r = a % m
k = 1
while (p > 1):
if ((p & 1)!=0):
k = (k * r) % m
r = (r * r) % m
p >>= 1
return (r * k) % m
#===================================================
def randint(n):
‘‘‘random是伪随机数,需要更高安全的随机数产生,
所以使用os.urandom()或者SystmeRandom模块,
生成n字节的随机数(8位/字节)返回16进制转为10进制整数返回‘‘‘
randomdata = urandom(n)
return int(binascii.hexlify(randomdata)16)
#===================================================
def primality_testing_1(n):
‘‘‘测试一,小素数测试,用100以内的小素数检测随机数x,
可以很大概率排除不是素数#创建有25个素数的元组‘‘‘
Sushubiao=(2357111317192329313741
434753596167717379838997)
for y in Sushubiao:
if n%y==0:
return False
return True
#===================================================
def primality_testing_2(n k):
‘‘‘测试二用miller_rabin算法对n进行k次检测‘‘‘
if n < 2:
return False
d = n - 1
r = 0
while not (d & 1):
r += 1
d >>= 1
for _ in range(k):
a = randint(120)
- 上一篇:扑克小游戏python代码
- 下一篇:计算24点python
相关资源
- GENERATIVE_ADVERSARIAL_NETWORKS_COOKBOOK
- python3实现RSA(非调用RSA库
- RSA+DES图形界面含实验报告
- Hands-On Reinforcement Learning - Sudharsan Ra
- python3 + wxpython 实现RSA加密聊天室
- Hands-On Reinforcement Learning with Python /S
- RSA算法的纯Python实现源码
- SOCKET实现DES加密的全双工聊天程序
- RSA算法python实现
- DeepFool对抗算法
- python实现md5以及rsa加密方式
- python实现简单的加密通信
评论
共有 条评论