非对称加密RSA和对称加密AES对称加密与 AES对称加密基本概念对称加密又称现代加密算法通信双方使用同一个密钥完成加密与解密操作。加密明文 密钥 → 密文解密密文 密钥 → 明文核心特点优点运算速度极快、性能开销小、适合大量数据加密。缺点密钥分发与管理困难。在开放网络中直接传输密钥极易被窃听且难以确认通信对象身份存在安全隐患。密钥分发难题在对称加密中加密与解密用同一把密钥。要通信必须先让双方都拿到这把密钥。但密钥本身不能在公开信道明文传输一被截获通信就全破。线下交换密钥在大规模、远程场景下不可行、成本极高、易被截获。一话概括密钥必须安全共享但共享密钥的信道本身不安全。解决密钥分发难题1.非对称加密流程B 公开自己的公钥。A 用 B 的公钥加密消息 / 会话密钥。只有 B 能用自己的私钥解密。解决了什么无需再秘密传递密钥公钥可在互联网上任意公开。局限计算开销大不适合大数据加密。2.混合加密主流实践TLS/HTTPS结合对称与非对称的优势用非对称加密安全交换临时对称密钥会话密钥。后续所有数据传输都用对称加密速度快、效率高。3.密钥交换协议DH双方不直接传输密钥而是通过公开交换数学参数在本地独立计算出相同密钥。窃听者即使截获所有公开参数也无法算出密钥。是现代安全通信如 TLS、SSH的基础。4.终极方案量子密钥分发QKD核心原理BB84 协议用单光子的量子态偏振编码密钥信息。量子不可克隆定理任何窃听都会扰动量子态被通信双方检测到。一旦发现窃听立即丢弃本次密钥重新分发。维度经典方案非对称 / DH量子方案QKD安全基础计算复杂度大数分解、离散对数量子力学原理不可克隆、测不准安全等级计算安全可被量子计算机破解理论无条件安全性能高速、低成本、易部署速率低、成本高、距离受限抗量子攻击脆弱Shor 算法可破免疫应用场景互联网、移动网络、金融政务、国防、金融核心网AESAdvanced Encryption Standard高级加密标准AES 是目前全球使用最广泛、安全性最高的对称加密算法属于分组密码将数据按固定长度128 位分块处理。支持密钥长度128 位、192 位、256 位。安全性依靠密钥长度与复杂轮函数保证抗暴力破解、抗差分 / 线性密码分析。应用HTTPS 传输加密、实时通信、文件加密、数据库加密等。非对称加密与 RSA非对称加密基本概念非对称加密是现代计算机通信安全的基石从机制上解决了对称加密的密钥分发难题。它使用一对相互匹配但不同的密钥公开密钥PublicKeyPK完全公开可分发给任何人。私有密钥PrivateKeySK严格保密仅由持有者保管。核心安全规则公钥加密只能对应私钥解密保证只有私钥持有者才能读取密文实现数据机密性。私钥加密只能对应公钥解密数字签名保证消息一定来自私钥持有者实现身份认证 不可否认。RSA 算法详解:RSA 是最经典、最成熟的非对称加密算法其安全基础是大整数质因数分解的数学困难性。将两个极大质数相乘容易但将乘积还原为两个质数极难。非对称加密完整原理图:【公钥加密 —— 保证机密性】他人 ↓ 使用你的公钥加密明文 ↓ 生成密文网络传输 ↓ 你使用自己的私钥解密 ↓ 得到明文【私钥签名 —— 保证身份真实性】你 ↓ 使用私钥对消息/哈希值签名 ↓ 生成签名值与消息一同发送 ↓ 他人使用你的公钥验证签名 ↓ 验证通过确认消息来自你且未被篡改非对称加密特点:安全性高解决密钥分发与身份认证问题。算法复杂加密解密速度远慢于对称加密通常只用于小数据量操作。安全性依赖算法强度与密钥长度。RSA应用场景 由于RSA算法的加密解密速度要比对称算法速度慢很多在实际应用中通常采取数据本身的加密和解密使用对称加密算法(AES)。对称加密 AES 与非对称加密 RSA 对比对比项对称加密AES非对称加密RSA密钥数量1 个密钥公钥、私钥一对加密解密速度极快慢约为 AES 的 1/1001/1000核心能力数据加密、保证机密性密钥加密、数字签名、身份认证适用数据量大量数据文件、消息、流量小数据密钥、签名、随机数主要安全问题密钥分发困难、易被中间人攻击速度慢、计算开销大实际应用标准组合AES 加密业务数据快 RSA 加密 AES 密钥安全由于 RSA 速度慢实际工程中几乎不使用 RSA 直接加密业务数据。通用安全架构AES 加密业务数据速度快适合大量内容。RSA 加密 AES 的密钥安全分发密钥。RSA 做数字签名与身份认证防伪造、防篡改、防中间人。混合加密是指发送方生成一个随机AES密钥而接收方用的是非对称密钥--用接收方的公钥加密发送方的随机密钥等发送方的随机密钥发送过来接收方使用自己的私钥进行解密之后所有的通信都会通过这个随机AES密钥传输意味着只有第一次双方连接时会生成这个随机AES密钥并且实现接收方使用非对称加密这个方法之后只要这个连接没断开双方就会直接使用这个随机AES密钥进行传输。标准流程服务端非对称密钥对公钥公开私钥自己留客户端生成随机 AES 密钥客户端用服务端公钥加密 AES 密钥发过去服务端用私钥解开拿到 AES 密钥之后全程只使用 AES 对称加密通信补充AES 密钥只生成一次吗对一个 TLS 会话只生成一次。断开重连会重新生成新的随机 AES。深度思考题1. 既然非对称加密更安全为什么不直接全部用 RSA还要用 AES因为 RSA 基于大数模幂运算计算复杂度极高、速度极慢无法支撑视频、聊天、大文件、网页流量等大量数据的实时加密。AES 运算简单、可硬件加速适合高速数据传输。实际系统采用混合密码体制RSA 解决安全与身份问题AES 解决速度与效率问题。2. 公钥可以公开那攻击者用公钥加密内容是不是就能冒充通信不能。公钥公开只保证别人可以给你发送加密消息但无法伪造你的身份。伪造身份需要使用私钥签名而私钥严格保密攻击者无法获取。只要私钥不泄露公钥即使被滥用也无法破坏整体安全。3. RSA 加密 AES 密钥这种结构是否绝对安全在算法正确实现、密钥足够长、模式安全的前提下是安全的。但存在三个关键点必须验证公钥的真实性使用数字证书否则会被中间人攻击。AES 密钥必须是密码学安全随机数不能人为设置。RSA 必须使用足够长度2048 位及以上并采用安全填充方案。4. 数字签名到底是加密还是认证它能保证消息不被别人看到吗数字签名本质是认证不是加密。私钥签名 公钥验证保证消息来自正确的人、未被篡改、不可否认。签名不保证机密性消息本身仍可能被他人看见。若要同时保密 认证必须使用AES 加密保密 RSA 签名认证。5. 为什么说非对称加密是通信安全的基石没有它互联网无法安全运行互联网是开放、不可信环境通信双方没有预先共享密钥。没有非对称加密无法安全分发对称密钥只能明文传输极易被窃听。有了非对称加密可以公开分发公钥、用公钥加密密钥、用签名验证身份从根源上解决开放网络的信任问题。因此它是 HTTPS、支付、登录、数字证书等所有安全应用的基础。6. AES 和 RSA 分别会被什么方式破解现实中哪种更容易被攻破AES理论上无数学漏洞主要威胁是密钥泄露、实现漏洞、侧信道攻击。RSA依赖大数分解密钥过短可被算力破解同样害怕实现与侧信道攻击。现实中更容易被攻破的从来不是算法而是弱密钥、密钥泄露、随机数不安全、代码漏洞、中间人攻击。7. 前端场景中能不能把 RSA 公钥直接写在前端代码里安全吗可以且公钥写在前端是安全的。因为公钥本身就是用来公开的泄露不会导致私钥泄露或被破解。但要注意前端不能存储私钥。公钥必须来自可信来源防止被替换成攻击者公钥。脑瓜子疼