计算机硬件组成
- 计算机的硬件基本系统由五大部分组成:运算器、控制器、存储器、输入设备(如鼠标键盘)、输出设备(如显示器)
- 存储器分为内部存储器(即内存,容量小,速度快,临死存放数据(即断电或者关机就会消失))和外部存储器(即硬盘、光盘等,容量大,速度慢,长期保存数据)
- 输入设备和输出设备合并为外部设备,即外设
- 主机:CPU+主存储器(运算器+控制器+存储器里的主存,基本不考)
CPU:(运算器+控制器),主要是这两部分
中央处理单元CPU
- 中央处理单元组成:由运算器、控制器、寄存器组和内部总线组成
- 中央处理单元功能:实现程序控制、操作控制、时间控制、数据处理功能(主要实现控制计算算法)
- 运算器组成:由算术逻辑单元ALU(实现对数据的算术和逻辑运算)、累加寄存器AC(运算结果或源操作数的存放区)、数据缓冲寄存器DR(暂时存放内存的指令或数据)、和状态条件寄存器PSW(保存指令运行结果的条件码内容,如溢出标志等)组成。(重点)
- 运算器功能:执行所有的算术运算,如加减乘除等;执行所有的逻辑运算并进行逻辑测试,如非与、或、非、比较等。
- 控制器(CPU中最重要的)组成:由指令寄存器IR(暂存CPU执行指令)、程序计数器PC(存放指令执行地址)、地址寄存器AR(保存当前CPU所访问的内存地址)、指令译码器ID(分析指令操作码)等组成。
- 控制器功能:控制整个CPU工作,最为重要,包括程序控制、时序控制等。
计算机硬件真题
(1)CPU执行算术运算或逻辑运算时,常将源操作数和结果暂存在(累加寄存器AC中)中。B、累加寄存器(AC)
(2)执行CPU指令时,在一个指令周期的过程中,首先需从内存读取要执行的指令,此时先要将指令的地址即(程序计数器PC)的内容送到地址总线上。 C、程序计数器(PC)
数据的进制转化
- 进制的表示:二进制、十六进制,一般在题目中会给出中文说明,如果没给出,注意二进制符号位0b,一般表示为0b0011,十六进制符号为0x或H,可表示为0x18F(这里0x是十六进制的符号,18F才是真正的数)或18FH(0-9,A-F)
- R进制整数转十进制:位权展开法,
例如有6进制数5043,此时R=6,用6进制数的每一位乘以R的n次方,n是变量,从6进制数的整数的最低位开始(3,4,0,5),即(6进制)5043=3*6^0+4*6^1+0*6^2+5*6^3=1101(十进制)
- 十进制转R进制: 除以R倒取余数
例:有十进制数200,转换为六进制,此时R=6, 将200/6,得到商为33,余数为2;
- m进制转n进制:先将m进制转换为十进制数,再将十进制数转化为n进制数,中间需要通过十进制中转,不过下边这两种进制可以直接转换。(二进制跟八进制之间的转化)
- 二进制转八进制:每三位二进制数转换为一位八进制数,二进制数位个数不是三的倍数,则在前面补0(原则是数值不变),如二进制数01101有五位,前面补一个0就有6位,为001101,每三位转一位八进制数,001=1,101=1+4=5,即01101=15
- 二进制转十六进制:每四位二进制数转换为一位十六进制数,二进制数位个数不是4的倍数,则在前面补0,如二进制数101101有六位,前面补两个0就有八位,为00101101,每四位转换为一位十六进制数,0010=2,1101=13=D,即101101=2D(转十六进制这个很重要)
- 小数部分转换不考(可自行了解)
数的表示
- 机器数:各种数值在计算机中表示的形式,其特点是使用二进制计数制,数的符号用0和1表示,小数点隐含,不占位置。
- 机器数有无符号数和带符号数之分。无符号数表示正数,没有符号位。带符号数最高位为符号位,正数符号位为0,负数符号位为1。
- 定点表示法分为纯小数和纯整数两种,其中小数点不占存储位,而是按照以下约定:
- 纯小数:约定小数点的位置在机器数的最高数值位之前
- 纯整数:约定小数点的位置在机器数的最低数值位之后。
- 真值:机器数对应的实际数值。
数的编码方式 (不怎么考)
- 带符号数有下列编码方式:
- 原码:一个数的正常二进制表示,最高位表示符号。数值0的原码有两种形式:+0(0 000000)和-0(1 0000000)
- 反码:正数的反码即原码;负数的反码是在原码的基础上,除符号位外,其他各位按位取反。数值0的反码也有两种形式:+0(0 0000000)和-0(1 1111111)。
- 补码:正数的补码即原码;负数的补码是在原码的基础上,除符号位外,其他各位按位取反,而后末位+1,若有进位则产生进位。因此数值0的补码只有一种形式+0=-0(0 0000000)
- 移码:用作浮点运算的阶码,无论正数负数,都是将该原码的补码的首位(符号位)取反得到移码。
- 机器字长为n时各种码制表示的带符号数的取值范围(差别在于0的表示,原码和反码分为+0和-0,补码只有一个0,因此可以多表示一个)
提问:若机器字长为8(也就是1位符号位+7位数值位),请给出45和-45的原码、反码、补码和移码。(除2倒取余)
真值 | 原码 | 反码 | 补码 | 移码 |
45 | 00101101 | 00101101 | 00101101 | 10101101 |
-45 | 10101101 | 11010010 | 11010011 | 01010011 |
实际上考试真题不是这么考滴(不会直接考编码)
浮点数表示
- 浮点数:表示方法为N=F*2^E ,其中E称为阶码,F称为尾数;类似于十进制的科学计数法,如85.125=0.85125*10^2,二进制如101.011=0.101011*2^3
- 在浮点数的表示中,阶码为带符号的纯整数,尾数为带符号的纯小数,要注意符号占最高位(正数0负数1),其表示格式如下:
-
阶符 阶码 数符 数码 - 一个浮点数的表示方法不是唯一的,浮点数所能表示的数值范围由阶码确定,所表示的数值精度由尾数确定。
- 尾数的表示采用规格化方法:即带符号数的补码必须为1.0xxxx(负数)或者0.1xxxx(负数),其中x可为0或1
- 浮点数的运算:
- 对阶(使两个数的阶码相同,小阶向大阶看齐,较小阶码增加几位,尾数就右移几位)保持数值不变,对阶这个是重点
- 尾数计算(相加,若是减运算,则加负数)
- 结果规格化:(即尾数表示规格化,带符号尾数转换为1.0xxxx或0.1xxxx)
(浮点数表示的真题)
浮点数在机器中的表示形式如下所示,若阶码长度为e,尾数的长度为m,则以下关于浮点表示的叙述中,正确的是
阶符 阶码 数符 尾数 ①e的值影响浮点数的范围,e越大,所表示的浮点数值范围越大
②e的值影响浮点数的精度,e越大,所表示的浮点数精度越高
③m的值影响浮点数的范围,m越大,所表示的浮点数范围越大
④m的值影响浮点数的精度,m越大,所表示的浮点数精度越高
算术运算和逻辑运算
- 数与数之间的算术运算包括加、减、乘、除等基本运算,对于二进制数,还应该掌握基本逻辑运算,包括: (符号要记住哈)
- 逻辑与&:0和1相与,只要有一个为0结果就为0,两个都为1才为1
- 逻辑或|:0和1相或,只要有一个为1结果就为1,两个都为0才为0
- 异或:同0非1,即参加运算的二进制数同为0或者同为1结果为0,一个为0另一个为结果为1(相同就是0,不相同就是1)
- 逻辑非!:0的非是1,1的非是0
- 逻辑左移<<:二进制数整体左移n位,高位溢出则舍去,低位补0
- 逻辑右移>>:二进制数整体右移n位,低位溢出则舍去,高位补0
检验码
奇偶校验码
- 码距:就单个编码A:00而言,其码距为1,因为其只需要改变一位就变成另一个编码。在两个编码中,从A码到B码转换所需要改变的位数称为码距,如A:00要转换为B:11,码距为2.一般来说 ,一般来说,码距越大,越利于纠错和检错。
- 奇偶校验码:在编码中增加1位校验位来使编码中1的个数为奇数(奇校验)或者偶数(偶校验),从而使码距变为2。例如:(如果本来有奇数个1,则加校验位是+0;如果本来有偶数个1,则加校验位+1)
- 奇校验:编码中,含有奇数个1,发送给接收方,接收方收到后,会计算收到的编码有多少个1,如果是奇数个1,则无误;是偶数个,则有误。
- 偶校验同理,只是编码中有偶数个1,由上述,奇偶校验只能检1位错,并且无法纠错。
循环冗余校验码CRC
- CRC只能检错,不能纠错,其原理是①找出一个能整除多项式的编码(多项式这个题目会直接给的),因此首先要②将原始报文除以多项式,将③所得的余数作为校验位加在原始报文之后,作为发送数据发给接收方,其编码格式为:
- CRC由两部分组成,左边为信息码(原始数据),右边为校验码。校验码是由信息码产生的,校验码位数越长,校验能力越强。求CRC编码时,采用的是模2运算(相当于异或运算,按位运算,不发生借位和进位)
例:原始报文为“11001010101”,其生成多项式:“x^4+x^3+x+1"(需自行转换为二进制编码)。对其进行CRC编码后的结果为?
解答:首先根据多项式得出除数11011,在原始多项式后面加上多项式最高指数个数个0,即4个0,和除数进行模2除法,一直上1(啥意思?),最终得出四位的余数为0011,最终编码为11001010101 0011,然后发送出去。
接收方将收到的数据11001010101 0011与多项式11011进行模2运算,若余数为0,说明校验码正确,数据传输正确。
CRC真题
试题1(2017年上半年试题14)
循环冗余校验码是数据通信领域中最常用的一种差错校验码,该校验方法中,使用多项式除法(模2除法)运算后的余数为校验字段。若数据信息为n位,则将其左移k位后,被长度为k+1位的生成多项式相除,所得的k位余数即构成k个校验码,构成n+k位编码。若数据信息为1100,生成多项式为x^3+x+1(即1011),则CRC编码是(1100010)
海明校验码
- 海明码:本质是利用奇偶性来检错和纠错的检验方法,构成方法是在数据位之间的确定位置上插入k个校验位,通过扩大码距实现检错和纠错。
- 设数据位是n位,校验位是k位,则n和k必须满足以下关系:2^k-1>=n+k
(海明校验码不考检错纠错的原理,一般只考这个公式) 也就是考校验位和信息位的位数(给你数据位这么多,然后问你校验位是多少)
例:求信息1011的海明码
(1)校验位的位数和具体的数据位的位数之间的关系:所有位都编号,从最低位编号,从1开始递增,校验位处于2的n(n=0 1 2......)次方中,即处于第1,2,4,8,16,32......位上,其余位才能填充真正的数据位,若信息数据为1011,则可知,第1,2,4位为校验位,第3,5,6,7位为数据位,用来从低位开始存放1011
(2)每一位校验码的计算公式:需要确定每一位校验码到底校验哪些信息位,将信息位(即编号)拆分成二进制表示,如7=4+2+1,由第4位校验位(r2)和第2位校验位(r1)和第1位校验位(r0)共同校验。同理,第6位数据位6=4+2,第5位数据位5=4+1,第3位数据位3=2+1,前面知道,这些2的n次方都是校验位,可知,第4位校验位校验第7,6,5三位数据位,因此,第4位校验位r2等于这三位数据位的值异或,第2位和第1位校验位计算原理同上,计算出这三个校验位后,可知最终要发送的海明校验码为1010101
(3)检错和纠错原理
接收方收到海明码之后,会将每一位校验位与其校验的位数分别异或,即做如下三组运算:
- 如果是偶校验,那么运算得到的结果应该全为0,如果是奇校验,应该全为1.假设是偶校验,且接受的数据为1011101(第四位出错)。此时,运算的结果为:
这里不全为0,表明传输过程有误,并且按照r2r1r0排列为二进制100,这里指出的就是错误的位数,表示第100,即第4位出错,找到了出错位,纠错方法就是将该位逆转。
计算机体系结构分类
Flynn分类法,(非常重要,经常考)如下图所示:主要是根据数据流和指令流来对计算机进行分类(经常会考英文符号)Single Instruction Multiple Data
MISD的关键特性也是经常考的(就是不可能的,没办法实现的)
体系结构类型 | 结构 | 关键特性 | 代表 |
单指令流单数据流SISD | 控制部分:一个 处理器:一个 主存模块:一个 | 单处理器系统 | |
单指令流多数据流SIMD | 控制部分:一个 处理器:多个 主存模块:多个 | 各处理器以异步的形式执行同一条指令 | 并行处理机 陈列处理机 超级向量处理机 |
多指令流单数据流MISD | 控制部分:多个 处理器:一个 主存模块:多个 | 被证明不可能,至少是不切实际 | 目前没有,有文献称流水线计算机为此类 |
多指令多数据流MIMD | 控制部分:多个 处理器:多个 主存模块:多个 | 能够实现作业、任务、指令等各级全面并行 | 多处理系统多计算机(多核计算机) |
可以看出,指令流对应的是控制部分;数据流对应的是处理器;主存模块是存储模块,既可以存指令流,也可以存数据流(所以有任意一个是多个,它就是多个)
多指令单数据不能实现的理解(有多个领导来指令你实现多个事情,但一个人的能力有限,无法实现,会产生紊乱)
真题 (选择题)
Flynn分类法根据计算机在执行程序的过程中(指令流和数据流)的不同组合,将计算机分为4类。当前主流的多核计算机属于(MIMD)计算机 (多指令多数据,MIMD)
计算机指令 (这里作了解就可以了)
- 计算机指令的组成:一条指令由操作码和操作数两部分组成,操作码决定要完成的操作(是加法、减法、还是除法?),操作数指参加运算的数据及其所在的单元地址。
- 在计算机中,操作要求和操作数地址都由二进制数码表示,分别称作操作码和地址码,整条指令以二进制编码的形式存放在存储器中。
- 计算机指令执行过程中:取指令--分析指令--执行指令三个步骤,首先将程序计数器PC中的指令地址取出,送入地址总线,CPU依据指令地址去内存中取出指令内容存入指令寄存器IR;而后由指令译码器进行分析,分析指令操作码;最后执行指令,取出指令执行所需的源操作数。
指令寻址方式 (这里也不怎么考)
指令寻址方式
- 顺序寻址方式:当执行一段程序时,是一条指令接着一条指令地顺序执行
- 跳跃寻址方式:指下一条指令的地址码不是由程序计数器给出,而是由本条指令直接给出。程序跳跃后,按新的指令地址开始顺序执行。因此,程序计数器的内容也必须相应改变,以便及时跟踪新的指令地址。
指令操作数的寻址方式
- 立即寻址方式:指令的地址码字段指出的不是地址 ,而是操作数本身(也就是操作数直接放在地址里边)
- 直接寻址方式:在指令的地址字段中直接指出操作数在主存中的地址
- 间接寻址方式:指令地址码字段所指向的存储单元中存储的是操作数的地址
- 寄存器寻址方式:指令中的地址码是寄存器的编号
接下来就是我们的考点了!!
指令系统
CISC和RISC它们分别的特点(一定要全部背下来)以及比较关系,这是重点
- CISC是复杂指令系统,兼容性强,指令繁多、长度可变,由微程序实现
Complex Instruction Set Computer(复杂指令系统计算机)
- RISC是精简指令系统,指令少,使用频率接近,主要依靠硬件实现(通用寄存器、硬布线逻辑控制)
- 具体区别如下:(主要是实现方式这里需要记一下)下边这个表的内容一定要记住!!
指令系统类型 指令 寻址方式 实现方式 其他 CISC(复杂) 数量多,使用频率差别大,可变长格式 支持多种 微程序控制技术(微码) 研制周期长 RISC(精简) 数量少,使用频率接近,定长格式,大部分为单周期指令,操作寄存器,只有Load/Store操作内存 支持方式少 增加了通用寄存器;硬布线逻辑控制为主;适合采用流水线 优化编译,有效支持高级语言
真题
(2017年上半年试题17)
以下关于复杂指令集计算机(CISC)的叙述中,正确的是()
A.只设置使用频度高的一些简单指令,不同指令执行时间差别很小(看到简单两个字就是错了)
B.CPU中设置大量寄存器,利用率低(寄存器是精简的)
C.常采用执行速度更快的组合逻辑实现控制器(是微程序控制,不是组合逻辑)
D.指令长度不固定,指令格式和寻址方式多
指令流水线
- 指令流水线原理:将指令分成不同段,每段由不同部分去处理,因此可以产生叠加的效果,所有的部件去处理指令的不同段,如下图所示:
流水线相关计算(重点掌握)
- 流水线周期:指令分成不同执行段,其中执行时间最长的段为流水线周期。
- 流水线执行时间:1条指令总执行时间+(总指令条数-1)*流水线周期(这个公式非常重要)
- 流水线吞吐率:总指令条数 / 流水线执行时间(也就是单位时间内执行的指令条数)
- 流水线加速比:不使用流水线总执行时间 / 使用流水线总执行时间(也就是不使用流水线的时间会比使用流水线的慢了多少,加速比越大,流水线的执行效率就会越高)
- 超标量流水线技术:常规流水线是度为1的,即每个流水线阶段只执行一个部分,当度大于1时,就是超标量技术;当度为3时,相当于3条流水线并行执行,即取值、分析、执行每个阶段都同时处理3条指令,因此,当题目提到度的概念,计算时需要将:指令条数=指令条数 / 度。然后再套流水线执行时间的公式。
前边三条公式很重要,偶尔考察超标量流水线技术
真题
(2017年上半年试题16)
流水线的吞吐率(总指令条数/指令执行时间)是指流水线在单位时间里完成的任务数或输出的结果数。设某流水线5段,有1段的时间为2ns,另外4段的每段时间为1ns,利用此流水线完成100个任务的吞吐率约为()个/s 吞吐率就是单位时间内指令执行的条数
100 / t =100 / [(2+4)+99*2] = 100 / 204 * 10 ^ 9 = 490 * 10 ^ 6
试题16(2014年上半年试题58-59)
流水线技术是通过并行硬件来提高系统性能的常用方法。对于一个k段流水线,假设其各段的执行时间均相等(设为t),输入到流水线中的任务是连续的理想情况下,完成n个连续任务需要的总时间为( (k+n-1)t )。若某流水线浮点加法运算分为5段,所需要的时间分别是6ns、7ns、8ns、9ns和6ns,则其最大加速比为(4)不使用流水线的时间/使用流水线的时间
假设为n条指令,36n / 36+(n-1)*9 = 36n/(9n+27),这里问的是最大加速比,(当n越大时,这个数越大)当n趋于无穷大时,27可以忽略不计,所以结果为4
存储系统 (重点)
计算机存储系统的层次结构(从上到下,容量越来越大,速度越来越快)
- 计算机采用分级存储体系的主要目的是为了解决存储容量、成本、速度之间的矛盾问题
两级存储:Cache-主存、主存-辅存(虚拟存储体系)
局部性原理(重点):总的来说,在CPU运行时,所访问的数据会趋向于一个较小的局部空间地址,包括下面两个方面:
- 时间局部性原理:如果一个数据项正在被访问,那么在近期它很可能会被再次访问,即在相邻的时间里会访问同一个数据项(比如写循环的时候)
- 空间局部性原理:在最近的将来会用到的数据的地址和现在正在访问的数据地址很可能是相近的,即相邻的空间地址会被连续访问。(比如数组、顺序表)
高速缓存Cache
- 高速缓存Cache用来存储当前最活跃的程序和数据(CPU要找数据的话可以先去Cache里拿,如果Cache也找不到的话,再去主存那拿,这样也就节省时间了),直接与CPU交互,位于CPU和主存之间,容量小,速度为内存的5-10倍,由半导体材料构成。其内容是主存内存的副本拷贝,对于程序员来说是透明的。
- Cache由控制部分和存储器组成,存储器存储数据,控制部分判断CPU要访问的数据是否在Cache中,在则命中,不在则依据一定的算法从主存中替换。
- 地址映射(主存地址和Cache地址的映射):在CPU工作时,送出的是主存单元的地址,而应从Cache存储器中读/写信息。这就需要将主存地址转换为Cache存储器地址,这种地址的转换称为地址映像,由硬件自动完成映射,分为下列三种方法:
直接映像 :将Cache存储器等分成块,主存也等分成块并编号。主存中的块与Cache中的对应关系是固定的,也即二者块号相同才能命中。地址变换简单但不灵活,容易造成资源浪费。(主存按每cache大小先分成区)
全相连映像:同样都等分成块并编号。主存中任意一块都与Cache中任意一块对应。因此可以随意调入Cache任意位置块,只有当Cache满了才会发生块冲突,是最不容易发生块冲突的映像方式。
组组相连映像:前面两种方式的结合,将Cache存储器先分块再分组,主存也同样先分块再分组,组间采用直接映像,即主存中组号与Cache中组号相同放入组才能命中,但是组内全相连映像,也即组号相同的两个组内的所有块可以任意调换
上边关键了解它们的特点
按照Cache地址映像的块冲突概率,从高到低排列的是:
直接映像 -> 组组相连映像 -> 全相连映像
Cache命中率
- 当CPU所访问的数据在Cache中时,称为命中,直接从Cache中读取数据,否则没有命中,需要从主存中读取所需的数据。
使用Cache改善系统的依据是程序的局部性原理(时间局部性、空间局部性)。程序中大部分指令是(顺序存储、顺序执行)的。设某计算机主存的读/写时间为100ns,有一个指令和数据合一的Cache,已知该Cache的读/写时间为10ns,取指令的命中率为98%(所以平均取每条指令的时间:98%*10+2%*100),取数的命中率为95%(所以平均取操作数的时间为:95%*10+5%*100)。在执行某类程序时,约有1/5指令需要额外存/取一个操作数(也就是不是每条指令都有操作数,也就是取操作数的时间只占到1/5)。假设指令流水线在任何时候都不阻塞,则设置Cache后,每条指令的平均读取时间约为(
=(98%*10+2%*100)+1/5(95%*10+5%*100)=14.7)ns。 分为读指令和读数据(所以要先读指令,再读操作数,所以这两段时间是要相加的)
每条指令肯定都是要取指令的,但只有1/5的指令需要取操作数
主存编址 (可以不用懂原理,会算下边这类计算题就ok了)
这种题最好都换算成2的几次方来进行运算
(2013年上半年真题):地址编号从80000H到BFFFFH且按字节编址(每个内存单元占一个字节)的内存容量为(256)KB ,若用16K*4bit的存储芯片构成该内存,共需(32)片。
K:1024;k:1000;B(Bite):字节;b(bit):位;1B=8b
①计算内存单元的个数(=末地址-首地址+1)②内存单元个数*每个内存单元的大小(大小从哪里来?也就是按字节编址) ③换算成KB单位(也就是多少个1024K)
①BFFFFH-80000H+1=40000H ②=40000HB ③先②的十六进制转换成十进制 也就是4*16^4=2^18B 换算 :2^18(B) / 2^10 = 2^8(KB) = 256 (KB)
③16K*4bit=2^3(bit->B)*2^10=2^13 2^18/2^13=2^5=
总线结构(总线这里有很多)
从广义上讲,任意连接两个以上电子元器件的导线都可以称为总线,通常分为以下三类
- 内部总线:内部芯片级别的总线,芯片与处理器之间通信的总线
- 系统总线:是板级总线,用于计算机内部各部分之间的连接,具体分为数据总线(并行数据传输位数)、地址总线(系统可管理的内存空间的大小)、控制总线(传送控制命令)。代表的有ISA总线、EISA总线、PCI总线。
- 外部总线:设备一级的总线,微机和外部设备的总线。代表的有RS232(串行总线)、SCSI(并行总线)、USB(通用串行总线,即插即用,支持热插拔)
试题8(2016年上半年试题17)
以下关于总线的说法,正确的是(C)
A、串行总线(就是一条总线传输)适合
近距离高速数据传输,但线间串扰会导致速率受限(长距离但低速)B、并行总线(那就是多条)适合
长距离数据传输,易提高通信时钟频率来实现高速数据传输(近距离高速)C、单总线结构在一个总线上适应不同种类的设备,设计复杂导致性能降低
D、半双工总线只能在一个方向上传输信息 (半双工(同一时刻只能在一个方向上传输信息)、全双工(也就是同一时刻可以在两个方向上传输))
系统可靠性分析
- 平均无故障时间MTTF=1/失效率
- 平均故障修复时间MTTR=1/修复率
- 平均故障间隔时间MTBF=MTTF+MTTR
- 系统可用性=MTTF/(MTTF+MTTR)*100%
- 无论什么系统,都是由多个设备组成,协同工作,而这多个设备的组合方式可以是串联、并联,也可以是混合模式,假设每个设备的可靠性为R1,R2...Rn ,则不同系统之间的可靠性R的计算公式如下:(重点wow)
- 串联系统,一个设备不可靠,整个设备崩溃:R=R1*R2*...*Rn
- 并联系统,所有系统都不可靠,整个系统才崩溃:R=1-(1-R1)*(1-R2)*...*(1-Rn)(可靠性=1-总体不可靠性)
- 混合系统,划分串联、并联:R*(1-(1-R)^3)*(1-(1-R)^2)
某计算机系统的可靠性结构如下所示,若所构成的每个部件的可靠度分别为R1、R2、R3和R4,则该系统的可靠度为((1-(1-R1R2)(1-R3))R4)
网络安全概述
网络安全五大基本要素
- 保密性:确保信息不暴露给未授权的实体,包括最小授权原则(值赋给使用者恰好够用的权限,防止其看到其他保密的数据)、防暴露(将物理数据库文件和扩展名都修改为一串乱码,防止他人轻易找到复制)、信息加密、物理保密。
- 完整性:保证数据传输过程中是正确无误的,接收和发送额数据相同,包括安全协议、校验码、密码校验、数字签名、公证等手段。
- 可用性:保证合法的用户能以合法的手段来访问数据,包括综合保障(IP过滤、业务流控制、路由选择控制、审计跟踪)
- 可控性:控制授权范围内的信息流及行为方式,整个网络处于可控状态下。
- 不可地抵触性:信息数据参与者不能否认自己发送的数据,参与者身份真实有效
- 安全威胁分类 (要理解他们的应用场景以及原理)
威胁名称 | 描述 |
重放攻击(ARP) | 所截获的某次合法的通信数据拷贝,处于非法的目的而被重新发送(密钥) |
拒绝服务(DOS) | 对信息或其他资源的合法访问被无条件阻止(比如负载,一个网站同个时间能支持的访问量的10000次,如果自己在同一时刻给它访问10000,服务器就会瘫痪了) |
窃听 | 用各种可能的合法或非法的手段窃取系统中的信息资源和敏感信息,例如对通信线路中传输的信号进行搭线监听,或者利用通信设备在工作过程中产生的电磁泄露截取有用信息等 |
业务流分析 | 通过对系统进行长期监听,利用统计分析方法对诸如通信频度、通信的信息流向、通信总量的变化等参数进行研究,从而发现有价值的信息和规律 |
信息泄露 | 信息被泄露或透露给某个非授权的实体 |
破坏信息的完整性 | 数据被非授权的进行增删、修改或破坏而受到损失 |
非授权访问 | 某一资源被某个非授权的人、或以非授权的方式使用 |
抑制重放攻击:时间戳
(下边这些就不怎么重要了,作了解即可)
假冒 | 通过欺骗通信系统(或用户)达到非法用户冒充成为合法用户,或者特权小的用户冒充成为特权大的永不的目的。黑客大多是采用假冒行为进行攻击 |
旁路控制 | 攻击者利用系统的安全缺陷或安全性上的脆弱之处获得非授权或特权。例如,攻击者通过各种攻击手段发现原本应保密,但是又暴露出来的一些系统“特性”。利用这些“特性”,攻击者可以绕过防线守卫者侵入系统内部 |
授权侵犯 | 被授权以某一目的使用某一系统或资源的某个人,却将此权限用于其他非授权的目的,也称作“内部攻击”(内部攻击是最致命的) |
特洛伊木马 | 软件中含有一个察觉不出的或者无害的程序段,当它被执行时,会蒲怀用户的安全 |
陷阱门 | 在某个系统或某个部件中设置了“机关”,使得当前提供特定的输入数据时允许违反安全策略 |
抵赖 | 这是一种来自用户的攻击,比如:否认自己曾经发布过某条信息,伪造一封对方来信等 |
加密技术-保密性
基本概念
- 明文:实际传输的真正数据
- 密文:经过加密之后的数据
- 加密:将明文转换为密文的过程
- 解密:将密文转换为明文的过程
- 加密算法:一般是公开的,包括两大规则,带代换(代换成完全不同的其他数据)和置换(打乱明文顺序,进行重新置换)
- 密钥:加密和解密过程中使用的密码等,是隐藏的
- 对称加密技术:对数据的加密和解密的密钥是相同的,也称为共享密钥加密技术,属于不公开密钥加密算法。其缺点是加密安全性不高(因为只有一个密钥),且密钥分发困难(因为密钥还需要传输给接收方,也要考虑保密问题)。但是其加密速度快,非常适合于大数据的加密。
- 常见的对称密钥加密算法如下:(常考哪些是加密算法,哪些是非加密算法;哪种算法有多少种密钥)
DES:替换+移位、56位密钥、64位数据块、速度快、密钥易产生
3DES(三重DES):两个56位(也就是112位)密钥K1、K2;加密:K1加密->K2解密->K1加密;解密:K1解密->K2加密->K1解密
AES:高级加密标准Rijindael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES。对其要求是“至少与3DES一样安全”
RC-5:RSA数据安全公司的很多产品都使用了RC-5。
IDEA算法:128位密钥、64位数据块,比DES的加密型好,对计算机功能需求相对低,PGD
- 非对称加密技术:又称公开密钥加密技术 ,各个用户分别有一对密钥,称为公钥和私钥,其中公钥是公开的,所有用户都知道,私钥是保密的,只有自己知道,使用公钥加密,只能对应的私钥解密,使用私钥加密,同样只有对应的公钥能解密;非对称加密运用了公钥和私钥的原理,其对数据的加密和解密的密钥是不同的,是公开密钥加密算法。
加密技术-保密性
- 原理:发送方甲方和接收方乙方都各自有公钥和私钥,且甲方的公钥加密只能由甲方的私钥解密,乙方同。双方的公钥是可以共享的的,但是私钥只能自己保密,此时,甲方要传输数据给乙方,明显应该使用乙方的公钥来加密,这样,就只有乙方的私钥能解密,而乙方的私钥只有乙方有,保证了数据的保密性,也不用分发解密的密钥。其缺点是加密速度慢(密钥多,计算量大,不适合加密大数据)
- 常见的非对称算法如下:
- RSA:512位(或1024位)密钥、计算量极大、难破解
- Elgamal:其基础是Diffie-Hellman密钥交换算法
- ECC:椭圆曲线算法
- 其他非对称算法包括:背包算法、Rabin、D-H
- 对称加密算法密钥一般只有56位,因此加密过程简单,适合加密大数据,但加密安全性不高;而非对称加密算法密钥有1024位,安全性高,相应的解密计算量大,难以破解,但不适合大数据加密,一般用来加密对称算法的密钥,(以上将两个技术组合使用,这就是数字信封的原理:例如,用对称算法来加密我们大量的数据明文,再用非对称算法加密密钥)
信息摘要-完整性
- 信息摘要就是一段数据(明文)的特征信息,当数据发生改变,信息摘要也会发生变化,发送方会将数据和信息摘要一起传给接收方,接收方会根据接收到的数据重新生成一个信息摘要 ,若此摘要和接收到的摘要相同,则说明数据正确。信息摘要是由哈希函数生成的。
- 信息摘要的特点:不论数据多长,都会产生固定长度的信息摘要;任何不同的输入数据,都会产生不同的信息摘要;单向性,即只能由数据生成信息摘要,不能由信息摘要还原数据。
- 信息摘要算法:MD5(产生128位的输出)、SHA(安全散列算法,产生160位的输出,安全性更高)
- 使用信息摘要可以保证传输数据的完整性,需要双方比对生成的信息摘要是否相同即可判断数据有没有被篡改,(但是这样会出现一个问题:就是当发送方发送的数据和信息摘要都被篡改了,那么接收方拿到的错误的数据生成的信息摘要也和篡改的信息摘要相同,接收方就无无能为力了,这个问题,在后面的数字签名技术会解决)
数字签名(基于非对称算法)-不可抵赖性
- 上述技术只保证 数据传输过程的保密性和完整性,但却无法保证发送者是否非法,即在传输过程中,数据被第三方截获,即使他不能解密获取真实数据,但是他可以伪造一段数据,也用加密算法解密后再发送给接收方,那么接收方无法判断发送方是否合法,其只会用发送方告诉他的方法来解密。此时就要用数字签名技术来验证发送方是否合法。
- 数字签名属于非对称加密体制(有一对公钥和一对私钥),主要功能有:不可否认、报文鉴别、报文的完整性。
- 原理:若发送方需要发送数据,应该使用发送方的私钥(唯一标识)进行数字签名,而其公钥是共享的,任何接收方都可以拿来解密,因此,接收方使用了发送方的公钥解密,就必然知道此数据是由发送方的私钥加密,而发送的私钥只属于发送方,唯一标识了数据是由谁发送的,这就是数字签名(私钥加密,公钥解密)的过程原理。(保证发送方唯一)
①可以对明文进行数字签名,但我们一般是先把明文生成信息摘要,再对信息摘要进行数字签名
②非对称算法:使用接收方的公钥进行加密
数字证书
- 又称为数字标识,由用户申请,证书签证机关CA对其核实签发,对用户的公钥的认证。上述的技术都是在原发送方是正确的情况下所做的加密和认证技术,然而当发送方本身就是伪造的,即发送的公钥本身是假的,那么后续的加密、数字签名都没有意义,因此对发送方的公钥进行验证十分重要。
- 现在的数字证书版本大多为X.509
- 数字证书的原理:每一个发送方都要向CA申请数字证书,数字证书是经过CA数字签名的,也及CA使用了私钥加密,当发送方要发送数据,接收方首先下载CA公钥,去验证数字证书的真伪。
- 数字证书的格式:序列号、版本号、签名算法、发行者ID、发行者、主体ID、有效期、公钥。
- 最安全的过程要验证两步:1、在网银系统中,使用了网银时,要先下载该银行的数字证书,之后,本地客户机会用CA的公钥对数字证书进行解密,解密成功说明是CA颁发的,是该银行系统而非黑客冒充 2、确认了通信对方无误后,可以采用上述一系列加密和认证技术对通信数据进行加密,确保数据不会再发送过程中被截获篡改。
加解密、信息摘要、数字签名、数字证书
PKI公钥基础设施(这个有个概念就可以了)
- PKI公钥基础设施是提供公钥加密和数字签名服务的系统或平台,目的是为了管理密钥和证书。一个机构通过采用PKI框架管理密钥和证书可以建立一个安全的网络环境。
- PKI主要包括四个部分:X.509格式的证书;CA操作协议;CA管理协议;CA政策制定
- PKI的基础技术包括加密、数字签名、数据完整性机制、数字信封、双重数字签名等。
- 一个PKI应用系统至少应具有以下部分: 公钥密码证书管理、黑名单的发布和管理、密钥的备份和恢复、自动更新密钥、自动管理历史密钥、支持交叉认证
安全技术真题
以下关于三重DES加密的叙述中,正确的是()
A、三重DES使用一个密钥进行三次加密
B、三重DES加密使用两个密钥进行三次加密 (两个密钥)
C、三重DES加密使用三个密钥进行三次加密
D、三重DES加密的密钥长度时DES密钥程度的3倍(2倍而已啦,两个56位)
下面可用于消息认证(也就是信息摘要)的算法是(C、MD5)
A、DES B、PGP C、MD5 D、KMI
下面算法中,不属于公开密钥加密算法的是(D、DES)
A、ECC B、DSA C、RSA D、DES
这些算法都要记住
下面不属于数字签名作用的是()
A、接受者可验证消息来源的真实性
B、发送方无法否认发送过该消息
C、接受者无法伪造或篡改消息(数字签名与信息摘要合用,保证其完整性)
D、可验证接收者的合法性(只能验证发送者的合法性)
数字签名的三点功能:
①接受者能够核实发送方对报文的签名,其他人无法伪造对报文的签名(报文鉴别)
②接受者确信所收到的数据与发送者发送的完全一致,没有被篡改过,(报文的完整性)
③发送者事后不能抵赖对报文的签名,(不可否认性)
用户B收到用户A带数字签名的消息M,为了验证M的真实性,首先需要从CA获取用户A的数字证书(CA利用其私钥进行了数字签名,则利用其公钥即可进行验证),并利用(CA的公钥)验证该证书的真伪,然后利用(A的公钥)验证M的真实性。(两个数字签名的验证过程,第一个是判断发送方的来源是否唯一,第二个是判断发送方在网络传输过程中有没有被更改)