关于vb做的rsa加解密程序

来源:百度知道 编辑:UC知道 时间:2024/09/24 22:21:58
编程实现
1:编程实现 自动生成两个素数p,q
2:编程实现 计算n=p*q
f(n)=(p-1)(q-1)
3: 随机数e满足:0<e<f(n) and f(n)与e互为素数
4: 编程实现 计算d:d=e mod f(n)=1

如要加密m

5:编程实现计算c:
加密公式:c=m^e mod n
6:编程实现解密m:
解密公式:m=c^d mod n
过程大概这样 可是编程实现我不会
运行下来 我是点击command1 会分别产生两个素数p、q分别赋值给text1和text2,单击command2、3会计算出n、f(n)分别赋值给text3、4,然后单击command4、5会给text5、6赋一个和要求的e、d的值,然后文本框text7可输入要加密的数值或英文字母,单击command6、7可计算出c、m并赋值给text8、9如何实现
考虑到一些因素 可以限制pq的范围
希望得到vb代码

:将方程x^4-px^3+q=0移项,得

x^4+q=px^3
可见,x^4≥0,则x^4+q>0,所以px^3>0,即x>0,本题也就是要求出使方程x^4-px^3+q=0有正整数解的素数p、q;
且素数p必定是奇素数,否则是偶素数的话,那么p=2,则方程成为:x^4+q=2x^3,即q=2x^3-x^4=x^3×(2-x)>0,得出2-x>0,即x<2,则只能是x=1,代入方程:1^4+q=2×1^3,即1+q=2,解得q=1,不是素数,故p必定是奇素数。

分两种情形讨论:

情形一:当x为偶数时,设为x=2n,则有
(2n)^4+q=p×(2n)^3
16n^4+q=p×8n^3
上式右端是偶数,则左端的q必须为偶数,否则:左端奇偶相加得奇,不符。
而q作为素数,唯一的偶素数就是2,即q=2,则上式成为
16n^4+2=p×8n^3
两边同时除以2,得:8n^4+1=p×4n^3,显然,左端奇偶相加得奇,但右端为偶,矛盾。所以方程无偶整数解;

情形二:当x为奇数时,设为x=2n-1,则有
(2n-1)^4+q=p×(2n-1)^3
观察上式,右端为奇,则左端也必须为奇,而(2n-1)^4是奇,所以得出q必须为偶,故素数q=2,上式成为:
(2n-1)^4+2=p×(2n-1)^3,整理成:
p(2n-1)^3-(2n-1)^4=(2n-1)^3×[p-(2n-1)]=1×2
由于(2n-1)^3为奇,所以必有:(2n-1)^3=1,解得:n=1;
则:[p-(2n-1)]=2,解得:p=3;

综上,对于素数p、q,方程x^4-px^3+q=0有整数解,则p、q分别为3和2。

:将方程x^4-px^3+q=0移项,得

x^4+q=px^3
可见,x^4≥0,则x^4+q>0,所以px^3>0,即x>0,本题也就是要求出使方程x^4-px^3+q=0有正整数解的素数p、q; <