You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否存在可基于密文校验源文本是否包含子串的加密算法?

符合需求的加密方案说明

你要找的这类加密能力属于**可搜索对称加密(Searchable Symmetric Encryption, SSE)**的子串匹配分支,现有成熟方案可以完全匹配你给出的调用逻辑。

核心实现逻辑

  • 加密阶段encrypt(src, key):
    先提取源文本所有固定长度的n-gram(比如按你支持的最小搜索子串长度设置为3-gram/4-gram),用传入的私钥key对每个n-gram做带密钥的哈希计算,把所有哈希值填入布隆过滤器,再将完整源文本用AES等常规对称加密算法加密后和布隆过滤器绑定为最终密文enc。
  • 查询阶段isthere(enc, substr):
    先把待查询的子串拆成和加密阶段同长度的n-gram,用同一个私钥计算对应哈希值,再到enc内的布隆过滤器中检查所有哈希值是否全部存在,全部存在即可判定源文本包含该子串,全程不需要解密完整源文本,也不需要定位子串位置。

适配场景调整建议

  • 如果对误判零容忍,可以把布隆过滤器替换为加密的后缀数组索引,只是存储开销会比布隆过滤器方案高3~5倍。
  • 如果需要支持无私钥的第三方查询,可以改用公钥可搜索加密的子串扩展方案,但性能会比SSE低一个数量级,你的需求明确要求私钥才能查询,优先选SSE方案即可。

你给出的预期调用逻辑可以直接复用,不需要修改接口:

enc = encrypt(src, key)
isthere(enc, substr)

内容的提问来源于stack exchange,提问作者horart

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 06:45:08