According to RFC791:
Every internet module must be able to forward a datagram of 68 octets without further fragmentation. This is because an internet header may be up to 60 octets, and the minimum fragment is 8 octets.
I'm a bit confused about the "an internet header may be up to 60 octets" part. The minimum size of a IPv4 header is 20 bytes and not 60. So shouldn't the minimum MTU be 20 bytes for the IPv4 header plus the minimum fragment which is 8 bytes? And shouldn't we consider the upper layer header lengths as well?
The RFC also mentions:
Every internet destination must be able to receive a datagram of 576 octets either in one piece or in fragments to be reassembled.
So is the MTU 68 bytes or 576 bytes?