陳曉玉+陳新+高巍
【摘要】密碼在當(dāng)今社會(huì)生活中的作用可以說十分巨大,除了眾所周知的軍事國防方面的應(yīng)用外,現(xiàn)代金融、貿(mào)易、生產(chǎn)等無不在大規(guī)模使用密碼.計(jì)算機(jī)網(wǎng)絡(luò)的廣泛應(yīng)用,使人們對(duì)密碼的依賴達(dá)到了新的高度,一般密碼編制理論中,稱要傳遞的原文為“明文”,經(jīng)加密后實(shí)際傳遞的是密碼構(gòu)成的“密文”,收信方則將其解密,恢復(fù)為明文使其可理解,就完成了通信任務(wù)。
【關(guān)鍵詞】密鑰 不可破譯 密碼學(xué)
密碼學(xué)在公元前400多年就早已經(jīng)產(chǎn)生了,正如《破譯者》一書中所說“人類使用密碼的歷史幾乎與使用文字的時(shí)間一樣長”。密碼學(xué)的起源的確要追溯到人類剛剛出現(xiàn),并且嘗試去學(xué)習(xí)如何通信的時(shí)候,為了確保他們的通信的機(jī)密,最先是有意識(shí)的使用一些簡單的方法來加密信息,通過一些(密碼)象形文字相互傳達(dá)信息。接著由于文字的出現(xiàn)和使用,確保通信的機(jī)密性就成為一種藝術(shù),古代發(fā)明了不少加密信息和傳達(dá)信息的方法。例如我國古代的烽火就是一種傳遞軍情的方法,再如古代的兵符就是用來傳達(dá)信息的密令。密碼學(xué)真正成為科學(xué)是在19世紀(jì)末和20世紀(jì)初期,由于軍事、數(shù)學(xué)、通訊等相關(guān)技術(shù)的發(fā)展,特別是兩次世界大戰(zhàn)中對(duì)軍事信息保密傳遞和破獲敵方信息的需求,密碼學(xué)得到了空前的發(fā)展,并廣泛的用于軍事情報(bào)部門的決策。例如在希特勒一上臺(tái)時(shí),德國就試驗(yàn)并使用了一種命名為“謎”的密碼機(jī),“謎”型機(jī)能產(chǎn)生220億種不同的密鑰組合,假如一個(gè)人日夜不停地工作,每分鐘測試一種密鑰的話,需要約4.2萬年才能將所有的密鑰可能組合試完,希特勒完全相信了這種密碼機(jī)的安全性。然而,英國獲知了“謎”型機(jī)的密碼原理,完成了一部針對(duì)“謎”型機(jī)的綽號(hào)叫“炸彈”的密碼破譯機(jī),每秒鐘可處理2000個(gè)字符,它幾乎可以破譯截獲德國的所有情報(bào)。后來又研制出一種每秒鐘可處理5000個(gè)字符的“巨人”型密碼破譯機(jī)并投入使用,至此同盟國幾乎掌握了德國納粹的絕大多數(shù)軍事秘密和機(jī)密,而德國軍方卻對(duì)此一無所知;太平洋戰(zhàn)爭中,美軍成功破譯了日本海軍的密碼機(jī),讀懂了日本艦隊(duì)司令官山本五十六發(fā)給各指揮官的命令,在中途島徹底擊潰了日本海軍,擊斃了山本五十六,導(dǎo)致了太平洋戰(zhàn)爭的決定性轉(zhuǎn)折。因此,我們可以說,密碼學(xué)為戰(zhàn)爭的勝利立了大功。在當(dāng)今密碼學(xué)不僅用于國家軍事安全上,人們已經(jīng)將重點(diǎn)更多的集中在實(shí)際應(yīng)用,在你的生活就有很多密碼例如為了防止別人查閱你文件,你可以將你的文件加密;為了防止竊取你錢物,你在銀行賬戶上設(shè)臵密碼,等等。隨著科技的發(fā)展和信息保密的需求,密碼學(xué)的應(yīng)用將融入了你的日常生活。
密碼在當(dāng)今社會(huì)生活中的作用可以說十分巨大,除了眾所周知的軍事國防方面的應(yīng)用外,現(xiàn)代金融、貿(mào)易、生產(chǎn)等無不在大規(guī)模使用密碼.計(jì)算機(jī)網(wǎng)絡(luò)的廣泛應(yīng)用,使人們對(duì)密碼的依賴達(dá)到了新的高度,在千百萬臺(tái)計(jì)算機(jī)聯(lián)結(jié)成的因特網(wǎng)上,用戶的識(shí)別基本上是靠密碼.密碼被破譯就會(huì)產(chǎn)生危及安全的極嚴(yán)重的后果.計(jì)算機(jī)“黑客”的作為,即為密碼破譯的一例,連美國國防部的計(jì)算機(jī)都未能幸免,可見密碼編制的難度了。
由大整數(shù)因數(shù)分解的困難,人們研制成功一種“不可破譯”的密碼:RSA體制密碼.RSA密碼是一種公開密鑰密碼,說它“不可破譯”是形容破譯之難,不過的確至今尚沒找到破譯的理論工具.
一般密碼編制理論中,稱要傳遞的原文為“明文”,經(jīng)加密后實(shí)際傳遞的是密碼構(gòu)成的“密文”,收信方則將其解密,恢復(fù)為明文使其可理解,就完成了通信任務(wù).這其中加密和解密要用通信雙方約定的方法,這一方法就稱為密鑰.更一般地,人們首先給定一個(gè)加密算法,不太嚴(yán)格地說,可把這一算法視為函數(shù),函數(shù)的值就是密鑰,而解密算法可以說是加密算法的一個(gè)反函數(shù),使用同一個(gè)密鑰(原函數(shù)的值)可將密文惟一地譯成明文。
密碼的關(guān)鍵就在于通信雙方約定密鑰而不被外界所知,外界對(duì)密碼的破譯也就指向密鑰了.而且為了防止外界可能的破譯,就應(yīng)盡力使外人不可能積累在同一密鑰下的許多密文,否則可用統(tǒng)計(jì)分析法等確定出密鑰,世界戰(zhàn)爭史、外交史上有許多破譯成功的例子.這樣就經(jīng)常變換密鑰,重要的通信要每天一換甚至通一次信換一次。
這么頻繁換的密鑰怎樣送給對(duì)方?如果隨其他信息(用無線電或網(wǎng)絡(luò))易于失密,每次派專人送又不可能,怎樣解決這一問題呢?這就是RSA密碼的長處了,它把密鑰分成加密鑰和解密鑰.如A和B通信,A把加密鑰公開送達(dá)B(可用明碼電報(bào)或與上次通信同時(shí)),不怕外人知道,所以叫公開密鑰,而解密鑰留在自己處不送達(dá)B,B收到公開密鑰后,用它加密要給A的信息,然后送回A(這也無須特別秘密),則A可用手中的解密密鑰解密。
外人沒有解密密鑰,就無從破譯密碼了,那么加密鑰和解密鑰就沒有關(guān)系了嗎?當(dāng)然不是,否則就無法解密了.不過這種關(guān)系正是建立在大整數(shù)因數(shù)分解困難的基礎(chǔ)上.換句話說,由公開密鑰得出解密鑰要進(jìn)行一個(gè)充分大的整數(shù)的因數(shù)分解,你無法分解也就無法破譯.
具體的編碼過程是,先找出兩個(gè)不同的大素?cái)?shù)p和q,再給定一個(gè)數(shù)r(一般是用計(jì)算機(jī)產(chǎn)生一個(gè)隨機(jī)數(shù)或至少一個(gè)偽隨機(jī)數(shù),也可每次一換),使r與數(shù)(p-1) (q-1)互素,這三個(gè)數(shù)p、q、r就是解密密鑰.
再求一個(gè)數(shù)m,使(rm-1)(-1)能被(p-1)(q-1)整除.嚴(yán)格表述為:求m,使rm=1 (mod(p-1)(q-1)).
由于與(p-1)(q-1)互素,所以m是一定可求出來的(有數(shù)論定理保證).再求出數(shù)n=p q.m、n為加密密鑰,即公開密鑰.
具體的加密方法為,設(shè)明文為x,可把x視為(或變?yōu)椋┮粋€(gè)大整數(shù),設(shè)x 由于運(yùn)用現(xiàn)代計(jì)算機(jī)已可分解100位左右數(shù)的因數(shù),因此n要取得相當(dāng)大,從而p、q也要取得相當(dāng)大,比如每個(gè)數(shù)80位以上,再求積,這在技術(shù)上是可能的。 是否還應(yīng)考慮相應(yīng)計(jì)算的復(fù)雜性和計(jì)算所需要的時(shí)間呢?當(dāng)然有這方面的問題,現(xiàn)在通常用復(fù)合編碼法解決,即用其他計(jì)算比較簡單、耗時(shí)少的編碼方法編碼,而每次編碼所采用的密鑰用RSA密碼來傳遞,這既加強(qiáng)了安全性,又加快了速度。