• 软考信息安全密码学基本理论


    3.1 密码学概况

    • 密码技术是保障网络与信息安全的核心技术和基础支撑。
    3.1.1 密码学发展简况
    • 密码学是一门研究信息安全保护的科学,以实现信息的保密性,完整性,可用性及抗抵赖性。密码学主要由密码编码和密码分析两个部分组成。其中密码编码学研究信息的交换处理以实现信息的安全保护,而密码分析学则研究通过密文获取对应的明文信息
    3.1.2 密码学基本概念
    • 密码学的主要目的是保持明文的秘密以防止攻击者获知,而密码分析学则是在不知道密钥的情况下,识别出明文的科学。所谓明文是指需要采用密码技术进行保护的消息。而密文则是指用密码技术处理过明文的结果,通常称为加密消息。将明文变换成密文的过程称作加密,其逆过程,即由密文恢复出原明文的过程称作解密加密过程所使用的一组操作运算规则称作加密算法,而解密过程所使用的一组操作运算规则称作解密算法。加密和解密算法的操作通常都是在密钥控制下进行的,分别称为加密密钥和解密密钥。
    3.1.3 密码安全性分析
    • (1)唯密文攻击(ciphertext-only attack)密码分析者只拥有一个或多个用同一个密钥加密的密文,没有其他可利用的信息。(就是只有密文信息,没有其他信息,让你破解)。
    • (2)已知明文攻击(known-plaintext attack)密码分析者仅知道当前密钥下的一些明文及所对应的密文。(只知道部分密文对应的明文信息,让你基于这些信息破解)。
    • (3)选择明文攻击(chosen-plaintext attack)密码分析者能够得到当前密钥下自己选定的明文所对应的密文。
    • (4)密文验证攻击(ciphertext verification attack)密码分析者对于任何选定的密文,能够得到该密文“是否合法”的判断。
    • (5)选择密文攻击(chosen-ciphertext attack)除了挑战密文外,密码分析者能够得到任何选定的密文所对应的明文。

    3.2 密码体制分类

    • 根据密钥的特点,密码体制分为私钥和公钥密码体制两种,而介入私钥和公钥之间的密码体制称为混合密码体制。
    3.2.1 私钥密码体制
    • 私钥密码体制又称为对称密码体制,指广泛应用的普通密码体制,该体制的特点是加密和解密使用相同的密钥。
    • 私钥密码体制的缺陷可归结为三点:
      • 密钥分配问题。
      • 密钥管理问题。
      • 无从认证源问题。
    • 私钥密码体制的优点:
      • 私钥密码算法处理速度快,常将其用作数据加密处理。
      • 现在常被使用的是AES。
    3.2.2 公钥密码体制
    • W.Diffie 和 M.E.Hellman发表了《密码学的新方向》一文中提出了公钥密码体制的思想。公钥密码体制又称为非对称密码体制,其基本原理是在加密和解密的过程中使用不同的密钥处理方式,其中加密密钥是可以公开,只需要把解密密钥安全存放即可。
    • 公钥密码体制优点:
      • 密钥分发方便,能以公开方式分配加密密钥。
      • 密钥保管量少。
      • 支持数字签名。
      • 目前由三种公钥密码体制类型被证明是安全和有效的,即RSA体制,ELGamal体制及椭圆曲线密码体制。
    3.2.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(International Data Encryption Algorithm)是国际数据加密算法的简记,是一个分组加密处理算法,其明文和密文分组都是64比特,密钥长度为128比特。该算法是由来学嘉(X.J.Lai)和Massey提出的建议标准算法,已在PGP中得到应用。IDEA算法能够接受64比特分组加密处理,同一算法既可用于加密又可用于解密,该算法的设计思想是“混合使用来自不同代数群中的运算”。
    3.3.3 AES
    • 1997年美国国家标准技术研究所(NIST)发起征集AES(Advanced Encryption Standard)算法的活动,并专门成立了AES工作组,其目的是 确定一个非保密的,公开的,全球免费使用的分组密码算法,NIST规定候选算法必须满足下面要求:
      • 密码必须是没有密级的,绝不能像商业秘密那样来保护它。
      • 算法的全部描述必须公开披露。
      • 密码必须可以在世界范围内免费使用。
      • 密码系统支持至少128比特长的分组。
      • 密码支持的密钥长度至少为128,192和256比特。
    • 参与AES的候选算法中,Rijndael提供了安全性,软件和硬件性能,低内存需求以及灵活性的最好的组合,因此NIST确定选择Rijndael作为AES。
    3.3.4 RSA
    • RSA算法是非对称算法,由Ronald Rivest, Adi Shamir, Leonard Adleman三人共同在1977年公开发表。在RSA加密算法中,公钥和私钥都可以用于加密消息,用于加密消息的密钥与用于解密消息的密钥相反。RSA算法提供了一种保护网络通信和数据存储的机密性,完整性,真实性和不可否认性的方法。目前SSH,OpenPGP,S/MIME和SSL/TLS都依赖于RSA进行加密和数字签名功能。RSA算法在浏览器中使用,能够在不可信任的互联网中建立安全连接。
    3.3.5 国产密码算法
    • 国产密码算法是指国家密码研究相关机构自主研发,具有相关知识产权的商用密码算法。
    • 目前,已经公布的国产密码算法主要如下:
    • SM1分组密码算法。(对称加密算法)
    • SM2椭圆曲线公钥密码算法。(非对称加密)
    • SM3密码杂凑算法。(HASH,哈希)
    • SM4分组算法。(对称加密)
    • SM9标识密码算法。

    3.4 Hash函数与数字签名

    3.4.1 Hash函数
    • 杂凑函数简称Hash函数,它能够将任意长度的信息转换成固定长度的哈希值(又称为数字摘要或消息摘要),并且任意不同消息或文件所生成的哈希值是不一样的。
    3.4.2 Hash算法
    • 是指有关产生哈希值或杂凑值的计算方法。Hash算法又称为杂凑算法,散列算法,哈希算法或数据摘要算法,其能够将一个任意长的比特串映射到一个固定长的比特串,常见的Hash算法有MD5,SHA和SM3。

    • MD5算法

      • MD5(Message Digest Algorithm-5)算法是由Rivest设计的,1992年公开,RFC1321对其进行了详细的描述。
    • SHA算法

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

      • SM3是国家密码管理局于2010年公布的商用密码杂凑算法标准。该算法消息分组长度为215比特,输出杂凑值长度为256比特,采用Merkle-Damgard结构。
    3.4.3 数字签名
    • 数字签名(Digital Signature)是指签名者使用私钥对待签名数据的杂凑值做密码运算得到的结果。该结果只能用签名者的公钥进行验证,用于确认待签名数据的完整性,签名者身份的真实性和签名行为的抗抵赖性。
    • 数字签名的目的是通过网络信息安全技术手段实现传统的纸面签字或者盖章的功能,以确认交易当事人的真实身份,保障交易的安全性,真实性和不可抵赖性。
    • 数字签名具有与手写签名一样的特点,是可信的,不可伪造的,不可重用的,不可抵赖的,以及不可修改的。
    • 数字签名至少要满足以下三个条件:
      • 非否认性,签名者事后不能否认自己的签名。
      • 真实性,接收者能验证签名,而任何其他人都不能伪造签名。
      • 可鉴别性,当双方关于签名的真伪发生争执时,第三方能解决双方之间发送的争执。
    • 一个数字签名方案一般由签名算法和验证算法组成,签名算法密钥是秘密的,只有签名的人掌握,而验证算法则是公开的,以便他人验证。
    • 典型的数字签名方案由RSA签名体制,Rabin签名体制,EIGamal签名体制和DSS(Data Signature Standard)标准。
    • 签名与加密很相似,一般是签名者利用秘密密钥(私钥)对需签名的数据进行加密,验证方利用签名者的公开密钥(公钥)对签名数据做解密运算。
    • 签名与加密的不同之处在于,加密的目的是保护信息不被非授权用户访问,而签名是使消息接收者确信信息的发送者是谁,信息是否被他人篡改。
    • 数字签名工作的基本流程,假设Alice需要签名发送一份电子合同文件给Bob,具体步骤如下:
      • 第一步,Alice使用Hash函数将电子合同文件生成一个消息摘要;
      • 第二步,Alice使用自己的私钥,把消息摘要加密处理,形成一个数字签名;
      • 第三步,Alice把电子合同文件和数字签名一同发送给Bob。
      • Bob收到Alice发送的电子合同文件及数字签名后,为确信电子合同文件是Alice所认可的,具体步骤如下:
      • 第一步,Bob使用与Alice相同的Hash算法,计算所收到的电子合同文件的消息摘要;
      • 第二步,Bob使用Alice的公钥,解密来自Alice的加密消息摘要,恢复Alice原来的消息摘要。
      • 第三步,Bob比较自己产生的消息摘要和恢复出来的消息摘要之间的异同,若两个消息摘要相同,则表明电子合同文件来自Alice。如果两个消息摘要的比较结果不一致,则表明电子合同文件已被篡改。

    3.5 密码管理与数字证书

    3.5.1 密码管理
    • 密码系统的安全性依赖于密码管理。密码管理主要可以分成三个方面的内容,即密钥管理,密码管理政策,密码测评。
    • 1.密钥管理
    • 密钥管理主要围绕密钥的生命周期进行,包括密钥生成,密钥存储,密钥分发,密钥使用,密钥更新,密钥撤销,密钥备份,密钥恢复,密钥销毁,密钥审计。
    • (1)密钥生成
      • 密钥应由密码相关产品或工具按照一定标准产生,通常包括密码算法选择,密钥长度等。密钥生成时要同步记录密钥的关联信息,如拥有者,密钥使用起始时间,密钥使用终止时间等。
    • (2)密钥存储
      • 一般来说密钥不应以明文方式存储保管,应采取严格的安全防护措施,防止密钥被非授权的访问或篡改。
    • (3)密钥分发
      • 密钥分发工作是指通过安全通道,把密钥安全地传递给相关接收者,防止密钥遭受截取,篡改,假冒等攻击,保证密钥机密性,完整性以及分发者,接收者身份的真实性。目前,密钥分发的方式主要有人工,自动化和半自动化。其中自动化主要通过密钥交换协议进行。
    • (4)密钥使用
      • 密钥使用要根据不同的用途而选择正确的使用方式。密钥使用和密码产品保持一致性,密码算法,密钥长度,密码产品都要符合相关管理政策,即安全合规。使用密钥前,要验证密钥的有效性,如公钥证书是否有效。密钥使用过程中要防止密钥的泄露和替换,按照密钥安全策略及时更换密钥。建立密钥应急响应处理机制,以应对突发事件,如密钥丢失事件,密钥泄密事件,密钥算法缺陷公布等情况。
    • (5)密钥更新
      • 当密钥超过使用期限,密钥信息泄露,密码算法存在安全缺陷等情况发生时,相关密钥应根据相应的安全策略进行更新操作,以保障密码系统的有效性。
    • (6)密钥撤销
      • 当密钥到期,密钥长度增强或密码安全应急事件出现的时候,需要进行撤销密钥,更换密码系统参数。撤销后的密钥一般不重复使用,以免密码系统的安全性收到损害。
    • (7)密钥备份
      • 密钥备份应按照密钥安全策略,采用安全可靠的密钥备份机制对密钥进行备份。备份的密钥与密钥存储要求一致,其安全措施要求保障备份的密钥的机密性,完整性,可用性。
    • (8)密钥恢复
      • 密钥恢复是在密钥丢失或损毁的情形下,通过密钥备份机制,能够恢复密码系统的正常运行。
    • (9)密钥销毁
      • 根据密钥管理策略,可以对密钥进行销毁。一般来说销毁过程应不可逆,无法从销毁结果中恢复原密钥。特殊情况下,密钥管理支持用户密钥恢复和司法密钥恢复。
    • (10)密钥审计
      • 密钥审计是对密钥生命周期的相关活动进行记录,以确保密钥安全合规,违规情况可查可追溯。
    • 2.密码管理政策
    • 密码管理政策是指国家对密码进行管理的有关法律政策文件,标准规范,安全质量测评等。目前,国家已颁布了《商用密码管理条例》,内容主要有商用密码的科研生成管理,销售管理,使用管理,安全保密管理。《中华人民共和国密码法》也已颁布实施,相关工作正在推进。《中华人民共和国密码法》明确规定,密码分为核心密码,普通密码和商用密码,实行分类管理。核心密码,普通密码用于保护国家秘密信息,属于国家秘密,由密码管理部门依法实行严格统一管理。商用密码用于保护不属于国家秘密的信息,公民,法人和其他组织均可依法使用商用密码保护网络与信息安全。
    • 3.密码测评
    • 密码测评是指对相关密码产品及系统进行安全性,合规性评估,以确保相关对象的密码安全有效,保障密码系统的安全运行。目前国家设立了商用密码检测中心,其主要职责包括:商用密码产品密码检测,信息安全产品认证密码检测,含有密码技术的产品密码检测,信息安全等级保护商用密码测评,商用密码行政执法密码鉴定,国家电子认证根CA建设和运行维护,密码技术服务,商用密码检测标准规范制定等。
    3.5.2 数字证书
    • 数字证书(Digital Certificate)也称公钥证书,是由证书认证机构(CA)签名的包含公开密钥拥有者信息,公开密钥,签发者信息,有效期以及扩展信息的一种数据结构。
    • 为了规范数字证书的格式,国家制定了《信息安全技术 公钥基础设施 数字证书格式》,其中数字证书的基本信息域格式如下:
    序号 项名称 描述
    1 version 版本号
    2 serialNumber 序列号
    3 signature 签名算法
    4 issuer 颁发者
    5 validity 有效日期
    6 subject 主体
    7 subjectPublicKeyInfo 主体公钥信息
    8 issuerUniqueID 颁发者唯一标识符
    9 subjectUniqueID 主体唯一标识符
    10 extensions 扩展项
    • 用户证书的结构实例
    版本号(version)
    证书序列号(serialNumber)
    签名算法标识符(signature)
    颁发者名称(issuer)
    有效期(validity) 起始有效期
    有效期(validity) 终止有效期
    主体名称(subject) countryName(国家)
    主体名称(subject) stateOrProvinceName(省份)
    主体名称(subject) localityName(地市)
    主体名称(subject) organizationName(组织名称)
    主体名称(subject) organizationalUnitName(机构名称)
    主体名称(subject) CommanName(用户名称)
    主体公钥信息(subjectPublicKeyInfo)
    颁发机构的密钥标识符(authorityKeyIdentifier)
    主体密钥标识符(subjectKeyIdentifier)
    CRL分发点CRLDistributionPoints
    • 数字证书按类别可分为个人证书,机构证书和设备证书,按用途可分为签名证书和加密证书。其中,签名证书是用于证明签名公钥的数字证书。加密证书是用于证明加密公钥的数字证书。
    • 为了更好地管理数字证书,一般是基于PKI技术建立数字证书认证系统(简称为CA)。CA提供数字证书的申请,审核,签发,查询,发布以及证书吊销等生命周期的管理服务。数字证书认证系统的构成及部署,主要有目录服务器,OCSP服务器,注册服务器,签发服务器等。

    3.6 安全协议

    3.6.1 Diffie-Hellman 密钥交换协议
    • W.Diffie和M.E.Hellman于1976年首次提出一种共享秘密的方案,简称Diffie-Hellman密钥交换协议。
    3.6.2 SSH
    • SSH是Secure Shell的缩写,即“安全外壳“,她是基于公钥的安全应用协议,由SSH传输层协议,SSH用户认证协议和SSH连接协议三个子协议组成,各协议分工合作,实现加密,认证,完整性检查等多种安全服务。

    3.7 密码学网络安全应用

    3.7.1 密码技术常见应用场景类型
    • 1.网络用户安全
    • 2.物理和环境安全
    • 3.网络和通信安全
    • 4.设备和计算安全
    • 5.应用和数据安全
    • 6.业务应用创新
    3.7.2 路由器安全应用参考
    • 1.路由器口令管理
    • 2.远程安全访问路由器
    • 3.路由信息交换认证
    3.7.3 Web网站安全应用参考
    3.7.4 电子邮件安全应用参考
    • 利用PGP(Pretty Good Privacy)来保护电子邮件的安全。PGP是一种加密软件,目前最广泛地用于电子邮件安全。能够防止非授权者阅读邮件,并能对用户的邮件加上数字签名,使得收信人可以确信发信人的身份。PGP应用了多种密码技术,其中密钥管理算法选用RSA,数据加密算法IDEA,完整性检测和数字签名算法,采用了MD5和RSA以及随机数生成器,PGP将这些密码技术有机集成在一起,利用对称和非对称加密算法的各自优点,实现了一个比较完善的密码系统。
  • 相关阅读:
    一个Electron的设计缺陷及应对方案
    如何点击穿透Electron不规则窗体的透明区域
    Electron团队为什么要干掉remote模块
    Clickhouse 单机双实例
    Kafka安全认证SASL/PLAIN
    Syslog的使用
    Kafka Consumer
    Kafka Producer客户端
    Kafka客户端操作
    springboot集成flyway实践
  • 原文地址:https://www.cnblogs.com/autopwn/p/16422815.html
Copyright © 2020-2023  润新知