Streaming Client Server with ABE

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

  1. Install ABE Libraries: Install the required Attribute-Based Encryption (ABE) libraries on both client and server systems.
  2. Install Streaming Software: Install or implement streaming software capable of serving as a client and server.

Part 2: Basic Streaming

  1. Stream Video: Stream a video file from the server to the client. You may use any readily available video for this task.
  2. Identify Key Frames: Write a program that identifies key frames from the video stream.

Part 3: Encryption and Decryption

  1. Encrypt Key Frames: Use the ABE algorithm to encrypt the identified key frames.
  2. Stream Encrypted Video: Stream the video with encrypted key frames from the server to the client.
  3. Decrypt and Render: Implement logic on the client to decrypt the key frames and render the video stream.

Part 4: Quality Metrics

  1. Measure Jitter: Implement a function to measure and log the jitter experienced during the streaming process.
  2. Measure Delay: Implement a function to measure and log the delay in the video stream.
  3. 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.