/// <summary>
/// Computes the hash of all of the supplied parameters.
/// </summary>
/// <param name="words"></param>
/// <returns></returns>
private static byte[] ComputeHash(params byte[][] words)
{
Sha512Digest hash = new Sha512Digest();
hash.Reset();
foreach (var w in words)
{
hash.BlockUpdate(w, 0, w.Length);
}
byte[] rv = new byte[hash.GetDigestSize()];
hash.DoFinal(rv, 0);
return rv;
}