Chris Pollett > Students >

    ( Print View)



    [C297 Proposal]

    [Paper 1: Differential Privacy - PDF]

    [Paper 2: Differential Privacy Primer - PDF]

    [Paper 3: Secret Sharing - PDF]

    [Paper 4: Homomorphic Encryption - PDF]

    [Deliverable 1]

    [Deliverable 2]

    [Deliverable 3]

    [Deliverable 4]

    [CS297 Project Report - PDF]

    [CS298 Proposal]

    [CS298 Presentation - PDF]

    [CS298 Report - PDF]

    [CS298 code - ZIP]

Deliverable 1

Description: Create an encrypted group in Yioop, add users and threads to the group to see how these changes reflect in the database in-order to understand how the existing privacy mechanism in Yioop works

Implementation steps:

  • Create an encrypted group on Yioop
  • Add users, threads and posts to the created group
  • Go through Yioop codebase and find tables responsible for group encryption
  • Query the corresponding tables and demonstrate the working of the existing encryption mechanism


Relevant database tables modified when new group is added:

  • SOCIAL_GROUPS: Contains groups and group details like group ID. Contains Encryption column set to 0 or 1 to indicate if group is encrypted or not
  • GROUP_ITEM: Contains group details including title and description of threads in a group
  • TYPE_KEYS: (If encryption is enabled) Contains group keys used for encryption-decryption


1. Created group called 'Deliverable1_Test' and added users, threads and posts:

Create Group Feature

2. Database reflects the addition of 'Deliverable1_Test' in table 'SOCIAL_GROUPS'

Social_Groups table

3. A key is generated for the newly created group and stored in 'TYPE_KEYS' table of the external database

type_keys table

4. Database reflects creation of new threads for the created group (group_id=5). Also highlighted are encrypted title and description of group items

Group_Items table