公共密鑰: ? (也常被譯為公開(kāi)密鑰) ?
? ? ? ? ? "密碼"已經(jīng)是一個(gè)老少皆知的詞,想從銀行里把錢(qián)取出來(lái)嗎?沒(méi)密碼可萬(wàn)萬(wàn)不行。不知從什么時(shí)候開(kāi)始,這么一個(gè)軍事級(jí)的詞匯已經(jīng)走進(jìn)了千家萬(wàn)戶,婦孺皆知。不過(guò)知道“密鑰”這個(gè)詞的人就少多了,知道“公共密鑰”的人就更少了,不但知道而且了解其原理的人則少之又少,當(dāng)然,如果你以前不清楚的話,那么你即將加入這少之又少的行列:) ?
? ? ? ? ? long ? long ? ago,隨著軍事的日益發(fā)展,情報(bào)的重要性日益提高,如何獲得準(zhǔn)確的情報(bào)成為軍事上的一大重點(diǎn),伴隨而來(lái)的另一個(gè)問(wèn)題則是如何盡量保證自己的情報(bào)在被敵人截獲后(這總是無(wú)可避免的)敵人依然無(wú)法獲得該情報(bào)的信息,防止情報(bào)外泄。不妨讓我們以今人的智慧來(lái)設(shè)身處地的想一想,有什么好的解決方法。首先想到的當(dāng)然是用密文不要用明文,把明文按某種規(guī)則打亂為密文、或者讓明文與密文有某種一一對(duì)應(yīng)的規(guī)則 ? ,這樣即使密文泄露,只要敵人不知道我的明文與密文之間轉(zhuǎn)換的規(guī)則,它將一無(wú)所獲。這是一種簡(jiǎn)單且行之有效的方法,即便到了近代一戰(zhàn)二戰(zhàn)中,還被廣泛使用著,當(dāng)然它的這個(gè)規(guī)則往往是動(dòng)態(tài)的,甚至可能相當(dāng)復(fù)雜。然而這樣的方案在理論上有一個(gè)重大的缺陷,那就是你如何安全地傳遞“規(guī)則”??jī)傻刂g要確保能互相將密文變成明文,必須有共同的規(guī)則,那么就至少需要"一次"安全地將“規(guī)則”從一地傳到另一地,這在理論上是無(wú)法保證的,所以整個(gè)的安全體系也就無(wú)法讓人完全地放心,一旦規(guī)則泄露,對(duì)密文體系的打擊則是致命的。有沒(méi)有什么更好的辦法呢?嗯,如果你以前沒(méi)有接觸過(guò)的話,我估計(jì)你是想不出了。解決的方法正是公共密鑰體系。 ?
? ? ? ? ? 讓我們?cè)倩仡^來(lái)看一看我們是如何將明文變成密文的,最簡(jiǎn)單的是將它重新打亂,或者進(jìn)行某種線性或非線性變換,立刻就讓人難以閱讀,但這也是最容易破譯的,因?yàn)檫@種自身的變換在數(shù)學(xué)上相對(duì)容易求解,在現(xiàn)在的計(jì)算機(jī)的幫助下,通過(guò)一定量密文明文的統(tǒng)計(jì)分析,很容易找到其變化的規(guī)則。高級(jí)一點(diǎn)的,可以再用一組密碼(可以是動(dòng)態(tài)改變的,譬如隨日期而改變),讓明文與這組密碼進(jìn)行某種組合變化,從而得到一組密文,這樣,由于這個(gè)“組合變化”可能是非常復(fù)雜的一種數(shù)學(xué)變換,僅通過(guò)密文或者加上一定量的明文也很難找出這組密碼以及這個(gè)“組合變化”的規(guī)則。這就是目前絕大多數(shù)加/解密的根本原理。而這里的這組密碼,我們就把它稱(chēng)作密鑰。 ?
? ? ? ? ? 但是這只是提高了獲得密文者的對(duì)密文的破譯難度,并沒(méi)有解決我們前面提出的問(wèn)題。現(xiàn)在就要來(lái)看看“共公(共開(kāi))”的含義了。在數(shù)學(xué)上有一種運(yùn)算是單向的(在數(shù)學(xué)理論上截止目前為止),從一個(gè)方向算過(guò)去很簡(jiǎn)單,但是它的逆運(yùn)算當(dāng)缺少正向運(yùn)算時(shí)加入的一些信息時(shí),就會(huì)變得幾乎不可能。這就構(gòu)成了我們的“共公密鑰”的理論基礎(chǔ)。具體使用如下:我們首先產(chǎn)生一對(duì)密鑰,一把稱(chēng)為加密密鑰,一把稱(chēng)為解密密鑰,它們是相關(guān)但不相同的。加密時(shí)我們把明文與加密密鑰一起采取“不可逆”數(shù)學(xué)運(yùn)算進(jìn)行“組合變化”,形成密文,解密時(shí)把密文與解密密鑰一起采取類(lèi)似的運(yùn)算進(jìn)行解密,注意,這處因?yàn)榧用苊荑€與解密密鑰產(chǎn)生時(shí)即是相關(guān)連的,所以解密密鑰也能夠完成這樣一個(gè)“逆運(yùn)算”。同時(shí),解密密鑰也可以用來(lái)加密,相應(yīng)的,加密密解也可以用來(lái)解“用解密密鑰加密的密文”。使用的時(shí)候很簡(jiǎn)單,把加密密鑰當(dāng)作公共密鑰,分發(fā)給任何想要獲取的人,解密密鑰由自己妥善保管作為私鑰。當(dāng)擁有加密密鑰的人要傳遞密文給自己時(shí),他只要使用自由獲取的我的公共密鑰來(lái)加密該明文即可,當(dāng)然,他加密以后他自己也是不能解的,但是傳到我手里以后,我則可以用解密密鑰來(lái)解密,這樣就很好地解決了前面提出的無(wú)法安全傳輸“規(guī)則”的問(wèn)題,現(xiàn)在我的公共密鑰是公開(kāi)的,你要拿就拿去好了:) ? 而私鑰我自己好好保存,不用把它放出來(lái)。 ?
? ? ? ? ? 公共密鑰另一個(gè)重要作用就是用來(lái)簽名。我使用私鑰對(duì)自己的文件加密后,你來(lái)使用我發(fā)放的公鑰來(lái)解密,如果解密成功,則可證明這的確是我發(fā)出來(lái)的文件。 ?
? ? ? ? ? 在現(xiàn)在網(wǎng)絡(luò)安全信息常常使用的證書(shū)體系中,“證書(shū)”的背后其實(shí)也是這樣的一種公共密鑰體系。
posted on 2006-05-14 13:03
太極虎~宏 閱讀(342)
評(píng)論(0) 編輯 收藏 引用