產品經理數學課(2)

關鍵詞:對稱加密算法,RSA算法,素數(質數),素數分布,數論。


歷史

1976年以前,所有的加密方法都是同一種模式:

(1)甲方選擇某一種加密規則,對信息進行加密;

(2)乙方使用同一種規則,對信息進行解密。

由于加密和解密使用同樣規則(簡稱"密鑰"),這被稱為“對稱加密算法”(Symmetric-key algorithm)

這種加密模式有一個最大弱點:甲方必須把加密規則告訴乙方,否則無法解密。保存和傳遞密鑰,就成了最頭疼的問題。


1976年,兩位美國計算機學家Whitfield Diffie?和Martin Hellman,提出了一種嶄新構思,可以在不直接傳遞密鑰的情況下,完成解密。這被稱為"Diffie-Hellman密鑰交換算法"。意味著加密和解密可以使用不同的規則,只要這兩種規則之間存在某種對應關系即可,這樣就避免了直接傳遞密鑰。

這種新的加密模式被稱為"非對稱加密算法"。

(1)乙方生成兩把密鑰(公鑰和私鑰)。公鑰是公開的,任何人都可以獲得,私鑰則是保密的。

(2)甲方獲取乙方的公鑰,然后用它對信息加密。

(3)乙方得到加密后的信息,用私鑰解密。

如果公鑰加密的信息只有私鑰解得開,那么只要私鑰不泄漏,通信就是安全的。


RSA算法相關

1977年,三位數學家Rivest、Shamir?和Adleman?設計了一種算法,可以實現非對稱加密。這種算法用他們三個人的名字命名,叫做RSA,RSA加密算法,是一種非對稱加密算法,在公開密鑰加密和電子商業活動中被廣泛應用。

因數分解決定了RSA算法的可靠性,到目前為止,世界上還沒有任何可靠的攻擊RSA算法的方式,只有短的RSA鑰匙才可能被強力方式解破。長度超過768位的密鑰,還無法破解(至少沒人公開宣布)。因此可以認為,1024位的RSA密鑰基本安全,2048位的密鑰極其安全。同時RSA算法也是素數的經典運用。

因素分解:一個整數分解成多個約數(因數),根據算術基本定理結果是唯一的。如:12=2*3*2;

素數:又稱質數,在大于1的自然數中,除了1和它本身以外不再有其他因數,質數的個數是無窮的;

互質:互質是公約數只有1的兩個整數,叫做互質整數。公約數只有1的兩個自然數,叫做互質自然數,后者是前者的特殊情形

擴展歐幾里得算法:是用來在已知a, b求解一組x,y,使它們滿足貝祖等式: ax+by = gcd(a, b) =d(解一定存在,根據數論中的相關定理)。擴展歐幾里德常用在求解模線性方程及方程組中。

乘法逆元:是指數學領域群G中任意一個元素a,都在G中有唯一的逆元a‘,具有性質a×a'=a'×a=e,其中e為該群的單位元。

RSA算法原理

生成公鑰和私鑰步驟。

1)選擇相異素數P、Q,并得到乘積N ,既「N=P*Q」。

2)將P、Q各減1,再互乘,得到數值\varphi(n),既「\varphi(n)=(P-1)(Q-1)」。

3)選擇整數E為密鑰,使E和\varphi(n)互質,且E小于。

4)根據公式DE mod \varphi(n)=1,計算出D的值 ,作為另外一個密鑰

5)通過以上步驟計算出,N,E,D3個數,N、E為公鑰,N、D為私鑰。


簡單實例

P=3 ?Q=11

N=P*Q

????N=33

\varphi(n)=(P-1)(Q-1)=2*10=20

E=7(7<8)

DE mod \varphi(n)=1

D*7=1(mod 20)

D=3

公鑰(33,7), 私鑰(33,3)


公鑰加密

C=M^E mod N

明文 :M=5

加密:C=(5^7)mod 33=14

密文 :C=14


私鑰解密

M=C^D mod N

密文:C=14

解密 :M=(14^3)mod 33

M=5



參考:「百度文庫」、「RSA算法詳解」、「幾何原本」「程序員的數學思維修煉」、「RSA算法原理阮一峰」

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 一、準備知識 在開始介紹前,需要首先了解一下消息摘要、數字簽名、數字證書的知識 1、消息摘要 - Message ...
    浪夠_閱讀 2,746評論 1 2
  • 姓名:于川皓 學號:16140210089 轉載自:https://baike.baidu.com/item/RS...
    道無涯_cc76閱讀 2,601評論 0 1
  • 原文鏈接:http://blog.jobbole.com/86660/ 1 前言 百度已經于近日上線了全站 HTT...
    xlhzj閱讀 1,121評論 0 2
  • 密碼學基本概念 密碼學是研究如何隱密地傳遞信息的學科。在現代特別指對信息以及其傳輸的數學性研究,常被認為是數學和計...
    千尋與小米閱讀 558評論 0 1
  • 概述 Spring Boot 最大的特點是無需 XML 配置文件,能自動掃描包路徑裝載并注入對象,并能做到根據 c...
    康俊1024閱讀 611評論 0 0