世界上迄今为止最安全的加密算法
全世界只有3.14 %?的人關(guān)注了
青少年數(shù)學(xué)之旅
一個只能用算力來破解的加密算法
1
人類的加密史
公元前5世紀(jì),古希臘人使用一根叫scytale的棍子來傳遞加密信息。要加密時,先繞棍子卷一張紙條,把信息沿棒水平方向?qū)?#xff0c;寫一個字旋轉(zhuǎn)一下,直到寫完。解下來后,紙條上的文字消息雜亂無章,這就是密文。將它繞在另一個同等尺寸的棒子上后,就能看到原始的消息。如果不知道棍子的粗細(xì),則無法解密里面的內(nèi)容。
古希臘人用于加密的scytale棍子
公元前1世紀(jì),凱撒大帝為了能夠確保他與遠(yuǎn)方的將軍之間的通信不被敵人的間諜所獲知,發(fā)明了Caesar密碼。每個字母都與其后第3位字母對應(yīng),然后進(jìn)行替換,比如,“a”對應(yīng)于“d”,“b”對應(yīng)于“e”,以此類推。
20世紀(jì)早期,德國發(fā)明了名為enigma的輪轉(zhuǎn)加密機(jī),能對明文進(jìn)行自動加密,產(chǎn)生的可能性高達(dá)1016種,當(dāng)時處于世界領(lǐng)先地位,二戰(zhàn)期間被德軍大量使用。盟軍在很長時間內(nèi)一籌莫展。后來,波蘭人首先破譯了德軍密碼,并發(fā)明了名為Bomba的密碼破譯機(jī),能在2個小時內(nèi)破解密碼。波蘭人在被占領(lǐng)前夕,把Bomba交給了英國,并在布萊切利園(Bletchley Park)內(nèi)繼續(xù)研發(fā)。
“一位被擊倒的騎士在最后一刻把寶劍交給了他的戰(zhàn)友”。
就在這里,在眾多科學(xué)家的努力下,設(shè)計(jì)出了世界上第一臺電子計(jì)算機(jī)巨人(Colossus),破解了大量德軍密文,為逆轉(zhuǎn)形勢提供了大量重要情報(bào)。如果密碼沒有破譯成功,盟軍可能戰(zhàn)敗,歷史可能改寫。
enigma密碼機(jī)的核心部件:控制輪
關(guān)于密碼學(xué)歷史,有許多動人的故事,但事實(shí)上密碼學(xué)一直緩慢發(fā)展。其實(shí)在1976年以前,所有的加密方法都是同一種模式:
(1)甲方選擇一種加密規(guī)則,對信息進(jìn)行加密;
(2)乙方使用同一種規(guī)則,對信息進(jìn)行解密。
由于加密和解密使用同樣規(guī)則(簡稱”密鑰”),于是這種模式被稱為“對稱加密算法”。
這種模式有一個最大弱點(diǎn):甲方必須把密鑰告訴乙方,否則無法解密。保存和傳遞密鑰,就成了最頭疼的問題。
2
劃時代的加密算法
RSA算法走出歷史舞臺
時間來到了1976年,兩位美國計(jì)算機(jī)學(xué)家威特菲爾德·迪菲(Whitfield Diffie)和馬丁·赫爾曼(Martin Hellman),首次證明可以在不直接傳遞密鑰的情況下,完成解密。這被稱為“Diffie-Hellman密鑰交換算法”。
DH算法的出現(xiàn)有著劃時代的意義:從這一刻起,啟示人們加密和解密可以使用不同的規(guī)則,只要規(guī)則之間存在某種對應(yīng)關(guān)系即可。
這種新的模式也被稱為“非對稱加密算法”:
(1)乙方生成兩把密鑰,公鑰和私鑰。公鑰是公開的,任何人都可以獲得,私鑰則是保密的。
(2)甲方獲取乙方的公鑰,用它對信息加密。
(3)乙方得到加密后的信息,用私鑰解密。
公鑰加密的信息只有私鑰解得開,只要私鑰不泄漏,通信就是安全的。
就在DH算法發(fā)明后一年,1977年,羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼(Leonard Adleman)在麻省理工學(xué)院一起提出了RSA算法,RSA就是他們?nèi)诵帐祥_頭字母拼在一起組成的。
新誕生的RSA算法特性比DH算法更為強(qiáng)大,因?yàn)镈H算法僅用于密鑰分配,而RSA算法可以進(jìn)行信息加密,也可以用于數(shù)字簽名。另外,RSA算法的密鑰越長,破解的難度以指數(shù)倍增長。
因?yàn)槠鋸?qiáng)大的性能,可以毫不夸張地說,只要有計(jì)算機(jī)網(wǎng)絡(luò)的地方,就有RSA算法。
RSA算法的三位發(fā)明者
3
將兩個大質(zhì)數(shù)相乘
RSA算法是這樣工作的
RSA算法名震江湖,那它到底是如何工作的?
第一步,隨機(jī)選擇兩個不相等的質(zhì)數(shù)p和q。
第二步,計(jì)算p和q的乘積n。n的長度就是密鑰長度,一般以二進(jìn)制表示,一般長度是2048位。位數(shù)越長,則越難破解。
第三步,計(jì)算n的歐拉函數(shù)φ(n)。
第四步,隨機(jī)選擇一個整數(shù)e,其中是1< e < φ(n),且e與φ(n) 互質(zhì)。
第五步,計(jì)算e對于φ(n)的模反元素d。所謂“模反元素”就是指有一個整數(shù)d,可以使得ed被φ(n)除的余數(shù)為1。
第六步,將n和e封裝成公鑰?(n,e)?,n和d封裝成私鑰?(n,d)?。
假設(shè)用戶A要向用戶B發(fā)送加密信息m,他要用公鑰 (n,e)?對m進(jìn)行加密。加密過程實(shí)際上是算一個式子:
用戶B收到信息c以后,就用私鑰 (n, d) 進(jìn)行解密。解密過程也是算一個式子:
這樣用戶B知道了用戶A發(fā)的信息是m。
用戶B只要保管好數(shù)字d不公開,別人將無法根據(jù)傳遞的信息c得到加密信息m。
RSA算法以(n, e)作為公鑰,那么有無可能在已知n和e的情況下,推導(dǎo)出d?
(1)ed≡1 (mod φ(n))。只有知道e和φ(n),才能算出d。
(2)φ(n)=(p-1)(q-1)。只有知道p和q,才能算出φ(n)。
(3)n=pq。只有將n因數(shù)分解,才能算出p和q。
所以,如果n可以被很簡單地分解,則很容易算出d,意味著信息被破解。
但是目前大整數(shù)的因式分解,是一件非常困難的事情。目前,除了暴力破解,還沒有發(fā)現(xiàn)別的有效方法。也就是說,只要密鑰長度足夠長,用RSA加密的信息實(shí)際上是不能被解破的。
4
RSA算法逐步被運(yùn)用到
人類的各個方面
由于RSA算法的可靠性,現(xiàn)在非常多的地方應(yīng)用了這個技術(shù)。
最重要的運(yùn)用,莫過于信息在互聯(lián)網(wǎng)上傳輸?shù)谋U稀_\(yùn)用RSA算法,在傳輸過程中即使被截獲,也難以進(jìn)行解密,保證信息傳輸?shù)陌踩?strong>只有擁有私鑰的人,才可能對信息進(jìn)行解讀。
銀行交易的U盾,是用戶身份的唯一證明。U盾第一次使用時,運(yùn)用RSA算法,產(chǎn)生私鑰并保存在U盾之中。在以后的使用中,用私鑰解密交易信息,才能執(zhí)行后面的交易操作,保障用戶的利益。
現(xiàn)在假冒偽劣產(chǎn)品不少,企業(yè)需要使用一些防偽手段。目前最常見的是二維碼防偽,方便消費(fèi)者通過簡單的掃一掃操作進(jìn)行產(chǎn)品驗(yàn)證。但是二維碼如果以明文形式展示,則容易被不法分子利用,目前已有人運(yùn)用RSA算法對二維碼的明文進(jìn)行加密,保障消費(fèi)者的利益。
Google Security Key
5
算力即將大幅提升
現(xiàn)有算法可能不堪一擊
RSA算法是這個時代最優(yōu)秀的加密算法之一,其安全性建立在一個數(shù)學(xué)事實(shí)之上:將兩個大質(zhì)數(shù)相乘非常容易,但要對其乘積進(jìn)行因式分解卻非常困難。因此可以將其乘積公開作為加密的密鑰。
“江山代有才人出,各領(lǐng)風(fēng)騷數(shù)百年”。一個時代,必然有屬于這個時代的優(yōu)秀算法,RSA是我們所處這個時代的佼佼者。但隨著量子計(jì)算機(jī)的誕生,計(jì)算能力即將急劇增長,算力在未來可能不是一個稀缺物品。
而算力是又破解RSA算法的唯一鑰匙。到那個時候,又有什么算法能夠保障我們的信息安全呢?
轉(zhuǎn)載來源:超級數(shù)學(xué)建模
部分素材源于網(wǎng)絡(luò),版權(quán)歸原作者所有
如有侵權(quán)請留言聯(lián)系刪除,感謝合作
寫在最后
微信公眾號“少年數(shù)學(xué)家”
提供豐富的數(shù)學(xué)課外知識
數(shù)學(xué)人物、數(shù)學(xué)趣談、科技與數(shù)學(xué)
想讓孩子懂得更多有趣的數(shù)學(xué)
記得關(guān)注“少年數(shù)學(xué)家”
總結(jié)
以上是生活随笔為你收集整理的世界上迄今为止最安全的加密算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 中考新大纲:初中数学无非就这26个考点!
- 下一篇: 两年了,你还是那个你 | 今日最佳