当前位置: 首页 > 原创新闻 > 密码学基本理论

密码学基本理论

发表于:2021-01-11 16:43 作者: mtr 阅读数(4934人)

  • 密码学概况

    • 密码学安全性分析
      • 根据密码分析者所具备的前提条件,密码分析攻击类型分为五种
        • 唯密文攻击:只拥有一个或者多个加密的密文
        • 已知明文攻击:只知道当前密钥下一些明文和对应密文
        • 选择明文攻击:能够得到当前密钥下选定的明文所对应的密文
        • 密文验证攻击:对于任意选定密文可以判定是否合法
        • 选择密文攻击:除了挑战密文外,密码分析者可以得到任意选定密文对应的明文
  • 密码体制分类

    • 私钥密码体制
      • 又被称为对称密码体制,特点是加密和解密用的是相同的密钥,私钥密码体制可以看成保险柜,密钥就是保险柜密码。
      • 主要有三方面问题
        • 密钥分配问题:密钥分配需要安全途径,要专人护送啥的
        • 密钥管理问题:如果网络中使用者过多,如n个使用者,互相直接传消息就需要n(n-1)/2个密钥
        • 无法证源:接收方无法证实A发来的消息确实来自于A
    • 公钥密码体制
      • 采用非对称密码机制,基本原理是加密解密使用不同的密钥处理方式,加密密钥可公开,解密密钥安全存放。可以看成邮箱,人人都可以投放但是只有有钥匙的可以打开。
      • 有以下优点
        • 密钥分发方便:公开加密密钥,方便加密
        • 密钥保管量少:可以共用加密密钥,减少密钥数量
        • 支持数字签名:目前有三种有效的分别为RSA体制,ELGamal体制和椭圆曲线密码体制
    • 混合密码体制
      • 其实就是私钥外面套个公钥,书P47给出了很好的例子。
  • 常见密码算法

    • DES(Data Encryption Standard):就是数据加密标准的缩写
      • 密钥长度56bit能对64bit加密,被攻破后采用三重DES即TDES作为国家标准,三重DES就是使用DES加密三次。
    • IDEA(International Data Encryption Algorithm):就是国际数据加密算法缩写
      • 是一个分组加密算法,明文密文均为64bit,密钥长度为128bit。
    • AES(Advanced Encryption Standard):进阶加密算法
      • 给了一堆要求选出来的,最后选了Rihndael
    • RSA(取三个作者姓氏开头)
      • 这是一种非对称加密,目前SSH,OpenPGP,S/MIME和SSL/TLS都依赖于RSA进行加密和数字签名功能,下面介绍它的步骤
        • 第一步,生成两个大素数p和q
        • 第二步,计算这两个素数的乘积n=pq
        • 第三步,计算小于n且与n互素的整数个数,即欧拉函数f(n) = (p-1)(q-1)
        • 第四步,选取一个随机数e满足1<e<f(n),并且e和f(n)互素即gcd(e,f(n))= 1 -- (最大公约数为1)
        • 第五步,根据(de)mod(f(n))=1来计算d
        • 第六步,保密p,q,d,公开n和e,d作为私钥,n,e作为公钥。
    • 国产密码算法
      • SM1:对称加密算法,分组密钥长度均为128bit
      • SM2:  基于256位椭圆曲线的非对称加密,可以哦那个与数字签名,密钥交换等
      • SM3:  杂凑算法,把小于2的64次方的消息生成为256bit的密钥,非对称(就是哈希)
      • SM4:  对称加密,分组长度和密码均为28bit
      • SM9:标志密码算法,私钥由密钥生成中心根据主密钥和用户标识计算得出,公钥由用户标识唯一确定
      • 上面有点印象即可,天知道考不考
  • Hash函数和数字签名

    • Hash函数
      • 杂凑函数简称hash函数,能将任意长度的信息转换成固定长度的哈希值,且不同消息或者文件生成的哈希值不一样。用h表示哈希函数则满足以下条件
        • h的输入可以是任意长度的消息或者文件M
        • h的输出长度是固定的
        • 给定h和M,计算h(M)比较容易
        • 给定h的描述,找两个不同的M1和M2,使h(M1)=h(M2)在计算上是不可行的
    • Hash算法
      • MD5(Message Digest Algorithm-5),由Rivest设计,以512位数据块为单位来处理输出,产生128位的信息摘要,即MD5能产生128bit长度的哈希值,被王小云团队提出的方法破解。
      • SHA算法,与MD5相似,但更安全,已发布版本有SHA-1到SHA-3,长度有224,256,384,512等。
      • SM3国产算法,之前提到过,10年公布的,消息分组长度为512bit,输出杂凑值长度为256bit。
    • 数字签名
      • 是指签名者使用私钥对待签名数据的杂凑值做密码运算得到的结果,结果只能用签名者的公钥来验证,用于确认待签名数据的完整性,签名者身份的真实性和签名行为的抗抵赖性。目的是通过网络信息安全技术手段实现传统的纸面签字或者盖章功能,数字签名具有和手写签名一样的特点,是可信的,不可伪造的不可重用的,不可抵赖和不可修改的。主要符合三个条件
        • 非否认:事后不可否认
        • 真实性:不可伪造
        • 可鉴别性:当双方关于签名真伪发生争执时,第三方能解决争执
      • 常用签名有RSA,DDS等,书中p52有基本流程例子可以看一下。
  • 密码管理与数字证书

    • 密码管理
      • ​​​​​​​密钥管理:围绕生命周期进行
        • 密钥生成:由密码相关产品或工具按照一定标准产生,包括密码算法选择,密钥长度等
        • 密钥存储:一般不会明文存储
        • 密钥分发:通过安全通道分发给接收者,主要有人工,自动化和半自动化,其中自动化主要通过密钥交换协议进行
        • 密钥使用:根据不同用途选择使用方式
        • 密钥更新:密钥超过使用期限,或信息泄露,算法存在问题时进行更新
        • 密钥撤销:当密钥到期,强度增强时撤销密钥,撤销后的一般不做他用
        • 密钥备份:防丢,没啥好说的
        • 密钥恢复:备份后恢复呗
        • 密钥销毁:根据管理策略对密钥进行销毁,一般不可逆
        • 密钥审计:对密钥生命周相关活动进行记录,以确保密钥安全合规
      • 密码管理政策
        • 一堆法规看了我也记不住
      • 密码测评
        • 就是对相关密码产品评估,国家有专门的检测中心
    • 数字证书(Digital Certificate)
      • ​​​​​​​也称公钥证书,是由证书认证机构(CA)签名的包含公开密钥拥有者信息,公开密钥,签发者信息,有效期以及扩展信息的一种数据结构。
      • 为规范格式,国家制定了标准,包含
        • 版本号
        • 证书序列号
        • 签名算法标识符
        • 颁发者名称
        • 有效日期
        • 主体:国家省市组织机构用户啥的
        • 主体公钥信息
        • 颁发者唯一标识符
        • 主体唯一标识符
        • 扩展项
      • 数字证书按类别可以分为个人证书、机构证书和设备证书,按用途可以分为签名证书和加密证书。签名证书用于证明签名公钥,加密证书用于证明加密公钥。
  • ​​​​​​​​​​​​​​安全协议

    • ​​​​​​​介绍常见密钥交换协议和SSH
    • Diffie-Hellman密钥交换协议
      • 具体见书p57
    • SSH(Secure Shell的缩写)
      • 即安全外壳,基于公钥的安全应用协议,由SSH传输层协议,SSH用户认证协议和SSH连接协议三个子协议组成,分工合作实现各种安全服务。
      • 传输层协议提供算法协商和密钥交换,并实现服务器认证,最后实现一个全连接,该连接提供完整性,保密性和压缩选项服务
      • SSH用户认证协议利用传输层服务来建立连接,使用传统口令认证,公钥认证等多种机认证用户。
      • SSH连接协议再以上两个的基础上利用已经建立的认证连接将其分解为多种不同的并发逻辑通道,支持注册会话隧道和TCP转发
      • 这个先mark一下后续再重点了解
    • 密码学网络安全应用
      • ​​​​​​​常见应用场景
        • 网络用户安全:
          • 一是基于公钥密码学技术,把用户实体和密码数据绑定形成数字证书,标识身份并提供鉴别服务。
          • 二是使用加密技术,保护网络用户个人敏感信息。
        • 物理和环境安全:
          • 一是对物理区域访问者身份进行鉴别,保证来访人员身份真实性。
          • 二是保护电子门禁系统进出记录的存储完整性和机密性。
          • 三是保证监控视频记录的存储完整性和机密性。
        • 网络和通信安全:
          • 对通信实体进行双向身份鉴别
          • 使用数字签名保证通信过程中数据完整性
          • 对通信过程敏感字段加密
          • 使用密码安全认证协议对设备进行接入确认,确保接入设备身份真实性
        • 设备和计算安全
          • 使用密码安全认证协议对登录用户身份进行鉴别
          • 使用hash和密码算法建立可信的计算环境(没看懂)
          • 使用数字签名验证重要可执行程序来源的真实性(这个不错)
          • 使用加密措施保护设备重要信息资源
          • 使用SSH和SSL等技术建立远程管理安全信息传输通道
        • 应用和数据安全
          • 身份鉴别
          • 加密应用系统访问控制信息
          • SSH和SSL
          • 加密重要数据
          • 使用hash,数字签名防篡改
        • 业务应用创新
          • 利用数字证书和数字签名来构建网络发票
          • 使用hash函数等密码技术构建区块链
          • 利用密码技术建立电子证照
      • 路由器安全应用参考
        • ​​​​​​​路由器口令管理:路由器的口令时被Hash计算后存储在配置文件里的。
        • 远程安全访问路由器:常用telnet但是前者容易泄露敏感的口令信息,因此用SSH替换它。
        • 路由器信息交换认证:路由器之间经常传送更新包,为了防止路由欺诈,会通过检查hash值来确定中间没被篡改。
      • Web网站安全应用参考
        • ​​​​​​​主要包括用户身份认证,服务信息加密处理和web信息完整性检查等
        • 目前重要信息还是通过数字证书和SSL共同保护安全。
      • 电子邮件安全应用参考
        • ​​​​​​​使用PGP来保护电子邮件的安全,它应用了各种加密技术,实现了一个比较完善的密码系统。
  • 总结

    • 本章是密码学基本理论,但是对于除了RSA算法之外的算法并没有做细化的介绍,更多的是在介绍它们的应用场景,像数字签名,数字证书,SSH等,都是偏向于应用,很多东西摘录下来了也不一定记得住,很多东西也都是套话,有印象的主要就是和hash相关的一系列实现吧。
    • 本文转载,原文链接:https://blog.csdn.net/xjc2998310890/article/details/112396932