Skip to content

Transfer high-security standard socket communication with Diffie-Hellman key exchange and AES encryption.

Notifications You must be signed in to change notification settings

omerfarukoz/encodedsocket

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

English

Project Description

This project is a simple application that provides encrypted socket communication between two clients. Communication is secured using an AES encryption algorithm with a shared key obtained through the Diffie-Hellman key exchange protocol. The project consists of two main components: Client A and Client B. Both clients use the Diffie-Hellman protocol to generate a shared encryption key and use this key to encrypt and decrypt messages.

Features

  • Key Exchange: Secure key exchange using the Diffie-Hellman protocol.
  • Encryption: Communication secured with AES encryption.
  • Client Communication: Secure messaging between clients.

Installation and Running

Required Libraries: The libraries used in this project are:

  • cryptography
  • socket
  • threading

You can install these libraries using the following commands:

pip install cryptography
pip install socket
pip install threading

Running the Code:

Client A:

Open the client_a.py file and configure the settings for Client A (IP address and port). Start Client A. Initially, the key exchange will be performed, and then encrypted messages can be sent and received.

Client B:

Open the client_b.py file and configure the settings for Client B (IP address and port). Start Client B. Client B will receive the key from Client A, compute the shared key, and use it to encrypt and decrypt messages, and send new messages.

Code Files

  • client_a.py: Code for Client A. Generates the key, sends it to Client B, and sends encrypted messages.
  • client_b.py: Code for Client B. Receives the key from Client A, computes the shared key, and decrypts and sends encrypted messages.

Security Notes

The key exchange process uses the Diffie-Hellman protocol to create a shared key and ensures message security with AES encryption. This project is a basic implementation of encryption and key exchange. Additional security measures should be considered for applications requiring higher security.




Türkçe

Proje Açıklaması

Bu proje, iki istemci arasında şifreli socket iletişimi sağlayan basit bir uygulamadır. İletişim, Diffie-Hellman anahtar değişim protokolü kullanılarak sağlanan ortak bir anahtar ile AES şifrelemesiyle güvence altına alınmıştır. Proje iki ana bileşenden oluşur: Client A ve Client B. Her iki istemci de Diffie-Hellman protokolü kullanarak ortak bir şifreleme anahtarı oluşturur ve bu anahtar ile mesajları şifreleyip çözer.

Özellikler

  • Anahtar Değişimi: Diffie-Hellman protokolü ile güvenli anahtar değişimi.
  • Şifreleme: AES algoritması kullanılarak şifrelenmiş iletişim.
  • İstemci İletişimi: İstemciler arasında güvenli mesajlaşma.

Kurulum ve Çalıştırma

Gerekli Kütüphaneler: Bu projede kullanılan kütüphaneler şunlardır:

  • cryptography
  • socket
  • threading

Bu kütüphaneleri yüklemek için aşağıdaki komutu kullanabilirsiniz:

pip install cryptography pip install socket pip install threading

Kodun Çalıştırılması:

Client A:

client_a.py dosyasını açın ve Client A'nın ayarlarını yapın (IP adresi ve port). Client A'yı başlatın. İlk olarak anahtar değişimi gerçekleştirilir ve ardından şifreli mesajlar gönderilebilir, gelen mesajları çözebilir.

Client B:

client_b.py dosyasını açın ve Client B'nin ayarlarını yapın (IP adresi ve port). Client B'yi başlatın. Client B, Client A'nın anahtarını alır, ortak anahtarı hesaplar ve mesajları şifreleyip çözer, yeni mesajı gönderir.

Kod Dosyaları

  • client_a.py: Client A'nın kodu. Anahtar oluşturur, Client B'ye gönderir ve şifreli mesajları gönderir.
  • client_b.py: Client B'nin kodu. Client A'dan anahtar alır, ortak anahtarı hesaplar ve şifreli mesajları çözer, gönderir.

Güvenlik Notları

Anahtar değişimi sürecinde kullanılan Diffie-Hellman protokolü, ortak anahtar oluşturulmasını sağlar ve AES şifrelemesi ile mesajların güvenliğini sağlar. Bu proje, temel bir şifreleme ve anahtar değişim uygulamasıdır. Daha yüksek güvenlik gerektiren uygulamalarda ek güvenlik önlemleri alınmalıdır.

About

Transfer high-security standard socket communication with Diffie-Hellman key exchange and AES encryption.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages