版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系我們

[科普中國(guó)]-密碼系統(tǒng)

科學(xué)百科
原創(chuàng)
科學(xué)百科為用戶提供權(quán)威科普內(nèi)容,打造知識(shí)科普陣地
收藏

概述

密碼技術(shù)的一個(gè)基本功能是實(shí)現(xiàn)保密通信,經(jīng)典的保密通信模型

注意:僅用一個(gè)保密通信模型來(lái)完整描述密碼系統(tǒng),可能是并不全面和準(zhǔn)確的,因?yàn)楝F(xiàn)在的密碼系統(tǒng)不單單只提供信息的機(jī)密性服務(wù)。

保密通信是密碼技術(shù)的一個(gè)基本功能。1

明文(Plaintext)一般可以簡(jiǎn)單的認(rèn)為明文是有意義的字符或比特集,或通過(guò)某種公開(kāi)的編碼標(biāo)準(zhǔn)就能獲得的消息。明文常用m或p表示。1

密文(Ciphertext)對(duì)明文施加某種偽裝或變換后的輸出,也可認(rèn)為是不可直接理解的字符或比特集,密文常用c表示。1

加密(Encrypt )把原始的信息(明文)轉(zhuǎn)換為密文的信息變換過(guò)程。1

解密(Decrypt)把己加密的信息(密文)恢復(fù)成原始信息明文的過(guò)程,也稱為脫密。

密碼算法(Cryptography Algorithm)也簡(jiǎn)稱密碼(Cipher),通常是指加、解密過(guò)程所使用的信息變換規(guī)則,是用于信息加密和解密的數(shù)學(xué)函數(shù)。

對(duì)明文進(jìn)行加密時(shí)所采用的規(guī)則稱作加密算法,而對(duì)密文進(jìn)行解密時(shí)所采用的規(guī)則稱作解密算法。加密算法和解密算法的操作通常都是在一組密鑰的控制下進(jìn)行的。1

密鑰(Secret Key )密碼算法中的一個(gè)可變參數(shù),通常是一組滿足一定條件的隨機(jī)序列。

用于加密算法的叫做加密密鑰,用于解密算法的叫做解密密鑰,加密密鑰和解密密鑰可能相同,也可能不相同。

密鑰常用k表示。在密鑰k的作用下,加密變換通常記為Ek(·),解密變換記為Dk(·)或Ek-1(·)。1

密碼系統(tǒng)系統(tǒng)組成可以有如下幾個(gè)部分:

–消息空間M(又稱明文空間):所有可能明文m的集合;

–密文空間C:所有可能密文c的集合;

–密鑰空間K:所有可能密鑰k的集合,其中每一密鑰k由加密密鑰ke和解密密鑰kd組成,即k=(ke,kd);

–加密算法E:一簇由加密密鑰控制的、從M到C的加密變換;

–解密算法D: 一簇由解密密鑰控制的、從C到M的解密變換。2

五元組{ M,C,K,E,D }對(duì)于明文空間M中的每一個(gè)明文m,加密算法E在加密密鑰ke的控制下將明文m加密成密文c;而解密算法D則在密鑰kd的控制下將密文c解密成同一明文m,即:

對(duì)m∈M,(ke,kd)∈K,有:Dkd(Eke(m))=m

從數(shù)學(xué)的角度來(lái)講,一個(gè)密碼系統(tǒng)就是一族映射,它在密鑰的控制下將明文空間中的每一個(gè)元素映射到密文空間上的某個(gè)元素。這族映射由密碼方案確定,具體使用哪一個(gè)映射由密鑰決定。

在上面通信模型中,還存在一個(gè)密碼攻擊者或破譯者可從普通信道上攔截到的密文c,其工作目標(biāo)就是要在不知道密鑰k的情況下,試圖從密文c恢復(fù)出明文m或密鑰k。

如果密碼分析者可以僅由密文推出明文或密鑰,或者可以由明文和密文推出密鑰,那么就稱該密碼系統(tǒng)是可破譯的。相反地,則稱該密碼系統(tǒng)不可破譯。2

解碼方法密碼分析者破譯或攻擊密碼的方法主要有窮舉攻擊法、統(tǒng)計(jì)分析法數(shù)學(xué)分析攻擊法。

窮舉攻擊法窮舉攻擊法又稱為強(qiáng)力或蠻力(Brute force)攻擊。這種攻擊方法是對(duì)截獲到的密文嘗試遍歷所有可能的密鑰,直到獲得了一種從密文到明文的可理解的轉(zhuǎn)換;或使用不變的密鑰對(duì)所有可能的明文加密直到得到與截獲到的密文一致為止。2

統(tǒng)計(jì)分析法統(tǒng)計(jì)分析攻擊就是指密碼分析者根據(jù)明文、密文和密鑰的統(tǒng)計(jì)規(guī)律來(lái)破譯密碼的方法。

數(shù)學(xué)分析法數(shù)學(xué)分析攻擊是指密碼分析者針對(duì)加解密算法的數(shù)學(xué)基礎(chǔ)和某些密碼學(xué)特性,通過(guò)數(shù)學(xué)求解的方法來(lái)破譯密碼。數(shù)學(xué)分析攻擊是對(duì)基于數(shù)學(xué)難題的各種密碼算法的主要威脅。2

攻擊類型在假設(shè)密碼分析者已知所用加密算法全部知識(shí)的情況下,根據(jù)密碼分析者對(duì)明文、密文等數(shù)據(jù)資源的掌握程度,可以將針對(duì)加密系統(tǒng)的密碼分析攻擊類型分為以下四種:

① 唯密文攻擊(Ciphtext-only attack)

在惟密文攻擊中,密碼分析者不知道密碼算法,但僅能根據(jù)截獲的密文進(jìn)行分析,以得出明文或密鑰。由于密碼分析者所能利用的數(shù)據(jù)資源僅為密文,這是對(duì)密碼分析者最不利的情況。

②已知明文攻擊(Plaintext-known attack)

已知明文攻擊是指密碼分析者除了有截獲的密文外,還有一些已知的“明文—密文對(duì)”來(lái)破譯密碼。密碼分析者的任務(wù)目標(biāo)是推出用來(lái)加密的密鑰或某種算法,這種算法可以對(duì)用該密鑰加密的任何新的消息進(jìn)行解密。

③ 選擇明文攻擊(Chosen-plaintext attack)

選擇明文攻擊是指密碼分析者不僅可得到一些“明文—密文對(duì)”,還可以選擇被加密的明文,并獲得相應(yīng)的密文。這時(shí)密碼分析者能夠選擇特定的明文數(shù)據(jù)塊去加密,并比較明文和對(duì)應(yīng)的密文,已分析和發(fā)現(xiàn)更多的與密鑰相關(guān)的信息。

密碼分析者的任務(wù)目標(biāo)也是推出用來(lái)加密的密鑰或某種算法,該算法可以對(duì)用該密鑰加密的任何新的消息進(jìn)行解密。

④ 選擇密文攻擊(Chosen—ciphenext attack)

選擇密文攻擊是指密碼分析者可以選擇一些密文,并得到相應(yīng)的明文。密碼分析者的任務(wù)目標(biāo)是推出密鑰。這種密碼分析多用于攻擊公鑰密碼體制。2

攻擊評(píng)估衡量密碼系統(tǒng)攻擊的復(fù)雜性主要考慮三個(gè)方面的因素:

數(shù)據(jù)復(fù)雜性(Data Complexity)

用做密碼攻擊所需要輸入的數(shù)據(jù)量;

處理復(fù)雜性(Processing Complexity)

完成攻擊所需要花費(fèi)的時(shí)間;

存儲(chǔ)需求(Storage Requirement)

進(jìn)行攻擊所需要的數(shù)據(jù)存儲(chǔ)空間大小。

攻擊的復(fù)雜性取決于以上三個(gè)因素的最小復(fù)雜度,在實(shí)際實(shí)施攻擊時(shí)往往要考慮這三種復(fù)雜性的折衷,如存儲(chǔ)需求越大,攻擊可能越快。2

安全性安全因素一個(gè)密碼系統(tǒng)的安全性主要與兩個(gè)方面的因素有關(guān)。

(1)一個(gè)是所使用密碼算法本身的保密強(qiáng)度。密碼算法的保密強(qiáng)度取決于密碼設(shè)計(jì)水平、破譯技術(shù)等。可以說(shuō)一個(gè)密碼系統(tǒng)所使用密碼算法的保密強(qiáng)度是該系統(tǒng)安全性的技術(shù)保證。

(2)另外一個(gè)方面就是密碼算法之外的不安全因素。

因此,密碼算法的保密強(qiáng)度并不等價(jià)于密碼系統(tǒng)整體的安全性?!獋€(gè)密碼系統(tǒng)必須同時(shí)完善技術(shù)與管理要求,才能保證整個(gè)密碼系統(tǒng)的安全。本教材僅討論影響一個(gè)密碼系統(tǒng)安全性的技術(shù)因素,即密碼算法本身。2

評(píng)估方法評(píng)估密碼系統(tǒng)安全性主要有三種方法:

(1)無(wú)條件安全性

這種評(píng)價(jià)方法考慮的是假定攻擊者擁有無(wú)限的計(jì)算資源,但仍然無(wú)法破譯該密碼系統(tǒng)。

(2)計(jì)算安全性

這種方法是指使用目前最好的方法攻破它所需要的計(jì)算遠(yuǎn)遠(yuǎn)超出攻擊者的計(jì)算資源水平,則可以定義這個(gè)密碼體制是安全的。

(3)可證明安全性

這種方法是將密碼系統(tǒng)的安全性歸結(jié)為某個(gè)經(jīng)過(guò)深入研究的數(shù)學(xué)難題(如大整數(shù)素因子分解、計(jì)算離散對(duì)數(shù)等),數(shù)學(xué)難題被證明求解困難。這種評(píng)估方法存在的問(wèn)題是它只說(shuō)明了這個(gè)密碼方法的安全性與某個(gè)困難問(wèn)題相關(guān),沒(méi)有完全證明問(wèn)題本身的安全性,并給出它們的等價(jià)性證明。

對(duì)于實(shí)際應(yīng)用中的密碼系統(tǒng)而言,由于至少存在一種破譯方法,即強(qiáng)力攻擊法,因此都不能滿足無(wú)條件安全性,只提供計(jì)算安全性。密碼系統(tǒng)要達(dá)到實(shí)際安全性,就要滿足以下準(zhǔn)則:

(1)破譯該密碼系統(tǒng)的實(shí)際計(jì)算量(包括計(jì)算時(shí)間或費(fèi)用)十分巨大,以致于在實(shí)際上是無(wú)法實(shí)現(xiàn)的。

(2)破譯該密碼系統(tǒng)所需要的計(jì)算時(shí)間超過(guò)被加密信息有用的生命周期。例如,戰(zhàn)爭(zhēng)中發(fā)起戰(zhàn)斗攻擊的作戰(zhàn)命令只需要在戰(zhàn)斗打響前需要保密;重要新聞消息在公開(kāi)報(bào)道前需要保密的時(shí)間往往也只有幾個(gè)小時(shí)。

(3)破譯該密碼系統(tǒng)的費(fèi)用超過(guò)被加密信息本身的價(jià)值。

如果一個(gè)密碼系統(tǒng)能夠滿足以上準(zhǔn)則之一,就可以認(rèn)為是滿足實(shí)際安全性的。2

延伸閱讀柯克霍夫斯(Kerckhoffs)原則

即使密碼系統(tǒng)中的算法為密碼分析者所知,也難以從截獲的密文推導(dǎo)出明文或密鑰。

也就是說(shuō),密碼體制的安全性僅應(yīng)依賴于對(duì)密鑰的保密,而不應(yīng)依賴于對(duì)算法的保密。

只有在假設(shè)攻擊者對(duì)密碼算法有充分的研究,并且擁有足夠的計(jì)算資源的情況下仍然安全的密碼才是安全的密碼系統(tǒng)。

一句話: “一切秘密寓于密鑰之中”

對(duì)于商用密碼系統(tǒng)而言,公開(kāi)密碼算法的優(yōu)點(diǎn)包括:

①有利于對(duì)密碼算法的安全性進(jìn)行公開(kāi)測(cè)試評(píng)估;

②防止密碼算法設(shè)計(jì)者在算法中隱藏后門(mén);

③易于實(shí)現(xiàn)密碼算法的標(biāo)準(zhǔn)化;

④有利于使用密碼算法產(chǎn)品的規(guī)?;a(chǎn),實(shí)現(xiàn)低成本和高性能。

但是必須要指出的是,密碼設(shè)計(jì)的公開(kāi)原則并不等于所有的密碼在應(yīng)用時(shí)都一定要公開(kāi)密碼算法。例如世界各國(guó)的軍政核心密碼就都不公開(kāi)其加密算法。

綜上,一個(gè)提供機(jī)密性服務(wù)的密碼系統(tǒng)是實(shí)際可用的,必須****滿足的基本要求:

①系統(tǒng)的保密性不依賴于對(duì)加密體制或算法的保密,而僅依賴于密鑰的安全性。 “一切秘密寓于密鑰之中”是密碼系統(tǒng)設(shè)計(jì)的一個(gè)重要原則。

②滿足實(shí)際安全性,使破譯者取得密文后在有效時(shí)間和成本范圍內(nèi),確定密鑰或相應(yīng)明文在計(jì)算上是不可行的。

③加密和解密算法應(yīng)適用于明文空間、密鑰空間中的所有元素。

④加密和解密算法能有效地計(jì)算,密碼系統(tǒng)易于實(shí)現(xiàn)和使用。2