什么是同态加密?为什么它不是主流加密算法?
同态加密算法是一种加密算法,设计用于对加密数据进行数学式运算。在许多应用程序中,这是一个非常有用的特性。
同态加密的介绍
数据可以处与这三种状态之一:静止状态、传输中状态和使用中状态。大多数加密处理前面两种情况。原因是静止或传输中的数据不会主动改变。它被解密时的值和被加密时的值是一样的。
另一方面,使用中状态的数据没有这个特性。几乎所有对密文的数学运算都会改变相应的明文的值。让明文按照“正确方式”改变是很困难的。
加密算法旨在破坏明文和相应密文之间的任何关系。好的加密算法生成的密文与随机数是难以区分的。确定哪个明文与某个密文对应的唯一方法是使用正确的密钥解密。
在加密数据上进行数学运算的能力意味着明文和密文之间需要有一种关系。它需要能将两个密文相加或相乘,并使结果与对两个明文执行相同的操作然后加密的结果是相同的。
与此同时,这种关系需要以一种对观察者隐藏的方式来实现。如果观察数学运算操密文时显示对应的明文信息,那么加密就被破坏了。
实现强加密和对密文进行数学运算并得到正确答案的共同目标是非常困难的。同态加密算法就是实现这一目标的算法。
同态加密的应用
同态加密是一件大事,因为它使对加密数据进行运算成为可能。这意味着数据处理可以外包给第三方,而不需要信任第三方来妥善保护数据。没有正确的解密密钥,原始数据就无法访问。
这种对加密数据进行处理的能力有可能解决所有行业的公司面临的许多主要业务挑战。
供应链安全
大多数公司都信任他们所依赖的第三方并将其作为他们业务的一部分。这些承包商、供应商等经常需要访问公司的敏感和专有数据,以完成他们的工作。
最近的事件表明了供应链不安全的风险,以及网络犯罪分子将如何瞄准供应链中最薄弱的环节来实现他们的目标。这意味着,将敏感数据委托给合作伙伴可能会使组织面临代价昂贵且极具破坏性的数据泄露风险。
同态加密可以帮助公司保护自己免受这些供应链风险。如果所有提供给可信第三方处理的数据都是加密的,那么这些数据的泄露不会对公司构成威胁。这允许组织以最小的风险外包关键数据处理。
合规性
近年来,数据保护监管领域变得越来越复杂。欧盟数据保护条例(GDPR)等新法规为数据主体提供了新的权利,并对企业加了额外的责任和限制。
许多企业都在努力应对的GDPR的一项规定是,欧盟公民的数据必须留在欧盟内部,或在具有同等数据安全标准的国家或公司。2020年的Schrems II决议使欧盟-美国数据合理流动根据GDPR的一种主要方式无效,这给许多拥有欧盟公民的美国公司带来了问题。
像GDPR这样的法律明确声明,它们的要求不适用于加密数据。通过同态加密,公司可能在欧盟以外的系统上存储和处理数据,然后只在符合GDPR要求的服务器上解密数据。
私有数据分析
数据分析是很多公司赚钱的方式。像Facebook这样的企业能够提供“免费”服务,通过收集用户信息,处理这些信息,并将这些信息出售给第三方,用于定向广告。
然而,这种个人数据货币化是有争议的。许多人对公司在没有任何可见性和对收集的数据及其使用方式的控制的情况下建立他们的深度档案感到不满。
同态加密为这个问题提供了一种潜在的解决方案。通过同态加密,像Facebook这样的公司可以在不查看或访问原始数据的情况下进行所需要的数据分析。如果加密密钥是由用户控制的,那么就有可能出现私人的、有针对性的广告。
同态加密的类型
同态加密的目标是创建一种加密算法,允许无限数量的相加或相乘加密数据。在这个过程的最后,如果对相应的明文执行相同的操作,并且对结果进行了加密,那么结果应该是生成的密文。
问题是,设计这样的加密算法真的很困难。因此,有几种不同的同态加密“类型”来描述特定算法与最终目标的接近程度。
部分同态加密
部分同态加密算法允许某一操作被执行无限次。例如,一个特定的算法可能是加法同态的,这意味着将两个密文相加会产生与加密两个明文之和相同的结果。
部分同态加密算法比较容易设计。事实上,一些常见的加密算法碰巧是部分同态的。
例如,RSA算法是乘法同态的。这样做的原因是RSA中的加密是基于求幂的:C = (m^x) (mod n)其中m是消息,x是密钥。
按照指数法则:(a^n)(b^n)=(ab)^n。这意味着用相同密钥加密的两个密文相乘相当于将明文的乘积提高到密钥的幂。因此,RSA是法乘同态的。
某种同态加密
部分同态加密的下一个步骤是某种同态加密。某种同态加密算法允许有限数量的任何操作,而不是无限数量的特定操作。
例如,某种程度的同态加密算法可以支持最多五种加法或乘法的任意组合。但是,任何一种类型的第六次操作都将产生无效的结果。
某种同态加密算法是实现完全同态加密的重要垫脚石。设计一个同时支持加法和乘法的算法(即使是支持一组数量的操作)的算法比创建一个允许无限加法或乘法密文的算法要困难的多。
完全同态加密
完全同态加密是同态加密的圣杯。完全同态加密算法允许无限数量的相加或相乘密文,同时仍然产生有效的结果。现今存在完全同态加密算法。事实上,第一个完全同态加密算法是由Craig Gentry在2009年发明的。从那时起,其他算法被开发出来,改进了这个原始算法。
是什么阻碍了同态加密?
完全同态加密可以解决各种主要的业务挑战。它存在的事实意味着,理论上,每个人都应该使用它。那么,为什么他们没有呢?
如今完全同态加密的问题是效率低下。满足完全同态的要求(允许在不混淆结果的情况下添相加或相乘以无限密文)意味着这些算法速度慢,可能有非常高的存储需求。
例如,IBM在2018年发布了一个用于同态加密的改进版的HELIb C++库。这个版本比前一个版本快25-75倍,比三年前发布的原始版本快200万倍。
问题是,原始版本的数学运算速度比在相应明文上执行相同运算慢约100万亿倍。这意味着新的和改进的版本仍然比纯文本操作的平均速度慢100万倍。
一百万美元经济放缓的因素是相当重要的。使用明文执行一秒钟的计算,使用2018版HElib执行平均需要11.5天。
显然,这种经济放缓对于那些对同态加密感兴趣的企业来说是不可接受的折衷。然而,在3年的时间里,大约1亿倍的速度是相当令人印象惊讶的。虽然同态加密在今天可能不是一个可行的选择,但在不久的将来可能会改变。虽然同态加密现在可能不是一个可行的选择,但在不久的将来可能会发生改变。
来源网站:https://www.keyfactor.com/ 沃通WoTrus原创翻译整理,转载请注明来源
原文网址:https://www.keyfactor.com/blog/what-is-homomorphic-encryption/