Class ShamirSecretSplitter

    • Field Detail

      • l

        protected int l
        Length of the secret
      • random

        protected java.security.SecureRandom random
    • Method Detail

      • getInstance

        public static ShamirSecretSplitter getInstance​(ShamirSecretSplitter.Algorithm algorithm,
                                                       int l,
                                                       java.security.SecureRandom random)
        Create a splitter using constant-time GF(256) arithmetic.
        Parameters:
        algorithm - the reduction polynomial to work over.
        l - length in bytes of the secret to be split.
        random - source of randomness for the polynomial coefficients.
      • split

        public ShamirSplitSecret split​(int m,
                                       int n)
        Description copied from interface: SecretSplitter
        Creates secret shares. The secret will be divided into shares, where the secret has a length of L bytes.
        Specified by:
        split in interface SecretSplitter
        Parameters:
        m - A threshold number of shares
        n - Total number of shares
        Returns:
        the n generated secret shares, each L bytes long, any m of which recover the secret.
      • splitAround

        public ShamirSplitSecret splitAround​(SecretShare s,
                                             int m,
                                             int n)
                                      throws java.io.IOException
        Description copied from interface: SecretSplitter
        Creates secret shares from a given secret share. The secret will be divided into shares, where the secret has a length of L bytes.
        Specified by:
        splitAround in interface SecretSplitter
        m - A threshold number of shares
        n - Total number of shares
        Returns:
        the n generated secret shares, each L bytes long, any m of which recover the secret. The first of them is s.
        Throws:
        java.io.IOException
      • resplit

        public ShamirSplitSecret resplit​(byte[] secret,
                                         int m,
                                         int n)
        Description copied from interface: SecretSplitter
        Creates secret shares from a given secret. The secret will be divided into shares, where the secret has a length of L bytes.
        Specified by:
        resplit in interface SecretSplitter
        m - A threshold number of shares
        n - Total number of shares
        Returns:
        the n generated secret shares, each L bytes long, any m of which recover the secret.