Streaming Client Server with ABE
On this page
Streaming Client-Server with Attribute-Based Encryption (ABE) Assignment
Objective
The primary objective of this assignment is to build a streaming client-server application that employs Attribute-Based Encryption (ABE) for securing key frames. Students are required to implement the client and server, stream media between them, identify key frames to be encrypted, and perform encryption and decryption using ABE. Additionally, the quality of experience (QoE) must be quantified through metrics such as jitter and delay.
Prerequisites
- Familiarity with Python or a comparable programming language
- Basic understanding of client-server architecture
- Knowledge of video streaming and basic cryptography
- Experience working with encryption libraries
Tasks
Part 1: Setup
- Install ABE Libraries: Install the required Attribute-Based Encryption (ABE) libraries on both client and server systems.
- Install Streaming Software: Install or implement streaming software capable of serving as a client and server.
Part 2: Basic Streaming
- Stream Video: Stream a video file from the server to the client. You may use any readily available video for this task.
- Identify Key Frames: Write a program that identifies key frames from the video stream.
Part 3: Encryption and Decryption
- Encrypt Key Frames: Use the ABE algorithm to encrypt the identified key frames.
- Stream Encrypted Video: Stream the video with encrypted key frames from the server to the client.
- Decrypt and Render: Implement logic on the client to decrypt the key frames and render the video stream.
Part 4: Quality Metrics
- Measure Jitter: Implement a function to measure and log the jitter experienced during the streaming process.
- Measure Delay: Implement a function to measure and log the delay in the video stream.
- Quantify QoE: Utilizing the jitter and delay metrics, quantify the Quality of Experience (QoE).
Evaluation Criteria
- Functional completeness of the client-server streaming system
- Successful encryption and decryption using ABE
- Accuracy and completeness in measuring jitter, delay, and QoE
- Code readability, organization, and documentation
Submission Guidelines
- Submit your source code files, scripts, and any supplementary documents in a zipped folder.
- Include a README.md file that explains how to compile and run your programs, along with any necessary setup instructions.
- Deadline: April 15th, 2023
References
- ABE Library Documentation: https://acsc.cs.utexas.edu/cpabe/
- Video Streaming Protocols and Tools: TBD
- Quality of Experience (QoE) Metrics: TBD
Project Schedule: ABE Streaming System
Combined Sprint 1 & 2: Project Setup and Basic Streaming
Duration: February 20th - February 26th
- Install ABE Libraries: Install the required ABE libraries on both client and server systems.
- Install Streaming Software: Set up streaming software for client and server.
- Stream Video: Stream a test video from the server to the client.
- Identify Key Frames: Develop a program to identify key frames in the video stream.
Sprint 3: Encryption Implementation
Duration: February 27th - March 5th
- Encrypt Key Frames: Use ABE algorithm to encrypt key frames.
- Stream Encrypted Video: Stream the video with encrypted key frames from the server to the client.
Sprint 4: Decryption and Rendering
Duration: March 6th - March 12th
- Decrypt Key Frames: Implement decryption logic on the client.
- Render Video Stream: Render the decrypted video stream on the client.
Sprint 5: Quality Metrics Implementation
Duration: March 13th - March 19th
- Measure Jitter: Implement a function to measure and log jitter.
- Measure Delay: Implement a function to measure and log delay.
Sprint 6: Quality of Experience (QoE) Assessment
Duration: March 20th - March 26th
- Quantify QoE: Use jitter and delay metrics to quantify the Quality of Experience.
Sprint 7: Final Adjustments and Documentation
Duration: March 27th - April 2nd
- Final Adjustments: Make any necessary adjustments based on QoE feedback.
- Documentation: Complete all project documentation.
Sprint 8: Project Review and Closure
Duration: April 3rd - April 9th
- Project Review: Conduct a final review of the project.
- Project Closure: Prepare for handover or deployment.