密碼學(xué)的基本原理
所謂加密,就是一個改變數(shù)據(jù),使之變得不可辨識、無授權(quán)者無法使用的過程;同時,它還要保證解密過程能成功把改變后的數(shù)據(jù)恢復(fù)成原始形式。安全技術(shù)一般都把加密的數(shù)學(xué)方法和用于加密的參數(shù)(叫做 “key(密鑰)”)區(qū)別開來。被選定的密鑰(通常是一段隨機的字符串)也是加密過程的輸入,對加密過程來說也是必不可少的。同一把密鑰往往也是解密過程的必要輸入。
這個保護過程的原理是,只要密鑰(有時候也叫 “口令”,password)沒有暴露、只被得到授權(quán)的人所知,那么原始數(shù)據(jù)就不會暴露給其他人。只有知道密鑰的人才能解密密文。這個思路,我們叫 “私鑰” 密碼設(shè)計學(xué)(譯者注:稱作 “對稱密碼學(xué)” 可能更恰當(dāng)一些,因為加解密過程是對稱的,都使用同一把密鑰),也是最廣為人知的加密形式。
那么,加密之所以必要的基本理由如下:
機密性(confidentiality)—— 在傳輸數(shù)據(jù)的時候,不希望竊聽者能夠知道被廣播的消息的內(nèi)容。在保管數(shù)據(jù)的時候不希望未經(jīng)授權(quán)的人(比如黑客)能夠訪問,也是同理。
身份認(rèn)證(Authentication)—— 相當(dāng)于簽名。收信者希望能確證該信息是特定的某個人發(fā)出的,其他人不能冒充(甚至初始發(fā)信方后面想抵賴也不可能)。
完整性(Integrity)—— 這意味著收信者能夠證實自己得到的數(shù)據(jù)是完完整整、沒有經(jīng)第三方改動過的。
不可抵賴性(Non-repudiation)—— 防止發(fā)信方抵賴自己創(chuàng)建過、發(fā)送過某條消息。
譯者注:作者在這里提到的才算是現(xiàn)代密碼學(xué)研究的范圍。比如身份認(rèn)證和不可抵賴性,都是很重要的屬性,但是在實用中幾乎與加解密過程無關(guān),但對數(shù)字簽名的研究毫無疑問是密碼學(xué)的內(nèi)容。加解密的安全性跟機密性有關(guān),只是現(xiàn)代密碼學(xué)的一部分。
Cipher
密碼設(shè)計學(xué)是(通過加密)隱藏敏感數(shù)據(jù)的藝術(shù)和科學(xué)。它包括加密過程(就是在原始的 “原文” 上使用加密算法)和解密過程(就是在密文上使用算法,使之恢復(fù)到可讀的形式)。
要解釋什么是 Cipher,最好還是給你看幾個簡單的例子:
波利比烏斯密碼
波利比烏斯密碼(Polibius Cipher)也是一種字符替換型密碼。在我這個示例中,我用的是一個 6×6 的二維矩陣,可以把所有的大寫字母和數(shù)字 0 到 9 都包括進去。然后我們可以得出下表:
有了這個舉證,我們就可以開始代換了。比如,字母 “A” 可以表示成 “1 × 1”,或者 “X = 1,Y = 1”,甚至再簡化成 11。再舉例,字幕 “N” 可以表示成 “2 × 3”,或者 “X = 2,Y = 3”,簡化后就是 23。
來試試加密一條簡單的信息:
消息(原文):ENCRYPT ME 2 DAY
加密后的數(shù)據(jù)(密文):51–23–31–63–15–43–24 13–51 55 41–11–15
納入生僻字符后,這張表可以變得很大很復(fù)雜。而且,定期地隨機改變字符的位置也會讓暴力破解無從下手。這很像我們今天在高級計算型加密方法所用的多態(tài)性(polymorphism)。
凱撒密碼
歷史最悠久的加密算法之一就是以其創(chuàng)造者凱撒而聞名的凱撒密碼(Caeser Cipher)。他用這套方法來保證跟羅馬將軍們的安全通信,這樣羅馬帝國的敵人們就算拿到信也沒有辦法讀懂。凱撒密碼是加密的一種初級形式,很容易被破解,所以今天已經(jīng)基本不會用在任何安全用途中了。
從原理上來說,凱撒密碼就是重排字母表,不同的位移值也會使得編碼后的數(shù)據(jù)完全不同。位移值,顧名思義,就是通過讓字母左移或者右移一定位數(shù)來生成密文的數(shù)值。(譯者注:所以,在這里,大家可以把凱撒密碼理解成一種根據(jù)字母表順序的位移來加密的算法(cipher),而位移值就是那個 Key,密鑰。)
這里我們用右移 3 位的做法來看一個實際的例子:
英文原文:ENCRYPT ME
密文:HQFUBSW PH (解密時候要相應(yīng)左移 3 位才能解密)
上面這條消息可以通過嘗試所有可能的位移值來暴力破解:不斷嘗試新的位移值,直到解出來的原文看起來像樣子。更加復(fù)雜的密碼比如 Vigenere 密碼和 Gronsfeld 密碼也是用同樣的原理設(shè)計出來的。但是解密起來就很麻煩,因此每個字母都代表一個位移值。
維吉尼亞密碼表
在理解密碼設(shè)計學(xué)之前,我們先要了解加密算法的工作原理,因為它們是所有加密過程的基礎(chǔ)。速記是一種記錄隱藏信息的方法,實際上可以歸為古典密碼設(shè)計學(xué)一類,因為現(xiàn)代密碼設(shè)計學(xué)已經(jīng)成了 “計算機安全” 的代名詞。
多態(tài)性
多態(tài)性是密碼設(shè)計學(xué)中較為高級的部分,在計算機加密技術(shù)中最為常見。多態(tài)性指的是,一種加密方法在每次使用時都會產(chǎn)生不同的結(jié)果,而且在每次使用過后都會發(fā)生改變。多態(tài)性常見于計算機加密算法。也就是說,如果我們將相同的數(shù)據(jù)加密兩次,每次都會得到一個不同的加密結(jié)果。
我們用汽車鑰匙來打個比方?,F(xiàn)在,我們只需要在一個小巧的電子遙控設(shè)備上輕輕一按,就可以解鎖汽車了。當(dāng)你解鎖車門時,你或許從來沒思考過其中的原理 —— 你按下按鈕的那一刻,會有一段特定的數(shù)據(jù)發(fā)送到你的車上,一旦匹配成功,車門就解鎖了。要實現(xiàn)這點,最簡單的方法是為每個遙控設(shè)備設(shè)定不同的頻率。但是,這樣管理起來會很麻煩。因此,所有遙控設(shè)備都采用了同樣的波長,但是使用不同的算法(滾動碼)來生成發(fā)送給汽車的數(shù)據(jù)。這些就是多態(tài)性算法。
由于這些算法每次使用過后都會發(fā)生改變,很難對其進行逆向工程。即使有黑客破解了算法(首先,破解多態(tài)性算法本身難度就很大),他還得找到與該算法匹配的汽車/鑰匙(這又是一項復(fù)雜的任務(wù))。
-
密碼
+關(guān)注
關(guān)注
9文章
193瀏覽量
30986 -
加密算法
+關(guān)注
關(guān)注
0文章
218瀏覽量
25846
發(fā)布評論請先 登錄
貼片三極管上的印字與真實名稱的對照表詳細(xì)說明
28nm制程!國產(chǎn)抗量子密碼芯片迎重磅新品
調(diào)試變頻器詳細(xì)說明
抵御量子計算威脅:航芯「抗量子密碼加密簽名方案」為信息安全筑起新防線

UHV系列雷電沖擊電壓發(fā)生器試驗裝置詳細(xì)說明使用
深入解析ECC256橢圓曲線加密算法

評論