我搜索了但没找到答案。 在Diffie-Hellman密钥交换算法中使用的操作如
2 ^ 8 mod(%)素数
我的查询是使用素数而不是使用任何其他数字的原因是什么? 如果可能的话,请给我一个真实的例子或给我清楚的解释例子。
答案 0 :(得分:1)
Prime数字不会分解成更小的因素,使得破解代码或散列比使用更难,比如使用/ 2或/ 3或/ 4或/ 6进行分解。素数7小于12,但只有因子7,因此攻击向量较少。这是一个严重的过度简化,但希望有所帮助。
这是一个具体的例子:
2 ^ x mod 12
对于任何高于1:4或8的x,它只有2个可能的值。由于这用于以类似的方式生成共享密钥,因此最终会有两种可能性。换句话说,一旦你知道base和mod是2和12(任何收听对话的计算机都可以接收),你就会自动知道共享秘密加密密钥只能是两种可能之一。它只需要两个简单的操作来确定哪个解密消息。现在让我们来看一个主要模式:
2 ^ x mod 13
对于x> 1,这有12种不同的可能性。它还有12种可以生成的可能的共享密钥。因此,与模型12示例相比,它需要比基于该质数模数解密消息多6倍的计算能力。
2 ^ x mod 14有4种可能性。
2 ^ x mod 15有4
在x = 3之后,2 ^ x mod 16完全折叠为1种可能性(这就是为什么选择符合DH要求的基础很重要)
2 ^ x mod 17有......你猜对了,16种可能性!素数不是很酷吗? :)
因此,模数的可行性与加密消息的可破解性有关。