信息安全软考——第三章 密码学基本理论笔记 很全呀!

    信息安全工程师教程笔记汇总(点我跳转呀(´▽`ʃ♡ƪ))

  1. 密码学概述 ※
  2. 密码体制分类 ※
  3. 常见密码算法 ※※
  4. Hash函数与数字签名 ※
  5. 密码管理与数字认证 ※
  6. 安全协议 ※
  7. 密码学网络安全应用

    一个 ※ 的是熟悉,知道概念、原理。两个※是 需要掌握

   相对于第一版教材,第二版删除了大量的密码原理,除RSA外,其他密码原理都被删除。(第一版的密码学内容好像两百多面)

  命题规则:选择5分,案列2-6分或较低概率大题

  • 2005年4月1日国家实施《中华人民共和国电子签名法》
  • 2006年我国政府公布了自己的商用密码算法,是我国密码发展史上的一件大事
  • 2019年《中华人民共和国密码法》草案已发布

一、密码学基本概念

密码学是保障网络与信息安全的核心技术和基础支撑

  密码学是一门研究信息安全保护的学科,以实现信息的保密性、完整性、可用性及抗抵赖性。密码学主要由密码编码和密码分析两个部分组成。

  2005年 4月1日国家实行《中华人民共和国电子签名法》。2006年我国政府公布了自己的商用密码法,成为我国密码发展史上的第一件大事。2019年《中华人民共和国密码法》草案已经公布

​  密码学的主要目的是保持明文的秘密性以防止攻击者获知(将明文处理为密文),而密码分析学的目的则是在不知道密钥的情况下,识别出明文的科学。(把密文还原成明文)

  • 明文,指的是需要采用密码技术进行保护的消息。而密文,指用密码技术处理过明文的结果,通常称为加密消息。
  • 将明文变换成密文的过程称作加密,其逆过程,即由密文恢复出原明文的过程叫做解密。加密过程所使用的一组操作运算规则称作加密算法,而解密过程所使用的一组操作运算规则称作解密算法。加密和解密算法的操作通常都是在密钥控制下进行的,分别称为加密密钥和解密密钥。(加密算法有,也有叫加密函数的)
  • 对称密钥:加密和解密的过程使用相同的密钥。非对称密钥:加密和解密的过程中使用不相同的密钥
  • 如果用数学公式表达加密过程的话,y = f(x,k)

​  在这里插入图片描述

在这里插入图片描述

密码安全性分析

根据密码分析者在破译时已具备的提前条件,人们通常将密码分析攻击类型分为五种,分别如下。

攻击是从上自下越来越有利!

  • 唯密文攻击:密码分析者只拥有一个或多个同一个密钥加密的密文,没有其它可以利用的信息。对攻击者最为不利。
  • 已知明文攻击:密码分析者仅知道当前密钥下的一些明文及所对应的密文
  • 选择明文攻击:密码分析者能够得到当前密钥下自己选定明文所对应的密文
  • 密文验证攻击:密码分析则对于任何选定的密文,都能得到该密文“是否合法”的判断
  • 选择密文攻击:除了挑战密文外,密文分析者能够得到任何选定的密文所对应的明文。这种方式对攻击者最为有利主要攻击公开密钥密码体制,特别是数字签名

二、密码体制分类

  • 私钥密码体制。
    • 私钥密码体制,它的密钥是不能公开的,同时又称对称密码体制,指广泛应用的普通密码体制,该体制的特点是加密和解密使用相同的密钥
    • 私钥密码体制的密钥分配和管理极为重要。密钥分配必须使用安全的途径,例如由专门的人员负责护送密钥给接收者。在不同的接收者分别进行加密通信或信息交换时,则需要有几个不同的密钥。 假设网络中有n个用户,用户之间共享一个密钥,则共有n(n-2)/2
    • 私钥密码体制的缺点可归结为三点:密钥分配问题密钥管理问题以及无法认证源(就相当于我把你qq号盗了,给你朋友发一句早上好,它无法直接确认是不是本人)。
    • 虽然私钥密码体制有不足之处,但私钥密码算法处理速度快,人们常常将其用作数据加密处理
    • 私钥密码典型的算法有DES、3DES、RC4、RC5、IDEA、AES、SM1、SM4等

在这里插入图片描述

  • 公钥密码体制

    • 又称非对称密码体制,其基本原理是在加密和解密的过程中使用不同的密钥处理方式,其中,加密密钥可以公开,而只需要把解密密钥安全存放即可。但不适合大量数据、明文的加密。(公钥算法一般都很复杂,还用来加密大量数据就会很慢!)

    • 与私钥密码体制相比,公钥密码体制有以下优点:

      1. 密钥分发方便,能以公开的方式分配加密密钥
      2. 密钥保管量少。网络中的消息发送方可以公用一个公开加密密钥,从而减少保管的密钥数量。只要接收方的解密密钥保密,就能实现消息的安全性
      3. 支持数字签名。目前,有三种公钥密码体制类型被证明是安全有效的,即RSA体制、ELGamal体制以及椭33圆曲线密码体制
    • 公钥密码典型的算法有:RSA、椭圆曲线密码、SM2等
      在这里插入图片描述

  • 混合密码体制

      利用公钥密码体制分配私钥密码体制的密码,消息的收发双方公用这个密码钥,然后按照私钥密码体制的方式,进行加密和解密运算。密码混合体制的工作原理如下图所示:
    在这里插入图片描述
        第一步:消息发送者A用对称密钥把需要发送的消息加密
        第二步:A用B的公开秘钥将对称密钥加密,形成数字信封。再把加密信息和数字信封传送给B
        第三步:B收到A的加密消息和数字信封后,用自己的私钥解密数字信封,获取A加密消息时的对称密钥。
        第四步:B使用A加密时的对称秘钥,解密传输的信息

三、常见的密码算法

3.1 DES

  DES(Data Encryption Standard)是数据加密标准的简称,由IBM公司研制。DES是一个分组加密算法,能够支持64比特的明文块加密,其密钥长度为56比特。DES是世界上应用最广泛的密码算法。

  随着计算机系统运算速度的增加和网络计算的进行,DES56比特的密钥长度已不足以保证密码系统的安全。NIST于1999年10越25日采用三重DES(Triple Data Encryption Algorithm,TDEA)作为过渡期间的国家标准。并开始征集AES(Advanced Encryption Standard)算法

  S盒代替是DES算法的关键步骤,所有的其它运算都是线性的,易于分析,而S盒是非线性的,相比于其它步骤,提供了更好的安全性。S盒的功能就是一种简单的“代替”操作。S盒是将48比特压缩成32比特,S盒接收特定数量的输入48比特,经过8个盒将其转换为32比特输出。

  一个S盒就是一个4行16列的表,盒中的每一项都是一个4位二进制数表示的十进制数。S盒的6个输入确定了其对应的那个盒。输入的高低两位作为行数H(第一位和底六位),中间四位作为列数L,在S-BOX中查找第H行L列对应的数据

  以下图S8盒为例,输入110011,其第一位和第六位组合是11,所以在s8盒中行号为3。输入的中间四位是1001,所以列数为9。s盒3行,9列的数是12。(注意行数范围是0-3,列是0-15,二进制)
在这里插入图片描述

  再出一题,补全s盒,填补空(1)-(4)。其实很简答,s每一行没有重复的数字,都是0~15之内

在这里插入图片描述

这个虽然很少考,但是出选择题是真的方便,建议还是记一下。

3.2 IDEA、AES

就记一下概念,把具体的比特记一下就行了

  idea(intenational Date Encryption Algorithm)是国际数据加密算法的简记,是一个分组加密处理算法,其明文和密文分组都是64比特密钥长度为128比特。IDEA算法能够接受64比特分组加密处理,同一算法既可用于加密又可用于解密,该算法的设计思想是“混合使用来自于不同代数群中的运算”。

  美国国家标准技术研究所(NIST)曾发起征集AES算法的活动,其目的是确定一个非保密的、公开的、全球免费使用的分组密码算法。参选的AES算法需要具备以下的要求:

  • 密码必须是没有机密的,绝不能像商业秘密那样来保护它
  • 算法的全部描述必须公开披露
  • 密码必须可以在世界范围内免费使用
  • 密码系统支持至少128比特长的分组
  • 密码支持的密钥长度至少为128、192和256比特

  Rijndael算法提供了安全性、软件和硬件性能、低内存需求以及灵活性的最好组合,因此美国国家标准技术研究所确定选择Rijndeal作为AES。

3.3 RSA

RSA是众多密码算法中唯一一个没被删除计算过程的。如果出大题计算题,我觉得RSA有可能,这个必记

  在RSA中,公钥和私钥都可以用于加密消息,用于加密消息的密钥与用于解密消息的密钥相反。RSA算法提供了一种保护网络通信和数据存储的机密性、完整性、真实性和不可否认性的方法。目前,SSH、OpenPGP、S/MIME和SSL/TLS都依赖于RSA进行加密和数字签名的功能。RSA算法在浏览器中使用,能够在不可信任的互联网中建立安全连接。RSA签名验证时网络连接系统中最常见的执行操作之一。

  RSA算法基于大整数因子分解的困难性,该算法步骤如下:

  • 第一步,生成两个大素数p和q
  • 第二步,计算这两个素数的乘积n=pq
  • 第三步,计算小于n并且与n互素的整数个数,即欧拉函数φ(n) = (p-1)(q-1)
  • 第四步,选一个随机数e,且满足 1<e<φ(n),并且e 和 φ(n) 互素,即gcd(e , φ(n)) = 1
  • 第五步,计算 d=e⁻¹modφ(n)
  • 第六步,保密d、p和q,而公开n和e,即d作为私钥,而n和e作为公钥

在这里插入图片描述

四、国产密码算法

  • 国产密码算法是指由国家密码演剧相关机构自主研发,具有相关知识产权的商用密码算法

  • 目前,已经公布的国产密码算法主要有如下几种:

    • SM1算法,是一种对称加密算法分组长度为128比特密钥长度也为128比特
    • SM2算法基于椭圆曲线的非对称加密算法,应用于公钥密码系统。可以用于数字签名、密钥交换、公钥加密
    • SM3杂凑算法对长度L ( L<2⁶⁴) 比特的消息m,经过填充、迭代压缩,生成杂凑值,杂凑值输出长度为256比特
    • SM4密码算法是一个分组的对称加密算法。该算法的分组长度为128比特密钥长度为128比特
    • M9是标识密码算法。在表示密码系统中,用户的私钥由密钥生成中心(KGC)根据主密钥和用户标识计算得出,用户的公钥由用户标识唯一确定,因而用户不需要通过第三方保证其公钥的真实性。与基于证书的公钥密码系统相比,标识密码系统中的密钥管理环节可以得到简化。SM9可支持实现公钥加密、密钥交换、数字签名等安全功能

五、Hash函数与数字签名

5.1 Hash函数

  杂凑函数简称Hash函数,它能够将任意长度的信息转换成固定长度的哈希值(又称为数字摘要或消息摘要),并且任意不通消息或文件所生成的哈希值是不一样的。令h表示Hash函数,则h满足下列条件:

   1. h的输入可以是任意长度的消息或文件M
   2. h的输出的长度是固定的
   3. 给定h和M,计算h(M)是容易的;
   4. 给定h的描述,找两个不同消息M1和M2,使得`h(M1)=h(M2)`是计算上不可行的

  Hash算法是指有关哈希或杂凑值得计算方法。Hash算法又称为杂凑算法、散列算法、哈希算法或是数据摘要算法,他能将任意长度的比特映射为一个固定长度的比特串。常见的Hash算法有 MD5SHASM3

  • MD5算法(Message Digest Algorithm——5)

    • 512位数据块为单位来处理输入,产生128位的摘要信息,即MD5能产生128比特长度的哈希值。
    • md5虽然应用很广泛,但最新研究表明,王小云教授及其研究团队提出了Hash函数快速寻找碰撞攻击的方法,已经证明了MD5安全性已不足
  • SHA算法(Secure Hash Algorithm)

    • 由NIST开发,SHA-1与MD5的设计原理类似,也是以512位数据块为单位来处理输入产生160位的哈希值,但SHA-1具有比MD5更强的安全性
    • SHA算法的安全性不断改进,已发布的版本有SHA-2、SHA-3。SHA算法产生的哈希值长度有SHA-224、SHA-256、SHA-384、SHA-512
  • SM3国产算法

    • 由国家密码管理局于2010年公布的商用密码杂凑算法标准。该算法消息分组长度为512比特,输出杂凑值长度为256比特,采用Merkle-Damgard结构
5.2 数字签名

  数字签名(Digital Signature)是指签名者使用私钥对待签名数据的杂凑值作密码运算得到的结果。该结果只能用签名者的公钥进行验证,用于确认数据的完整新、签名者身份的真实性和签名行为的抗抵赖性。(注意!!!数字签名不能保障数据的机密性!)

  数字签名至少应满足以下三个条件

非否认。签名者事后不能否认自己的签名
真实性。接收者能验证签名,而任何其他人都不能伪造签名
可鉴别性。当双方关于签名的真伪发生争执时,第三方能解决双方之间发生的争执。

  一个数字签名方案一般由签名算法验证算法组成。签名算法密钥时秘密的,只有签名的人掌握;而验证算法则是公开的,以便他人验证。典型的数字签名方案有RSA签名体制、Rabin签名体制、ElGamal签名体制盒DSS(Data Signature Standard)标准。

  签名与加密的不同之处在于,加密的目的是保护信息不被非授权用户访问,而签名是使消息接收者确信信息的发送者是谁信息是否被他人篡改

  假设A需要签名发送一份电子合同文件给B。A数字签名工作的基本流程如下

  • 第一步,A使用hash函数得到电子合同文件的消息摘要
  • 第二步,A使用自己的私钥,将消息摘要进行加密,形成一个数字签名
  • 第三步,A把电子合同文件和数字签名一同发送给B

在这里插入图片描述

  B收到A发送的消息后,为确保电子合同文件是A所认可的,验证步骤如下

  • 第一步,B使用与A相同的Hash算法,得到收到的电子合同文件的摘要
  • 第二步,B使用A的公钥,解密来自A的加密后的消息摘要,
  • 第三步,B比较自己产生的消息摘要和解密后的消息摘要之间的异同。若两者相同,则证明消息来自A;若不同,则证明合同文件已被篡改

在这里插入图片描述

五、密码管理和数字证书

5.1 密码管理

  密码系统的安全性依赖于密码管理。密码管理主要可分为三个方面的内容,即密钥管理密码管理政策密码测评

  • 密钥管理,主要围绕秘钥的生命周期进行,包括秘钥生成、密钥存储、密钥分发、密钥使用、密钥更新、密钥撤销、密钥备份、密钥恢复、密钥销毁、密钥审计
  • 密码管理政策,是指国家对密码进行管理的有关法律文件、标准规范、安全质量测评等。国家已经颁布了《商用密码管理条例》,内容主要有商用密码的科研生产管理、销售管理、使用管理、安全保密管理。
  • 密码测评,是指对相关面产品及系统进行安全性、合规性评估、以确保相关对象的密码安全有效,保障密码系统的安全运行。目前国家设立了商用密码检测中心。
5.2 数字证书

  数字证书(Digital Certificate)也称公钥证书,是由证书认证机构(CA)签名得包含公开密钥拥有者信息、公开密钥、签发者信息、有效期以及扩展信息的一种数据结构。

  签名证书按类别可以分为个人证书机构证书和设备证书,用途可以分为签名证书和加密证书。其中,签名证书是用于证明签名公钥的数字证书,加密证书是用于证明公钥的数字证书。

  管理数字证书,一般是基于PKI技术建立数字证书认证系统(简称CA)。CA提供数字证书的申请、审核、签发、查询、发布以及证书吊销等全生命周期的管理服务。数字证书认证系统的构成主要有目录服务器、OCSP服务器(指的是在线证书协议,用于检查数字证书的状态}、注册服务器、签发服务器等。


六、安全协议

6.1 Diffie-Hellman 秘钥交换协议

考的概率很低

  Diffie-Hellman主要是基于求解离散对数问题的困难性,对于下述等式:

在这里插入图片描述

 其中,d称为模P的以C为底的M的对数,在已知C和P的前提下,由d求M很容易,只相当于进行一次指数计算。而再由M反过来求d,则需要指数级次计算。随着P取的值足够大,就能实现足够的安全强度。

如果想弄懂Diffie-Hellman协议,可以看我以前的这篇blog,很详细!


6.2 SSH

建议还是了解下,知晓原理

  SSH是Secure Shell 的缩写,即安全外壳,它是基于公钥安全应用协议,由SSH传输层协议SSH用户认证协议SSH连接协议三个子协议组成,各项协议分工合作,实现加密、认证、完整性检查等多种安全服务。

  SSH传输层协议提供算法协商和密钥交换,并实现服务器的认证,最终形成一个加密的安全连接,该安全连接提供完整性,保密性和压缩选项服务。

  SSH用户认证协议则利用传输协议的服务来建立连接,使用传统的口令认证、公钥认证、主机认证等多种机制认证用户

  SSH连接协议在前面两个协议的基础上,利用已建立的认证连接,并将其分解为多种不同的并发逻辑通道,支持注册会话隧道和TCP转发(TCP-forwarding),而且能为这些通道提供流空服务以及通道参数协商机制。

  目前,SSH有两个版本SSH1和SSH2,其中SSH1因存在漏洞已被停用,现在用户使用的是SSH2,SSH2协议结构图如下

在这里插入图片描述

  在实际应用中,SSH在端口转发技术(如下图)的基础上,能够支持远程登录(Telnet)、rsh、rlogin、文件传输(scp)等多种安全服务。Linux系统一般提供SSH服务,服务进程端口号为22。虽然ssh协议是一个安全协议,但也可受到中间人攻击和拒绝服务攻击。

在这里插入图片描述

七、密码学网络安全应用

也是需要了解,留个印象!

7.1 密码技术常见引用场景类型
  • 采用密码技术保护网络用户安全。通过公钥密码技术,把用户实体信息与密码数据绑定,形成数字证书,标识网络用户身份,并提供身份鉴别服务;同时使用加密技术,保护用户的个人敏感信息。
  • 采用密码技术保障物理和环境安全。对物理区域访问者的身份进行鉴别,保证来访人员的身份真实性;保护电子门禁系统进出记录的存储完整性和机密性;保证视频监控录音的存储完整性和机密性。
  • 采用密码技术保护网络通信安全。通过对实体进行双向身份鉴别,保证通信双方身份的真实性;通过数字签名保证通信过程中数据的完整性;对通信过程中数据进行加密;使用密码安全协议认证对网络设备进行接入认证,确保接入设备身份的真实性。
  • 采用密码技术保护设备和计算机安全。使用密码安全认证协议对登录设备用户的身份进行鉴别;使用hash函数及密码酸钾建立可信的计算机环境;是使用数字签名验证重要可执行程序来源的真实性;使用加密措施保护设备的重要信息资源;使用SSH及SSL等密码技术,建立设备远程管理安全信息传输通道。
  • 采用密码技术保护应用和数据安全。使用安全协议及数字证书对登录用户进行身份鉴别,保证应用系统用户身份的真实性;加密应用系统访问控制信息;应用SSH及SSL等密码技术,传输重要数据,保护重要数据的机密性和完整性;加密存储重要数据,防止敏感数据泄密;使用Hash函数、数字签名等密码技术,保护应用系统的完整性,防止黑客攻击篡改。
  • 采用密码技术进行业务应用创新。利用数字证 书和数字签名等密码技术,构建网络发票;使用Hash函数等密码技术,构建区块链;利用密码技术,建立电子证照。
7.2 路由器安全应用

  目前,路由器面临的威胁有路由信息交换的篡改和伪造、路由器管理信息的泄露、路由器非法访问等。因此,为解决上诉问题,密码学已引用到路由器的安全防范工作中,主要用途如下。

  • 路由器口令管理,将管理员口令进行md5进行hash计算后存储到路由器的配置文件中
  • 远程安全访问路由器,使用SSH远程安全访问路由器(以前的Telnet信息传输是明文传输,容易泄露敏感口令信息)
  • 路由器交换认证,路由器之间需要进行路由信息的交换,以保证网络路由正常进行,因此需要路由器之间发送路由更新包。为了防止路由欺诈,路由器之间对路由更新包都进行完整性检查,以保证路由完整性。目前,路由器常用MD5-HMAC来实现。如果路由信息在传输过程中被篡改了, 接收路由器通过重新计算收到路由信息的Hash值,然后与发送路由器的路由信息的Hash值进行比较,如果两个Hash值不相同,则接收路由器拒绝路由更新包

在这里插入图片描述

7.3 其他应用
  • 密码学在web方面的安全应用有很多,包括Web用户身份认证、Web服务信息加密处理以及Web信息完整性检查等。目前重要信息网站通过利用SSL和数字证书,来防止浏览器和Web服务器间的通信信息泄密或被篡改和伪造
  • 针对电子邮件安全问题(简单邮件传输协议SMTP是明文传出),通过使用PGP(Pretty Good Privacy)来保护。PGP是一种加密软件,它能够防止非授权者阅读邮件,并能对用户的邮件加上数字签名,从而使收信人可以确信发信人的身份。PGP 应用了多种密码技术,其中密钥管理算法选用RSA、数据加密算法IDEA、完整性检测和数字签名算法,采用了MD5和RSA以及随机数生成器,PGP将这些密码技术有机集成在一起,利用对称和非对称加密算法的各自优点,实现了一个比较完善的密码系统。

这一章的内容也很多,相对于第一版的教材已经少了很多内容了。由于密码学在改版前是考试的重点,但改版后指出了选择题,出大题可能是连续的几个小问题,或者是出一个不是很难的计算最多5-6分。实际上相对参照很少,21年就没出过答题。但还是建议好好记一下。多刷题

  • 2
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值