袁欣怡
你一般怎么設(shè)置密碼?是用123456,還是用生日?你習(xí)慣用同一個(gè)密碼“走天下”,還是每個(gè)賬號都會專門設(shè)置一個(gè)不同的密碼?
既然設(shè)置密碼時(shí),字母區(qū)分大小寫,再搭配一串?dāng)?shù)字,系統(tǒng)就會提示密碼強(qiáng)度高,那為何這個(gè)高強(qiáng)度的密碼最好別直接拿到不同的網(wǎng)站使用?
在隱私越發(fā)受重視,信息泄露卻不時(shí)發(fā)生的互聯(lián)網(wǎng)時(shí)代,我們到底可以做些什么,來保護(hù)好自己的信息?
談?wù)撁艽a前,
你需要知道的加密算法
無論是想完全防止信息泄露,還是徹底阻攔黑客的攻擊,基本上都是不可能完成的任務(wù),于是,在險(xiǎn)象環(huán)生的信息安全世界里,人們搭建起了一種防御體系一用合適的算法給密碼加密,防止數(shù)據(jù)被黑客還原。
相信大家都聽過摩斯密碼,它是一種信號代碼,在這里,我們可以將其視作一種加密算法。現(xiàn)在,你想給朋友發(fā)送”IMissYou”,你需要對照著摩斯密碼表,將字母轉(zhuǎn)化成時(shí)通時(shí)斷的信號,再發(fā)送給朋友。朋友收到信號之后,只要對照同樣的表格,就可以解密出你的悄悄話了。在密碼學(xué)里面,你和朋友使用的摩斯密碼表被稱作“密鑰”,由于你們用的表相同,也就是密鑰相同,因此這種加密算法被稱為“對稱加密算法”。
使用對稱加密算法時(shí),我們所做的其實(shí)相當(dāng)于先將信件裝進(jìn)一個(gè)帶鎖的箱子里,然后郵寄這個(gè)箱子。箱子的鑰匙只有寄件和收件的人擁有,因此,就算箱子中途被其他人拿到了也不用怕。因?yàn)樵趯ΨQ加密算法的防御下,密鑰(箱子的鑰匙)是唯一的解鎖工具,暴力破解是行不通的。
這種加密算法高速又高效,防御能力不錯(cuò),能把我們的密碼較好地鎖在“箱子”里。但是科技的發(fā)展一點(diǎn)兒也不客氣,計(jì)算機(jī)的計(jì)算能力不斷提升,密鑰被破解出來的可能性也升高了。要知道一旦有第三者“配出了鑰匙”,“箱子”就鎖不住了,情況危急啊。
好在,我們的防御體系也在不斷升級,新的加密算法一非對稱加密算法出現(xiàn)了。
此時(shí),我們擁有了兩個(gè)密鑰,一個(gè)是公開的,一個(gè)是私有的。顧名思義,公開密鑰是可以告訴別人的。比如你想給朋友發(fā)信息,就得知道朋友的公鑰;信息發(fā)送后,朋友只需要用自己的私鑰去解密就行。同樣的,其他知道朋友公鑰的人也可以向他發(fā)信息。
這就好比朋友在自家門前放了一個(gè)信箱,大家都可以往里面投遞信件,但是能打開信箱取出信件的,就只有朋友自己了。
藏在加密術(shù)背后的算法
加密算法的防御力量從何而來呢?藏在加密術(shù)背后的大靠山就是數(shù)學(xué)。支撐著很多流行的加密算法的,則是大數(shù)不可分解性。
還記得那些年將我們折磨得死去活來的因式分解計(jì)算題嗎?我們知道質(zhì)數(shù)5與質(zhì)數(shù)3相乘等于15,所以當(dāng)題目要求分解15時(shí),可以很快得到15=5x3這個(gè)答案,這個(gè)程度的倒是簡單。但是現(xiàn)在,出現(xiàn)在我們眼前的是10949769651859,這個(gè)長達(dá)14位數(shù)的大數(shù),可以分解成哪兩個(gè)質(zhì)數(shù)的乘積呢?
這時(shí)候,除了笨辦法,拿著已知的質(zhì)數(shù)去一個(gè)一個(gè)地嘗試外,我們別無他法。雖然經(jīng)過長時(shí)間嘗試后,可以得到答案10949769651859=4220851X2594209(數(shù)字取自《上帝擲骰子嗎——量子物理史話》),但是這未免也太低效了!
更可怕的是,當(dāng)這樣的大數(shù)繼續(xù)加大時(shí),想要靠嘗試來分解,需要的時(shí)間會呈幾何級的增長。哪怕只增加1位數(shù),就要多花3倍多的時(shí)間來分解。
非對稱加密算法的防御能力由此可見一斑。雖然計(jì)算機(jī)的計(jì)算能力在不斷提升,破解大數(shù)的速度在加快,但是只要我們給大數(shù)再增加一兩位數(shù),就又能保證很長一段時(shí)間的安全了。
你的密碼還好嗎
知道了防御體系的秘密后,再回過頭來看看我們設(shè)置的密碼??雌饋恚艽a的復(fù)雜程度似乎并不影響它被破解的難度?并非如此哦,因?yàn)槲覀兊拿艽a,在保存至數(shù)據(jù)庫中時(shí),就要經(jīng)過某種加密算法的轉(zhuǎn)化。
我們可以對比一組數(shù)據(jù),當(dāng)黑客要破解采用了某種算法保存的密碼時(shí),如果密碼有6位數(shù),而且都是數(shù)字,那么黑客需要建立一個(gè)表格,把大約100萬種可能放進(jìn)去,然后一一嘗試直至找到正確的排列組合,借助計(jì)算機(jī),這并不難;但如果密碼有10位數(shù),而且包含了數(shù)字和大小寫字母,那黑客可能得嘗試83億億次才行。何況僅僅裝下這些數(shù)據(jù),就大概得要2000萬TB的存儲空間,不管是電腦的存儲空間還是運(yùn)算能力,這看起來幾乎都是不可能完成的任務(wù)啊。由此看來,復(fù)雜的密碼的確安全度更高。
既然如此,那為何一個(gè)復(fù)雜的密碼最好也別在不同的網(wǎng)站間通用呢?這主要是為了以防萬一。萬一這個(gè)密碼不小心被泄露破解了,黑客會直接拿著它去別的數(shù)據(jù)庫試,比如試試這是否也是銀行密碼,畢竟這比去再次破解一個(gè)算法要容易多了。
總之,想要抵擋住黑客,我們可以從源頭上,盡可能地做點(diǎn)兒工作。當(dāng)然,如果你希望走得更遠(yuǎn),比如將來為信息安全世界打造一個(gè)最強(qiáng)防御體系,那就得在數(shù)學(xué)領(lǐng)域深耕了。若是再進(jìn)一步,讓數(shù)學(xué)與物理強(qiáng)強(qiáng)聯(lián)手,說不定某一天,你能讓永遠(yuǎn)不可能被破解的量子加密術(shù)也成為現(xiàn)實(shí)呢!