As with symmetric encryption, there are two approaches to attacking a secur hash function: brute-force attack and ___________ .
a. Collision attack
b. Rainbow table attack
c. Dictionary attack
d. Birthday attack