Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Private Anonymous Messaging With Friends
1. Private Anonymous Messaging
With Friends!
Ruchith Fernando
Purdue University
April 26, 2011
Ruchith Fernando CS 626 : Project Presentation
2. Problem
A user wants to send a message to all his current contacts
Even if they are offline!
Only trusts his/her immediate contacts
A contact can re-distribute messages on requests
Ruchith Fernando CS 626 : Project Presentation
3. Problem
Ruchith Fernando CS 626 : Project Presentation
4. Problem
Ruchith Fernando CS 626 : Project Presentation
5. Proposed Solution
Modify HIBE (Hierarchical Identity Based Encryption with
Constant Size Ciphertext, Boneh et.al)
Each contact is issued a private key (only private channel for
key exchange)
Contacts generate anonymous public keys using their private
keys
Broadcast update request to be processed by other contacts
Re-key mechanism with public data (no private channel
requirement)
Ruchith Fernando CS 626 : Project Presentation
6. Hierarchical Identity Based Encryption
Identities:
Alice: I1
Bob: I1 , I21
Charlie: I1 , I22
e : G × G → G1 , |G| = p
params = (g , g1 , g2 , g3 , h1 , h2 ), g1 = g α , α ∈ Zp
mk = g2 α
Ruchith Fernando CS 626 : Project Presentation
7. Hierarchical Identity Based Encryption
Alice :
Kpriv alice = KeyGen(I1 , params, mk)
Kpub alice = I1
Bob :
Kpriv bob = KeyGen(I1 , I2 , params, Kpriv alice )
Kpub bob = I1 , I21
To encrypt for Bob
CT = Encrypt(msg , I1 , I21 , params)
Ruchith Fernando CS 626 : Project Presentation
8. Changes to HIBE
Update Encrypt() to work with h1 I1 h2 I21 = ID
To encrypt for Bob
CT = Encrypt (msg , ID, params)
On re-key update α and only generate minimum public data
for existing contacts.
Ruchith Fernando CS 626 : Project Presentation
9. Usage : Encryption
Contact: First level identity (Ir1 ) and private key
A contact issues him/herself a second level identity with a
random Ir2
Broadcsts a request for data (<user, IDr >) where
IDr = h1 Ir1 h2 Ir2
Any other contact of the user can respond to the request, by
encrypting with paramsuser :
CT = Encrypt (msg , IDr , paramsuser )
Ruchith Fernando CS 626 : Project Presentation
10. Usage : Revocation
If the user removes a contact
Re-key : Parameters
Generate a new master key : α ∈ Zp , g2 α
paramsuser update : Only g1 = g α
Re-key : Contact private key
r
Kpriv = (g2 α · (h1 I1 · g3 ) , g r , h2 r , h3 r ) = (C1 , C2 , C3 )
Only C1 need to be published along with I1
Indexed by blinded IDcontact
Ruchith Fernando CS 626 : Project Presentation
11. Implementation
http://code.google.com/p/anon-encrypt/
Using Java Pairing Based Cryptography Library (JPBC)1
Implemented as a library
Demo application
1
http://gas.dia.unisa.it/projects/jpbc/
Ruchith Fernando CS 626 : Project Presentation
12. Demonstration
DEMO!
Ruchith Fernando CS 626 : Project Presentation