38 lines
2.1 KiB
Markdown
38 lines
2.1 KiB
Markdown
# 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 - [Code](https://git.aadit.cc/aadit/MIT-Curricular/src/branch/main/IS/Lab/Eval-Endsem/server.py)
|