" q | p - 1"中的垂直条是什么?意思?

时间:2016-02-12 16:46:02

标签: c# math cryptography

在论文An Efficient Certificateless Encryption for Secure Data Sharing in Public Clouds中,第2.3节说:

  

KGC将安全参数 k 作为输入,生成两个素数 p q ,使 q | p - 1。

q | p - 1是什么意思?是 q = 1 - p 吗?我想要求澄清,因为我编写的代码只生成两个随机的大素数:

Random rand = new Random();
BigInteger p = BigInteger.genPseudoPrime(128, 10, rand);
Random rand2 = new Random();
BigInteger q = BigInteger.genPseudoPrime(128, 10, rand2);
do{ q = BigInteger.genPseudoPrime(128, 10, rand2); }
while (p == q);

这可以接受吗?如果没有,我该如何编写代码?

编辑


我可以知道如何编写代码吗?是否可以生成p,生成q,如果p = q,重新生成它,然后如果(p-1)%q / = 0,重新生成q或其他什么?或者更好的方式是什么?

谢谢!

1 个答案:

答案 0 :(得分:4)

在此上下文中,vertical bar “|”是表示可分性的数学符号(不要与除法运算符“/”混淆)。表达式 a | b (大声朗读为&#34; a 划分 b &#34;或&#34; a b 的因子&#34;)表示 a b 的除数。因此, q | p - 1表示 q 必须均匀划分 p - 1.等效地, p q < / em>必须满足某些整数 k 的条件( p - 1)/ q = k 。< / p>