什么是数字签名算法(DSA)
全称Digital Signature Algorithm,即数字签名算法,它主要用于数字签名的生成和验证。
只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明。
一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。
数字签名主要是为了完成两个目的:
(1)确认信息是由签名者发送的;
(2)确认信息自签名后到收到为止,未被修改过。
DSA算法的工作原理
主要基于离散对数问题,它包含三个阶段:密钥生成、签名生成和签名验证。
在密钥生成阶段,DSA会生成一对公钥和私钥。公钥用于验证签名,而私钥则用于生成签名。
在签名生成阶段,DSA会使用私钥和一些随机数来生成一个数字签名。这个签名是独一无二的,并且与消息内容紧密相关。
在签名验证阶段,DSA会使用公钥和原始消息来验证签名的有效性。如果签名是有效的,那么就可以确认这条消息是由私钥的持有者发送的,并且在传输过程中没有被篡改。
DSA分类
- RSA
- DSA
- ECDSA
- Schnorr
什么是椭圆曲线数字签名算法(ECDSA)
椭圆曲线数字签名算法(英语:Elliptic Curve Digital Signature Algorithm,缩写作 ECDSA)是一种基于椭圆曲线密码学的公开金钥加密算法。1985年,Koblitz和Miller把