聊聊数字签名

作者:张韡武
(AlphaWallet CTO)

数字签名——我指的不是用ApplePen在PDF上的涂鸦,而是具有防伪功能,基于密码学的数学签名——在其发明40年之后,终于在各国都基本获得了认可。

数字签名技术是信息安全机制中的一种重要技术。已经广泛应用于电子商务和通信系统中,包括身份认证,数据完整性,不可否认性等方面,甚至在日常的电子邮件中也有应用。数字签名提出的目的就是在网络环境下模拟日常的手工签名或印章,它可以抵御冒充、篡改、伪造、抵赖问题。数字签名的安全特性是:不可否认性,不可伪造性。

数字签名算法一般采用非对称密钥密码体制来实现。常见的数字签名算法有:RSA,其安全性是基于求解离散对数的困难性;DSA,其安全性是基于对有限域的离散对数问题的不可实现性;ECDSA(椭圆曲线数字签名算法,Elliptic CurveDigital Signature Algorithm),其安全性给予椭圆曲线离散对数问题的不可实现性)等 。

法律上认可的数学签名是需要证书的,用以证明签名者在真实世界里的身份。

有些国家对发证机构有偏好,比如中国要求发证机构从工信部获得牌照。比如德国、丹麦等国政府直接发证。在我们这里新加坡,Netrust似乎是唯一一家按2010年新加坡电子交易法案认可的发证机构。

为了做一个听党的话的好公民,我从指定的发证机构为我们的创业公司申请了证书,以便完全合法地在在新加坡使用数字签名签合同。我觉得可以借这个机会做一下数字签名的科普,顺带点评一下各国数学签名技术的优劣。

我从Netrust获得的证书是2048位RSA,装在一个Alladin牌的U盾里。

 

 

2048位RSA如今算是比较标准的。不是因为它绝对安全仿伪,而是因为它是效率和安全性都不错。效率这里是指每秒钟一个U盾能签的次数。显然对于签合同这种事,每秒能签1000个和10秒能签1个实际差别不大。加上合同常常有十年有效期,所以这个2048位RSA比起10秒才能签一次的爱沙尼亚电子居民证书算是比较凑合的。实际上,用暴力伪造爱沙尼亚电子居民证书的难度是伪造新加坡这个的1亿亿亿倍(1后面24个零)。

为什么新加坡不使用这样高强度的签名系统?其实效率不是重点。有些公司要求每一封电子邮件都有数字签名,所以能签得快一点确实有好处(国内的区块链大牛谢晗剑每封电子邮件都用2048位RSA签名,尽管没有公司老板逼他),但是即使提高伪造难度1000倍,也没有人会感觉出区别。那么我们为什么还在用这套技术?

原因之一是软件支持落后。现在的合同文件大多是PDF 1.5版的,最多只能支持
2048位RSA证书。在支持安全技术方面,Adobe公司可以算是屡教不改的反动分子,每次技术更新都是必不得己而后行。很多电子邮件软件不能验更安全的签名。

 

 

实际上,爱沙尼亚,作为全球数学签名技术领先的国家,使用了一种新的文件格式ASICE,应用欧盟标准(而非PDF),一部分的原因就是PDF还不支持它使用的安全签名技术384位ECDSA。还有其它原因是爱沙尼亚有更多安全要求,比如对数字签名的日期作证,还有管理方便的原因,比如一份合同和其多份附件可以一起签,不用做到同一个PDF文件里。不过,大家都觉得电脑文件格式已经太多了。

话既然讲到这里,就得解释一下为什么ECDSA是更为安全的技术。ECDSA发明几十年以来,虽然性能更好,却无人问津,直到比特币出现,使用了256位ECDSA,大家才重视。比特币的发明人中本聪知道数学签名的安全性是按十年计算的。我们现在流行的2048位RSA,20年前是美国禁止出口的军方技术,而当时的民间技术伪造难度只有约百万分之一。现在我们觉得2048位RSA算是安全,二十年后就是不够安全了。比特币完全可以活二十年,中本聪想,所以要使用最新密码学技术。

这里我要特别说明一下,密码学技术从发明到实用一般有30年周期。比如ECC是80年代发明的,到了中本聪发明比特币时候才刚刚开始有人用。最近这几年,密码学技术从发明到实用只有半年到一年的周期,这都是因为区块链,以前密码学家常常不指望着有生之年他们发明的新技术被广泛使用。

 

 

尽管密码学的应用非常缓慢,直到中本聪之后才进入大跃进模式,但是在新加坡这边看也不算差。政府要求建筑合同备案需要数字签名,要不然假签名不等到起官司是不知道有做假的。个人也常有申请数字签名的,虽然大多只用它报车辆管理资料这一件事(相关部门只收数学签名的文件)。

讲到这了我得说一个新闻。去年下半年(2017年),PDF2.0新标准,即ISO
32000-2:2017,终于,终于,在ECDSA发明30年之后,宣布PDF文件兼容ECDSA了!

这样看来,不出十年,就会有人可以用ECDSA签PDF合同了,不过,到时候数学签名的PDF合同也就不流行了,因为都用智能合约签名了。

密码学关注更多的并不是加密解密的各种数学算法,而是在已有数学算法上如何实现各种安全需求。防止消息泄露只是众多安全问题中的冰山一角,而这个问题本身又有很多复杂的变化。

 补充阅读

说到密码学,我们来玩一个跟密码学无关的烧脑小问题:

你想得出来算我输

10个人坐在一起谈天,突然他们想知道他们的平均年薪,但又都不愿意透露自己的工资数额。有没有什么办法让他们能够得出答案,并且不用担心自己的年薪被曝光?

(答案:公号内回复 10 )

项目采访

首发|发币谁都会,你会发“货”么?是时候用Token干点“正经事”了

电商“有病”,区块链“有药”吗?

正逢数字货币乱世,他们想用技术来保护投资人的最基本权益

数字货币交易所何去何从?

用区块链技术实现影响力的商业价值

用区块链技术拉起股权交易市场新的增长曲线

基于智能合约和区块链技术的创新信贷交换平台

专家专栏

既要懂技术又懂产业,2018将是区块链正规军入场元年

硅谷资深投资人讲析区块链项目投资|教程

王玮:区块链通证架构的思辨

软件好,才是真的好:区块链的1976—2017

信仰和投机:币圈没有奇迹

与元道对话三:区块链经济正在进行“动力切换”

百家观点

如何设计区块链项目的通证(token)模型

加密货币和区块链(一):历史的重演

裸照与区块链社群

疯狂的韩国比特币市场:“全民”炒币,人均收益率425%

开年反攻:泡沫中的token和被冷落的联盟链

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注