倪的个人博客

  • 首页
  • Linux运维
  1. 首页
  2. 软考信安
  3. 正文

第3章密码学基础

2024年11月21日 190点热度 0人点赞 0条评论

说明:目前版本已经不再深入考查密码学相关计算,只涉及简单概念,保留这几个视频的目的是让大家对密码学基础有所了解。

3.1密码学概况

密码技术是保障网络与信息安全的核心技术和基础支撑。本节主要介绍密码学的发展简况、密码学的基本概念以及密码系统的安全性分析方法。

3.1.1 密码学发展简况

密码学是一门研究信息安全保护的科学,以实现信息的保密性、完整性、可用性及抗抵赖性。密码学主要由密码编码和密码分析两个部分组成。其中,密码编码学研究信息的变换处理以实现信息的安全保护,而密码分析学则研究通过密文获取对应的明文信息。

密码算法的安全性不是一成不变的,随着量子计算技术日渐成熟,RSA 算法的安全性受到挑战,抵抗量子计算的密码算法成为新的需求。后量子时代密码(Post-Quantum Cryptography)研究工作是当前密码学的研究热点。

3.1.2 密码学基本概念

密码学的主要目的是保持明文的秘密以防止攻击者获知,而密码分析学则是在不知道密钥的情况下,识别出明文的科学。所谓明文是指需要采用密码技术进行保护的消息。而密文则是指用密码技术处理过明文的结果,通常称为加密消息。将明文变换成密文的过程称作加密,其逆过程,即由密文恢复出原明文的过程称作解密。加密过程所使用的一组操作运算规则称作加密算法,而解密过程所使用的一组操作运算规则称作解密算法。加密和解密算法的操作通常都是在密钥控制下进行的,分别称为加密密钥和解密密钥。

特点:

(1)保密性(Confidentiality):信息仅被合法用户访问(浏览、阅读、打印等),不被泄露给非授权的用户、实体或过程。
(2)完整性(Integrity):资源只有授权方或以授权的方式进行修改,所有资源没有授权则不能修改。保证数据完整性,就是保证数据不能被偶然或者蓄意的编辑(修改、插入、删除、排序)或者攻击(伪造、重放)。
(3)可用性(Availability):资源只有在适当的时候被授权方访问,并按需求使用。

评估密码系统安全性主要有三种方法:
(1)无条件安全:假定攻击者拥有无限的资源(时间、计算能力),仍然无法破译加密算法。无条件安全属于极限状态安全。
(2)计算安全:破解加密算法所需要的资源是现有条件不具备的,则表明强力破解证明是安全的。计算安全属于强力破解安全。
(3)可证明安全:密码系统的安全性归结为经过深入研究的数学难题(例如大整数素因子分解、计算离散对数等)。可证明安全属于理论保证安全。

3.1.3 密码安全性分析

根据密码分析者在破译时已具备的前提条件,人们通常将密码分析攻击类型分为五种,分别叙述如下。
(1)唯密文攻击(ciphertext-only attack)。密码分析者只拥有一个或多个用同一个密钥加密的密文,没有其他可利用的信息。
(2)已知明文攻击(known-plaintextattack)。密码分析者仅知道当前密钥下的一些明文及所对应的密文。
(3)选择明文攻击(chosen-plaintextattack)。密码分析者能够得到当前密钥下自己选定的明文所对应的密文。
(4)密文验证攻击(ciphertext verification attack)。密码分析者对于任何选定的密文,能够得到该密文“是否合法”的判断。
(5)选择密文攻击(chosen-ciphertextattack)。除了挑战密文外,密码分析者能够得到任何选定的密文所对应的明文。

3.2密码体制分类

根据密钥的特点,密码体制分为私钥和公钥密码体制两种,而介于私钥和公钥之间的密码体制称为混合密码体制。

密码(Cipher)技术的基本思想是伪装信息。伪装就是对数据施加一种可逆的数学变换。
伪装前的数据称为明文(Plaintext )
伪装后的数据称为密文(Ciphertext )
伪装的过程称为加密(Encryption )
去掉伪装恢复明文的过程称为解密(Decryption)。
加密过程要在加密密钥和加密算法的控制下进行;解密过程要在解密密钥和解密算法的控制下进行。

在现代密码学中,趋势是把加密算法公开,把密钥保存好。

根据密钥的特点,密码体制分为:私钥和公钥密码体制。
介于私钥和公钥之间的密码体制称为:混合密码体制。

通常一个密码系统(简称密码体制)由以下5个部分组成,密码体制模型参见下图。
(1)明文空间M:全体明文的集合。
(2)密文空间C:全体密文的集合。
(3)加密算法E:一组明文M到密文C的加密变换。
(4)解密算法D:一组密文C到明文M的加密变换。
(5)密钥空间K:包含加密密钥和解密密钥的全体密钥集合。

3和4,不管是加密还是解密算法,仅仅是一种数据变化。

Ke=Kd 则是对称加密
Ke≠Kd 则是非对称加密,也叫公开加密和解密的表示形式

■加密过程:C=E(M,Ke)
使用加密算法E和密钥,将明文M加密为密文C。
■解密过程:M=D(C,Ka)=D(E(M,Ke),Ka)
使用解密算法D和密钥,将密文C还原为明文M。

在公开密码加密体系中,主要是起到个签名作用

比如私钥sk加密 写做Esk(M)=C 那么由于sk和pk是一对密钥,,则如果用pk能解密C,则说明这是有sk加密的

Dpk(C)=>M

3.2.1 私钥密码体制

私钥密码体制:
●私钥密码体制又称为对称密码体制,指广泛应用的普通密码体制。
●特点:加密和解密使用相同的密钥。
缺陷:密钥分配问题、密钥管理问题以及无法认证源。
典型算法:DES、IDEA、AES等,其中DES是美国早期数据加密标准,现在已经被AES取代。

私钥密码体制又称为对称密码体制,指广泛应用的普通密码体制,该体制的特点是加密和解密使用相同的密钥,如图 3-1所示。

DES

S盒的每行都是0-15的随机排列,所以只需要查找每行缺少的数值。

3.2.2 公钥密码体制

1976年,W.Diffe 和 M.E.Hellman 发表了《密码学的新方向》一文,提出了公钥密码体制的思想。公钥密码体制又称为非对称密码体制,其==基本原理是在加密和解密的过程中使用不同的密钥处理方式,其中,加密密钥可以公开,而只需要把解密密钥安全存放即可==。在安全性方面,密码算法即使公开,由加密密钥推知解密密钥也是计算不可行的。公钥密码体制原理如图 3-2 所示。

==公钥密码体制可看成邮局的邮筒,任何人都能轻易地把邮件放进邮筒,只要从邮筒口投进去就行了。把邮件放进邮简是一件公开的事情,但打开邮筒却是很难的。==如果持有秘密信息(钥匙或组合密码),就能很容易地打开邮筒的门锁了。与私钥密码体制相比较,公钥密码体制有以下优点。

与私钥密码体制相比较,公钥密码体制有以下优点:
(1)密钥分发方便,能以公开方式分配加密密钥
(2)密钥保管量少
(3)支持数字签名
目前,有三种公钥密码体制类型被证明是安全和有效的,即RSA体制、ELGamal体制及椭圆曲线密码体制

3.2.3 混合密码体制

混合密码体制利用公钥密码体制分配私钥密码体制的密钥,消息的收发双方共用这个密钥,然后按照私钥密码体制的方式,进行加密和解密运算。混合密码体制的工作原理如图 3-3所示。

第一步,消息发送者 Alice 用对称密钥把需要发送的消息加密。

第二步,Alice 用 Bob 的公开密钥将对称密钥加密,形成数字信封。然后,一起把加密消息和数字信封传送给Bob。

第三步,Bob 收到 Alice 的加密消息和数字信封后,用自己的私钥将数字信封解密,获取 Alice 加密消息时的对称密钥。

第四步,Bob使用Alice加密的对称密钥把收到的加密消息解开。

3.3常见密码算法

本节主要介绍国际上常见的密码算法以及国产密码算法。

3.3.1 DES

DES(Data Encryption Standard)是数据加密标准的简称,由 IBM 公司研制。DES 是一个分组加密算法,能够支持64比特的明文块加密,其密钥长度为56比特。DES是世界上应用最广泛的密码算法。但是,随着计算机系统运算速度的增加和网络计算的进行,在有限的时间内进行大量的运算将变得更可行。

3.3.2 IDEA

IDEA(Intermational DataEncryption Algorithm)是国际数据加密算法的简记,是一个分组加密处理算法,其明文和密文分组都是64比特,密钥长度为128比特。该算法是由来学嘉(X.J.Lai)和 Massey 提出的建议标准算法,已在 PGP 中得到应用。IDEA 算法能够接受 64比特分组加密处理,同一算法既可用于加密又可用于解密,该算法的设计思想是“混合使用来自不同代数群中的运算”

3.3.3 AES

1997年美国国家标准技术研究所(NIST)发起征集AES(AdvancedEncryption Standard)算法的活动,并专门成立了 AES工作组,其目的是确定一个非保密的、公开的、全球免费使用的分组密码算法,用于保护下一世纪政府的敏感信息。NIST规定候选算法必须满足下面的要求:

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

参与 AES 的候选算法中,Riindael提供了安全性、软件和硬件性能、低内存需求以及灵活性的最好的组合,因此 NIST确定选择Riindael作为 AES。

3.3.4 RSA

RSA 算法是非对称算法,由Ronald Rivest、Adi Shamir、Leonard Adleman 三人共同在 1977年公开发表。

RSA 算法在浏览器中使用,能够在不可信任的互联网中建立安全连接。RSA 签名验证是网络连接系统中最常见的执行操作之一。

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

3.3.5 国产密码算法

国产密码算法是指由国家密码研究相关机构自主研发,具有相关知识产权的商用密码算法。目前,已经公布的国产密码算法主要有SM1分组密码算法、SM2圆曲线公钥密码算法、SM3 密码杂凑算法、SM4分组算法、SM9标识密码算法。各国产商用密码算法的特性统计如表 3-1 所示。

3.4 Hash 函数与数字签名

本节主要介绍Hash函数的特性以及常用的Hash 算法,同时给出 Hash 算法在数字签名中的应用。

3.4.1 Hash 函数

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

3.4.2 Hash 算法

Hash 算法是指有关产生哈希值或杂凑值的计算方法。Hash 算法又称为杂凑算法、散列算法、哈希算法或数据摘要算法,其能够将一个任意长的比特串映射到一个固定长的比特串。常见的 Hash 算法有 MD5、SHA 和 SM3。

1.MD5 算法
MD5(Message Digest Algorithm-5)算法是由 Rivest 设计的,于 1992年公开,RFC 1321对其进行了详细描述。MD5以512 位数据块为单位来处理输入,产生128位的消息摘要,即MD5能产生 128比特长度的哈希值。MD5使用广泛,常用在文件完整性检查。但是,据最新研究表明,MD5的安全性受到挑战,王小云教授及其研究团队提出了Hash 函数快速寻找碰撞攻击的方法,相关研究工作表明 MD5 的安全性已经不足。

2.SHA 算法
SHA(Secure Hash Algorithm)算法由NIST开发,并在1993年作为联邦信息处理标准公布。SHA-1与MD5的设计原理类似,同样也以512位数据块为单位来处理输入,产生160位的哈希值,具有比 MD5 更强的安全性。SHA 算法的安全性不断改进,已发布的版本有SHA-2、SHA-3。SHA 算法产生的哈希值长度有 SHA-224、SHA-256、SHA-384、 SHA-512 等。

3.SM3 国产算法
SM3是国家密码管理局于2010年公布的商用密码杂凑算法标准。该算法消息分组长度为512 比特,输出杂凑值长度为256比特,采用Merkle-Damgard 结构。

3.4.3 数字签名

数字签名(DigitalSignature)是指签名者使用私钥对待签名数据的杂凑值做密码运算得到的结果。该结果只能用签名者的公钥进行验证,用于确认待签名数据的完整性、签名者身份的真实性和签名行为的抗抵赖性。数字签名的目的是通过网络信息安全技术手段实现传统的纸面签字或者盖章的功能,以确认交易当事人的真实身份,保证交易的安全性、真实性和不可抵赖性。数字签名具有与手写签名一样的特点,是可信的、不可伪造的、不可重用的、不可抵赖的以及不可修改的。数字签名至少应满足以下三个条件:

(1)非否认。签名者事后不能否认自己的签名。
(2)真实性。接收者能验证签名,而任何其他人都不能伪造签名。

(3)可鉴别性。当双方关于签名的真伪发生争执时,第三方能解决双方之间发生的争执。

一个数字签名方案一般由签名算法和验证算法组成。签名算法密钥是秘密的,只有签名的人掌握;而验证算法则是公开的,以便他人验证。典型的数字签名方案有RSA 签名体制、Rabim签名体制、EIGamal签名体制和DSS(Data Signature Standard)标准。签名与加密很相似,-般是签名者利用秘密密钥(私钥)对需签名的数据进行加密,验证方利用签名者的公开密钥(公钥)对签名数据做解密运算。签名与加密的不同之处在于,加密的目的是保护信息不被非授权用户访问,而签名是使消息接收者确信信息的发送者是谁,信息是否被他人篡改。

数字签名(Digital signature)的作用就是确保A发送给B的信息就是A本人发送的,并且没有改动。数字签名和验证的过程如图所示。
签名条件:不能抵赖,不能伪造,可仲裁
两个基本过程:施加签名和验证签名
能确保数据真实性的公开密钥都可以实现签名。

数字签名体制包括施加签名和验证签名两个方面。

基本的数字签名过程如下:【确保数字签名的安全,要对 hash(m)签名]
(1 ) A使用“摘要”算法(如SHA-1、MD5等)对发送信息进行摘要。
(2)使用A的私钥对消息摘要进行加密运算,将加密摘要和原文一并发给B。验证签名的基本过程:
(1)B接收到加密摘要和原文后,使用和A同样的“摘要”算法对原文再次摘要,生成新摘要。
(2)使用A公钥对加密摘要解密,还原成原摘要。
(3)两个摘要对比,一致则说明由A发出且没有经过任何篡改。为了同时保证机密性和真实性,应该先签名后加密。

先签名后加密里的加密,可用共享的密码加密,也可用接收方的公开密钥加密

3.5密码管理与数字证书

本节首先介绍密码管理,包括密钥管理、密码管理政策、密码测评,然后给出数字证书的概念以及CA的基本功能、数字证书认证系统组成。

3.5.1 密码管理

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

1.密钥管理
密钥管理主要围绕密钥的生命周期进行,包括密钥生成、密钥存储、密钥分发、密钥使用、密钥更新、密钥撤销、密钥备份、密钥恢复、密钥销毁、密钥审计。

(1)密钥生成。密钥应由密码相关产品或工具按照一定标准产生,通常包括密码算法选择、密钥长度等。密钥生成时要同步记录密钥的关联信息,如拥有者、密钥使用起始时间、密钥使用终止时间等。

(2)密钥存储。一般来说密钥不应以明文方式存储保管,应采取严格的安全防护措施,防止密钥被非授权的访问或篡改。

(3)密钥分发。密钥分发工作是指通过安全通道,把密钥安全地传递给相关接收者,防止密钥遭受截取、篡改、假冒等攻击,保证密钥机密性、完整性以及分发者、接收者身份的真实性。目前,密钥分发的方式主要有人工、自动化和半自动化。其中,自动化主要通过密钥交换协议进行。

(4)密钥使用。密钥使用要根据不同的用途而选择正确的使用方式。密钥使用和密码产品保持一致性,密码算法、密钥长度、密码产品都要符合相关管理政策,即安全合规。使用密钥前,要验证密钥的有效性,如公钥证书是否有效。密钥使用过程中要防止密钥的泄露和替换,按照密钥安全策略及时更换密钥。建立密钥应急响应处理机制,以应对突发事件,如密钥丢失事件、密钥泄密事件、密钥算法缺陷公布等。

(5)密钥更新。当密钥超过使用期限、密钥信息泄露、密码算法存在安全缺陷等情况发生时,相关密钥应根据相应的安全策略进行更新操作,以保障密码系统的有效性。

(6)密钥撤销。当密钥到期、密钥长度增强或密码安全应急事件出现的时候,则需要进行撤销密钥,更换密码系统参数。撤销后的密钥一般不重复使用,以免密码系统的安全性受到损害。

(7)密钥备份。密钥备份应按照密钥安全策略,采用安全可靠的密钥备份机制对密钥进行备份。备份的密钥与密钥存储要求一致,其安全措施要求保障备份的密钥的机密性、完整性、可用性。

(8)密钥恢复。密钥恢复是在密钥丢失或损毁的情形下,通过密钥备份机制,能够恢复密码系统的正常运行。

(9)密钥销毁。根据密钥管理策略,可以对密钥进行销毁。一般来说销毁过程应不可逆无法从销毁结果中恢复原密钥。特殊的情况下,密钥管理支持用户密钥恢复和司法密钥恢复。

(10)密钥审计。密钥审计是对密钥生命周期的相关活动进行记录,以确保密钥安全合规违规情况可查可追溯。

2.密码管理政策
密码管理政策是指国家对密码进行管理的有关法律政策文件、标准规范、安全质量测评等

3.密码测评
密码测评是指对相关密码产品及系统进行安全性、合规性评估,以确保相关对象的密码安全有效,保障密码系统的安全运行。

3.5.2 数字证书

数字证书(DigitalCertifcate)也称公钥证书,是由证书认证机构(CA)签名的包含公开密钥拥有者信息、公开密钥、签发者信息、有效期以及扩展信息的一种数据结构。如图 3-6所示是一个国外机构颁发的数字证书样式。

为规范数字证书的格式,国家制定了《信息安全技术公钥基础设施数字证书格式》(征求意见稿)。其中,数字证书的基本信息域格式要求如表 3-2所示。

用户证书的结构实例如表 3-3所示

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

当前,为更好地管理数字证书,一般是基于PKI技术建立数字证书认证系统(简称为CA)。CA 提供数字证书的申请、审核、签发、查询、发布以及证书吊销等全生命周期的管理服务。数字证书认证系统的构成及部署如图3-7所示,主要有目录服务器、OCSP服务器、注册服务器、签发服务器等。

3.6 安全协议

本节介绍常见的密钥交换协议及SSH。

3.6.1 Diffie-Hellman 密钥交换协议

W.Diffe 和 M.E.Hellman 于 1976年首次提出一种共享秘密的方案,简称 Diffie-Hellman 密钥交换协议。Difie-Hellman密钥交换协议基于求解离散对数问题的困难性,即对于下述等式:

3.6.2 SSH

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

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

SSH的工作机制共分7个步骤,如图3-9所示

在实际的应用中,SSH 在端口转发技术(如图3-10所示)的基础上,能够支持远程登录(Telnet)、rsh、rlogin、文件传输(scp)等多种安全服务。Linux系统一般提供SSH服务,SSH的服务进程端口通常为 22。

虽然 SSH 是一个安全协议,但是也有可能受到中间人攻击和拒绝服务攻击。

3.7密码学网络安全应用

密码技术广泛应用在网络信息系统的安全保障的各个方面,本节分析密码技术的应用场景类型,给出了路由器、网站、电子邮件等应用参考。

3.7.1 密码技术常见应用场景类型

密码技术主要应用场景类型阐述如下
1.网络用户安全

2.物理和环境安全

3.网络和通信安全

4.设备和计算安全

5.应用和数据安全

6.业务应用创新

3.7.2 路由器安全应用参考

路由器是网络系统中的核心设备,其安全性直接影响着整个网络。目前,路由器面临的威胁有路由信息交换的篡改和伪造、路由器管理信息泄露、路由器非法访问等。为了解决路由器的安全问题,密码学现已被广泛应用到路由器的安全防范工作中,其主要用途如下。

1.路由器口令管理

2.远程安全访问路由器

3.路由信息交换认证

路由器之间需要进行路由信息的交换,以保证网络路由正常进行,因此需要路由器之间发送路由更新包。为了防止路由欺诈,路由器之间对路由更新包都进行完整性检查,以保证路由完整性。目前,路由器常用 MD5-HMAC 来实现。如果路由信息在传输过程中被篡改了,接收路由器通过重新计算收到路由信息的Hash值,然后与发送路由器的路由信息的 Hash 值进行比较,如果两个 Hash 值不相同,则接收路由器拒绝路由更新包,如图3-11所示。

3.7.3 Web 网站安全应用参考

Web 网站是网络应用的重要组成部分,许多重要的网络应用业务如网络银行、新闻发布、电子商务等都基于 Web 服务开展,其安全性变得日益重要。

3.7.4 电子邮件安全应用参考

电子邮件是最常见的网络应用,但是普通的电子邮件是明文传递的,电子邮件的保密性难以得到保证,同时电子邮件的完整性也存在安全问题。

3.8 本章小结

本章讲述了密码学的基本概念以及常见的密码体制、密码算法,分析了杂凑函数、数字签名、国产密码算法、安全协议等的工作原理。同时,本章还分析了密码在网络安全方面的常见应用场景类型,并以路由器、Web 服务、电子邮件等为例,给出安全应用参考。

标签: 暂无
最后更新:2024年11月27日

西伯利亚狼

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复
分类

COPYRIGHT © 2024 大倪. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang