• 软考-密码学概述


    本文为作者学习文章,按作者习惯写成,如有错误或需要追加内容请留言(不喜勿喷)

    本文为追加文章,后期慢慢追加

    by 2023年10月

    密码学基本概念

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

    密码安全性分析

    根据密码分析者在破译时已具备的前提条件,人们通常将密码分析攻击类型分为五种,分别叙述如下:

    • 唯密文攻击(ciphertext-only attack)。密码分析者只拥有一个或多个用同一个密钥加密的密文,没有其他可利用的信息。对攻击者最为不利。
    • 已知明文攻击(known-plaintext attack)。密码分析者仅知道当前密钥下的一些明文及所对应的密文
    • 选择明文攻击(chosen-plaintext attack)。密码分析者能够得到当前密钥下自选定的明文所对应的客文
      能够得到该密文“”是否合法”的判断
    • 密文验证攻击(ciphertext verification attack)。密码分析者对于任何选
    • 选择密文攻击(chosen-ciphertext attack)。除了挑战密文外,密码分析者能够得到任何选定的密文所对应的明文这种方式对攻击者最有利,主要攻击公开秘钥密码体制,特别是攻击其数字签名。

    密码体制分类

    私钥密码体制

    私钥密码体制又称为对称密码体制,指广泛应用的普通密码体制,该体制的特点是加密和解密使用相同的密钥。
    私钥密码体制的密钥分配和管理极为重要。密钥分配必须使用安全途径,例如由专门人员负责护送密钥给接收者。在不同的接收者分别进行加密通信或信息交换时,则需要有几个不同的密钥。假设网络中有n 个使用者,使用者之间共享一个密钥,则共有n(n-1) /2 个密钥。
    私钥密码体制的缺陷可归结为三点:密钥分配问题、密钥管理问题以及无法认证源。虽然私钥密码体制有不足之处但私钥密码算法处理速度快,人们常常将其用作数据加密处理。
    私钥密码典型算法有DES 、3DES、RC4、RC5、IDEA 、AES、SM1、SM4等

    公钥密码体制

    公钥密码体制又称为非对称密码体制,其基本原理是在加密和解密的过程中使用不同的密钥处理方式,其中,加密密钥可以公开,而只需要把解密密钥安全存放即可。
    公密码体制有以下优点:

    • 密分发方便,能以公开方式分配加密密钥。
    • 密钥保管量少。
    • 支持数字签名。

    公钥密码典型算法有: RSA、圆曲线密码、SM2等

    混合密码体制

    混合密码体制利用公钥密码体制分配私钥密码体制的密钥,消息的收发双方共用这个密钥,然后按照私钥密码体制的方式,进行加密和解密运算。

    常见密码算法
    DES(Data Encryption Standard)

    DES(Data Encryption Standard)是数据加密标准的简称,由IBM 公司研制。DES 是一个分组加密算法,能够支待64 比特的明文块(分组)加密,其密长度为56 比特。DES 是世界上应用最广泛的密码算法。- 随着计算机系统运算速度的增加和网络计算的进行,DES56 比特的密长度已不足以保证密码系统的安全。NIST 于1999年10 月25日采用三重DES (riple Data Encryption Algorithm,TDEA)作为过渡期司的国家标准,以增强DES的安全性,并开始征集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列对应的数据。

    IDEA(nternational Data Enryption Algorithm)

    IDEA(nternational Data Enryption Algorithm)是国际数据加密算法的简记,是一个分组加密处理算法,其明文和密文分组都是64比特,密钥长度为128 比特。 IDEA 算法能够接受64比特分组加密处理,同一算法既可用于加密又可用于解密,该算法的设计思想是”混合使用来自不同代数群中的运算”。
    参与AES 的候选算法中,Rinae 提供了安全性、软件和硬件性能、低内存需求以及灵活性的最好的组合,因此美国国家标准技术研究所(NIST)确定选择Rindael 作为AES。AESAdvanced Encryption Standard)算法必须满足下面的要求
    密码必须是没有密级的,绝不能像商业秘密那样来保护它
    算法的全部描述必须公开披露
    密码必须可以在世界范围内免费使用
    密码系统支持至少128 比特长的分组;
    密码支持的密钥长度至少为128 、192 和256 比特。

    RSA 算法

    RSA 算法是非对称算法,在RSA 加密算法中,公钥和私钥都可以用于加密消息,用于加密消息的密钥与用于解密消息的密钥相反。RSA 算法提供了一种保护网络通信和数据存储的机密性、完整性、真实性和不可否认性的方法。相关数学名词理解:因数、素数、余数、模运算、逆元、欧拉函数、欧几里得算法( 辗转求余于RSA算法基于大整数因子分解的困难性,该算法的步骤如下
    第一步,生成两个大素数p和q
    第二步,计算这两个素数的乘积n=pq。
    第三步,计算小于n 并且与n 互素的整数的个数,即欧拉函数(n)=(p-1)(g-1)。
    第四步,选取一个随机数e,且满足1 第五步,计算d=e-1mod (n)。
    第六步,保密d、p 和q,而公开n 和e,即d 作为私钥,而 n和e 作为公钥。

    国产密码算法

    目前,已经公布的国产密码算法主要有SM1分组密码算法、SM2 圆曲线公钥密码算法、SM3密码杂凑算法、SM4分组算法、SM9 标识密码算法。
    SM1算法未公开,只能集成在芯片中。
    SM2算法基于圆曲线,因1024位的RSA算法面临威胁,我国用SM2替换RSA算法SM3杂凑(哈希)算法主要用于数字签名及验证、消息认证码生成及验证、随机数生成。SM4 无线局域网标准的分组加密算法,对标AES。
    SM9是标识密码算法主要用于身份认证,加密强度等同于3072位密钥的RSA加密算法

    Hash函数

    杂凑函数简称Hash 函数,它能够将任意长度的信息转换成固定长度的哈希值(又称数字摘要或消息摘要 ),并且任意不同消息或文件所生成的哈希值是不一样的。
    Hash算法
    常见的Hash算法有MD5、SHA和SM3
    MD5(Message Digest Algorithm-5)算法以512位数据块为单位来处理输入,产生128 位的消息摘要,即MD5能产生128 比特长度的哈希值。MD5 使用广泛,常用在文件完整性检查。SHA(Secure Hash Algorithm)算法与MD5 的设计原理类似,同样也以512 位数据块为单位来处理输入,产生160位的哈希值,具有比MD5 更强的安全性。
    SHA 算法的安全性不断改进,已发布的版本有SHA-2、SHA-3。SHA 算法立生的哈希值长度有SHA-224、SHA-256、SHA-384、SHA-512等
    SM3 是国家密码管理局于2010 年公布的商用密码杂凑算法标准。该算法消息分组长度为512 比特,输出HASH值长度为256 比特,采用Merkle-Damgard 结构。

    数字签名

    数字签名(Diqital Siqnature)是指签名者使用私钥对待签名数据的杂凑值做密码运算得到的结果。该结果只能用签名者的公钥进行验证,用于确认待签名数据的完整性、签名者身份的真实性和签名行为的抗抵赖性。
    数字签名至少应满足以下三个条件:

    • 非否认。签名者事后不能否认自己的签名。
    • 真实性。接收者能验证签名,而任何其他人都不能伪造签名。
    • 可鉴别性。当双方关于签名的真伪发生争执时,第三方能解决双方之间发生的争执。

    一个数字签名方案一般由签名算法和验证算法组成。签名算法密钥是秘密的,只有签名的人掌握,而验证算法则是公开的,以便他人验证。典型的数字签名方案有RSA 签名体制、Rabin签名体制、EIGamal 签名体制和DSS(DataSignature Standard) 标准。
    签名与加密的不同之处在于,加密的目的是保护信息不被非授权用户访问,而签名是使消息接收者确信信息的发送者是谁,信息是否被他人篡改。
    推荐文章 必看
    https://blog.csdn.net/TheSkyLee/article/details/108699243

    密码管理
    • 《中华人民共和国密码法》明确规定,密码分为核心密码、普通密码和商用密码。
      商用密码产品与使用网络关键设备和网络安全专用产品的商用密码服务实行强制检测认证制度。
    • 数字证书
      数字证书(Digital Certificate)也称公证书,是由证书认证机构(CA)签名的包含公开密拥有者信息、公开密钥签发者信息、有效期以及扩展信息的一种数据结构。
      数字证书按类别可分为个人证书、机构证书和设备证书,按用途可分为签名证书和加密证书。管理数字证书,一般是基于PK1技术建立数字证书认证系统(简称为CA)。CA 提供数字证书的申请、审核、签发查询、发布以及证书吊销等全生命周期的管理服务。数字证书认证系统的构成主要有目录服务器、OCSP 服务器(互联网协议,查询数字证书状态 )、注册服务器、签发服务器等
    安全协议

    Diffie-Hellman 密钥交换协议
    Difie-Hellman 密钥交换协议基于求解离散对数问题的困难性。
    SSH
    SSH 是Secure Shell 的缩写,即安全外壳”,它是基于的安全应用协议,由SSH 传输层协议、SSH 用户认证协议和SSH 连接协议三个子协议组成,各协议分工合作,实现加密、认证、完整性检查等多种安全服务。
    用户为了认证服务器的公钥真实性,有三种方法来实现

    • 第一种,用户直接随身携带服务器公钥;
    • 第二种,从公开信道下载服务器的公钥和它对应的指纹并验证
    • 第三种,通过PKI(公基础设施)技术来验证服务器。

    在实际的应用中,SSH 在端口转发技术的基础上,能够支持远程登录(lelnet)、rsh、rlogin 、文件传输(scp)等多种安全服务。Linux 系统一般提供SSH 服务,SSH的服务进程端口通常为22虽然
    SSH是一个安全协议,但是也有可能受到中间人攻击和拒绝服务攻击。

  • 相关阅读:
    flink集群与资源@k8s源码分析-回顾
    Python每日一练(牛客数据分析篇新题库)——第35天:分组聚合
    5147. 数量
    机器学习 | MATLAB实现GLM广义线性模型参数设定
    【跟小嘉学 Rust 编程】二十三、Cargo 使用指南
    day48
    HarmonyOS鸿蒙学习笔记(6) @Consume和@Provide作用说明和简单案例
    python opencv 深度学习 指纹识别算法实现 计算机竞赛
    JVM内存配置参数
    YOLOv5算法改进(21)— 添加CA注意力机制 + 更换Neck网络之BiFPN + 更换损失函数之EIoU
  • 原文地址:https://blog.csdn.net/I_AM_WORRY/article/details/133682616