Logo
Overview
[Platypwn] Rejected

[Platypwn] Rejected

Mard Mard
November 18, 2025
2 min read
index

Rejected

Solver
Author
nh1729
Category
Crypto
Points
1000
Solves
1

Time to learn some post-quantum crypto!

The signing procedure of Dilithium uses rejection sampling to generate a signature, and the authors give the following reasoning:

“If z z were directly output at this point, then the signature scheme would be insecure due to the fact that the secret key would be leaked. To avoid the dependency of z z on the secret key, we use rejection sampling. […] The first check is necessary for security, while the second is necessary for both security and correctness.” [1]

Now, it’s your task to prove this.

diff --git a/ref/sign.c b/ref/sign.c
index 7d3f882..39fbad2 100644
--- a/ref/sign.c
+++ b/ref/sign.c
@@ -158,7 +158,7 @@ rej:
   polyvecl_invntt_tomont(&z);
   polyvecl_add(&z, &z, &y);
   polyvecl_reduce(&z);
-  if(polyvecl_chknorm(&z, GAMMA1 - BETA))
+  if(!polyvecl_chknorm(&z, GAMMA1 - BETA))
     goto rej;
 
   /* Check that subtracting cs2 does not change high bits of w and low bits

⚠️ Warning: We provide the complete source code running on the server and a docker-compose.yml file for local testing. Please solve the challenge locally before starting a remote instance. If your solution does not work locally, there is no point in trying it on remote. Not only do you have debug capabilities on a local deployment, generating the signatures only if you need them also spreads out the resource spikes for us, increasing your chances of stable infra ;) So please avoid using remote until you have a verified working solution.

[1]: Shi Bai, Léo Ducas, Eike Kiltz, Tancrède Lepoint, Vadim Lyubashevsky, Peter Schwabe, Gregor Seiler, and Damien Stehlé.CRYSTALS-dilithium, algorithm specifications and supporting documentation, 2021. https://pq-crystals.org/dilithium/data/dilithium-specification-round3-20210208.pdf.

Introduction to Dilithium

This challenge was very similar to Down-Under CTF (DUCTF) where it was one of the challenge that Joseph Surin at 2023. Dilithium±.