我來回答你可以閉帖了,呵呵
看你題目的意思就是打算把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
❷ AES128鍔犺В瀵嗘祦紼嬭︾粏浠嬬粛
鍔犲瘑榪囩▼: AES128鐨勫姞瀵嗕箣鏃呭嬩簬16瀛楄妭鐨勫師濮嬫暟鎹鍜16瀛楄妭鐨勫瘑閽ワ紝棣栧厛灝嗕袱鑰呰瀺鍚堝埌涓涓鎺掑垪鐭╅樀涓銆傛帴鐫錛岄氳繃杞瀵嗛掗鍔狅紙寮傛垨錛夋搷浣滐紝閰嶅悎瀛楄妭浠f浛錛圫鐩掞級鐨勯瓟鏈錛岃岀Щ浣嶄笌鍒楁販娣嗭紙鍥哄畾鐭╅樀錛夌殑宸у欑粍鍚堬紝榪涜10杞榪浠c傛渶鍚庯紝閫氳繃鎵╁睍瀵嗛掗錛圞鐭╅樀鎿嶄綔錛夌敓鎴愪竴涓鍏抽敭妗ユ侊紝紜淇濇暟鎹鐨勫畨鍏ㄨ漿縐匯
鍔犲瘑姝ラよ﹁В錛
瑙e瘑姝ラわ細 涓庡姞瀵嗙浉鍙嶏紝鐢10杞杞瀵嗛掗鍔狅紝姣忔′嬌鐢ㄦ墿灞曞瘑閽ワ紝紜淇濊繕鍘熷姞瀵嗘椂鐨勬瘡涓姝ャ傝В瀵嗘椂錛岃В瀵嗘槑鏂囧湪10杞鍚庢彮鏅擄紝涓斿湪鏈鍚庝竴杞鏃訛紝鍒楁販娣嗙殑鎿嶄綔闇璋冩暣涓洪嗗悜澶勭悊銆
瀹為檯搴旂敤錛 瀵逛簬鏂囦歡鍔犲瘑錛岄櫎浜嗗熀紜鐨勭數瀛愬瘑鐮佹湰錛圗CB錛夛紝鎴戜滑榪樻湁鍏朵粬瀹夊叏閫夐」銆侲CB鉶界劧綆鍗曪紝浣嗘槗鏆撮湶閲嶅嶆ā寮忥紝闇璋ㄦ厧浣跨敤銆傚瘑鐮佸潡閾炬帴錛圕BC錛夐氳繃鍒濆嬪悜閲忛伩鍏嶆ā寮忛棶棰橈紝鏀鎸佸苟琛岃В瀵嗭紝浣嗚В瀵嗘椂瀵歸敊璇鏁忔劅銆傚瘑鏂囧弽棣堬紙CFB錛変互bit涓哄崟浣嶏紝鎻愪緵棰濆栫殑瀹夊叏灞傦紝浣嗚В瀵嗘椂鏈夐噸鏀炬敾鍑婚庨櫓銆
妯″紡璇﹁В錛
鍦ㄦ枃浠跺垎鍧楁椂錛屽彲鑳戒細鐢ㄥ埌濉鍏呮満鍒訛紝濡侼oPadding銆丳KCS#7銆乑erosPadding絳夛紝浠ユ弧瓚蟲暟鎹瀹屾暣鎬с傚悗緇絝犺妭灝嗘繁鍏ユ帰璁ㄨ繖浜涙妧鏈浠ュ強鍙鑳界殑鏀誨嚮鐮磋В絳栫暐銆
❸ 請簡述數字加密的過程
在對稱加密中,數據發送方將明文(原始數據)和加密密鑰一起經過特殊加密演算法處理後,使其變成復雜的加密密文發送出去。
接收方收到密文後,若想解讀原文,則需要使用加密密鑰及相同演算法的逆演算法對密文進行解密,才能使其恢復成可讀明文。在對稱加密演算法中,使用的密鑰只有一個,發收信雙方都使用這個密鑰對數據進行加密和解密。
(3)描述加密過程擴展閱讀:
數字加密注意事項:
通過TCP三次握手進行連接,然後客戶端發送hello包到服務端,服務端回應一個hello包,如果客戶端需要再次發送數字證書, 則發送數字證書到客戶端。
客戶端得到伺服器的證書後通過CA服務驗證真偽、驗證證書的主體與訪問的主體是否一致,驗證證書是否在吊銷證書列表中。如果全部通過驗證則與伺服器端進行加密演算法的協商。
用證書中伺服器的公鑰加密對稱秘鑰發送給伺服器端,對稱秘鑰只能用伺服器的私鑰進行解密,當伺服器通過私鑰解密對稱秘鑰後。使用對稱秘鑰將客戶端請求的數據發送到客戶端,客戶端在用對稱秘鑰進行解密,從而得到想要的數據。
❹ RSA加密/解密和簽名/驗簽過程理解
加密是為了防止信息被泄露
簽名是為了防止信息被篡改
第一個場景:戰場上,B要給A傳遞一條消息,內容為某一指令。
RSA的加密過程如下:
(1)A生成一對密鑰(公鑰和私鑰),私鑰不公開,A自己保留。公鑰為公開的,任何人可以獲取。
(2)A傳遞自己的公鑰給B,B用A的公鑰對消息進行加密。
(3)A接收到B加密的消息,利用A自己的私鑰對消息進行解密。
在這個過程中,只有2次傳遞過程,第一次是A傳遞公鑰給B,第二次是B傳遞加密消息給A,即使都被敵方截獲,也沒有危險性,因為只有A的私鑰才能對消息進行解密,防止了消息內容的泄露。
第二個場景:A收到B發的消息後,需要進行回復「收到」。
RSA簽名的過程如下:
(1)A生成一對密鑰(公鑰和私鑰),私鑰不公開,A自己保留。公鑰為公開的,任何人可以獲取。
(2)A給B發送消息,A先計算出消息的消息摘要,然後使用自己的私鑰加密消息摘要,被加密的消息摘要就是簽名.並將簽名和消息本身(簽名原文)一起傳遞給B.(A用自己的私鑰給消息摘要加密成為簽名)
(3)B收到消息後,也會使用和A相同的方法提取消息摘要,然後用A的公鑰解密簽名,並與自己計算出來的消息摘要進行比較-->如果相同則說明消息是A發送給B的,同時,A也無法否認自己發送消息給B的事實.(B使用A的公鑰解密簽名文件的過程,叫做"驗簽")
在這個過程中,只有2次傳遞過程,第一次是A傳遞加簽的消息和消息本身給B,第二次是B獲取A的公鑰,即使都被敵方截獲,也沒有危險性,因為只有A的私鑰才能對消息進行簽名,即使知道了消息內容,也無法偽造帶簽名的回復給B,防止了消息內容的篡改。
但是,綜合兩個場景你會發現,第一個場景雖然被截獲的消息沒有泄露,但是可以利用截獲的公鑰,將假指令進行加密,然後傳遞給A。第二個場景雖然截獲的消息不能被篡改,但是消息的內容可以利用公鑰驗簽來獲得,並不能防止泄露。所以在實際應用中,要根據情況使用,也可以同時使用加密和簽名,比如A和B都有一套自己的公鑰和私鑰,當A要給B發送消息時,先用B的公鑰對消息加密,再對加密的消息使用A的私鑰加簽名,達到既不泄露也不被篡改,更能保證消息的安全性。
總結:公鑰加密、私鑰解密、私鑰簽名、公鑰驗簽。