Diffie-Hellman -- Primitive root mod n -- cryptography question.

Posted by somewhat confused on Stack Overflow See other posts from Stack Overflow or by somewhat confused
Published on 2010-05-14T16:46:57Z Indexed on 2010/05/14 16:54 UTC
Read the original article Hit count: 338

Filed under:
|
|
|

In the below snippet, please explain starting with the first "for" loop what is happening and why. Why is 0 added, why is 1 added in the second loop. What is going on in the "if" statement under bigi. Finally explain the modPow method. Thank you in advance for meaningful replies.

public static boolean isPrimitive(BigInteger m, BigInteger n) {

BigInteger bigi, vectorint;
Vector<BigInteger> v = new Vector<BigInteger>(m.intValue());
int i;

for (i=0;i<m.intValue();i++)
    v.add(new BigInteger("0"));

for (i=1;i<m.intValue();i++)
{
    bigi = new BigInteger("" + i);

    if (m.gcd(bigi).intValue() == 1)
        v.setElementAt(new BigInteger("1"), n.modPow(bigi,m).intValue());
}

for (i=0;i<m.intValue();i++)
{
    bigi = new BigInteger("" + i);

    if (m.gcd(bigi).intValue() == 1)
    {
        vectorint = v.elementAt(bigi.intValue());
        if ( vectorint.intValue() == 0)
            i = m.intValue() + 1;
    }
}

if (i == m.intValue() + 2)
    return false;
else
    return true;
}

© Stack Overflow or respective owner

Related posts about diffie-hellman

Related posts about primitive