一、密碼學(xué)的目標(biāo)
1.可用性;
2.機(jī)密性;
3.完整性;
除了上述信息安全的三大核心原則外,密碼工具還可提供其他幾個(gè)好處。
4.不可抵賴性:
防止接收者篡改消息并謊稱消息的原始狀態(tài)就是如此。只有公鑰(或非對(duì)稱密鑰)密碼系統(tǒng)才提供不可否認(rèn)性;
5.身份認(rèn)證:
主要通過密鑰控制實(shí)現(xiàn),因?yàn)橹挥姓莆樟嗣荑€的人才能加密消息;
6.訪問控制:
只有有權(quán)訪問正確密碼密鑰的人才能進(jìn)行訪問。
二、術(shù)語
1.明文:P;
2.密文:C;
3.Kerchoff 原則:
算法應(yīng)當(dāng)公開,但是所有密鑰都應(yīng)當(dāng)保密。(AugusteKerckhoff于1883年發(fā)表了一篇論文,指出一個(gè)密碼系統(tǒng)唯一需要保密的部分應(yīng)當(dāng)是密鑰。他聲稱算法應(yīng)當(dāng)公開,并且斷言:如果安全基于過多的秘密,那么就會(huì)有更多的脆弱性可供利用。)
4.單向函數(shù)(One-Way Functions):
不可能逆向運(yùn)算出原始值的函數(shù)。理論上沒有,實(shí)際上很多,因?yàn)槿藗冞€沒算出破解函數(shù)來。
5.隨機(jī)數(shù)(Nonce)/初始向量(IV):
這是一個(gè)與消息長(zhǎng)度相同的隨機(jī)比特串,并且與原始信息相異或。在每次使用相同密鑰加密相同的消息時(shí),密文總不一樣。
6.零知識(shí)證明(Zero-Knowledge Proof):
不告訴你密碼是什么,但是我可以通過開門來證明我擁有這個(gè)密碼。
7.分割知識(shí)(Split Knowledge):
和職責(zé)分離差不多。要得到一個(gè)密鑰、或者要開一個(gè)門,不能讓一個(gè)系統(tǒng)搞定、或一個(gè)人搞定;必須要幾個(gè)系統(tǒng)或人同時(shí)工作才行。避免密鑰被輕易篡改。
8.工作函數(shù)/工作因素(Work Function/Work factor),即工作量:工作函數(shù)或工作因數(shù)這個(gè)概念,用來衡量密碼的強(qiáng)度或解密的難度,一般用成本或時(shí)間來表示。也就是暴力破解一個(gè)密碼所需的計(jì)算時(shí)間。
9.加密算法的簡(jiǎn)寫
在一些資料中,你可能會(huì)遇到RC5-w/r/b或RC5-32/12/16 這類符號(hào)。它是說明算法配置的簡(jiǎn)略表達(dá)形式。
w=word=分組長(zhǎng)度(字長(zhǎng)),單位為位,長(zhǎng)度可為16、32或64位。
r=round=轉(zhuǎn)換輪數(shù),其值介于0——255之間。
b=bit=密鑰長(zhǎng)度,16字節(jié)為128位。
三、邏輯運(yùn)算
1.與,AND,∧
雙真才為真,其它為假
2.或,OR,∨
有真就是真,雙假才是假。
3.非,NOT,!,~
取反。
4.異或,ExclusiveOR,XOR,⊕。最重要的計(jì)算機(jī)運(yùn)算。
不同就是真,相同就是假。
5.模,MOD。最重要的密碼學(xué)運(yùn)算。
求整除后的余數(shù)。
四、什么是密鑰
早期密碼系統(tǒng)的算法是必須保密的,沒什么所謂的密鑰;算法一旦公開或被破解,就沒任何保密性了。而現(xiàn)代密碼系統(tǒng)的算法是全公開的,安全性靠密鑰來實(shí)現(xiàn);也就是說各類系統(tǒng)都使用相同原理的“鎖”,給不同的用戶主體配不同的“鑰匙”就行了。密鑰就是一長(zhǎng)串的字符,長(zhǎng)度是2的很多次方,很長(zhǎng)很長(zhǎng)。
密鑰聚類(Key Clustering):
使用相同加密算法但不同密鑰對(duì)同一明文進(jìn)行加密產(chǎn)生相同密文的情況。這種情況實(shí)際減小了密鑰空間,從而降低了密碼強(qiáng)度。
密碼術(shù)(cyptograpgy):
通過加密和解密使通信雙方對(duì)外界隱藏和驗(yàn)證通信信息的技術(shù)或科學(xué)。AIO用這個(gè)詞,其它其它教材叫“密碼學(xué)”。
密碼分析(cryptanalysis):
在不知道加密算法中使用的原始密鑰的情況下,把密碼轉(zhuǎn)換成明文的和運(yùn)算。
密碼學(xué)(cryptology):
研究密碼術(shù)和密碼分析的科學(xué)。