首先,下面代码中用到的加密层以及洋葱都是枚举类型,其相关的定义如下: //位于util/onions.hhtypedefenumonion{oDET,oOPE,oAGG,oSWP,oPLAIN,oBESTEFFORT,oASHE,oINVALID,}onion;enumclassSECLEVEL{INVALID,PLAINVAL,OPEFOREIGN,OPE,DETJOIN,DET,SEARCH,HOM,ASHE,RND,}; 有了这些枚举类型表示洋葱和加密层,接下来...
(OPE). OPE允许数据的顺序查找,它保证当x (4)Homomorphic encryption (HOM).HOM类型的加密可以使得一些计算可以直接在加密后的数据上面,例如HOMK(x)·HOMK(y) = HOMK(x + y),这类算法可以保证一些数学运算例如SUM等操作。 (5)Join (JOIN and OPE-JOIN).这种加密可以支持join运算,包括范围join以及等值join(...
虽然可以很方便地对密文进行操作,但这一点有可能会泄露数据库信息。 Order-preserving encryption(OPE)策略。该策略允许数据的顺序查找。对于满足偏序性质的数据x和y,当x<y时满足OPE(x)<OPE(y)。因为该策略会暴露数据顺序关系,所以安全性比DET弱。 Homomorphic encryption(HOM)策略。该策略满足某些数学运算,比如f(x...
In the case of this query, you can see that it would like to compare order with onion 1 (OPE), 4 (PLAIN) or 6 (WAIT). But if you look at it's first child "additive", you can see that it would like to use the HOM onion. Because the HOM onion is not supported by the ...
这主要是为了保证数据的安全性, 同时保证能够支持加密操作,是一种折中的设计. 一开始所有的洋葱都是处于RND层次, 也就是加密等级最高的层次. 在这个层次, 没有DET和OPE的性质, 不能支持相应的操作. 如果某一次用户需要OPE或者DET的行为, 就对这一列数据进行解密, 解密到DET或者OPE的层次, 然后再进行处理. 这...
之前介绍了CryptDB中元数据管理相关的类,以及这些类在MySQL中的存储格式。本文介绍这些元数据是什么时候创建的,在什么时候通过什么方式写入数据库,在什么时候被读取,以及元数据在什么地方被使用。 初始化与元数据读取 SchemaInfo 与 SchemaCache: 上一篇文章介绍了从DatabaseMeta往下的层次化结构,用来表示元数据。实际上...