Three broad categories of cryptographic algorithms are commonly used to create PRNGs: Asymmetric ciphers, Hash functions and message authentication codes, and ___________ .