期末复习【网络安全】

期末复习【网络安全】

  • 前言
  • 推荐
  • 期末复习
    • 重点
    • 第1章 引言
      • 1.1 计算机安全概念 2
      • 1.2 OSI安全体系结构 6
      • 1.3 安全攻击 7
        • 1.3.1 被动攻击
        • 1.3.2 主动攻击
    • 第2章 对称加密和消息机密性
      • 2.1 对称加密原理 23
        • 2.1.3 Feistel密码结构 25
      • 2.2 对称分组加密算法 27
        • 2.2.1 数据加密标准
        • 2.2.2 三重DES
        • 2.2.3 高级加密标准
    • 第3章 公钥密码和消息认证
      • 3.2 安全散列函数
        • 3.2.1 散列函数的要求 51
        • 3.2.4 SHA安全散列函数 54
      • 3.4 公钥密码原理
        • 3.4.1 公钥密码思想 61
        • 3.4.2 公钥密码系统的应用 63
      • 3.5 公钥密码算法
        • 3.5.1 RAS公钥密码算法 64
    • 第6章 传输层安全
      • 6.1 Web安全需求
        • 6.1.1 Web安全威胁 135
      • 6.2 传输层安全
        • 6.2.1 TLS体系结构 136
        • 6.2.2 TLS记录协议 138
        • 6.2.5 握手协议 141
    • 第8章 电子邮件安全
      • 8.2 邮件格式
        • 8.2.1 多用途互联网邮件扩展类型 191
      • 8.4 S/MIME
        • 8.4.1 操作描述 199
    • 第11章 入侵者
      • 11.1 入侵者概述 285
  • 最后

前言

2023-6-19 22:13:26

修改了一下图片
图片电子版来源于fyx,在此感谢

本专栏将于考试期间设置为付费
考试结束后关闭付费
时间为2023/6/26

以下内容源自《【网络安全】》
仅供学习交流使用

参考:
网络安全基础(第六版)

推荐

第2章 作业(2456)【网络安全】

第3章 作业(268EF)【网络安全】

第6章 作业(346)【网络安全】

第8章 作业(356)【网络安全】

期末复习

推荐:

网络安全基础期末复习总结

重点

不会有人划重点不知道在哪,现在找不到了吧

这是我当时不仅在书上画出重点
并且在备忘录上记录的页码位置

IT专业相关介绍【活动】:六、计算机思维能力测试
简单的索引思想的应用

在这里插入图片描述

名词解释题:
可以看每一章的关键词

数据加密标准(DES)
高级加密标准(AES)
密码分组链接(CBC)模式
电子密码本(ECB)模式
密码反馈(CFB)模式
计数器模式(CTR)
消息认证码(MAC)
数字签名标准(DSS)
椭圆曲线密码(ECC)
HTTPS(HTTP和SSL)是指HTTP和TLS的结合来实现网络浏览器和服务器的安全通信
安全套接字层(SSL)
传输层安全(TLS)
SSH:Secure Shell 一个相对简单和经济的网络信息安全通信协议
MIME:多用途互联网邮件扩展类型
S/MIME:安全/多用途互联网邮件扩展,
	    基于RSA数据安全技术额度MIME互联网电子邮件格式标准的安全增强功能
PGP:Pretty Good Privacy 优良保密协议

第1章 引言

1.1 计算机安全概念 2

计算机安全
对某个自动化信息系统的保护措施,其目的在于实现信息系统资源的完整性、可用性以及机密性(包括硬件、软件、固件、信息/数据、电信)。

这个定义包括三个关键的目标,它们组成了计算机安全的核心内容。

  • 机密性:这个术语涵盖了如下两个相关的概念:
    • 数据机密性:保证私有的或机密的信息不会被泄露给未经授权的个体。
    • 隐私性:保证个人可以控制和影响与之相关的信息,这些信息有可能被收集、存储和泄露。
  • 完整性:这个术语涵盖了如下两个相关的概念:
    • 数据完整性:保证只能由某种特定的、已授权的方式来更改信息和代码。
    • 系统完整性:保证系统正常实现其预期功能,而不会被故意或偶然的非授权操作控制。
  • 可用性:保证系统及时运转,其服务不会拒绝已授权的用户。

这三个概念组成了CIA三元组。它们体现了对于数据和信息计算服务的基本安全目标。例如,NIST的美国联邦信息安全分级标准与信息系统(FIPS199)指出,机密性、完整性和可用性是信息和信息系统的三个安全目标。FIPS199 从需求和安全损失角度,分别给出了对这三个目标的描述。

  • 机密性:维持施加在数据访问和泄露上的授权限制,包括保护个人隐私和私有信息的措施。机密性损失是指非授权的信息泄露。
  • 完整性:防范不当的信息修改和破坏,包括保证信息的认证与授权。完整性损失是指未经授权的信息修改和破坏。
  • 可用性:保证及时且可靠地获取和使用信息。可用性损失是指对信息或信息系统访问或使用的中断。

尽管CIA三元组对安全目标的定义有其根据,但有人认为,在安全领域有必要再加入些额外概念以给出一个全面的场景(如图1.1)。其中两个最常被提及的是:

  • 真实性:可以被验证和信任的属性,或对于传输、信息、信息发送方的信任。这意味着要验证使用者的身份以及系统每个输入信号是否来自可靠的信息源。
  • 可计量性:这个安全目标要求每个实体的行为可以被唯一地追踪到。它支持不可否认、威慑、错误隔离、入侵侦测和防范、恢复和合法行为。由于真正意义上的安全系统还不是一个可以实现的目标,我们必须能够追踪安全违规的责任方。系统必须记录自己的活动,使得以后可以用于法庭分析、追踪安全违规或者处理交易纠纷。

1.2 OSI安全体系结构 6

OSI安全系统作为一种组织提供安全服务的途径是非常有效的,同时这个结构使用的是国际标准,计算机和通讯厂商已经开发了符合这个结构化服务和机制标准的产品和服务安全特性。

  • 安全攻击:任何可能会危及机构的信息安全行为。
  • 安全机制:用来检测,防范安全攻击并从中恢复系统的机制。
  • 安全服务:一种用来增强组织的数据处理系统的安全性和信息传递的安全性的服务。

1.3 安全攻击 7

1.3.1 被动攻击

被动攻击(见图1.2(a))的本质是窃听或监视数据传输。攻击者的目标是获取传输的数据信息。被动攻击(见图1.2 (a))的本质是窃听或监视数据传输。攻击者的目标是获取传输的数据信息。被动攻击的两种形式是消息内容泄露攻击流量分析攻击

消息内容泄露攻击很容易理解。电话交谈、电子邮件消息和传输文件中都有可能包含敏感或机密信息。我们需要防止攻击者获悉这些传输信息。

另一种被动攻击即流量分析攻击更加巧妙。假设有一种方法可以掩盖消息内容或其他信息,使得即使攻击者获得了消息,他们也不能从消息中提取出有用的信息。通常,用来掩盖内容的方法是加密。如果已经适当地做了加密保护,攻击者仍然有可能观察到这些消息的模式。攻击者可以推测出通信双方的位置和身份,并且观察到交换信息的频率和长度。这些信息对于猜测发生过的通信的一些性质很有帮助。

被动攻击非常难以检测,因为它们根本不改变数据。典型情况是消息传输的发送和接收都工作在一个非常正常的模式下,因此不论是发送方还是接收方都不知道有第三方已经阅读了消息或者观察到了流量模式。尽管如此,防范这些攻击还是切实可行的,通常使用加密的方法来实现。因此,对付被动攻击的重点是防范而不是检测。

1.3.2 主动攻击

主动攻击(见图1.2(b))包含改写数据流的改写和错误数据流的添加,它可以划分为4类:假冒重放改写消息拒绝服务

假冒发生在一个实体假冒成另一个不同实体的场合(图1.2(b)路径2是活跃的)。假冒攻击通常包含其他主动攻击形式中的一种。例如,攻击者首先捕获若干认证序列,并在发生一个有效的认证序列之后重放这些捕获到的序列,这样就可以使一个具有较少特权的经过认证的实体,通过模仿一个具有其他特权的实体而得到这些额外的特权。

重放涉及被动获取数据单元并按照它之前的顺序重新传输,以此来产生一个非授权的效应(路径1、2、3是活跃的)。

简单地说改写消息是指合法消息的某些部分被篡改,或者消息被延迟、被重排,从而产生非授权效应(路径1、2是活跃的)。例如,一条含义为“允许John Smith读取机密文件accounts”的消息被篡改为“允许Fred Brown读机密文件accounts”。

拒绝服务可以阻止或禁止对通信设备的正常使用或管理(路径3是活跃的)。这个攻击可能有一个特殊的目标:比如一个实体可能禁止把所有消息发到一个特定的目的地(例如,安全审计服务)。另一种拒绝服务的形式是对整个网络的破坏,使网络瘫痪或消息过载从而丧失网络性能。

在这里插入图片描述
简单地说,改写消息是指合法消息的某些部分被篡改,或者消息被延迟、被重排,从而产生非授权效应(路径1、2是活跃的)。例如,一条含义为“允许John Smith读取机密文件 accounts”的消息被篡改为“允许Fred Brown读取机密文件 accounts”。

拒绝服务可以阻止或禁止对通信设备的正常使用或管理(路径3是活跃的)。这个攻击可能有一个特殊的目标:比如一个实体可能禁止把所有消息发到一个特定的目的地(例如,安全审计服务)。另一种拒绝服务的形式是对整个网络的破坏,使网络瘫痪或消息过载从而丧失网络性能。

主动攻击表现出与被动攻击相反的特征。被动攻击虽然难以检测,却有方法来防范它。而防范主动攻击却是非常困难的,因为这样做需要一直对所有通信设备和路径进行物理保护。但检测主动攻击并恢复主动攻击造成的损坏和延迟却是可行的。由于检测本身具有威慑作用,它同样可以对防范做出贡献。

第2章 对称加密和消息机密性

2.1 对称加密原理 23

一个对称加密方案由5部分组成(见图2.1):

  • 明文:这是原始消息或数据,作为算法的输入。
  • 加密算法:加密算法对明文进行各种替换和转换。
  • 秘密密钥:秘密密钥也是算法的输入。算法进行的具体替换和转换取决于这个密钥。
  • 密文:这是产生的已被打乱的消息输出。它取决于明文和秘密密钥。对于一个给定的消息,两个不同的密钥会产生两个不同的密文。
  • 解密算法:本质上是加密算法的反向执行。它使用密文和同一密钥产生原始明文。

在这里插入图片描述

2.1.3 Feistel密码结构 25

Feistel 结构是所有对称分组密码都使用的更通用结构的一个特例。通常,一个对称分组密码包含一系列轮迭代,每轮都进行由密钥值决定的替换和置换组合。对称分组密码的具体操作取决于以下参数和设计属性:

  • 分组大小:越大的分组意味着越高的安全性(所有其他条件都相同),但减小了加密/解密速率。128比特大小的分组是一个合理的折中并且几乎是近来分组密码设计的普遍选择。
  • 密钥大小:越长的密钥意味着越高的安全性,但也许会减小加密/解密速率。现代算法最普遍的密钥长度为128比特。
  • 迭代轮数:对称分组密码的本质是单轮处理不能提供充分的安全性,多轮处理能提供更高的安全性。迭代轮数的典型大小是16。
  • 子密钥产生算法:此算法复杂度越高,密码破译难度就越高。
  • 轮函数:同样,越高的复杂度意味着对破译越高的阻力。

在对称分组密码设计中还有两个其他的考虑因素:

  • 快速软件加密/解密:在很多情况下,密码通过这种方法嵌入在应用程序或实用工具中以避免用硬件实现。因此,软件执行速度成为一个重要因素。
  • 容易分析:尽管希望算法尽可能地难以攻破,但使算法容易分析有很大的好处。这是因为,如果算法能被简明清楚地解释,则容易分析该算法的弱点并因此给出对其强度更高级别的保障。例如,DES不具有容易分析的性质。

对称分组密码的解密过程本质上和加密过程相同。规则如下:使用密文作为算法的输入,但是逆序使用子密钥Ki。即在第一轮迭代使用Kn,第二轮迭代使用Kn-1。依次类推直到最后一轮迭代使用K1。这是一个好的性质,因为它意味着不需要实现两个不同的算法:一个用于加密、一个用于解密。

在这里插入图片描述

2.2 对称分组加密算法 27

最常用的对称加密算法是分组密码。分组密码处理固定大小的明文输入分组,且对每个明文分组产生同等大小的密文分组。本节重点介绍三个重要的对称分组密码:数据加密标准(DES)、三重数据加密标准(triple DES,3DES),以及高级加密标准(AES)。

2.2.1 数据加密标准

在2001年推出高级加密标准(AES)之前,最广泛使用的加密方案是基于**数据加密标准(DES)**的,DES由原美国国家标准局(现美国国家标准与技术研究所,NIST))于F采用,以美国联邦信息处理标准FIPS PUB 46发布。这个算法本身被称为数据加密算法(DEA)。

算法描述

明文长度为64比特,密钥长度为56比特;更长的明文被分为64比特的分组来贝DES结构在图2.2所示的Feistel网络的基础上做了微小的变化。它采用16轮迭代,从原始56比特密钥产生16组子密钥,每一轮迭代使用一个子密钥。

DES的解密过程在本质上和加密过程相同。规则如下:使用密文作为DES算法的输入是子密钥Ki的使用顺序与加密时相反。即第一次使用K16,第二次使用K15,依次类推直到第16次也就是最后一次使用K1

2.2.2 三重DES

对三重DES(triple DES,3DES)的标准化最初出现在1985年的 ANSI标准X9.17中。为了把它用于金融领域,1999年随着FIPS PUB 46-3的公布,把它合并为数据加密标准的一部分。

3DES使用3个密钥并执行3次DES 算法,其组合过程依照加密-解密-加密(EDE)的顺序(见图2.3(a))进行:
C=E(K3,D(K2, E(K1, P)))
其中:
C=密文;
P=明文;
E[K,X]=使用密钥K加密X;
D[K,Y]=使用密钥K解密Y。
在这里插入图片描述

解密仅仅是使用相反的密钥顺序进行相同的操作(见图2.3(b)):
P=D(K1,E(K2,D(K3,C))

3DES 加密过程中的第二步使用的解密没有密码方面的意义。它的唯一好处是让3DES的使用者能够解密原来单重DES使用者加密的数据:
C=E(K1,D(K1,E(K1,P))=E[K,P]

通过3个不同的密钥,3DES的有效密钥长度为168比特。FIPS 46-3同样允许使用两个密钥,令K1=K3;这样密钥长度就为112比特。FIPS 46-3包含了下列3DES的规定:

  • 3DES是 FIPS批准的可选对称加密算法。
  • 使用单个56比特密钥的原始 DES,只在以往系统的标准下允许,新设计必须支持3DES。
  • 鼓励使用以往DES 系统的政府机构转换到3DES 系统。
  • 预计3DES与高级加密标准(AES)将作为FIPS 批准的算法共存,并允许3DES 逐步过渡到AES。

可以看出,3DES是一个强大的算法,因为底层密码算法是 DEA,DEA声称的对基于其算法的破译的抵抗能力,3DES同样也有。不仅如此,由于168比特的密钥长度,穷举攻击更没有可能。

最终AES将取代3DES,但是这个过程将花费很多年的时间。NIST 预言在可预见的将来3DES仍将是被批准的算法(为美国政府所使用)。

2.2.3 高级加密标准

算法概述

AES 使用的分组大小为128比特、密钥长度可以为128、192或256比特。在本节的描述中,假设密钥长度为128比特(这可能是最常用的长度)。

图2.5给出了AES的总体结构。加密和解密算法的输入是一个128比特的分组。在FIPS PUB 197中,分组被描述为一个字节方阵。分组被复制到状态数组,这个数组在加密或解密的每一步都会被更改。最后一步结束后,状态数组将被复制到输出矩阵。类似地,128比特的密钥也被描述为一个字节方阵。然后,密钥被扩展成为一个子密钥字的数组;每个字是4字节,而对于128比特的密钥,子密钥总共有44个字。矩阵中字节的顺序是按列排序的。比如,128比特的明文输入的前4个字节占输入矩阵的第1列,接下来4个字节占第2列,依次类推。类似地,扩展密钥的前4字节即一个字占w矩阵的第1列。
接下来的注释给出AES更清楚的面貌:
(1)值得指出的特点之一是该结构不是 Feistel结构。回忆典型Feistel结构,数据分组的一半用来更改另一半,然后两部分对换。AES没有使用Feistel结构,而是在每轮替换和移位时都并行处理整个数据分组。
(2)输入的密钥被扩展成为44个32比特字的数组w[i]。4个不同的字(128比特)用作每轮的轮密钥。
(3)进行了4个不同的步骤,一个是移位,3个是替换:

  • 字节替换:使用一个表(被称为S盒(S-box))来对分组进行逐一的字节替换;
  • 行移位:对行做简单的移位;
  • 列混合:对列的每个字节做替换,是一个与本列全部字节有关的函数;
  • 轮密钥加:将当前分组与一部分扩展密钥简单地按位异或。

(4)结构非常简单。对于加密和解密,密码都是从轮密钥加开始,接下来经过9轮选代,每轮包含4个步骤,最后进行一轮包含3个步骤的第10轮迭代。图2.5描述了整个轮加密的结构。
在这里插入图片描述

(5)只有轮密钥加步骤使用了密钥。由于这个原因,密码在开始和结束的时候进行轮密钥加步骤。对于任何其他步骤,如果在开始或者结束处应用,都可以在不知道密钥的情况下进行反向操作,并且不会增强安全。
(6)轮密钥加步骤本身并不强大。另外3个步骤一起打乱了数据比特,但是因为没有使用密钥,它们本身不提供安全。将这个密码用于先对分组做异或加密(轮密钥加)操作,接下来打乱这个分组(另外3个步骤),再做异或加密,依次类推。这个结构既高效又高度安全。
(7)每一步都简单可逆。对于字节替换、行移位、列混合步骤,在解密算法中使用逆函数。对轮密钥加步骤,反向操作用同一个轮密钥异或数据分组,利用A日B的B=B这个结果。
(8)像大多数分组密码一样,解密算法也是按照相反的顺序使用扩展密钥。但是解密算法并不与加密算法相同,这是AES特殊结构的结果。
(9)如果4个步骤都可逆,则容易证明解密确实能够恢复明文。图2.4将加密和解密摆放成以垂直相反的方向运行。在每个水平节点(比如图2.4中的虚线),加密和解密的状态数组是相同的。
(10)加密和解密的最后一轮都只包含3个步骤。同样,这也是AES 的特殊结构的结果,这么做是为了使密码可逆。

在这里插入图片描述

第3章 公钥密码和消息认证

3.2 安全散列函数

3.2.1 散列函数的要求 51

散列函数的目的是为文件、消息或其他数据块产生“指纹”。为满足在消息认证中的应用,散列函数H必须具有下列性质:
(1)H可适用于任意长度的数据块。
(2)H能生成固定长度的输出。
(3)对于任意给定的x,计算H(x)相对容易,并且可以用软/硬件方式实现。
(4)对于任意给定值h,找到满足H(x)=h的x在计算上不可行。满足这一特性的散列函数称为具有单向性,或具有抗原像攻击性

(5)对于任意给定的数据块x,找到满足H(y)=H(x)的y≠x在计算上是不可行的。满足这一特性的散列函数被称为具有抗第二原像攻击性,有时也称为具有抗弱碰撞攻击性
(6)找到满足Hx)= H(y)的任意一对(x,y)在计算上是不可行的。满足这一特性的散列函数被称为抗碰撞性,有时也被称为抗强碰撞性

前三个性质是使用散列函数进行消息认证的实际可行要求。第四个属性,抗原像攻击性,是单向性:给定消息容易产生它的散列码,但是给定散列码几乎不可能恢复出消息。如果认证技术中使用了秘密值(见图3.2(c)),则单向性很重要。秘密值本身并不会传输;然而,假如散列函数不是单向的,而攻击者能够分析或截获消息M和散列码C=H(SABlIM),则攻击者很容易发现秘密值。攻击者对散列函数取逆得到SAB||M=H1( C)。因为这时攻击者拥有M和SABllM,所以他们可以轻而易举地恢复SAB

抗第二原像攻击性质保证了对于给定的消息,不可能找到具有相同散列值的可替换消息。利用加密的散列码可防止消息被伪造(见图3.2(a)和图3.2(b))。如果该性质非真,则攻击者可以进行如下操作:第一,分析或截获消息及其加密的散列码;第二,根据消息产生没有加密的散列码;第三,生成具有相同散列码的可替换消息。

满足上面前5个性质的散列函数称为弱散列函数。如果还能满足第6个性质则称其为强散列函数。第6个性质可以防止像生日攻击这种类型的复杂攻击。生日攻击的细节超出了本书的范围。这种攻击把m比特的散列函数的强度从2m简化到2m/2。详细内容可参考[STAL11]。

除提供认证之外,消息摘要还能验证数据的完整性。它与帧检测序列具有相同的功能:如果在传输过程中,意外地篡改任意比特,消息摘要则会出错。

在这里插入图片描述

3.2.4 SHA安全散列函数 54

在这里插入图片描述

3.4 公钥密码原理

3.4.1 公钥密码思想 61

公钥密码方案由6个部分组成(见图3.9(a)):

  • 明文:算法的输入,它是可读的消息或数据。
  • 加密算法:加密算法对明文进行各种形式的变换。
  • 公钥和私钥:算法的输入,这对密钥如果一个密钥用于加密,则另一个密钥就用于解密。加密算法所执行的具体变换取决于输入端提供的公钥或私钥。
  • 密文:算法的输出,取决于明文和密钥。对于给定的消息,两个不同的密钥将产生两个不同的密文。
  • 解密算法:该算法接收密文和匹配的密钥,生成原始的明文。

顾名思义,密钥对中的公钥是公开供其他人使用的,而只有自己知道私钥。通常的公钥密码算法根据一个密钥进行加密,根据另一个不同但相关的密钥进行解密。
基本步骤如下:
(1)每个用户都生成一对密钥用来对消息进行加密和解密。
(2)每个用户把两个密钥中的一个放在公共寄存器或其他可访问的文件里,这个密钥便是公钥,另一个密钥自己保存。如图3.7(a)所示,每个用户都收藏别人的公钥。
(3)如果 Bob希望给Alice发送私人消息,则他用Alice的公钥加密消息。
(4)当Alice 收到这条消息,她用私钥进行解密。因为只有Alice知道她自己的私钥,其他收到消息的人无法解密消息。

用这种方法,任何参与者都可以获得公钥。由于私钥由每一个参与者在本地产生,故不需要分发。只要能够保护好他或她的私钥,以后的通信就会安全。在任何时候,用户都能够改变私钥,且发布相应的公钥代替旧公钥。

传统密码算法中使用的密钥被特别地称为密钥。用于公钥密码的两个密钥被称为公钥私钥私钥总是保密的,但仍然被称为私钥而不是密钥,这是为了避免与传统密码混淆。

在这里插入图片描述

3.4.2 公钥密码系统的应用 63

在广义上可以把公钥密码系统分为如下三类。

  • 加密/解密:发送方用接收方的公钥加密消息。
  • 数字签名:发送方用自己的私钥“签名”消息。签名可以通过对整条消息加密或者对消息的一个小的数据块加密来产生,其中该小数据块是整条消息的函数。
  • 密钥交换:通信双方交换会话密钥。这可以使用几种不同的方法,且需要用到通信一方或双方的私钥。

在这里插入图片描述

3.5 公钥密码算法

3.5.1 RAS公钥密码算法 64

基本的RSA加解密 对于某明文块M和密文块C加密和解密有如下的形式:
C=Memod n
M=Cd mod n=(Me)d mod n = Med mod n
发送方和按牧方那必须知道和e的值,并且只有接收方知道d的值。RSA公钥密码算法的公钥KU={e,u}私钥KR={d,n}。为使该算法能够用于公钥加密,它必须满足下列要求:
(1)可以找到e、d、n的值, 使得对所有的M<n,Medmod n=M成立。
(2)对所有满足M<n的值, 计算Me和Cd相对容易。
(3)给定e和n,不可能推出d。
前两个要求很容易得到满足。当e和n取很大的值时,第三个要求也能够得到满足。

图3.10总结了RSA算法。开始时选择两个素数p和q,计算它们的积n作为加密和解密时的模。接着需要计算n的欧拉函数值Φ(n)。Φ(n)表示小于n且与n互素的正整数的个数。然后选择与Φ(n)互素的整数e(即e和Φ(n)的最大公约数为1)。最后,计算e关于模d(n)的乘法逆元d,d和e具有所期望的属性。

在这里插入图片描述

假设用户A已经公布了他的公钥,且用户B希望给A发送消息M。那么B计算C=Md mod n并且发送C。当接收到密文时,用户A通过
计算M=Cd(mod n)解密密文。

图3.11显示了[SING99]中的一个个例子。对于这个例子,按下列步骤生成密钥:
(1)选择两个素数: p=17和q=11。
(2)计算n=p=17x11=187。
(3)计算Φ(n)=(p-1)(q-1)=16×10=160。

在这里插入图片描述

(4)选择e,使得e与Φ(n)=160互素且小于Φ(n):选择e=7。
(5)计算d,使得de mod 160=1且d<160。正确的值是d=23,这是因为23x7= 161=10×16+1。

这样就得到公钥PU={7,187},私钥PR={23,187}。下面的例子说明输入明文M=时密钥的使用情况。

对于加密,需要计算C=887 mod 187。利用模运算的性质,计算如下:
887 mod 187 =[(884mod 187)×(882 mod 187)×(881 mod 187)]mod 187
881 mod 187= 88
883 mod 187=7744 mod 187=77
884 mod 187=59 969 536 mod 187=132
887 mod 187=(88×77×132) mod 187 = 894 432 mod187=11

对于解密,计算M=1123mod 187 :
1123 mod 187 =[(111mod 187)×(112 mod 187)x(114 mod 187)
×(118 mod 187)×(118 mod 187)]mod 187
111 mod 187=11
112 mod 187=121
114 mod 187=14 64 mod 187 = 55
118 mod 187=214 358 881mod 187=33
1123 mod 187=(11×121×55×33×33)mod 187
=79 720 245 mod 187=88

第6章 传输层安全

6.1 Web安全需求

6.1.1 Web安全威胁 135

在这里插入图片描述

6.2 传输层安全

6.2.1 TLS体系结构 136

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

6.2.2 TLS记录协议 138

在这里插入图片描述

6.2.5 握手协议 141

  • 第一阶段:客户端发起建立连接请求.建立安全连接请求.包括协议版本、会话ID、密码套件、压缩方法和初始随机数
  • 第二阶段:服务器认证和密钥交换。服务器发送证书、密钥交换数据和证书请求.最后发送hello消息阶段的结束信号
  • 第三阶段:客户端认证和密钥交换。如果有证书请求,客户端发送证书。之后客户端发送密钥交换数据,也可以发送证书验证消息
  • 第四阶段:完成。变更密码套件和结束握手协议

第8章 电子邮件安全

8.2 邮件格式

8.2.1 多用途互联网邮件扩展类型 191

在这里插入图片描述

8.4 S/MIME

8.4.1 操作描述 199

在这里插入图片描述

第11章 入侵者

11.1 入侵者概述 285

入侵者是两种对安全威胁最大的方式之一,也叫黑客,令一种叫病毒,入侵者分三类:

  • 假冒用户:未授权使用计算机的个体,或潜入系统的访问控制来获取合法用户的账户。
  • 违法用户:系统的合法用户访问未授权的数据、程序或者资源,或者授权者误用其权限。
  • 隐秘用户:通过某些方法夺取系统的管理控制权限,并使用这种控制权躲避审计机制和访问控制,或者取消审计集合的个体。

最后

2023-6-24 22:58:59

你对我百般注视,
并不能构成万分之一的我,
却是一览无余的你。

祝大家逢考必过
点赞收藏关注哦

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/33395.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【强化学习】常用算法之一 “Q-learning”

作者主页&#xff1a;爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

如何看待低级爬虫与高级爬虫?

爬虫之所以分为高级和低级&#xff0c;主要是基于其功能、复杂性和灵活性的差异。根据我总结大概有下面几点原因&#xff1a; 功能和复杂性&#xff1a;高级爬虫通常提供更多功能和扩展性&#xff0c;包括处理复杂页面结构、模拟用户操作、解析和清洗数据等。它们解决了开发者…

Spring基础知识(四)

目录 1.Spring包含的模块主要有什么 2.Core Container的作用 3.Data Access/Integration模块的作用 4.AOP模块的作用 5.Spring Web模块的作用 6.Test模块的作用 7.如何将一个类声明为Bean 8.Component和Bean的区别 9.能够注入Bean的注解有什么 10.Resource注解 1.Spr…

《微服务实战》 第三十二章 微服务链路跟踪-sleuth zipkin

系列文章目录 第三十二章 微服务链路跟踪-sleuth zipkin 第三十章 分布式事务框架seata TCC模式 第二十九章 分布式事务框架seata AT模式 第十二章 Spring Cloud Alibaba Sentinel 第十一章 Spring Cloud Alibaba nacos配置中心 第十章 SpringCloud Alibaba 之 Nacos discover…

APP外包开发中的第三方工具

APP外包开发过程中需要用到各种的第三方服务平台和工具&#xff0c;这些平台和工具可以提高开发效率和更规范的管理项目&#xff0c;今天和大家分享常见的一些平台和工具&#xff0c;从UI设计、开发、测试到上线覆盖APP开发的整个流程&#xff0c;希望对大家有所帮助。北京木奇…

Solr框架 02.Solr操作(document操作和query查询)

菜单项目Documents使用办法 其中的document选项&#xff1a; 以XML格式举例 1新增/修改 当id不存在时新增&#xff0c;当id存在修改。 <doc> <field name"id">8</field> <field name"name">明天更大卖</field> <field n…

CVE-2023-34541 LangChain 任意命令执行

漏洞简介 LangChain是一个用于开发由语言模型驱动的应用程序的框架。 在LangChain受影响版本中&#xff0c;由于load_prompt函数加载提示文件时未对加载内容进行安全过滤&#xff0c;攻击者可通过构造包含恶意命令的提示文件&#xff0c;诱导用户加载该文件&#xff0c;即可造成…

Spring Boot 中的 @SendTo 注解

Spring Boot 中的 SendTo 注解 在 Spring Boot 中&#xff0c;SendTo 注解是一个非常有用的注解&#xff0c;它可以用于实现 WebSocket 的消息转发功能。本文将介绍 SendTo 注解的原理、使用方法和示例代码。 什么是 SendTo 注解 SendTo 注解是 Spring Boot 中用于将消息发送…

【MOOC 测验】第4章 网络层

1‌、下列关于路由算法描述错误的是&#xff08; &#xff09; A. 链路状态算法是一种全局路由算法&#xff0c;每个路由器需要维护全局状态信息B. OSPF 是一种域内路由协议&#xff0c;核心是基于 Dijkstra 最低费用路径算法C. RIP 是一种域内路由算法&#xff0c;核心是基…

docker网络

一、docker网络概述 1、docker网络实现的原理 Docker使用Linux桥接&#xff0c;在宿主机虚拟一个Docker容器网桥(docker0)&#xff0c;Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址&#xff0c;称为Container-IP&#xff0c; 同时Docker网桥是 每个容器的…

基于ENVI的遥感影像的非监督分类

ENVI包括了ISODATA和K-Mean两种非监督分类方法。 ISODATA&#xff08;Iterative Self-Orgnizing Data Analysize Technique&#xff09;是一种重复自组织数据分析技术&#xff0c;计算数据空间中均匀分布的类均值&#xff0c;然后用最小距离技术将剩余像元进行迭代聚合&#x…

Unreal 5 实现使用GPU Instancing批量渲染相同的物体

之前做unity的时候&#xff0c;专门研究了使用GPU进行批量相同的物体渲染&#xff0c;现在转ue以后&#xff0c;发现UE也有相同的功能。接下来讲解一下&#xff0c;在ue里面如何实现通过GPU进行实例化渲染。 创建组件 能够实现GPU实例化渲染&#xff0c;ue提供了两个组件&…

最新导则下生态环评报告编制技术暨报告篇、制图篇、指数篇、综合应用篇教程

详情点击链接&#xff1a;最新导则下生态环评报告编制技术暨报告篇、制图篇、指数篇、综合应用篇 一&#xff0c;生态环评报告编制规范 结合生态环境影响评价最新导则&#xff0c;详述不同类型项目生态环评报告编制要求与规范 二&#xff0c;土地利用图 1、土地利用分类体系…

go系列-读取文件

1 概述 2 整个文件读入内存 直接将数据直接读取入内存&#xff0c;是效率最高的一种方式&#xff0c;但此种方式&#xff0c;仅适用于小文件&#xff0c;对于大文件&#xff0c;则不适合&#xff0c;因为比较浪费内存。 2.1 直接指定文化名读取 在 Go 1.16 开始&#xff0c;i…

HackTheBox - 学院【CPTS】复习4 - Web Attacks

Web Attacks 本模块涵盖三种常见的 Web 漏洞&#xff0c;即 HTTP 动词篡改、IDOR 和 XXE&#xff0c;每个漏洞都可能对公司的系统产生重大影响。我们将介绍如何通过各种方法识别、利用和防止它们中的每一个。 HTTP HEAD/GET/POST/PUT/OPTIONS IDOR寻找 一般能够从前端js找到…

.Net 4726.0 Razor编译时的小差异

前言 几个月前在进行着.Net 472到6.0的升级&#xff0c;复用原有代码&#xff0c;在对Razor进行迁移中&#xff0c;发现原运行正常的代码&#xff0c;却存在报错&#xff0c;深入研究发现是Core下对Razor编译有一些变动。 问题复现 472 创建视图 新建.Net Framework下Mvc&#…

软件测试的自动化工具

在软件开发过程中&#xff0c;测试是必不可少的一个环节。而在测试中&#xff0c;测试人员需要花费大量的时间和精力进行手动测试&#xff0c;这不仅费时费力&#xff0c;而且效率较低。因此&#xff0c;自动化测试工具的出现为测试人员提供了更加便捷高效的测试方法。本文将介…

(二)Qt QGraphicsScene模块实现圆点绘制在所有窗体的最前方,实现圆点的“彩色拖尾”效果以及“选中方框”效果

系列文章目录 通过Qt实现手势识别控制软件操作相关系列技术方案 &#xff08;一&#xff09;Qt 将某控件、图案绘制在最前面的方法&#xff0c;通过QGraphicsScene模块实现 &#xff08;二&#xff09;Qt QGraphicsScene模块实现圆点绘制在所有窗体的最前方&#xff0c;实现圆…

Spring Boot 中的 WebSocketSession 是什么,原理,如何使用

Spring Boot 中的 WebSocketSession 是什么&#xff0c;原理&#xff0c;如何使用 介绍 在现代 Web 应用程序中&#xff0c;实时通信是一个非常常见的需求。传统的 HTTP 协议是无法支持实时通信的&#xff0c;因为它是一种无状态协议&#xff0c;每次请求都是独立的&#xff0…

LangChain:LLM应用程序开发(上)——Models、Prompt、Parsers、Memory、Chains

文章目录 一、Models、Prompt、Parsers1.1 环境配置&#xff08;导入openai&#xff09;1.2 辅助函数&#xff08;Chat API : OpenAI&#xff09;1.3 使用OpenAI API进行文本翻译1.4使用LangChain进行文本翻译1.5 使用LangChain解析LLM的JSON输出1.5.1 LangChain输出为string格…