Skip to content
This repository was archived by the owner on Nov 17, 2025. It is now read-only.
This repository was archived by the owner on Nov 17, 2025. It is now read-only.

Decapsulating generates errors / secrets do not match #6

@RafaeloxMC

Description

@RafaeloxMC

Hey there! While developing an app I encountered a problem in the library. I was trying to encrypt a message and check afterwards if the content is the same. While developing this, I found out that when decapsulating the shared secret, I always get a Uint8List with only 0s. I then cloned the library after a while of troubleshooting and found out that the same happens in the test file as well, with the only difference being that I have a non-zero encapsulated shared secret which is not the case in the usage example:

$ dart run ./example/general_example.dart
=== XKyber_crypto Usage Example ===
Public Key (800 bytes):
[253, 56, 158, 81, 20, ..., 0, 0, 0, 0, 0]
Secret Key (1632 bytes):
[109, 162, 99, 109, 162, ..., 0, 0, 0, 0, 0]

Ciphertext (768 bytes):
[110, 85, 105, 0, 0, ..., 0, 0, 0, 0, 0]

Encapsulated Shared Secret (32 bytes):
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Decapsulated Shared Secret (32 bytes):
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Shared secrets match!

Symmetric Encryption Example:
Plaintext: This is a secret message.
Encrypted (Base64): r8h+1YJHP6yWrGUMd6qV5AhjWhGCtNNF8RDbxm0ay39SMvuw1WdyZYjEFwHkLfb+YbKMgIk=
Decrypted: This is a secret message.

I also ran tests in the project which also failed:

$ dart test
Building package executable... (3.0s)
Built test:test.
00:00 +1: test/indcpa_publickey_test.dart: IND-CPA Public Key Tests Generated IND-CPA public key has correct size (288 bytes for Kyber512 IND-CPA) and prints content naturally
--- IND-CPA Public Key ---
Total Length: 288 bytes

Polyvec Compressed Portion (256 bytes):
Zero count: 64, Non-zero count: 192
Zero ratio: 0.25, Non-zero ratio: 0.75

Polyvec Compressed (hex):
08 b2 16 0f 15 45 51 14 45 51 14 45 ae eb ba ae eb ba ae eb 9a d9 54 46 53 78 d5 c7 fb e5 94 da ef 84 79 0a 06 ed 7d 38 61 09 b2 fc 53 92 e7 09 e0 31 60 c3 76 76 27 f9 a3 95 35 14 ba b4 1e 13 a9 72 16 c2 02 b4 2e b4 67 52 31 29 b1 e8 8e e3 38 8e e3 38 aa aa aa aa aa aa aa 8a f0 6b 9f 26 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 08 b2 16 0f 15 45 51 14 45 51 14 45 ae eb ba ae eb ba ae eb 9a 81 22 1a ab 7f 6f 4c 6c 44 dd 3f 5f 7a 16 58 c3 85 ba f8 92 66 44 c7 1b c1 35 4b 8b 89 84 bc c8 73 eb 54 ce 15 96 04 44 a2 cc 12 86 55 a4 6d 4c f9 42 fb 2c 56 4c 62 ba 38 8e e3 38 8e e3 38 aa aa aa aa aa 4a 9c ae aa c9 81 0f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Polyvec Compressed (decimal list):
[8, 178, 22, 15, 21, 69, 81, 20, 69, 81, 20, 69, 174, 235, 186, 174, 235, 186, 174, 235, 154, 217, 84, 70, 83, 120, 213, 199, 251, 229, 148, 218, 239, 132, 121, 10, 6, 237, 125, 56, 97, 9, 178, 252, 83, 146, 231, 9, 224, 49, 96, 195, 118, 118, 39, 249, 163, 149, 53, 20, 186, 180, 30, 19, 169, 114, 22, 194, 2, 180, 46, 180, 103, 82, 49, 41, 177, 232, 142, 227, 56, 142, 227, 56, 170, 170, 170, 170, 170, 170, 170, 138, 240, 107, 159, 38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 178, 22, 15, 21, 69, 81, 20, 69, 81, 20, 69, 174, 235, 186, 174, 235, 186, 174, 235, 154, 129, 34, 26, 171, 127, 111, 76, 108, 68, 221, 63, 95, 122, 22, 88, 195, 133, 186, 248, 146, 102, 68, 199, 27, 193, 53, 75, 139, 137, 132, 188, 200, 115, 235, 84, 206, 21, 150, 4, 68, 162, 204, 18, 134, 85, 164, 109, 76, 249, 66, 251, 44, 86, 76, 98, 186, 56, 142, 227, 56, 142, 227, 56, 170, 170, 170, 170, 170, 74, 156, 174, 170, 201, 129, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

Public Seed (32 bytes, hex):
65 57 84 70 c2 45 79 27 2e 54 e2 d1 89 3c 01 6c 36 db 7d d1 b4 23 8b bb 8e f7 1e 26 14 78 22 60

Full IND-CPA Public Key (Base64):
CLIWDxVFURRFURRFruu6ruu6ruua2VRGU3jVx/vllNrvhHkKBu19OGEJsvxTkucJ4DFgw3Z2J/mjlTUUurQeE6lyFsICtC60Z1IxKbHojuM4juM4qqqqqqqqqorwa58mAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIshYPFUVRFEVRFEWu67qu67qu65qBIhqrf29MbETdP196FljDhbr4kmZExxvBNUuLiYS8yHPrVM4VlgREoswShlWkbUz5QvssVkxiujiO4ziO4ziqqqqqqkqcrqrJgQ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVXhHDCRXknLlTi0Yk8AWw2233RtCOLu473HiYUeCJg
00:00 +2: loading test/ntt_test.dart
Original polynomial:
[0, 1, 2, 3, 4, ..., 251, 252, 253, 254, 255]
00:00 +3: loading test/ntt_test.dart

NTT (in Monty):
[1318, 3032, 453, 2788, 590, ..., 2237, 3148, 84, 1864, 2368]

iNTT (in Monty):
00:00 +3: test/kem_keypair_test.dart: Kyber KEM Key Generation and Encapsulation/Decapsulation Key pair generation produces correct key sizes and matching shared secret

--- Kyber KEM Test Results ---
00:00 +3: loading test/ntt_test.dart
[1600, 3153, 2076, 730, 2130, ..., 3074, 920, 2850, 1993, 2806]

Recovered (downgrading Monty to normal):
[2578, 3112, 2030, 3132, 2891, ..., 3147, 983, 1055, 2741, 1833]

 Is the same? false
00:00 +3: test/kem_keypair_test.dart: Kyber KEM Key Generation and Encapsulation/Decapsulation Key pair generation produces correct key sizes and matching shared secret
Public Key (Base64): ZevA6BVFURRFURRFruu6ruu6ruv6LZ/MHTcC5UXPIqR+ST7vZqQyaGg1OB75FX0rBvX4rUlqW6rlT2gkd2kQoz+uOb1AKrXgC9R89vFei6R1heM4qqqqqqqqqqqqqqqqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl68DoFUVRFEVRFEWu67qu67qu63qLYvw2u0VPpuawnmk8DExi3+iyYphxk0df/WPYRmWvM1rewTJAL/lbHqfFg+zmrNomzpHw64BDHRGm4jiO4ziqqqqqqqqqqqqqaE4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBkSWgJHRPUBe2gPd4wMuRR7qhLTTvJ5lzTzJQ8NA3EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
Secret Key (Base64): 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
Ciphertext (Base64): ktaPnwAAAAAAAAAAAAAAAAAAAABAA9dGR3LVUtGVz58ZeAiiIlZbtIpdAPARmd5HtQPY5VZNEpjQBIb3KKbn5IyJO/ogoVLAeKFfrBwqQ0JROAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACS1o+fAAAAAAAAAAAAAAAAAAAAAMBiWFJe5xQ34KHf+yhsSQdpYQ269bQ3dUgmv49SVURawSlWXxp6bMzXrK4+weRnXbbZn4lrJkj2qMCRAQAAAAAAAAAAAAAAAAAArrsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKiN8DRNR5dcx9FMWxc0QZVkxXV0JQBA9EAnwCtOG5gPIaxqJF3ApPEc3Wpurk9UXoXL6lJaxTwUltWfRzSfB5F47HMobp0D0j4QPfTIZVWFNLscwcEZgqMYhiUQFmBFBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Shared Secret (Encapsulated, Base64): AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
Shared Secret (Decapsulated, Base64): AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
00:00 +4 -1: test/ntt_invntt_test.dart: NTT/iNTT Recovered polynomial is congruent to the original modulo KYBER_Q [E]
  Expected: <0>
    Actual: <580>
  Mismatch at index 0: original 2370, recovered 2950

  package:matcher                 expect
  test/ntt_invntt_test.dart 42:9  main.<fn>.<fn>


To run this test again: ~/.flutter-sdk/flutter/bin/cache/dart-sdk/bin/dart test test/ntt_invntt_test.dart -p vm --plain-name 'NTT/iNTT Recovered polynomial is congruent to the original modulo KYBER_Q'
00:00 +4 -1: test/shake128_test.dart: SHAKE128 Function SHAKE128 generates non-zero output for random input
SHAKE128 output (Base64): AQIDBAUfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
00:00 +5 -2: test/kem_key_distribution_test.dart: Kyber KEM Full Test (IND-CCA2) Key generation, public key distribution, and encapsulation/decapsulation

--- IND-CCA2 Public Key (Base64) ---
00:00 +5 -2: test/random_comparison_test.dart: Random Generation Comparison Test Two independent key generations produce different keys and shared secrets [E]
  Expected: not [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]
    Actual: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ...]
  Two encapsulated shared secrets should differ.

  package:matcher                        expect
  test/random_comparison_test.dart 26:7  main.<fn>.<fn>

00:00 +5 -2: test/kem_key_distribution_test.dart: Kyber KEM Full Test (IND-CCA2) Key generation, public key distribution, and encapsulation/decapsulation
AyGgUBRFURRFURRFruu6ruu6rmszlnJPC4ZreTeZwrg52avQQkUMGp6pRhSbQfnVbu87z8WN5tilDZEYO8EOHtW9CJyIRfK6Beg4juM4juM4juM4qqqqqqqKjxcYXHNsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIaBQFEVRFEVRFEWu67qu67qu6z7V1AxjAIMo5QLj+4QnDAicepLrgozCllHCqF22Ho5XXltkTndc7lIBOS2TrLgLqjlPPQd8JjXQk/yO4ziO4ziqqqqqQAMPPic5e1cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEiR2PclATH49o0e5WqhBP2mRvNY4cL4DXc6qMoPcmrcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=

--- IND-CPA Public Key Portion (within sk) ---
IND-CPA Public Key (Base64):
AyGgUBRFURRFURRFruu6ruu6rmszlnJPC4ZreTeZwrg52avQQkUMGp6pRhSbQfnVbu87z8WN5tilDZEYO8EOHtW9CJyIRfK6Beg4juM4juM4juM4qqqqqqqKjxcYXHNsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIaBQFEVRFEVRFEWu67qu67qu6z7V1AxjAIMo5QLj+4QnDAicepLrgozCllHCqF22Ho5XXltkTndc7lIBOS2TrLgLqjlPPQd8JjXQk/yO4ziO4ziqqqqqQAMPPic5e1cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEiR2PclATH49o0e5WqhBP2mRvNY4cL4DXc6qMoPcmrc

To run this test again: ~/.flutter-sdk/flutter/bin/cache/dart-sdk/bin/dart test test/random_comparison_test.dart -p vm --plain-name 'Random Generation Comparison Test Two independent key generations produce different keys and shared secrets'

--- IND-CPA Polyvec Compressed Portion (256 bytes) ---
Zero count: 65, Non-zero count: 191
Zero ratio: 0.25, Non-zero ratio: 0.75

Polyvec Compressed (hex):
03 21 a0 50 14 ... 00 00 00 00 00

Polyvec Compressed (decimal list):
[3, 33, 160, 80, 20, ..., 0, 0, 0, 0, 0]

Public Seed (32 bytes, hex):
48 91 d8 f7 25 01 31 f8 f6 8d 1e e5 6a a1 04 fd a6 46 f3 58 e1 c2 f8 0d 77 3a a8 ca 0f 72 6a dc

--- Shared Secrets (Base64) ---
Encapsulated: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
Decapsulated: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
00:00 +8 -2: Some tests failed.

Consider enabling the flag chain-stack-traces to receive more detailed exceptions.
For example, 'dart test --chain-stack-traces'.

Is this just a mistake of me using the library wrong or is this an actual bug?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions