Skip to content

Acest program demonstrează cum funcționează modurile de criptare CFB și CBC.

Notifications You must be signed in to change notification settings

CalinRogoza/Encryption-simulator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Encryption Simulator

Descrierea aplicației

Această aplicație are rolul de a simula o infrastructură de comunicație ce utilizează criptosistemul AES. Are o arhitectură de tipul client-server, serverul, numit "Key Manager", are scopul de a comunica cu nodurile A și B, iar clienții sunt două noduri (A și B) care vor avea rolul de a cripta un fișier text într-un mod ales (CBC/CFB), respectiv de a decripta în celălalt mod și afișa pe ecran mesajul inițial.
Diagrama aplicației:



Implementarea criptării

Pentru criptarea mesajelor au fost folosiți algoritmii CBC și CFB. Acești algoritmi au fost implementați după schemele de mai jos, împărțind mesajele în blocuri de câte 16 octeți, aplicând operația xor și criptarea cu cheia și vectorul de inițializare corespunzătoare:


Cerințe preliminare

Pentru a putea folosi aplicația trebuie să:

Acum puteți lansa aplicația. Rulați în această ordine: server.py, client_A.py, client_B.py. Pentru a modifica textul ce se dorește a fi criptat și decriptat, editați fișierul fisier.txt.

Librării folosite

  • socket: pentru comunicarea dintre clienți și server
  • random: pentru generarea de chei sau vectori de inițializare random
  • Crypto.Cipher: pentru a folosi algoritmii de criptare/decriptare puși la dispoziție de limbajul de programare Python

Link-uri utile

  1. https://www.novixys.com/blog/using-aes-encryption-decryption-python-pycrypto/
  2. https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation

About

Acest program demonstrează cum funcționează modurile de criptare CFB și CBC.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages