Example #1
0
    public GrothVSSHE(
        int n,
        BigInteger p_ENC,
        BigInteger q_ENC,
        BigInteger g_ENC,
        BigInteger h_ENC,
        long ell_e,
        long fieldsize,
        long subgroupsize)
    {
        l_e = ell_e;
        IChannel lej = new ChannelOneWay();

        p = p_ENC;
        q = q_ENC;
        g = g_ENC;
        h = h_ENC;



        // Initialize the commitment scheme and Groth's SKC argument
        com = new PedersenCommitmentScheme(n, fieldsize, subgroupsize);

        com.PublishGroup(lej);

        skc = new GrothSKC(n, lej, ell_e);

        // Compute $2^{\ell_e}$ for the input reduction.
        exp2l_e = new BigInteger(2).Pow(ell_e);
    }
Example #2
0
    public GrothVSSHE(
        int n,
        BigInteger p_ENC,
        BigInteger q_ENC,
        BigInteger k_ENC,
        BigInteger g_ENC,
        BigInteger h_ENC,
        long ell_e,
        long fieldsize,
        long subgroupsize)
    {
        l_e = ell_e;


        p = p_ENC;
        q = q_ENC;
        g = g_ENC;
        h = h_ENC;
        System.Diagnostics.Debug.WriteLine("GrothVSSHE::GrothVSSHE p " + p_ENC.BitLength());
        System.Diagnostics.Debug.WriteLine("GrothVSSHE::GrothVSSHE q " + q_ENC.BitLength());
        System.Diagnostics.Debug.WriteLine("GrothVSSHE::GrothVSSHE k " + k_ENC.BitLength());
        System.Diagnostics.Debug.WriteLine("GrothVSSHE::GrothVSSHE g " + g_ENC.BitLength());
        System.Diagnostics.Debug.WriteLine("GrothVSSHE::GrothVSSHE h " + h_ENC.BitLength());

        // Initialize the commitment scheme and Groth's SKC argument
        com = new PedersenCommitmentScheme(n, p_ENC, q_ENC, k_ENC, h_ENC, fieldsize, subgroupsize);
        System.Diagnostics.Debug.WriteLine("GrothVSSHE::GrothVSSHE h " + h_ENC.BitLength());
        IChannel lej = new ChannelOneWay();//TODO this is ugly as hell!!! constructors should not take streams they should take symbols

        com.PublishGroup(lej);
        System.Diagnostics.Debug.WriteLine("GrothVSSHE::GrothVSSHE h " + h_ENC.BitLength());
        skc = new GrothSKC(n, lej, ell_e, fieldsize, subgroupsize);

        // Compute $2^{\ell_e}$ for the input reduction.
        exp2l_e = new BigInteger(2).Pow((int)ell_e);
        System.Diagnostics.Debug.WriteLine("GrothVSSHE::GrothVSSHE h " + h_ENC.BitLength());
    }
Example #3
0
    public GrothVSSHE(
        int n,
        IInputChannel input_channel,
        long ell_e,
        long fieldsize,
        long subgroupsize)
    {
        l_e = ell_e;

        p = input_channel.Recieve();
        q = input_channel.Recieve();
        g = input_channel.Recieve();
        h = input_channel.Recieve();

        com = new PedersenCommitmentScheme(n, input_channel, fieldsize, subgroupsize);

        IChannel lej = new ChannelOneWay();//TODO this is ugly as hell!!! constructors should not take streams they should take symbols

        com.PublishGroup(lej);
        skc = new GrothSKC(n, lej, ell_e, fieldsize, subgroupsize);

        // Compute $2^{\ell_e}$ for the input reduction.
        exp2l_e = new BigInteger(2).Pow(ell_e);
    }