CBK-D2-安全與架構工程
密碼學和對稱密鑰算法
密碼通信的基礎知識
明文P-plaintext、加密encrypt、密文C-ciphertext、解密decrypt、密鑰Key
多數情況下,密鑰無非是一個極大的二進制數
每一種算法都有一個特定密鑰控制key space,是一個特定的數值范圍
密鑰空間由位大小bit size決定,是密鑰內二進制位0和1的數量
密碼術
創建和執行秘密代碼和密碼的技藝
密碼分析
如何打敗代碼和密碼
密碼數學
代價函數從耗費成本和或時間的角度衡量破解所需的代價
代碼作用于單詞和短語,而密碼作用有字符、位和塊
替換密碼–頻率分析
多表替換-周期分析的二階式頻率分析
單詞密本–替換密碼
如果使用得當是不可破解的
1.單次密本必須隨機生成
2.單次密本必須處于物理保護之下,以防泄露
3.每個單次密本必須只使用一次
4.密鑰必須至少與將被加密的消息一樣長
大多數現代加密算法都執行某類塊密碼
私鑰密碼系統
密碼可為已存儲(靜態)、通過網絡傳送(傳輸中/動態)和存在于內存(使用中/處理中)的敏感信息提供保密性、完整性、身份認證和不可否認性
密碼學的基本目標
1.保密性
對稱密碼系統
使用一個共享秘密密鑰
非對稱密碼系統
使用單獨組合的公鑰和私鑰
2.完整性
確保數據沒有在未經授權的情況下被更改
消息的完整性可使用數字簽名,在消息傳輸時創建
完整性保障由公鑰和私鑰系統提供
3.身份認證
挑戰-應答身份認證協議
4.不可否認性
由公鑰或非對稱密鑰提供
現代密碼學
通過復雜算法和長密碼密鑰來實現密碼學的目標
對稱加密算法
1.密鑰分發是問題,通常帶外交換
2.不提供不可否認性
3.算法缺乏可擴展性,無法用于多人之間
4.必須經常重新生成
5.運算速度快,比非對稱算法快1000~10000倍,本身更適合硬件執行
非對稱加密算法
公鑰加密,私鑰解密
私鑰加簽,公鑰驗簽
運算速度緩慢,通常使用混合密碼傳輸大量數據
提供保密性、完整性、身份驗證、不可否認性
哈希算法
哈希函數無法推導消息本身
存在哈希碰撞
一個哈希函數為兩個不同消息產生相同哈希值
幾種常見的對稱密碼系統
GCM、CCM同時包含了保密性和數據真實性
經過驗證的加密模式
ECB,CBC,CFB,OFB和CTR模式只提供了保密性
未經驗證的模式
美國1977年發布數據加密標準DES
2001年12月被高級加密標準取代
64位塊密碼,5種運行模式-ECB,CBC,CFB,OFB,CTR
一次性在64位明文上進行計算生成64位密文
使用密鑰長度56位,8位是奇偶校驗位,但是實踐中很少使用到
16輪加密
國際數據加密算法IDEA
良好隱私PGP安全郵件軟件包
64位明文/密文塊上執行128位密鑰運算,被分解成52個16位子密鑰
Blowfish
64位塊上運行
允許密鑰長度變化,從32位到448位
作者開放軟件許可
已被許多商用軟件產品和操作系統采用
Skipjack
美國政府托管加密密鑰
64位塊運行,80位密鑰,支持4種運行模式
美國財政部和NIST
Rivest Ciphers
Ron Rivest創建的對稱密碼,稱為RC家族,RC4,RC5,RC6
RC4 1987年開發,
只進行一輪加密,使用40-2048位長度可變密鑰
被集成到WEP,WPA,SSL,TLS等,導致WEP,WPA,SSL目前不符合現代安全標準
TLS也不再允許把RC4用作流密碼
RC5 與RC4完全無關,塊大小可變,密鑰0~2040位,被認為是RC2的改進版
RC6是RC5的下一版開發的塊密碼,128位塊大小,128、192、256位對稱密鑰
高級加密標準AES
2001年11月 NIST發布AES/Rijndael
允許使用3中密鑰強度:128,192,256位
只允許處理128位塊,加密輪數取決于所選密鑰長度
對稱密鑰管理
密鑰管理實踐規范
1.秘密密鑰的創建
2.分發
3.存儲
4.銷毀
5.恢復
6.托管
創建和分發密鑰
線下分發-受制于地理位置遙遠
公鑰加密
Diffie-Hellman 密鑰交換算法
存儲和銷毀對稱密鑰
絕不將加密密鑰與被加密數據保存在同一個系統
敏感密鑰,考慮安排兩個人各持一半片段
基于軟件的密鑰存儲,引入軟件機制造破壞的風險
基于硬件的密鑰管理設備,復雜且成本高,能提供額外的保護
密鑰托管和恢復
公平密碼系統
####### 密鑰被分成兩個或多個片段,每個片段交給一個獨立的第三方托管
####### 政府部門在得到合法授權后可以出示法庭命令證明,獲取組合密鑰
托管加密標準
####### 向政府或另一個授權代理提供了解密密文得技術手段–專門針對Clipper芯片提出的
####### N之取M的授權代理
托管密鑰的合法用途
####### 密鑰恢復代理RA recovery agent
####### 預防密鑰丟失,相關人員離職等恢復密鑰