All elements of an interface must be public. After all, an interface is the public view of an object.
This is due to the nature of the interface. An interface, by definition is a specification. A rule in .NET specifications dictates that a class that implements an interface will have to implement all members of that interface. Now if we mark a member private, then the implementing class cannot implement that particular member.