實驗原理與理論基礎
rsa演算法:
簡介rsa演算法的單向函式基於質因數分解問題。
質因數分解問題指數論中的乙個簡單事實:計算兩個素數的乘積很簡單,但要把這個乘積重新分解為兩個素數卻很難。
步驟rsa演算法由三部分構成:金鑰生成演算法,加密演算法,解密演算法
金鑰生成演算法
隨機生成兩個素數 p,q
計算 n=pq
計算尤拉函式 φ(n)=(p−1)(q−1)φ(n)=(p−1)(q−1)
選取一較小的與φ(n)φ(n)互質的正整數e。那麼(n, e)為金鑰對中的公鑰
計算e在模φ(n)φ(n)下的數論倒數d,d≡e−1modφ(n)d≡e−1modφ(n),那麼(n, d)為金鑰對中的私鑰
加密演算法 計算
c=fe(m)=memodn
c=fe(m)=memodn
其中m為明文,(n, e)為公鑰,c為密文
解密演算法 計算
其中c為密文,(n, d)為私鑰,m為明文
根據加密、解密過程中n、e、d三數扮演的角色,我們把n稱為公共模數,把e稱為公共指數,把d稱為私有指數。
數學基礎:
同餘兩個整數a、b,如果他們除以正整數m的餘數相等,那a和b同餘。用公式來表示就是:
amodm=bmodm⇔a≡bmodm
數論倒數
普通算術運算中,如果ab=1ab=1,那麼我們說a和b互為倒數。類似地,在同余式中,如果ab≡1modmab≡1modm ,我們說在模m下,a和b互為數論倒數,或者說乘法逆元。有時候也記作a≡b−1modma≡b−1modm或者b≡a−1modm
尤拉函式
尤拉函式φ(n)φ(n),也就是對於正整數n,小於或等於n且與n互質的正整數的個數。比如φ(6)φ(6),不超過6並且跟6互質的有1和5兩個數,則φ(6)=2φ(6)=2。
特別地,對於任意素數p,所有小於p的正整數都跟它互質,所以φ§=p−1φ§=p−1。
另外,如果p和q均為素數,那麼對於整數n=pqn=pq,有φ(n)=φ§φ(q)=(p−1)(q−1)φ(n)=φ§φ(q)=(p−1)(q−1)
尤拉定理
如果a和m都是整數,並且互質,那麼有:
aφ(m)≡1modm
費馬小定理
如果a為整數,p為素數,且a與p互質(也就是p不能整除a),那麼:
ap−1≡1modp
中國剩餘定理
中國剩餘定理常用於一元線性同餘方程組的求解,在這裡我們介紹它的乙個推論。
如果 p, q 互質,n = p * q,則對任意整數 x 和 a
{x≡amodpx≡amodq⇔x≡amodn
實驗過程和結果測試
c 實現rsa演算法 RSA演算法實現過程
rsa演算法是實現非對稱加密的一種演算法,其用到很多有關數論的內容,在此我們不多討論。而將目光聚焦於演算法的實現過程。rsa過程 第二步 計算n a b 61 53 3233 第三步 計算 a 1 b 1 60 52 3120 第四步 選擇與3120互質的乙個數e 17,這個e也就是我們的公鑰,需要...
RSA演算法簡介
rsa演算法簡介 1 簡介 當前最著名 應用最廣泛的公鑰系統rsa是在1978年,由美國麻省理工學院 mit 的rivest shamir和adleman在題為 獲得數字簽名和公開鑰密碼系統的方法 的 中提出的。它是乙個基於數論的非對稱 公開鑰 密碼體制,是一種分組密碼體制。其名稱來自於三個發明者的...
RSA演算法簡介
rsa演算法是 r rirest asllalnlr和l adleman於1977年在美國麻省理工學院開發,於1978年首次公布,其演算法如下 a 選擇兩質數p q。b 計算n p q。c 計算n的尤拉函式 n p 1 q 1 d 選擇整數e,使e與 n 互質,且1 利用rsa加密,首先需將明文數位...