client
This commit is contained in:
parent
b18969362d
commit
c51e5290e1
1 changed files with 38 additions and 0 deletions
|
|
@ -0,0 +1,38 @@
|
|||
# Question
|
||||
|
||||
**Design and implement a privacy-preserving medical records management system with the following requirements:**
|
||||
|
||||
1. **System Architecture**: Create a client-server architecture where:
|
||||
- Doctors (clients) can register, submit medical reports, and log expenses
|
||||
- An auditor can verify reports and perform aggregate analysis without decrypting individual records
|
||||
|
||||
2. **Cryptographic Requirements**:
|
||||
- Use **RSA** for encrypting sensitive AES keys during report transmission
|
||||
- Use **ElGamal** for digitally signing reports with timestamps
|
||||
- Use **Paillier homomorphic encryption** for department information to enable privacy-preserving keyword searches
|
||||
- Use **RSA-based homomorphic encryption** (exponent trick) to allow summation of encrypted expenses without decryption
|
||||
- Use **AES-256** for authenticated encryption of report contents
|
||||
|
||||
3. **Functional Features**:
|
||||
- Doctor registration with encrypted department information
|
||||
- Secure report submission with signature verification
|
||||
- Privacy-preserving expense tracking where individual amounts remain encrypted
|
||||
- Auditor capabilities to:
|
||||
- Search doctors by department keyword without decrypting data
|
||||
- Sum all expenses across doctors or per-doctor while maintaining encryption
|
||||
- Verify report authenticity and timestamps
|
||||
- List and audit all stored records
|
||||
|
||||
4. **Implementation Details**:
|
||||
- Implement server-side state management with persistent JSON storage
|
||||
- Implement client-side key generation and cryptographic operations
|
||||
- Use socket-based TCP communication with JSON serialization
|
||||
- Handle concurrent connections with thread-safe operations
|
||||
- Support multiple independent doctor clients connecting to a single server
|
||||
|
||||
**Required**: Provide both server and client implementations with proper key management, error handling, and an interactive menu system for all user roles.
|
||||
|
||||
# Answers
|
||||
|
||||
Client - [Code](https://git.aadit.cc/aadit/MIT-Curricular/src/branch/main/IS/Lab/Eval-Endsem/client.py)
|
||||
Server - [Server](https://git.aadit.cc/aadit/MIT-Curricular/src/branch/main/IS/Lab/Eval-Endsem/server.py)
|
||||
Loading…
Add table
Add a link
Reference in a new issue