Chiffrement et déchiffrement SM4
Chiffrez et déchiffrez du texte avec SM4, la norme nationale chinoise.
Il vous faudra le même pour déchiffrer. Rien de ce que vous saisissez ne quitte cette page.
La valeur par défaut d’OpenSSL est 10 000. Tout nombre convient : plus il est élevé, plus le mot de passe est lent à deviner ; pour déchiffrer, il faut le même nombre.
Le choix habituel avec OpenSSL. Demande un IV ; complète jusqu’à des blocs entiers.
openssl enc -sm4-cbc -pbkdf2 -iter 10000 -a -AOpenSSL demande le mot de passe ; collez-y le texte, ou ajoutez des fichiers -in et -out.
SM4, anciennement SMS4, est le chiffrement par bloc de la norme nationale chinoise (GB/T 32907-2016), avec une clé de 128 bits et des blocs de 16 octets ; il fait aussi partie de la norme ISO/IEC 18033-3 depuis 2021. Les systèmes soumis aux règles chinoises de cryptographie commerciale l’utilisent là où d’autres utiliseraient AES, par exemple dans la banque et l’administration. Chiffrez et déchiffrez ici du texte en SM4, en mode CBC par défaut, ou en ECB, CTR, CFB ou OFB, avec un mot de passe au format openssl enc -pbkdf2 ou votre propre clé et votre IV hexadécimaux de 32 chiffres. SM4 s’exécute dans votre navigateur : le texte et la clé ne quittent jamais votre appareil, et c’est gratuit, sans inscription.
Comment chiffrer et déchiffrer un texte avec SM4
- Choisissez « Chiffrer » ou « Déchiffrer ». Saisissez le texte à chiffrer, ou collez le texte en Base64 ou en hexadécimal à déchiffrer : le format est détecté automatiquement.
- Saisissez un mot de passe (« Générer » en crée un solide), ou passez en mode « Clé et IV (hex) » et saisissez ou générez une clé de 32 chiffres et un IV de 32 chiffres (ECB n’a pas d’IV).
- Choisissez le mode : CBC, sauf si les données ont été produites avec un autre. N’activez « Sans remplissage » que si les données ont été chiffrées sans remplissage PKCS#7.
- Copiez ou téléchargez le résultat. Sous « Équivalent OpenSSL », la page affiche la commande openssl qui fait la même chose, sans votre mot de passe.
Fonctionnalités
- SM4 (GB/T 32907-2016) avec sa clé de 128 bits
- Modes CBC, ECB, CTR, CFB et OFB ; remplissage PKCS#7 ou aucun
- Mode mot de passe au format openssl enc -pbkdf2, lisible par openssl enc -sm4-cbc
- La commande openssl correspondante pour chaque mode
- Mode Clé et IV avec une clé et un IV hexadécimaux de 32 chiffres, saisis ou générés
- Base64 ou hexadécimal en entrée et en sortie ; copiez, téléchargez ou inversez le résultat
Est-ce confidentiel ?
Oui. SM4 s’exécute en WebAssembly dans votre navigateur, et le mot de passe est étiré par Web Crypto, intégré au navigateur ; votre texte, votre mot de passe et votre clé ne sont jamais envoyés ni enregistrés.
Questions fréquentes
SM4 est-il sûr ?
Oui. Aucune attaque pratique contre SM4 complet à 32 tours n’est connue, et sa clé de 128 bits offre à peu près la même sécurité qu’AES-128. Comme pour tous les chiffrements proposés ici, le mot de passe est le point faible : prenez-en un long et aléatoire.
Puis-je le déchiffrer avec OpenSSL ?
Oui, avec OpenSSL 3 : echo 'U2FsdGVkX1…' | openssl enc -d -sm4-cbc -pbkdf2 -iter 10000 -a -A (OpenSSL demande alors le mot de passe). Utilisez -sm4-ecb, -sm4-ctr, -sm4-cfb ou -sm4-ofb pour les autres modes, et -K <32 chiffres hex> -iv <32 chiffres hex> à la place de -pbkdf2 -iter en mode Clé et IV. Si votre openssl refuse sm4-cbc, c’est qu’il a été compilé sans SM4.
SM4-GCM est-il pris en charge ?
Non. SM4 est proposé en CBC, ECB, CTR, CFB et OFB, les modes que propose openssl enc ; aucun d’eux ne détecte les modifications du texte. GCM est disponible sur la page AES.
Peut-il aussi faire du SM2 ou du SM3 ?
Non. SM2 est un algorithme à clé publique et SM3 une fonction de hachage ; cette page ne fait que du chiffrement symétrique SM4. Pour les hash, l’outil « Générateur de hash » propose MD5 et la famille SHA, pas SM3.