一、产生随机大素数。
函数:int producebigprimer()
功能描述:该函数随机生成一个奇数,然后判断该奇数是否为素数,若是则返回,否则重新生生一个奇数函数实现:
public int producebigprimer(){
random r = new random();
int primer = 2 + 1;//随机生成奇数while (!isprimer(primer))
return primer;
primer = 2 + 1;
二、素性检测。
函数:boolean isprimer(int n)
功能描述:该函数封装的是miller—rabin素性检测法。若n是素数,返回真,否则返回假函数实现:
public boolean isprimer(int n){}
if (return true;
return false;
三、求解素数n的欧拉函数值。
函数:int eulern()
功能描述:求解n的欧拉函数值φ(n)
因为n是两个素数的乘积,所以n的欧拉函数值为φ(n)=(p-1)*(q-1)函数实现:
public int eulern(){
return (p-1) *q-1);
四、求解满足条件的e值。
函数:int caculatee()
功能描述:即寻找满足下列条件的e值:1public int caculatee(){
random r = new random();
int e = 产生0-φ(n)之间的随机数while (!e>1) &gcd(e, eulern())1)))
return e;
e = 五、求解满足条件的d值。
函数:int caculated()
功能描述:因为d是e在φ(n)下的乘法逆元,所以此处调用扩展的欧几里得算法求解函数实现:
public int caculated(){
d值。return extendeuclid(eulern(),e);/调用扩展的欧几里得算法。
六、欧几里得算法。
算法概述:欧几里得算法是数论中一个基本技术,是求两个正整数的最大公因子的简化过程。
算法原理:欧几里得算法是基于下面的基本结论:对任意非负整数a和正整。
数b,有gcd(a,b) =gcd(b,a mod b)。
伪**:算法euclid(f,d)
/求两个数的最大公约数//输入:待检测的两个数f,d//输出:f和d的最大公约数x←f;y←d;while true do
if y=0 then return x;if y=1 then return y;r←x mod y;x←yy←r
实现函数:int euclid(int x, int y)
七、扩展的欧几里得算法。
算法概述:如果gcd(f,d)=1,则返回d在模f下的乘法逆元算法概述:如果gcd(f,d)=1,则返回d在模f下的乘法逆元伪**:
算法:extendeuclid(f,d)
/如果gcd(f,d)=1,则d在模f下存在乘法逆元//输入:整数f和d
/输出:d在模f下的乘法逆元(x1, x2, x3)←(1,0,f);(y1, y2, y3)←(0,1,d);while true doif y3=0 then return x3;
if y3=1 then return y3;y2←d-1mod f;q←x3 / y3;
t1, t2, t3)←(x1-qy1, x2-qy2, x3-qy3);(x1, x2, x3)←(y1, y2, y3);
y1, y2, y3)←(t1, t2, t3)
实现函数:int extendeuclid(int n, int e)
八、rsa加密函数。
函数:int encode(int m)
功能描述:对所给明文加密,返回密文函数实现:
public int encode(int m){return modexp(m, e, n);
九、rsa解密函数。
函数:int decode(int c)
功能描述:对所给密文加密,返回明文函数实现:
public int decode(int c){return modexp(c, d, n);
算法初步作业
1.下面对算法描述正确的一项是 a 算法只能用自然语言来描述 b 算法只能用图形方式来表示。c 同一问题可以有不同的算法 d 同一问题的算法不同,结果必然不同。2.对赋值语句的描述正确的是 可以给变量提供初值 将表达式的值赋给变量。可以给一个变量重复赋值 不能给同一变量重复赋值。a b c d 3....
算法初步小结
课题 算法初步小结 说课稿 占书文 湖北省云梦县梦泽高中 一。说教材分析。1.地位和作用。算法初步 是人教a版高中新课标教材必修3第一章的内容,是一项新增内容,也是广大数学教师教学中普遍感到比较困难的一章。算法是数学及其应用的重要组成部分,是计算科学的重要基础。随着现代信息技术的飞速发展,算法在科学...
算法初步总结
课题 必修三第一章算法初步。课时 课时班级姓名 学习目标 知识与技能 1 通过对具体问题的分析,体会算法的思想,了解算法的含义。2.理解程序框图的三种基本逻辑结构 顺序结构 条件结构 循环结构。3.理解并掌握几种基本的算法语句 输入语句 输出语句 赋值语句 条件语句 循环语句。过程与方法 进一步体会...