ML-DSA.Sign_internal() [FIPS204]" as suggested in the document), but there is just no way a vector which never rejects, like ML-DSA-65 F005E473..., is covering any checks.Am Montag, 3. November 2025, 17:19:53 Mitteleuropäische Normalzeit schriebFilippo Valsorda:Hi Filippo,
> I also doubt I am using the vectors incorrectly, because the signature> hashes match (but it's possible I am getting something else wrong!). Were> the ML-DSA-65 and ML-DSA-87 vectors generated incorrectly?
For my implementation, I also did not trigger all rejection code paths. Butthat may be possible depending on your actual implementation.
I have created test vectors that hit all rejection code paths for all types ofML-DSA (pure, pre-hash and external mu). Maybe they are of help to you? Youcan find them at [1], look for the files *_rejection_vectors*.A description on how to get to those vectors is given at [2].
>> Thank you,> FilippoCiaoStephan
Am Montag, 3. November 2025, 18:24:03 Mitteleuropäische Normalzeit schriebFilippo Valsorda:Hi Filippo,> 2025-11-03 17:29 GMT+01:00 Stephan Mueller <smue...@chronox.de>:> > Am Montag, 3. November 2025, 17:19:53 Mitteleuropäische Normalzeit schrieb> > Filippo Valsorda:> >> > Hi Filippo,> >> > > I also doubt I am using the vectors incorrectly, because the signature> > > hashes match (but it's possible I am getting something else wrong!).> > > Were> > > the ML-DSA-65 and ML-DSA-87 vectors generated incorrectly?> >> > For my implementation, I also did not trigger all rejection code paths.> > But> > that may be possible depending on your actual implementation.>> Hi Stephan,>> While the rejection reasons can be implementation dependent, the rejection> count is not. Some of these vectors reject zero times, so I really think> they might be wrong.>> Given this is a pretty official document, I think the vectors should be> fixed if they are broken.I do not want to speak on behalf of NIST, but I was told that in theirimplementation all rejection code paths were hit.
> > I have created test vectors that hit all rejection code paths for all> > types of ML-DSA (pure, pre-hash and external mu). Maybe they are of help> > to you? You can find them at [1], look for the files> > *_rejection_vectors*.> >> > A description on how to get to those vectors is given at [2].>> Great! Do you mind contributing them to https://github.com/C2SP/wycheproof,> or would you mind me doing so?If you know how to roll in the patches there, I think I would like to ask youto do that as I am currently in development to get the Linux secure boot usingleancrypto to be covered with PQC.>> I am trying to collect vectors from various sources so implementers don’t> have to figure out multiple formats.Feel free to take any number of test vectors from the repo.
--You received this message because you are subscribed to the Google Groups "pqc-forum" group.To unsubscribe from this group and stop receiving emails from it, send an email to pqc-forum+...@list.nist.gov.To view this discussion visit https://groups.google.com/a/list.nist.gov/d/msgid/pqc-forum/2b10b787-a710-480b-8c61-1902e05c7f57%40app.fastmail.com.
To unsubscribe from this group and stop receiving emails from it, send an email to pqc-forum+unsubscribe@list.nist.gov.
|
Seed
|
Hash(pk || sk)
|
Msg
|
Hash(sig)
|
|
25C3C1CEED69CFDE12427E577880BD5BED091024C3832E003BC6AA3C68514316
|
530AF0637CA02AC3D3DD6F07C5D7C27A26C5CC8D0C01DFFBA760AB095D3DC0FC
|
7490020E9E5EE8F6CF3E629007D6C292F382CACFA79DEF37780EF7ADD2327B13
|
5B2F8B0FA7CAEA4DE53CD78038C38803368C0242D5F81186C7A6B2E209A85C3B
|
|
6A4EBFB83146029A16695AAC294E829E4507D3693239239398F836E700B47107
|
58087EB28270FA8D11348A64546E26C0282805069E5EAD58C53469FA7F658561
|
2687F0F482714DD717BB9E7A0DFC2CB1CC3B1BE1917558AE05754ED58AC84D95
|
D3BBE2B6CA8F2904D7960944706773DDCA42F69C6AC88B67B659DFA50C5B309C
|
|
30278EF1C04B8285A53561F10AB5F72A7570BB10F2A3C651BC8ECF57EC072399
|
80DCCEE68C067BED04EED100A6D631C559B7284D126DBF9D6F57FAA7C615EF2A
|
977C26EA68A4DABE1EA3F5FD9973A608FCBBA0CD5075B64A37E98E2EDE2EC122
|
7CDC9D0049E3B2EF68AB9AABB48DEE96F0A8BB566E2B0758DB906F476E55CD8F
|
|
D4C7EFCAD10C3DF23917D594683C3B37E1930A75A5D31D0A2AE006251F7FB3FB
|
768C14CF93F1DE8A48A33FC3686747A6FE3C462E7EBA3160BB491AF988931144
|
54468E50EF4B103A79E616D211A7F7E23784637805F8F733C923835AE9F24751
|
9042227CFF28EF4ED08C8AC3A65806BFAD325EF8FA58915C83250EDEBAD6F012
|
|
142232202912E71ABF015967CBC7D4D8BB0D1991C5124F6DE4C3811FED3710C1
|
D185C94F2A62B8A681B3034A0103C47CDF7295CF14A657CC0A9EC600520A33D6
|
1A3FEAA000D767C4358681FE9BC2D0D54B5F52375E94B8BE0ADC960491D87962
|
AC7F01613E77284266DDFC61E2BCA0BAC93E7CBD54D810DFCC2B18F32C07FA2C
|
|
Seed
|
Hash(pk || sk)
|
Msg
|
Hash(sig)
|
|
C7D9B536DC97EEE49317BE80F441164E5AAC6306EDFF5EF15582CA7AF3ECF016
|
3213E5876AD9721E37784D3217B45FC7D37A7F63A709930F0BF068B07B110477
|
CFAF1944CB7ADD2B225B3E3E2880B831B32B18B463524047B8931CDC7F3E564F
|
075AC2BC258A22687F5334093E2E48FD77CE5C283313ED5C0A0B4D8516BD208D
|
|
8BBF2FC9FC12994D9A8DE928BA44AD2F9F516296ACEDE9A264573D1B6F7350A3
|
DBC9B0F97361044ECF0073455EB9A7D7FF792A2CD0A1297BF6ACE1454BCA871F
|
82A554AAA7BBF11F87C52208D42B5E52E468A625C94EC6F5F1A264B77EB83358
|
0463C0CEE12F73B60C7434F960128387DB30953B22971ABFE1D2BB0E93F24086
|
|
0AFABB98CD7D55D7C1014D494C55BD4412272F2A067CA7672C2FE15900F250E8
|
7C6EA7F44053D82955D8C95C300B3578AA5D90EE61CD139A494A919508F9FFA5
|
692FC3466F4CD86B30EAAB6A460E98B8E497F5444C0CFCE6D045769F67CDA7C2
|
72E8F2712157CFDDC7EA0E8498AD8A3897C6CB4ABA47B972211ADA3650DDBC69
|
|
75E920BBA91B644E3260987437E5D551B453E4AD4AFE29A313925861192C6744
|
0A6E545F7EB752B8E5B08C1A464E34C62B55E65A82A331B6450AF92380F6B421
|
A6C9FABF19DBB285F799967FEE57E296075961AD948B4CB434889433BD63A8AE
|
AE7421EACCE78203A141EEF3B0EC15FC458FEFE8A842D50C063C9D0F14724DF8
|