“q|p − 1”中的竖线是什么意思

本文关键字:是什么 意思 | 更新日期: 2023-09-27 18:34:32

在论文《安全的高效无证书加密》中公共云中的数据共享,第2.3节说:

KGC 将安全参数 k 作为输入,生成两个素数 pq,使得 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或其他东西?或者有什么更好的方法?

谢谢!

“q|p − 1”中的竖线是什么意思

在这种情况下,竖线"|"是表示可除性的数学符号(不要与除法运算符"/"混淆(。表达式 a |b(大声读作">A 除以 b"或"a 是 b 的因子"(表示 ab 的除数。因此,q |p − 1 表示 q 必须均匀除以 p − 1 。等价地, p 和 q 必须满足条件 (p − 1(/q = k 对于某个整数 k