RSA演算法很簡單,就是基於歐拉定理的簡單演算法
M=5是明文,計算過程如下:
n=p*q=33;
(p-1)*(q-1)=20;
加密:y=密文,x=明文=5;
y=x^e mod n = 5^7 mod 33 = 14;
解密:
x=y^d mod n;
d*e= 1 [mod(p-1)*(q-1)];
7d=1(mod 20)所以d=3;
所以x=y^d mod n= 14^3 mod 33 = 5;解完
加密由5~14,解密由14~5,實現了RSA演算法的加密解密過程,證明了計算的正確性。
其他2題同理,自己做吧。
『貳』 RSA加密演算法求解
你好,首先是N = p*q =1517, 然後是L = (p-1)*(q-1)=1440.
利用E*D%L=1, 計算出D=593, 所以這個公鑰是(E,N) == (17,1517)
私鑰是(D,N) = (593,1517)
明文可以分成兩個 123 和45.
加密是= (明文)^E %N = 123^17%1517 =這個數字太大了,我就不計算了,計算一個小45的給你看看好了
(明文)^E %N = 45^17%1517 = 763
解密是= (密文)^D%N = (763)^593%1517 .... 你自己計算一下好了,應該就是45
『叄』 愷撒密碼和RSA演算法2題求解
M的e次方乘mod pq就是RSA的加密演算法,上面哪個我就不知到了,不好意思啊!
『肆』 利用RSA演算法運算,如果p=11,q=13, e=103,對明文3進行加密.求d及密文
取2個質數p=11,q=13,p和q的乘積為n=p×q=143,算出φ(n)=n-p-q+1=120;再選取一個與φ(n)互質的數,例如e=7,則公開密鑰=n,e=143,7.
對於這個e值,用歐幾里德擴展演算法可以算出其逆:d=103.因為e×d=7×103=721,滿足e×d mod z =1;即721 mod 120=1成立.則秘密密鑰=n,d=143,103,
設發送方需要發送機密信息(明文)m=3,發送方已經從公開媒體得到了接收方的公開密鑰n,e=143,7,於是發送方算出加密後的密文c= m的e次方 mod n=42
『伍』 完成RSA演算法,RSA加密 p=3,q=11,e=7,M=5;請寫出求公鑰和私鑰的過程。
n=p*q=33
phi=(p-1)(q-1)=20
e=7
e * d = 1 ( mod phi)
d=17
公私密鑰對:
(n,d)
(n,e)
編碼過程是, 若資料為 a, 將其看成是一個大整數, 假設 a < n....
如果 a >= n 的話, 就將 a 表成 s 進位 (s <= n, 通常取 s = 2^t),
則每一位數均小於 n, 然後分段編碼……
接下來, 計算 b == a^d mod n, (0 <= b < n),
b 就是編碼後的資料……
解碼的過程是, 計算 c == b^e mod pq (0 <= c < pq),
於是乎, 解碼完畢…… 等會會證明 c 和 a 其實是相等的
『陸』 RSA加密演算法問題求解!!
首先說一下求d的答案,ed=1mod(p-1)(q-1)=1mod60即7d=1mod60的意思是e與d的乘積對(p-1)(q-1)取余結果是1,題目給出e=7,(p-1)(q-1)可以求得是60,即(7d)%60=1【%是取余符號】,可以得出43*7=301=5*60+1
題目已給出M=17,秘文C=M^e mod n即M的e次方對n取余,代入數值為17^5%143=10
希望對你有幫助
『柒』 求解計算RSA演算法加密的步驟。 用RSA演算法加密時,已知公鑰是(e=7,n=20)...
加密時用公鑰d,解密時用私鑰e
公式都一樣
要加密或解密的數字做e次方或d次方,得到的數字再和n進行模運算,模運算就是求余數
拿你給的數據來算的話就是
3的7次方等於2187,2187除以20等於109,余數是7
所以得到的密文就是7
解密就是算7的3次方343,343除以20等於340餘數3,於是我們又得回原來的明文3了
『捌』 一個RSA演算法的加密運算,需要完整的演算過程。
我來回答你可以閉帖了,呵呵
看你題目的意思就是打算把republic這個詞按照你的方法裝換成數字例如是:X
p=3,q=11
n=p*q=33
t=(p-1)*(q-1)=20
取任何一個數e,要求滿足e<t並且e與t互素(就是最大公因數為1)
我們可以取e=7
要求d*e%t==1(D*e除以t取余等於1),我們可以找到D=3
此時我們就有了三個數
n=33
d=3 公鑰
e=7 私鑰
設消息為數M (M <n)
設c=(M**d)%n就得到了加密後的消息c
設m=(c**e)%n則 m == M,從而完成對c的解密。
註:**表示次方,上面兩式中的d和e可以互換。
我們可以對republic詞按照你的方法裝換成數字:X一位一位的加密。
加入X的第一位是6(別的同理)
則:M = 6
加密時:(c為加密後的數字)
c=(M**d)%n=(6^3)%33=216%33=18(商6餘18),則6加密後就是18了
解密時:
設m=(c**e)%n則 m == M,
(18^7)%33=612220032%33=6(商18552122餘6)
到此加密解密完成。
至於怎麼把republic裝換成X,把X裝分成多少部分進行分批加密,你可以自己決定。但是加密的數字M 需要小於n
如果需要給你寫個程序,留個Email,我空的時候寫個發給你。
我個人給你個方法,因為n=33 >26(26個英文字母),所以可以把republic分成一個字母一個字母的加密。
按你的分發 REP 就分成數字
18 05 16
加密
(18^3)%33=5832%33= 24
(05^3)%33=125%33= 26
(16^3)%33=%33= 4
所以加密後就是
24 26 04 轉換成字母就是 XZD
解密
(24^7)%33=4586471424%33=18
(26^7)%33=8031810176%33=05
(4^7)%33=16384%33=16
又變成 18 05 16 轉換成字母就是 REP
是不是很簡單啊~~
我如果不懂。空間裡面有片文章,你可以看看,就知道我上面講的那些是什麼意思了。
RSA演算法舉例說明
http://hi..com/lsgo/blog/item/5fd0da24d495666834a80fb8.html
『玖』 根據RSA演算法,用公鑰(n=15,e=3)加密數字7,然後用私鑰(n=15,d=11)解密上述加密
加密=7^3mod15=13
解密=13^11mod15
『拾』 用RSA對下列數據實現加密和解密:
拜託:老大,你的家庭作業也來問?
你自己學吧:下面是課文^
RSA加密演算法
該演算法於1977年由美國麻省理工學院MIT(Massachusetts Institute of Technology)的Ronal Rivest,Adi Shamir和Len Adleman三位年輕教授提出,並以三人的姓氏Rivest,Shamir和Adlernan命名為RSA演算法。該演算法利用了數論領域的一個事實,那就是雖然把兩個大質數相乘生成一個合數是件十分容易的事情,但要把一個合數分解為兩個質數卻十分困難。合數分解問題目前仍然是數學領域尚未解決的一大難題,至今沒有任何高效的分解方法。與Diffie-Hellman演算法相比,RSA演算法具有明顯的優越性,因為它無須收發雙方同時參與加密過程,且非常適合於電子函件系統的加密。
RSA演算法可以表述如下:
(1) 密鑰配製。假設m是想要傳送的報文,現任選兩個很大的質數p與q,使得:
(12-1);
選擇正整數e,使得e與(p-1)(q-1)互質;這里(p-1)(q-1)表示二者相乘。再利用輾轉相除法,求得d,使得:
(12-2);
其中x mod y是整數求余運算,其結果是x整除以y後剩餘的余數,如5 mod 3 = 2。
這樣得:
(e,n),是用於加密的公共密鑰,可以公開出去;以及
(d,n),是用於解密的專用鑰匙,必須保密。
(2) 加密過程。使用(e,n)對明文m進行加密,演算法為:
(12-3);
這里的c即是m加密後的密文。
(3) 解密過程。使用(d,n)對密文c進行解密,演算法為:
(12-4);
求得的m即為對應於密文c的明文。
RSA演算法實現起來十分簡捷,據說英國的一位程序員只用了3行Perl程序便實現了加密和解密運算。
RSA演算法建立在正整數求余運算基礎之上,同時還保持了指數運算的性質,這一點我們不難證明。例如:
(12-5);
(12-6)。
RSA公共密鑰加密演算法的核心是歐拉(Euler)函數ψ。對於正整數n,ψ(n)定義為小於n且與n互質的正整數的個數。例如ψ(6) = 2,這是因為小於6且與6互質的數有1和5共兩個數;再如ψ(7) = 6,這是因為互質數有1,2,3,5,6共6個。
歐拉在公元前300多年就發現了ψ函數的一個十分有趣的性質,那就是對於任意小於n且與n互質的正整數m,總有mψ(n) mod n = 1。例如,5ψ(6) mod 6 = 52 mod 6= 25 mod 6 =1。也就是說,在對n求余的運算下,ψ(n)指數具有周期性。
當n很小時,計算ψ(n)並不難,使用窮舉法即可求出;但當n很大時,計算ψ(n)就十分困難了,其運算量與判斷n是否為質數的情況相當。不過在特殊情況下,利用ψ函數的兩個性質,可以極大地減少運算量。
性質1:如果p是質數,則ψ(p) = (p-1)。
性質2:如果p與q均為質數,則ψ(p·q) = ψ(p)·ψ(q) = (p-1)(q-1)。
RSA演算法正是注意到這兩條性質來設計公共密鑰加密系統的,p與q的乘積n可以作為公共密鑰公布出來,而n的因子p和q則包含在專用密鑰中,可以用來解密。如果解密需要用到ψ(n),收信方由於知道因子p和q,可以方便地算出ψ(n) = (p-1)(q-1)。如果竊聽者竊得了n,但由於不知道它的因子p與q,則很難求出ψ(n)。這時,竊聽者要麼強行算出ψ(n),要麼對n進行因數分解求得p與q。然而,我們知道,在大數范圍內作合數分解是十分困難的,因此竊密者很難成功。
有了關於ψ函數的認識,我們再來分析RSA演算法的工作原理:
(1) 密鑰配製。設m是要加密的信息,任選兩個大質數p與q,使得 ;選擇正整數e,使得e與ψ(n) = (p-1)(q-1)互質。
利用輾轉相除法,計算d,使得ed mod ψ(n) = ,即ed = kψ(n) +1,其中k為某一正整數。
公共密鑰為(e,n),其中沒有包含任何有關n的因子p和q的信息。
專用密鑰為(d,n),其中d隱含有因子p和q的信息。
(2) 加密過程。使用公式(12-3)對明文m進行加密,得密文c。
(3) 解密過程。使用(d,n)對密文c進行解密,計算過程為:
cd mod n = (me mod n)d mod n
= med mod n
= m(kψ(n) + 1) mod n
= (mkψ(n) mod n)·(m mod n)
= m
m即為從密文c中恢復出來的明文。
例如,假設我們需要加密的明文代碼信息為m = 14,則:
選擇e = 3,p = 5,q = 11;
計算出n = p·q = 55,(p-1)(q-1) = 40,d = 27;
可以驗證:(e·d) mod (p-1)(q-1) = 81 mod 40 = 1;
加密:c = me mod n = 143 mod 55 = 49;
解密:m = cd mod n = 4927 mod 55 = 14。
關於RSA演算法,還有幾點需要進一步說明:
(1) 之所以要求e與(p-1)(q-1)互質,是為了保證 ed mod (p-1)(q-1)有解。
(2) 實際操作時,通常先選定e,再找出並確定質數p和q,使得計算出d後它們能滿足公式(12-3)。常用的e有3和65537,這兩個數都是費馬序列中的數。費馬序列是以17世紀法國數學家費馬命名的序列。
(3) 破密者主要通過將n分解成p·q的辦法來解密,不過目前還沒有辦法證明這是唯一的辦法,也可能有更有效的方法,因為因數分解問題畢竟是一個不斷發展的領域,自從RSA演算法發明以來,人們已經發現了不少有效的因數分解方法,在一定程度上降低了破譯RSA演算法的難度,但至今還沒有出現動搖RSA演算法根基的方法。
(4) 在RSA演算法中,n的長度是控制該演算法可靠性的重要因素。目前129位、甚至155位的RSA加密勉強可解,但目前大多數加密程序均採用231、308甚至616位的RSA演算法,因此RSA加密還是相當安全的。
據專家測算,攻破512位密鑰RSA演算法大約需要8個月時間;而一個768位密鑰RSA演算法在2004年之前無法攻破。現在,在技術上還無法預測攻破具有2048位密鑰的RSA加密演算法需要多少時間。美國Lotus公司懸賞1億美元,獎勵能破譯其Domino產品中1024位密鑰的RSA演算法的人。從這個意義上說,遵照SET協議開發的電子商務系統是絕對安全的。