RSA演算法實驗

2021-09-29 07:31:19 字數 1844 閱讀 5629

實驗原理與理論基礎

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加密,首先需將明文數位...