在纸An Efficient Certificateless Encryption for Secure Data Sharing in Public Clouds,2.3节表示:“q | p - 1”中的垂直条是什么意思?
KGC作为输入安全参数ķ以产生两个素数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或其他东西?或者更好的方法是什么?
谢谢!
'|'运算符是[按位或](https://en.wikipedia.org/wiki/Bitwise_operation#OR),我不确定其余部分。 – Draco18s
[数学](https://en.wikipedia.org/wiki/Vertical_bar#Mathematics),* a * | * b *表示* a * divides * b *(即* a *是因子* b *或* b *是* a *的整数倍)。 –
@MichaelLiu我很确定数学在单行表达式中使用了'/'(当不使用'÷'时) – Draco18s