Is it ok to add a static method to the IEqualityComparer implementation?
The AreEqual() does not do what one would expect.

As you have implemented the method, you say null != null.  
GetHashCode()
You should consider replacing the tenary with a simple if statement. IMHO you would gain in readability.  

public override int GetHashCode(byte[] array)
{
    unchecked
    {
        if (array == null) { return 0; }

        return array.Aggregate(17, (current, element) =&gt; current * 31 + element.GetHashCode());
    }
}  

using a static method here, won't do any harm IMHO.