目录
1.1 计算机系统
1.1.1 计算机硬件组成
1.1.2 中央处理单元
1.1.3 数据表示
1.1.4 校验码
1.2 计算机体系结构
1.2.1 体系结构分类
1.2.2 指令系统存
1.2.3 储系系统
1.2.4 输入/输出技术
1.2.5 总线结构
1.3 可靠性、性能、安全
1.3.1 计算机可靠性
1.3.2 计算机系统的性能评价
1.3.3 信息安全
前言:
笔记来自《文老师软考数据库》教材精讲,精讲视频在b站,某宝都可以找到,个人感觉通俗易懂。
1.1 计算机系统
1.1.1 计算机硬件组成
- 计算机的基本硬件系统由运算器控制器、存储器、输入设备和输出设备5 大部件组成。
- 运算器、控制器等部件被集成在一起统称为中央处理单元(Central Processing Unit,CPU)。CPU是硬件系统的核心,用于数据的加工处理,能完成各种算术逻辑运算及控制功能。
- 存储器是计算机系统中的记忆设备,分为内部存储器和外部存储器。前者速容量小,一般用于临时存放程序、数据及中间结果。而后者容量大、速度高、度慢,可以长期保存程序和数据。
- (简称外设),输入设备用于输入原始输入设备和输出设备合称为外部设备数据及各种命令,而输出设备则用于输出计算机运行的结果。
1.1.2 中央处理单元
【CPU的功能】
- 程序控制。CPU通过执行指令来控制程序的执行顺序,这是PU的重要功能。
- 操作控制。一条指令功能的实现需要若干操作信号配合来完成,CPU产生每条指令的操作信号并将操作信号送往对应的部件,控制相应的部件按指令的功能要求进行操作。
- 时间控制。CPU对各种操作进行时间上的控制,即指令执行过程中操作信号的出现时间、持续时间及出现的时间顺序都需要进行严格控制。
- 数据处理。CPU通过对数据进行算术运算及逻辑运算等方进行加工处理,数据加工处理的结果被人们所利用。所以,对数据的加工处理也是CPU最根本的任务。
此外,CPU 还需要对系统内部和外部的中断(异常)做出响应,进行相应的处理。
【CPU的组成】
CPU 主要由运算器、控制器寄存器组和内部总线等部件组成。
- 运算器:执行所有的算术运算,如加减乘除等,执行所有的逻辑运算并进行逻辑测试,如与、或、非、比较等。由以下组件组成:
1.算术逻辑单元ALU :实现对数据的算术和逻辑运算;
2.累加寄存器AC :运算结果或源操作数的存放区;
3.数据缓冲寄存器DR:暂时存放内存的指令或数据;
4.状态条件寄存器PSW :保存指令运行结果的条件码内容,如溢出标志等。 - 控制器:控制整个CPU的工作,最为重要。由以下组件组成:
1.指令寄存器IR:暂存CPU执行指令;
2.程序计数器PC :存放指令执行地址;
3.地址寄存器AR:保存当前CPU所访问的内存地址;
4.指令译码器ID:分析指令操作码。 - CPU依据指令周期的不同阶段来区分二进制的指令和数据,因为在指令周期的不同阶段,指令会命令CPU分别去取指令或者数据。
1.1.3 数据表示
- 进制的表示:二进制、十六进制,一般在题目中会给出中文说明,如果没给出,注意二进制符号为0b,一般表示为0b0011,十六进制符号为0x或H,可表示为0x18F或18FH。(十六进制可表示0-15,其中10-15用A-F来表示)
- R进制整数转十进制:位权展开法,用R进制数的每一位乘以R的n次方,n是变量,从R进制数的整数最低世并婚农次为0,1,2,3..累加。
- 例如有6进制数5043,此时R=6,用6进制数的每一位乘以6的n次方,n是变量从6进制数的整数最低位开始(5043从低位到高位排列:3,4,0,5),n依次为0,1,2,3,那么最终5043=3*6^0+4*6A1+0*6A2+5*6A3=1107。
- 十进制转R进制:十进制整数 (除以R倒取余数)用十进制整数除以R,记录每次所得余数,若商不为0,则继续除以R,直至商为0,而后将所有余数从下至上记录,排列成从左至右顺序,即为转换后的R进制数:
- 例:有十进制数200,转换为5进制,此时R=6,将200/6,,得商为33s余数为2;因为商不等于0,因此再将商33/6,得商为5,余数为3;再将5/6,得商为0,余数为5;此时商为0,将所有余数从下到上记录,得532。
- m进制转n进制:先将m进制转化为十进制数,再将十进制数转化为n进制数中间需要通过十进制中转,但下面两种进制间可以直接转化:
1. 二进制转八进制:每三位二进制数转换为一位八进制数,二进制数位个数不是三的倍数,则在前面补0(原则是数值不变),如二进制数01101有五位,前面补一个0就有六位,为001101,每三位转换为一位八进制数,001=1101=1+4=5,也即01101=15
2. 二进制转十六进制:每四位二进制数转换为一位十六进制数,二进制数位个数不是四的倍数,则在前面补0,如二进制数101101有六位,前面补两个0就有八位,为00101101,每四位转换为一位十六进制数,0010=2,1101=13=D,也即101101=2D。 - 机器数:各种数值在计算机中表示的形式,其特点是使用二进制计数制,数的符号用0和1表示,小数点则隐含,不占位置。机器数有无符号数和带符号数之分。无符号数表示正数,没有符号位。带符号数最高位为符号位,正数符号位为0,负数符号位为1。
- 定点表示法分为纯小数和纯整数两种,其中小数点不占存储位,而是按照以下约定:
纯小数:约定小数点的位置在机器数的最高数值位之前。
纯整数:约定小数点的位置在机器数的最低数值位之后。
真值:机器数对应的实际数值。
【带符号数有下列编码方式,当真值为-45时】
- 原码:一个数的正常二进制表示最高位表示符号,数值0的源码有两种形式+0(00000000)和-0(10000000)。-45对应原码为10101101
- 反码:正数的反码即原码;负数的反码是在原码的基础上,各位按位取反。数值0的反码也有两种形式:+0 (00000000),-0 (11111111)。-45对应反码为11010010
- 补码:正数的补码即原码,负数的补码是在原码的基础上,除符号位外,其他各位按位取反,而后末位+1,若有进位则产生进位。因此数值0的补码只有一种形式+0=-0=00000000。-45对应补码为11010011
- 移码:用作浮点运算的阶码,无论正数负数,都是将该原码的补码的首位 (符号位)取反得到移码。-45对应移码为01010011
【浮点数的表示】
- 浮点数:表示方法为N=F*2E,其中E称为阶码,F称为尾数;类似于十进制的科学计数法,如85.125=085125*10^2,二进制如101.011=0.101011*2A3.
- 在浮点数的表示中,阶码为带符号的纯整数,尾数为带符号的纯小数,要注意符号占最高位(正数0负数1),其表示格式如下:
阶符 阶码 数符 尾数 很明显,与科学计数法类似个浮点数的表示方法不是唯一的,浮点数所能表示的数值范围由阶码确定,所表示的数值精度由尾数确定
-
尾数的表示采用规格化方法,也即带符号尾数的补码必须为1.0xxxx(或者0.1xxxx(正数),其中x可为0或1。
浮点数的运算:对阶(使两个数的阶码相同,小阶向大阶看齐,较小阶码增加几位,尾数就右移几位)。
尾数计算(相加,若是减运算则加负数)结果规格化(即尾数表示规格化,带符号尾数转换为1.0xxxx或0.1xxxx)。
1.1.4 校验码
- 码距:就单个编码A:00而言,其码距为1,因为其只需要改变一位就变成另一个编码。在两个编码中,从A码到B码转换所需要改变的位数称为码距,如A:00要转换为B:11,码距为2。一般来说,码距越大,越利于纠错和检错
- 奇偶校验码:在编码中增加1位校验位来使编码中1的个数为奇数 (奇校验或者偶数 (偶校验),从而使码距变为2。例如:
○ 发送给接收方,接收方收到后,会计算收到的奇校验:编码中,含有奇数个1,编码有多少个1,如果是奇数个,则无误,是偶数个,则有误。
○ 偶校验同理,只是编码中有偶数个1,由上述,奇偶校验只能检1位错,并且无法纠错。
【CRC校验码】
- CRC只能检错,不能纠错。使用CRC 编码,需要先约定一个生成多项式G(x)生成多项式的最高位和最低位必须是1。假设原始信息有m位,则对应多项式M(x)。生成校验码思想就是在原始信息位后追加若干校验位,使得追加的信息能被G(x)整除。接收方接收到带校验位的信息,然后用G(x)整除。余数为0,则没有错误;反之则发生错误。
- 例:假设原始信息串为10110,CRC的生成多项式为G(x)=x^4+x+1,求CRC校验码
(1)在原始信息位后面添0,假设生成多项式的阶为r,则在原始信息位后添加r个0,本题中,G(x)阶为4,则在原始信息串后加4个0,得到的新串为101100000作为被除数。
(2)由多项式得到除数,多项中x的幂指数存在的位置1,不存在的位置0。本题中,x的幂指数为0,1,4的变量都存在,而幂指数为2,3的不存在,因此得到串10011
(3)生成CRC校验码,将前两步得出的被除数和除数进行模2除法运算 (即不进位也不借位的除法运算)。得到余数1111(注意:余数不足r,则余数左边用若千个0 补齐。如求得余数为11,r=4,则补两个0得到0011)。
(4)生成最终发送信息串,将余数添加到原始信息后。上例中,原始信息为410110,添加余数1111后,结果为10110 1111。发送方将此数据发送给接收方
(5)接收方进行校验。接收方的CRC 校验过程与生成过程类似,接收方接收了带校验和的帧后,用多项式G(x)来除。余数为0,则表示信息无错,否则要求发送方进行重传。注意:收发信息双方需使用相同的生成多项式
【海明码】
- 海明码:本质也是利用奇偶性来错和纠错的检验方法,构成方法是在数据位之间的确定位置上插入k个校验位,通过扩大码距实现检错和纠错设数据位是n位,校验位是k位,则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,表示7由第4位校验位(r2)和第2位校验位(r1)和第1位校验位(r0)共同校验同理,第6位数据位6=4+2,第5位数据位5=4+1,第3位数据位3=2+1前面知道,这些2的n次方都是校验位,可知,第4位校验位校验第765三位数据位,因此,第4位校验位r2等于这三位数据位的值异或,第2位和第1位校验位计算原理同上
计算出三个校验位后,可知最终要发送的海明校验码为1010101。
(3)检错和纠错原理
接收方收到海明码之后,会将每位校验位与某校验的位数分别异或,即做如下三组运算:
如果是偶校验,那么运算得到的结果应该全为0,如果是奇校验,应该全为1,才是正确,假设是偶校验,且接收到的数据为1011101 (第四位出错),此时运算的结果为:
这里不全为0,表明传输过程有误,并且按照r2r1r0排列为二进制100,这里指出的就是错误的位数,表示第100,即第4位出错,找到了出错位,纠错方法就是将该位逆转。
1.2 计算机体系结构
1.2.1 体系结构分类
- 按处理机的数量进行分类: 单处理系统(一个处理单元和其他设备集成)、并行处理系统(两个以上的处理机互联)分布式处理系统(物理上远距离且松合的多计算机系统)
- Flynn分类法:分类有两个因素,即指令流和数据流,指令流由控制部分处理,每一个控制部分处理一条指令流,多指令流就有多个控制部分;数据流由处理器来处理,每一个处理器处理一条数据流,多数据流就有多个处理器;至于主存模块,是用来存储的,存储指令流或者数据流,因此,无论是多指令流还是多数据流,都需要多个主存模块来存储,对于主存模块,指令和数据都一样。
- 依据计算机特性,是由指今来控制数据的传输,因此,一条指令可以控制一条或多条数据流,但一条数据流不能被多条指令控制,否则会出错,就如同上级命令太多还互相冲突不知道该执行哪个,因此多指今单数据MISD不可能
1.2.2 指令系统存
- 计算机指令的组成:一条指令由操作码和操作数两部分组成,操作码决定要完成的操作,操作数指参加运算的数据及其所在的单元地址在计算机中,操作要求和操作数地址都由二进制数码表示,分别称作操作码和地址码,整条指令以二进制编码的形式存放在存储器中。
- 计算机指令执行过程:取指令--分析指令--执行指令三个步骤,首先将程序计数器PC中的指令地址取出,送入地址总线,CPU依据指令地址去内存中取出指令内容存入指令寄存器IR;而后由指令译码器进行分析,分析指令操作码;最后执行指令,取出指令执行所需的源操作数。
【指令寻址方式】
顺序寻址方式:当执行一段程序时,是一条指令接着一条指令地顺序执行;
跳跃寻址方式:指下一条指令的地址码不是由程序计数器给出,而是由本条指令直接给出,程序跳跌后,按新的指令地址开始顺序执行。因此,程序计数器的内容也必须相应改变,以便及时跟踪新的指令地址。
【指令操作数的寻址方式】
- 立即寻址方式:指令的地址码字段指出的不是地址,而是操作数本身;
- 直接寻址方式:在指令的地址字段中直接指出操作数在主存中的地址;
- 间接寻址方式:指令地址码字段所指向的存储单元中存储的是操作数的地址;
- 寄存器寻址方式:指令中的地址码是寄存器的编号;
- 基址寻址方式:将基址寄存器的内容加上指令中的形式地址而形成操作数的有效地址,其优点是可以扩大寻址能力;
- 变址寻址方式:变址寻址方式计算有效地址的方法与基址寻址方式很相似,它是将变址寄存器的内容加上指令中的形式地址而形成操作数的有效地址。
【复杂指令系统和精简指令系统】
CISC是复杂指令系统兼容性强,指令繁多、长度可变,由微程序实现;
RISC是精简指令系统,指令少,使用频率接近,主要依靠硬件实现(通用寄存器,硬布线逻辑控制)
【指令系统-流水线】
指令流水线原理: 将指令分成不同段,每段由不同的部分去处理,因此可以产生叠加的效果,所有的部件去处理指令的不同段。
RISC中的流水线技术
(1)超流水线 (Super Pipe Line) 技术。它通过细化流水、增加级数和提高主频,使得在每个机器周期内能完成一个甚至两个浮点操作。其实质是以时间换取空间
(2) 超标量 (Super Scalar) 技术。它通过内装多条流水线来同时执行多个处理,其时钟频率虽然与一股流水接dw更小的CPI。其实质是以空间换取时间
(3)超长指令字 (Very Long Instruction Word,VLIW) 技术VLIW和超标量都是20世纪8年代出现的概念,其共同点是要同时执行多条指令,其不同在于超标量依靠硬件来实现并行处理的调度,VLIW 则充分发挥软件的作用,而使硬件简化性能提高。
【流水线时间计算】
流水线周期:指令分成不同执行段,其中执行时间最长的段为流水线周期。
流水线执行时间:1条指令总执行时间+ (总指令条数-1)*流水线周期。
流水线吞吐率计算:吞吐率即单位时间内执行的指令条数公式:指令条数/流水线执行时间。
流水线的加速比计算:加速比即使用流水线后的效率提升度,即比不使用流水线快了多少倍,越高表明流水线效率越高,公式:不使用流水线执行时间/使用流水线执行时间
1.2.3 储系系统
- 计算机采用分级存储体系的主要目的是为了解决存储容量、成本和速度之间的矛盾问题。
- 两级存储:Cache-主存、主存-辅存(虚拟存储体系)。
- 局部性原理:总的来说,在CPU运行时,所访问的数据会趋向于一个较小的局部空间地址内,包括下面两个方面:
(1)时间局部性原理:如果一个数据项正在被访问,那么在近期它很可能会被再次访问,即在相邻的时间里会访问同一个数据项。
(2)空间局部性原理:在最近的将来会用到的数据的地址和现在正在访问的数据地址很可能是相近的,即相邻的空间地址会被连续访问。
- 高速缓存Cache用来存储当前最活跃的程序和数据,直接与CPU交互,位于CPU由半导体材料构成。其内容是主存和主存之间,容量小,速度为内存的5-10倍内存的副本拷贝,对于程序员来说是透明的。
- Cache由控制部分和存储器组成,存储器存储数据,控制部分判断CPU要访问的数据是否在cache中,在则命中,不在则依据一定的算法从主存中替换。
- 地址映射: 在CPU工作时,送出的是主存单元的地址,而应从Cache存储器中读/写信息。这就需要将主存地址转换为Cache存储器地址,这种地址的转换称为地址映像,由硬件自动完成映射,分为下列三种方法:
(1)直接映像:将Cache存储器等分成块,主存也等分成块并编号。主存中的块与Cache中的块的对应关系是固定的,也即二者块号相同才能命中。地址变换简单但不灵活,容易造成资源浪费。
(2)全相联映像:同样都等分成块并编号。主存中任意一块都与Cache中任意一块对应。因此可以随意调入Cache任意位置,但地址变换复杂,速度较慢。因为主存可以随意调入Cache任意块,只有当Cache满了才会发生块冲突,是最不容易发生块冲突的映像方式。
(3)组组相连映像:前面两种方式的结合,将Cache存储器先分块再分组,主存也同样先分块再分组,组间采用直接映像,即主存中组号与Cache中组号相同的组才能命中,但是组内全相联映像,也即组号相同的两个组内的所有块可以任意调换。
【磁盘结构和参数】
- 磁盘有正反两个盘面,每个盘面有多个同心圆每个同心圆是一个磁道,每个同心圆又被划分为多个扇区,数据就被存放在一个个扇区中。
- 磁头首先要寻找到对应的磁道,然后等待磁盘进行周期旋转,旋转到指定的扇区,才能读取到对应的数据,因此,会产生寻道时间和等待时间。公式为:存取时间=寻道时间+等待时间(平均定位时间+转动延迟)。
- 注意:寻道时间是指磁头移动到磁道所需的时间,等待时间为等待读写的扇区转到磁头下方所用的时间。
1.2.4 输入/输出技术
计算机系统中存在多种内存与接口地址的编址方法,常见的是下面两种:
(1)内存与接口地址独立编址方法内存地址和接口地址是完全独立的两个地址空间。访问数据时所使用的指令也完全不同,用于接口的指令只用于接口的读/写,其余的指令全都是用于内存的因此,在编程序或读程序时很易使用和辨认。这种编址方法的缺点是用于接口的指令太少、功能太弱。
(2)内存与接口地址统一编址方法内存地址和接口地址统一在一个公共的地址空间里,即内存单元和接口共用地址空间。优点是原则上用于内存的指令全都可以用于接口,这就大大地增强了对接口的操作功能,而且在指令上也不再区分内存或接口指令。该编址方法的缺点就在于整个地址空间被分成两部分,其中一部分分配给接口使用,剩余的为内存所用,这经常会导致内存地址不连续。
计算机和外设间的数据交互方式:
(1)程序控制(查询)方式:CPU主动查询外设是否完成数据传输,效率极低。
(2)程序中断方式:外设完成数据传输后,向CPU发送中断,等待CPU处理数据效率相对较高。中断响应时间指的是从发出中断请求到开始进入中断处理程序中断处理时间指的是从中断处理开始到中断处理结束。中断向量提供中断服务程序的入口地址。多级中断嵌套,使用堆栈来保护断点和现场。
(3)DMA方式(直接主存存取):CPU只需完成必要的初始化等操作,数据传输的整个过程都由DMA控制器来完成,在主存和外设之间建立直接的数据通路效率很高。
- 在一个总线周期结束后,CPU会响应DMA请求开始读取数据;CPU响应程序中断方式请求是在一条指令执行结束时。
1.2.5 总线结构
- 总线(Bus)是指计算机设备和设备之间传输信息的公共数据通道。总线是连接计算机硬件系统内多种设备的通信线路,它的一个重要特征是由总线上的所有设备共享,因此可以将计算机系统内的多种设备连接到总线上。
- 从广义上讲,任何连接两个以上电子元器件的导线都可以称为总线,通常分为以下三类:
(1)内部总线:内部芯片级别的总线,芯片与处理器之间通信的总线。
(2)系统总线:是板级总线,用于计算机内各部分之间的连接,具体分为数据总线(并行数据传输位数)、地址总线 (系统可管理的内存空间的大小) 、控制总线(传送控制命令)。代表的有ISA总线、EISA总线、PCI总线。
(3)外部总线:设备一级的总线,微机和外部设备的总线。代表的有RS232(串行总线)、SCSI(并行总线)、USB (通用串行总线,即插即用,支持热插拔)。
1.3 可靠性、性能、安全
1.3.1 计算机可靠性
【串并联系统可靠性】
无论什么系统,都是由多个设备组成的协同工作,而这多个设备的组合方式可以是串联、并联,也可以是混合模式,假设每个设备的可靠性为R1,R2......Rn则不同的系统的可靠性公式如下:
(1)串联系统,一个设备不可靠,整个系统崩溃,整个系统可靠性R=R1*R2*...* Rn。
(2)并联系统,所有设备都不可靠,整个系统才崩溃,整个系统可靠性R=1-(1-R1)
*(1-R2) * ...*(1-Rn)。
1.3.2 计算机系统的性能评价
- 【性能评测的常用方法】
(1)时钟频率。一般来讲,主频越高,速度越快。
(2)指令执行速度。计量单位KIPS、MIPS。
(3)等效指令速度法。统计各类指令在程序中所占比例,并进行折算,是一种固定比例法。
(4)数据处理速率 (Processing Data Rate,PDR)法。采用计算PDR 值的方法来衡量机器性能,PDR值越大,机器性能越好。PDR与每条指令和每个操作数的平均位数以及每条指令的平均运算速度有关。
(5)核心程序法。把应用程序中用得最频繁的那部分核心程序作为评价计算机性能的标准程序,在不同的机器上运行,测得其执行时间,作为各类机器性能评价的依据。 - 【基准程序法】
基准程序法是目前被用户一致承认的测试性能的较好方法,有(Benchmark)多种多样的基准程序,包括:
(1)整数测试程序。同一厂家的机器,采用相同的体系结构,用相同的基准程序测试,得到的MIPS 值越大,一般说明机器速度越快。
(2)浮点测试程序。指标MFLOPS(理论峰值浮点速度)。
(3)SPEC基准程序(SPEC Benchmark)。重点面向处理器性能的基准程序集将被测计算机的执行时间标准化,即将被测计算机的执行时间除以一个参考处理器的执行时间。
(4)TPC基准程序。用于评测计算机在事务处理、数据库处理、企业管理与决策支持系统等方面的性能。其中,TPC-C是在线事务处理(On-lineTransactionProcessing,OLTP)的基准程序,TPC-D是决策支持的基准程序。TPC-E作为大型企业信息服务的基准程序。
1.3.3 信息安全
- 信息安全含义及属性:保护信息的保密性、完整性、可用性,另外也包括其他属性,如:真实性、可核查性、不可抵赖性和可靠性。
- 保密性:信息不被泄漏给未授权的个人、实体和过程或不被其使用的特性包括:
(1)最小授权原则
(2)防暴露
(3)信息加密
(4)物理保密 - 完整性:信息未经授权不能改变的特性。影响完整性的主要因素有设备故障误码、人为攻击和计算机病毒等。保证完整性的方法包括:
(1)协议:通过安全协议检测出被删除、失效、被修改的字段。
(2)纠错编码方法:利用校验码完成检错和纠错功能。
(3)密码校验和方法。
(4)数字签名:能识别出发送方来源。
(5)公证:请求系统管理或中介机构证明信息的真实性。 - 可用性:需要时,授权实体可以访问和使用的特性。一般用系统正常使用时间和整个工作时间之比来度量。
- 其他属性:
- 真实性:指对信息的来源进行判断,能对伪造来源的信息予以鉴别。
- 可核查性:系统实体的行为可以被独一无二的追溯到该实体的特性,这个特性就是要求该实体对其行为负责,为探测和调查安全违规事件提供了可能性。
- 不可抵赖性:是指建立有效的责任机制,防止用户否认其行为,这一点在电子商务中是极其重要的。
- 可靠性:系统在规定的时间和给定的条件下,无故障地完成规定功能的概率
- 【安全需求】
可划分为物理线路安全、网络安全、系统安全和应用安全;从各级安全需求字面上也可以理解:
(1)物理线路就是物理设备如理环境;
(2)网络安全指网络上的攻击、入侵;
(3)系统安全指的是操作系统漏洞、补丁等;
(4)应用安全就是上层的应用软件,包括数据库软件。
【对称加密技术】
数据的加密和解密的密钥 (密码) 是相同的,属于不公开密钥加密算法。其缺点是加密强度不高 (因为密钥位数少)且密钥分发困难 (因为密钥还需要传输给接收方,也要考虑保密性等问题)。优点是加密速度快,适合加密大数据。
- 常见的对称密钥加密算法如下:
(1)DES:替换+移位、56位密钥、64位数据块、速度快,密钥易产生;
(2)3DES:三重DES,两个56位密钥K1、K2。加密:K1加密->K2解密->K1加密,解密:K1解密->K2加密->K1解密;
(3)AES:是美国联邦政府采用的一种区块加密标准,这个标准用来替代原先的DES.对其的要求是“至少像3DES一样安全”;
(4)RC-5:RSA数据安全公司的很多产品都使用了RC-5;
(5)IDEA:128位密钥,64位数据块,比DES的加密性好,对计算机功能要求相对低。
【非对称加密技术】
数据的加密和解密的密钥是不同的,分为公钥和私钥是公开密钥加密算法其缺点是加密速度慢。优点是安全性高,不容易破解。
非对称技术的原理是:发送者发送数据时,使用接收者的公钥作加密密钥私钥作解密密钥,这样只有接收者才能解密密文得到明文。安全性更高,因为无需传输密钥。但无法保证完整性。如下:
- 常见的非对称加密算法如下RSA:512位(或1024位)密钥,计算机量极大,难破解,Elgamal、ECC(圆曲线算法)、背包算法、Rabin、D-H等。
【对称密钥和非对称密钥的比较】
相比较可知,对称加密算法密钥一般只有56位,因此加密过程简单,适合加密大数据,也因此加密强度不高,而非对称加密算法密钥有1024位,相应的解密计算量庞大,难以破解,却不适合加密大数据,一般用来加密对称算法的密钥,这样,就将两个技术组合使用了,这也是数字信封的原理。
【数字信封原理】
信是对称加密的密钥,数字信封就是对此密钥进行非对称加密,具体过程:发送方将数据用对称密钥加密传输,而将对称密钥用接收方公钥加密发送给对方。接收方收到数字信封,用自己的私钥解密信封,取出对称密钥解密得原文。
数字信封运用了对称加密技术和非对称加密技术,本质是使用对称密钥加密数据,非对称密钥加密对称密钥,解决了对称密钥的传输问题。
【信息摘要】
所谓信息摘要,就是一段数据的特征信息,当数据发生了改变,信息摘要也会发生改变,发送方会将数据和信息摘要一起传给接收方,接收方会根据接收到的数据重新生成一个信息摘要,若此摘要和接收到的摘要相同,则说明数据正确。信息摘要是由哈希函数生成的。
信息摘要的特点:不算数据多长,都会产生固定长度的信息摘要,任何不同的输入数据,都会产生不同的信息摘要,单向性,即只能由数据生成信息摘要不能由信息摘要还原数据。
信息摘要算法:MD5(产生128位的输出)、SHA-1(安全散列算法,产生160位的输出,安全性更高)
【数字签名】
唯一标识一个发送方发送者发送数据时,使用发送者的私钥进行加密,接收者收到数据后,只能使用发送者的公钥进行解密这样就能唯一确定发送方,这也是数字签名的过程但无法保证机密性。如下:
【公钥基础设施PKI】
是以不对称密钥加密技术为基础,以数据机密性、完整性身份认证和行为不可抵赖性为安全目的,来实施和提供安全服务的具有普适性的安全基础设施。
(1)数字证书:一个数据结构,是一种由一个可信任的权威机构签署的信息集合。在不同的应用中有不同的证书。如X.509证书必须包含下列信息:(1)版本号息;(2)序列号;(3)签名算法标识符; (4)认证机构;(5)有效期限;(6)主题信;(7)认证机构的数字签名;(8)公钥信息。
公钥证书主要用于确保公钥及其与用户绑定关系的安全。这个公钥就是证书所标识的那个主体的合法的公钥。任何一个用户只要知道签证机构的公钥,就能检查对证书的签名的合法性。如果检查正确,那么用户就可以相信那个证书所携带的公钥是真实的,而且这个公钥就是证书所标识的那个主体的合法的公钥例如驾照
(2)签证机构CA:负责签发证书、管理和撤销证书。是所有注册用户所信赖的权威机构,CA在给用户签发证书时要加上自己的数字签名,以保证证书信息的真实性。任何机构可以用CA的公钥来验证该证书的合法性。