美文网首页程序员
理解区块链技术所需的密码学常识之数字签名

理解区块链技术所需的密码学常识之数字签名

作者: 刘娟娟 | 来源:发表于2018-11-25 14:52 被阅读4次

1、

密码学于我而言,是一个非常神秘的概念。近日用“区块链+密码学”为关键词,Google到一些基础知识点。主要的学习材料是《区块链技术》中“密码学与安全技术”章节。

咱们继续。

2、

前面2篇,分别讲到了hash算法与加解密算法,可以说是密码学之基础。

hash算法,别称是指纹算法或摘要算法。该算法所处理的是把任意长度的二进制明文串映射为较短的(通常是固定长度的)二进制串,即Hash 值。

加解密算法,是由密钥和算法两个组件构成。

关于密钥:加密和解密的密钥是否相同,决定了是对称加密还是非对称加密。

关于算法:加密与解密的基本过程所采用的算法,并不是依靠隐蔽算法(比如不开源)来保障安全的,其实大多数加解密算法自身规则是公开的,其安全是依靠数学难题和“经验、多年实证有效”来保障。

此为前2篇之温故。

3、

虽说掌握了一门学科所讲述的关键概念,也就掌握了其基本要义。比如密码学与信息安全技术,其关键概念是什么呢?思考这个问题,其实就是在进化自学的能力。

我个人的自学技巧,是在理解新事物时,主抓其要解决的问题。密码学作为一门历史虽长,却仅在近几十年才大有发展的学科,其目的是:实现信息传递的机密、完整、可认证、不可抵赖。

其余所有的概念,无论是hash算法,还是加解密算法,都是实现以上目的之手段。而手段可是会随着技术进步而大幅演化的。更别提各种具体的某个hash算法,或某个加解密算法,其有效性、安全性都是构建着密码学的进步,其变动自然也不小。

由此,我还蛮庆幸自己能从意义上理解密码学,而非从实操上掌握它。

4、

今天所学的消息认证码和数字签名,并不是什么“新的概念”或“关键概念”,而是密码学的一两个具体应用场景。

5、

消息认证码和数字签名,是满足同一应用场景的不同手段。其区别在于,前者采用对称加密,后者采用非对称加密。

消息认证码,Hash-based Message Authentication Code,简称HMAC:

基本过程为对某个消息,利用提前共享的对称密钥和 Hash 算法进行处理,得到 HMAC 值。该 HMAC 值持有方可以向对方证明自己拥有某个对称密钥,并且确保所传输消息内容未被篡改。
典型的 HMAC 生成算法包括 K,H,M 三个参数。K 为提前共享的对称密钥,H 为提前商定的 Hash 算法(如 SHA-256),M 为要传输的消息内容。三个参数缺失了任何一个,都无法得到正确的 HMAC 值。
消息认证码可以用于简单证明身份的场景。
主要问题是需要提前共享密钥,并且当密钥可能被多方同时拥有(甚至泄露)的场景下,无法追踪消息的真实来源。

上述所采用的对称加密改为非对称加密算法,就是广为人知的专有名词:“数字签名”。

数字签名因采用非对称加密算法,可确认其来源,使之不可抵赖。从而解决消息认证码所具备的“无法追踪信息的真实来源”之缺陷。

5、

数字签名还有一些延展的变化。分别是:盲签名,多重签名,群签名与环签名。

  • 盲签名:签名者无法获知消息内容就对其签名,以保护消息内容的安全。
  • 多重签名:即 n 个签名者中,收集到至少 m 个(n >= m >= 1)的签名,即认为合法。这个在超大资产的管理中常常用到。
  • 群签名:某个群组内一个成员可以代表群组进行匿名签名。风险在于把成员们加入群组内的管理员有可能知道每个人的身份对应签名。
  • 环签名:简化版的群签名。我之前日更写到的门罗币就是采用环签名技术来保障匿名性的。

6、

密码学相关技术有一个必不可少的关注点,即安全性或有效范围。

既然消息认证码和数字签名,是hash算法和加解密算法在身份认证这块的具体应用,其优劣势自然继承自hash算法和加解密算法。但越是复杂的应用,中间的环节越多,其安全的风险也就成倍放大。

目前常见的数字签名算法需要选取合适的随机数作为配置参数,配置参数不合理的使用或泄露都会造成安全漏洞和风险。2010 年 8 月,SONY 公司因为其 PS3 产品上采用十分安全的 ECDSA 进行签名时,不慎采用了重复的随机参数,导致私钥被最终破解,造成重大经济损失。

即便是所有其它处理都是安全可靠的,也仅仅因为一个参数的漏洞也能带来巨大损失。

在尝试理解密码学知识的过程中,我常常不禁代入到密码学的历史背景即一战、二战之中,并结合谍战剧的感性印象来感知密码学分量之沉重,治学之严谨。


著作权所有。如需转载或引用,请通过本文 PRESS.one 智能合约购买授权许可。或采用 PRESSone APP 扫码:

image.png

相关文章

网友评论

    本文标题:理解区块链技术所需的密码学常识之数字签名

    本文链接:https://www.haomeiwen.com/subject/onupqqtx.html