RSA算法初步实现

发布 2022-07-02 23:37:28 阅读 8167

一、产生随机大素数。

函数: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.理解并掌握几种基本的算法语句 输入语句 输出语句 赋值语句 条件语句 循环语句。过程与方法 进一步体会...