Clefs publiques commençant par "1"

Du coup je viens de m’amuser à créer un TU qui cherche une clé publique ed25519 de moins de 43 caractères, et j’en ai trouvée une en moins d’une seconde !

Le test est sur la branche gen-pubkey-42-len du dépôt dubp-rs-libs

La clé publique en question : 6gy5DmTfGKEF79qru957rPdiDGtGXnHP49ocE7KXNX
Et la clé privée associée : 3ZS3coLVeNDi5MpvGeTR8UvXXbK42Aj5nL7Qjq1B7EobFBghLy8fyWAa7rzhnN2rp8ur4byH74GMWXwqEhnvow2w
Obtenue avec la seed : 9cfdVoFGFEswB66Hp14vfvB21sNqrFtTvbVTDPFaTXVH

Pour générer votre propre clée publique de moins de 43 caractères :

git clone https://git.duniter.org/libs/dubp-rs-libs.git -b gen-pubkey-42-len
cd dubp-rs-libs
cargo test --release -p dup-crypto --lib -- keys::ed25519::tests::tmp_find_key_42 --exact --nocapture

On peut donc confirmer définitivement par l’expérience qu’une clé publique ed25519 valide peu bel et bien faire moins de 43 caractères dans sa représentation base 58 et que tous les programmes qui utilisent une regex en {44,43} ont bien un problème :stuck_out_tongue:

EDIT : J’ai également trouvé une clé publique ed25519 à 41 caractères en laissant chauffer le cpu 15 secondes :

pubkey_b58="uCBY5yuaA83d1sqKZGz8cJLv79b53ftfND3cLupZH"
seed=DvVZM6C2VYnn88AUxjm9H4tWk9coJJPE7y65e8xxgvRd
expanded_base58_secret_key="4qeTGnRLyb2AtkjoZfZYLH9UY7dLk6kNvMHv3bmAfC46MuJJRGSw9GwurvLZ96w1QouWWpM1cRQVCYGhb8ddAe3D"

J’ai essayé avec 40 caractères, mais je n’ai rien après 60 secondes et j’ai pas envie de faire trop chauffer mon cpu donc j’ai arreté là :sweat_smile:

5 Likes