查看原文
其他

物联网安全:可计算加密算法

文章来源:计算机与网络安全

云计算开启了一个新的网络时代,对社会和经济等各个领域都产生了深远影响。但云计算在给用户带来便利的同时,也给用户的隐私安全带来了严重的威胁。用户将自己的数据交给云计算平台托管,自身则失去了对数据的直接控制力。云服务提供者可以任意地访问用户的数据,因此,如果云服务提供者本身不可信,则用户的数据隐私就无安全性可言。


如果将数据加密后再提交,则即使密文数据被攻击者窃取,在没有解密密钥的情况下,攻击者也无法得到明文信息,从而可以保证隐私安全。但加密后的数据不能进行有效的操作,这会导致服务提供者无法利用密文数据提供有效服务,因此,用户只能提交明文的数据。


出于隐私安全的考虑,许多用户放弃使用云计算,这也成为阻碍云计算发展和推广的主要因素之一。针对云服务无法对密文数据进行有效操作的问题,需要研究新型密码学来支持数据隐私保护,即通过新型加密或扰动等方法对数据进行变换,以此来隐藏明文中的隐私信息,同时,保证变换后的数据仍能进行特定计算。


目前已有的可计算加密技术分为3类:支持检索的加密技术、支持关系运算的加密技术和支持算术运算的加密技术。图1给出了一种支持加密数据检索、关系运算和算术运算的云计算模型。

图1  支持密文计算的云计算模型


该模型包括数据拥有者(Owner)、数据使用者(User)和服务提供者(Service Provider,SP)3个角色。三者之间进行交互的具体过程如下。


1)Owner用加密算法E对敏感数据di(i∈[1,n],n>1)进行加密,得到E(di),然后将其存储到SP的服务器上。


2)User获得Owner的授权后,对敏感计算参数(para)进行加密,得到E(para),并将E(para)和计算要求(type)提交给SP。


3)SP验证User的权限,然后根据User的计算要求对其权限范围内的E(di)和计算参数E(para)进行计算,得到计算结果E(result),并将E(result)返回给User。


4)User对E(result)进行解密,得到结果的明文result。


在这个过程中,由于Owner和User分别对敏感的外包数据和计算参数进行了加密处理,因此Owner和User的私密数据得到了很好的保护。


在支持密文运算(包括关系运算和算术运算)的新型加密算法中,同态加密算法成为了目前的研究热点。此外,支持密文模糊检索的加密算法也具有广阔的应用前景。


1、支持密文模糊检索的加密算法


在传统的密码学领域,数据的加密与检索之间存在着矛盾。加密的目的是为了隐藏明文信息的真实含义,密文泄露的信息量越少,越难以被攻击者所理解,那么加密的效果就会越好。然而,信息量的隐藏也为数据的检索增加了困难。通常,数据使用者无法直接从密文数据中鉴别出哪些数据是自己所需要的,因而不得不将所有可能包含所需数据的密文进行解密,再对解密后的明文数据进行检索。当密文数据形成规模之后,或者在速度受限的网络环境中获取非用户本地存储的数据时,上述方法将会变得困难,甚至无法实现。为了解决上述密文数据的检索瓶颈问题,学者们相继提出了一些密文检索技术。已提出的密文检索技术可以分为以下几类。


(1)基于密文精确匹配的方法


有的学者首先提出了基于数据异或运算的密文关键字检索算法,随后,博纳(Boneh)等人提出了基于双线性映射的密文关键字检索(Public-key Encryption with Keyword Search,PEKS)算法;奥塔基(Ohtaki)等人使用BloomFilter对关键词的信息进行提取与存储,实现了关键词的布尔检索;还有学者在PEKS算法的基础上提出了EPPKS算法。EPPKS支持对外包数据的加密,并可通过让服务提供者参与一部分解密工作,减轻用户的计算负载。基于密文精确匹配的方法功能较为单一,只能实现对密文关键词的精确匹配,而当密文数据形成规模之后,就无法使用排序技术或索引技术加快密文数据的检索了,因此其无法完全解决云环境中的密文数据处理问题。


(2)基于保序的最小完美Hash函数的方法


贝拉祖圭(Belazzougui)等人通过建立相关分级树和前缀匹配的方法实现了一种基于保序的最小完美Hash函数的方法。这种方法并不能实现对原始数据的隐藏,但可以把原始数据映射到与其值相近的桶中。捷克(Czech)等人通过构造带权随机无环图,实现了保序的最小完美Hash函数,该函数能够有效地隐藏原始数据,但是随机图需要进行多次尝试以进行构造,且构造过程中需要保存映射表,这使该方法的时空效率较差。保序的最小完美Hash函数只适用于小定义域静态数据的加密与检索,当定义域较大或数据动态变化时,这种方法就无法使用了。


(3)基于索引的方法有的学者提出了一种针对数据库中XML数据的可检索加密方案,其方法在使用传统加密


算法对数据进行加密的同时,构建了可用于结构检索的结构索引和可用于数值比较的值索引。


该方法从服务器端检索得到的结果集中包含误检的数据,因此在对传回用户端的结果集进行解密后,需要再进行一次筛选,这会增加传输负载和用户端的计算量。赖特(Hacigümüs)等人根据数据库的范围将数据库进行分桶,并将桶的范围作为索引,在进行检索时,首先确定关键词所在的桶,并对桶中的数据进行解密,再对解密后的数据进行精确检索。这种方法会造成数据库信息的泄露。同时,二次检索也会给用户端造成计算负担。


(4)基于保序加密技术的方法


阿格拉瓦尔(Agrawal)等人利用最小描述原理构造单调的加密函数,实现了一种针对数值型数据的保序加密算法,使用这种算法加密得到的密文数值的概率分布能够满足用户给定的目标分布;博尔蒂列娃(Boldyreva)等人提出一个基于区间划分和超几何概率分布的保序加密算法,通过区间划分的有序性保证密文的保序性;宋敏等人提出了一种基于级数展开的保序加密算法,并通过对密文空间进行划分来隐藏密文的大小关系;斯瓦米纳坦(Swaminathan)等人利用保序加密算法对文档中的关键词词频进行保护,实现了一种基于密文评价值排序的相关文档检索算法。目前已有的保序加密算法大都针对数值型数据,缺乏对字符串数据的支持,时间性能和安全性能也有待进一步提升。


2、支持密文计算的同态加密算法


由于传统的加密算法无法满足各种计算要求,因此,研究一种支持在不解密的情况下直接对密文进行计算的加密算法十分必要。为此,学者们提出了同态加密算法。与传统的加密一样,同态加密也需要一对加解密的算法E和D,它们在明文p上满足D(E(p))=p。此外,若将解密算法D看作一个映射,则D在明文空间P和密文空间C上建立了同态关系,即存在映射D:C→P,可使对于任何属于密文空间C上的密文序列c,c1,…,cn满足关系式:


D(f'(c,c1,…,cn))=f(D(c),D(c1),…,D(cn))


其中,f为明文空间上的运算函数,f′为密文空间上的运算函数,且f与f′是等价的。


若f表示的是加法函数,则称该加密算法为加法同态,同理,也有乘法同态。减法可以转换为加法,除法可以转换为乘法。此外,f也可以代表一个包含多种运算的混合运算函数。只要f所能表示的函数受限(如运算种类或运算次数有限),就称该加密算法为部分同态加密。


例如,考虑一个简单的加密算法,给定密钥key,如果E(p)=key⋅p,D(c)=c/key,则当key=7时,对于明文3和6,它们的明文和密文加法运算如图2所示。

图2  明文和密文加法运算


若f可以表示为任意(计算机可执行的)函数,则称该加密算法为全同态加密。全同态加密意味着可以对密文进行任意的计算,因此其是最理想的同态加密算法。利用同态加密在对密文直接进行计算之后,即可得到密文形式的计算结果,从而可避免明文运算带来的隐私泄露风险。


有的学者基于大数分解问题提出了一种针对数据库加密的秘密同态算法。通过秘密同态算法可以对密文数值进行算术运算,得到的结果经解密之后与之前使用明文进行相应运算得到的值相同,从而实现数据的有效检索,但这种算法不具备良好的安全性。还有学者使用一种被称为理想格(Ideal Lattice)的数学对象实现了一种全同态加密算法。目前全同态加密算法仍处于研究阶段,需要极强的运算能力支持,还无法被实际应用。




版权申明:内容来源网络,版权归原创者所有。除非无法确认,我们都会标明作者及出处,如有侵权烦请告知,我们会立即删除并表示歉意。谢谢!


推荐阅读




*这样理解 HTTP,面试再也不慌了~

*Web安全:代码泄露

*红队中易被攻击的一些重点系统漏洞整理

                                                                                         

                                                                        


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存