2018-12-08

關(guān)于RSA耕捞,你了解它嗎?

說(shuō)起RSA烫幕,可能很多人都或多或少了解過(guò)俺抽,看到了它,腦子里就打印出幾個(gè)字“一種加密算法”较曼,但真正讓你講出其原理呢凌埂?額...好像它變陌生了。哈哈诗芜,此時(shí)你就不得不靜下心來(lái)問(wèn)自己瞳抓,真的了解它嗎?

只要有戰(zhàn)爭(zhēng)伏恐,就會(huì)有密碼孩哑,加密方式也就隨之出現(xiàn)。提及RSA翠桦,就不得不說(shuō)一下密碼學(xué)横蜒。密碼學(xué)的歷史大致可以追溯到兩千年前胳蛮,相傳古羅馬名將凱撒大帝為了防止敵方截獲情報(bào),用密碼傳送情報(bào)丛晌。凱撒的做法很簡(jiǎn)單仅炊,就是對(duì)二十幾個(gè)羅馬字母建立一張對(duì)應(yīng)表。這樣澎蛛,如果不知道密碼本抚垄,即使截獲一段信息也看不懂。

凱撒密碼表

?在1976年以前谋逻,所有的加密方法都是同一種模式:加密呆馁、解密使用同一種算法。在交互數(shù)據(jù)的時(shí)候毁兆,彼此通信的雙方就必須將規(guī)則告訴對(duì)方浙滤,否則沒(méi)法解密。那么加密和解密的規(guī)則(簡(jiǎn)稱密鑰)气堕,它保護(hù)就顯得尤其重要纺腊。傳遞密鑰就成為了最大的隱患。這種加密方式被成為對(duì)稱加密算法(symmetric encryption algorithm)

?1976年茎芭,兩位美國(guó)計(jì)算機(jī)學(xué)家迪菲(W.Diffie)摹菠、赫爾曼(M.Hellman)提出了一種嶄新構(gòu)思,可以在不直接傳遞密鑰的情況下骗爆,完成密鑰交換次氨。這被稱為“迪菲赫爾曼密鑰交換”算法。開(kāi)創(chuàng)了密碼學(xué)研究的新方向

?1977年三位麻省理工學(xué)院的數(shù)學(xué)家羅納德·李維斯特(RonRivest)摘投、阿迪·薩莫爾(AdiShamir)和倫納德·阿德曼(LeonardAdleman)一起設(shè)計(jì)了一種算法煮寡,可以實(shí)現(xiàn)非對(duì)稱加密。這個(gè)算法用他們?nèi)齻€(gè)人的名字命名犀呼,叫做RSA算法幸撕,RSA也就由此而來(lái)。

RSA的數(shù)學(xué)原理

說(shuō)到了數(shù)學(xué)原理外臂,大家可曾還記得以前學(xué)過(guò)的歐拉函數(shù)坐儿?不記得了?沒(méi)關(guān)系宋光,繼續(xù)往下看貌矿。

首先在這里,我們一起回憶以下幾個(gè)概念:

如果兩個(gè)正整數(shù)罪佳,除了1以外逛漫,沒(méi)有其他公因數(shù),我們就稱這兩個(gè)數(shù)是互質(zhì)關(guān)系(coprime)赘艳。

那么

任意給定正整數(shù)n酌毡,請(qǐng)問(wèn)在小于等于n的正整數(shù)之中克握,有多少個(gè)與n構(gòu)成互質(zhì)關(guān)系呢?

其實(shí)呀枷踏,計(jì)算這個(gè)值的方式就叫做歐拉函數(shù)菩暗,使用:Φ(n)表示(此函數(shù)以其首名研究者歐拉命名)

如:

計(jì)算8的歐拉函數(shù),和8互質(zhì)的1旭蠕、2停团、3、4下梢、5客蹋、6塞蹭、7孽江、8 ????????φ(8) = 4

計(jì)算7的歐拉函數(shù),和7互質(zhì)的1番电、2岗屏、3、4漱办、5这刷、6、7????????????????φ(7) = 6

可是當(dāng)這個(gè)正整數(shù)n過(guò)大的時(shí)候娩井,怎么去計(jì)算呢暇屋?顯然口算是很難的,這個(gè)時(shí)候我們也發(fā)現(xiàn)了一些特殊對(duì)應(yīng)關(guān)系:

如計(jì)算56的歐拉函數(shù)

φ(56) =? φ(8) *? φ(7) = 4 * 6 = 24(ps:不信的同學(xué)可以自己列出來(lái)去數(shù)一數(shù)哦洞辣,但要認(rèn)真別數(shù)錯(cuò)了)

可以看出咐刨,歐拉函數(shù)是由一些特點(diǎn)的

歐拉函數(shù)特點(diǎn)

1、當(dāng)n是質(zhì)數(shù)的時(shí)候扬霜,φ(n)=n-1定鸟。

2、如果n可以分解成兩個(gè)互質(zhì)的整數(shù)之積著瓶,如n=A*B則: φ(A*B)=φ(A)*φ(B)

根據(jù)以上兩點(diǎn)得到:

如果N是兩個(gè)質(zhì)數(shù)P1和?P2的乘積則

φ(N)=φ(P1)*φ(P2)=(P1-1)*(P2-1)

歐拉定理

如果兩個(gè)正整數(shù)m和n互質(zhì)联予,那么m的φ(n)次方減去1,可以被n整除材原。

歐拉定理

還有一個(gè)歐拉定理的特殊情況:

費(fèi)馬小定理(這個(gè)你自己可以隨便舉些例子驗(yàn)證

如果兩個(gè)正整數(shù)m和n互質(zhì)沸久,而且n為質(zhì)數(shù)!那么φ(n)結(jié)果就是n-1余蟹。

費(fèi)馬小定理

現(xiàn)在我們來(lái)進(jìn)行一些列公式轉(zhuǎn)換

歐拉函數(shù)
進(jìn)行了一次等式轉(zhuǎn)換
再次轉(zhuǎn)換

此時(shí)麦向,我們先記錄下此轉(zhuǎn)換結(jié)果;

模反元素

如果兩個(gè)正整數(shù)e和x互質(zhì)客叉,那么一定可以找到整數(shù)d诵竭,使得 ed-1 被x整除话告。那么d就是e對(duì)于x的模反元素

這里d是e相對(duì)于x的模反元素

因?yàn)閑*d 一定是x的倍數(shù)加1,所以在此轉(zhuǎn)換一次:

再次轉(zhuǎn)換

此時(shí)卵慰,想起之前我們轉(zhuǎn)換的結(jié)果

之前轉(zhuǎn)換的結(jié)果

此時(shí)我們發(fā)現(xiàn)了兩個(gè)公式有一定的關(guān)系沙郭,因此最終轉(zhuǎn)換

最終轉(zhuǎn)換公式

此公式成立的前提是:1.d是e相對(duì)于\phi (n)的模反元素(?\phi (n)就相當(dāng)于x?);

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2.m < n

我們也可以用python3(做運(yùn)算很方便哦)來(lái)驗(yàn)證一下下:

簡(jiǎn)單驗(yàn)證下

m經(jīng)過(guò)一些列運(yùn)算后仍得m,那么是不是嗅出了一絲加密的味道呢裳朋?

(m^e)^d?mod ?n?\equiv ?m ?????: ? ? ? ? ?(m^e)^d = C? ?(加密)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? C mod n = m ? ? (解密)

這樣會(huì)出現(xiàn)一個(gè)問(wèn)題:加密的結(jié)果C會(huì)非常大

那么如何有效的拆分這個(gè)公式呢

迪菲赫爾曼密鑰交換


迪菲赫爾曼密鑰交換

此圖中客戶端和服務(wù)器約定了一個(gè)數(shù)17得到它的源根3病线,

客戶端取隨機(jī)數(shù)13、服務(wù)器取隨機(jī)數(shù)15鲤嫡;

客戶端將通過(guò)運(yùn)算將加密的結(jié)果12傳遞給服務(wù)器送挑;而服務(wù)器通過(guò)運(yùn)算將6傳遞給客戶端;

我們可以知道通過(guò)傳遞的只有12和6兩個(gè)數(shù)字暖眼,黑客就算截獲后由于不知道私密數(shù)據(jù)13和15惕耕,所以他是沒(méi)有辦法得到10的

交換原理


迪菲赫爾曼密鑰交換


交換的原理

說(shuō)明:

公鑰:n和e

私鑰:?n和d

明文:???m

密文:???c


關(guān)于RSA的安全:

除了公鑰用到了n和e其余的4個(gè)數(shù)字是不公開(kāi)的。

目前破解RSA得到d的方式如下:

1诫肠、要想求出私鑰?d?司澎。由于e*d=φ(n)*k+1。要知道e和φ(n);

2栋豫、e是知道的挤安,但是要得到?φ(n),必須知道p1和?p2丧鸯。

3蛤铜、由于?n=p1*p2。只有將n因數(shù)分解才能算出丛肢。

因此

n會(huì)非常大围肥,長(zhǎng)度一般為1024個(gè)二進(jìn)制位。(目前人類已經(jīng)分解的最大整數(shù)摔踱,232個(gè)十進(jìn)制位虐先,768個(gè)二進(jìn)制位),這樣就保證了RSA的可靠性派敷。

最后由于RSA計(jì)算量比較大蛹批,進(jìn)而效率低,適合加密小數(shù)據(jù)類型的文件篮愉。(ps:RSA通常用來(lái)加密密鑰腐芍、數(shù)字簽名等)。

以上就是本人對(duì)RSA的理解歸納试躏,如果有誤煩請(qǐng)指出喲猪勇。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市颠蕴,隨后出現(xiàn)的幾起案子泣刹,更是在濱河造成了極大的恐慌助析,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件椅您,死亡現(xiàn)場(chǎng)離奇詭異外冀,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)掀泳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)雪隧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人员舵,你說(shuō)我怎么就攤上這事脑沿。” “怎么了马僻?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵庄拇,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我巫玻,道長(zhǎng)丛忆,這世上最難降的妖魔是什么祠汇? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任仍秤,我火速辦了婚禮,結(jié)果婚禮上可很,老公的妹妹穿的比我還像新娘诗力。我一直安慰自己,他們只是感情好我抠,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布苇本。 她就那樣靜靜地躺著,像睡著了一般菜拓。 火紅的嫁衣襯著肌膚如雪瓣窄。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,292評(píng)論 1 301
  • 那天纳鼎,我揣著相機(jī)與錄音俺夕,去河邊找鬼。 笑死贱鄙,一個(gè)胖子當(dāng)著我的面吹牛劝贸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播逗宁,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼映九,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了瞎颗?” 一聲冷哼從身側(cè)響起件甥,我...
    開(kāi)封第一講書(shū)人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤捌议,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后引有,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體禁灼,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年轿曙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了弄捕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡导帝,死狀恐怖既穆,靈堂內(nèi)的尸體忽然破棺而出缅疟,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布犁享,位于F島的核電站,受9級(jí)特大地震影響晓殊,放射性物質(zhì)發(fā)生泄漏碗短。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一悦陋、第九天 我趴在偏房一處隱蔽的房頂上張望蜈彼。 院中可真熱鬧,春花似錦俺驶、人聲如沸幸逆。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)还绘。三九已至,卻和暖如春栖袋,著一層夾襖步出監(jiān)牢的瞬間拍顷,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工塘幅, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留昔案,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓晌块,卻偏偏與公主長(zhǎng)得像爱沟,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子匆背,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 一呼伸、RSA的歷史 1976 年以前,所有的加密方法都是同一種模式: (1)甲方選擇某一種加密規(guī)則,對(duì)信息進(jìn)行加密括享;...
    開(kāi)著保時(shí)捷堵你家門(mén)口閱讀 2,338評(píng)論 0 1
  • 關(guān)于使用python實(shí)現(xiàn)RSA加密解密 一搂根、非對(duì)稱加密算法 1、乙方生成兩把密鑰(公鑰和私鑰)铃辖。公鑰是公開(kāi)的剩愧,任何...
    ttaymm閱讀 937評(píng)論 0 0
  • RSA介紹 RSA產(chǎn)生的原因:這要從密碼學(xué)的發(fā)展史說(shuō)起,相傳在古羅的凱撒大帝為了防止敵方截獲自己的信息娇斩,自己設(shè)計(jì)了...
    眷卿三世閱讀 749評(píng)論 0 0
  • 學(xué)一點(diǎn)有趣的數(shù)論知識(shí) 在探究RSA算法的原理之前仁卷,我們先來(lái)學(xué)習(xí)一點(diǎn)有趣的數(shù)論知識(shí)(數(shù)學(xué)分支之一,主要研究整數(shù)的性質(zhì)...
    24f464006eaf閱讀 2,168評(píng)論 0 5
  • Base64 base64是一種基于64個(gè)可打印字符來(lái)表示二進(jìn)制數(shù)據(jù)的表示方法.嚴(yán)格來(lái)說(shuō)它只能算作一種編碼方式.B...
    miku醬啦閱讀 1,197評(píng)論 0 3