What breaks what: a map of cryptographic primitives and the assumptions they rest on