Skip to content

a1exlism/VSSE_java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VSSE

verifiable searchable symmetric encryption (database

Paper

Towards Efficient Verifiable Conjunctive Keyword Search for Large Encrypted Database

Tech Stack

  • Language: Java 11.X
  • MySQL: 8.0+
  • Package Control manager: maven

Project Structure

jPBC

该库中的Element计算过程会直接更改 Element自身, 所以必须使用duplicate().

/Init

用于项目新开始所需要执行的步骤
jPBC initial link refer this

  • ParamsPropertiesGenerator 用于创建 jPBC 的基础参数,没有对TYPE_A.properties的特殊需求不需要启动, 花费时间比较长(实际上 MBP-15'花了 2Hours+没有跑出来)
  • 提高效率,只用 Bilinear 话,在 Pairing 之前加入此代码:PairingFactory.getInstance().setUsePBCWhenPossible(true); Ref
  • PublicKey Gen: 发现原先代码指数 exp 错误, 已改正 12-25-2019

/db

数据库相关操作.

Efficiency: sql 语句预处理 sql prepared statement

/utils

Clusion

CryptoPrimitives
Printer print message by level

/test

测试文件, 使用 JUnit4, 参考自JUnit4

resources 资源

如何读取参考 resource

params

由 jPBC 自带,暂时只用 typeA 的参数a.properties

  • init/ParamsPropertiesGenerator 做测试;

Problem & Improve

Alg.1 EDBSetup

  1. 大素数源代码p,q和乘积n均为 0;
  2. utils/SerializableElement/readObject 判定存疑🤨, 不清楚他的具体判断;
  3. PRF /Init/MasterKey 可以只写一个 byte 作 random;
  4. 论文中的 ${ Z_n^* }$ 和 jpbc 中的 ${Z_r^*}$ 区别很大, 论文中 ${n = p \times q}$, 如果有 ${Z_r}$ 域可以选择 mod 就好了;
  5. 论文中 secret key ${sk = s}$ 是怎么生成的?;
    ${\mathbb{G}}$ 域生成即可(by Wang.); 使用过程中用了 ${\mathbb{Z_r}}$
  6. ${z \leftarrow F_p(K_Z,g^{\frac{1}{w}} \textnormal{ mod } n \parallel c)}$
    • ${c}$级联;

Alg.2 TokenGen

  1. line-2: ${1/w_1}$${w_1}$ str2byte;
  2. 论文里面的 ${K_T}$ 为笔误;
  3. line-3 暂时设置为 keyword 固定对应的 fileId 数量(count);
    BETTER flexible 的方式可以在 Setup 的过程中 data owner 创建每个 keyword(encrypted)和其对应的文件数量, 到时候直接查询即可减少大量的循环.
  4. line-5 g^exp 需要 pow 还是 powZn(jpbc)?

DB

  1. insertKeyPairSet 与 WangScheme 差别比较大, 均使用了原生函数. ATTENTION need check

Alg.3 etc

TODO

  1. db/DBModule 利用BloomFilter判断 XSet 是否在 XSets;
  2. 若知道匹配次数匹配次数, 则可实现pre-processing;
  3. 重写暂时不用多线程操作.
  4. 启用 MySQL 连接池,降低多次连接资源开销(T2)

Based on links

About

verifiable symmetric searchable encrypt database

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages