簡易版本的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)
熱門文章
-
教育部為提昇全民資安素養與電腦防護能力,本部於101年9月5日至11月5日舉辦「全民資安素養自我評量」活動,請在活動期間內踴躍上網檢測資訊安全素養認知程度,並有機會參與抽獎,詳情請參閱活動網站(網址: https://isafe.moe.edu.tw/event
-
你會用C的算子sizeof?
-
C 的continue & break [影片]介紹C++程式for迴圈中加上continue與break的差異之簡例 Java迴圈中的的continue & break
-
C++ DP動態規劃解Leetcode 937 Maximum Number of Points with Cost 有些標示medium要比標示hard的問題還要難,Leetcode 1937. Maximum Number of Points with Cost,DP動態規...
-
EULER特徵數定理與UnionFind解Leetcode959 Regions Cut By Slashes EULER特徵數定理:平面連通圖有V-E+F --------------
-
C++ stringstream解分數加減Leetcode 592 Fraction Addition and Subtraction 程式設計分數加減很難嗎?計算容易,但處理字串費事,用stringstream就簡單了
-
C++Floyd Warshall解Leetcode 1334 Find the City With the Smallest Number of Neighbors at a Threshold 由於每對 (i, j) 都有許多最短路徑需要計算,採用 Floyd-Warsh...
-
RSA 演算 Euler 定理搞定#LeetCode 372 Super Pow--C,C++,Python實作。玩過數論、RSA演算的,解這個問題剛好,C++解答打敗94%,還沒有特別優化。
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
張貼留言