APP下载

同态加密算法和区块链在建筑行业的应用

2021-09-23张启超张兴

数字技术与应用 2021年8期
关键词:同态加密算法密文

张启超 张兴

(广州粤建三和软件股份有限公司,广东广州 510640)

0 引言

非对称加密,也称为公开密钥加密,是密码学的一种算法,它在应用时会生成两个密钥,一个是公有密钥,另一个是私有密钥。顾名思义,公钥是公开可见的,能够恣意对外公布;而私钥,顾名思义必须由用户自行严密保存,绝不透过任何途径向任何人提供,也不会泄露给要通迅的另一方,即便他是可信的。

区块链系统中使用的椭圆曲线密码学(ECC),是一种建立公开密钥加密的算法,基于椭圆曲线数学,在1985年由Neal Koblitz和Victor Miller分别独立提出。

ECC的主要优势是在某些情况下它比其余的加密算法使用更小的密钥——比方说RSA加密算法——提供相同的或更高级别的安全。ECC的另一个优势是能够定义群之间的双线性映射,基于Weil对或是Tate对;双线性映射已经在密码学中发现了批量的运用,比如基于身份信息的加密。而其不足是相同长度密钥下加密和解密操作的实现比其他机制花费的时间长,但因为可以使用更短的密钥达到同级的安全程度,所以同样的安全程度下速度会更快。通常160比特的椭圆曲线密钥提供的安全强度与1024比特RSA密钥相当。

通过对非对称加密算法的使用,引申出一个问题,是否能够在数据没有解密的情况下,实现对数据的运算,得出结果后再使用私钥解密呢?既能解决数据隐私问题,有可以实现数据不泄露运算。

1 研究背景

在2008年由中本聪(Satoshi Nakamoto)发表在比特币论坛中的论文《Bitcoin:APeer-to-Peer Electronic Cash System》提出了区块链的概念。文中提及区块链技术是构建比特币数据结构与交易信息加密传输的基础技术,利用区块链技术实现了比特币的挖矿与交易(比特币挖矿原理)。中本聪的主要观点如下:第一,通过第三方来处理信息的模式拥有点对点交易之间缺乏信任的弱点,商家为了提防自己的客户,有时会向客户索取完全不必要的信息,但仍然不能避免一定的欺诈行为;第二,中介机构的存在,增加了交易的成本,限制了交易规模;第三,数字签名能够解决电子货币的身份问题,但是如果还需要第三方参与支持才能防止双重消费,那么系统将失去其价值。

从另一个角度来说,区块链技术在比特币出现之前就是存在的,只是还没有被大众广泛熟悉。可以说,随着云计算、大数据的兴起,为区块链的发展提供了机会。区块链就是一项计算机存储软件技术。

虽然区块链的去中心化和公开透明为分布式协议的设计提供了有力的支持,但是用户信息及交易的安全和隐私问题保护比较欠缺。由于区块链的不可篡改性,所有的交易都是公开,可追溯的,并且存储在公链网络中不可篡改。而地址是定义公链中代币的分配和传送终点所需的唯一信息。这些地址由用户自己本地的钱包匿名产生。这就代表着一旦地址被使用,与其有关的所有交易历史便破坏了地址的保密性,所有人都能够查看任意地址的余额和交易。因为用户必须要透露他们的自己的身份用来接收服务或货物,所以比特币地址就无法保持完全的匿名。由于区块链是无法篡改永久保存的,所以一些遗留的可以被追踪的东西可能很容易被追溯。故而在这些用户数据隐私容易被泄露的场景中,保护交易金额和账户余额在区块链系统涉及金额交易不被泄露尤为重要[1-6]。

同态加密是一种对称加密算法,由Craig Gentry在2009年发明提出[7]。同态加密方案包括密钥生成算法、加密算法、解密算法和额外的评估算法。全同态加密包括两种基本的同态类型,即乘法和加法同态,加密算法分别对乘法和加法具备同态特性。

基于同态加密的特性,使得全同态加密在区块链中有着广泛的应用场景。个人用户或某公司,将自身的隐私数据,进行同态加密后,上传到区块链节点处,然后区块链节点相应的智能合约根据要求,对加密后的数据进行相应的计算,并返回结果给数据原始提供方。数据原始提供方再利用同态解密算法将数据结果进行还原处理,得到最终结果。这个期间,同态加密函数和解密函数,完全由用户自己掌握。否则云平台或服务器,完全可以利用解密函数,进行解密得到原始数据,利用这种方式,区块链上的交易及数据信息可以避免被同一网络中成员获取及泄露的可能,保护了用户隐私,拓宽了区块链的应用场景。

2 同态加密算法分类

(1)如果满足f(X)+f(Y)=f(X+Y),这种加密函数叫做加法同态。

(2)如果满足f(X)×f(Y)=f(X×Y),这种加密函数叫做乘法同态。

(3)如果一个算法能同时满足加法同态和乘法同态。那么,称之为全同态算法。

也就是说,如果同时满足加法和乘法同态,就被称为全同态加密。图1为加法同态加密应用场景流程图。

图1 加法同态加密应用场景流程图Fig.1 Application scenario flow chart of additive homomorphic encryption

有一些应用场景需要用到同态加密计算,如在联盟链中,不同的业务场景需要配套不同的隐私保护策略。对于强隐私的业务,比如金融机构之间的对账,对资产数据进行加密是很有必要的。在hyperledger fabric、bcos中,用户可以调用同态加密库对数据进行加密,共识节点执行交易的时候调用同态加密预编译合约,得到密文计算的结果。

3 同态机密算法常见应用场景

3.1 安全云计算与委托计算

同态技术在该方面的应用可以使得我们在云环境下,充分利用云服务器的计算能力,实现对明文信息的运算,而不会损害数据的私密性。例如医疗机构往往数据处理能力较弱,这时候就需要从第三方来购买数据处理分析服务以达到更好的数据分析结果,通过这样的方式他们就需要委托有较强数据处理能力的云计算中心实现数据处理,但是医院需要保护患者隐私,不能直接将未加密的数据交给第三方。在同态加密技术的支持下,医疗机构就可以将通过自身掌握的秘钥加密后的数据发送至第三方,待第三方处理完成后,使用私钥解密得到数据。整个数据处理过程、数据内容对第三方是完全透明的。

3.2 文件存储与密文检索

用户可以将自己的数据加密后存储在一个不信任的远程服务器上,日后可以向远程服务器查询自己所需要的信息,存储与查询都使用密文数据,服务器将检索到的密文数据发回。用户可以解密得到自己需要的信息,而远程服务器却对存储和检索的信息一无所知。此种方法同样适用于搜索引擎的数据检索。

3.3 安全多方计算协议设计的工具

所谓安全多方计算就是分别持有私有数据x1,x2,…,xn的n个人,在分布式环境中协同计算函数f(x1,x2,…,xn)而不泄露各方的私有数据。以同态技术加密的密文数据计算不仅可以满足安全多方计算协议设计中保护各方隐私的需要,还能避开不经意传输协议而大大提升协议效率。

3.4 电子选举

基于同态加密技术设计的电子选举方案,统计方可以在不知道投票者投票内容的前提下,对投票结果进行统计,既保证了投票者的隐私安全,有能够保证投票结果的公证。

4 同态加密和区块链在建筑行业的应用

一个建筑工程项目从开工到竣工验收,往往会产生大量的数据,例如试验数据,检测报告等,通常这些数据大多保存在系统后台,这种数据保存和管理技术,在数据的查询和使用时存在问题,存在修改和丢失数据的可能;例如合同签订的过程存在真实性不可控的缺点,利用区块链技术可以保证数据的真实性,但是又引入了另外一个问题,由于数据保存在区块链中,是公开的或者局部公开的,这就会导致用户隐私泄露的问题,如果引入同态加密技术,将加密后的密文进行上链,然后智能合约对密文进行相应的计算和处理,这样就可以既保证数据的真实性又可以保证用户的隐私不被泄露[8]。

5 方案设计

在一个区块链网络上,一个客户端对区块链网络发起交互需求时应该先调用同态加密接口,然后将加密后的密文发送到区块链节点,经过智能合约计算然后发送到全网确认,智能合约拥有对密文进行运算的能力,该方法的步骤具体为:同态密钥生成,由一个被区块链网络中所有参与者信任的第三方节点生成一对同态密钥作为全区块链组网的同态密钥,将同态公钥公开,私钥保存在第三方节点中。发送交易的客户端在进行发送交易之前,先将明文数据这里记为Mx1,经过调用全同态加密接口后加密生成密文My1,将加密后的密文my1以交易的形式发送给区块链节点,调用智能合约对密文My1进行计算,计算后得到Mz1然后将My2进行全网共识后记录在区块中,此方法利用加密技术隐藏区块链的整个过程中的敏感信息,有效的保护了用户的隐私,实现了区块链网络的隐私保护功能。

猜你喜欢

同态加密算法密文
一种针对格基后量子密码的能量侧信道分析框架
一种支持动态更新的可排名密文搜索方案
基于模糊数学的通信网络密文信息差错恢复
关于半模同态的分解*
拉回和推出的若干注记
一种基于LWE的同态加密方案
HES:一种更小公钥的同态加密算法
基于小波变换和混沌映射的图像加密算法
云存储中支持词频和用户喜好的密文模糊检索
Hill加密算法的改进