RSA加密演算法

2021-06-21 06:17:20 字數 604 閱讀 6038

一、rsa是公鑰加密演算法之一,該演算法的數學基礎是

(1).初等數論的euler定理,即:若整數a與整數n互素,則a^φ(n)≡1(mod n)  其中,φ(n)為尤拉函式。

(2).大整數分解很困難,即給定乙個大整數n,將其分解為n=p*q,兩個素數乘積十分困難。

二、rsa基本原理

(1).金鑰的生成。

選擇大素數p,q,計算n=p*q,以及尤拉函式φ(n)=φ(pq)=(p-1)(q-1)【定理之一】

選擇乙個數e,e滿足1

公鑰pk=  私鑰sk=

(2).加密過程

設p為明文,c為密文,則c=p^e(modn),即利用公鑰pk= 加密

(3).解密過程

p=c^d(modn)=(p^e)^d(modn)=p^(ed)(modn)  因為d=e^(-1)(modφ(n))

所以p=p^(1modφ(n))(modn)

三、rsa演算法安全性

rsa演算法的安全性是基於大數分解困難問題:如果已知p、q,那麼計算n = p*q很容易;如果已知n,計算p和q則很困難。

如果能夠成功的將n分解為n=p*q,就能夠計算ф(n),從而根據公鑰e計算出來私鑰d,進而達到解密的目的。

RSA加密演算法

素數是這樣的整數,它除了能表示為它自己和1的乘積以外,不能表示為任何其它兩個整數的乘積。例如,15 3 5,所以15不是素數 又如,12 6 2 4 3,所以12也不是素數。另一方面,13除了等於13 1以外,不能表示為其它任何兩個整數的乘積,所以13是乙個素數。素數也稱為 質數 二 什麼是 互質數...

RSA加密演算法

演算法的描述 1.選取兩個素數p,q 2.計算n p q,fn p 1 q 1 3.選擇乙個整數e,使得e與fn的最大公約數為1,e將會用於對資料進行加密。4.計算出乙個整數d,使得d e除fn的餘數為1。d用於對密文進行解密,還原出明文。5.假設明文為m,密文為c。如果需要對原文進行加密,則進行如...

RSA加密演算法

因偶然的機會,幫學長去在js中找乙個函式的實現方式,於是費了些力氣幫他找到了函式的實現 rsa.setpublic p,k var enkey rsa.encrypt njsessid 要找的是setpublic和encrypt的實現方式,但實際上這兩個函式呼叫的是crypt.min,js func...