- 密码学概述 ※
- 密码体制分类 ※
- 常见密码算法 ※※
- Hash函数与数字签名 ※
- 密码管理与数字认证 ※
- 安全协议 ※
- 密码学网络安全应用
一个 ※ 的是熟悉,知道概念、原理。两个※是 需要掌握相对于第一版教材,第二版删除了大量的密码原理,除RSA外,其他密码原理都被删除。(第一版的密码学内容好像两百多面)
命题规则:选择5分,案列2-6分或较低概率大题
- 2005年4月1日国家实施《中华人民共和国电子签名法》
- 2006年我国政府公布了自己的商用密码算法,是我国密码发展史上的一件大事
- 2019年《中华人民共和国密码法》草案已发布
密码学是保障网络与信息安全的核心技术和基础支撑
密码学是一门研究信息安全保护的学科,以实现信息的保密性、完整性、可用性及抗抵赖性。密码学主要由密码编码和密码分析两个部分组成。
2005年 4月1日国家实行《中华人民共和国电子签名法》。2006年我国政府公布了自己的商用密码法,成为我国密码发展史上的第一件大事。2019年《中华人民共和国密码法》草案已经公布
密码学的主要目的是保持明文的秘密性以防止攻击者获知(将明文处理为密文),而密码分析学的目的则是在不知道密钥的情况下,识别出明文的科学。(把密文还原成明文)
y = f(x,k)
在这里插入图片描述
根据密码分析者在破译时已具备的提前条件,人们通常将密码分析攻击类型分为五种,分别如下。
攻击是从上自下越来越有利!
n(n-2)/2
公钥密码体制
又称非对称密码体制,其基本原理是在加密和解密的过程中使用不同的密钥处理方式,其中,加密密钥可以公开,而只需要把解密密钥安全存放即可。但不适合大量数据、明文的加密。(公钥算法一般都很复杂,还用来加密大量数据就会很慢!)
与私钥密码体制相比,公钥密码体制有以下优点:
混合密码体制
利用公钥密码体制分配私钥密码体制的密码,消息的收发双方公用这个密码钥,然后按照私钥密码体制的方式,进行加密和解密运算。密码混合体制的工作原理如下图所示:
第一步:消息发送者A用对称密钥把需要发送的消息加密
第二步:A用B的公开秘钥将对称密钥加密,形成数字信封。再把加密信息和数字信封传送给B
第三步:B收到A的加密消息和数字信封后,用自己的私钥解密数字信封,获取A加密消息时的对称密钥。
第四步:B使用A加密时的对称秘钥,解密传输的信息
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之内
这个虽然很少考,但是出选择题是真的方便,建议还是记一下。
就记一下概念,把具体的比特记一下就行了
idea(intenational Date Encryption Algorithm)是国际数据加密算法的简记,是一个分组加密处理算法,其明文和密文分组都是64比特,密钥长度为128比特。IDEA算法能够接受64比特分组加密处理,同一算法既可用于加密又可用于解密,该算法的设计思想是“混合使用来自于不同代数群中的运算”。
美国国家标准技术研究所(NIST)曾发起征集AES算法的活动,其目的是确定一个非保密的、公开的、全球免费使用的分组密码算法。参选的AES算法需要具备以下的要求:
Rijndael算法提供了安全性、软件和硬件性能、低内存需求以及灵活性的最好组合,因此美国国家标准技术研究所确定选择Rijndeal作为AES。
RSA是众多密码算法中唯一一个没被删除计算过程的。如果出大题计算题,我觉得RSA有可能,这个必记
在RSA中,公钥和私钥都可以用于加密消息,用于加密消息的密钥与用于解密消息的密钥相反。RSA算法提供了一种保护网络通信和数据存储的机密性、完整性、真实性和不可否认性的方法。目前,SSH、OpenPGP、S/MIME和SSL/TLS都依赖于RSA进行加密和数字签名的功能。RSA算法在浏览器中使用,能够在不可信任的互联网中建立安全连接。RSA签名验证时网络连接系统中最常见的执行操作之一。
RSA算法基于大整数因子分解的困难性,该算法步骤如下:
n=pq
φ(n) = (p-1)(q-1)
1,并且e 和 φ(n) 互素,即gcd(e , φ(n)) = 1
d=e⁻¹modφ(n)
国产密码算法是指由国家密码演剧相关机构自主研发,具有相关知识产权的商用密码算法
目前,已经公布的国产密码算法主要有如下几种:
杂凑函数简称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算法有 MD5
、SHA
、SM3
。
MD5算法(Message Digest Algorithm——5)
SHA算法(Secure Hash Algorithm)
SM3国产算法
数字签名(Digital Signature)是指签名者使用私钥对待签名数据的杂凑值作密码运算得到的结果。该结果只能用签名者的公钥进行验证,用于确认数据的完整新、签名者身份的真实性和签名行为的抗抵赖性。(注意!!!数字签名不能保障数据的机密性!)
数字签名至少应满足以下三个条件
非否认。签名者事后不能否认自己的签名
真实性。接收者能验证签名,而任何其他人都不能伪造签名
可鉴别性。当双方关于签名的真伪发生争执时,第三方能解决双方之间发生的争执。
一个数字签名方案一般由签名算法和验证算法组成。签名算法密钥时秘密的,只有签名的人掌握;而验证算法则是公开的,以便他人验证。典型的数字签名方案有RSA签名体制、Rabin签名体制、ElGamal签名体制盒DSS(Data Signature Standard)标准。
签名与加密的不同之处在于,加密的目的是保护信息不被非授权用户访问,而签名是使消息接收者确信信息的发送者是谁,信息是否被他人篡改。
假设A需要签名发送一份电子合同文件给B。A数字签名工作的基本流程如下
B收到A发送的消息后,为确保电子合同文件是A所认可的,验证步骤如下
密码系统的安全性依赖于密码管理。密码管理主要可分为三个方面的内容,即密钥管理、密码管理政策、密码测评
数字证书(Digital Certificate)也称公钥证书,是由证书认证机构(CA)签名得包含公开密钥拥有者信息、公开密钥、签发者信息、有效期以及扩展信息的一种数据结构。
签名证书按类别可以分为个人证书、机构证书和设备证书,用途可以分为签名证书和加密证书。其中,签名证书是用于证明签名公钥的数字证书,加密证书是用于证明公钥的数字证书。
管理数字证书,一般是基于PKI技术建立数字证书认证系统(简称CA)。CA提供数字证书的申请、审核、签发、查询、发布以及证书吊销等全生命周期的管理服务。数字证书认证系统的构成主要有目录服务器、OCSP服务器(指的是在线证书协议,用于检查数字证书的状态}、注册服务器、签发服务器等。
考的概率很低
Diffie-Hellman主要是基于求解离散对数问题的困难性,对于下述等式:
其中,d称为模P的以C为底的M的对数,在已知C和P的前提下,由d求M很容易,只相当于进行一次指数计算。而再由M反过来求d,则需要指数级次计算。随着P取的值足够大,就能实现足够的安全强度。
如果想弄懂Diffie-Hellman协议,可以看我以前的这篇blog,很详细!
建议还是了解下,知晓原理
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协议是一个安全协议,但也可受到中间人攻击和拒绝服务攻击。
也是需要了解,留个印象!
目前,路由器面临的威胁有路由信息交换的篡改和伪造、路由器管理信息的泄露、路由器非法访问等。因此,为解决上诉问题,密码学已引用到路由器的安全防范工作中,主要用途如下。
这一章的内容也很多,相对于第一版的教材已经少了很多内容了。由于密码学在改版前是考试的重点,但改版后指出了选择题,出大题可能是连续的几个小问题,或者是出一个不是很难的计算最多5-6分。实际上相对参照很少,21年就没出过答题。但还是建议好好记一下。多刷题