㈠ 學好 網路工程師 應該怎麼做 (詳細!)
一、《網路工程師考試大綱》
二、歷次考試的試題分析與解答,一般看看近三年的
三、全國計算機技術與軟體專業技術資格(水平)考試指定用書:
《網路工程師教程》雷震甲主編(清華大學出版社)
《軟體設計師教程》陳平 褶華 主編(清華大學出版社)
註:《軟體設計師教程》不需全看,只要看:
第 1章 計算機系統知識
第 3章 操作系統知識
第 4章 系統開發和運行知識
第11章 標准化基礎知識
第12章 知識產權基礎知識
四、全國計算機技術與軟體專業技術資格(水平)考試輔導用書
《網路工程師考試輔導》雷震甲主編(西安電子科技大學出版社)
《軟體設計師考試輔導》陳平主編(西安電子科技大學出版社)
以上這些就是網工考試的「最基礎」的復習資料,不可不看!
五、還有一本「不可多得」的好書:《網路工程師考試沖刺指南》徐鋒(電子工業出版社),也需看!
再推薦一個網站吧
http://www.softexam.cn/bbs/show_topic.asp?subject=46656
裡面有些資料非常好的
還有
C++或者JAVA,你選一個語言學的精深一些
不需要太多,好好掌握一門語言就夠了
僅僅靠一種語言就可以實現需求的程序
特別是你想搞網路
那我更建議你學好JAVA
如果你將來想搞應用系統,那你就學C++
網路工程師級考試大綱
一、考試說明
1. 考試要
(1) 熟悉計算機系統的基礎知識;
(2) 熟悉網路操作系統的基礎知識;
(3) 理解計算機應用系統的設計和開發方法;
(4) 熟悉數據通信的基礎知識;
(5) 熟悉系統安全和數據安全的基礎知識;
(6) 掌握網路安全的基本技術和主要的安全協議與安全系統;
(7) 掌握計算機網路體系結構和網路協議的基本原理;
(8) 掌握計算機網路有關的標准化知識;
(9) 掌握區域網組網技術,理解城域網和廣域網基本技術;
(10) 掌握計算機網路互聯技術;
(11) 掌握TCP/IP協議網路的聯網方法和網路應用服務技術;
(12) 理解接入網與接入技術;
(13) 掌握網路管理的基本原理和操作方法;
(14) 熟悉網路系統的基本性能測試和優化技術,以及可靠性設計技術;
(15) 理解網路應用的基本原理和技術;
(16) 理解網路新技術及其發展趨勢;
(17) 了解有關知識產權和互聯網的法律、法規;
(18) 正確閱讀和理解本領域的英文資料。
2.通過本級考試的合格人員能根據應用部門的要求進行網路系統的規劃、設計和網路設備的軟硬體安裝調試工作,能進行網路系統的運行、維護和管理,能高效、可靠、安全地管理網路資源;作為網路專業人員對系統開發進行技術支持和指導;具有工程師的實際工作能力和業務水平,能指導助理工程師從事網路系統的構建和管理工作。
3. 本級考試設置的科目包括:
(1) 計算機與網路知識,考試時間為150分鍾,筆試;
(2) 網路系統設計與管理,考試時間為150分鍾,筆試。
二、考試范圍
考試科目1:計算機與網路知識
1. 計算機系統知識
1.1 硬體知識
1.1.1 計算機結構
· 計算機組成(運算器、控制器、存儲器、存儲器、I/O部件)
· 指令系統(指令、定址方式、CISC、RISC)
· 多處理器(緊耦合系統、松耦合系統、陣列處理機、雙機系統、同步)
· 處理器性能
1.1.2 存儲器
· 存儲介質(半導體存儲器、磁存儲器、光存儲器)
· 存儲系統
· 主存與輔存
· 主存類型,主存容量和性能
· 主存配置(主存奇偶校驗、交叉存取、多級主存、主存保護系統)
· 高速緩存
· 輔存設備的性能和容量計算
1.1.3 輸入輸出結構和設備
· I/O介面(中斷、DMA、通道、SCSI、並行介面、通用介面匯流排、RS-232、USB、IEEE1394、紅外線介面、輸入輸出控制系統、通道)
· 輸入輸出設備類型和特性
1.1.4 嵌入式系統基礎知識
1.2 操作系統知識
1.2.1 基本概念
· 操作系統定義、特徵、功能及分類(批處理、分時、實時、網路、分布式)
· 多道程序
· 內核和中斷控制
· 進程和線程
1.2.2 處理機管理、存儲管理、設備管理、文件管理、作業管理
· 進程的狀態及轉換
· 進行調度演算法(分時輪轉、優先順序、搶占)
· 死鎖
· 存儲管理方案(分段與分頁、虛存、頁面置換演算法)
· 設備管理的有關技術(Spooling、緩沖、DMA、匯流排、即插即用技術)
· 文件管理
· 共享和安全(共享方式、可靠性與安全性、恢復處理、保護機制)
· 作業的狀態及轉換
·作業調度演算法(先來先服務、短作業優先、高響應比優先)
1.3 系統配置方法
1.3.1 系統配置技術
· 系統架構模式(2層、3層及多層C/S和B/S系統)
· 系統配置方法(雙機、雙工、熱備份、容錯、緊耦合多處理器、松耦合多處理器)
· 處理模式(集中式、分布式、批處理、實時系統、Web計算、移動計算)
1.3.2 系統性能
· 性能設計(系統調整、響應特性)
· 性能指標、性能評估(測試基準、系統監視器)
1.3.3 系統可靠性
· 可靠性計算(MTBF、MTTR、可用性、故障率)
· 可靠性設計(失效安全、軟失效、部件可靠性及系統可靠性的分配及預估)
· 可靠性指標和可靠性評估,RAS(可靠性、可用性和可維護性)
2. 系統開發和運行基礎知識
2.1 系統開發基礎知識
2.1.1 需求分析和設計方法
· 需求分析
· 結構化分析設計
· 面向對象設計
· 模塊設計、I/O設計、人機界面設計
2.1.2 開發環境
· 開發工具(設計工具、編程工具、測試工具、CASE)
· 集中開發環境
2.1.3 測試評審方法
· 測試方法
· 評審方法
· 測試設計和管理方法(注入故障、系統測試)
2.1.4 項目管理基礎知識
· 制定項目計劃
· 質量計劃、管理和評估
· 過程管理(PERT圖、甘特圖、工作分解結構、進度控制、關鍵路徑)
· 配置管理
· 人員計劃和管理
· 文檔管理(文檔規范、變更手續)
· 開發組織和作用(開發組成員、項目經理)
· 成本管理和風險管理
2.1.5 系統可審計性
· 審計方法、審計跟蹤
· 在系統中納入和可審計性
2.2 系統運行和維護知識
2.2.1 系統運行
· 系統運行管理(計算機系統、網路)
· 系統成本管理
· 系統運行(作業調度、數據I/O管理、操作手冊)
· 用戶管理(ID注冊和管理)
· 設備和設施管理(電源、空調設備、設備管理、設施安全和管理)
· 系統故障管理(處理手續、監控,恢復過程、預防措施)
· 安全管理
· 性能管理
· 系統運行工具(自動化操作工具、監控工具、診斷工具)
· 系統轉換(轉入運行階段、運行測試、版本控制)
· 系統運行服務標准
2.2.2 系統維護
· 維護的類型(完善性維護、糾錯性維護、適應性維護、預防性維護)
· 維護的實施(日常檢查、定期維護、預防性維護、事後維護、遠程維護)
· 硬體維護,軟體維護,維護合同
3. 網路技術
3.1 網路體系結構
· 網路拓撲結構
· OSI/RM
· 應用層協議(FTP、TELNET、SNMP、DHCP、POP、SMTP、HTTP)
· 傳輸層協議(TCP、UDP)
· 網路層協議IP(IP地址、子網掩碼)
· 數據鏈路層協議(ARP、RARP、PPP、SLIP)
· 物理地址(單播、廣播、組播)
3.2 編碼和傳輸
3.2.1 調制和編碼
· AM、FM、PM、QAM
· PCM、抽樣
3.2.2 傳輸技術
· 通信方式(單工/半雙工/全雙工、串列/並行、2線/4線)
· 差錯控制(CRC、海明碼、奇偶校驗、比特出錯率)
· 同步控制(起停同步、SYN同步、標志同步、幀同步)
· 多路復用(FDM、TDM、WDM)
· 壓縮和解壓方法(JPEG、MPEG、MH、MR、MMR、遊程長度)
3.2.3 傳輸控制
· 競爭系統
· 輪詢/選擇系統
· 基本規程、多鏈路規程、傳輸控制字元、線路控制
· HDLC
3.2.4 交換技術(電路交換、存儲轉發、分組交換、ATM交換、幀中繼)
3.2.5 公用網路和租用線路
3.3 網路
3.3.2 網路分類
· 按地域分類(LAN、MAN、WAN)
· 按服務分類(網際網路、企業內部網)
· 按傳輸媒體分類(電話、數據、視像)
· 按電信網分類(駐地、接入、骨幹)
3.3.2 LAN
· LAN拓撲(匯流排型、星型、環型)
· 訪問控制系統(CSMA/CD、令牌環、令牌匯流排)
· LAN間的連接、LAN-WAN的連接、對等連接、點對點連接
· 高速LAN技術(千兆乙太網)
· 無限LAN
3.3.3 MAN常用結構
3.3.4 WAN與遠程傳輸服務
· 租用線路服務、線路交換服務、分組交換服務
· ISDN、VPN、幀中繼、ATM、IP連接服務
· 衛星通信服務、移動通信服務、國際通信服務
3.3.5 網際網路
· 網際網路概念(網際互聯設備、TCP/IP、IP路由、DNS、代理伺服器)
· 電子郵件(協議、郵件列表)
· Web(HTTP、瀏覽器、URL、HTML、XML)
· 文件傳輸(FTP)
· 搜索引擎(全文搜索、目錄搜索、智能搜索)
· QoS、CGI、VoIP
3.3.6 接入網與接入技術
3.3.7 網路性能
· 有關線路性能的計算(傳輸速度、線路利用率、線路容量、通信量、流量設計)
· 性能評估
· 排隊論的應用
3.4 網路通信設備
3.4.1 傳輸介質和通信電纜
· 有線/無線介質(雙絞線、同軸電纜、光纖;無線電波、光、紅外線)
· 分配線架(IDF)、主配線架(MDF)
3.4.2 各類通信設備
· 線路終端設備、多路設備、交換設備、轉接設備
· 線路連接設備(數據機、DSU、NCU、TA、CCU、PBX)
3.5 網路連接設備
· 網際連接設備(網關、網橋、生成樹網橋、源路由網橋、路由器、中繼器、集線器、交換機)
3.6 網路軟體系統
3.6.1 網路操作系統
· 網路操作系統的功能、分類和特點
· 網路設備驅動程序(ODL、NDIS)
· 網路通信的系統功能調用(套接字API)
· RPC
· TP Monitor
· 分布式文件系統
· 網路設備功能
3.6.2 網路管理
· 網路管理的功能域(安全管理、配置管理、故障管理、性能管理、計費管理)
· 網路管理協議(CMIS/CMIP、SNMP、RMON、MIB-II)
· 網路管理工具(ping、traceroute、NetXray、Analyzer、Sniffer)
· 網路管理平台(OpenView、NetView、SunNet Manager)
· 分布式網路管理
3.6.3 網路應用與服務
· WWW
· FTP文件傳輸
· 電子郵件
· Telnet
· 信息檢索
· 視頻點播
· 網路會議
· 遠程教育
· 電子商務
· 電子政務
· CSCW和群件
4. 網路安全
4.1 安全計算
4.1.1 保密性和完整性
· 私鑰和公鑰加密標准(DES、IDEA、RSA)
· 認證(數字簽名、身份認證)
· 完整性(SHA、MD5)
· 訪問控制(存取許可權、口令)
4.1.2 非法入侵和病毒的防護
· 防火牆
· 入侵檢測
· VPN、VLAN
· 安全協議(IPSec、SSL、ETS、PGP、S-HTTP、TLS)
· 硬體安全性
· 計算機病毒防護
4.1.3 可用性
· 文件的備份和恢復
4.1.4 安全保護
· 個人信息控制
· 匿名
· 不可跟蹤性
4.1.5 LAN安全
· 網路設備可靠性
· 應付自然災害
· 環境安全性
· UPS 4.2 風險管理
4.2.1 風險分析和評估
4.2.2 應付風險的對策
· 風險預防(風險轉移、風險基金、計算機保險)
· 意外事故預案(意外事故類別、應付意外事故的行動預案)
4.2.3 內部控制
· 安全規章制度
· 安全策略和安全管理
5. 標准化知識
5.1 標準的制訂和獲取
5.1.1 標準的制訂和獲取過程
5.1.2 環境和安全性評估標准化
5.2 信息系統基礎設施標准化
5.2.1 標准
· 國際標准(ISO、IEC)與美國標准(ANSI)
· 國家標准(GB)
· 行業標准與企業標准
5.2.2 開放系統(X/Open、OSF、POSIX)
5.2.3 數據交換標准(EDIFACT、STEP、XML)
5.2.4 安全性標准
· 信息系統安全措施標准
· 計算機防病毒標准
· 計算機防非法訪問標准
· CC標准
· BS7799標准
5.3 標准化組織
· 國際標准化組織(ISO、IEC、IETF、IEEE、IAB、W3C)
· 美國標准化組織
· 歐洲工業標准化組織
· 中國國家標准化委員會
6. 信息化基礎知識
· 信息化意識
· 全球信息化趨勢,國家信息化戰略,企業信息化戰略和策略
· 企業信息資源管理基礎知識
· 互聯網相關的法律、法規知識
· 個人信息保護規則
7. 計算機專業英語
· 掌握計算機技術的基本詞彙
· 能正確閱讀和理解計算機領域的英文資料
考試科目2:網路系統設計與管理
1. 網路系統的設計和構建
1.1 網路系統的需求定義
1.1.1 應用需求分析
· 應用需求的調研(應用系統性能、信息產生和接收點、數據量和頻度、數據類型和數據流向)
· 網路應用的分析
1.1.2 現有網路系統分析
· 現有網路體系結構調研(伺服器的數量和位置、客戶機的數量和位置、同時訪問的數量、每天的用戶數,每次s 使用的時間、每次數據傳輸的數據量、網路擁塞的時間段、採用的協議、通信模式)
· 現有網路體系結構分析
1.1.3 需求定義
· 功能需求(待實現的功能)
· 通信需求(期望的通信模式)
· 性能需求(期望的性能)
· 可靠性需求(期望的可靠性)
· 安全需求(安全性標准)
· 維護和運行需求(運行和維護的費用)
· 管理需求(管理策略)
1.2 網路系統的設計
1.2.1 技術和產品的調研和評估
· 收集信息
· 採用的技術和產品的比較研究
· 採用的技術和設備的比較要點
1.2.2 網路系統的設計
· 確定協議
· 確定拓撲結構
· 確定連接(鏈路的通信性能)
· 確定結點(結點的處理能力)
· 確定網路的性能(性能模擬)
· 確定可靠性措施
· 確定安全性措施(安全措施的調研,實現安全措施的技術和設備的評估)
· 網路設備的選擇,制訂選擇標准(成本、性能、容量、處理量、延遲),性能指標的一致性,高級測試的必要性,互連性的確認
1.2.3 新網路業務運營計劃
· 業務過程的確認
· 安裝計劃
· 轉換到新網路的計劃
1.2.4 設計評審
1.3 網路系統的構建和測試
1.3.1 安裝工作
· 事先准備
· 過程監督
1.3.2 測試和評估
· 連接測試
· 安全性測試
· 性能測試
1.3.3 轉換到新網路的工作計劃
2. 網路系統的運行、維護管理、評價
2.1 網路系統的運行和維護
2.1.1 用戶措施
· 用戶管理、用戶培訓、用戶協商
2.1.2 制定維護和升級的策略和計劃
· 確定策略
· 設備的編址
· 審查的時間
· 升級的時間
2.1.3 維護和升級的實施
· 外部合同要點
· 內部執行要點
2.1.4 備份與數據恢復
· 數據的存儲與處置
· 備份
· 數據恢復
2.1.5 網路系統的配置管理
· 設備管理
· 軟體
· 網路配置圖
2.2 網路系統的管理
2.2.1 網路系統的監視
· 網路管理協議(SNMP 、MIB-2、RMON)
· 利用工具監視網路性能(LAN監控器)
· 利用工具監視網路故障
· 利用工具監視網路安全(入侵檢測系統)
· 性能監視的檢查點
· 線路故障檢查點
· 安全監視的檢查點
2.2.2 故障恢復分析
· 故障分析要點(LAN監控程序)
· 排除故障要點
· 故障報告撰寫要點
2.2.3 系統性能分析
· 系統性能分析要點
2.2.4 危害安全的對策
· 危害安全情況分析(調查損失情況,收集安全信息,查找原因)
· 入侵檢測要點
· 對付計算機病毒的要點(查殺病毒措施)
2.3 網路系統的評價
2.3.1 系統評價
· 系統能力的限制
· 潛在問題分析
· 系統評價要點
2.3.2 改進系統的建議
· 系統生命周期
· 系統經濟效益
· 系統的可擴充性
· 建議改進系統的要點
3. 網路系統實現技術
3.1 網路協議
· 商用網路協議(SNA/APPN、IPX/SPX、AppleTalk、TCP/IP)
· 商務協議(XML、CORBA、COM/DCOM、EJB)
· Web 服務(WSDL、SOAP、UDDI)
3.2 可靠性設計
· 硬體高可靠性技術
· 軟體高可靠性技術
· 系統維護高可靠性技術
· 容錯技術
· 通信質量
3.3 網路設施
3.3.1 xDSL數據機
3.3.2 ISDN路由器
· 介面
· 功能(非通信控制功能、NAT功能)
3.3.3 FRAD(幀裝配/拆裝)、CLAD(信元裝配/拆裝)
· 介面
· 功能
3.3.4 遠程訪問伺服器
· 功能和機制
3.3.5 辦公室個人手持系統(PHS)
· 數字無繩電話的功能特性
3.3.6 中繼式HUB
· 倍速集線器(功能和機制)
3.3.7 L2、L3、L4及多層交換機功能和機制
3.3.8 IP路由器功能和控制
3.3.9 虛擬網(功能與機制)
3.3.10 與其他協議的共存(多協議路由器、IP隧道)
3.4 網路應用服務
3.4.1 地址服務
· 機制、DHCP、IPv6(機制和傳輸技術)
3.4.2 DNS(功能、機制)
· 域名、FQDN
3.4.3 電子郵件(功能、機制)
· SMPT、POP、MIME、IMAP4、LDAP
· 郵件列表
· Web Mail
3.4.4 電子新聞(功能和機制、NNTP)
3.4.5 Web服務(功能和機制、HTTP)
3.4.6 負載分布(Web交換)
3.4.7 電子身份驗證(功能、機制、認證授權、電子證書)
3.4.8 服務機制
· 服務供應商、供應商漫遊服務、撥號IP連接、CATV連接、IP電話、網際網路廣播和組播、電子商務、電子政務、移動通信、EZweb、主機服務提供者、EDI(規則、表單、Web EDI)、B2B、B2C、ASP、數據中心
4. 網路新技術
4.1 光纖網
· ATM-PDS、STM-PDS
· 無源光網PON(APON、EPON)
4.2 無線網
· 行動電話系統(WLL、WCDMA、CDMA2000、TD-SCDMA)
· 高速固定無線接入(FWA)
· 802.11a、802.11b、802.11g
· 微波接入(MMDS LMDS)
· 衛星接入
· 籃牙接入
4.3 主幹網
· IPoverSONET/SDH
· IpoverOptical
· IpoverDWDM
4.4 通信服務
· 全天候IP連接服務(租用線路IP服務)
· 本地IP網(NAPT)
· Ipv6
4.5 網路管理
· 基於TMN的網路管理
· 基於CORMBA的網路管理
4.6 網格結算
借作"兩個漢字"的\回答
㈡ 加密技術06-加密總結
對稱密碼是一種用相同的密鑰進行加密和解密的技術,用於確保消息的機密性。在對稱密碼的演算法方面,目前主要使用的是 AES。盡管對稱密碼能夠確保消息的機密性,但需要解決將解密密鑰配送給接受者的密鑰配送問題。
主要演算法
DES
數據加密標准(英語:Data Encryption Standard,縮寫為 DES)是一種對稱密鑰加密塊密碼演算法,1976年被美國聯邦政府的國家標准局確定為聯邦資料處理標准(FIPS),隨後在國際上廣泛流傳開來。它基於使用56位密鑰的對稱演算法。
DES現在已經不是一種安全的加密方法,主要因為它使用的56位密鑰過短。
原理請參考: 加密技術01-對稱加密-DES原理
3DES
三重數據加密演算法(英語:Triple Data Encryption Algorithm,縮寫為TDEA,Triple DEA),或稱3DES(Triple DES),是一種對稱密鑰加密塊密碼,相當於是對每個數據塊應用三次DES演算法。由於計算機運算能力的增強,原版DES由於密鑰長度過低容易被暴力破解;3DES即是設計用來提供一種相對簡單的方法,即通過增加DES的密鑰長度來避免類似的攻擊,而不是設計一種全新的塊密碼演算法。
注意:有3個獨立密鑰的3DES的密鑰安全性為168位,但由於中途相遇攻擊(知道明文和密文),它的有效安全性僅為112位。
3DES使用「密鑰包」,其包含3個DES密鑰,K1,K2和K3,均為56位(除去奇偶校驗位)。
密文 = E k3 (D k2 (E k1 (明文)))
而解密則為其反過程:
明文 = D k3 (E k2 (D k1 (密文)))
AES
AES 全稱 Advanced Encryption Standard(高級加密標准)。它的出現主要是為了取代 DES 加密演算法的,因為 DES 演算法的密鑰長度是 56 位,因此演算法的理論安全強度是 56 位。於是 1997 年 1 月 2 號,美國國家標准技術研究所宣布希望徵集高級加密標准,用以取代 DES。AES 也得到了全世界很多密碼工作者的響應,先後有很多人提交了自己設計的演算法。最終有5個候選演算法進入最後一輪:Rijndael,Serpent,Twofish,RC6 和 MARS。最終經過安全性分析、軟硬體性能評估等嚴格的步驟,Rijndael 演算法獲勝。
AES 密碼與分組密碼 Rijndael 基本上完全一致,Rijndael 分組大小和密鑰大小都可以為 128 位、192 位和 256 位。然而 AES 只要求分組大小為 128 位,因此只有分組長度為 128 位的 Rijndael 才稱為 AES 演算法。
本文 AES 默認是分組長度為 128 位的 Rijndael 演算法
原理請參考: 加密技術02-對稱加密-AES原理
演算法對比
公鑰密碼是一種用不同的密鑰進行加密和解密的技術,和對稱密碼一樣用於確保消息的機密性。使用最廣泛的一種公鑰密碼演算法是 RAS。和對稱密碼相比,公鑰密碼的速度非常慢,因此一般都會和對稱密碼一起組成混合密碼系統來使用。公鑰密碼能夠解決對稱密碼中的密鑰交換問題,但存在通過中間人攻擊被偽裝的風險,因此需要對帶有數字簽名的公鑰進行認證。
公鑰密碼學的概念是為了解決對稱密碼學中最困難的兩個問題而提出
應用場景
幾個誤解
主要演算法
Diffie–Hellman 密鑰交換
迪菲-赫爾曼密鑰交換(英語:Diffie–Hellman key exchange,縮寫為D-H) 是一種安全協議。它可以讓雙方在完全沒有對方任何預先信息的條件下通過不安全信道創建起一個密鑰。這個密鑰可以在後續的通訊中作為對稱密鑰來加密通訊內容。公鑰交換的概念最早由瑞夫·墨克(Ralph C. Merkle)提出,而這個密鑰交換方法,由惠特菲爾德·迪菲(Bailey Whitfield Diffie)和馬丁·赫爾曼(Martin Edward Hellman)在1976年發表,也是在公開文獻中發布的第一個非對稱方案。
Diffie–Hellman 演算法的有效性是建立在計算離散對數很困難的基礎上。簡單地說,我們可如下定義離散對數。首先定義素數 p 的本原跟。素數 p 的本原根是一個整數,且其冪可以產生 1 到 p-1 之間所有整數,也就是說若 a 是素數 p 的本原根,則
a mod p, a 2 mod p,..., a p-1 mod p 各不相同,它是整數 1 到 p-1 的一個置換。
對任意整數 b 和素數 p 的本原跟 a,我們可以找到唯一的指數 i 使得
b ≡ a i (mod p) 其中 0 <= i <= p-1
其中 a, b, p 這些是公開的,i 是私有的,破解難度就是計算 i 的難度。
Elgamal
1985年,T.Elgamal 提出了一種基於離散對數的公開密鑰體制,一種與 Diffie-Hellman 密鑰分配體制密切相關。Elgamal 密碼體系應用於一些技術標准中,如數字簽名標准(DSS) 和 S/MIME 電子郵件標准。
基本原理就是利用 Diffie–Hellman 進行密鑰交換,假設交換的密鑰為 K,然後用 K 對要發送的消息 M,進行加密處理。
所以 Elgamal 的安全系數取決於 Diffie–Hellman 密鑰交換。
另外 Elgamal 加密後消息發送的長度會增加一倍。
RSA
MIT 的羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼(Leonard Adleman)在 1977 年提出並於 1978 年首次發表的演算法。RSA 是最早滿足要求的公鑰演算法之一,自誕生日起就成為被廣泛接受且被實現的通用的公鑰加密方法。
RSA 演算法的有效性主要依據是大數因式分解是很困難的。
原理請參考: 加密技術03-非對稱加密-RSA原理
ECC
大多數使用公鑰密碼學進行加密和數字簽名的產品和標准都使用 RSA 演算法。我們知道,為了保證 RSA 使用的安全性,最近這些年來密鑰的位數一直在增加,這對使用 RSA 的應用是很重的負擔,對進行大量安全交易的電子商務更是如此。近來,出現的一種具有強大競爭力的橢圓曲線密碼學(ECC)對 RSA 提出了挑戰。在標准化過程中,如關於公鑰密碼學的 IEEE P1363 標准中,人們也已考慮了 ECC。
與 RSA 相比,ECC 的主要誘人之處在於,它可以使用比 RSA 短得多的密鑰得到相同安全性,因此可以減少處理負荷。
ECC 比 RSA 或 Diffie-Hellman 原理復雜很多,本文就不多闡述了。
演算法對比
公鑰密碼體制的應用
密碼分析所需計算量( NIST SP-800-57 )
註:L=公鑰的大小,N=私鑰的大小
散列函數是一種將長消息轉換為短散列值的技術,用於確保消息的完整性。在散列演算法方面,SHA-1 曾被廣泛使用,但由於人們已經發現了一些針對該演算法理論上可行的攻擊方式,因此該演算法不應再被用於新的用途。今後我們應該主要使用的演算法包括目前已經在廣泛使用的 SHA-2,以及具有全新結構的 SHA-3 演算法。散列函數可以單獨使用,也可以作為消息認證、數字簽名以及偽隨機數生成器等技術的組成元素來使用。
主要應用
主要演算法
MD5
MD5消息摘要演算法(英語:MD5 Message-Digest Algorithm),一種被廣泛使用的密碼散列函數,可以產生出一個 128 位( 16 位元組,被表示為 32 位十六進制數字)的散列值(hash value),用於確保信息傳輸完整一致。MD5 由美國密碼學家羅納德·李維斯特(Ronald Linn Rivest)設計,於 1992 年公開,用以取代 MD4 演算法。這套演算法的程序在 RFC 1321 中被加以規范。
2009年,中國科學院的謝濤和馮登國僅用了 2 20.96 的碰撞演算法復雜度,破解了MD5的碰撞抵抗,該攻擊在普通計算機上運行只需要數秒鍾。2011年,RFC 6151 禁止MD5用作密鑰散列消息認證碼。
原理請參考: 加密技術04-哈希演算法-MD5原理
SHA-1
SHA-1(英語:Secure Hash Algorithm 1,中文名:安全散列演算法1)是一種密碼散列函數,美國國家安全局設計,並由美國國家標准技術研究所(NIST)發布為聯邦資料處理標准(FIPS)。SHA-1可以生成一個被稱為消息摘要的160位(20位元組)散列值,散列值通常的呈現形式為40個十六進制數。
2005年,密碼分析人員發現了對SHA-1的有效攻擊方法,這表明該演算法可能不夠安全,不能繼續使用,自2010年以來,許多組織建議用SHA-2或SHA-3來替換SHA-1。Microsoft、Google以及Mozilla都宣布,它們旗下的瀏覽器將在2017年停止接受使用SHA-1演算法簽名的SSL證書。
2017年2月23日,CWI Amsterdam與Google宣布了一個成功的SHA-1碰撞攻擊,發布了兩份內容不同但SHA-1散列值相同的PDF文件作為概念證明。
2020年,針對SHA-1的選擇前綴沖突攻擊已經實際可行。建議盡可能用SHA-2或SHA-3取代SHA-1。
原理請參考: 加密技術05-哈希演算法-SHA系列原理
SHA-2
SHA-2,名稱來自於安全散列演算法2(英語:Secure Hash Algorithm 2)的縮寫,一種密碼散列函數演算法標准,由美國國家安全局研發,由美國國家標准與技術研究院(NIST)在2001年發布。屬於SHA演算法之一,是SHA-1的後繼者。其下又可再分為六個不同的演算法標准,包括了:SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256。
SHA-2 系列的演算法主要思路和 SHA-1 基本一致
原理請參考: 加密技術05-哈希演算法-SHA系列原理
SHA-3
SHA-3 第三代安全散列演算法(Secure Hash Algorithm 3),之前名為 Keccak 演算法。
Keccak 是一個加密散列演算法,由 Guido Bertoni,Joan Daemen,Michaël Peeters,以及 Gilles Van Assche 在 RadioGatún 上設計。
2012年10月2日,Keccak 被選為 NIST 散列函數競賽的勝利者。SHA-2 目前沒有出現明顯的弱點。由於對 MD5、SHA-0 和 SHA-1 出現成功的破解,NIST 感覺需要一個與之前演算法不同的,可替換的加密散列演算法,也就是現在的 SHA-3。
SHA-3 在2015年8月5日由 NIST 通過 FIPS 202 正式發表。
原理請參考: 加密技術05-哈希演算法-SHA系列原理
演算法對比