楊亞濤 黃潔潤
密碼學(xué)與數(shù)學(xué)難題有著非常密切的關(guān)系,非對稱密碼就是基于有名的數(shù)學(xué)難題(如利用普通的離散對數(shù)、大整數(shù)分解和橢圓曲線離散對數(shù)等問題)來設(shè)計的公鑰密碼系統(tǒng)。從破譯公鑰密碼系統(tǒng)的角度來看,可以將破譯過程視為對一種數(shù)學(xué)難題的求解,難題越難,破譯起來就會越困難,而公鑰密碼體制也就越安全。
公鑰密碼算法為加密和解密使用不同密鑰的密碼算法,其中一個密鑰是公開的,稱為公開密鑰(Public Key),簡稱公鑰,用于加密或驗證簽名;另一個密鑰為用戶專用,是保密的,稱為私鑰(Private Key),用于解密或簽名。由于公鑰密碼體制的公鑰是公開的,通信雙方不需要利用傳統(tǒng)的秘密信道就可以進(jìn)行加密通信,同時也可以很方便地為數(shù)據(jù)加密協(xié)商出共享的會話密鑰,因此在現(xiàn)代密碼通信領(lǐng)域中有著廣泛應(yīng)用。
公鑰密碼體制的出現(xiàn)是迄今為止密碼學(xué)發(fā)展史上一次最偉大的革命。1976年,威特菲爾德·迪菲(Whitefield Diffie)和馬丁·海爾曼(Martin Hellman)提出了公鑰密碼的思想?;诖怂枷虢⒌拿艽a體制,被稱為公鑰密碼體制或非對稱密碼體制。對于公鑰密碼體制,算法具有以下重要特性:已知密碼算法和公鑰來求解私鑰,這在計算上是不可行的。
在公鑰密碼體制問世之前,所有的密碼算法,包括古典密碼、手工計算密碼、機(jī)械密碼、對稱密碼等,都是基于代換或置換這兩個基本方法。
國外的公鑰密碼主要有RSA公鑰密碼體制和ElGamal公鑰密碼體制等。1978年,麻省理工學(xué)院的三位密碼學(xué)家瑞斯特
(Ron Rivest)、夏米爾(Adi Shamir)
和阿德爾曼(Leonard Adleman)提出了RSA密碼算法,它是一種用數(shù)論構(gòu)造的、也是迄今為止理論上較為成熟完善的公鑰密碼體制。
(T. ElGamal)提出了ElGamal公鑰密碼體制,它是基于離散對數(shù)問題且主要是為實現(xiàn)數(shù)字簽名的目的而設(shè)計的,是繼RSA算法之后也比較有名的密碼方案。目前,科學(xué)家對于離散對數(shù)問題的研究已經(jīng)取得了一些重要的研究成果,也設(shè)計出了一些計算離散對數(shù)的算法,但在現(xiàn)有計算機(jī)的計算能力下,利用已有的算法來計算離散對數(shù)依然是很困難的。
公鑰密碼體制的加密和解密過程包括如下幾個步驟:
(1)產(chǎn)生一對密鑰(pk,sk),其中pk是公鑰,sk是私鑰。
(2)將密鑰pk予以公開,另一密鑰sk則保密存放。
(3)發(fā)送方使用接收方的公鑰加密明文m,得到并發(fā)送密文c。
(4)接收方收到密文c后,用自己的私鑰sk解密。由于只有接收方知道其自身的私鑰sk,所以其他人都無法對密文c解密。
這里以RSA密碼算法為例,來說明一下公鑰密碼體制的加密與解密過程。
為了進(jìn)行RSA密碼系統(tǒng)的初始化,即生成RSA算法的公私密鑰對,需要進(jìn)行以下幾個步驟:
(1)選取兩個不同的大素數(shù)p和q;
(2)計算n=pq,φ(n)=(p-1)(q-1),其中φ(n)是n的歐拉函數(shù);
(3)隨機(jī)選取整數(shù)e∈Z,同時滿足,1 (4) 計算得出與e互逆的d。e和n是公鑰,d是私鑰。 下面通過一個小例子簡單說明RSA算法公鑰和私鑰的具體產(chǎn)生過程。 設(shè)p=13,q=17,e=11,n=p×q=13×17=221,則φ(n)=(p-1)(q-1)=(13-1)×(17-1) =192,顯然,公鑰e=11(一般為素數(shù)),滿足1 得到公私鑰后,發(fā)送方用接收方的公鑰加密信息,接收方接收到信息后用私鑰解密,即實現(xiàn)了加解密過程。 對于信息安全來說,除機(jī)密性之外,不可抵賴性也是不可忽視的方面。特別是今天,信息網(wǎng)絡(luò)滲透到金融、商業(yè)以及社會生活的各個領(lǐng)域,信息的不可抵賴性已經(jīng)變得越來越重要。比如電子商務(wù)活動中,主要的支付方式有通過IC卡終端轉(zhuǎn)賬、通過信用卡金融網(wǎng)絡(luò)劃撥、電子支票、掃碼支付等,無論哪種方式,任何環(huán)節(jié)的紕漏都會引發(fā)安全問題。而公鑰密碼可以有效地解決機(jī)密性、不可抵賴性和身份認(rèn)證這些信息安全問題。 不可抵賴性是指在信息交互活動中的參加者不能否認(rèn)所發(fā)生的事件和行為。一般情況下,不可抵賴性包含兩個方面:一個方面是發(fā)送方的不可抵賴,也就是說,張三發(fā)了一個消息給李四,張三就不能否認(rèn)這個事實;另一個方面是接收方的不可抵賴性,例如小明要購買某個玩具公司的產(chǎn)品,通過網(wǎng)絡(luò)給公司成功支付了訂金,公司收到了訂金,但是卻耍賴說沒有收到。在很多互聯(lián)網(wǎng)活動比如電子商務(wù)、個人辦公等系統(tǒng)中,都要解決好不可抵賴性的問題。 不可抵賴可以用公鑰密碼算法和數(shù)字簽名技術(shù)來實現(xiàn)。數(shù)字簽名,類似現(xiàn)實生活中人的手寫簽名,它的本質(zhì)是該簽名只有通過簽名者本人的私有信息才能產(chǎn)生,即一個簽名者的簽名只能唯一地由他自己產(chǎn)生,別人不能偽造。當(dāng)收發(fā)雙方產(chǎn)生爭議時,第三方權(quán)威機(jī)構(gòu)就能夠根據(jù)消息上的數(shù)字簽名來裁定這條信息來自何方,從而實現(xiàn)對信息發(fā)送或接收行為的不可抵賴。公鑰密碼算法是實現(xiàn)數(shù)字簽名技術(shù)的基礎(chǔ)。 通信或交易時,應(yīng)該保證信息的接收方和發(fā)送方能夠被唯一地標(biāo)識出來,讓通信雙方都能夠知道信息從哪里來或者到哪里去,我們也將這種安全保障簡稱為身份認(rèn)證。按照被驗證對象可以將身份認(rèn)證問題分成三種:一是對設(shè)備的身份認(rèn)證,二是對人的身份認(rèn)證,三是對信息的身份認(rèn)證。通過主機(jī)地址、主機(jī)名稱、擁有者的口令等都在一定程度上保證了對設(shè)備的驗證,但通過公鑰密碼算法和數(shù)字簽名技術(shù),可以比較完美地實現(xiàn)對人員、設(shè)備或信息的身份認(rèn)證。 上述主要介紹了公鑰密碼與數(shù)學(xué)的緊密關(guān)系以及公鑰密碼體制在生活中的廣泛應(yīng)用。在密碼學(xué)的發(fā)展歷程中,密碼與數(shù)學(xué)相伴而生,數(shù)學(xué)已經(jīng)成為密碼學(xué)發(fā)展的重要基石和理論基礎(chǔ)?;跀?shù)學(xué)難題構(gòu)造的公鑰密碼體制是現(xiàn)代密碼學(xué)中不可或缺的重要組成部分。公鑰密碼的不可抵賴性