This project is an implementation of both analog and digital encryption methods for secure data transmission. The system simulates real-world scenarios by incorporating potential transfer drops and varying transmission rates. It includes encoding, decoding, encryption, decryption, and testing mechanisms, and successfully demonstrates the feasibility of using both analog and digital encryption techniques.
The project fulfills the initial objectives, showcasing robust functionality and a complete implementation.
- Analog Encryption: Implementation of Frequency Modulation Encryption (FME) for secure analog signal transmission.
- Digital Encryption: Integration of Advanced Encryption Standard (AES) for high-security digital data.
- Simulated Transmission: Models potential transfer drops and variable transmission rates for realistic testing.
- Encoding/Decoding: Conversion between digital and analog signals for compatibility across encryption methods.
- Testing Framework: Automated and manual testing scripts to validate encryption and decryption.
Encryption-test
├── automated_testing.py
├── encrypting
│ ├── analog_decrypt.py
│ ├── analog_encrypt.py
│ ├── decrypted_messages
│ │ ├── aes_key
│ │ ├── free_encrypted_signal.bin_decrypted.txt
│ │ ├── aes_encrypted_signal.bin_decrypted.txt
│ ├── decryption-deprecated.py
│ ├── decryption.py
│ ├── digital_decrypt.py
│ ├── digital_encrypt.py
│ ├── encrypted_files
│ │ ├── aes_encrypted_signal.bin
│ │ ├── fme_encrypted_signal.bin
├── main.py
├── networking
│ ├── homework5
│ │ ├── __init__.py
│ │ ├── logging.py
│ │ ├── wire.py
│ │ ├── utils.py
│ ├── server.py
│ ├── sender.py
│ ├── receiver.py
│ ├── tester.py
├── received_files
│ ├── aes_encrypted_signal.bin
│ ├── fme_encrypted_signal.bin
├── README.md
Located in the encrypting directory, this module implements Frequency Modulation Encryption (FME) and its corresponding decryption. Files include:
analog_encrypt.py: Handles the encryption process for analog signals.analog_decrypt.py: Processes analog signal decryption.
digital_encrypt.py: Encrypts data using AES.digital_decrypt.py: Decrypts AES-encrypted data.
automated_testing.py: Provides a framework for testing all encryption and decryption functions.tester.py: Handles manual and specific test cases.
Contains modules for simulating data transmission over a network:
server.py,sender.py,receiver.py: Simulate the roles of server and clients in data transmission.wire.py: Manages communication protocols.logging.py: Tracks transmission status.
main.py: Entry point for running the project. Integrates encryption, decryption, and transmission modules.README.md: Project documentation.
-
Setup:
- Clone the repository and navigate to the project directory.
- Ensure Python 3.x and required dependencies (like
numpy,scipy, etc.) are installed.
-
Run Tests:
- Use
automated_testing.pyto validate encryption and transmission.
- Use
-
Simulate Transmission:
- Launch
server.pyand simulate sending encrypted signals withsender.py.
- Launch
-
Encryption/Decryption:
- Encrypt files using
analog_encrypt.pyordigital_encrypt.py. - Decrypt using
analog_decrypt.pyordigital_decrypt.py.
- Encrypt files using
- Successfully implemented and tested analog (FME) and digital (AES) encryption methods.
- Simulated real-world network scenarios with transfer drops and varying rates.
- Demonstrated encoding and decoding between analog and digital signals.
- Completed the project objectives effectively.