
网络安全简述网络安全概述加密技术/算法对称加密技术/算法3DES加密流程详解流程说明密钥使用总结安全性特点非对称加密技术/算法RSA加密流程详解RSA加密流程图信息保密场景RSA签名流程图身份认证场景公钥私钥使用顺序对比关键区别混合加密哈希算法特点常见算法应用场景网络安全概述网络安全就是信息安全。而信息安全的核心就在于密码技术很多高校开设的有密码学实际上就是研究数学领域内如何保证信息安全。Kerckhoffs原则密码系统的安全性不应依赖于其算法的保密性而是应该建立在密钥的保密之上。理论上来说密码都是可以破解的但是不同的密码技术所需要的成本截然不同。密码技术的常见手段有三类1、替换2、换位3、一次性填充加密技术/算法分类加密技术例子对称加密DES 3DES 2DEA AES DC4/5非对称加密RSA SM2哈希MD5 SHA SM3对称加密技术/算法简而言之就是加解密的密钥相同常见有: DES 3DES AES 等等其中值得一提的是AES是可以使用硬件来实现的因此在运算速度上具备优势分组为128位密钥长度120/192/256位。3DES的加密流程是 先使用Key1对信息加密 再使用Key2对信息解密 再使用Key1进行加密总共有三步但是只使用了两个密钥。3DES加密流程详解3DESTriple DES是对DES算法的增强通过三次DES操作来提高安全性。其加密流程如下流程说明第一步DES加密使用Key1对明文进行DES加密这是标准的DES加密操作第二步DES解密使用Key2对第一步的结果进行DES解密注意这里使用的是解密操作但密钥不同第三步DES加密再次使用Key1对第二步的结果进行DES加密最终得到密文密钥使用总结Key1: 用于第一步加密和第三步加密Key2: 用于第二步解密总共使用两个密钥完成三次DES操作安全性特点有效密钥长度112位两个56位DES密钥抗暴力破解能力2¹¹²次尝试兼容性可以解密使用单DES加密的数据注意在实际应用中Key1和Key2应该是两个不同的密钥如果使用相同的密钥3DES会退化为单DES。非对称加密技术/算法公钥加密 私钥解密 信息保密私钥加密 公钥解密 数字签名公钥和私钥是一对钥匙类似于电视剧中男女主通过玉佩相识。这一对钥匙均属于一个主体且私钥要保存妥当原则上只有主体知道。常见有RSA加密 其密钥长度为512位或者1024位。RSA加密流程详解RSA是目前最经典的非对称加密算法其核心在于公钥和私钥的使用顺序决定了加密的目的。下面通过流程图和对比来说明。RSA加密流程图信息保密场景接收方操作发送方操作发送方使用接收方的公钥加密密文传输接收方使用自己的私钥解密接收方获得明文RSA签名流程图身份认证场景接收方操作发送方操作发送方使用自己的私钥加密签名签名原文传输接收方使用发送方的公钥解密验签确认发送方身份公钥私钥使用顺序对比场景加密方使用的密钥解密方使用的密钥目的信息保密接收方的公钥接收方的私钥保证只有接收方才能解密数字签名发送方的私钥发送方的公钥保证信息确实来自发送方关键区别信息保密场景先公钥后私钥发送方用接收方的公钥加密接收方用自己的私钥解密公钥公开任何人都能加密但只有持有私钥的接收方才能解密数字签名场景先私钥后公钥发送方用自己的私钥加密签名接收方用发送方的公钥解密验签私钥只有发送方持有因此能证明信息确实来自发送方核心要点公钥加密、私钥解密用于保密通信私钥加密、公钥解密用于身份认证。两者的使用顺序恰好相反这正是非对称加密的精髓所在。混合加密既然对称加密加密信息具备优势而非对称加密在传递信息上具备优势因此结合起来利用*对称密钥加密信息使用非对称加密加密密钥既能加密信息又保障了密钥不易第三方获取。哈希算法哈希最出名的特点就在于将任意长度的内容转化为固定长度的哈希值特点1、不可逆性无法通过哈希值还原原内容2、抗碰撞性 很难找到两个不同的输入使得它们的哈希值相同3、雪崩效应 原信息变动一个比特也会使得哈希值大变常见算法算法数据分组哈希值长度MD5512位128位SHA512位160位SM3512位256位应用场景1、文件校验下载软件或大文件时官方会同时公布文件的哈希值如 MD5、SHA-256。下载完成后本地计算哈希值与官方公布值比对一致则说明文件在传输过程中未被篡改或损坏。2、密码存储网站存储用户密码时不保存明文而是保存密码的哈希值。用户登录时将输入的密码做同样的哈希运算与数据库中的哈希值比对。即使数据库泄露攻击者也无法直接得到明文密码。3、用户身份认证HMACHMACHash-based Message Authentication Code基于哈希的消息认证码是哈希在身份认证中的典型应用。它结合了哈希函数与共享密钥既能验证消息的完整性又能确认消息确实来自持有密钥的合法用户。HMAC 认证流程一致不一致用户输入账号密码服务端生成随机挑战值 nonce用户用共享密钥计算 HMAC(密钥, nonce)用户将 HMAC 值发送给服务端服务端用同一密钥计算 HMAC比对两个 HMAC 值认证通过认证失败HMAC 认证示例以用户登录为例用户发起登录请求用户输入账号和密码向服务端请求登录。服务端下发挑战值服务端生成一个随机数nonce并发送给用户。用户计算 HMAC用户使用共享密钥登录时协商好的密钥对nonce计算 HMAC 值连同账号一起发送给服务端。服务端验证服务端用数据库中保存的同一共享密钥对同一个nonce计算 HMAC 值与用户发来的 HMAC 值比对。判定结果两个 HMAC 值一致 → 认证通过不一致 → 认证失败。关键点HMAC 的安全性同时依赖哈希函数的单向性和共享密钥的保密性。攻击者即使截获了 HMAC 值也无法反推出密钥没有密钥也无法伪造出合法的 HMAC 值。因此 HMAC 常用于 API 接口签名、Token 校验等身份认证场景。