簡易版本的RSA系統中,假設質數p=13, q=17
n=?
phi(n)=?
假設公鑰指數e=5,私鑰指數d=?
明文代碼m=100,密文c=?
提示:可用Java中的BigInteger 中的方法modInverse, modPow求d與c的解,或者是用筆算。參閱http://anwendeng.blogspot.tw/2013/10/java1024-bit-rsa.html
herrDeng網內搜尋
自訂搜尋
Ads
訂閱:
張貼留言 (Atom)
熱門文章
-
C++用 -1 mask法達到branchless解Leetcode1513 Number of Substrings With Only 1s|Py3 1-liner 其實很容易,想練功,試試一行解,或是把if分岔拿掉 [C++無分岔解請進]
-
計算你的BMI
-
請用C/C++ 程式計算 S=1*1+2*2+3*3+4*4+.....+20*20=?
-
計算你上學期加權平均
-
算上學期加權平均
-
GCD(123456789,345634567)=?
-
何謂演算法?並列出一無窮迴圈的範例!
-
問int怎麼存-689這個數字。 int用4個bytes。 答案請用16進位表達。
-
55x+27y=gcd
52 則留言:
package go;
import java.math.BigInteger;
import java.security.SecureRandom;
public class CAI {
public static void main(String[] args)throws Exception
{
System.out.println("My name is RAMBO!");
SecureRandom rnd=new SecureRandom();
BigInteger p,q,n,phiN,e,d;
int b=512, u=128;
p=new BigInteger("13");
System.out.println("p="+p);
q=new BigInteger("17");
System.out.println("q="+q);
n=p.multiply(q);
System.out.println("n="+n);
BigInteger one=new BigInteger("1");
phiN=p.subtract(one).multiply(q.subtract(one));
System.out.println("phiN="+phiN);
e=new BigInteger("5");
System.out.println("e="+e);
d=e.modInverse(phiN);
System.out.println("d="+d);
BigInteger m=new BigInteger("100");
System.out.println("m="+m);
BigInteger c=m.modPow(e, n);
System.out.println("c="+c);
BigInteger m1=c.modPow(d, n);
System.out.println("m1="+m1);
System.out.println(m.equals(m1));
}
}
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
d=77
c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
b10041032 林佳雯
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
N=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
d=77
c=172
n=221
phi(n)=192
d=77
c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
N=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
package go;
import java.math.BigInteger;
import java.security.SecureRandom;
public class CAI {
public static void main(String[] args)throws Exception
{
System.out.println("My name is RAMBO!");
SecureRandom rnd=new SecureRandom();
BigInteger p,q,n,phiN,e,d;
int b=512, u=128;
p=new BigInteger("13");
System.out.println("p="+p);
q=new BigInteger("17");
System.out.println("q="+q);
n=p.multiply(q);
System.out.println("n="+n);
BigInteger one=new BigInteger("1");
phiN=p.subtract(one).multiply(q.subtract(one));
System.out.println("phiN="+phiN);
e=new BigInteger("5");
System.out.println("e="+e);
d=e.modInverse(phiN);
System.out.println("d="+d);
BigInteger m=new BigInteger("100");
System.out.println("m="+m);
BigInteger c=m.modPow(e, n);
System.out.println("c="+c);
BigInteger m1=c.modPow(d, n);
System.out.println("m1="+m1);
System.out.println(m.equals(m1));
}
}
package go;
import java.math.BigInteger;
import java.security.SecureRandom;
public class CAI {
public static void main(String[] args)throws Exception
{
System.out.println("My name is RAMBO!");
SecureRandom rnd=new SecureRandom();
BigInteger p,q,n,phiN,e,d;
int b=512, u=128;
p=new BigInteger("13");
System.out.println("p="+p);
q=new BigInteger("17");
System.out.println("q="+q);
n=p.multiply(q);
System.out.println("n="+n);
BigInteger one=new BigInteger("1");
phiN=p.subtract(one).multiply(q.subtract(one));
System.out.println("phiN="+phiN);
e=new BigInteger("5");
System.out.println("e="+e);
d=e.modInverse(phiN);
System.out.println("d="+d);
BigInteger m=new BigInteger("100");
System.out.println("m="+m);
BigInteger c=m.modPow(e, n);
System.out.println("c="+c);
BigInteger m1=c.modPow(d, n);
System.out.println("m1="+m1);
System.out.println(m.equals(m1));
}
}
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
n=221
phi(n)=192
私鑰指數d=77
密文c=172
package go;
import java.math.BigInteger;
import java.security.SecureRandom;
public class CAI {
public static void main(String[] args)throws Exception
{
System.out.println("My name is RAMBO!");
SecureRandom rnd=new SecureRandom();
BigInteger p,q,n,phiN,e,d;
int b=512, u=128;
p=new BigInteger("13");
System.out.println("p="+p);
q=new BigInteger("17");
System.out.println("q="+q);
n=p.multiply(q);
System.out.println("n="+n);
BigInteger one=new BigInteger("1");
phiN=p.subtract(one).multiply(q.subtract(one));
System.out.println("phiN="+phiN);
e=new BigInteger("5");
System.out.println("e="+e);
d=e.modInverse(phiN);
System.out.println("d="+d);
BigInteger m=new BigInteger("100");
System.out.println("m="+m);
BigInteger c=m.modPow(e, n);
System.out.println("c="+c);
BigInteger m1=c.modPow(d, n);
System.out.println("m1="+m1);
System.out.println(m.equals(m1));
}
}
package go;
import java.math.BigInteger;
import java.security.SecureRandom;
public class CA {
public static void main(String[] args)throws Exception
{
System.out.println("My name is RAMBO!");
SecureRandom rnd=new SecureRandom();
BigInteger p,q,n,phiN,e,d;
int b=512, u=128;
p=new BigInteger("13");
System.out.println("p="+p);
q=new BigInteger("17");
System.out.println("q="+q);
n=p.multiply(q);
System.out.println("n="+n);
BigInteger one=new BigInteger("1");
phiN=p.subtract(one).multiply(q.subtract(one));
System.out.println("phiN="+phiN);
e=new BigInteger("5");
System.out.println("e="+e);
d=e.modInverse(phiN);
System.out.println("d="+d);
BigInteger m=new BigInteger("100");
System.out.println("m="+m);
BigInteger c=m.modPow(e, n);
System.out.println("c="+c);
BigInteger n1=c.modPow(d, n);
System.out.println("n1="+n1);
System.out.println(m.equals(n1));
}
}
package go;
import java.math.BigInteger;
import java.security.SecureRandom;
public class CKI {
public static void main(String[] args)throws Exception
{
System.out.println("My name is RAMBO!");
SecureRandom rnd=new SecureRandom();
BigInteger p,q,n,phiN,e,d;
int b=512, u=128;
p=new BigInteger("13");
System.out.println("p="+p);
q=new BigInteger("17");
System.out.println("q="+q);
n=p.multiply(q);
System.out.println("n="+n);
BigInteger one=new BigInteger("1");
phiN=p.subtract(one).multiply(q.subtract(one));
System.out.println("phiN="+phiN);
e=new BigInteger("5");
System.out.println("e="+e);
d=e.modInverse(phiN);
System.out.println("d="+d);
BigInteger m=new BigInteger("100");
System.out.println("m="+m);
BigInteger c=m.modPow(e, n);
System.out.println("c="+c);
BigInteger K=c.modPow(d, n);
System.out.println("K="+K);
System.out.println(m.equals(K));
}
}
n=221
phi(n)=192
d=77
c=172
n = 221
phi(n) = 192
私鑰指數d = 77
密文c = 172
張貼留言