RSA的加密解密原理

基本認識基礎

歐拉函數(shù):任意給定正整數(shù)n,歐拉函數(shù)\varphi(n)表示在小于等于n的正整數(shù)中與n構成互質關系的n的個數(shù)。

關于歐拉函數(shù)的計算需要明白一點,任意一個大于1的正整數(shù)可以寫成一系列質數(shù)的積,及如果

\varphi (n)=\varphi (p_1*p_2*p_3...p_m),其中p_1,p_2,p_3....p_m均為質數(shù)prime,那么p_1和p_2*p_3...p_m互質,并且剩余部分切分以后也存在互質關系。因此根據(jù)歐拉函數(shù)的性質可以推倒出:

\varphi (n)=\varphi (p_1)*\varphi (p_2)*\varphi (p3)....\varphi (p_m)=(p_1-1)*(p_2-1)*(p_3-1)....(p_m-1)

歐拉定理:如果兩個正整數(shù)m和n互質,那么m^\varphi(n)mod(n)\equiv 1,即就是m的\varphi(n)次方被n除的余數(shù)是1

RSA的加密過程,假設alice和bob要通信。

1、alice隨機選擇兩個不相等的大質數(shù)p和q。

2、計算p和q的乘積n,即n=p*q。

3、隨機選擇一個整數(shù)e使得1<e<\varphi (n)并且e跟\varphi(n)互質

4、計算e跟\varphi (n)的模反元素d,使得ed\equiv 1\varphi (n)。

5、將n,e封裝成公鑰pub(n,e),n,d封裝成私鑰pri(n,d)。

知道n,e的情況下很難推倒出d,因為大整數(shù)的質因數(shù)分解是一件非常困難的事情

現(xiàn)在公鑰和私鑰已經(jīng)生成,假設bob要向alice發(fā)送的明文為m,那么Bob需要用alice的公鑰進行加密:

m^e\equiv c mod(n)

先在alice收到密文c需要進行解密:

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 本人以前對非對稱加密有一些了解,但是對非對稱加密為啥是安全的一直不是很清楚,所以今天打算弄懂這個問題。 一,對稱加...
    Jack_deng閱讀 910評論 0 1
  • http://blog.csdn.net/q376420785/article/details/8557266 h...
    John_cui閱讀 698評論 0 4
  • 前言 RSA算法是現(xiàn)今使用最廣泛的公鑰密碼算法,也是號稱地球上最安全的加密算法。本文主要參考了參考資料中的文章,加...
    賣糖果的小傻嘟閱讀 877評論 0 0
  • 學過算法的朋友都知道,計算機中的算法其實就是數(shù)學運算。所以,再講解RSA加密算法之前,有必要了解一下一些必備的數(shù)學...
    假裝是小宇閱讀 11,900評論 0 3
  • 必備數(shù)學知識 RSA加密算法中,只用到素數(shù)、互質數(shù)、指數(shù)運算、模運算等幾個簡單的數(shù)學知識。所以,我們也需要了解這幾...
    依然飯?zhí)?/span>閱讀 916評論 0 0

友情鏈接更多精彩內(nèi)容