我需要在我的应用程序中启用OPE加密,我要让用户通过JSP页面创建新表。所有表条目都将使用 OPE(订单保留加密)加密进行加密,我已经决定使用一种称为 ROPE(随机OPE)的算法,其中所有细节都使用加密使用任何加密算法的随机生成密钥,这些加密值将基于这些值的avl树表示给出编码。我正在使用 RSA 来加密这些用户输入的值。我想在添加新列时,在MySql数据库中创建新的加密表时,只要存储值的类型为“int”,并存储这些加密整数的编码,以便在下次用户处理范围查询时进行比较。
目前,我只能在用户输入详细信息时在数据库中创建新的加密表。但我想不出如何实现其余的部分(对加密整数执行AVL树编码并将编码存储在同一个表中)。
如果我无法告诉你整个场景,这是算法...
随机序列保留加密方案是
定义为由可信代理执行的ROPE =(K,Enc,Dec)
P和服务器S,其中K是密钥,Enc是加密和
十二月是解密。 Enc和Dec是互动的
1. K在P:K = RND.key随机生成
2. Enc(V,K)在P和S处运行:
P计算C←Enc(V,K)并将C发送到S.
如果S存在于S中,则S将C的编码E返回到P
否则转到第3步。
3. AVL Tree按如下方式搜索V:
可信代理执行OPE算法以获取编码值
P要求AVL树的根来获得密文C'
P通过解密C'获得V'
P命令AVL树,如果V
重复,直到AVL树在树中找到一个空值为的节点
将C插入AVL树后,它获得C的树编码,然后计算C的E并将其放入数据库表中。对于任何插入操作,密文Cf或V已经在AVL树中,树服务器简单地递增节点的计数器值,该计数器值最初设置为零。否则,服务器将C插入到AVL树中,计数器设置为1并将其存储在表中
在删除过程中,服务器递减节点的计数器值。如果计数器值变为零,则从树中删除节点并将其从表中删除
4. Dec(E,K)在S和P处运行:
S作为查询检索的结果,将E返回到P.
P与S通信以获得相应E的密文C.
P将v←Dec(C,K)返回给客户端
_任何帮助将非常感激,并提前谢谢。 _