【发布时间】:2021-01-04 00:43:52
【问题描述】:
我需要找到函数 F 和 F_Verification 使得:
- F(Input1, RandomSeed1) = Output1
- F(Input1, RandomSeed2) = Output2
- F_Verification (Output1, Output2) = TRUE
加密要求:
- 鉴于 Output1 和 Output2,您一定无法找到输入。
- F 可能是一个满射函数,产生相同的输出~1/Billion~ 次。最好对满射的频率有一定的灵活性。
- F_Verification可能会产生误报再次 ~1/Billion~ 次,具有一定的灵活性
额外细节
- 1。所有输入都是唯一的
- F_Verification必须是快速函数
- 理想情况下,F 是一个慢速函数
任何关于起点的建议将不胜感激。 谢谢。
【问题讨论】:
-
@PresidentJamesK.Polk 因为当使用不同的 RandomSeeds 时,您将获得不同的输出。这是节目的挑战。我们能否在不知道输入的情况下验证 Output1 和 Output2 使用相同的 Input 给定不同的 RandomSeeds,只知道加密的输出。
-
一个典型的散列函数不是单射的(意味着多个输入映射到同一个散列值)。您对这些有什么要求?是否必须区分它们,或者你认为
F_Verification是一个过度近似,如果它报告为假,那么输入肯定不相等,但如果它报告为真,输入可能会或可能不会是平等的吗? -
这让我想起了一点zero knowledge proof 的概念。
-
@f9c69e9781fa194211448473495534 我做了一些编辑。如果需要更多规范,请告诉我。
标签: encryption cryptography rsa hash-function