我试图理解是否可以使用DLP来构建具有以下属性的键控单向函数:
函数本身可以是$h_a=M^a$ mod $p$,其中$p$是256位素数.但是,我不确定在质数很小的情况下,这样做有多安全。具体而言,我想了解以下几点:
我需要处理的消息相对较小(256 - 512位),但如果这会增加安全性,则可以进行填充。
发布于 2018-04-07 08:02:08
一个能计算离散日志模块$p$的对手,如果给出甲骨文对未知$a$的访问权限,就可以通过对该甲骨文的单次查询计算$\log_2 H_a(2) \equiv \log_2 2^a \ query \pmod $。
在此基础上,给定未知$h = H_a(M)$,它们可以计算$$h^{a^1}} \equiv (M^a)^{a^{{-1}} \equiv ^{a a^{-1} \equiv \pmod,$$其中$a^{-1}$是$a$模$\phi( p ) =p- 1$的逆。
如果$p$是256位,则对手现在可以计算离散日志模块$p$。您需要$p \gg 1024$才能安全,还有其他条件。
更详细地了解为什么需要这些属性,以及更广泛地尝试实现什么,可能会有所帮助。
https://crypto.stackexchange.com/questions/58169
复制相似问题