密碼學(xué)
完整性---信息僅能被合法用戶訪問(wèn)猖凛,不能泄漏給非法用戶,實(shí)體或過(guò)程
保密性---自由只有在授權(quán)方或者以授權(quán)方式進(jìn)行修改绪穆,所有資源沒(méi)有授權(quán)則不能修改辨泳。保證數(shù)據(jù)完整性,就是保證數(shù)據(jù)不能被偶然或者蓄意編輯玖院,或者攻擊
可用性---資源只有在適當(dāng)?shù)臅r(shí)候被授權(quán)訪問(wèn)菠红,并按需求使用。
密碼學(xué)基本概念-密碼體制难菌、古典密碼及破譯方法试溯、量子密碼
分組密碼-分組密碼概念、DES算法郊酒、AES算法遇绞,SM4算法、分組密碼工作模式
序列密碼-線性反饋移位寄存器燎窘、RC4摹闽、ZUC
Hash函數(shù)-Hash函數(shù)的安全性、MD5算法褐健、SHA算法付鹿、SM3算法、HMAC算法
公鑰密碼體制-Diffe-Hellman與ElGamal體制蚜迅、橢圓曲線密碼
數(shù)字簽名-數(shù)字簽名
認(rèn)證-身份認(rèn)證舵匾、報(bào)文認(rèn)證
密鑰管理-對(duì)稱密鑰分配、非對(duì)稱密鑰分配
通用秘密體系:
1谁不、明文空間M-全體明文集合
2坐梯、密文空間C-全體密文集合
3、加密算法E-一組明文M到密文C的加密變換
4刹帕、解密算法D-一組密文C到明文M的加密變換
5烛缔、密鑰空間K-包含加密密鑰和解密密鑰的全體密鑰集合
窮舉攻擊-對(duì)截獲到的密文嘗試遍歷所有可能的密鑰,直到獲取正確的明文轩拨;或者使用固定的密鑰對(duì)所有的可能的明文加密践瓷,直到與截獲到的密文一致
統(tǒng)計(jì)分析攻擊-利用已經(jīng)獲取到的明文與明文已知統(tǒng)計(jì)規(guī)律進(jìn)行破譯的方法
數(shù)學(xué)分析攻擊-密碼分析者針對(duì)加解密算法的數(shù)學(xué)基礎(chǔ)和密碼學(xué)特征,通過(guò)數(shù)學(xué)求解的方法來(lái)破譯密碼亡蓉。
僅知密文-通過(guò)截獲的密文破解密碼
已知明文-已知明文與密文對(duì)晕翠,來(lái)破解密碼
選擇明文-不僅可以得到一些明文與密文對(duì),還能選擇被加密的明文,并獲取相應(yīng)的密文
選擇密文-選擇一些密文淋肾,并得到相應(yīng)的明文
置換密碼-明文字母不變硫麻,但位置被打亂
代替密碼-建立一個(gè)替換表,加密時(shí)通過(guò)查表將明文每個(gè)字母替換為相應(yīng)字符樊卓,生成密文拿愧。
加法密碼-加法密碼的映射函數(shù)為:f(ai)=bi=aj,j=i+k mod n, k為正整數(shù)且 0< k < n。i j 為小字母
乘法密碼-需要預(yù)先知道消息元素的個(gè)數(shù)碌尔,加密的過(guò)程其實(shí)就是對(duì)明文消息所組成的數(shù)組下標(biāo)進(jìn)行加密浇辜,然后用明文消息中加密后位置所對(duì)應(yīng)的明文字符代替。映射函數(shù)為:f(ai)=bi=aj j = i*k mod n k為正整數(shù)且 0< k < n唾戚。i j 為小字母
仿射密碼-加法密碼和乘法密碼的結(jié)合柳洋,函數(shù)為:f(ai)=bi=aj ,j=(ak1+k0) mod n,其中k1和n是互素的。
窮舉分析
統(tǒng)計(jì)分析
量子的疊加性和相干性原理具有計(jì)算能力叹坦。 實(shí)用的量子算法包括Shor算法和Grover算法熊镣,兩種算法均可對(duì)RSA,EIGamal募书,ECC密碼及DH密鑰協(xié)商進(jìn)行有效攻擊绪囱。
分組密碼又稱對(duì)稱密碼,使用分組密碼加密時(shí)莹捡,先對(duì)明文進(jìn)行分組毕箍,每個(gè)分組長(zhǎng)度相同,然后對(duì)每個(gè)組的明文進(jìn)行加密得到等長(zhǎng)的密文道盏。
DES算法分組為64比特而柑,使用56比特密鑰對(duì)64比特明文進(jìn)行16輪加密,得到64比特密文荷逞。
密鑰64比特媒咳,使用56比特加密,另8比特做奇偶校驗(yàn)种远。
DES 使用對(duì)合運(yùn)算涩澡,即f = f-1,1為上標(biāo)
異或運(yùn)算:⊕
加密過(guò)程:
? ? 1坠敷、子密鑰生成妙同,64位子密鑰經(jīng)過(guò)子密鑰算法產(chǎn)生16個(gè)子密鑰k1...k16,分別在1-16次加密迭代中使用
? ? 2膝迎、初始置換IP粥帚,64位明文經(jīng)過(guò)置換IP表,被打亂重新排列
? ? 3限次、初始置換結(jié)果分為兩組芒涡,L0(32位) 柴灯,R0(32位)
? ? 4、第一次迭代加密:使用加密函數(shù)f和子密鑰k1费尽,對(duì)R0進(jìn)行加密赠群,然后與L0進(jìn)行模2運(yùn)算(異或運(yùn)算),記為L(zhǎng)0⊕f(R0旱幼,k1)查描,結(jié)果成為第二次運(yùn)算的R1,R0成為第二次迭代的L1
? ? 5柏卤、第2-16次迭代冬三,分別使用子密鑰K2-K16,加密結(jié)果與第一次加密迭代相同
子密鑰產(chǎn)生:
? ? 64位密鑰經(jīng)過(guò)置換選擇1闷旧,循環(huán)左移,置換選擇2钧唐,產(chǎn)生16個(gè)長(zhǎng)為48位的子密鑰k
? ? 1-k16忙灼。
加密函數(shù):
? ? 加密函數(shù)f(Ri-1,ki),是DES算法的核心算法,函數(shù)包含選擇運(yùn)算E钝侠,異或運(yùn)算该园,代替函數(shù)組S(S盒變換),置換運(yùn)算P帅韧。
? ? 1)里初,選擇運(yùn)算E與異或運(yùn)算
? ? ? ? 選擇運(yùn)算E把Ri-1的32位擴(kuò)展到48位,并與48位Ki子密鑰進(jìn)行異或運(yùn)算忽舟。
? ? 2)双妨,S盒變換
? ? ? ? 一種壓縮替換,通過(guò)S盒將48位輸入變成32位輸出叮阅。共有8個(gè)S盒刁品,并行運(yùn)算。
? ? 3)浩姥,置換運(yùn)算P
? ? ? ? 將S盒輸出的32位再進(jìn)行一次置換挑随。
1,密鑰太短勒叠,經(jīng)不起窮舉攻擊
2兜挨,存著弱密鑰和半弱密鑰
? ? 弱密鑰:產(chǎn)生的子密鑰與其本身相同。
? ? 半弱密鑰:產(chǎn)生的子密鑰有些相同眯分,但不完全相同拌汇。
? ? 弱密鑰的產(chǎn)生原理:C和D中的數(shù)據(jù)進(jìn)行循環(huán)移位后,得到的結(jié)果仍然是重復(fù)的數(shù)據(jù)弊决。
3DES算法是DES的擴(kuò)展担猛,執(zhí)行了三次DES。 有兩種實(shí)現(xiàn)方式: 1,第一傅联,三次使用相同的密鑰先改,密鑰長(zhǎng)度為128(112位有效) 2,三次使用不同的密鑰蒸走,密鑰長(zhǎng)度192位(168位有效) 中國(guó)人民銀行智能卡技術(shù)規(guī)范支持3DES
前路實(shí)在漫長(zhǎng)仇奶,也不知道出口是否明亮,只能就這樣堅(jiān)持著比驻,不斷的遇到問(wèn)題该溯,解決問(wèn)題,還好沒(méi)有解決不了的問(wèn)題别惦,只是時(shí)間問(wèn)題狈茉,抑或是能力問(wèn)題,能力會(huì)提升起來(lái)的掸掸,時(shí)間也會(huì)有所回報(bào)氯庆。
人的一生確實(shí)會(huì)遇到許多困難,甚至是絕望的時(shí)刻扰付,可是就此放棄堤撵,真的不甘心,我不想像一粒塵埃一樣消散在歷史長(zhǎng)河里羽莺,卑微如此实昨,我不甘心。
所以盐固,我要像一個(gè)孤獨(dú)的俠客荒给,歷經(jīng)重重困難,砍到每個(gè)擋在我面前的敵人刁卜,沖破他們锐墙,撕裂他們,碾碎他們长酗。
AES---advanced encryption standard
Rijndael算法被選為AES算法
AES明文分組長(zhǎng)度可以是溪北,128位,192位夺脾,256位之拨。
加法:多項(xiàng)式洗漱按位模加
乘法:兩個(gè)多項(xiàng)式相乘,然后模m(x)
乘法逆元
乘法的計(jì)算機(jī)實(shí)現(xiàn)(X乘法咧叭,xtime())蚀乔,xtime()運(yùn)算可以方便在計(jì)算機(jī)上實(shí)現(xiàn)乘法運(yùn)算
1、最初的子密鑰加---明文分組與種子密鑰按位進(jìn)行異或運(yùn)算
2菲茬、前9輪加密操作
? ? 1吉挣、字節(jié)代換---查詢S盒表派撕。
? ? ? ? S盒的設(shè)計(jì)原理是將字節(jié)非線性的變換為另一個(gè)字節(jié):
? ? ? ? ? ? 1、求乘法逆
? ? ? ? ? ? 2睬魂、仿射變換
? ? 2终吼、行移位變換---對(duì)矩陣中的每行,規(guī)定第一行循環(huán)左移0個(gè)字節(jié)氯哮,第二行循環(huán)左移1個(gè)字節(jié)际跪,第三行循環(huán)左移2個(gè)字節(jié),第四行循環(huán)左移3個(gè)字節(jié)喉钢。
? ? 3姆打、列混淆變換---把每列都乘以固定的多項(xiàng)式
? ? 4、子密鑰加---與第一步相同肠虽,結(jié)果與該輪子密鑰異或運(yùn)算
3幔戏、第10輪加密操作---與前9輪相同,唯一缺少混淆變換
AES不是對(duì)合運(yùn)算税课,因此解密與加密算法不同
1闲延、行位移求逆 2、字節(jié)代換求逆 3伯复、列混淆求逆
我國(guó)密碼管理局公布的無(wú)線局域網(wǎng)產(chǎn)品使用的SM4算法
可以抵御差分攻擊慨代,線性攻擊
第一次官方公布的密碼算法
分組長(zhǎng)度和密鑰長(zhǎng)度都是128位邢笙,處理8位和32位數(shù)據(jù)單位
屬于對(duì)合運(yùn)算啸如,加密和解密相同,只是輪使用的密鑰順序相反
1氮惯、模2加
2叮雳、循環(huán)左移
5種工作模式
1,ECB---電碼本模式妇汗,每個(gè)分組使用相同密鑰帘不。
2,CBC---分組鏈接模式
? ? ? ? 1杨箭,密文鏈接方式---明文分組與前一密文分組異或寞焙,不利于并行計(jì)算
? ? ? ? 2,明密文鏈接方式---前與密文分組與前一明文分組異或互婿,再與當(dāng)前明文分組異或
3捣郊,OFB---輸出反饋模式
4,CFB---密碼反饋模式
5慈参,CTR---計(jì)數(shù)器模式呛牲,把分組密碼轉(zhuǎn)為序列密碼。
又稱流密碼驮配,原理是明文流與密鑰流按順序逐比特進(jìn)行異或運(yùn)算娘扩,從而產(chǎn)生密文流着茸,屬于對(duì)合運(yùn)算。
序列密碼的關(guān)鍵是保持通信雙方的精確同步琐旁。
算法簡(jiǎn)單涮阔,速度快,實(shí)現(xiàn)容易旋膳,應(yīng)用廣泛澎语。
具體步驟:
? ? 1、密鑰調(diào)度算法
? ? 2验懊、偽隨機(jī)子密碼生成算法
祖沖之算法擅羞,我國(guó)自主設(shè)計(jì)的加密和完整性算法,是一個(gè)同步流算法义图。
對(duì)稱算法這塊并沒(méi)有記的很詳細(xì)减俏,一來(lái)是圖太多,我不會(huì)畫(huà)圖碱工,二來(lái)是工作接觸這塊比較多娃承,比較熟悉。
用于構(gòu)建數(shù)據(jù)的指紋怕篷,標(biāo)識(shí)數(shù)據(jù)历筝,將任意長(zhǎng)度的數(shù)據(jù)輸出為固定長(zhǎng)度的消息,通過(guò)摘要算法廊谓。
計(jì)算函數(shù)又叫摘要算法梳猪,散列算法,哈希算法蒸痹。
特性:
? ? 1春弥,單向性,不可逆向運(yùn)算叠荠,知道摘要計(jì)算結(jié)果匿沛,不能計(jì)算出原數(shù)據(jù)
? ? 2,弱抗碰撞性
? ? 3榛鼎,強(qiáng)抗碰撞性
攻擊方法:
? ? 1逃呼,窮舉工具:典型的有“生日攻擊”,產(chǎn)生若干明文消息者娱,計(jì)算出消息摘要抡笼,然后進(jìn)行對(duì)比,找到碰撞肺然。
? ? 2蔫缸,利用散列函數(shù)的代數(shù)結(jié)構(gòu):攻擊函數(shù)的弱性質(zhì),有中間相遇攻擊际起,修正分組攻擊拾碌,差分分析攻擊
輸入長(zhǎng)度小于2的64次方比特任意消息吐葱,輸出160比特摘要。
是國(guó)家密碼管理局發(fā)布的安全密碼雜湊算法校翔,采用Merkle-Damgard結(jié)構(gòu)弟跑,把1-2的64次方比特消息,經(jīng)過(guò)填充和迭代壓縮防症,生成256長(zhǎng)度的摘要孟辑。 可用于數(shù)字簽名,驗(yàn)證蔫敲,消息認(rèn)證碼饲嗽,偽隨機(jī)數(shù)生成等。
一種基于密鑰和散列函數(shù)進(jìn)行消息認(rèn)證的方法奈嘿,要求通信雙方共享密鑰貌虾,約定算法。
公鑰密碼裙犹,加密和解密才有不同密鑰尽狠,分別叫做公鑰和私鑰。
基于大素?cái)?shù)分解叶圃,核心是模冪運(yùn)算袄膏。
RSA算法可以實(shí)現(xiàn)數(shù)字簽名和數(shù)據(jù)加密。
注:
加密:公鑰加密掺冠,私鑰解密
簽名:私鑰簽名沉馆,公鑰驗(yàn)簽
RSA密鑰長(zhǎng)度大于1024位被認(rèn)為是安全的。
這個(gè)地方符號(hào)比較難寫(xiě)赫舒,可以搜集一些例子悍及。
簡(jiǎn)稱DH密鑰交換體制闽瓢,目的是完成通信雙方對(duì)稱密鑰的交互接癌,在不安全環(huán)境下也不會(huì)造成密鑰泄露。 流程:
1椭符、Ai把密鑰(隨機(jī)產(chǎn)生2<=x
2荔燎、Bi把密鑰(隨機(jī)產(chǎn)生2<=y
1销钝、A結(jié)合產(chǎn)生密鑰和受到的B的密鑰有咨,經(jīng)過(guò)計(jì)算得到公共密鑰
2、B同樣進(jìn)行計(jì)算蒸健,得到相同的密鑰座享。
對(duì)DH的改進(jìn)婉商,是基于離散對(duì)數(shù)問(wèn)題的公開(kāi)密鑰體制。 離散對(duì)數(shù)問(wèn)題是指:對(duì)于比較大的整數(shù)渣叛,y丈秩,p,g淳衙,求出一個(gè)整數(shù)滿足y=g2mod p 是非常困難的蘑秽。
基于費(fèi)馬大定理:當(dāng)n>2時(shí),xn+yn=zn沒(méi)有正整數(shù)解箫攀。
橢圓曲線的計(jì)算比RSA復(fù)雜的多肠牲,密鑰比RSA短。
一般認(rèn)為160位長(zhǎng)橢圓曲線密碼相當(dāng)于1024位RSA密碼的安全性靴跛。
我國(guó)二代身份證采用256位橢圓曲線密碼
確保消息接收者是預(yù)期目標(biāo)埂材,并且內(nèi)容沒(méi)有被篡改。
包括簽名和驗(yàn)簽兩個(gè)方面汤求。
簽名:
1俏险、A使用摘要算法,計(jì)算消息摘要扬绪。
2竖独、A使用私鑰對(duì)消息摘要進(jìn)行加密,將加密摘要和原文發(fā)送給B
驗(yàn)簽:
1挤牛、受到原文和加密摘要后莹痢,使用相同摘要算法,對(duì)原文進(jìn)行摘要墓赴。
2竞膳、使用A公鑰對(duì)加密摘要解密
3、對(duì)比兩個(gè)摘要诫硕,如果一致坦辟,則沒(méi)有被篡改。
用于證實(shí)某件事情是否真實(shí)或有效章办。
1锉走,口令認(rèn)證
2,生物特征認(rèn)證
保證通信雙方嚴(yán)重每個(gè)報(bào)文的發(fā)送方藕届,接收方挪蹭,內(nèi)容,時(shí)間的真實(shí)性和完整性休偶。
原則:
全程安全原則
最小權(quán)限原則
責(zé)任分離原則
密鑰分級(jí)原則
密鑰更新原則
分為三級(jí):
初級(jí)密鑰:用于加解密數(shù)據(jù)梁厉,一次一密,必須受到高級(jí)密鑰的保護(hù)踏兜。
二級(jí)密鑰:保護(hù)初級(jí)密鑰词顾,生存周期較長(zhǎng)只冻。
主密鑰:用于保護(hù)二級(jí)密鑰和初級(jí)密鑰,生成周期很長(zhǎng)计技。
Kerberos協(xié)議喜德,密鑰分配中心的核心,
1垮媒,驗(yàn)證服務(wù)器
2舍悯,票據(jù)授權(quán)服務(wù)器
1,PKI一組規(guī)則睡雇,過(guò)程萌衬,人員,設(shè)施,軟件,硬件的集合危纫。
有五個(gè)組成部分:證書(shū)申請(qǐng)者铸磅,RA注冊(cè)中心锐朴,CA認(rèn)證中心,證書(shū)庫(kù),和證書(shū)信任方。
1歌径,數(shù)字證書(shū)
采用公鑰體制進(jìn)行加密和解密,每個(gè)用于有一個(gè)私鑰用于解密和簽名亲茅,還有一個(gè)公鑰用于加密和驗(yàn)證回铛。
密碼學(xué)部分到此就算是完了,也不是很詳細(xì)克锣,我接觸比較多茵肃,所以沒(méi)太過(guò)多深挖,下一部分是網(wǎng)絡(luò)安全袭祟。