I have been studying the CRYSTALS-KYBER cryptosystem and came across the description of a Decryption Failure Attack in the paper. The specific part (Section 5.5 https://pq-crystals.org/kyber/data/kyber-specification-round3-20210804.pdf) that caught my attention is:
An attacker searches through many different values of m (see line 1 of Alg. 8) until he finds one that produces random coins r (line 3 of Alg. 8) that lead to a decapsulation failure, which will give the attacker information about the secret key.
Here are my questions:
How does the adversary detect a decapsulation failure in a real-time attack? According to the algorithm, in both cases—whether a decapsulation failure occurs or not—the decapsulating party receives a 0/1 bit string. Without explicitly verifying the result with the encapsulating party, how would an adversary distinguish between a decryption failure and success?
How does a detected decapsulation failure leak information about the secret key? Even if the adversary identifies a specific message $$ that causes a decapsulation failure, how does this failure translate into revealing partial or full information about the secret key?
Thank you for consideration and any help.
