Cryptocurrency Core Cryptographic Principles 5 — Questions and Answers
Question 1: What is a 'padding oracle attack' and which cipher mode is most vulnerable to it?
- An attack on RSA padding that targets ECB mode
- An attack that exploits error messages about invalid padding in CBC mode to decrypt ciphertext (Correct answer)
- An attack that pads the keystream in CTR mode to extend plaintext length
- An attack that exploits PKCS#7 padding errors in stream ciphers
Correct answer: An attack that exploits error messages about invalid padding in CBC mode to decrypt ciphertext
In a padding oracle attack, an attacker queries a system that reveals whether decrypted padding is valid, allowing CBC-mode ciphertext to be decrypted block-by-block.
Question 2: In the context of digital signatures, what does 'non-repudiation' mean?
- A signature cannot be forged by a third party
- The signer cannot later deny having signed the message because only they hold the private key (Correct answer)
- The message cannot be altered after signing
- The signature is valid across all cryptographic systems
Correct answer: The signer cannot later deny having signed the message because only they hold the private key
Non-repudiation means the signer cannot plausibly deny signing a message, since only the holder of the private key could have produced the valid signature.
Question 3: Which of the following is a post-quantum cryptographic algorithm standardized by NIST in 2024?
- RSA-4096
- CRYSTALS-Kyber (ML-KEM) (Correct answer)
- Diffie-Hellman 4096
- Curve25519
Correct answer: CRYSTALS-Kyber (ML-KEM)
CRYSTALS-Kyber, standardized as ML-KEM by NIST in 2024, is a lattice-based key encapsulation mechanism designed to resist quantum computer attacks.
Question 4: What is 'key stretching' and which algorithms are commonly used for it?
- Expanding a short key to a longer one using XOR; used in AES and DES
- Deliberately slowing down hash computation to make brute-force attacks more expensive; used in bcrypt, scrypt, and Argon2 (Correct answer)
- Converting symmetric keys to asymmetric keys; used in RSA and ECC
- Distributing a key across multiple servers; used in Shamir's Secret Sharing
Correct answer: Deliberately slowing down hash computation to make brute-force attacks more expensive; used in bcrypt, scrypt, and Argon2
Key stretching algorithms like bcrypt, scrypt, and Argon2 apply thousands of hash iterations and memory requirements to make password cracking computationally expensive.
Question 5: What is the primary cryptographic purpose of a Merkle tree in Bitcoin?
- To encrypt transaction data before broadcasting to the network
- To efficiently verify that a specific transaction is included in a block without downloading all transactions (Correct answer)
- To generate new public keys from the wallet's master private key
- To create zero-knowledge proofs for transaction privacy
Correct answer: To efficiently verify that a specific transaction is included in a block without downloading all transactions
Merkle trees allow Simplified Payment Verification (SPV) clients to verify transaction inclusion by checking a logarithmic-length proof path rather than all transactions.
Question 6: What vulnerability is introduced when the same private key is used to sign two different messages with the same nonce in ECDSA?
- The signature becomes invalid and is rejected by the network
- The private key can be algebraically recovered from the two signatures (Correct answer)
- The messages are merged and treated as a double-spend
- The nonce collision causes a hash collision in the signature scheme
Correct answer: The private key can be algebraically recovered from the two signatures
If the same nonce k is reused in two ECDSA signatures, a simple algebraic equation allows anyone to compute the signer's private key — this famously compromised PlayStation 3.
Question 7: What is the purpose of 'key derivation functions' (KDFs) like HKDF in cryptographic protocols?
- To generate public keys from private keys in asymmetric cryptography
- To derive multiple cryptographically strong keys from a single shared secret or master key (Correct answer)
- To convert symmetric keys into digital signatures
- To stretch passwords so they are long enough for AES-256
Correct answer: To derive multiple cryptographically strong keys from a single shared secret or master key
KDFs like HKDF take a shared secret or master key and derive multiple independent, cryptographically strong subkeys for different purposes (encryption, authentication, etc.).
What is a 'padding oracle attack' and which cipher mode is most vulnerable to it?