Skip to content

Secure Foldenor Patches Port#174

Merged
MrHua269 merged 1 commit intoLuminolMC:ver/1.21.11from
libalpm64:ver/1.21.11
Mar 3, 2026
Merged

Secure Foldenor Patches Port#174
MrHua269 merged 1 commit intoLuminolMC:ver/1.21.11from
libalpm64:ver/1.21.11

Conversation

@libalpm64
Copy link
Contributor

Currently, Luminol only runs cryptographic operations on structures. This is not sufficient and can be reversed with elevation mapping with a sample size of ~ 2000 data points. The noise function is reversible. This patch utilizes Blake3 as a PRF, which is IUCPA. Since the plaintext is the coordinate/counter/salt, the key is the 1024-bit world seed, making it unfeasible, with no reasonable doubt, to reverse the seed following this implementation.

To make the seed irreversible:

  • Derived Blake3 as the RPF, which is IND-CPA. We pass is a keyed MAC Mode with domain separation. We then hash the user-provided SALT (auto-generated using Javas Secure RNG). This only occurs once and derives its entropy from a secure source which prevents replay attacks.
  • We then do Seed Expansion with our generated salt by using Blake3 KDF, we take the 64-bit levelseed and a 64-bit segment index. We hash these using the saltKey, and we repeat 16 more times to produce a 1024-bit Secure World Seed.
  • We then need a random seed for our features. We create a message so that the seed doesn't produce identical patterns. By packing the coordinates, dimension, Salt, and a counter, and combining it with our Mixing in a 1024-bit seed, we can be certain they cannot reverse any possible generation patterns.
  • We then use Blake3 as an RPF to derive from the 1024-bit seed + Packed Message, which is impossible to statistically reverse as it's mathematically unrelated to any feature, providing complete safety to seed reversing attacks.

Additionally, we will set these as toggles and not make it the default option. If one so pleases to enable these these will get full fledged cryptographic security unlike the previous version. V1 (Default): Insecure, Original Reversible in minutes with a ASIC/GPU cluster and smart pruning. V2: (Recommended): Irreversible using the steps above contains a SALT In the config file.

Currently, Luminol only runs cryptographic operations on structures. This is not sufficient and can be reversed with elevation mapping with a sample size of ~ 2000 data points. The noise function is reversible. This patch utilizes Blake3 as a PRF, which is IUCPA. Since the plaintext is the coordinate/counter/salt, the key is the 1024-bit world seed, making it unfeasible, with no reasonable doubt, to reverse the seed following this implementation.

To make the seed irreversible:
- Derived Blake3 as the RPF, which is IND-CPA. We pass is a keyed MAC Mode with domain separation. We then hash the user-provided SALT (auto-generated using Javas Secure RNG). This only occurs once and derives its entropy from a secure source which prevents replay attacks.
- We then do Seed Expansion with our generated salt by using Blake3 KDF, we take the 64-bit levelseed and a 64-bit segment index. We hash these using the saltKey, and we repeat 16 more times to produce a 1024-bit Secure World Seed.
- We then need a random seed for our features. We create a message so that the seed doesn't produce identical patterns. By packing the coordinates, dimension, Salt, and a counter, and combining it with our Mixing in a 1024-bit seed, we can be certain they cannot reverse any possible generation patterns.
- We then use Blake3 as an RPF to derive from the 1024-bit seed + Packed Message, which is impossible to statistically reverse as it's mathematically unrelated to any feature, providing complete safety to seed reversing attacks.

Additionally, we will set these as toggles and not make it the default option. If one so pleases to enable these these will get full fledged cryptographic security unlike the previous version.
V1 (Default): Insecure, Original Reversible in minutes with a ASIC/GPU cluster and smart pruning.
V2: (Recommended): Irreversible using the steps above contains a SALT In the config file.
@Suisuroru Suisuroru added the Upstream Bug caused by upstream label Mar 3, 2026
@Suisuroru
Copy link
Member

I think this should PR to Leaf where we get it.

When the patch updated by leaf, we will update it.

Or else, if @MrHua269 (main developer of Luminol Object) approval it, we will merge it immediately.

this patch's upstream: https://github.com/Winds-Studio/Leaf

@libalpm64
Copy link
Contributor Author

libalpm64 commented Mar 3, 2026

I think this should PR to Leaf where we get it.

When the patch updated by leaf, we will update it.

Or else, if @MrHua269 (main developer of Luminol Object) approval it, we will merge it immediately.

this patch's upstream: https://github.com/Winds-Studio/Leaf

Defer to @MrHua269 to review changes.

@Suisuroru
Copy link
Member

I think this should PR to Leaf where we get it.

When the patch updated by leaf, we will update it.

Or else, if @MrHua269 (main developer of Luminol Object) approval it, we will merge it immediately.

this patch's upstream: https://github.com/Winds-Studio/Leaf

Defer to @MrHua269 to review changes.

Leaf team has already intervened. I have already asked them, and they are already discussing it.

@MrHua269 MrHua269 merged commit 77856f0 into LuminolMC:ver/1.21.11 Mar 3, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Upstream Bug caused by upstream

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants