0% ont trouvé ce document utile (0 vote)
66 vues8 pages

Simulation Des Codes Python

Le document présente une simulation de programmes Python pour les algorithmes de chiffrement RSA et AES. Il fournit des explications détaillées ligne par ligne sur le code, ainsi que des instructions sur la génération de clés et l'utilisation des fonctions de chiffrement et de déchiffrement. L'objectif principal est de protéger les données sensibles contre tout accès non autorisé.

Transféré par

yveslesultant645
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
66 vues8 pages

Simulation Des Codes Python

Le document présente une simulation de programmes Python pour les algorithmes de chiffrement RSA et AES. Il fournit des explications détaillées ligne par ligne sur le code, ainsi que des instructions sur la génération de clés et l'utilisation des fonctions de chiffrement et de déchiffrement. L'objectif principal est de protéger les données sensibles contre tout accès non autorisé.

Transféré par

yveslesultant645
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

NOM : DANGO pideng-pinawe

LAGUEBANDE arafat
FOEVI florent

FILIERES : cyber-securité

SIMULATION DU PROGRAMME PYTHON


DES ALGORITHMES RSA,AES,SHA-256

CODE PYTHON AES(Advanced Encryption Standard)


• Explication ligne par ligne :

o from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, Commenté [i1]:


modes: Importe les classes nécessaires pour le chiffrement.
o
o from cryptography.hazmat.backends import default_backend: Importe le
backend par défaut pour la cryptographie.
o
o from cryptography.hazmat.primitives import padding: Importe les outils pour
le padding.
o import os: Importe le module os pour générer des données aléatoires.
o def aes_encrypt(data, key):: Définit une fonction pour chiffrer les données.
o iv = os.urandom(16): Génère un vecteur d'initialisation aléatoire de 16 octets.
o cipher = Cipher(...): Crée un objet Cipher avec l'algorithme AES, le mode CBC
et l'IV.
o padder = padding.PKCS7(...).padder(): Crée un objet pour ajouter du padding
aux données.
o padded_data = padder.update(data) + padder.finalize(): Ajoute le padding
aux données.
o ciphertext = encryptor.update(padded_data) + encryptor.finalize(): Chiffre
les données.
o def aes_decrypt(iv, ciphertext, key):: Définit une fonction pour déchiffrer les
données.
o cipher = Cipher(...): Crée un objet Cipher avec l'algorithme AES, le mode CBC
et l'IV.
o padded_data = decryptor.update(ciphertext) + decryptor.finalize():
Déchiffre les données.
o unpadder = padding.PKCS7(...).unpadder(): Crée un objet pour supprimer le
padding.
o data = unpadder.update(padded_data) + unpadder.finalize(): Supprime le
padding.
o key = os.urandom(32): Génère une clé aléatoire de 32 octets.
o iv, ciphertext = aes_encrypt(message, key): Chiffre le message.
o decrypted_message = aes_decrypt(iv, ciphertext, key): Déchiffre le message.

• À quoi ça sert : Chiffrer des données sensibles pour les protéger contre tout accès non
autorisé.

• Comment l'utiliser :

i. Générez une clé AES sécurisée (32 octets pour AES-256).


ii. Utilisez aes_encrypt pour chiffrer les données. Conservez l'IV.
iii. Utilisez aes_decrypt avec l'IV et la clé pour déchiffrer.

CODE PYTHON RSA (Rivest Shamir Adleman)

C’est un chiffrement asymétrique


• Explication ligne par ligne :

o from cryptography.hazmat.primitives.asymmetric import rsa, padding:


Importe les classes pour RSA et le padding.
o from cryptography.hazmat.primitives import hashes: Importe les fonctions de
hachage.
o from cryptography.hazmat.backends import default_backend: Importe le
backend par défaut.
o def rsa_encrypt(message, public_key):: Définit une fonction pour chiffrer avec
la clé publique.
o ciphertext = public_key.encrypt(...): Chiffre le message avec la clé publique
et le padding OAEP.
o def rsa_decrypt(ciphertext, private_key):: Définit une fonction pour
déchiffrer avec la clé privée.
o plaintext = private_key.decrypt(...): Déchiffre le message avec la clé privée
et le padding OAEP.
o private_key = rsa.generate_private_key(...): Génère une clé privée RSA.
o public_key = private_key.public_key(): Obtient la clé publique à partir de la clé
privée.
o ciphertext = rsa_encrypt(message, public_key): Chiffre le message.
o plaintext = rsa_decrypt(ciphertext, private_key): Déchiffre le message.

• À quoi ça sert :

o Chiffrement : Chiffrer des données sensibles avec la clé publique pour que seul le
détenteur de la clé privée puisse les déchiffrer.
o Signature numérique : Signer des données avec la clé privée pour prouver
l'authenticité et l'intégrité des données.

• Comment l'utiliser :

i. Générez une paire de clés RSA (privée et publique).


ii. Utilisez la clé publique pour chiffrer ou vérifier une signature.
iii. Utilisez la clé privée pour déchiffrer ou signer.

Vous aimerez peut-être aussi