外观
密码学
密码学是研究信息安全的科学,涉及加密、解密、签名和验证等技术,确保数据的机密性、完整性和真实性。作为现代数字世界的基石,密码学支撑着从安全通信到区块链的各类应用。
什么是密码学?
密码学通过数学算法将原始数据 (明文) 转换为不可读形式 (密文),只有授权方才能恢复原始内容。其核心目标包括防止数据泄露、检测篡改和验证身份。
示意图:
原始通信: 发送方 -> 明文 -> 传输 -> 明文 -> 接收方
密码学通信: 发送方 -> 加密(明文)=密文 -> 传输 -> 解密(密文)=明文 -> 接收方密码学的核心特点
机密性
确保只有授权方能够访问信息内容,防止未授权访问和窃听。对称和非对称加密是实现机密性的主要手段。
示意图:
明文"Hello" -> 加密算法+密钥 -> 密文"Kdjr3#" -> 解密算法+密钥 -> 明文"Hello"完整性
通过哈希函数和消息认证码检测数据是否被篡改,确保接收到的信息与发送时完全一致。
示意图:
发送方: 数据 -> 生成哈希值 -> 发送数据+哈希值
接收方: 接收数据 -> 重新计算哈希 -> 对比接收的哈希值 -> 验证完整性身份验证与不可否认性
数字签名技术验证消息发送方身份,并防止发送方事后否认曾发送过消息。
示意图:
发送方: 消息 -> 私钥签名 -> 发送消息+签名
接收方: 接收消息+签名 -> 使用发送方公钥验证签名 -> 确认身份访问控制
通过密码学凭证控制对资源或服务的访问权限,如数字证书和零知识证明。
密码学基础技术
对称加密
加密和解密使用相同密钥,速度快,适合大数据量加密。
示意图:
加密: 明文 + 共享密钥 -> 加密算法 -> 密文
解密: 密文 + 共享密钥 -> 解密算法 -> 明文典型算法:
- AES:分组加密,支持 128/192/256 位密钥
- ChaCha20:流加密,移动设备性能优异
非对称加密
使用公钥-私钥对,公钥用于加密,私钥用于解密,解决密钥分发问题。
示意图:
密钥生成: 生成密钥对[公钥|私钥]
加密: 明文 + 接收方公钥 -> 密文
解密: 密文 + 接收方私钥 -> 明文典型算法:
- RSA:基于大数分解难题
- 椭圆曲线加密 (ECC):相同安全强度下密钥更短
哈希函数
将任意长度输入转换为固定长度输出,具有单向性和抗碰撞特性。
示意图:
输入数据 -> 哈希函数 -> 固定长度哈希值
特性: 相同输入永远相同输出,微小输入变化导致输出巨变典型算法:
- SHA-256:输出 256 位,区块链广泛应用
- BLAKE3:现代哈希函数,性能优异
数字签名
结合哈希和非对称加密,提供身份验证和不可否认性。
示意图:
签名: 消息 -> 哈希 -> 私钥加密哈希值 -> 数字签名
验证: 消息 -> 哈希 -> 公钥解密签名 -> 对比哈希值密码学进阶技术
零知识证明
允许一方向另一方证明某陈述为真,而不泄露任何额外信息。
示意图:
证明者: 知道秘密S -> 生成证明 -> 验证者: 验证证明正确性
验证者最终只知道陈述为真,不知S的具体内容应用类型:
- zk-SNARKs:需要可信设置,证明小验证快
- zk-STARKs:无需可信设置,证明较大但可扩展性强
同态加密
允许在加密数据上直接进行计算,解密结果与在明文上计算相同。
示意图:
数据A(加密) + 数据B(加密) -> 密文计算 -> 结果(加密) -> 解密 -> 明文结果
等同于: 数据A(明文) + 数据B(明文) -> 明文计算 -> 明文结果安全多方计算
多个参与方共同计算函数,各方输入保持私密,只获得最终结果。
示意图:
参与方A(输入a) + 参与方B(输入b) + 参与方C(输入c)
-> 安全协议计算函数f(a,b,c)
-> 各方获得结果f(a,b,c),但不知其他方具体输入门限密码学
将密钥或签名权力分散到多个参与方,需要达到阈值数量的参与方才能完成操作。
示意图:
主私钥 -> 分割为5个份额[份额1|份额2|份额3|份额4|份额5]
签名时: 任意3个份额即可生成有效签名,少于3个则无法完成密码学在区块链中的应用
公私钥对与钱包地址
用户通过椭圆曲线算法生成密钥对,公钥经哈希和编码生成区块链地址。
示意图:
随机数 -> 椭圆曲线算法 -> 私钥 -> 推导公钥 -> 哈希处理 -> 编码 -> 地址交易签名
每笔交易由发送方私钥签名,网络节点使用公钥验证签名有效性。
示意图:
交易数据 -> 发送方私钥签名 -> 广播交易+签名
节点验证: 交易数据 + 签名 + 发送方公钥 -> 验证通过/拒绝默克尔树
通过哈希树结构高效验证大数据集的完整性和成员关系。
示意图:
交易1哈希 交易2哈希 交易3哈希 交易4哈希
\ / \ /
中间哈希1 中间哈希2
\ /
根哈希(记录在区块头)共识算法安全
工作量证明依赖哈希函数的计算难度,权益证明依赖数字签名的身份验证。
密码学面临的挑战
量子计算威胁
Shor 算法可破解 RSA 和椭圆曲线加密,Grover 算法加速哈希碰撞寻找。
防御方案:
- 后量子密码学:基于格、编码、多变量等数学难题
- 量子密钥分发:利用量子力学特性保障密钥安全
侧信道攻击
通过分析功耗、电磁辐射或执行时间等物理特征获取密钥信息。
防护措施:
- 恒定时间实现
- 随机化掩码技术
- 物理隔离
密钥管理
密钥丢失导致数据永久不可访问,密钥泄露危及整个系统安全。
最佳实践:
- 分层密钥结构
- 硬件安全模块 (HSM)
- 门限签名方案
密码学作为数字信任的基础,持续演进以应对新的安全挑战,为构建安全可靠的数字未来提供核心技术支撑。