第3章 密码学基本理论 第3章 密码学基本理论 3.1 密码学概况 密码技术是保障网络与信息安全的核心技术和基础支撑。本节主要介绍密码学的发展简况、密码学的基本概念以及密码系统的安全性分析方法。 3.1.1 密码学发展简况 密码学是一门研究信息安全保护的科学,以实现信息的保密性、完整性、可用性及抗抵赖性。密码学主要有密码编码和密码分析两个部分组成。其中,密码编码学研究信息的变换处理以实现信息的安全保护,而密码分析学则研究通过密文对应的明文信息。早期的密码学主要用于军事和外交通信。密码技术经历了由传统密码学到现代密码学的发展。传统密码学中的技术主要是换位和置换。 1949 年,香农发表了著名的论文《保密系统的通信理论》,提出交替使用换位和置换以抵御统计分析,增加了混乱(Confusion)和扩散(Diffusion)的密码技术新方法。 20 世纪 70 年代,密码技术出现重大创新变化,一是Diffe-Hellman算法、RSA算法的提出开辟了公钥密码学的新纪;二是美国政府正式发布了数据加密标准(DES),以提供给商业公司和非国防政府部门使用。这些研究成果的出现标志着现代密码学的诞生。 3.1.2 密码学基本概念 密码学的主要目的是保持明文的秘密以防止攻击者获知,而密码分析学则是在不知道密钥的情况下,识别出明文的科学。 3.1.3 密码安全性分析 唯密文攻击(ciphertext-only attack)。密码分析者只拥有一个或多个密钥加密的密文,没有其他可以利用的信息。 已知明文攻击(know-plaintext attack)。密码分析者仅知道当前密钥下的一些明文及所对应的密文。 选择明文攻击(chosen-plaintext attack)。密码分析者能够得到当前密钥下自己选定的明文所对应的密文。 密文验证攻击(ciphertext verification attack)。密码分析者对于任何选定的密文,能够得到该密文“是否合法”的判断。 选择密文攻击(chosen-ciphertext attack)。除了挑战密文外,密码分析者能够得到任何选定的密文所对应的明文。 3.2 密码体制分类 根据密钥的特点,密码体制分为私钥和公钥密码体制两种,而介于私钥和公钥之间的密码体制称为混合密码体制。 3.2.1 私钥密码体制 私钥密码体制又称为对称密码体制,指广泛应用的普通密码体制,该体制的特点是加密和解密使用相同的密钥。 私钥密码体制的缺陷可以归结为三点:密钥分配问题、密钥管理问题以及无法认证源。 目前,私钥密码典型算法有DES、IDEA、AES等,其中 DES 是美国早期数据加密标准,现在已经被 AES 取代。 3.2.2 公钥密码体制 公钥密码体制又称为非对称密码体制,其基本原理是在加密和解密的过程中使用不同的密钥处理方式,其中,加密密钥可以公开,而只需要把解密密钥安全存放即可。 与私钥密码体制相比较,公钥密码体制有以下优点。 1. 密钥分发方便,能以公开方式分配加密密钥。例如,因特网中个人安全通信常将自己的公钥公布在网页中,方便其他人用它进行安全加密。 2. 密钥保管量少。网络中的消息发送方可以共用一个公开加密密钥,从而减少密钥数量,只要接收方的解密密钥保密,就能实现消息的安全性。 3. 支持数字签名。 目前,有三种公钥密码体制类型被证明是安全和有效的,即RSA体制、ELGamal体制及椭圆曲线密码体制。 3.2.3 混合密码体制 混合密码体制利用公钥密码体制分配私钥密码体制的密钥,消息的收发双方共用这个密钥,然后按照私钥密码体制的方式,进行加密和解密运算。 3.3 常见密码算法 3.3.1 DES DES (Data Encryption Standard)是数据加密标准的简称,由IBM公司研制。DES是一个分组加密算法,能够支持64比特的明文块加密,其密钥长度为56比特。 NIST于1999年10月25日采用三重DES(Triple Data Encryption Algorithm,TDEA)作为过渡期间的国家标准,以增强DES的安全性,并开始征集AES算法。 其中,TDEA算法的工作机制是使用DES对明文进行“加密-解密-加密”操作,即对DES加密后的密文进行解密再加密,而解密则相反。 3.2.2 IDEA IDEA (International Data Encryption Algorithm) 是国际数据加密算法的简记,是一个分组加密处理算法,其明文和密文分组都是 64 比特,密钥长度为 128 比特。该算法的设计思想是“混合使用来自不同代数群中的运算”。 3.3.3 AES 参与AES的候选算法中,Rijndael提供了安全性、软件和硬件性能、低内存需求以及灵活性的最好的组合,因此NIST确定选择 Rijndael 作为AES。 3.3.4 RSA RSA算法是非对称算法。在RSA加密算法中,公钥和私钥都可以用于加密消息,用于加密消息的密钥与用于解密消息的密钥相反。RSA算法提供了一种保护网络通信和数据存储的机密性、完整性、真实性和不可否认性的方法。目前,SSH、OpenPGP、S/MIME和SSL/TLS都依赖于RSA进行加密和数字签名功能。RSA算法在浏览器中使用,能够在不可信任的互联网中建立安全连接。 RSA算法基于大整数因子分解的困难性。 3.3.5 国产密码算法 国产密码算法是指由国家密码研究相关机构自主研发,具有相关知识产权的商用密码算法。目前,已经公布的国产密码算法主要有SM1分组密码算法、SM2椭圆曲线公钥密码算法、SM3密码杂凑算法、SM4分组算法、SM9标识密码算法。 表3-1 国产商用密码算法特性统计表 算法名称 算法特性描述 备注 SM1 对称加密,分组长度和密钥长度都为 128 比特 SM2 非对称加密,用于公钥加密算法、密钥交换协议、数字签名算法 国家标准推荐使用素数域256位椭圆曲线 SM3 杂凑算法,杂凑值长度为256比特 SM4 对称加密,分组长度和密钥长度都为 128 比特 SM9 标识密码算法 其中,SM1 算法是一种对称加密算法,分组长度为 128 比特,密钥长度为 128 比特。 SM2算法基于椭圆曲线,应用于公钥密码系统。 SM3杂凑算法对他要 l(l < 264 )比特的消息m,经过填充、迭代压缩,生成杂凑值,杂凑值输出长度为 256 比特。 SM4 密码算法是一个分组算法。该算法的分组长度为 128 比特,密钥长度为 128 比特。 SM9 是标识密码算法。用户的私钥由密钥生成中心(KGC)根据主密钥和用户标识计算得出,用户的公钥由用户标识唯一确定,因而用户不需要通过第三方保证其公钥的真实性。与基于证书的公钥密码系统相比较,标识密码系统中的密钥管理环节可以得到简化。SM9 可支持实现公钥加密、密钥交换、数字签名等安全功能。 3.4 Hash函数与数字签名 3.4.1 Hash函数 杂凑函数简称 Hash 函数,它能够将任意长度的信息转换成固定长度的哈希值(又称数字摘要或消息摘要),并且任意不同消息或文件所生成的哈希值是不一样的。令 h 表示函数,则 h 满足下列条件: 1. h的输入可以是任意长度的消息或文件M; 2. h的输出的长度是固定的; 3. 给定 h 和 M ,计算 h(M) 是容易的; 4. 给定 h 的描述,找两个不同的消息 M1和M2,使得h(M1)=h(M2)是计算上不可行的。 3.4.2 Hash算法 Hash 算法是指有关产生哈希值或杂凑值的计算方法。Hash算法又称为杂凑算法、散列算法、哈希算法或数据摘要算法,其能够将一个任意长的比特串映射到一个固定长的比特串。常见的Hash算法有MD5、SHA、SM3。 MD5算法 MD5(Message Digest Algorithm-5)算法是由Rivest设计的,于1992年公布,RFC1321对其进行了详细描述。MD5以512位数据块为单位来处理输入,产生128位的消息摘要,即MD5能产生128比特长度的哈希值。 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等。 SM3国产算法 SM3是国家密码管理局于2010年公布的商用密码杂凑算法标准。该算法消息分组长度为512比特,输出杂凑长度为256比特,采用Merkle-Damgard结构。 3.4.3 数字签名 数字签名(Digital Signature)是指签名者使用私钥对待签名数据的杂凑值做密码运算得到的结果。该结果只能用签名者的公钥进行验证,用于确认待签名数据的完整性、签名者身份的真实性和签名行为的抗抵赖性。数字签名具有与手写签名一样的特点,是可信的、不可伪造的、不可重用的、不可抵赖的以及不可修改的。数字签名至少应满足以下三个条件: 1. 非否认。签名者事后不能否认自己的签名。 2. 真实性。接收者能验证签名,而任何其他人都不能伪造签名。 3. 可鉴别性。当双方关于签名的真伪发生争执时,第三方能解决双方之间发生的争执。 一个数字签名方案一般由签名算法和验证算法组成。签名算法密钥是秘密的,只有签名的人掌握;而验证算法则是公开的,以便他人验证。典型的数字签名方案有RSA签名体制、Rabin签名体制、ElGamal签名体制和DSS(Data Signature Standard)标准。 3.5 密码管理与数字证书 3.5.1 密码管理 密码系统的安全性依赖于密码管理。密码管理主要可以分成三个方面的内容,即密钥管理、密码管理政策、密码测评。 密钥管理 密钥生成。 密钥存储。 密钥分发。 密钥使用。 密钥更新。 密钥撤销。 密钥备份。 密钥恢复。 密钥销毁。 密钥审计。 密码管理政策 密码管理政策是指国家对密码进行管理的有关法律政策文件、标准规范、安全质量测评等。 密码测评 密码测评是指对相关密码产品及系统进行安全性、合规性评估,以确保相关对象的密码安全有效,保障密码系统的安全运行。 3.5.2 数字证书 数字证书(Digital Certificate)也称公钥证书,是由证书认证机构(CA)签名的包含公开密钥拥有者信息、公开密钥、签发者信息,有效期以及扩展信息的一种数据结构。 数字证书按类别可分为个人证书、机构证书和设备证书,按用途可分为签名证书和加密证书。其中,签名证书是用于证明签名公钥的的数字证书。加密证书是用于证明加密公钥的数字证书。 当前,为更好地管理数字证书,一般是基于PKI技术建立数字证书认证系统(简称为CA)。CA提供数字证书的申请、审核、签发、查询、发布以及证书吊销等全生命周期的管理服务。数字证书认证系统的构成及部署,主要有目录服务器、OCSP服务器、注册服务器、签发服务器等。 3.6 安全协议 本节介绍常见的密钥交换协议及SSH。 3.6.1 Diffie-Hellman 密钥交换协议 Diffie-Hellman密钥交换协议基于求解离散对数问题的困难性。 3.6.2 SSH SSH是Secure Shell的缩写,即“安全外壳”,它是基于公钥的安全应用协议,由SSH传输层协议、SSH用户认证协议和SSH连接协议三个子协议组成,各协议分工合作,实现加密、认证、完整性检查等多种安全服务。 SSH的工作机制共分 7 个步骤: 客户服务器的证书(C) SSH连接请求(C) 初始化连接请求(S) 客户验证服务器公钥(S) 建立DH密钥(双向) 认证用户(双向) 使用SSH Tunnel(双向) 目前,用户为了认证服务器的公钥真实性,有三种方法来实现。第一种,用户直接随身携带含有服务器公钥的拷贝,在进行密钥交换协议前,读入客户计算机;第二种,从公开信道下载服务器的公钥和它对应的指纹后,先通过电话验证服务器的公钥指纹的真实性,然后用HASH软件生成服务器的公钥新指纹,比较下载的指纹和新生成的指纹,若比较结果相同,则表明服务器的公钥是真实的,否则服务器的公钥是虚假的;第三种,通过PKI技术来验证服务器。 3.7 密码学网络安全应用 3.7.1 密码技术常见应用场景类型 网络用户安全 物理和环境安全 网络和通信安全 设备和计算安全 应用和数据安全 业务应用创新 采用密码技术进行业务应用创新的措施主要有:一是利用数字证书和数字签名等密码技术,构建网络发票;二是使用HASH函数等密码技术,构建区块链;三是利用密码技术,建立电子证照。
2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/31567.html