I don't see it mentioned, but I thought I'd chime in. Even if your crypto algorithm is perfect and works infinitely fast, there's still the problem of implementation. And that's usually not perfect and often leads to practical gaps that can be exploited. During WWII, the German Enigma machines were broken in part due to design errors (like letters wouldn't be encoded to themselves) and user error (like sending messages that start/end the same way). Even if crypto is some day perfect in a sense, it may still be used in imperfect ways that allow one to break it or circumvent it entirely.