簡易版本的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)
熱門文章
-
11!=?
-
教育部為提昇全民資安素養與電腦防護能力,本部於101年9月5日至11月5日舉辦「全民資安素養自我評量」活動,請在活動期間內踴躍上網檢測資訊安全素養認知程度,並有機會參與抽獎,詳情請參閱活動網站(網址: https://isafe.moe.edu.tw/event
-
請問你所使的電腦,CPU的規格 Cache多大?其他硬體配置...... 另外, "INTEL® XEON PHI™ 處理器 7230F"的大致規格為?
-
列舉對稱、非對稱密碼各三種。
-
產生50個元素的陣列並排序
-
密文=MQKAOVJW 金鑰:Rotors: 123 初始位置: W,G,U 接線板Stecker: GR
-
Caesar挪移碼密文: MCLGZ 請破譯!
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
張貼留言