《计算机科学导论》学习笔记

《计算机科学导论》
图灵模型
计算机是一个接收输入数据,处理数据并产生输出数据的黑盒
计算机是在存储器中储存数据
程序是用来告诉计算机对数据进行处理的指令集合。
输出数据是依赖两方面因素的结合作用:输入数据和程序

  1. 相同的程序,不同的数据输入,输出不同
  2. 相同的输入数据,不同的程序
  3. 相同的输入数据,相同的程序

冯.诺伊曼模型
计算机分为4个子系统:存储器,算术逻辑单元,控制单元和输入/输出单元
存储器是用来存储的区域,用来存储数据和程序
算术逻辑单元是用来进行计算和逻辑运算的地方
控制单元是对存储器,算术逻辑单元,输入/输出等子系统进行控制的单元
输入子系统负责从计算机外部接收输入和输出数据和程序
输出子系统负责将计算机的处理结果输出到计算机外部

计算机组成有三部分:计算机硬件,数据和计算机软件

数字系统
位置化系统和非位置化系统
位置化数字系统中,在数字中符号所占据的位置决定了其表示的值。

位置化数字系统是十进制系统
计算机存储正负数的方式不同。
数据存储
计算机工业中使用术语“多媒体”来定义包含数字,文本,图像,音频和视频的信息。

所有计算机外部的数据类型的数据都采用统一的数据表示法转换后存入计算机中,当数据从计算机输出时再还原回来。这种通用的格式统称为位模式。

位(bit)是存储在计算机中的最小单位;它是0或者1.
为了表示数据的不同类型,应该使用位模式,它是一个序列,有时也称为位流。
通常长度为8的位模式被称为1个字节

整数通常使用定点表示法存储在内存中。
在符号加绝对值格式表示法中,最左位用于定义整数的符号。0表示正整数,1表示负整数。
在符号加绝对值格式表示法中,有两个0:+0和-0
符号加绝对值表示法的应用
符号加绝对值表示法不用于存储整数,而用于存储部分实数,符号加绝对值表示法通常用于采样模拟信号,如音频

几乎所有计算机都是使用二进制补码表示法来存储位于n位存储单元中的有符号整数。

在二进制补码表示法中,最左位决定符号。如果它是0,该整数为正;如果是1,该整数为负。
二进制补码表示法仅有一个0
带有很大的整数部分或很小的小数部分的实数不应该用定点表示法存储。
一个数字的浮点表示法由3部分组成;符号,位移量和定点数。

存储音频,音频表示声音和音乐。

  1. 采样(记录值表现模拟信号)
  2. 量化(将样本的值截取为最接近的整数值的一种过程,如实际的值为17.2,就可以街截取为17)
  3. 编码(量化的样本值需要被编码成为位模式)

声音编码标准 音频编码的主流标准为MP3,该标准是用于视频压缩

存储图像
存储在计算机中的图像使用两种不同的技术:光栅图或矢量图。
存储视频
视频是图像在时间上的表示(称为帧),视频是随空间(单个图像)和时间(一系列图像)变化的信息表现。视频通常是被压缩存储的

数据运算
数据上的运算分为三大类:算术运算,移位运算和逻辑运算
Not运算符是一元操作符:它只有一个输入。输出位是输入位的相反,如果输入是0,则输出位1。
And运算符是二元运算符:它有两个输入。如果输入都是1,则输出为1
Or运算符是二元运算符:它有两个输入。如果输入都是0,则输出为0
Or运算符有时被称为包含或运算符。
Xor运算符也是二元运算符,也是有一点不同;如果输入都是1,则输出为0。

对于x=0 或 1 ,x xor 1  not x 和 x xor 1 not x

计算机组成
计算机的组成部件可以分为三大类:中央处理单元(cpu),主存储器和输入/输出子系统。
中央处理单元用于数据的运算。它有三个组成部分:算术逻辑单元(ALU),控制单元,寄存器组(快速存储单元)

算术逻辑单元对数据进行逻辑,位移和算术运算。
寄存器是用来临时存放数据的高速独立的存储单元。CPU的运算离不开多个寄存器。
1, 数据寄存器用来存储输入数据和运算结果。
2, 指令寄存器,CPU的主要职责是:从内存中逐条的取出指令,并将取出的指令存储在指令寄存器中,解释并执行指令
3, CPU中另一个通用寄存器是程序计数器。程序计数器中保存着当前正在执行的指令。

主存储群器是计算机中的第二个主要子系统。它是存储单元的集合,每一个存储单元都有唯一的标识,称为地址。数据以称为字的位组的形式在内存中传入和传出。

内存地址用无符号二进制整数定义。

存储器的类型:主要有两种RAM和ROM

RAM(随机存取存储器)是计算机中主存的主要组成部分。
RAM和ROM的区别在于,用户可读写RAM,即用户可以在RAM中写信息,之后可以方便地通过覆盖来擦除原有的信息。RAM的另一个特点是易失性。当系统断电后信息(程序或数据)将丢失。当计算机断电后,存储在RAM中的信息将被删除。

RAM技术又分为两大类:SRAM(静态RAM)和DRAM(动态RAM)
ROM(只读存储器)的内容是由制造商写进去的。用户只能读不能写,他的优点是非易失性。当切断电源后,数据也不会丢失。

存储器的层次结构
在这里插入图片描述

高速缓冲存储器的存取速度要比主存快,但是比CPU及其内部的寄存器要慢。高速缓冲存储器通常容量较小,且常被置于CPU和主存之间。

当CPU存取主存中的一个字时,将按照以下步骤进行:

  1. CPU首先检查高速缓存
  2. 如果要存取的字存在,CPU就将它复制,如果不存在,CPU将从主存中拷贝一份从需要读取的字开始的数据快。该数据块将覆盖高速缓存中的内容。
  3. CPU存取高速缓冲存储器并拷贝该字

输入/输出子系统
计算机中的第三个子系统是被统称为输入/输出(I/O)子系统,这个子系统可以是计算机与外界通信,并在断电的情况下存储程序和数据。

输入/输出设备可以分为两大类:非存储设备和存储设备。

非存储设备使得CPU/内存可以与外界通信,但它们不能存储信息。
存储设备被称为输入/输出设备,它可以存储大量的信息以备后用,(即使断电信息也不会丢失)

  1. 磁介质存储设备 磁盘 磁带
  2. 光存储设备 CD-ROM(只读光盘) CD-R(可刻录光盘) CD-RW(可重写光盘) DVD

CPU和内存之间有三组线路连接在一起:数据总线,地址总线,控制总线

输入操作必须总是从输入设备读取数据到内存,输出操作必须总是从内存写数据到输出设备

计算机传统上有一个控制单元,一个算术逻辑单元和一个内存单元,并行处理通过使用多指令流处理多数据流来改善吞吐量。
通用计算机使用称为程序的一组指令来处理数据。计算机执行程序,从输入数据创建输出数据。程序和数据都存储再内存中。CPU使用重复的机器周期一条接一条,从头到尾执行程序中的指令。简化的周期有三个阶段组成:取指令,译码和执行。

计算机网络
网络是硬件和软件的组合,它把数据从一个地方发送到另一个地方。硬件是指把信号从网络中的一点传送到另一点的物理设备。软件有指令组成。

网络标准:1.性能(传输时间和响应时间)2.可靠性 3.安全

网络由两个或两个以上通过链路连接的设备构成。链路是数据从一个设备传输到另一个设备的通信通道。

TCP/IP协议
应用层允许负责向用户提供服务。
客户端程序和服务端程序之间的通信称为进程到进程的通信。
当客户需要向服务器发送请求时,它需要服务器应用层的地址。不同的站点有不同的应用层地址,虽然他们可能运行在相同类型的服务器上。
服务器应用层地址能帮助客户端找到服务器计算机的IP地址。客户端进程应该已经知道域名服务器(DNS)的地址。客户端准备和发送消息到DNS服务器,询问它所需要的服务器的实际IP地址。当收到响应之后,客户端服务器就知道了所需服务器的IP地址。

传输层负责整个消息的进程到进程的传输—建立客户和服务器计算机的传输层的逻辑通信。

传输层负责客户和服务器进程间的消息的逻辑传输。

传输层协议
在TCP/IP协议族中定义了三种传输层协议:UDP/TCP和SCTP

用户数据协议有点速度快,效率高
UDP不提供属于单个消息的数据包的逻辑连接,所以被称为无连接协议。
TCP(传输控制协议)是支持传输层所有职责的协议。但是它没有UDP快和高效。
TCP是数据通信中完美的传输层协议,但是它不适合音频和视频的实时传输。如果数据包丢失,TCP需要重新发送,这样破坏了数据包的同步。

SCTP(流控制传输协议)是一个新的协议,它是为了一些预期的因特网服务而设计的,如因特网电话和视频流。这个协议结合了UDP和TCP的优点。SCTP适合用于音频和视频的实时传输。向TCP一样,SCTP提供差错控制和流量控制。

网络层负责单个数据包从源主机到目的主机的发送。
数据链路层负责数据帧的节点到节点的发送。
物理层完成在物理介质上传输二进制流所需要的功能。
在这里插入图片描述

SMTP简单邮件传输协议
FTP文件传输协议,用于从一台计算机拷贝文件到另一计算机。

www的组成:浏览器,web服务器和超文本传输协议(HTTP)。
浏览器组成:控制器,客户端程序和解释器。
HTML超文本标记语言是用于船舰web页面的语言。
XML可扩展标记语言。

操作系统
操作系统是计算机硬件和用户(程序和人)的一个接口,它使得其他程序更加方便有效地运行,并能方便地对计算机硬件和软件资源进行访问。

内存管理器
进程管理器
设备管理器
文件管理器

当操作系统没有对进程的资源进行限制时将会发送死锁。
死锁不是经常发生,死锁发生需要四个必要条件:
互斥。一个资源只能被一个进程占有
资源占有。一个进程占有着一个资源,即使在获取其他资源之前也无法使用它
抢先。操作系统不能临时对资源重新分配
循环等待。所有的进程和资源包含在一个循环里
所有四个条件都是死锁发生所必须的,但是他们只是必要条件(不是充分条件),也就是说对于死锁来说他们必须同时出现,但是它们不一定能引起死锁。
饿死是一种与死锁相反的情况。它发生在操作系统对进程分配资源有太多限制的时候。

设备管理器(输入/输出管理器)负责访问输入/输出设备
文件管理器控制文件的访问。

主流操作系统
UNIX是多用户,多进程,可移植的操作系统,它被设计来方便编程,文本处理,通信。
UNIX有四个主要部分构成:内核,命令解释器,一组标准的工具和应用程序。

Linux有下列组成部分。

  1. 内核
  2. 系统库
  3. 系统工具

Windows NT/2000/XP是面向对象,多层的操作系统。它使用的几个层,包括:硬件抽象层,执行层和环境子系统层。
可扩展性,可移植性,可靠性,兼容性,性能

算法
算法即分步骤解决问题的过程。
算法是一种逐步解决问题或完成任务的方法。
UML(统一建模语言)是算法的图像表示法。显示算法从开始到结束的整个过程。
伪代码是算法的一种类似英语的表示法。
算法是一组明确步骤的有序集合,它产生结果并在有限的时间内终止。
排序
选择排序
选择排序算法使用两重循环,外层循环每次扫描时迭代一次。内层循环在未排序列表中寻找最小的元素。
冒泡排序
在冒泡排序方法中,数字列表被分为两个子列表:已排序的和未排序的。在未排序的子列表中,最小的元素通过冒泡的方法选出来并移到已排序的子列表中。把最小的元素移到已排序的列表后,将墙向前移动一个元素,使得已排序的元素个数增加一个,而未排序数的元素个数减少一个。每次元素从未排序子列表中移到已排序的子列表中,便完成一次分类扫描,含有n个元素的列表,冒泡排序需要n-1次扫描来完成数据排序。
冒泡排序也使用两重循环,外层循环每次扫描过程中迭代一次;每次内层循环则将某一个元素冒泡顶部(左部)。

插入排序
在插入排序中,排序被分为两部分:已排序和未排序的,在每次扫描中,未排序子列表中的第一个元素被取出,然后转换到已排序的子列表中,并且插入到合适的位置。含有n个元素的列表至少需要n-1此排序。

其他排序算法:快速排序,堆排序,希尔排序,合并排序,基排序,桶式排序
查找:顺序查找和折半查找
顺序查找用于查找无序的列表。

递归 迭代和递归
递归是算法自我调用的过程。
s = 0
i = 1
while (i<=100):
s = s + i
i = i + 1
print(s)

程序设计语言
计算机唯一识别的语言是机器语言。它是具有两种状态的电子开关构成:关(表示0)和开(表示1).
汇编语言(符号语言)
高级语言
编译程序通常把整个源程序翻译成目标程序。
解释是指把源程序中的每一行翻译成目标程序中相应的行,并执行它的过程。
面向对象模式处理活动对象,而不是被动对象。对象只需要接收合适的外部刺激来执行其中一个动作。

  1. 方法
  2. 继承
  3. 多态性
    面向对象语言:c++和java都是面向对象语言
    C++只允许单线程地执行(整个程序作为单线程)
    Java允许多线程执行(几行代码同时执行)
    软件工程
    软件生命周期是软件工程中的一个基础概念。
    开发过程模型
    开发过程包括:分析,设计,实现和测试。
    开发过程有多种模型:最常见 瀑布模型和增量模型

瀑布模型:开发过程只有一个方向的流动,前一个阶段不结束,后一个阶段不能开始。缺点:难于定位问题,如果过程的一部分有问题,必须检查整个过程。
增量模型,开发者首先完成整个系统的简化版本,这个版本表示了整个系统,但是不包括具体的细节。

分析阶段,整个开发过程始于分析阶段。
面向过程分析是分析阶段使用的方法。
数据流图显示系统中数据的流动.
在这里插入图片描述
实体关系图是分析阶段使用的另一个建模工具
面向对象分析就是分析过程使用的。

  1. 用例图2.类图3.状态图

设计阶段

面向过程设计
1, 结构图
2, 模块化(耦合和内聚)
耦合是对两个模块互相绑定紧密程度的度量。越紧耦合的模块,它们独立性越差。
软件系统中模块间的耦合必须最小化。
内聚是程序处理过程中相关紧密程度的度量。
软件模块间的内聚必须最大化。
实现阶段
1. 语言的选择
2. 软件质量 (可操作性,可维护性和可迁移性)
测试阶段
两种测试方法:白盒测试和黑盒测试
在这里插入图片描述

  1. 基本路径测试
    基本路径测试是软件中每条语句至少被执行一次的方法。
  2. 控制结结构测试
    条件测试,数据流测试,循环测试
    黑盒测试是指在不知道程序内部也不知道程序是如何工作的情况下测试程序。黑盒测试按照软件应该完成的功能来测试软件,如它的输入和输出。
    1.穷尽测试2.随机测试3.边界值测试
    文档是一个持续的过程。

数据结构
数组是元素的顺序集合。索引表示元素在数组中的顺序号,顺序号从数组开始处计数。
我们是从1开始数组索引的,但是有些现代语言(C,C++和Java)是从0开始数组索引的。
数组的名字和各个元素的名字。数组名是整个结构的名字。而元素的名字允许我们查阅这个元素。
数组操作

  1. 查找元素
  2. 元素的插入
    尾部插入,开始或者中间插入
  3. 元素的删除
  4. 检索元素
  5. 数组的遍历
    当需要进行的插入和删除操作数目较少,而需要大量的查找和检索操作时,数组是合适的结构。
    记录是一组相关元素的集合。记录中的每个元素称为域。域是具有含义的最小命名数据。
    在记录中的元素可以是相同类型或不同类型,但记录中的所有元素必须是关联的。
    链表是一个有序数据的集合,其中每个元素包含下一个元素的地址。即每个元素包含两个部分:数据和链。
    数据部分包含可用的信息,并被处理,链则将数据连在一起。
    链表中的元素习惯上称为节点。
    链表操作
    1, 搜索链表
    2, 插入节点
  6. 删除节点
  7. 检索节点
  8. 遍历链表
    如果需要大量的插入和删除,那么链表是合适的结构,但搜索一个链表比搜索一个数组要慢。

抽象数据类型
线性列表,栈,队列,树,二叉树和图

复杂抽象数据类型
抽象概念意味着:

  1. 知道一个数据类型能做什么
  2. 如何去做是隐藏的

抽象数据类型:

  1. 数据的定义
  2. 操作的定义
  3. 封装数据和操作

抽象数据类型分为两部分:数据结构和操作函数
应用程序只能通过接口访问公有操作。接口是公有操作和传给或从这些操作返回的
数据的列表。私有操作是抽象数据类型内部用户使用的。数据结构(如数组和链表)
在抽象数据类型里面,被公有和私有操作使用。

栈是一种限制线性列表,该类列表的添加和删除操作只能在一端实现,称为栈顶。
栈被称为后进先出数据结构。
在这里插入图片描述

栈的基本操作:

  1. 建栈(satck 栈名)建一个空栈,
  2. 入栈(push 栈名)在栈顶插入一个元素
  3. 出栈(pop 栈名)删除栈顶元素
  4. 空(empty 栈名)检查栈的状态

栈的应用:倒转数据,配对数据,数据延迟使用和回溯(su)
队列是一种线性列表,该表中的数据只能在称为“尾部”的一端插入,并且只能在称为“头部”的一端删除。队列是先进先出结构。
队列的操作:

  1. 建队列 (queue 对列名)创建一个空的队列
  2. 入列 (enqueue(队列的名字,dataItem))dataItem是要在队列的尾部插入的数据,在尾部插入一个元素
  3. 出列(dequeue(队列名,dataItem))dataItem是从队列中删除的数据,在头部删除一个元素
  4. 空(empty(队列名))检查队列的状态
    队列的应用:队列应用与在线电子商务应用程序,如处理用户需求,任务和指令。

广义线性表
栈和队列都是限制线性表。
广义线性表是像插入和删除等操作可以在其中任何地方进行的表,可以在表头,表中间或表尾。
广义线性表的操作:

  1. 建表(list(表名) )建立一个空表
  2. 插入(insert(表名,element))在表中插入一个元素
  3. 删除(delete(表名,target,element))从表中删除一个元素
  4. 检索(retrieve(表名,target,element))从表中检索一个元素
  5. 遍历(traverse(表名,action))顺序地遍历表
  6. 空(empty(表名))检查表的状态
    树包括一组有限的元素,称为节点(或顶点),同时包括一组有限的有向线段,用来连接节点称为弧,如果树是非空的,其中有一个节点没有进入的弧,该节点称为根。
    在这里插入图片描述

二叉树是一棵树,且其中没有一个节点所含有的子树的个数超过两个。
二叉树:
定义:二叉树是一颗空树或由一个根节点和两颗子树构成,而每颗子树也是二叉树。
二叉树的操作:建树,插入,删除,检索,空和遍历。
二叉树的遍历常用的遍历次序为:深度优先和广度优先
二叉树的应用:赫夫曼编码和表达式树。
赫夫曼编码是一种压缩技术,它使用二叉树来生成一个符号串的可变长度的二进制编码。

二叉搜索树是一种具有额外特性的二叉树,每个节点的关键字值大于左子树中的所有节点的关键字值,而小于右子树中所有节点的关键字值。
二叉搜索树(BST)的中序遍历创建了一个升序列表。
二叉搜索树的数据类型与广义线性表所定义的抽象数据类型相似。
二叉搜索树的实现可以使用数组或链表来实现。

图是由一组节点(称为顶点)和一组顶点间的连线(成为边或弧)构成的一种抽象数据类型。‘

文件结构
文件是作为一个单元看待的外部相关数据的集合,文件的主要作用是存储数据。
文件存储在辅助存储设备或二级存储设备中。最常见的二级存储设备是磁盘和磁带。
文件存取方法:
顺序存取:如果需要顺序地存取记录(一个接一个,从头到尾),则使用顺序文件结构。
顺序文件是一种在其中每个数据必须按顺序从头到尾一个接一个地进行存取的文件。顺序文件必须周期性地更新,以后反映出信息地变化,与更新程序相关联地文件有4个:新主文件,旧主文件,事务文件和错误报告文件。

随机存取:如果想存取某一特定记录而不用检索其之前的所有记录,则使用允许随机存取的文件结构。
有两种文件结构都允许随机存取:索引文件和散列文件
索引文件由数据文件构成,该数据文件是顺序文件且是一个索引。索引本身是一个只有两个域地非常小的文件,两个域是顺序文件的键和磁盘上相应记录的地址。索引是根据数据文件的键值排序的,在散列文件中
在这里插入图片描述
目录是大多数操作系统提供的,用来组织文件。
UNIX操作系统中的目录

  1. 根目录2.主目录3.工作目录4.父目录

文本文件与二进制文件
文本文件是一个字符文件。在它们的内存储存器格式中不能包含整数,浮点数或其他数据结构。要存储这些数据类型,必须把它们转化成对应的字符格式。
二进制文件是用计算机的内部格式存储的数据集合,在这种定义中,数据可以是整形(包括其他表示成无符号整数的数据类型,例如图像,音频或视频),浮点数,字符型或其他数据结构(除了文件)

数据库
定义:数据库是一个组织内被应用程序使用的逻辑相一致的相关数据的集合。

数据库的优点:

  1. 冗余较少
  2. 避免不一致性
  3. 效率
  4. 数据完整性
  5. 机密性
    数据库管理系统(DBMS)
    数据库管理系统是定义。创建,维护数据库的一种工具。DBMS也允许用户来控制数据库中数据的存取。
    数据库管理系统由5部分构成:硬件,软件,数据,用户和规程
    数据库体系结构:内层,概念层和外层
    数据库模型:层次模型,网状模型和关系模型
    关系数据库模型
    在关系数据库管理系统中,数据通过关系的集合来表示。
    关系数据库管理系统中的关系有以下特征:
    名称:在关系数据库中,每一种关系具有唯一的名称
    属性:关系中的每一列都称为属性。
    元组:关系中的行叫做元组。关系中行的总数叫做关系的基数。
    当增加或减少元组时,关系的基数就会改变。这就实现了动态数据库。

关系的操作:插入,删除,更新,选择,投影,连接,并,交和差
结构化查询语言(SQL)

  1. 插入(insert into 表名 value(…,…,…))
  2. 删除(delete from 表名 where 条件)
  3. 更新(update 表名 set attribute1 = value1,attribute2 = value2,… where 条件)
  4. 选择(select * from 表名 where 条件)
  5. 投影(select 列名称 from 表名)
  6. 连接(select 列名称 from RELATION1, RELATION2 where 条件)
  7. 并(select * from RELATION1 union select * from RELATION2)
  8. 交(select * from RELATION1 intersection select * from RELATION2)
  9. 差(select * from RELATION1 minus select * from RELATION2)
    数据库设计
  10. 涉及与数据库潜在用户的面谈,去收集需要存储的信息和每个部门的存取需求。
  11. 建立一个实体关系模型
  12. 建立基于ERM(实体关系模型)的关系
    关系数据库不是当今唯一的数据模型,两个其他常见模型是分布式数据库和面向对象数据库。

数据压缩
压缩数据通过部分消除数据中内在的冗余来减少发送或存储的数据量。
数据压缩意味着发送或是存储更少的位数。
数据压缩方法:
在这里插入图片描述
游程长度编码也许是最简单的压缩方法,可以用来压缩由任何符号组成的数据。
赫夫曼编码
Lempel Ziv(LZ)编码是称为基于字典的编码的
有损压缩:
图像压缩:JEPG 是一种用来压缩图形和图像的方法,JEPG过程包括划分块,离散余弦变换,量化以及无损压缩。
视频压缩:MPEG是一种用来压缩视频的方法。包括空间和时间压缩
MPEG第三代音频压缩格式(MP3)是MPEG标准的一部分。MP3使用感知编码技术压缩CD质量的音频。

安全
安全目标:机密性,完整性和可用性。
三个安全目标会受到安全攻击的威胁。
安全服务
在这里插入图片描述
数据机密性用来保护数据,防止嗅探和流量分析。
数据完整性用来保护数据,防止攻击者修改,插入,删除和回复。它可以保护整个信息或部分信息。
验证标识位于通信另一端的一方。它提供建立连接时(对等实体验证)发送者和接收者的验证。它也验证数据源
不可否认防止数据的发送者和接收者的否认。在带有原始证据的不可否认中,数据的接收者能过后证明发送者的身份,如果他否认,在带有证据递送的不可否认中,数据的发送者能过后证明数据已经递送给目标接收者。
访问控制保护数据,防止非授权访问。

技术

  1. 密码术 通过加密把消息中的内容隐藏起来。涉及三个不同的机制:对称密钥密码,非对称密钥密码和散列。
  2. 隐写术 通过在消息上覆盖其他内容而隐藏消息。
    对称密钥密码术:
    一个加密算法和一个共享密钥 加密和解密算法称为密码,密钥是密码(一个算法)操作在其上的一组值(数字)。
    对称密钥密码对加密和解密使用同一个密钥。
    加密算法和解密算法互为相反。
    传统密码;
  3. 替换密码
    替换密码是用一个符号替换另一个符号。最简单的替换密码就是移位密码(凯撒密码)
  4. 置换密码
    置换密码不是用一个符号代替另一个符号,而是改变符号的位置
    置换密码就是符号重新排序。
    现代对称密钥密码
    明文,密文和密钥都是二进制的串。
  5. DES
    数据加密标准是一种对称密钥块密码。
    DES用64位明文并建立64位密文;在解密地点,DES用64位密文建立64位明文。
    在这里插入图片描述
  6. AES
    高级加密标准是一种对称密钥块密码。他的目的是为了客服DES的缺点,如密钥长度太短等
    密钥长度有128位,192位和256位。
    在这里插入图片描述

非对称密钥密码术
在非对称密钥密码术中有不同的密钥:私钥和公钥。

  1. 明文/密文
    在非对称密钥密码术中,明文和密文被当作整数来对待
    非对称密钥密码术通常被用来加密或译码少量的信息。在加密之前,消息必须被编译成一个长整数(或一组长整数),在解密之后整数(或一组整数)必须被译码成信息。
    在这里插入图片描述
  2. 加密/解密
    在非对称密钥密码术中的加密和解密是应用于表示明文和密文的数字上的数学函数。
    最常用公钥算法是RSA算法
    对称密钥方法和非对称密钥方法的比较:
    对称密钥密码术是基于共享秘密。
    非对称密钥密码术是基于个人秘密。
    两个系统的一个共同需要
    任何时候只要应用是基于个人秘密的,我们为您就需要使用非对称密钥密码术。
    在对称密钥密码术中,符号被置换或替代。
    在非对称密钥密码术中,对数字进行操作。
    消息完整性
    文件和指纹对的电子等价物就是消息和摘要对。,为了保证消息的完整性,消息要通过一个称为密码散列函数的算法。
    消息摘要需要保证安全,免受修改。
    检查完整性
    在这里插入图片描述
    消息验证
    为了保证消息的完整性和验证信息的起源,我们需要把修改检测吗(MDC)改为消息验证码(MAC)。
    在这里插入图片描述
    数字签名
    在这里插入图片描述
    数字签名需要公钥系统。签署者用私钥签署,验证者用签署者的公钥验证。
    密码系统使用接收者的私钥和公钥,数字签名使用发送者的私钥和公钥。
    密钥分发中心:KDC
    一个双方间的会话对称密钥只被使用一次。
    公钥分发
    在公钥密码术中,每个人有权访问每个人的公钥,公钥对公众可用。
    在这里插入图片描述

计算理论
简单语言:递增语句,递减语句和循环语句
递增语句对变量加1.
递减语句从变量中减1.
循环语句是在变量的值不为0时,重复进行一个动作(或一系列动作)
停机问题无法解决
人工智能
人工智能是对程序系统的研究,该程序系统在一定程度上能模仿人类的活动,如感知,思考,学习和反应。
智能体是一个能够智能地感知环境,从环境中学习并与环境进行交互的系统。智能体可以分为两大类:软件智能体和物理智能体。

  1. 软件智能体是一组用来完成特殊任务的程序。
  2. 物理智能体(机器人)是一个用来完成各项任务的可编程系统。
    当找不到反例时,论断就是合法的。
    在这里插入图片描述
  • 32
    点赞
  • 277
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值