vb.netrsa算法 vbnet assembly( 二 )


End Try
[C#]
try
{
//Create a new RSACryptoServiceProvider object.
RSACryptoServiceProvider RSA = new RSACryptoServiceProvider();
//Export the key information to an RSAParameters object.
//Pass false to export the public key information or pass
//true to export public and private key information.
RSAParameters RSAParams = RSA.ExportParameters(false);
}
catch(CryptographicException e)
{
//Catch this exception in case the encryption did
//not succeed.
Console.WriteLine(e.Message);
}
关于vb做的rsa加解密程序:将方程x^4-px^3+q=0移项,得
x^4+q=px^3
可见 , x^4≥0 , 则x^4+q0,所以px^30,即x0 , 本题也就是要求出使方程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-x0 , 即x2,则只能是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 。
晕,再补一个!
1:编程实现 自动生成两个素数p,q
2:编程实现 计算n=p*q
f(n)=(p-1)(q-1)
3: 随机数e满足:0ef(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
Private Sub Command10_Click()
End
End Sub
Private Sub Command9_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
Text8.Text = ""
Text9.Text = ""
End Sub
Private Sub Command2_Click()
p = Val(Text1.Text)
q = Val(Text2.Text)
Text3.Text = Str$(p * q)
End Sub
Private Sub Command3_Click()
p = Val(Text1.Text)
q = Val(Text2.Text)
Text4.Text = Str$(p - 1) * (q - 1)
End Sub
怎么用vb实现rsa算法?谢谢了,大神帮忙啊Private Sub Command3_Click() Dim ni%, m1%, m%, n%, r% n1 = Text1.Text m1 = Text2.Text If m1n1 Then ' mn m = m1: n = n1 Else m = n1: n = m1 End If Do r = m Mod n If r = 0 Then Exit Do m = n n = r Loop Text3.Text = n Text4.Text = m1 * n1 / n End Sub
如何用VB实现RSA加密算法,网上找到了一份代码,没有注释看不懂,请大神解释!!!RSA算法非常简单 , 概述如下:
找两素数p和q
取n=p*q
取t=(p-1)*(q-1)
取任何一个数e,要求满足et并且e与t互素(就是最大公因数为1)
取d*e%t==1
这样最终得到三个数: n d e
设消息为数M (M n)
设c=(M**d)%n就得到了加密后的消息c
设m=(c**e)%n则 m == M,从而完成对c的解密 。

推荐阅读