天天看点

数字签名算法RSA

一、概述

1、数字签名算法可以看做是一个带有密钥的消息摘要算法,并且这个密钥包括了公钥和私钥。他是非对称加密算法和消息摘要算法的结合体

2、数字签名算法是公钥基础设施(pki),以及许多网络安全机制的基础

3、数字签名算法有抗否认的作用

4、遵循“私钥签名,公钥验证”规则

5、常见的数字签名算法有rsa/dsa/ecdsa

6、java6支持实现了dsa算法、部分rsa算法需要bouncycastle支持,最牛的ecdsa算法(微软用来做操作系统序列号的那个)完全需要bouncycastle支持

二、模型分析

1、甲方构造密钥对(公钥+私钥),公布公钥给乙方

2、甲方使用私钥对数据进行签名,然后将“签名+数据” 发送给乙方

3、乙方使用公钥+数字签名 验证数据

三、代码分析

四、总结

1、签名算法对非对称加密算法rsa的公钥私钥的使用是核心,配合信息摘要算法完成签名操作。其实签名看起来就是信息的摘要而已

2、密钥处理方面和非对称加密算法无异,只是将加密、解密换成签名、验证

3、rsa的数字签名算法的密钥实现与rsa加密算法一致。所以签名算法可以分为md系列和sha系列

继续阅读