区块链技术之密码学技术之数字签名

1193051-20180309181829873-1269695528.png

数字签名

类似在纸质合同上签名确认合同内容,数字签名用于证实某数字内容的完整性(integrity)和来源(或不可抵赖,non-repudiation)。

一个典型的场景是,A要发给B一个文件(一份信息),B如何获知所得到的文件即为A发出的原始版本?A先对文件进行摘要,然后用自己的私钥进行加密,将文件和加密串都发给B。B收到后文件和加密串,用A的公钥来解密加密串,得到原始的数字摘要,跟对文件进行摘要后的结果进行比对。如果一致,说明该文件确实是A发过来的,并且文件内容没有被修改过。

HMAC

全称是Hash-based Message Authentication Code,即“基于Hash的消息认证码”。基本过程为对某个消息,利用提前共享的对称密钥和Hash算法进行加密处理,得到HMAC值。该HMAC值提供方可以证明自己拥有共享的对称密钥,并且消息自身可以利用HMAC确保未经篡改。

HMAC(K,H,Message)

其中,K为提前共享的对称密钥,H为提前商定的Hash算法(一般为公认的经典算法),Message为要处理的消息内容。如果不知道K和H,则无法根据Message得到准确的HMAC值。

HMAC一般用于证明身份的场景,如A、B提前共享密钥,A发送随机串给B,B对称加密处理后把HMAC值发给A,A收到了自己再重新算一遍,只要相同说明对方确实是B。

HMAC主要问题是需要共享密钥。当密钥可能被多方拥有的场景下,无法证明消息确实来自某人(Non-repudiation)。反之,如果采用非对称加密方式,则可以证明。

盲签名

1983年由David Chaum提出。签名者在无法看到原始内容的前提下对信息进行签名。盲签名主要是为了实现防止追踪(unlinkability),签名者无法将签名内容和结果进行对应。典型的实现包括RSA盲签名。

多重签名

n个持有人中,收集到至少m个(m<n)的签名,即认为合法,这种签名被称为多重签名。其中,n是提供的公钥个数,m是需要匹配公钥的最少的签名个数。

环签名

环签名由Rivest,shamir和Tauman三位密码学家在2001年首次提出。环签名属于一种简化的群签名。签名者首先选定一个临时的签名者集合,集合中包括签名者自身。然后签名者利用自己的私钥和签名集合中其他人的公钥就可以独立的产生签名,而无需他人的帮助。签名者集合中的其他成员可能并不知道自己被包含在其中。

转载于:https://www.cnblogs.com/bruceshao/p/8535346.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值