八、加密和解密

2018-02-24 16:04 更新

有了公鑰和密鑰,就能進行加密和解密了。

(1)加密要用公鑰 (n,e)

假設(shè)鮑勃要向愛麗絲發(fā)送加密信息m,他就要用愛麗絲的公鑰 (n,e) 對m進行加密。這里需要注意,m必須是整數(shù)(字符串可以取ascii值或unicode值),且m必須小于n。

所謂"加密",就是算出下式的c:

  me?≡ c (mod n)

愛麗絲的公鑰是 (3233, 17),鮑勃的m假設(shè)是65,那么可以算出下面的等式:

  6517?≡ 2790 (mod 3233)

于是,c等于2790,鮑勃就把2790發(fā)給了愛麗絲。

(2)解密要用私鑰(n,d)

愛麗絲拿到鮑勃發(fā)來的2790以后,就用自己的私鑰(3233, 2753) 進行解密??梢宰C明,下面的等式一定成立:

  cd?≡ m (mod n)

也就是說,c的d次方除以n的余數(shù)為m?,F(xiàn)在,c等于2790,私鑰是(3233, 2753),那么,愛麗絲算出

  27902753?≡ 65 (mod 3233)

因此,愛麗絲知道了鮑勃加密前的原文就是65。

至此,"加密--解密"的整個過程全部完成。

我們可以看到,如果不知道d,就沒有辦法從c求出m。而前面已經(jīng)說過,要知道d就必須分解n,這是極難做到的,所以RSA算法保證了通信安全。

你可能會問,公鑰(n,e) 只能加密小于n的整數(shù)m,那么如果要加密大于n的整數(shù),該怎么辦?有兩種解決方法:一種是把長信息分割成若干段短消息,每段分別加密;另一種是先選擇一種"對稱性加密算法"(比如DES),用這種算法的密鑰加密信息,再用RSA公鑰加密DES密鑰。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號