</doc>`
Cryptography is a critical component of modern technology solutions, with applications ranging from basic web applications to complex cyber systems. Cryptography presents opportunities for hackers, who can exploit design flaws and implementation vulnerabilities in cryptographic algorithms. The three distinct layers of cryptography - underlying mathematics, commonly used libraries, and application-specific implementation - each present unique attack vectors. Symmetric encryption relies on a single key for both encryption and decryption, while asymmetric encryption employs a pair of keys: a public key for encryption and a private key for decryption. Cryptographic hashes produce fixed-length outputs from input data, ensuring data integrity. Key management is critical, with vulnerabilities arising from insecure key generation, exchange, storage, rotation, revocation, and expiry. Brute force attacks exploit variations in processing times or power consumption to compromise sensitive information. Side-channel attacks focus on external characteristics like timing, power consumption, electromagnetic emissions, or acoustic signals to infer cryptographic keys or data. Padding oracle attacks target vulnerabilities in block cipher modes, such as CBC, which require padding of plaintext to match the block size of the encryption algorithm. Timing attacks exploit variations in time taken for certain cryptographic operations to reveal information about encryption/decryption keys or sensitive data. Insufficient entropy in random number generation can lead to predictable outputs, compromising cryptographic implementations. Understanding these nuances is crucial for bug bounty researchers aiming to identify and exploit high-impact vulnerabilities in cryptography.