Skip to content

Instantly share code, notes, and snippets.

@Vishwas1
Last active January 26, 2019 12:42
Show Gist options
  • Save Vishwas1/f5c573aa015a4376d998df8f8f25cb77 to your computer and use it in GitHub Desktop.
Save Vishwas1/f5c573aa015a4376d998df8f8f25cb77 to your computer and use it in GitHub Desktop.

----WHAT?---------------------

Proxy re-encryption is a set of algorithms which allows an untrusted proxy to transform ciphertext (homomorphic encryption) from being encrypted under one key to another, without learning anything about the underlying plaintext.

----BIGGER PICTURE------------

  • file sharing use case (m-to-m)
  • group chat use case
  • EHR use case

----HOW DOES IT WORKS--------

https://imgur.com/WiwY19Y

----ALGOS--------------------

  • ECIES
  • AFGH
  • BBS98

-----WHYS?-------------------

  • Why not simply use public key to encrypt the message rather than using a third key (symmetric key)?
  • Why to send the rekey to proxy, why not Alice did the re-encryption on her own ?
  • Where do we think Blockchain fits in here?

----TYPES--------------------

bi-directional

  • that it is possible to compute re(b->a) from just re(a->b)
  • re-encryption key can be used to translate messages from Bob to Charlie, as well as from Charlie to Bob.
  • rekey is generated : re(a<->b = rekey(ska , skb)
  • Interactive (BBS98, ESIES)

uni-directional

  • In uni-directional algorithms that is impossible
  • rekey is generated : re(a<->b = rekey(ska , pkb)
  • Non interactive (AFGH)

----RFERENCES----------------

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment