了解加密學(xué):從數(shù)學(xué)到物理(二)區(qū)塊鏈
本文主要介紹了密碼學(xué)的基本算法,DES、AES,還有未來的量子加密,本文適合普通讀者,可以了解密碼學(xué)的基礎(chǔ)原理。
本文是上一篇《了解加密學(xué):從數(shù)學(xué)到物理(一)》的續(xù)文
3.常用算法
今天的密碼使用秘密公鑰或私鑰技術(shù)。密鑰密碼用于保護(hù)關(guān)鍵或敏感數(shù)據(jù)。因?yàn)槊荑€密碼是兩個(gè)人共享一個(gè)密鑰,也稱之為對(duì)稱密碼技術(shù)。
1949年,貝爾實(shí)驗(yàn)室的Claude Shannon發(fā)表了私鑰密碼的基本理論,從那之后幾十年的發(fā)展,產(chǎn)出了高質(zhì)量的案例。然而,直到1975年才出現(xiàn)強(qiáng)大的密鑰算法,DES,它可用于一般用途。
公鑰和非對(duì)稱加密也在20世紀(jì)70年代中期出現(xiàn)。公鑰密碼使用一對(duì)密鑰,公鑰與其他人共享,私鑰則由所有者獨(dú)自掌握。例如,接收者可以創(chuàng)建密鑰對(duì),把公鑰共享給其他人。發(fā)送者可以用公鑰加密一封信,接收者可以用私鑰進(jìn)行解密。
加密密碼的強(qiáng)度取決于三個(gè)主要因素:
1.基礎(chǔ)設(shè)施
如果密碼學(xué)主要是在軟件中實(shí)施,那么,這個(gè)基礎(chǔ)會(huì)很薄弱。如果你試圖保密信息,而黑客最好的辦法是入侵你的電腦,并在加密之前竊取信息。相對(duì)于破解大尺寸的密鑰,侵入系統(tǒng)或使用病毒感染來竊取信息更容易。很多時(shí)候,竊取密鑰最簡單的方法可能是竊聽用戶,并在它傳給加密程序時(shí)進(jìn)行攔截。
2.密鑰大小
在加密學(xué)中,大小很重要。如果攻擊者無法安裝擊鍵監(jiān)視器,那么,破解密文的最好方式是通過暴力計(jì)算的試錯(cuò)法搜索來猜測密碼。因此,實(shí)用的密碼必須足夠大,以至于讓暴力計(jì)算搜索變得不切實(shí)際。但是,隨著計(jì)算速度越來越快,密碼大小的“安全邊界”也在不斷增長。
專家們承認(rèn)64比特或更少的密鑰(包括DES)很容易受到攻擊。1999年,EFF(電子前沿基金會(huì))曾資助開發(fā)一種名為Deep Crack的設(shè)備,它可以在三天或更短時(shí)間內(nèi)攻破DES加密密鑰。當(dāng)今的密碼密鑰一般包含100比特,甚至有一些支持256比特的密鑰。
3.算法質(zhì)量
算法質(zhì)量比較難評(píng)判,基于現(xiàn)有算法構(gòu)建看似合理的密碼,這相對(duì)容易。除非有經(jīng)驗(yàn)的人仔細(xì)查看,否則很難發(fā)現(xiàn)一些細(xì)微的缺陷。密碼漏洞會(huì)產(chǎn)生“捷徑”,允許攻擊者跳過大塊密鑰,并發(fā)起試錯(cuò)搜索。例如,流行的壓縮實(shí)用程序PKZIP,傳統(tǒng)上采用了64比特密鑰的定制加密功能。從理論上,應(yīng)該進(jìn)行264次嘗試來檢查所有可能的密鑰。實(shí)際上,針對(duì)PKZIP有一個(gè)捷徑,只需227次嘗試就可以破解密文。
找到這些缺陷的唯一方法實(shí)際上是破解算法,通常是使用曾經(jīng)對(duì)其他密碼起作用的小技巧。算法只有在承受此類分析和攻擊之后,才能證明它的質(zhì)量。即便如此,今天沒能找到缺陷不等于將來不會(huì)被找到。
算法類型
1.DES
DES經(jīng)受住了時(shí)間的考驗(yàn),因?yàn)槊艽a質(zhì)量在多年前發(fā)表的研究中得到證實(shí)。在經(jīng)過四分之一世紀(jì)的研究,研究者只是發(fā)現(xiàn)一些投機(jī)攻擊,最終來說,不如暴力計(jì)算攻擊實(shí)用。DES密碼的唯一弱點(diǎn)是它56比特的大小。
2.Triple DES
通過使用112比特或168比特密碼,連續(xù)三次應(yīng)用密碼來解決問題。結(jié)果是,它比其他類似強(qiáng)度的密碼慢很多,但是,由于強(qiáng)大的計(jì)算機(jī)攻擊破解了算法,它也過時(shí)了。
3.AES
AES(高級(jí)加密標(biāo)準(zhǔn))支持三種密碼大小:128,192和256比特,并使用128比特區(qū)塊大小。它目前是全球廣泛使用的標(biāo)準(zhǔn)。
Rijndael 密碼表
DES的設(shè)計(jì)明確地要為硬件構(gòu)建,但沒有考慮讓它在軟件中有效工作。NIST(美國國家標(biāo)準(zhǔn)與技術(shù)研究院)評(píng)估了軟件執(zhí)行效率和存儲(chǔ)要求,以確保AES在如下環(huán)境能運(yùn)轉(zhuǎn)良好:運(yùn)行C或Java的工作臺(tái),或更受限制的環(huán)境,如嵌入式ARM處理器和智能卡的環(huán)境。
Rijndael是由荷蘭研究人員Vincent Rijmen和John Daemen開發(fā)的,雖然最終是Rijndael贏得了NIST的競賽,但所有AES決賽入圍的密碼方案都超過DES及DES替代品,有很大的改進(jìn)。它們都支持128比特或更大的分組密碼。它們都沒有嚴(yán)重的弱點(diǎn),最終選擇Rijndael是在平衡加密強(qiáng)度和性能之后作出的決定。
AES基于替代置換的原理設(shè)計(jì),綜合了替代和置換,在硬件和軟件上都很快。跟它的前身DES不同,AES不使用Feistel。 AES是Rijndael的變體,其固定區(qū)塊大小為128比特,關(guān)鍵維度是128,192或256比特。
相比之下,Rijndael規(guī)范由區(qū)塊和密鑰大小來定,可以是32比特的任意倍數(shù),最小值128比特,最大值256比特。
雖然某些版本的Rijndael有更大的區(qū)塊大小和額外的列,但,AES操作在4×4列主要的字節(jié)順序矩陣上,它被稱為狀態(tài)。大多數(shù)AES計(jì)算都是在特定的有限域中完成。
用于AES密碼的密鑰大小指定轉(zhuǎn)換輪次的重復(fù)次數(shù),把輸入轉(zhuǎn)換為最終輸入,輸入的是明文,輸出的是密文。
重復(fù)周期數(shù)如下:
128比特密鑰重復(fù)10個(gè)周期
192比特密鑰重復(fù)12個(gè)周期
256比特密鑰重復(fù)14個(gè)周期
每輪包含幾個(gè)處理步驟,每個(gè)步驟包含四個(gè)相似但不同的階段,包括一個(gè)依賴于加密密鑰本身的階段。一組反向重復(fù)被應(yīng)用于轉(zhuǎn)換,使用相同的加密密鑰把加密文轉(zhuǎn)換為原始明文。
量子加密
在上圖中,量子密鑰分發(fā)(BB84協(xié)議)是一個(gè)安全的通信方法,它執(zhí)行加密協(xié)議,協(xié)議涉及量子力學(xué)組件,并確保通信安全。它能讓雙方產(chǎn)生共享的隨機(jī)密鑰,也是對(duì)稱性密鑰,密鑰只能被雙方知曉,可以用來加密或解密信息。
量子力學(xué)是一門科學(xué)定律的主體,它描述光子、電子和構(gòu)成宇宙的其他粒子的行為規(guī)律。行業(yè)正在尋求抵抗黑客的更高安全性。新一代的密碼學(xué)已經(jīng)從數(shù)學(xué)轉(zhuǎn)向了物理。原子和粒子物理學(xué)的科學(xué)家們已經(jīng)進(jìn)入加密學(xué)的世界。這些科學(xué)家想利用量子力學(xué)的定律來發(fā)送信息,以實(shí)現(xiàn)無法被破解的安全性。他們是新領(lǐng)域的架構(gòu)師,這個(gè)領(lǐng)域被稱為量子密碼學(xué),這在過去幾十年才成熟起來。
量子密碼學(xué)從粒子物理中汲取力量。構(gòu)成我們宇宙的粒子本質(zhì)上是不確定的現(xiàn)象,能夠同時(shí)存在不止一個(gè)地方或處于不止一種狀態(tài)。(譯者注:就像薛定諤的貓,同時(shí)處于生和死的兩種可能狀態(tài))當(dāng)它們碰撞到物體或被測量屬性時(shí),它們會(huì)獨(dú)立選擇行為。
密碼學(xué)是信息安全的迷人領(lǐng)域,也是最復(fù)雜的科學(xué)之一。一旦我們從簡單的凱撒和Polybius密碼發(fā)展到DES和AES密碼,這里有不斷地重復(fù)迭代,那么,抓住算法概念就變得容易了。
密碼學(xué)本身是一門科學(xué),我們探索了它的歷史,包括了今天很少使用的以及最復(fù)雜的密碼基本概念。
1.TMT觀察網(wǎng)遵循行業(yè)規(guī)范,任何轉(zhuǎn)載的稿件都會(huì)明確標(biāo)注作者和來源;
2.TMT觀察網(wǎng)的原創(chuàng)文章,請轉(zhuǎn)載時(shí)務(wù)必注明文章作者和"來源:TMT觀察網(wǎng)",不尊重原創(chuàng)的行為TMT觀察網(wǎng)或?qū)⒆肪控?zé)任;
3.作者投稿可能會(huì)經(jīng)TMT觀察網(wǎng)編輯修改或補(bǔ)充。