對(duì)課程期末考試的個(gè)人復(fù)習(xí)總結(jié)
一、概述
- 三個(gè)目標(biāo)(CIA):機(jī)密性(防泄漏)棺牧,完整性(防篡改)富俄,可用性
其他性質(zhì):真實(shí)性(認(rèn)證)、責(zé)任可追溯性 - OSI安全框架=X.800:
1)為有效評(píng)價(jià)安全需求绕辖,并進(jìn)行評(píng)估和選擇,管理員需要定義安全需求并給出措施擂红。
(為了有效評(píng)價(jià)一個(gè)機(jī)構(gòu)的安全需求仪际,并對(duì)各種安全產(chǎn)品和策略進(jìn)行評(píng)估和選擇,負(fù)責(zé)安全的管理員需要以某種系統(tǒng)的方法來(lái)定義安全需求并描述滿足這些需求的措施)
2)定義和提供安全需求的系統(tǒng)化方法
3)提供學(xué)習(xí)概貌
4)關(guān)注三個(gè)方面:安全攻擊昵骤,安全機(jī)制树碱,安全服務(wù) -
安全攻擊:任何危及信息系統(tǒng)安全的行為
1)被動(dòng)攻擊:
了解或利用系統(tǒng)信息,不影響系統(tǒng)資源变秦。
2種:內(nèi)容泄露:未經(jīng)許可泄露信息給攻擊者成榜,不修改信息
流量分析:確定主機(jī)身份和位置,判斷通信性質(zhì)
常見(jiàn)手段:搭線監(jiān)聽(tīng)蹦玫,無(wú)線截獲
特點(diǎn):不易發(fā)現(xiàn)赎婚,重在預(yù)防(虛擬專用網(wǎng)VPN,加密保護(hù))
2)主動(dòng)攻擊:
改變系統(tǒng)資源樱溉,影響系統(tǒng)運(yùn)作挣输;涉及數(shù)據(jù)流的篡改或產(chǎn)生
4種:假冒;重放饺窿;篡改消息歧焦;拒絕服務(wù)
特點(diǎn):能檢測(cè)移斩,不易預(yù)防肚医,措施(自動(dòng)審計(jì)绢馍、入侵檢測(cè)和完整性恢復(fù)) -
安全機(jī)制:檢測(cè)、阻止攻擊或從攻擊狀態(tài)恢復(fù)到正常狀態(tài)的過(guò)程(或?qū)崿F(xiàn)該過(guò)程的設(shè)備)
保護(hù)系統(tǒng)免受偵聽(tīng)肠套,阻止安全攻擊舰涌,恢復(fù)系統(tǒng)的機(jī)制。
特點(diǎn):沒(méi)有單一機(jī)制能提供所有安全服務(wù)你稚;一個(gè)機(jī)制是其他機(jī)制的基礎(chǔ) -
安全服務(wù):加強(qiáng)數(shù)據(jù)處理系統(tǒng)瓷耙、信息傳輸?shù)陌踩缘囊环N處理過(guò)程或通信服務(wù)。
目的在于利用一種或多種安全機(jī)制阻止安全攻擊
安全服務(wù)通過(guò)安全機(jī)制來(lái)實(shí)現(xiàn)刁赖。沒(méi)有單一的安全機(jī)制可以實(shí)現(xiàn)所有的安全服務(wù)搁痛,一個(gè)安全機(jī)制往往是構(gòu)成其他安全機(jī)制的基礎(chǔ)
1)X.800:為系統(tǒng)協(xié)議層提供的服務(wù),保證安全性
可認(rèn)證性宇弛,訪問(wèn)控制鸡典,機(jī)密性,完整性枪芒,不可否認(rèn)性彻况,可用性
2)RFC 2828:系統(tǒng)提供的保護(hù)資源的服務(wù)
三種基本安全服務(wù):認(rèn)證、訪問(wèn)控制舅踪、數(shù)據(jù)保密性
其他安全服務(wù):數(shù)據(jù)完整性纽甘、不可否認(rèn)性 -
認(rèn)證:保證通信的真實(shí)性。保證通信的實(shí)體是它所聲稱的實(shí)體抽碌。
對(duì)等實(shí)體認(rèn)證:用于邏輯連接時(shí)為連接的實(shí)體的身份提供可信性
數(shù)據(jù)源認(rèn)證:在無(wú)連接傳輸時(shí)保證收到的信息來(lái)源是聲稱的來(lái)源
二悍赢、分組密碼:DES和AES
定義:把明文分組當(dāng)作整體,產(chǎn)生一個(gè)等長(zhǎng)的密文分組货徙,并且可逆
設(shè)計(jì)思想:擴(kuò)散(通過(guò)置換)泽裳,混淆(通過(guò)代換)
- 擴(kuò)散:將明文及密鑰的影響盡可能迅速地散布到較多個(gè)輸出的密文中(將明文冗余度分散到密文中)
- 混淆:使作用于明文的密鑰和密文之間的關(guān)系復(fù)雜化,是明文和密文之間破婆、密文和密鑰之間的統(tǒng)計(jì)相關(guān)特性極小化涮总,從而使統(tǒng)計(jì)分析攻擊不能奏效
- 置換:明文通過(guò)某種處理得到類型不同的映射(eg:重新排列字符)
- 代換:明文由其它的字母、數(shù)字或符號(hào)所代替(eg:凱撒密碼)
AES
- 使用Rijndael算法(分組密碼算法祷舀,分組長(zhǎng)度和密鑰長(zhǎng)度相互獨(dú)立瀑梗,都可以改變)
-
AES參數(shù)AES參數(shù).png
- 步驟:字節(jié)代換(代換),行移位(置換)裳扯,列混淆(代換)抛丽,輪密鑰加(代換)
- 字節(jié)代換:查表。將高4位作為行值饰豺,低4位作為列值亿鲜,從16×16的S-BOX中的對(duì)應(yīng)位置取出元素作為輸出
- 行移位:第n行循環(huán)左移n-1字節(jié)(也使得某列的4個(gè)字節(jié)被擴(kuò)展到了4個(gè)不同的列)
- 列混淆:按列操作,每一列分別與矩陣相乘,得到一列新數(shù)據(jù)蒿柳,替代原來(lái)的列(基本運(yùn)算均為GF(2^8)上的運(yùn)算)
- 輪密鑰加:128位的狀態(tài)位與128位的輪密鑰異或(矩陣與密鑰矩陣異或)
- AES的每一步操作都可逆饶套;解密算法與加密算法的結(jié)構(gòu)不相同;解密算法比加密算法效率要低
- 輪密鑰加開(kāi)始垒探,輪密鑰加結(jié)束妓蛮;僅在輪密鑰加階段使用密鑰
- 過(guò)程:第0輪是輪密鑰加,后n-1輪是4個(gè)步驟圾叼,最后1輪只有字節(jié)代替蛤克、行移位、輪密鑰加3個(gè)階段(每輪輸入1個(gè)或多個(gè)4×4矩陣夷蚊,輸出1個(gè)4×4矩陣)(解密過(guò)程最后1輪也只有3個(gè)階段)
- AES優(yōu)點(diǎn)/原則:
國(guó)際加密標(biāo)準(zhǔn)构挤;
抗攻擊能力強(qiáng)(線性攻擊,差分攻擊)
結(jié)構(gòu)簡(jiǎn)單惕鼓,效率高儿倒,應(yīng)用廣泛 -
密鑰調(diào)度算法
其中4×4(16個(gè)字節(jié)/4個(gè)字)的k矩陣是輸入;g是一個(gè)復(fù)雜的函數(shù)呜笑,每逢生成下標(biāo)是4的倍數(shù)的字夫否,就要用到g函數(shù)
密鑰調(diào)度算法 - G函數(shù)
字變成字節(jié),字節(jié)循環(huán)左移1位
利用S-BOX進(jìn)行字節(jié)代換
和輪常量Rcon[j]= (Rc[ j ],0,0,0)異或叫胁;其中Rc[1]=1凰慈,Rc[ j ]=2×Rc[ j-1] (GF(28)上的運(yùn)算) -
GF(28)上的運(yùn)算
加法:異或
乘法:GF(2^8)乘法
乘法逆元:A的乘法逆元A'输钩,滿足A×A'=1 - S-BOX構(gòu)造(高字節(jié)是行豺型,低字節(jié)是列)
先求出{xy}的逆(十六進(jìn)制){xy}-1,{00}的逆是{00}本身
將{xy}-1以此循環(huán)左移1买乃、2姻氨、3、4位得到a剪验,b肴焊,c,d
S-BOX中對(duì)應(yīng)的值 = {xy}-1 ⊕ a ⊕ b ⊕ c ⊕ d ⊕ {63} - 異或的性質(zhì)
{03}·x = ( {02}·x ) ⊕ x
分組密碼工作模式:
定義:是一項(xiàng)增強(qiáng)密碼算法或者使算法適應(yīng)具體應(yīng)用的技術(shù)功戚。(分組密碼是加密固定長(zhǎng)度的分組娶眷,而工作模式提供了加密任意數(shù)量的明文的方法)
模式 | 描述 | 典型應(yīng)用 |
---|---|---|
電碼本(ECB) | 用相同的密鑰分別對(duì)明文分組獨(dú)立加密(要填充) | 單個(gè)數(shù)據(jù)的傳輸(eg:加密密鑰) |
密文分組鏈接(CBC) | 加密算法的輸入是上一個(gè)密文組和下一個(gè)明文組的異或。第一塊明文和初始向量IV異或(要填充) | 面向分組的通用傳輸啸臀、認(rèn)證 |
密文反饋(CFB) | 移位寄存器初始值IV届宠,加密后取結(jié)果的前s位和s位明文異或,得到第一輪密文(s位)。移位寄存器左移s位豌注,低字節(jié)補(bǔ)充s位的上一輪密文伤塌;作為新的加密算法輸入 | 面向數(shù)據(jù)流的通用傳輸、認(rèn)證 |
輸出反饋(OFB) | 與CFB類似幌羞,只是加密算法的輸入是上一次加密的輸入,且使用整個(gè)分組而不僅僅使用s位 | 噪聲信道上的數(shù)據(jù)流的傳輸(eg:衛(wèi)星通信) |
計(jì)數(shù)器(CTR) | 每個(gè)明文分組都與一個(gè)經(jīng)過(guò)加密的計(jì)數(shù)器相異或竟稳。對(duì)每個(gè)后續(xù)分組計(jì)數(shù)器遞增 (模2b属桦,b為分組長(zhǎng)度),最后一個(gè)分組僅用剩下的位數(shù)做異或 | 面向分組的通用傳輸他爸、用于高速需求 |
CTR優(yōu)點(diǎn):硬件軟件效率高(并行加密)聂宾;基本加密解密不依靠明文密文,因此可以進(jìn)行預(yù)處理诊笤;加密數(shù)據(jù)塊的隨機(jī)訪問(wèn)系谐;安全;簡(jiǎn)單
三讨跟、密碼學(xué) 公鑰
- 三種誤解:
1)公鑰密碼比傳統(tǒng)密碼安全(沒(méi)有誰(shuí)比誰(shuí)安全纪他,安全性只依賴于密鑰長(zhǎng)度和破譯密文所需的計(jì)算量)
2)公鑰密碼是通用方法,傳統(tǒng)密碼已經(jīng)過(guò)時(shí)(相反晾匠,公鑰密鑰所需的計(jì)算量大茶袒,只能用在密鑰管理和簽名這類應(yīng)用中)
3)公鑰密碼實(shí)現(xiàn)密鑰分配簡(jiǎn)單 - 解決的問(wèn)題
1)密鑰交換
2)加密解密
3)數(shù)字簽名 - 組成成分
1)明文、密文
2)公鑰凉馆、私鑰:算法的輸入薪寓。這對(duì)密鑰中一個(gè)用于加密,一個(gè)用于解密澜共。加密算法執(zhí)行的變換依賴于公鑰或者私鑰向叉。(任意一個(gè)都可用來(lái)加密,另一個(gè)用來(lái)解密)
3)加密算法嗦董、解密算法 -
公鑰密碼體制滿足的要求
一般要求:
1)同一算法用于加密和解密母谎,但加密和解密用不同密鑰
2)發(fā)送方擁有加密或解密密鑰,而接收方擁有另一密鑰
安全性要求:
1)兩個(gè)密鑰之一必須是保密的
2)若沒(méi)有其他信息京革,則解密消息是不可能销睁,至少是不可行的
3)知道算法、其中一個(gè)密鑰存崖、若干密文冻记;但不足以確定另一個(gè)密鑰
對(duì)公鑰密鑰的要求:
1)產(chǎn)生一對(duì)密鑰在計(jì)算上是容易的
2)用公鑰和明文,發(fā)送方產(chǎn)生相應(yīng)的密文在計(jì)算上是容易的
3)接收方用私鑰解密得到明文的過(guò)程来惧,在計(jì)算上是容易的冗栗。
4)有公鑰,攻擊者確定私鑰在計(jì)算上不可行
5)有公鑰、密文隅居,攻擊者要得到明文在計(jì)算上不可行
6)加密函數(shù)和解密函數(shù)的順序可以交換(用公鑰解密私鑰加密的東西和用私鑰解密公鑰加密的東西钠至,是一樣的) - 數(shù)字簽名:用密鑰對(duì)消息的認(rèn)證符進(jìn)行加密,加密的結(jié)果可作為數(shù)字簽名(認(rèn)證符是消息的函數(shù)胎源,消息的任何修改都會(huì)引起認(rèn)證符的變化棉钧。而密鑰加密后可以用公鑰解密,并且密鑰只有發(fā)送人擁有)
- 上述數(shù)字簽名無(wú)法保證保密性(因?yàn)楣€可以被他人得到)涕蚤。滿足保密性又提供認(rèn)證功能的方法:2對(duì)密鑰對(duì)宪卿,先用其中一對(duì)密鑰的私鑰加密,再用另一對(duì)密鑰的公鑰加密万栅。
- 應(yīng)用:加密解密佑钾、數(shù)字簽名、密鑰交換
RSA
-
密鑰生成過(guò)程
RSA密鑰產(chǎn)生烦粒、加密休溶、解密 算法的基本運(yùn)算方法:
- 求e:隨機(jī)選擇,滿足 gcd(e,Φ(n))=1 的概率為0.6
- 求d:
way A:egcd
way B:找出d扰她,使得de=kΦ(n)+1兽掰,即第晰,k=0急灭,1,……
- 模指數(shù)運(yùn)算:
way A:利用模算術(shù)性質(zhì) (a×b) mod n = [(a mod n) × (b mod n)] mod n
way B:快速模冪算法殿怜,計(jì)算 ab mod n廉涕;其中c不是必需的泻云,引入僅僅為了便于解釋算法,c的終值是指數(shù)b狐蜕;整數(shù)b化為2進(jìn)制數(shù)宠纯,k為b的2進(jìn)制數(shù)的位數(shù)。(一言以蔽之层释,讓f初值為1婆瓜,循環(huán)k次,每次讓 f = (f × f) mod n贡羔,若此次循環(huán)中b對(duì)應(yīng)的二進(jìn)制數(shù)的位為1廉白,則讓 f = (f × a) mod n)
快速模冪算法
way C:
1)CRT加速計(jì)算M = Cd mod n
將mod n變成mod p、mod q乖寒;分別計(jì)算Vp = Cd mod p猴蹂,Vq = Cd mod q
讓q' = q-1 mod p,p' = p-1 mod q
M = (Vpqq' + Vqpp') mod n
2)用Fermat定理(若a和p互素楣嘁,則ap-1 ≡ 1 mod p)簡(jiǎn)化Vp和Vq的計(jì)算
比如讓Vp = Cd mod p中的指數(shù)d不斷減去p-1(即mod p-1) - 挑選素?cái)?shù):
1)隨機(jī)選擇一個(gè)奇整數(shù) n
2)隨機(jī)選擇一個(gè)整數(shù) a < n
3)執(zhí)行諸如Miller-Rabin之類的概率素?cái)?shù)測(cè)試磅轻。若n未通過(guò)測(cè)試珍逸,則拒絕n并轉(zhuǎn)到第一步
4)若n通過(guò)足夠多的測(cè)試次數(shù),則接受n聋溜;否則轉(zhuǎn)到第二步
-
RSA安全性建立在哪種事實(shí)上:大整數(shù)質(zhì)數(shù)分解的困難
實(shí)際就是公鑰密碼體制的要求
1)可以找到e谆膳,d,n撮躁;使得對(duì)所有M<n漱病,有Med=M mod n(Euler定理的推論:MkΦ(n)+1=M mod n)
2)對(duì)所有M<n,計(jì)算Me和Cd是比較容易的
3)由e和n確定d是不可行的 - 對(duì)RSA的攻擊
方法:
1)窮舉攻擊:窮舉可能的私鑰
2)數(shù)學(xué)攻擊:實(shí)質(zhì)是試圖分解兩個(gè)素?cái)?shù)的成績(jī)(從n求出p把曼、q杨帽;直接確定Φ(n);直接確定d)
3)計(jì)時(shí)攻擊:依賴于解密算法的運(yùn)行時(shí)間(解決方法:不變的冪運(yùn)算時(shí)間祝迂、隨機(jī)延時(shí)睦尽、隱蔽(執(zhí)行冪運(yùn)算前將密文乘上一個(gè)隨機(jī)數(shù)))
4)基于硬件故障的攻擊:應(yīng)用產(chǎn)生簽名過(guò)程中處理器發(fā)生的故障
5)選擇密文攻擊CCA:利用RSA算法的性質(zhì)
本質(zhì):
1)分解n或phi(n)器净;考慮x2-(p+q)x+pq=(x-p)×(x-q)型雳;從左式可以確定p、q山害;因?yàn)槠?個(gè)系數(shù)pq=n纠俭、p+q=n+1-phi(n)
2)利用素?cái)?shù)生成的不合理性
3)利用e和d選取的不合理性分解n
RSA相關(guān)內(nèi)容
-
針對(duì)RAS的CCA攻擊
1)利用性質(zhì):E(PU,M1)×E(PU,M2)=E(PU,[M1×M2])。對(duì)密文修改浪慌,發(fā)送給接收方冤荆,接收方解密得到無(wú)意義字段,攻擊方通過(guò)無(wú)意義字段獲得明文权纤。
2)步驟:
C=Me mod n
計(jì)算X=(C×2e) mod n
得到解密后的Y=Xd mod n
實(shí)質(zhì)上钓简,X=(C mod n)×(2e mod n)=(Me mod n)×(2e mod n)=(2M)e mod n
因此Y =(2M) mod n
(構(gòu)造一個(gè)Y'=(3M)mod n,則M=Y'-Y)
3)解決方法:加密前對(duì)明文進(jìn)行隨機(jī)填充汹想,使得密文隨機(jī)化外邓,從而讓上述的性質(zhì)不成立 -
gcd(a,b)=gcd(b,a mod b);a≥b古掏,不斷迭代直到b=0時(shí)损话,返回a
gcd(a,b)=gcd(b,a)=gcd(-a,b)=gcd(|a|,|b|) -
egcd
1)作用:求出最大公因子d,而且可以得到2個(gè)整數(shù)x槽唾,y丧枪;他們滿足ax+by=d=gcd(a,b)
2)過(guò)程
way A:初始矩陣不斷進(jìn)行行運(yùn)算得到結(jié)果矩陣(第三列出現(xiàn)0)
進(jìn)行的行運(yùn)算操作:a所在的行 = a所在的行 - b所在行 × n;其中a是a庞萍、b中的較大數(shù)拧烦,n是保證 b×n < a 成立的最大正整數(shù)
3)運(yùn)用:e與Φ(n)互素,ed ≡ 1 mod Φ(n)钝计,求d
即ed mod Φ(n) ≡ 1 mod Φ(n) 屎篱,即求e在mod Φ(n)下的乘法逆元
那么有 Φ(n)x+ed = gcd(Φ(n),e) = 1 (該式子兩邊同時(shí)mod Φ(n)即可得到上面的式子)
所以求d即求ax+by=d=gcd(a,b)中的y - Fermat定理:ap-1 ≡ 1 mod p服赎;其中p是素?cái)?shù),a是整數(shù)且不能被p整除
Fermat小定理:ap ≡ a mod p交播;其中p是素?cái)?shù)重虑,a是任意整數(shù) - 歐拉函數(shù)Φ(n):小于n且與n互素的正整數(shù)的個(gè)數(shù)
素?cái)?shù)p:Φ(p) = p-1
素?cái)?shù)p,q:Φ(pq)=(p-1)×(q-1) - 歐拉定理:aΦ(n) ≡ 1 mod n秦士;對(duì)于任意a缺厉,n,有g(shù)cd(a,c)=1
推論:aΦ(n)+1 ≡ a mod n隧土;其中a提针,n任意
歐拉定理是Fermat定理的更一般形式 -
中國(guó)剩余定理CRT
1)用途:加速模運(yùn)算,使得模m的大數(shù)運(yùn)算轉(zhuǎn)化到相對(duì)較小的數(shù)的運(yùn)算
2)例子:x ≡ 2 mod 5曹傀;x ≡ 3 mod 7辐脖;我們可以唯一得到x ≡ 17 mod 35;其中模數(shù)35等于5×7(逆過(guò)來(lái)便可化成較小的數(shù)的模運(yùn)算)
3)定理:
中國(guó)剩余定理CRT確定的唯一式子
- 同余的性質(zhì)
1)n|(a-b)皆愉,則a ≡ b mod n
2)傳遞性
3)先進(jìn)行四則運(yùn)算再取模 = 先取模后再進(jìn)行四則運(yùn)算后再取模 - 模運(yùn)算的性質(zhì)
1)加法消去律成立和加法逆元的存在是一致的
2)乘法消去律成立和乘法逆元的存在是一致的:a和n互素
eg:(a×b) ≡ (a×c) mod n嗜价,則b ≡ c mod n
即當(dāng)一個(gè)整數(shù)與n互素時(shí),他才會(huì)在Zn中存在一個(gè)乘法逆元
四幕庐、密碼學(xué) 密鑰交換
Diffie-Hellman
DH協(xié)議
1)作用:密鑰交換
2)安全性是建立在下述事實(shí)上:求關(guān)于素?cái)?shù)的模素?cái)?shù)冪運(yùn)算相對(duì)容易久锥,而計(jì)算離散對(duì)數(shù)卻非常困難;對(duì)于大素?cái)?shù)异剥,求離散對(duì)數(shù)被認(rèn)為是不可行的(b ≡ ai mod p瑟由,指數(shù)i成為b的以a為底的模p離散對(duì)數(shù))
3)本原根(生成元):對(duì)于素?cái)?shù)p,其本原根a的冪可以產(chǎn)生1到p-1之間所有的整數(shù)
求證a為p的本原根:ap-1 ≡ 1 mod p冤寿,且對(duì)于任意的an歹苦,沒(méi)有一個(gè)的值同余于1 mod p。其中n為小于p-1的正整數(shù)-
基本過(guò)程
XA和XB最好應(yīng)同時(shí)大于1小于q-1(Fermat定理督怜,否則根據(jù)公鑰容易知道XA和XB)
Diffie-Hellman密鑰交換 可能存在的攻擊
1)重播攻擊
2)中間人攻擊:中間人生成2個(gè)私鑰殴瘦,然后計(jì)算2個(gè)公鑰。在A和B進(jìn)行公鑰交換的時(shí)候截獲亮蛔,并將自己的公鑰分別返回給A和B痴施。這樣攻擊者就分別和AB進(jìn)行了密鑰交換(原因:沒(méi)有對(duì)通信的參與方進(jìn)行認(rèn)證;可以通過(guò)數(shù)字簽名和公鑰證書來(lái)克服)
ElGamal密碼體制
關(guān)于密鑰K的計(jì)算本質(zhì)上和DH協(xié)議是一樣的(即C1本質(zhì)上就是YB)究流,Elgamal只是補(bǔ)充了對(duì)明文M的加密解密(C2=KM mod q辣吃;M=(C2K-1) mod q)
這樣還可以讓K作為一次性密鑰,用于加密解密信息(比如將信息分組芬探,然后每個(gè)分塊用唯一的K神得,這樣可以防止攻擊者利用信息的某一分塊計(jì)算出其他分塊,若M1已知偷仿,則很容易計(jì)算出M2)
橢圓曲線密碼體制
-
Zp*上的橢圓曲線
公式 y2 mod p = (x3+ax+b) mod p
乘法被定義為重復(fù)相加哩簿。如4P=P+P+P+P
Zp*上的橢圓曲線算術(shù)
五宵蕉、Hash與MAC
Hash
將任意長(zhǎng)報(bào)文(一般會(huì)被填充為固定長(zhǎng)度分組的整數(shù)倍)映射成一個(gè)較短的定長(zhǎng)輸出報(bào)文的函數(shù) h = H(M)(相對(duì)易于計(jì)算),為文件节榜、報(bào)文或其他的分組數(shù)據(jù)產(chǎn)生“數(shù)字指紋”(Hash常被用于判斷數(shù)據(jù)是否被更改過(guò)羡玛,而不是加密解密函數(shù))
-
功能
消息認(rèn)證
數(shù)字簽名
產(chǎn)生單向口令文件
入侵檢測(cè)、病毒檢測(cè)
構(gòu)建隨機(jī)函數(shù)PRF宗苍、做偽隨機(jī)數(shù)發(fā)生器PRNG -
安全需求
1)單向性:對(duì)任意給定的碼y, 尋求x使得H(x)=y在計(jì)算上是不可行的
2)弱抗碰撞性:任意給定分組x, 尋求不等于x的x', 使得H(x)= H(x')在計(jì)算上不可行
3)強(qiáng)抗碰撞性:尋求任何的(x,x')對(duì)稼稿,使得H(x)=H(x')在計(jì)算上不可行
4)偽隨機(jī)性
生日悖論指出弱抗碰撞性和強(qiáng)抗碰撞性對(duì)Hash函數(shù)的安全性的要求的差距
單向性和抗碰撞性相互獨(dú)立 -
安全Hash算法的一般結(jié)構(gòu)
將輸入消息分為L(zhǎng)個(gè)固定長(zhǎng)度的分組,每一分組長(zhǎng)b位讳窟,最后一個(gè)分組不足b位時(shí)需要將其填充為b位让歼,最后一個(gè)分組包含輸入的總長(zhǎng)度(增加攻擊難度)
安全Hash算法的一般結(jié)構(gòu)如果壓縮函數(shù)具有抗碰撞能力,那么迭代Hash函數(shù)也有抗碰撞能力丽啡;由此可見(jiàn)谋右,設(shè)計(jì)安全Hash函數(shù)可簡(jiǎn)化為設(shè)計(jì)具有抗碰撞能力的壓縮函數(shù)問(wèn)題,并且該壓縮函數(shù)的輸入是定長(zhǎng)的补箍。
- Keccak設(shè)計(jì)的新思想
海綿結(jié)構(gòu)(可視為輕量密碼):
新的壓縮函數(shù)(主要操作是xor和rot改执,無(wú)查表和元素運(yùn)算) - 海綿結(jié)構(gòu)
1)參數(shù):
f(迭代函數(shù))、r(位速率:輸入分組的位長(zhǎng)度)馏予、pad(填充算法)
2)過(guò)程:
為了格式統(tǒng)一天梧,任意消息都需要進(jìn)行填充
狀態(tài)變量s的初值全部置為0
如果輸出長(zhǎng)度L滿足 L ≤ b盔性,那么吸水階段完成后霞丧,則返回 s 的前 L 位,海綿結(jié)構(gòu)運(yùn)行結(jié)束
否則進(jìn)入擠壓階段冕香,s的前 r 位作為輸出分組Z0蛹尝;然后用迭代函數(shù) f 更新 s;再將新的 s的前 r 位作為輸出分組Z1悉尾;直到得到輸出分組Z0突那、Z1……鏈接后的總長(zhǎng)度大于 L 。則將鏈接后的輸出分組 Z 的前 L 位返回
海綿結(jié)構(gòu) -
SHA-3的基本迭代結(jié)構(gòu)(最基本的了解构眯,eg:5個(gè)步驟干了什么)
將1600bit的輸入變成5×5矩陣愕难,每個(gè)單位有64bit(1個(gè)字)
函數(shù) | 類型 | 描述 |
---|---|---|
θ | 代換 | 某一位的值 = 該值⊕前一列5個(gè)字對(duì)應(yīng)bit的異或⊕后一列5個(gè)字分別右移1位后對(duì)應(yīng)bit的異或 |
ρ | 置換 | x=y=0則不變(即字[0,0]不變);其他字在字內(nèi)進(jìn)行循環(huán)移位 |
π | 置換 | x=y=0則不變(即字[0,0]不變)惫霸;其他字互相移位 |
χ | 代換 | 某一位的值 = 該值⊕((下一行對(duì)應(yīng)bit的值⊕1)AND (下下一行對(duì)應(yīng)位的值)) |
ι | 代換 | 字[0,0]與圈常數(shù)進(jìn)行異或 |
MAC
可以產(chǎn)生認(rèn)證符的函數(shù)類型:Hash猫缭、消息加密、消息認(rèn)證碼MAC
認(rèn)證技術(shù):報(bào)文認(rèn)證:消息完整性壹店;實(shí)體認(rèn)證(用戶認(rèn)證):發(fā)送者非冒充
認(rèn)證定義:防止主動(dòng)攻擊的重要技術(shù)
-
報(bào)文認(rèn)證碼的基本構(gòu)造方法
1)CMAC
其中K為密鑰猜丹,Mi為消息的不同分組,K1硅卢、K2為由密鑰K生成的2個(gè)新密鑰
L = E(K,0b)射窒,K1=L · x藏杖,K2=L · x2;其中乘法(·)是GF(2b)上的乘法脉顿;x和x2是域GF(2b)的1次和2次多項(xiàng)式(二元表示分別為b-2個(gè)0蝌麸,后跟10;b-3個(gè)0艾疟,后跟100)
CMAC
K+為在K左邊填充0祥楣,得到的b位數(shù);ipad=0x36汉柒,opad=0x5c(兩個(gè)數(shù)不斷重復(fù)误褪,湊夠b位);Yi為消息的不同分組
HMAC 報(bào)文認(rèn)證碼的應(yīng)用
1)直接在報(bào)文后面加MAC(不具有保密性)
2)與明文捆綁的認(rèn)證:在明文后加上MAC碾褂;再加密
3)與密文捆綁的認(rèn)證:先將明文加密兽间;再加上MAC報(bào)文認(rèn)證碼相比于常規(guī)加密的優(yōu)點(diǎn)(特點(diǎn))
1)適用于報(bào)文廣播(并不需要每個(gè)點(diǎn)都有密鑰);
2)報(bào)文加密解密的工作量比較大;
3)某些應(yīng)用不關(guān)心報(bào)文的保密而只關(guān)心報(bào)文的真實(shí)性;
4)認(rèn)證函數(shù)與保密函數(shù)的分離能提供結(jié)構(gòu)上的靈活性(認(rèn)證與保密可在網(wǎng)絡(luò)協(xié)議的不同層次進(jìn)行).
5)認(rèn)證碼可延長(zhǎng)報(bào)文的保護(hù)期限,同時(shí)能處理報(bào)文內(nèi)容(使用加密,當(dāng)報(bào)文解密后,保護(hù)就失效了).
6)要求加密不可逆
7)認(rèn)證函數(shù)更不易被攻破
8)不能提供數(shù)字簽名(因?yàn)槭瞻l(fā)雙方共享密鑰)MAC的安全需求
1)某個(gè)報(bào)文M的MAC必須要短小
2)要有認(rèn)證性,發(fā)送接受雙方必須共享“秘密”
3)Hash還不足以保證安全(Hash不依賴于密鑰)
4)避免“加密”運(yùn)算
六正塌、數(shù)字簽名
MAC可以保護(hù)信息交換雙方不受第三方攻擊嘀略,但不能處理通信雙方自身發(fā)生的攻擊
基本概念
1)特征:能驗(yàn)證簽名者、簽名日期和時(shí)間乓诽;能認(rèn)證被簽的消息內(nèi)容帜羊;簽名能由第三方仲裁,以解決爭(zhēng)執(zhí)(具有認(rèn)證功能)
2)目標(biāo):防止報(bào)文被偽造鸠天,用于保證數(shù)據(jù)的完整性
3)操作:簽名者對(duì)改報(bào)文產(chǎn)生一串公開(kāi)且他人無(wú)法偽造的數(shù)據(jù)串-
構(gòu)造數(shù)字簽名過(guò)程中關(guān)鍵部分的簡(jiǎn)單描述
針對(duì)數(shù)字簽名的攻擊(簽名偽造)
1)攻擊類型:唯密鑰攻擊讼育、已知消息攻擊、一般選擇消息攻擊稠集、定向選擇消息攻擊奶段、適應(yīng)性選擇消息攻擊
2)何為成功的攻擊方案:完全破譯、通用偽造剥纷、選擇偽造痹籍、存在性偽造ElGamal密碼體制
1)產(chǎn)生公鑰/私鑰對(duì):
隨機(jī)生成私鑰XA,使得1<XA<q-1
計(jì)算YA = αXA mod q
公開(kāi)公鑰{q晦鞋,α蹲缠,YA}
2)產(chǎn)生數(shù)字簽名:
選擇隨機(jī)整數(shù)K,使得 1 ≤ K ≤ q-1悠垛,且gcd(K,q-1)=1
計(jì)算S1 = αK mod q
計(jì)算K-1 mod (q-1)
計(jì)算S2 = K-1 (m-XAS1) mod (q-1)
簽名對(duì)包括(S1线定,S2)
3)驗(yàn)證簽名:
計(jì)算V1 = αm mod q
計(jì)算V2 = (YA)S1(S1)S2 mod q
若V1 = V2 則簽名合法Schnorr
1)產(chǎn)生公鑰/私鑰對(duì):
選擇素?cái)?shù)p、q鼎文,使得 q 是 p 的素因子
選擇整數(shù)α渔肩,使得 αq = 1 mod p
選擇隨機(jī)整數(shù) s,0<s<q拇惋,s作為用戶的私鑰
計(jì)算 v = α-s mod p周偎,作為用戶公鑰
2)產(chǎn)生數(shù)字簽名:
選擇隨機(jī)整數(shù)r抹剩,0<r<q,并計(jì)算 x = αr mod p 蓉坎。與消息M無(wú)關(guān)澳眷,可以預(yù)處理
將x附在消息M后,一起計(jì)算Hash值 e = H( M || x )
計(jì)算 y = ( r + se) mod q
簽名對(duì)包括(e蛉艾,y)
3)驗(yàn)證簽名:
計(jì)算 x' = αyve mod p
驗(yàn)證是否有 e = H( M || x' )-
DSA
1)參數(shù):p為素?cái)?shù) 钳踊;q為(p-1)的素因子;
2)公鑰私鑰對(duì):隨機(jī)數(shù) x 作為私鑰勿侯;公鑰 y = gx mod p
3)簽名:計(jì)算r拓瞪,s;r = ( gk mod p) mod q助琐;s = [ k-1 ( H(M) + xr) ] mod q祭埂;其中k是隨機(jī)生成的,且對(duì)每次簽名都是唯一的
4)令M'兵钮,r'蛆橡,s'為接收方收到的M,r掘譬,s泰演;用下圖所示的公式進(jìn)行驗(yàn)證
DSA 三種簽名的對(duì)比
Schnorr比ElGamal高效;DSS(DSA)是Schnorr+ElGamal葱轩;Schnorr形式最簡(jiǎn)潔漂亮睦焕,有許多應(yīng)用
七、認(rèn)證系統(tǒng)
- 證書定義酿箭、功能
定義:數(shù)字證書就是把公鑰與其所有者的身份進(jìn)行綁定的文檔
綁定方法:權(quán)威機(jī)構(gòu)(證書頒發(fā)機(jī)構(gòu))的數(shù)字簽名
功能:信息保密性复亏、網(wǎng)絡(luò)通訊雙方身份確定性趾娃、不可否認(rèn)性缭嫡、不可修改性 - 證書鏈
多個(gè)CA為不同用戶發(fā)放證書,不同CA之間相互認(rèn)證抬闷,為對(duì)方發(fā)放證書妇蛀。
eg:A通過(guò)不同CA(X1、X2X3……)獲取B的公鑰笤成。X1<<X2>>X2<<X3>>...XN<<B>> - PKI基本概念评架、功能
公鑰基礎(chǔ)設(shè)施
1)定義:由硬件、軟件炕泳、人纵诞、策略和程序構(gòu)成的一整套體系,這些程序是用來(lái)創(chuàng)建培遵、管理浙芙、存儲(chǔ)登刺、分發(fā)和撤銷建立在非對(duì)稱密碼算法之上的數(shù)字證書。用來(lái)提供可靠易用的公鑰密碼操作的系統(tǒng)的總稱
2)功能:安全嗡呼、便捷纸俭、高效地獲得公鑰。保障大型開(kāi)放式網(wǎng)絡(luò)環(huán)境下網(wǎng)絡(luò)和信息系統(tǒng)安全南窗。
3)應(yīng)用:安全登錄揍很、終端用戶透明、全面的安全性
4)基本要求:
提供基礎(chǔ)服務(wù)
為整體應(yīng)用系統(tǒng)提供安全基本框架
可被應(yīng)用系統(tǒng)中任何需要安全的應(yīng)用和對(duì)象使用
接口要求統(tǒng)一万伤、標(biāo)準(zhǔn)窒悔、便于使用
適用于多種環(huán)境
通用性和實(shí)用性
八、認(rèn)證協(xié)議
重點(diǎn)協(xié)議5新颉r燃!!
- 弱認(rèn)證(基于口令的認(rèn)證放妈,口令弱)
1)脆弱性:字典攻擊北救、工作站劫持、用戶誤用芜抒、搭線竊聽(tīng)
2)離線字典攻擊
條件:口令在字典中珍策;可以判斷選用的口令是否正確
3)泄漏:網(wǎng)絡(luò)明文傳輸、口令文件非法訪問(wèn)
4)解決方法:用單向hash函數(shù)對(duì)口令進(jìn)行散列(加鹽操作)
作用:防止重復(fù)口令被發(fā)現(xiàn)宅倒;增加離線字典攻擊難度攘宙;難以發(fā)現(xiàn)用戶在不同系統(tǒng)中用同一口令
5)對(duì)抗“猜口令攻擊”:“后退”技術(shù)、斷開(kāi)連接拐迁、禁用機(jī)制蹭劈、蜜罐 - 強(qiáng)認(rèn)證(質(zhì)詢-應(yīng)答認(rèn)證,密鑰強(qiáng))
協(xié)議設(shè)計(jì)與分析
1)單邊認(rèn)證
單邊認(rèn)證线召,使用時(shí)間戳
① A --> B:Ek(tA, B)
單邊認(rèn)證铺韧,使用隨機(jī)數(shù)
① A <-- B: rB
② A --> B: Ek(rB,B)
2)雙邊認(rèn)證
雙邊認(rèn)證,使用隨機(jī)數(shù)
① A <-- B : rB
② A --> B: Ek(rA, rB, B)
③ A <-- B: Ek(rB, rA)
雙邊認(rèn)證缓淹,使用hash函數(shù)
① A <-- B : rB
② A --> B: rA哈打,Hk(rA, rB, B)
③ A <-- B: Hk(rB,rA,A)
3)基于公鑰密碼體制的單邊協(xié)議
基于公鑰解密與證據(jù)
① A <-- B : h(r), B, PA(r,B)
② A --> B: r
4)基于公鑰體制的實(shí)體認(rèn)證(雙邊)
Needham-Schroeder 協(xié)議
① A --> B: EncB(r1, A)
② A <-- B: EncA(r1, r2)
③ A --> B: r2
5)基于簽名的實(shí)體認(rèn)證
基于時(shí)間戳的單邊認(rèn)證
① A --> B: CertA, TA, B, SigA(TA, B)
基于隨機(jī)數(shù)的單邊認(rèn)證
① A <-- B : rB
② A --> B: CertA, rA, B, SigA(rA, rB,B)
基于隨機(jī)數(shù)的雙邊認(rèn)證
① A <-- B : rB
② A --> B: CertA, rA讯壶,B, SigA(rA, rB,B)
③ A <-- B: CertB, A, SigB(rB, rA,A)
九料仗、安全策略、模型伏蚊、訪問(wèn)控制
基本概念
1)安全策略:為系統(tǒng)定義安全
3)系統(tǒng)狀態(tài):授權(quán)狀態(tài)立轧、非授權(quán)狀態(tài)
3)三種定義
保密性:設(shè)X是實(shí)體的集合,并設(shè)I是信息。如果X中成員不能獲取信息I氛改,那么I關(guān)于X具有保密性匀借。
完整性:設(shè)X是實(shí)體的集合,并設(shè)I是某些信息或某種資源平窘。如果X中所有成員都信任I吓肋,那么I關(guān)于X具有完整性。
可用性:設(shè)X是一個(gè)實(shí)體的集合瑰艘,并設(shè)I是一種資源是鬼。如果X中所有成員都可以訪問(wèn)I,那么I關(guān)于X具有可用性紫新。
4)
安全機(jī)制是實(shí)施安全策略的某些部分的實(shí)體或規(guī)程
安全模型是表達(dá)特定策略或策略集合的模型
5)訪問(wèn)控制:防止未經(jīng)授權(quán)使用資源均蜜,包括防止以非授權(quán)方式使用資源
6)訪問(wèn)控制基本元素:主體(進(jìn)程),客體(資源)芒率,訪問(wèn)權(quán)
7)訪問(wèn)控制矩陣
主體:行(能力表C-List)
客體:列(訪問(wèn)控制列表ACL)
矩陣元素:權(quán)限安全策略模型的種類
訪問(wèn)控制的三種方式
1)自主訪問(wèn)控制(DAC):基于請(qǐng)求者的身份和訪問(wèn)規(guī)則囤耳、實(shí)體可授權(quán)
2)強(qiáng)制訪問(wèn)控制(MAC):基于安全許可(實(shí)體的能力)和安全標(biāo)記(資源的敏感度)、實(shí)體不能對(duì)另一實(shí)體授權(quán)(BLP模型)
3)基于角色的訪問(wèn)控制(RBAC):基于角色而非身份的控制偶芍;不給單獨(dú)用戶授權(quán)充择,而是授權(quán)角色BLP模型的基本思想
1)防止主體讀取安全密級(jí)比他的安全許可更高的客體。本質(zhì)是強(qiáng)制型訪問(wèn)控制匪蟀,但結(jié)合了自主型訪問(wèn)控制
2)簡(jiǎn)單安全條件:不向上讀(S可以讀O椎麦,當(dāng)且僅當(dāng)lo≤ls,且S對(duì)O具有自主型讀權(quán)限材彪。)
3)星號(hào)屬性:不向下寫(S可以寫O观挎,當(dāng)且僅當(dāng)ls≤lo,且S對(duì)O具有自主型寫權(quán)限段化。)
4)考慮保密性嘁捷,不考慮完整性,可用性 (保密性模型)