一些不常见的信息安全技术
密码学一些技术已经广泛使用,例如,哈希、对称加密、非对称加密、签名验签。另外有一些算法,有些也技术已经提出很多年了,但是因为没有被广泛使用,所以不为人所知。
同态加密
同态加密(Homomorphic Encryption)是一种特殊的加密方法,允许对密文进行处理得到仍然是加密的结果。即对密文直接进行处理,跟对明文进行处理后再对处理结果加密,得到的结果相同。从抽象代数的角度讲,保持了同态性。
同态加密可以保证实现处理者无法访问到数据自身的信息。
如果定义一个运算符 △
,对加密算法 E
和 解密算法 D
,满足:
E(X△Y)=E(X)△E(Y)
则意味着对于该运算满足同态性。
同态性来自代数领域,一般包括四种类型:加法同态、乘法同态、减法同态和除法同态。同时满足加法同态和乘法同态,则意味着是代数同态,即全同态(Full Homomorphic)。同时满足四种同态性,则被称为算数同态。
对于计算机操作来讲,实现了全同态意味着对于所有处理都可以实现同态性。只能实现部分特定操作的同态性,被称为特定同态(Somewhat Homomorphic)。
实现
仅满足加法同态的算法包括 Paillier 和 Benaloh 算法;
仅满足乘法同态的算法包括 RSA 和 ElGamal 算法。
应用方向
同态加密在云计算和大数据的时代意义十分重大。从安全角度讲,用户还不敢将敏感信息直接放到第三方云上进行处理。如果有了比较实用的同态加密技术,则大家就可以放心地使用各种云服务了,同时各种数据分析过程也不会泄露用户隐私。加密后的数据在第三方服务处理后得到加密后的结果,这个结果只有用户自身可以进行解密,整个过程第三方平台无法获知任何有效的数据信息。
对于区块链技术,同态加密也是很好的互补。使用同态加密技术,运行在区块链上的智能合约可以处理密文,而无法获知真实数据,极大的提高了隐私安全性。
函数加密
与同态加密相关的一个问题是函数加密。
同态加密保护的是数据本身,而函数加密顾名思义保护的是处理函数本身,即让第三方看不到处理过程的前提下,对数据进行处理。
该问题已被证明不存在对多个通用函数的任意多密钥的方案,目前仅能做到对某个特定函数的一个密钥的方案。
零知识证明
零知识证明(Zero Knowledge Proof),是这样的一个过程,证明者在不向验证者提供任何额外信息的前提下,使验证者相信某个论断(Statement)是正确的。
零知识证明要满足三个条件:
完整性(Completeness):真实的证明可以让验证者成功验证;
可靠性(Soundness):虚假的证明无法保证通过验证。但理论上可以存在小概率例外;
零知识(Zero-Knowledge):如果得到证明,无法(或很难)从证明过程中获知除了所证明命题之外的任何信息,分为完美零知识、概率零知识两种。
证明过程包括交互式(Interactive)和非交互式(Non-interactive)两种。
交互式零知识证明相对容易构造,需要通过证明人和验证人之间一系列交互完成。一般为验证人提出一系列问题,证明人如果能都回答正确,则有较大概率确实知道论断。
例如,证明人 Alice 向验证人 Bob 证明两个看起来一样的图片有差异,并且自己能识别这个差异。Bob 将两个图片在 Alice 无法看到的情况下更换或保持顺序,再次让 Alice 识别是否顺序调整。如果 Alice 每次都能正确识别顺序是否变化,则 Bob 会以较大概率认可 Alice 的证明。此过程中,Bob 除了知道 Alice 确实能识别差异这个论断外,自己无法获知或推理出任何额外信息(包括该差异本身),也无法用 Alice 的证明(例如证明过程的录像)去向别人证明。注意这个过程中 Alice 如果提前猜测出 Bob 的更换顺序,则存在作假的可能性。
非交互式零知识证明(NIZK)则复杂的多。实际上,通用的非交互式完美或概率零知识证明(Proof)系统并不存在,但可以设计出计算安全的非交互式零知识论证(Argument)系统,具有广泛的应用价值。
零知识证明如果要能普及,还需要接受实践检验,另外需要考虑减少甚至无需预备阶段计算、提高可扩展性,同时考虑抵御量子计算攻击。
多方计算
其假设的场景为多个参与方都拥有部分数据,在不泄露自己数据的前提下,实现利用多方的数据进行计算。这一问题在多方彼此互不信任而又需要进行某些合作时(如保护隐私的前提下进行数据协同),十分有用,有时候也被称为隐私保护计算(Privacy-preserving Computation)。
根据参与方的个数,可以分为双方计算或多方计算;根据实现方法,可以分为基于噪音(如 differential privacy,差分隐私)、基于秘密共享(Secret Sharing)、基于混淆电路(Garbled Circuit)和基于同态加密(Homomorphic Encryption)。
一般来说,基于噪音的方案容易实现,但使用场景局限,基于密码学技术的方案更通用,但往往需要较大计算成本。
环签名
环签名是一种数字签名方案。也是一种简化的群签名,环签名中只有环成员没有管理者,不需要环成员间的合作。
一个好的环签名必须满足以下的安全性要求:
1)无条件匿名性。攻击者即使非法获取了所有可能签名者的私钥,他能确定出真正的签名者的概率不超过1/n,这里n 为环成员(可能签名者)的个数。
2)不可伪造性。外部攻击者在不知道任何成员私钥的情况下,即使能够从一个产生环签名的随机预言者那里得到任何消息m 的签名,他成功伪造一个合法签名的概率也是可以忽略的。
3)环签名具有良好的特性。可以实现签名者的无条件匿名;签名者可以自由指定自己的匿名范围;构成优美的环形逻辑结构;可以实现群签名的主要功能但无需可信第三方或群管理员等。
环签名是一种特殊的群签名,没有可信中心,没有群的建立过程,对于验证者来说,签名人是完全正确匿名的。环签名提供了一种匿名泄露秘密的巧妙方法。环签名的这种无条件匿名性在对信息需要长期保护的一些特殊环境中非常有用。例如,即使RSA被攻破也必须保护匿名性的场合。
特性:
1)正确性:如果按照正确的签名步骤对消息进行签名,并且在传播过程中签名没被篡改,那么环签名满足签名验证等式。
2)无条件匿名性:攻击者即使非法获取了所有可能签名者的私钥,他能确定出真正的签名者的概率不超过1/N,这里N为所有可能签名者的个数。
3)不可伪造性:外部攻击在不知道任何成员私钥的情况下,即使能从一个产生环签名的随机预言者那里得到任何消息m的签名,他成功伪造一个合法签名的概率也是可以忽略的。
盲签名
盲签名实现了签名者对发送者的消息进行签名,却不能知道签名者消息的具体内容。相当于将文件放入信封,签名者在信封上对文件进行签名,而不知道具体的文件内容。
区块链交易之间的关联性可以被用于推测敏感信息。区块链所有数据都存储在公开的全局账本中,通过分析这些交易之间的关联关系(比如:同一交易的所有输入地址属于同一用户集合、找零地址和输入地址属于同一用户等等),再结合一些背景知识,能够逐步降低区块链地址的匿名性,甚至发现匿名地址对应用户的真实身份。因此,在区块链网络中,为了保护隐私信息,使用了类似的隐私保护机制。
不经意传输
该协议所解决的问题是发送方将信息发送给接收方,但要保护双方的隐私:发送方无法获知接收方最终接收了哪些信息;接收方除了能获知自己所需的信息外,无法获得额外的信息。
例如,银行向征信公司查询某个客户的征信情况以决定是否进行贷款,银行不希望征信公司知道该客户来到该银行申请贷款(属于客户隐私),同时,征信公司不希望银行拿到其它客户的征信数据。
一种简单的实现是发送方发送 N 个公钥给接收方,接收方随机选择一个公钥加密一个对称密钥并将结果返回发送方。发送方分别用 N 个私钥进行解密,其中 1 个结果为对称密钥,N-1 个为随机串,但发送方无法区别。发送方用 N 个解密结果分别加密 1 条消息(共计 N 条)并返回给接收方。接收方只能解密其中 1 条消息。如果双方提前约定好 N 对结果进行盲化的随机串,接收方还可以挑选只接收某个特定信息。
另外一种简单实现是接收方提供 N 个随机串作为公钥,并证明自己只知道其中 K 个串对应的私钥。发送方采用这些随机串加密 N 个信息,然后发给接收方。这样,接收方只能解开其中的 K 条信息。
差分隐私
差分隐私(Differential Privacy)是一种相对实用的隐私保护机制。最初问题是研究如何分享一个数据集而保护数据集中个体的隐私。
主要思想是在数据集中巧妙的添加一些噪音扰动,使得对修改后数据集进行计算不太影响统计结果,但无法将其中任意个体追溯回原始个体信息。例如,将数据集中删掉任意一条记录,查询结果不受影响。
目前可行的方案主要包括添加拉普拉斯噪音(适合于数值型)和指数噪音(适合于非数值型)等。
量子密码
量子计算的基本原理是利用量子比特可以同时处于多个相干叠加态,理论上可以同时用少量量子比特来表达大量的信息,并同时进行处理,大大提高计算速度。量子计算目前在某些特定领域已经展现出超越经典计算的潜力。如基于量子计算的 Shor 算法(1994 年提出),理论上可以实现远超经典计算速度的大数因子分解。2016 年 3 月,人类第一次以可扩展的方式,用 Shor 算法完成对数字 15 的质因数分解。
这意味着目前广泛应用的非对称加密算法,包括基于大整数分解的 RSA、基于椭圆曲线离散对数问题的 ECC 等将来都将很容易被破解。当然,现代密码学体系并不会因为量子计算的出现而崩溃。一方面,量子计算设备离实际可用的通用计算机还有较大距离,密码学家可以探索更安全的密码算法。另一方面,很多安全机制尚未发现能被量子算法攻破,包括基于 Hash 的数字签名、格(Lattice)密码、基于编码的密码,以及随机数生成和密钥派生等。
量子通信则可以提供对密钥进行安全协商的机制,有望实现无条件安全的“一次性密码”。量子通信基于量子纠缠效应,两个发生纠缠的量子可以进行远距离的实时状态同步。攻击者窃听信道时会改变量子状态,通信双方可以发现并选择丢弃此次传输的信息。该性质十分适合进行大量的密钥分发。但要注意,量子通信无法避免协议层面的攻击,如经典的中间人攻击,可以对通信双方发送不同的量子对,实现在不被发现的情况下窃听信息。此外,量子信道易受干扰,对传输环境要求很高。
社会工程学
密码学与安全问题,一直是学术界和工业界都十分关心的重要话题,相关的技术也一直在不断发展和完善。然而,即便存在理论上完美的技术,也不存在完美的系统。无数例子证实,看起来设计十分完善的系统最后被攻破,并非是因为设计上出现了深层次的漏洞。而问题往往出在事后看来十分浅显的一些方面。
例如,系统管理员将登陆密码贴到电脑前;财务人员在电话里泄露用户的个人敏感信息;公司职员随意运行来自不明邮件的附件;不明人员借推销或调查问卷的名义进入办公场所窃取信息……
从应用的角度来看,完善的安全系统除了核心算法外,还需要包括协议、机制、系统、人员等多个方面。任何一个环节出现漏洞都将带来巨大的安全风险。因此,实践中要实现真正高安全可靠的系统是十分困难的。