数字签名和公开密钥体系

本文深入探讨了数字签名在确保信息安全方面的作用,它利用非对称加密中的私钥和公钥特性,保证信息来源的确定性和数据的完整性。介绍了RSA、DSA和ECC等算法,以及在SSL中的应用,如密钥协商和DHE、ECDHE过程,强调了非对称加密在加解密速度和安全性之间的平衡。
摘要由CSDN通过智能技术生成

数字签名

数字签名的作用

在很多场合我们都需要在文件上签字,为什么不直接用电脑打呢, 这就是为了日后确认文件确实是你自己的签名,每个人的笔迹都不一样。
数字签名也是一样的作用:
保证B收到的是A发来的信息确实是A发的,而不是C冒充 A发的。

数字签名为何能保证信息来源确定呢

  1. 这就是非对称加密中的私钥和公钥的特性: 私钥加密只能公钥解密,公钥加密只能私钥解密。
  2. 其中 私钥加密的数据,只能由对应的公钥解密 正好可以做数字签名
  3. 签名及验证过程:
  1. 私钥将待传送数据计算sha256 hash摘要, 然后用私钥加密摘要得到数字签名, base64之后附带加密数据一起发送过去。
  2. 接收方 用公钥验证这个数字签名: 公钥解密数字签名(得到私钥加密的数据sha256 hash值),如果解密失败,则对方身份不正确
  3. 然后用解密数据部分,解密之后也计算一次sha256,如果hash值不一样,则表示文件被篡改, 如果文本被修改过。

公开密钥算法(非对称加密)

RSA算法既可以加解密,也可以做数字签名

非对称加解密只有对称加密速度的1/1000, 所以非对称只进行 加密密钥的交换 ,也就是把 对称加密密钥 通过私钥加密发给接对方,对方通过公钥解密得到对称密钥。数据真正是使用对称密钥加解密,私钥公钥加解密只要保证对称加密正确就ok了。

基于大整数因子分解问题, 数学原理简单 ,单位安全强度小, 容易实现。

DSA(Digital Signature Algorithm 数字签名算法)

DSA是基于整数有限域离散对数难题。只能做数字签名,不能用来加解密,据说有扩展

ECC算法

基于ECC 椭圆曲线算法和DSA的模拟结合。

基于椭圆曲线离散对数问题, 数学原理复杂 ,单位安全强度大, 不容易实现, 美国国家标准与技术局(NIST)已经公布了一列推荐的椭圆曲线用来保护5个不同的对称密钥大小(80, 112, 128, 192, 256), 发展势头猛,NSA就是采用ECC算法,来保护敏感数据。有望取代rsa。

市场份额RSA占据大头,ECC有望取代RSA

ECDSA 椭圆曲线数字签名算法

是 ECC 和DSA模拟 主要做数字签名流程类似DSA, 签名算法使用的是ECC。

ssl 中如何使用非对称密钥

非对称密钥因为加解密速度慢,所以只负责回话密钥的加解密,实际数据的加解密使用的是 协商出来的回话密钥。

密钥协商

RSA 客户端请求服务端, 服务端先发送自己的public key
客户端随机算法生成密钥s,发送到服务端,服务端私钥解密, 就确定了S为密钥。

DHE 基于DH改进的, E表示临时。

  1. 客户端随机值Xa,服务端随机值Xb;
  2. 然后客户端计算Pa = q^Xa mod p,Pa发送给服务端
  3. 服务端计算Pb = q^Xb mod p, Pb 发给客户端
  4. 然后客户端计算密钥Sa = Pb ^Xa mod p
  5. 服务端计算密钥Sb = Pa^Xb mod p
  6. 算法保证Sa=Sb = q^(Xa * Xb) mod p, 完成了密钥交换

ECDHE 使用ECC算法改进的DHE算法。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值