密碼編碼學與網絡安全
密碼算法
3個分支:
- 對稱密碼
- 非對稱密碼
- 密碼學Hash函數以及相關的消息認證碼和數字簽名
互相信任
兩個範疇:
- 通信雙方基於加密密鑰建立信任的密鑰管理和密鑰分配的問題
- 基於通信方身份建立信任的用戶認證問題
密碼算法與協議
4個領域:
- 對稱加密:用於加密任意大小的數據塊或數據流的內容,包括消息、文件、加密密鑰和口令
- 非對稱加密:用於加密小的數據塊,如加密密鑰或者數字簽名中使用的Hash函數值
- 數據完整性算法:用於保護數據塊(如一條消息)的內容免於被修改
- 認證協議:有許多基於密碼算法的認證方案,用來認證實體的真實性
計算機安全
對於一個自動化的信息系統,採取保護措施保護信息系統資源(包括硬件、軟件、固件、信息/數據和通信)的完整性、可用性和保密性:
保密性(Confidentiality):
- 數據保密性:確保隱私或者祕密信息不向非授權者泄漏,也不被非授權者所使用
- 隱私性:確保個人能夠控制或者確定與其自身相關的哪些信息是可以被收集、被保存的、這些信息可以由誰來公開以及向誰公開
對信息的訪問和公開進行授權限制,包括保護個人隱私和祕密消息。保密性缺失的定義是信息的非授權泄漏
完整性(Integrity):
- 數據完整性:確保信息和程序只能以特定和授權的方式進行改變
- 系統完整性:確保系統以一種正常的方式來執行預定的功能,免於有益或者無益的非授權操縱
防止信息的不恰當修改或破壞,包括確保信息的不可否認性和真實性。完整性缺失的定義是對信息的非授權修改和毀壞 (修改、欺騙和否認,可以用加密Hash函數/Keyed Hash Functions
的方法解決此類問題)可用性(Availability):確保系統能工作迅速,對授權用戶不能拒絕服務
確保對信息的及時和可靠的訪問和使用。可用性的缺失定義是對信息和信息系統訪問和使用的中斷
數據保密性
保證收到的數據的確是授權實體所發出的數據(即沒有修改、插入、刪除或者重播):
- 防止傳輸的數據遭到被動攻擊
- 防止流量分析
不可否認性
不可否認性防止發送方或者接收方否認傳輸或者接受過某條消息。
- 源不可否認
證明消息是由特定方發出 - 宿不可否認
證明消息被特定方接收
隨機數及隨機數特性
- 隨機數
- 獲得隨機數的2種方法:
基於物理現象由硬件產生,比如擲錢幣、骰子、轉輪、使用電子元件的噪音、核裂變等,得到真隨機數;
由數值算法產生,如線性同餘法,單向散列函數法,密碼法,ANSI X9.17等算法,得到僞隨機數。
- 獲得隨機數的2種方法:
- 隨機數特性
- 隨機性:不存在統計學偏差,是完全雜亂的數列
分佈均勻性
獨立性 - 不可預測性:不能從過去的數列推測出下一個出現的數
- 不可重現性:除非將數列本身保存下來,否則不能重現相同的數列
- 隨機性:不存在統計學偏差,是完全雜亂的數列
- 隨機數的使用
- 密鑰分發和相互認證方案
- 會話密鑰的產生
- RSA公鑰加密算法中密鑰的產生
- 用於對稱流密碼加密的位流的產生