㈠ 学好 网络工程师 应该怎么做 (详细!)
一、《网络工程师考试大纲》
二、历次考试的试题分析与解答,一般看看近三年的
三、全国计算机技术与软件专业技术资格(水平)考试指定用书:
《网络工程师教程》雷震甲主编(清华大学出版社)
《软件设计师教程》陈平 褶华 主编(清华大学出版社)
注:《软件设计师教程》不需全看,只要看:
第 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系列原理
算法对比