作者:黎跃春
孔壹学院创始人兼CEO
黎跃春:孔壹学院创始人兼CEO,国内区块链布道先行者,通信和信息技术培养工程区块链高级授课专家。如果您有任何关于区块链的问题,可以加入区块链技术交流QQ群729666975,我们会为您一一解答。
从零到壹学习密码学为一个系列,一共20讲,包括初识密码学、Hash 函数、对称加密算法、数字签名、椭圆曲线加解密、公钥基础设施( PKI )、零知识证明、随机数等,为大家详尽的介绍密码学的学习过程。今天我们将为大家介绍第十六讲:实现数字签名。话不多说,马上开启我们的密码学学习之旅。
资料获取,添加莉莉微信kongyixueyuan。
孔壹学院
DSA
数字签名算法
WORLD FOOTBALL CUP
数字签名算法(DSA,Digital Signature Algorithm),是一种公开密钥算法,不能用于加密,只能用于数字签名。主要用作为接收者验证数字的完整性和数据发送者的身份,DSA算法的安全性基于解离散对数的困难性。
RSA
公钥加密算法
WORLD FOOTBALL CUP
公钥加密算法于1987年首次公开,RSA是提出这个算法的三人姓氏开头字母组成,可用于加密,也可以用于数字签名。RSA的安全性基于大数分解的困难性。
加密算法:
最优非对称加密填充(OAEP,Optimal Asymmetric Encryption Padding),在随机预言模型下,用来处理非对称加密前的明文;
公钥密码学标准(PKCS,The Public-Key Cryptography Standards),是由美国RSA数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签名、数字信封的格式等方面的一系列相关协议。
签名认证:
公钥密码学标准(PKCS);
概率签名方案(PSS,Probabilistic Signature Scheme),与PKCS不同的是,它支持添加盐(Salt)。
ECDSA
椭圆曲线加密算法
WORLD FOOTBALL CUP
ECDSA的全名是Elliptic Curve DSA,即椭圆曲线DSA。它是Digital Signature Algorithm (DSA)应用了椭圆曲线加密算法的变种。椭圆曲线算法的原理很复杂,但是具有很好的公开密钥算法特性,通过公钥无法逆向获得私钥。
签名过程
假设要签名的消息是一个字符串:“Hello World!”。DSA签名的第一个步骤是对待签名的消息生成一个消息摘要。不同的签名算法使用不同的消息摘要算法。而ECDSA256使用SHA256生成256比特的摘要。摘要生成结束后,应用签名算法对摘要进行签名:产生一个随机数k利用随机数k,计算出两个大数r和s。将r和s拼在一起就构成了对消息摘要的签名。这里需要注意的是,因为随机数k的存在,对于同一条消息,使用同一个算法,产生的签名是不一样的。从函数的角度来理解,签名函数对同样的输入会产生不同的输出。因为函数内部会将随机值混入签名的过程。
验证过程关于验证过程,这里不讨论它的算法细节。从宏观上看,消息的接收方从签名中分离出r和s,然后利用公开的密钥信息和s计算出r。如果计算出的r和接收到的r值相同,则表示验证成功。否则,表示验证失败。
领取专属 10元无门槛券
私享最新 技术干货