Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
RSA — Bibliothèque Rust pure pour la cryptographie à clé publique RSA : génération de clés, chiffrement/déchiffrement PKCS#1 v1.5 et OAEP, signatures PSS, ainsi que l'import/export de clés. | Kitploit
Outils/GitHubGitHub/rustcrypto/rsa
Outils de Chiffrement/DéchiffrementCryptographieAuthentificationTop en Cryptographie n°19Top en Outils de Chiffrement/Déchiffrement n°20
GitHubrustcrypto/rsa

RSA

Bibliothèque Rust pure pour la cryptographie à clé publique RSA : génération de clés, chiffrement/déchiffrement PKCS#1 v1.5 et OAEP, signatures PSS, ainsi que l'import/export de clés.

Voir le dépôt
67219488il y a 4 joursVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

RustCrypto : RSA

crates.io Documentation Build Status Dependency Status Apache2/MIT licensed MSRV Project Chat

Une implémentation RSA portable en pur Rust, avec des schémas de chiffrement et de signature spécifiés dans PKCS#1 v2.2 (RFC8017).

SchémaObjectifSpécification
RSAES-OAEPChiffrementRFC8017 §7.1
RSAES-PKCS1-v1_5ChiffrementRFC8017 §7.2
RSASSA-PSSSignaturesRFC8017 §8.1
RSASSA-PKCS1-v1_5SignaturesRFC8017 §8.2

Le chiffrement PKCS#1 v1.5 est fourni uniquement pour des raisons de compatibilité avec les applications héritées. Préférez OAEP et PSS pour les nouvelles applications de chiffrement.

Consultez l'avertissement de sécurité ci-dessous pour connaître les vulnérabilités d'implémentation connues.

Exemple

use rsa::{Oaep, RsaPrivateKey, RsaPublicKey};
use sha2::Sha256;

let mut rng = rand::rng();
let bits = 2048;
let priv_key = RsaPrivateKey::new(&mut rng, bits).expect("failed to generate a key");
let pub_key = RsaPublicKey::from(&priv_key);

// Encrypt
let data = b"hello world";
let enc_data = pub_key.encrypt(&mut rng, Oaep::<Sha256>::new(), &data[..]).expect("failed to encrypt");
assert_ne!(&data[..], &enc_data[..]);

// Decrypt
let dec_data = priv_key.decrypt_blinded(&mut rng, Oaep::<Sha256>::new(), &enc_data).expect("failed to decrypt");
assert_eq!(&data[..], &dec_data[..]);

Remarque : Si vous rencontrez un temps de génération de clés anormalement long lors de l'utilisation de RsaPrivateKey::new, vous pouvez essayer de compiler en mode release ou d'ajouter ce qui suit à votre Cargo.toml. La génération de clés est beaucoup plus rapide lors de la compilation avec des niveaux d'optimisation plus élevés, mais cela augmentera un peu le temps de compilation.

[profile.debug]
opt-level = 3

État

Actuellement en Phase 1 (v) 🚧

Il y aura trois phases avant que 1.0 🚢 puisse être publiée.

  1. 🚧 Le faire fonctionner
    • Génération de nombres premiers ✅
    • Génération de clés ✅
    • PKCS1v1.5 : Chiffrement & Déchiffrement ✅
    • PKCS1v1.5 : Signature & Vérification ✅
    • PKCS1v1.5 (clé de session) : Chiffrement & Déchiffrement
    • OAEP : Chiffrement & Déchiffrement
    • PSS : Signature & Vérification
    • Import & export de clés
  2. 🚀 Le rendre rapide
    • Benchmarks ✅
    • comparer aux autres implémentations 🚧
    • optimiser 🚧
  3. 🔐 Le sécuriser
    • Tests de fuzzing
    • Audits de sécurité

⚠️Avertissement de sécurité

Cette crate a fait l'objet d'un audit de sécurité par Include Security, avec un seul constat mineur qui a depuis été corrigé.

Consultez les [problèmes de sécurité ouverts] sur notre gestionnaire de tickets pour d'autres problèmes connus.

Notamment, l'implémentation de [l'exponentiation modulaire n'est pas à temps constant], mais la variabilité temporelle est masquée à l'aide du [masquage aléatoire], une technique couramment utilisée. Cette crate est vulnérable à la Marvin Attack qui pourrait permettre la récupération de la clé privée par un attaquant réseau (voir RUSTSEC-2023-0071).

Vous pouvez suivre notre travail sur l'atténuation de ce problème dans #390.

Version minimale de Rust prise en charge (MSRV)

Cette crate prend en charge Rust 1.85 ou supérieur.

À l'avenir, la MSRV pourra être modifiée, mais cela se fera avec une incrémentation de version mineure.

Licence

Sous licence selon l'une des deux

  • Apache License, Version 2.0
  • MIT license

au choix.

Contribution

Sauf mention explicite contraire, toute contribution soumise intentionnellement pour inclusion dans l'œuvre par vous, au sens de la licence Apache-2.0, sera sous double licence comme ci-dessus, sans conditions ni termes supplémentaires.

Télécharger l’outil