Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “中的竖条是什么?”;q | p−;1“;什么意思?_C#_Math_Cryptography - Fatal编程技术网

C# “中的竖条是什么?”;q | p−;1“;什么意思?

C# “中的竖条是什么?”;q | p−;1“;什么意思?,c#,math,cryptography,C#,Math,Cryptography,在论文中,第2.3节说: KGC以安全参数k作为输入,生成两个素数p和q,使得q | p− 一, q | p是什么− 我的意思是?是q=1吗− P我想澄清一下,因为我写的代码只生成了两个随机大素数: Random rand = new Random(); BigInteger p = BigInteger.genPseudoPrime(128, 10, rand); Random rand2 = new Random(); BigInteger q = BigInteger.genPseudoP

在论文中,第2.3节说:

KGC以安全参数k作为输入,生成两个素数p和q,使得q | p− 一,

q | p是什么− 我的意思是?是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。

在此上下文中,是表示可除性的数学符号(不要与除法运算符“/”混淆)。表达式a | b(大声读作“a除以b”或“a是b的因子”)表示a是b的因子。因此,q | p− 1意味着q必须均匀地除以p− 1.等价地,p和q必须满足条件(p− 1) /q=k表示某个整数k。

运算符是,我不确定其余的,a∣ b意味着a除以b(即,a是b的一个因子,或者b是a的整数倍)。@MichaelLiu我很确定数学在单行表达式中使用了
/
(当不使用
÷
)我不确定这是公式想要的。请提供一个指向您试图遵循的规范的链接,我认为在规范和您的问题之间有些东西丢失了。@Draco18s:它们是不同的。a/b是指a除以b的运算。a | b陈述了一个事实,即a可以被整除为b。
操作符是,我不确定其余的,a∣ b意味着a除以b(即,a是b的一个因子,或者b是a的整数倍)。@MichaelLiu我很确定数学在单行表达式中使用了
/
(当不使用
÷
)我不确定这是公式想要的。请提供一个指向您试图遵循的规范的链接,我认为在规范和您的问题之间有些东西丢失了。@Draco18s:它们是不同的。a/b是指a除以b的运算。a | b陈述了一个事实,即a可以被b整除。或者用C |术语
(p-1)%q==0
,它是(p-1)%q==0还是q%(p-1)?我想我在这里很困惑。@Hitsugaya:这是第一个。好吧……干杯!我可以知道如何编辑代码吗?可以生成p,生成q,如果p=q,重新生成它,然后如果(p-1)%q/=0,重新生成q或其他什么吗?或者最好的方法是什么?你得问问数论或密码学专家。但我怀疑重复生成两个随机素数直到满足该条件将花费永远的时间。或者用C#术语
(p-1)%q==0
,是(p-1)%q==0还是q%(p-1)?我想我在这里很困惑。@Hitsugaya:这是第一个。好吧……干杯!我可以知道如何编辑代码吗?可以生成p,生成q,如果p=q,重新生成它,然后如果(p-1)%q/=0,重新生成q或其他什么吗?或者最好的方法是什么?你得问问数论或密码学专家。但我怀疑重复生成两个随机素数直到满足条件将花费永远的时间。