Skip to content

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ІНСТРУКЦІЯ ДО ЗАПУСКУ

  1. перейти у відповідну папку і запустити файл server.py
image
  1. запустити файл client.py
image
  1. тепер можна писати повідомлення
image

PS: якщо було виявлно помилку під час розшифрування повідомлення, на екран виведеться текст:\n '[ERROR] The recieved message had an error'

ПОЯСНЕННЯ ІМПЛЕМЕНТАЦІЇ

У файлі encription.py реалізовано два класи:

  1. RSA число е стале (65537); вибираються два простих числа p і q за допомогою теста Міллера-Рабіна; n = pq; обчислюють секретний ключ d , який є цілим числом, оберненим до e за модулем ( p −1)(q −1): d = e**–1 mod((p–1)(q–1))

    реалізовано функцію encrypt та decrypt: повідомлення перетвоють в байти потім в int і підносять до степеня e за модулем n; для розшифрування підносять до степеня d за модулем n і перетворюють в байти

  2. XOR encrypt(msg, secret_key): перетворює повідомлення в байти; робить побайтовий XOR із байтами ключа; повертає результат як Hex-рядок.

    decrypt(msg, secret_key): Hex-рядок перетворює в байти; робить побайтовий XOR із байтами ключа; декодує відновлені байти назад у звичайний текст.

При створені сервера та кліжнта генеруються усі необхідні ключі для RSA та вони обмінюються ними. Далі secretkey для XOR надсилає сервер клієнту попередньо закодувавши його використовуючи public key клієнта, клієнт розшифровує його за доп private key.

Тепер повідомлення написання клієнтом будуть шифруватися XOR з цим secretkey. Окрім повідомлення надсилається hash (реалізовано за допомогою бібліотеки hashlib методу sha3_512). Клієнт розшифровує повідомлення і наново рахує hash, якщо він збігається відображається повідомлення, в іншому - error message.

image image image

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages