本发明专利技术提供一种基于向量和矩阵运算的支持计算的加密方法,包括以下步骤:1:将原始数据转换为向量,并通过加密矩阵进行加密,从而得到一个加密的外包向量;2:将计算参数转换为向量,并通过加密矩阵进行加密,从而得到一个加密的计算参数向量;3:对加密的外包向量和计算参数向量进行标量积、加、减、乘运算,从而得到加密的计算结果;4:用户通过加密矩阵与加密的计算结果的运算,得到计算结果的明文。本发明专利技术无论在数据加密或加密数据的运算中始终是一种具有IND-COA安全性的加密方案,起到了保护用户隐私的作用;同时,在加密字符串的模糊检索中表现出了良好的运行性能,在服务提供者处的计算性能良好,并具有适中的存储和通信负载。
【技术实现步骤摘要】
本专利技术涉及计算机
,特别涉及一种支持计算的数据加密方法。
技术介绍
云计算以服务的形式向用户提供按需的、可扩展的、满足服务质量要求的计算和存储资源,而用户只需要通过上网设备就能随时随地地使用这些资源。面对云计算如此强大的优势,个人和企业却很犹豫是否要从个人电脑或企业的数据中心迁移到云环境中,其主要原因是人们担心失去了对数据和计算的控制力。而目前发生的多起云服务商泄露和丢失用户数据的事件证实了人们的担心在2009年,Google的Does由于软件缺陷使得用户数据遭到无授权用户的访问,发生了数据泄露;在2008年,云存储服务提供商MediaMax由于系统管理员的失误丢失了 45%的用户数据从而倒闭;在2007年,攻击者使用钓鱼攻击的方法,成功地盗取了云服务提供商Salesforce. com存储的用户Email和地址信息。因此, 为了持续和深入地发展,云计算必须解决隐私安全问题。加密是一种常用的保护用户敏感数据的方法。支持计算的加密技术是一种加密方法,它通过加密保证数据安全,同时加密后的数据能够支持某些计算。目前已有的支持计算的加密技术可分为两类支持检索的加密技术和支持运算的加密技术。支持检索的加密技术Liu提出了一种基于对称加密的密文检索方法;Wang等人提出了基于非对称加密的密文检索方法;Ohtaki等人提出了基于Bloom Filter的密文检索方法。但这些方法只支持精确的字符串匹配,即两字符串是否相等。然而,在许多实际的情况下,错别字和格式不一致是不可避免的,因此,Jin等人设计了一个支持对加密关键字进行模糊检索的方案,它使用编辑距离来量化关键字的相似度,并为每个关键字附加一个基于通配符的模糊关键字组。该方法的不足是它不能对满足检索条件的关键字进行相似度排序,而且会产生较大的计算、存储和通信负载。对于一个长度为Ien的关键字w,为了使它能处理d位的错别字和格式不一致,需要进行O(Iend)次哈希运算和产生O(IenSieO)位的存储和通信负载。Cong等人提出一个分级的关键字检索方案。该方案基于保序的加密技术0PSE,能够根据某一指标对检索的关键字分级,并按用户的要求返回前N个符合要求的结果。该方案要求数据拥有者在外包文件前对每个文件进行全文扫描,计算出每个关键字在该文件中的出现频率,这对于数据拥有者来说是一件非常麻烦的事情。HacigUmUs等人提出了基于同态加密技术的密文聚集查询方案,但是它要求数据拥有者自己建立一个加密的索引表。支持运算的加密方法=Rakesh等人提出一个针对数值数据的保序的对称加密算法0PSE,它支持对加密数据进行各种比较操作。但是OPSE是一种确定性的加密方案,这使得它不具有语义安全性,而且只能用于数值数据,不适合于字符串的比较。Wong等人设计了一个基于向量标量积的非对称加密方案,该方案支持对加密数据库进行KNN(k-nearest neighbor)计算。除此之外,目前已有一些同态加密算法,例如unpadded RSA, ElGamal, Goldwasser-Micali,Benaloh和I^aillier等,但它们只支持加法同态和乘法同态运算中的一种。Gentry首次设计出了一种基于理想格的全同态加密方案,该方案能同时支持加法和乘法同态。之后,VanDijk等人对Gentry的工作进行了改进。但是目前已有的全同态方案都太复杂且计算量太大,还不适合应用到云计算的环境中。根据以上分析,我们发现(i)目前还没有一种加密方案能够同时支持字符串的检索和数值数据(包括整数和浮点数)的算术运算;(ii)对加密字符串的模糊检索是一种非常有用的技术,但目前还没有一个实际可行的方案;(iii)加密数值数据的算术运算对于密码学领域一直是一个挑战;(iv)目前已有的一些方案往往要求数据拥有者在数据外包前做大量的准备工作,这会使用户的使用体验大打折扣。
技术实现思路
本专利技术的目的是提供,该方法基于向量和矩阵运算,支持对加密字符串的模糊检索和对加密数值数据的基本算术运算。本专利技术的目的是通过以下技术方案来实现的,,包括以下步骤步骤一将原始数据转换为向量,并通过加密矩阵进行加密,从而得到一个加密的外包向量;步骤二 将计算参数转换为向量,并通过加密矩阵进行加密,从而得到一个加密的计算参数向量;步骤三对加密的外包向量和计算参数向量进行标量积、加、减、乘等运算,从而得到加密的计算结果;步骤四用户通过加密矩阵与加密的计算结果的运算,得到计算结果的明文。步骤一具体包括一、字符串(1)字符串转换为向量数据拥有者首先生成字符串np的带通配符的子串,其基本步骤为按照空格将字符串分割,再根据各个子串在字符串中的位置加上通配符;然后,数据拥有者对字符串np 和其带通配符的子串执行以下操作计算元素组ce由η个元素组成,算法允许的字符串最大长度为len,np的长度为len’,首先为np连接len-len’个零从而形成np’,然后将np’分为(n-1)段;对于第i段,将其中每个字符转换为对应的ASCII码减去23,从而确保了每一个字符都用一个两位数来表示;接着将每个字符的对应两位数连接起来,中间用数字“0” 间隔,形成数字Vi,再计算Vi’ = Vi*10m,其中m表示后面的(n-1-i)段的长度和;通过以上运算,数据拥有者将字符串np转换为一个(n-1)维的向量P= (V1' ,V2' ,...,v' ^1);(2)外包字符串的加密密钥由一个随机数组W= Iw1, W2, ... , wk_3, wk_2} (k ^ 4, Wi e R),和一个 d*d 可逆矩阵M组成;假设外包字符串nPi对应的向量为Pi ;数据拥有者创建一个d维的向量/^(^’"(^丨丨约丨丨 巧’巧’“/^’^^’“^二 /…矿,其中仏“,!^-仏丨IpJ是Pi的标量积,r」是随机数且rj e R;也就是说,计算元素组ce = {Pi,-0.5*| |Pi| I2},随机元素组为 =( 巧,…,/^, Wp2,-¢5 -1 G 5iiWyXl);然后数据拥有者加密向量Pi,得到Pi = M*Pi’,并将Pi存储到服务提供者处;二、数值数据对数值数据的操作分为四种基本算术运算加法、减法、乘法和除法;为了实现加 /减法和乘/除法,计算元素组cs由加法因子addF和乘法因子mulF组成,其中addF由 da(da e Z+且da彡1)个元素组成,mulF由dm(dm e Z+且dm彡2)个元素组成;也就是说, ce = (addF, mulF)且 η = da+dm ;转换一个数值数据np为d维向量的过程可以分为以下四步首先,选择(da-l)个随机实数权利要求1.,其特征在于,包括以下步骤 步骤一将原始数据转换为向量,并通过加密矩阵进行加密,从而得到一个加密的外包向量;步骤二 将计算参数转换为向量,并通过加密矩阵进行加密,从而得到一个加密的计算参数向量;步骤三对加密的外包向量和计算参数向量进行标量积、加、减、乘运算,从而得到加密的计算结果;步骤四用户通过加密矩阵与加密的计算结果的运算,得到计算结果的明文。2.如权利要求1所述的基于向量和矩阵运算的支持计算的加密方法,其特征在于,步骤一具体包括一、字符串(1)字符串转换为向量数据拥有者本文档来自技高网...
【技术保护点】
1.一种基于向量和矩阵运算的支持计算的加密方法,其特征在于,包括以下步骤:步骤一:将原始数据转换为向量,并通过加密矩阵进行加密,从而得到一个加密的外包向量;步骤二:将计算参数转换为向量,并通过加密矩阵进行加密,从而得到一个加密的计算参数向量;步骤三:对加密的外包向量和计算参数向量进行标量积、加、减、乘运算,从而得到加密的计算结果;步骤四:用户通过加密矩阵与加密的计算结果的运算,得到计算结果的明文。
【技术特征摘要】
【专利技术属性】
技术研发人员:桂小林,黄汝维,余思,庄威,刘阳,林建材,
申请(专利权)人:西安交通大学,
类型:发明
国别省市:87
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。