一种基于智能合约的全同态加密方法

  • 来源:网络空间安全
  • 关键字:区块链,智能合约,全同态加密
  • 发布时间:2020-09-29 18:39

  摘 要:大数据的发展使得人们越来越注重数据的价值,传统數据交易中数据不加密或采用对称方式加密。这使得数据保护、用户隐私与使用效率不可兼得。文章设计了一种基于DGHV适应智能合约的同态加密方法,使得密文可以直接进行计算,从而保护交易双方的隐私与安全。该合约可以实现同态布尔逻辑值计算、同态数值比较计算、同态长整数计算。之后给出了合同使用场景。经证明,该方法可以有效的保护数据的安全,并且可以高效的交易布尔型或整型数据。

  关键词:区块链;智能合约;全同态加密;DGHV

  中图分类号: TP311 文献标识码:A

  Abstract: The development of big data makes people pay more attention to the value of data. Data in traditional data transactions is not encrypted or in symmetric encryption way. This makes data protection, user privacy, and efficiency incompatible. This paper designs a homomorphic encryption method based on DGHV using on smart contract, so that the cipher text can be directly calculated, thereby protecting the privacy and security of both parties to the transaction. The contract can implement homomorphic Boolean logic value calculation, homomorphic value comparison calculation, and homomorphic long integer calculation. The contract usage scenario is given after this article. It has been proved that this method can effectively protect the security of data, and can efficiently deal with Boolean or integer data.

  Key words: block chain; smart contrast; full homomorphic encryption; DGHV

  1 引言

  当前大数据和云计算的发展使得人们越来越认识到数据的价值。大数据计算可以从数量庞大的低信息密度的数据中提取有效信息,而区块链为数据的交易提供了便利,使得数据的交易可追溯。但是数据交易的过程中会出现新的问题,如数据泄露与个人权限管理等安全问题,或是数据交易中的隐私问题。

  数据泄漏主要分为两种,一是由于区块链本身的特点,全节点中存储着所有的数据,使得任何一个全节点都有可能泄露数据;二是数据传输的过程中存在着泄露的风险。个人权限管理是指如果用户持有一个系统无法知晓的黑名单,如何使得名单中的用户无法使用数据。还有买方不愿公开自己的交易内容等隐私问题。

  这些问题都可以通过同态加密的方式得以解决。全同态加密(又叫隐私同态)的概念,最早由Rivest在1978年提出,他设想了一种加密方式,使得密文可以相互直接计算再解密,得到的结果与明文直接计算相同。之后全球的学者们陆续提出多种方法,但都有缺陷,如不能无限深度的计算、速度缓慢、明文空间有限等。

  用户在使用数据的时候往往会使用数据分析的结果,并不直接使用原始数据。所以采用同态加密的方式,仅仅交易数据的运算结果,而不交易原始数据,既保护了数据所有方的数据资产,从根本上杜绝了数据泄露的可能,也使得用户的隐私得以保护。

  因此本文在DGHV的基础上,设计了一种有同态加密功能的智能合约。智能合约具有保证加密规则安全、预设规则提供效率、便于监管和便于追踪等特点,这些特点可以更好的实现布尔值的同态运算、长整数的比较运算、长整数的加法与乘法运算。本文之后又给出了典型场景,并分析了本加密方法的安全性。

  2 相关工作

  2.1 数据上链加密

  比特币中最早的数据是不加密的,仅仅是通过哈希算法进行签名,所以全节点可以得到任意账户的全部信息。这种设计有利于系统的去中心化、可追溯的性质,但也存在无法保护账户隐私的问题。而关于链上数据的保护,更多的是采用传统加密算法,即哈希算法、对称加密算法和非对称加密算法等。类似CA系统,用非对称加密技术包裹对称密钥,制成证书,用户通过对称密钥访问数据,这类方式在处理大量的数据,或是文字数据时是有效的,但在处理高频使用的数字时就不如同态加密的方式高效。

  而智能合约最初定义为一套以数字形式指定的承诺,包括合约参与方可以在上面执行这些承诺的协议。但是由于计算机的限制,很长时间没有发展。在区块链出现后改善了这一局面,智能合约借助区块链的可信环境与共识基础可以有效的执行其功能。以太坊为智能合约提供了条件,它的EVM虚拟机是一个完全独立的沙盒,使得所有节点完全按照顺序执行合约代码,产生相同的结果以达成共识。虚拟机提供256位的栈,为256位的哈希算法与椭圆曲线算法提供方便[1]。智能合约方便了数据自定义上的使用。

  2.2 同态加密

  同态加密就是在不访问数据的情况下委托对数据的处理,而现有的同态加密的技术特指对密文直接运算结果等价于对明文计算再加密。最早的同态加密算法由Sander和Tschudin在1998年提出,他们提出了整数域上的加法和乘法的同态加密机制;更重要的是,他们给出了同态加密的详细要求,即整数域上的全同态加密等价于同时满足加法全同态和乘法全同态。第一个真正意义上的全同态加密方法是Gentry在2009年基于理想格提出的[2]。Dijk等人在此基础上,提出了更简单、更易理解,但公钥尺寸大的整数同态加密方法(DGHV)[3]。Coron进一步改进了这个方法,使得加密公钥尺寸变小[4]。Zuowei Wu改造了传统的DGHV方法,有限的减少了加密解密时间,但增加了噪音与复杂度[5]。林如磊等人在传统DGHV的基础上作修改,使得原本一次只能加解密1bit的方法增加到2bit[6],李子臣等人又在这个基础上改进为加解密k bit[7],但这些改进都以牺牲原算法的抗噪声能力作为代价。

  3.4 长整数同态计算

  传统DGHV研究1位的整数同态加密,有學者将其改进为2位甚至k位,使其可以一次对多位进行同态计算。该方式在计算性能好,且对噪音不敏感时是一种良好的选择。但在智能合约中,计算资源比较紧张,例如在Solidity中每一步计算都需要花费Gas;另外,多位的DGHV同态加密算法在计算正整数时优势明显,但在计算负数的时候没有优势。1位DGHV则可以通过模拟二进制补码的计算原理进行整数域计算。

  所以的问题又简化为了一位数相乘和移位的问题。根据这一原理,大整数的同态乘法问题也可以得到解决,其过程为:

  (1)计算所有的,其中,和是大整数A和B的位数,是每一位的密文;

  (2)计算所有,其中,计算公式为(表示一个4位整数,每一位分别为):

  (3)计算AB,在的末尾补充j个,相当于左移j位,并将对其进行大整数相加,得到A、B的积C,此时C为密文;

  (4)对C的每一位解密,即计算,其中最后得到即为乘积的明文。

  在大数同态乘法中,第1、2步中的乘法是相互独立的,不会累积误差,而第三步中,进行了次大整数的加法,每次加法最多累积次误差,总计累积次1bit乘法的误差。

  4 合约应用过程

  该合约可以适应的场景,如图3所示。数据持有者首先将自己的数据上传到区块链网络,定制随机数种子,智能合约会将数据进行同态加密。当有人需要使用数据时,他需要向智能合约申请使用数据集X及使用函数F(X),智能合约会拆解F(X),直接计算出结果,返回给数据使用者。数据使用者收到的是密文数据,无法直接使用,此时向数据持有者申请解密。持有者会审查使用者的签名获得其区块链中的账号,审查该账号是否有使用数据的权限,审查结束后验证无误,就会使用私钥解密数据。值得注意的是,数据持有者并不知道X与F(X),也就是不知道数据使用了哪些数据也不知道如何使用的这些数据。这在一定程度上也保护了数据使用者的隐私与权益。不过区块链网络获得了全部信息,仍可以将历史信息记录下来,不会影响到整个网络的可溯源性。

  5 安全性分析

  本文从已知密文攻击和已知明文两种方式分析。假设攻击方知道k个密文,试图获得私钥,或明文。在数位较少的时候,可以直接猜想,有50%的正确率,此时非常不安全。本文需要采用大整数的方式,即增加密文的数量,此时直接猜想的收益会指数型下降。另外每加密一个数据都会重新计算随机数,对于同样的明文,会生成完全不同的密文,也保障了安全性。

  在尝试获取明文失败后,攻击方试图获取私钥,该获取过程为:

  可知,即使攻击方知道密文对应的明文,在随机数不被预测的情况下,c可近似的看作是p的倍数。破解私钥的过程可以看作根据一些列近似p的倍数求p的过程。该过程就是近似最大公约数问题(approximate—GCD problem),而此问题就目前来看是无解的,所以该方法是安全的。

  6 结束语

  本文根据DGHV同态加密方法,设计了随机数生成方法及可进行同态布尔逻辑值计算、同态数值比较计算、同态长整数计算的智能合约。该方法适应智能合约中计算资源相对紧张,要求全网共识的环境。同时,本文证明了方法的同态性与安全性,还提出了一种该方法应用的典型场景。

  本文提出的智能合约还具备以下两个特点:采用独特的随机数生成方式,该方式更适合智能合约场景中使用,并且熵源由数据持有方产生,计算量小,可全网同步;将原本只有一位的DGHV扩展至长整数范围,使其更具备实用价值。

  综上所述,该智能合约和加密方法可以适应保护交易双方的隐私与安全的要求。

  基金项目:

  1. 国家自然基金项目(项目编号:61672074,61672075);

  2. 教育部中国移动基金(项目编号:MCM20180104);

  3. 国家重点研发计划(项目编号:2018YFB1402702)。

  仝秦玮 李洁 王洁 胡心森 胡凯

关注读览天下微信, 100万篇深度好文, 等你来看……