这是一个提供安全检索的网站,与密文检索辅助工具构成密文检索系统。密文检索技术是一种允许服务提供商对用户事先加密的文件进行检索的全文检索技术,可应用于云存储环境下,防止包括服务提供商在内的第三方获取用户文件的任何信息,以解决用户检索加密文件的需求。
- 用户管理模块:多用户文件与索引的隔离
- 文件管理模块:上传、更新、删除和下载文件
- 安全检索模块:布尔检索和多关键字排名检索
- 用户输入布尔表达式,用 JS 转化为后缀表达式(检索前需指定用户密钥)
- 使用 HmacSHA256 密钥 K2 和 K3 分别加密表达式,得到关键字序列和陷门序列
- 使用 BASE64 编码关键字序列和陷门序列,并提交到服务器
- 服务器解码关键字序列和陷门序列后,利用它们找到数据库中的文档标号集合密文(若存在),并恢复出相应明文
- 根据后缀表达式计算出检索结果,与数据库对比后,返回给用户
- 用户从检索结果中选择需要下载的文件,并使用密文检索辅助工具解密
- 用户输入查询(检索前需指定用户密钥)
- 使用 HmacSHA256 密钥 K2 和 K3 分别加密表达式,得到关键字序列和陷门序列
- 使用 BASE64 编码关键字序列和陷门序列,并提交到服务器
- 服务器解码关键字序列和陷门序列后,利用它们找到数据库中的文档标号集合密文和相关度集合密文(若存在),并恢复出相应明文
- 根据具体情况,利用 Paillier 加密算法的加法同态性质累加各个相关度密文,最后得到检索结果,与数据库对比后,返回给用户
- 在浏览器端利用 Paillier 密钥对文档相关度密文进行解密,并据此对检索结果进行排序
- 用户从检索结果中选择需要下载的文件,并使用密文检索辅助工具解密
- Java 7
- MySQL
- Spring + iBatis + Velocity
- HTML5 + JS
- Maven
- 开发测试运行建议使用 Maven
- 数据库表的构建参见:secure-search.sql,数据库配置修改参见:db.properties