密碼編碼學(xué)與網(wǎng)絡(luò)安全 review
lecture01 經(jīng)典加密技術(shù)
什么是安全,如何認(rèn)識信息安全? 安全性是絕對的邪蛔,還是和其它因素相關(guān)聯(lián)的?
信息安全涉及到CIAC信息的保密性(confidentiality)溃蔫、完整性 (integrity)健提、可用性(availability)、可控性(controllability)
主要的安全需求:CDANA:
confidentiality/ data integrity/authenticity/ non-repudiation/access control
什么是安全威脅伟叛,有哪些攻擊行為?
威脅私痹,是對安全的潛在破壞,不一定要實(shí)際發(fā)生统刮。
截獲(被動)/中斷/偽造/篡改(主動)
什么是安全服務(wù)?安全策略?安全機(jī)制?
confidentiality/ data integrity/authenticity/ non-repudiation/access control/
認(rèn)識網(wǎng)絡(luò)安全模型紊遵、訪問控制安全模型
了解、使用侥蒙、熟悉一些實(shí)際使用的安全(密碼)應(yīng)用系統(tǒng) ......
lecture02 古典加密技術(shù)
Cryptology: Cryptography & Cryptanalysis
密碼系統(tǒng)五元組(PCKED)明文空間 密文空間 密鑰空間 Encryption函數(shù) Decryption函數(shù)
對稱與非對稱密碼(即密碼體制):單鑰體制(對稱算法K1=K2或者可以互相推導(dǎo))雙鑰體制(公鑰算法)
密碼分析:唯密文攻擊/已知明文攻擊/選擇明文攻擊
密碼分析中的統(tǒng)計(jì)方法
原因:存在語言的統(tǒng)計(jì)特性
- 人類語言是有冗余度的
- 字母使用的頻率是不相同的
- 在英語中暗膜,e 的使用率是最高的 其次,T,R,A,O,N,I,S
- 其它字母使用的較低
Kerckhoff假設(shè):密碼系統(tǒng)的安全性應(yīng)該基于密鑰的安全性鞭衩,而不是基于算法細(xì)節(jié)的安全性
無條件安全在唯密文攻擊下学搜,密文與明文之間的互信息是0.
計(jì)算安全:破譯密碼的代價(jià)超過密文信息的價(jià)值,破譯密文的時間超出密文信息的有效生命周期论衍。
古典加密技術(shù):代換(substitution)置換(transposition)
古典加密技術(shù)范例:
-
基于代換技術(shù)的古典密碼體制及密碼分析
- Caesar密碼(移位為3的移位密碼)
- 單表代換密碼 (密鑰是一個長度為K的代換表)
- Playfair密碼
- Hill密碼
- 多表代換密碼與一次一密
-
基于置換技術(shù)的古典密碼體制及密碼分析
- 柵欄技術(shù)
- 其他
轉(zhuǎn)輪機(jī)
隱寫術(shù)
lecture 03 常用密碼算法
分組密碼 流密碼 DES AES
分組密碼常見工作模式及各自優(yōu)缺點(diǎn)
工作模式 | 流加密 | 并行加解密 | 解密函數(shù) | 差錯擴(kuò)散 | 應(yīng)用 |
---|---|---|---|---|---|
電碼本模式 | N | Y | Y | N | 單個數(shù)據(jù)的安全傳輸(如密鑰) |
密文分組鏈接模式 | N | N | Y | Y | 面向分組的通用傳輸&認(rèn)證 |
輸出反饋模式 | Y | Y | N | N | 面向數(shù)據(jù)流的通用傳輸&認(rèn)證 |
密文反饋模式 | Y | N | N | Y | 噪聲信道上的數(shù)據(jù)流傳輸 |
計(jì)數(shù)器模式 | Y | Y | N | N | 面向分組的通用傳輸(高速需求) |
偽隨機(jī)數(shù)
- 與真隨機(jī)數(shù)的區(qū)別:使用確定的但能經(jīng)受隨機(jī)性檢測的算法瑞佩。PRG
- 評價(jià)標(biāo)準(zhǔn):分布均勻性/獨(dú)立性
- 典型生成方式:線性同余法/分組密碼(計(jì)數(shù)器/輸出反饋)產(chǎn)生(如ANSI X9.17)/BBS(基于公鑰算法)
ANSI 應(yīng)用于金融&PGP BBS 僅適用于密鑰生成(太慢了)
分組密碼相關(guān)概念 分類及特點(diǎn)
概念:信息進(jìn)行分塊加密解密,連續(xù)明文元素使用相同密鑰
分類:DES/AES
特點(diǎn):將一個明文分組作為整體加密且通常得到的是與明文等長的密文分組/使用最廣泛的加密算法之一/可以提供安全性-認(rèn)證性的安全服務(wù)/典型DES AES/5種標(biāo)準(zhǔn)工作模式
Feistel類密碼
基于可逆的乘積密碼坯台。目標(biāo)是逼近簡單代換密碼
設(shè)計(jì)元素:分組長度/密鑰長度/輪數(shù)/輪函數(shù)/子密鑰產(chǎn)生算法/快速軟件加解密/簡化分析難度
基本思路:將一個明文分組對分炬丸,代換左半部分,輪函數(shù)F作用于右半部分蜒蕾,再與左半部分進(jìn)行異或稠炬,交換數(shù)據(jù)左右兩半。密鑰ki作為輪函數(shù)的輸入咪啡,每輪密鑰不一樣首启,進(jìn)行多輪迭代。
擴(kuò)散與混淆:擴(kuò)散使密文和明文的統(tǒng)計(jì)關(guān)系更復(fù)雜撤摸,使明文的統(tǒng)計(jì)特征盡量消散在密文中闽坡;混淆使密文和密鑰的統(tǒng)計(jì)關(guān)系盡量復(fù)雜,阻止攻擊者發(fā)現(xiàn)密鑰愁溜。
DES算法的主要構(gòu)成
明文64位 密鑰56位
初始置換IP-->16輪輪函數(shù)(置換和代替)-->逆初始置換
對DES的主要評價(jià)
已被攻破
- 暴力破解可行
- 差分密碼分析 2^47 選擇明文密文
- 線性密碼分析 2^43 已知明文密文
是最成功的商用密碼算法疾嗅,廣泛用于金融系統(tǒng)、計(jì)算機(jī)系統(tǒng)冕象、Kerboros……
分組密碼的設(shè)計(jì)準(zhǔn)則
- 大部分對稱分組密碼基于Feistel密碼結(jié)構(gòu)
可逆變換:若n位明文產(chǎn)生n位密文代承,共有2^n個不同明文組。 要求每一個明文組唯一的對應(yīng)一個密文組渐扮。
是必要條件论悴,因?yàn)楸仨毮軌驈募用芎蟮拿芪闹杏行У幕謴?fù)出明文掖棉。總共有2^n!個可逆變換 - 分組加密可以被看作是一個巨大的代換(理想分組密碼體制)
對一個64bit的分組膀估,需要映射表長度為264≈1021 幔亥,不實(shí)際
取而代之,使用較小的部件 - 使用乘積密碼的思想來逼近簡單代換函數(shù)—by Feistel
分組密碼的應(yīng)用模式
lecture 04
三重DES
構(gòu)造 EDE
特點(diǎn)
- 優(yōu)點(diǎn)
- 密鑰112bit夠長
- 底層算法DES經(jīng)受住了時間的考驗(yàn)察纯,對密碼分析攻擊有很強(qiáng)抵抗力
- 僅考慮安全性帕棉,3DES會成為未來數(shù)十年加密算法的合適選擇
- 缺點(diǎn)
- DES的設(shè)計(jì)主要針對硬件實(shí)現(xiàn),而今在許多領(lǐng)域饼记,需要用軟件方法來 實(shí)現(xiàn)它香伴,在這種情況下,DES效率相對較低具则。
- 分組長度64即纲,似乎應(yīng)該更長
- 因此,理論上博肋,3DES不能成為長期使用的加密算法標(biāo)準(zhǔn)
IDEA算法
特點(diǎn):
- 明文64 密鑰128 明文分成4組低斋,八輪迭代/加密解密算法一致/看窮舉抗拆分
- IDEA 的混淆和擴(kuò)散來自三種運(yùn)算:逐位異或/模216整數(shù)加/模216+1整數(shù)乘
- 易于軟硬件實(shí)現(xiàn)
AES算法
AES基本要求:
- 比三重DES快
- 至少和三重DES一樣安全
- 分組長度128比特
- 支持密鑰長度為128/192/256比特
NIST評估標(biāo)準(zhǔn):
第一第二輪:安全性/成本/算法和執(zhí)行特征
最終評估標(biāo)準(zhǔn):一般安全性/RAM、ROM受限環(huán)境/軟件實(shí)現(xiàn)/硬件實(shí)現(xiàn)/對執(zhí)行的攻擊(計(jì)時攻擊&能量攻擊)/加密解密算法一致/密鑰靈活性/多功能性和靈活性/ILP指令級并行能力的潛力
具體結(jié)構(gòu):
- 不是Feistel結(jié)構(gòu)匪凡,加密解密算法不同
- 對于加密和解密拔稳,均以輪密鑰加作為開始
- 9輪迭代,每輪包括
- 字節(jié)代換:S盒子 (代換锹雏,之前有密鑰,屬于混淆术奖,非線性)
- 行移位:簡單置換 (屬于擴(kuò)散礁遵,線性)
- 列混淆:利用域GF(28)上的算術(shù)特性(屬于擴(kuò)散,線性)
- 輪密鑰加:當(dāng)前分組 XOR 輪密鑰 (Vernam密碼采记,線性)
- 第10輪只包含 字節(jié)代換佣耐、行移位、輪密鑰加 目的是滿足算法的可逆性
- 僅在輪密鑰加階段使用密鑰 ? 每個階段均可逆
- 具有非常明晰的代數(shù)結(jié)構(gòu)
群環(huán)域定義(不要求吧)
TCP 負(fù)責(zé)應(yīng)用軟件(比如你的瀏覽器)和網(wǎng)絡(luò)軟件之間的通信唧龄。
IP 負(fù)責(zé)計(jì)算機(jī)之間的通信兼砖。
IP地址
每個計(jì)算機(jī)必須有一個 IP 地址才能夠連入因特網(wǎng)。
每個 IP 包必須有一個地址才能夠發(fā)送到另一臺計(jì)算機(jī)既棺。
IP 地址包含 4 個數(shù)字: 112.65.223.50
TCP/IP 使用 4 個數(shù)字來為計(jì)算機(jī)編址讽挟。每個計(jì)算機(jī)必須有一個唯一的 4 個數(shù)字的地址。
數(shù)字在 0 到 255 之間丸冕,并由點(diǎn)號隔開耽梅,像這樣:192.168.1.60
lecture 06
通信保密的位置,各自特點(diǎn)
鏈路加密:在鏈路兩端加上加密設(shè)備胖烛,鏈路上信息傳輸安全眼姐。
邏輯位置在物理層或者鏈路層
- 每條鏈路兩端都需要加密設(shè)備诅迷,要求許多加密設(shè)備
- 共享鏈路的每一節(jié)點(diǎn)共享唯一密鑰
- 每次分組交換都需要解密消息,報(bào)文在傳輸中多次加解密
- 報(bào)文在交換機(jī)處以明文形式存在众旗,易受攻擊
- 用戶對報(bào)文的安全無法控制
- 可以鑒別主機(jī)
- 通訊模式是安全的
端對端加密:在各源主機(jī)或終端加密數(shù)據(jù)罢杉,密文通過網(wǎng)絡(luò)傳給目的主機(jī)或者終 端。目的主機(jī)與源主機(jī)共享一個密鑰贡歧。
邏輯位置在網(wǎng)絡(luò)層或傳輸層 表示層或應(yīng)用層
- 一般是加密數(shù)據(jù)滩租,而非信息頭,以實(shí)現(xiàn)包的路由艘款。用戶數(shù)據(jù)安全持际,傳輸過程不安全。
- 加密過程由兩個端系統(tǒng)完成(+)
- 報(bào)文在傳輸中只進(jìn)行一次加解密(+)
- 報(bào)文在交換機(jī)處仍然是安全的?(+)
- 不能隱蔽通信量(-)
- 能夠鑒別用戶(+)
通信流量分析攻擊和預(yù)防措施
監(jiān)控成員間的通信量哗咆、消息數(shù)目蜘欲、消息長度等,從數(shù)據(jù)傳輸分析中得到通信雙方的身份晌柬、通信雙方通信的頻率姥份、報(bào)文模式、報(bào)文長度年碘、報(bào)文數(shù)量澈歉、特定的通信之間交談所關(guān)聯(lián)的事件。
預(yù)防措施:
鏈路加密 分組首部加密/通信量填充
端對端加密 填充數(shù)據(jù)單元/發(fā)送空白報(bào)文
主密鑰 vs. 會話密鑰
- 會話密鑰:用于數(shù)據(jù)加密屿衅,臨時
- 主密鑰:由KDC和用戶共享埃难,長期
具有可信第三方的安全密鑰生成
密鑰使用方式控制 校驗(yàn)碼/控制向量
chapter 07
Euler函數(shù)及其計(jì)算
Euler定理,F(xiàn)ermat小定理
chapter 08
- 計(jì)算困難性 求解問題的困難與否應(yīng)該是客觀的
- 可計(jì)算涤久,計(jì)算復(fù)雜度涡尘,P-NP-NPC問題
- 公鑰密碼概念:每個用戶擁有一個公私鑰對,用于加解密&數(shù)字簽名
- 單向函數(shù)(離散對數(shù)
- 單向陷門函數(shù)
- 背包公鑰密碼(不要求)
- RSA公鑰密碼
- 原理:Euler定理&求大整數(shù)因子的困難
- 簡單的攻擊
- 數(shù)學(xué)攻擊:pq過于接近/共模攻擊n相同/小e攻擊
- 物理攻擊
- 基于運(yùn)行錯誤的攻擊
- 基于系統(tǒng)使用錯誤的攻擊
- 涉及的數(shù)論:歐拉函數(shù) Fermat定理 素?cái)?shù)測試……
chapter 09
- 基于離散對數(shù)的密碼
- Diffie-Hellman密鑰交換:基于公鑰的密鑰分配算法
- 需要用到Fermat小定理
- 中間人攻擊
- ElGamal公鑰加密算法
- 需要用到Fermat小定理
- Diffie-Hellman密鑰交換:基于公鑰的密鑰分配算法
- 橢圓曲線密碼
- 用較短的參數(shù)長度實(shí)現(xiàn)同樣的安全 級別
- 公鑰系統(tǒng)的安全問題
- 中間人攻擊問題
chapter 10
認(rèn)證主要目的:實(shí)體認(rèn)證/消息完整性認(rèn)證
消息認(rèn)證的定義 :驗(yàn)證所受到的消息確實(shí)是來自真正的發(fā)送方响迂,且未被修改考抄。可以看做兩層:1)生成消息認(rèn)證符的函數(shù) 2) 使用認(rèn)證函數(shù)作為原語來驗(yàn)證消息真實(shí)性的協(xié)議
-
網(wǎng)絡(luò)中的攻擊
- 加密
- 泄密
- 流量傳輸攻擊
- 消息認(rèn)證
- 偽裝
- 消息內(nèi)容篡改
- 計(jì)時攻擊:重放蔗彤、演示
- 數(shù)字簽名
- 發(fā)送方否認(rèn)
- 接收方否認(rèn)
- 加密
-
三類認(rèn)證函數(shù)各自的特點(diǎn)及作用
- 報(bào)文加密:整個報(bào)文的密文為認(rèn)證碼
- 報(bào)文認(rèn)證碼MAC:以一個報(bào)文的公共函數(shù)用于產(chǎn)生一個定長的密鑰作為認(rèn)證符
- 散列函數(shù):對任意長度報(bào)文以散列函數(shù)作為公共函數(shù)產(chǎn)生定長散列值作為認(rèn)證符
-
Hash函數(shù)的定義川梅、特點(diǎn),及三大性質(zhì)(重點(diǎn))
- 散列函數(shù)是將任意長度的消息映射成一個較短的定長輸出消息的函數(shù).
- 用于任何大小的數(shù)據(jù)分組產(chǎn)生定長輸出
- 單向性 | 弱抗碰撞性(k=2m/2)| 強(qiáng)抗碰撞性(k=2m/2)
?MAC與對稱加密的區(qū)別然遏,MAC的使用方式
- 消息認(rèn)證是用于驗(yàn)證待傳遞消息的完整性(integrity)以及消息源的真實(shí)性(authentication)的密碼學(xué)手段贫途。
- 三類認(rèn)證函數(shù)極其特點(diǎn)是:
報(bào)文加密:把消息整個加密后形成的密文當(dāng)做認(rèn)證符。特點(diǎn)就是1)在提供部分認(rèn)證服務(wù)的同時也提供了消息的保密性待侵;2)需要某種冗余和結(jié)構(gòu)潮饱,以識別合法明文;3)不提供簽名诫给,即收發(fā)雙方都可以偽造和否認(rèn)消息香拉。
哈希函數(shù):把消息的哈希函數(shù)值作為認(rèn)證符啦扬。
消息認(rèn)證碼(MAC)。特點(diǎn)是1)收發(fā)雙方需要一個秘鑰來生成認(rèn)證碼以及驗(yàn)證認(rèn)證碼凫碌;2)消息認(rèn)證碼的輸入可以是長度任意的消息扑毡,但是輸出(認(rèn)證碼)是定長的。 - 哈希函數(shù)的定義:一個把任意長度的輸入隱身成一個較短的定長的輸出的函數(shù)(是一個多對一的函數(shù))盛险。
哈希函數(shù)的特點(diǎn):1)輸入長度沒有限制瞄摊;2)輸出是定長;3)有碰撞存在(既然它是一個多對一的映射)
(密碼學(xué))哈希函數(shù)三大特性:
First Preimage Resistance: Given a hash value h, it’s computationally hard to find a x such that H(x) = h.
Second Preimage Resistance: Given a input x, it’s computationally hard to find another input y such that H(x) = H(y).
Collision Resistance: It’s computationally hard to find two input values x and y such that H(x) = H(y). - MAC與對稱加密的區(qū)別:
MAC的輸出是定長的苦掘,而對稱加密的輸出是變長的换帜;
MAC僅給出一個認(rèn)證符,不提供任何保密性服務(wù)鹤啡,但對稱加密同時提供了報(bào)名服務(wù)惯驼;
MAC的認(rèn)證符生成函數(shù)是不可逆的(即不能夠從生成的驗(yàn)證符中推導(dǎo)出原文),但是對稱加密的加密算法是可逆的(解密算法)递瑰;
MAC的使用方式:
CBC-MAC: 使用了DES加密算法以及CBC模式祟牲,用于對一個消息產(chǎn)生認(rèn)證符(注意: CBC-MAC的明文必須是固定長度,而且不需要初始向量抖部;但在單純的CBC模式中是沒有對輸入有長度限制的说贝,而且需要初始向量)
HMAC:使用秘鑰以及哈希函數(shù)產(chǎn)生認(rèn)證符(使用兩次哈希函數(shù))
chapter 11
- 數(shù)字簽名:數(shù)字簽名是給以電子形式存儲的消息進(jìn)行簽名,簽名后的消息通過網(wǎng)絡(luò)傳輸慎颗。
數(shù)字簽名的特征:
不能偽造:收方能證實(shí)發(fā)方的簽名乡恕,但不可以偽造
不可否認(rèn):發(fā)方一旦對某條消息簽名后便不能否認(rèn) - DSS簽名原理及底層算法:(理解既可)
詳見PPT - RSA簽名方案:
詳見PPT(注意和RSA加密幾乎一模一樣,只是秘鑰使用換了換順序俯萎,并且在使用中的RSA簽名是對消息的哈希值進(jìn)行簽名的) - 公鑰的分配途徑:
略傲宜,不重要
chapter 12
- Kerberos使用環(huán)境和基本模塊
Kerberos系統(tǒng)是用于分布式網(wǎng)絡(luò)系統(tǒng)中安全的進(jìn)行客戶與服務(wù)器之間的認(rèn)證服務(wù)。分為三個模塊:用戶(Client)讯屈,服務(wù)器(Server)以及Kerberos(包含AS和TGS兩部分)。 - Kerberos工作步驟(六步):
- 用戶在工作中登陸县习,發(fā)送一個獲取服務(wù)的請求到AS涮母。
- AS驗(yàn)證用戶的權(quán)限,為用戶生成一個票據(jù)(Ticket-granting ticket)以及會話秘鑰(session key generated by AS and for Client and TGS)躁愿。
- 用戶本地輸入密碼叛本,打開消息拿到票據(jù),并把該票據(jù)(Ticket-granting ticket)及驗(yàn)證碼(Authenticator)發(fā)送給TGS彤钟。
- TGS解密票據(jù)来候,驗(yàn)證身份,并為用戶生成一個票據(jù)(Ticket)以及會話秘鑰(Session Key generated by TGS and for Client and Server)逸雹。
- 用戶發(fā)送該票據(jù)及驗(yàn)證符給服務(wù)器脏毯。
- 服務(wù)器解密票據(jù)篱蝇,并驗(yàn)證驗(yàn)證符和票據(jù)里的用戶是否一致法绵,同意訪問請求。
- X.509協(xié)議的公鑰證書使用方式
A和B都到可信任的證書中心CA去园欣,CA各為他們頒發(fā)一個證書,此后每當(dāng)A和B想向?qū)Ψ津?yàn)證身份時休蟹,只需要把自己的證書發(fā)給對方就可沸枯,對方看到這是我信任的CA頒發(fā)的證書,那么就用CA的公鑰去驗(yàn)證這個證書的真實(shí)性赂弓,如果驗(yàn)證通過了绑榴,那么A也就相信B的身份了。
chapter 13
- 隨著互聯(lián)網(wǎng)的發(fā)展盈魁,企業(yè)翔怎、公司、組織在互聯(lián)網(wǎng)上進(jìn)行電子商務(wù)的活動量也就增加了备埃,于是他們需要一個安全的網(wǎng)絡(luò)傳輸姓惑,這就是Web安全的需求。
- SSL協(xié)議是在傳輸層按脚。
SSL由SSL握手協(xié)議于毙、SSL修改密文協(xié)議、SSL告警協(xié)議以及SSL記錄協(xié)議構(gòu)成辅搬。
SSL握手協(xié)議:(精髓:首先利用證書驗(yàn)證對方身份唯沮,其次用公鑰加密傳輸預(yù)主秘鑰,最后利用這個預(yù)主秘鑰產(chǎn)生的各種秘鑰堪遂,包括會話秘鑰介蛉、初始向量以及驗(yàn)證秘鑰,來利用對稱加密加密數(shù)據(jù)) - IPSec協(xié)議是在網(wǎng)絡(luò)層溶褪。
IPSec是由AH(僅用于提供認(rèn)證服務(wù))和ESP協(xié)議(可提供有限的認(rèn)證服務(wù)以及保密服務(wù))構(gòu)成币旧。
AH和ESP的傳輸模式和隧道模式:
見PPT上的四幅圖
chapter 14
- PGP的三種服務(wù)
- 僅認(rèn)證服務(wù): (精髓:對消息的哈希值做簽名,因?yàn)橄⒖赡苁亲冮L的猿妈,而哈希值是較短的定長串)
- 僅保密服務(wù): (精髓:先用公鑰加密加密一個會話秘鑰吹菱,再用會話秘鑰對消息進(jìn)行對稱加密,因?yàn)楣€加密較慢彭则。)
- 同時提供認(rèn)證和保密服務(wù): (精髓:把前兩者結(jié)合起來鳍刷,注意是先簽名再加密)