『壹』 密碼學 RSA演算法
明文,密文,密鑰
明文,密文,公鑰,私鑰
(n,e1)(n,e2)就是密鑰對。其中(n,e1)為公鑰,(n,e2)為私鑰。
1、找到兩個質數p,q
2、n=p q 歐拉函數:φ(N) =(p-1) (q-1)
3、選擇一個小於φ(N)隨機整數數e :1<e<φ(N)的整數 e和φ(N)互質
4、計算出e與φ(N)的模反元素d:
所謂"模反元素"就是指有一個整數d,可以使得ed被φ(n)除的余數為1。
ed ≡ 1 (mod φ(n))
這個式子等價於
ed - 1 = kφ(n)
於是,找到模反元素d,實質上就是對下面這個二元一次方程求解。
ex + φ(n)y = 1
這個方程可以用 "擴展歐幾里得演算法" 求解,
5、將n和e封裝成公鑰,n和d封裝成私鑰。
私鑰d:e*d/F(n)余數為1
6、加密: 加密要用公鑰 (n,e) me ≡ c (mod n) 即m^e/n余數為c
7、解密:解密要用私鑰(n,d) cd ≡ m (mod n) 即 c^d/n的余數為m
1、取p=103,q=349
2、計算n=p q=103 349=35947
3、計算歐拉函數φ(N) =(p-1) (q-1)=35496
4、取隨機整數 e小於φ(N)且互質e=773
5、 e 關於 r的模反元素 e d(mod φ(n))=1 d=45
6、公鑰就是 (35496 ,773),私鑰就是(35496 , 45)
傳播:n,e,c
解密:n,d,c
那麼,有無可能在已知n和e的情況下,推導出d?
(1)ed≡1 (mod φ(n))。只有知道e和φ(n),才能算出d。
(2)φ(n)=(p-1)(q-1)。只有知道p和q,才能算出φ(n)。
(3)n=pq。只有將n因數分解,才能算出p和q。
結論:如果n可以被因數分解,d就可以算出,也就意味著私鑰被破解。
可是,大整數的因數分解,是一件非常困難的事情。目前,除了暴力破解,還沒有發現別的有效方法。
『貳』 RSA演算法加密
RSA加密演算法是一種典型的非對稱加密演算法,它基於大數的因式分解數學難題,它也是應用最廣泛的非對稱加密演算法,於1978年由美國麻省理工學院(MIT)的三位學著:Ron Rivest、Adi Shamir 和 Leonard Adleman 共同提出。
它的原理較為簡單,假設有消息發送方A和消息接收方B,通過下面的幾個步驟,就可以完成消息的加密傳遞:
消息發送方A在本地構建密鑰對,公鑰和私鑰;
消息發送方A將產生的公鑰發送給消息接收方B;
B向A發送數據時,通過公鑰進行加密,A接收到數據後通過私鑰進行解密,完成一次通信;
反之,A向B發送數據時,通過私鑰對數據進行加密,B接收到數據後通過公鑰進行解密。
由於公鑰是消息發送方A暴露給消息接收方B的,所以這種方式也存在一定的安全隱患,如果公鑰在數據傳輸過程中泄漏,則A通過私鑰加密的數據就可能被解密。
如果要建立更安全的加密消息傳遞模型,需要消息發送方和消息接收方各構建一套密鑰對,並分別將各自的公鑰暴露給對方,在進行消息傳遞時,A通過B的公鑰對數據加密,B接收到消息通過B的私鑰進行解密,反之,B通過A的公鑰進行加密,A接收到消息後通過A的私鑰進行解密。
當然,這種方式可能存在數據傳遞被模擬的隱患,但可以通過數字簽名等技術進行安全性的進一步提升。由於存在多次的非對稱加解密,這種方式帶來的效率問題也更加嚴重。
『叄』 RSA 鈥斺 緇忓吀鐨勯潪瀵圭О鍔犲瘑綆楁硶
鎺㈢儲RSA鍔犲瘑浼犲囷細闈炲圭О鍔犲瘑綆楁硶鐨勫ゥ縐
鍦ㄥ瘑鐮佸︾殑鐟板疂涓錛孯SA綆楁硶浠ュ叾鐙鐗圭殑闈炲圭О鎬х嫭鏍戜竴甯溿傚畠灝卞儚涓鎶婄炵樼殑閽ュ寵錛岃╀俊鎮鍦ㄧ湅浼兼棤瑙g殑璋滈樹腑瀹夊叏絀挎銆備竴鏃︽帉鎻′簡嬈ф媺鍑芥暟銆佹ф媺瀹氱悊鍜岄嗗厓鐨勭簿楂擄紝RSA鍔犲瘑涓庤В瀵嗙殑鍘熺悊灝嗗彉寰楄交鑰屾槗涓俱傝╂垜浠涓璧鋒彮寮榪欎釜鍔犲瘑綆楁硶鐨勭炵橀潰綰便
鍔犲瘑錛屾槸灝嗘槑鏂囬氳繃鐗瑰畾綆楁硶鍙樺夠錛屼嬌涔嬪湪鏈鎺堟潈鑰呴潰鍓嶅彉寰椾笉鍙璇匯傝岃В瀵嗭紝鍒欐槸榪欎釜榪囩▼鐨勯嗚繍綆楋紝鎮㈠嶅師濮嬩俊鎮銆傛槑鏂囦笌瀵嗘枃錛屽氨鍍忎竴瀵瑰瘑鐮佺殑鍘熷艦涓庡彉褰錛岄氳繃鍔犲瘑綆楁硶鐨勯瓟娉曪紝鍙樺緱闅句互瑙﹀強銆
鍦ㄥ姞瀵嗘墜孌典腑錛屽圭О涓庨潪瀵圭О鏄涓ょ嶆埅鐒朵笉鍚岀殑鏂瑰紡銆傚圭О鍔犲瘑濡侫ES鍜孌ES錛屼嬌鐢ㄥ悓涓鎶婂瘑閽ヨ繘琛屽姞瑙e瘑錛岄珮鏁堜絾瀵嗛掗綆$悊澶嶆潅銆傜浉鍙嶏紝RSA鐨勯潪瀵圭О鎬т互鍏閽ュ拰縐侀掗鐨勫囧欑粍鍚堜負鐗圭偣錛屼竴涓鍏寮錛屼竴涓淇濆瘑錛岀『淇濅簡淇℃伅浜ゆ崲鐨勫畨鍏ㄣ
RSA綆楁硶鐨勬牳蹇冨熀浜庝竴涓鏁板﹂毦棰橈細緔犳暟鐨勪箻縐鐪嬩技瀹規槗鐢熸垚錛屼絾鍒嗚В鍗村紓甯稿洶闅俱傛f槸榪欎釜鍘熺悊錛屾瀯鎴愪簡RSA鍔犲瘑鐨勫潥鍥哄熀鐭熾傚叾榪囩▼鍖呮嫭鐢熸垚涓瀵瑰簽澶х殑緔犳暟錛岃$畻涔樼Н騫舵壘鍒板畠浠鐨勯嗗厓錛屽艦鎴愬叕閽ュ拰縐侀掗榪欏瑰瘑閽ヤ即渚c
鍔犲瘑鏃訛紝鏄庢枃閫氳繃鍏閽ョ殑騫傝繍綆椾笌妯¤繍綆楋紝鍙樻垚鐪嬩技鏃犺抗鍙寰鐨勫瘑鏂囷紱鑰岃В瀵嗭紝鍒欐槸縐侀掗鐨勮亴璐o紝榪愮敤鍚屾牱鐨勬暟瀛﹂瓟娉曞皢瀵嗘枃榪樺師涓哄師濮嬩俊鎮銆俁SA鐨勫閥濡欒捐★紝璁╁畨鍏ㄥ拰鏁堢巼鎵懼埌浜嗗畬緹庣殑騫寵銆
縐侀掗瑙e瘑鐨勫叧閿鍦ㄤ簬錛屽畠紜淇濅簡瀵嗘枃緇忚繃騫傚彇妯″悗絳変簬鏄庢枃銆傛棤璁烘槸浜掔礌榪樻槸闈炰簰緔犵殑鎯呭喌錛屾ф媺瀹氱悊鍜岄嗗厓鐨勮繍鐢錛岄兘淇濊瘉浜嗚繖涓榪囩▼鐨勬g『鎬с傝孯SA鐨勫畨鍏ㄦу湪浜庯紝瑕佺牬瑙e畠錛屽氨鍍忚瘯鍥句粠涓鍫嗘暟瀛椾腑鎵懼嚭闅愯棌鐨勯掗鍖欙紝闇瑕佸瑰ぇ鏁存暟榪涜屽洜鏁板垎瑙o紝榪欏湪褰撳墠鐨勮$畻鑳藉姏涓嬪嚑涔庢槸涓嶅彲鑳界殑鎸戞垬銆
鎬葷粨鏉ヨ達紝RSA綆楁硶鍥犲叾闈炲圭О鎬э紝鏈夋晥鍦拌В鍐充簡瀵圭О鍔犲瘑鐨勫悓姝ラ棶棰橈紝涓轟俊鎮瀹夊叏鎻愪緵浜嗗己澶х殑淇濇姢銆傚敖綆$牬瑙g殑闅懼害宸ㄥぇ錛屼絾姝f槸榪欑嶆寫鎴樻э紝浣垮緱RSA鎴愪負鐜頒唬閫氫俊棰嗗煙涓嶅彲鎴栫己鐨勫姞瀵嗗伐鍏楓