“q|p − 1”中的竖线是什么意思
本文关键字:是什么 意思 | 更新日期: 2023-09-27 18:34:32
在论文《安全的高效无证书加密》中公共云中的数据共享,第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或其他东西?或者有什么更好的方法?
谢谢!
在这种情况下,竖线"|"是表示可除性的数学符号(不要与除法运算符"/"混淆(。表达式 a |b(大声读作">A 除以 b"或"a 是 b 的因子"(表示 a 是 b 的除数。因此,q |p − 1 表示 q 必须均匀除以 p − 1 。等价地, p 和 q 必须满足条件 (p − 1(/q = k 对于某个整数 k。