0% ont trouvé ce document utile (0 vote)
29 vues3 pages

Criptage Course

Le document présente un code Python pour le chiffrement et le déchiffrement de données à l'aide de l'algorithme AES. Il utilise AES-GCM pour chiffrer les télécommandes et AES-CTR pour les télémétries, en générant des clés et des vecteurs d'initialisation sécurisés. Des exemples de simulation d'envoi de messages chiffrés et déchiffrés sont également fournis.

Transféré par

mensi5092
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd

Thèmes abordés

  • cryptographie moderne,
  • chiffrement,
  • CTR,
  • AES,
  • protection des communications,
  • erreur,
  • clé secrète,
  • intégrité des transmissions,
  • intégrité des données,
  • protocole de sécurité
0% ont trouvé ce document utile (0 vote)
29 vues3 pages

Criptage Course

Le document présente un code Python pour le chiffrement et le déchiffrement de données à l'aide de l'algorithme AES. Il utilise AES-GCM pour chiffrer les télécommandes et AES-CTR pour les télémétries, en générant des clés et des vecteurs d'initialisation sécurisés. Des exemples de simulation d'envoi de messages chiffrés et déchiffrés sont également fournis.

Transféré par

mensi5092
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd

Thèmes abordés

  • cryptographie moderne,
  • chiffrement,
  • CTR,
  • AES,
  • protection des communications,
  • erreur,
  • clé secrète,
  • intégrité des transmissions,
  • intégrité des données,
  • protocole de sécurité

Criptage course

from Crypto.Cipher import AES

from Crypto.Random import get_random_bytes

# -------------------------------

# 1️⃣ Génération de la clé AES (256 bits) et IV

# -------------------------------

KEY_AES = get_random_bytes(32) # Clé secrète de 256 bits

def generate_iv():

return get_random_bytes(12) # IV de 12 octets pour AES-GCM et AES-


CTR

# -------------------------------

# 2️⃣ Chiffrement des télécommandes (TC) avec AES-GCM

# -------------------------------

def encrypt_tc_aes_gcm(tc_data):

iv = generate_iv()

cipher = AES.new(KEY_AES, AES.MODE_GCM, nonce=iv)

ciphertext, mac = cipher.encrypt_and_digest(tc_data.encode())

return iv + ciphertext + mac # Paquet sécurisé : IV + données chiffrées


+ MAC

def decrypt_tc_aes_gcm(encrypted_tc):

iv = encrypted_tc[:12]

ciphertext = encrypted_tc[12:-16]

mac = encrypted_tc[-16:]

cipher = AES.new(KEY_AES, AES.MODE_GCM, nonce=iv)

try:
decrypted_data = cipher.decrypt_and_verify(ciphertext, mac)

return decrypted_data.decode()

except ValueError:

return "Erreur : Intégrité des données compromise !"

# -------------------------------

# 3️⃣ Chiffrement des télémétries (TM) avec AES-CTR

# -------------------------------

def encrypt_tm_aes_ctr(tm_data):

iv = generate_iv()

cipher = AES.new(KEY_AES, AES.MODE_CTR, nonce=iv)

ciphertext = cipher.encrypt(tm_data.encode())

return iv + ciphertext # Paquet sécurisé : IV + données chiffrées

def decrypt_tm_aes_ctr(encrypted_tm):

iv = encrypted_tm[:12]

ciphertext = encrypted_tm[12:]

cipher = AES.new(KEY_AES, AES.MODE_CTR, nonce=iv)

decrypted_data = cipher.decrypt(ciphertext)

return decrypted_data.decode()

# -------------------------------

# 🔄 Test du chiffrement et déchiffrement

# -------------------------------

# 📡 Simulation de l'envoi d'une télécommande TC

tc_message = "Allumer moteur"

encrypted_tc = encrypt_tc_aes_gcm(tc_message)
decrypted_tc = decrypt_tc_aes_gcm(encrypted_tc)

# 📡 Simulation de l'envoi d'une télémétrie TM

tm_message = "Température: 22.5°C"

encrypted_tm = encrypt_tm_aes_ctr(tm_message)

decrypted_tm = decrypt_tm_aes_ctr(encrypted_tm)

# Affichage des résultats

print(f"🔒 Télécommande chiffrée (AES-GCM) : {encrypted_tc.hex()}")

print(f"✅ Télécommande déchiffrée : {decrypted_tc}")

print(f"🔒 Télémétrie chiffrée (AES-CTR) : {encrypted_tm.hex()}")

print(f"✅ Télémétrie déchiffrée : {decrypted_tm}")

Vous aimerez peut-être aussi