Skip to content

Improving adapters

jakinyele edited this page Jun 12, 2011 · 1 revision

One thing we should do is improve our example Adapters. For example, the Identity-hash adapter currently only works with the Boneh-Boyen scheme (i.e., it maps {0,1}^* to elements of G_T). We should improve it to work with /any/ IBE scheme, regardless of the ID space.

For example, the Waters ('05) IBE scheme has an identity space of the form {0,1}^k for some fixed value k. An improvement of that scheme due to Naccache has an identity space of the form { {0,1}^j }^k for some j,k (in other words, it's k short words of j bits each). You can picture even weirder things.

The ID-space adapter shouldn't have to think about of the possibilities. We should provide a complete library of mappings within the toolbox, and some automated routines to do the translation. Thus the ID-space adapter will:

  1. Query the input IBE scheme to determine its ID space (it gets back a descriptive string)
  2. Check to see whether there exists a collision resistant hash function that can hash from {0,1} -> ID space (this is a toolbox routine)
  3. If so, use it.

Similarly, the IBE-to-Sig adapter currently assumes that the IBE message space is exponentially sized. In practice, it may not be --- there are IBEs that only encrypt one bit at a time. It turns out that the 'strength' of the signature is only as good as the IBE's message space, so if there are 2^80 plaintexts than the chance of an adversary forging is about 2^-80. If you need more power than that you have to encrypt multiple times.

So we should also have routines that determine the total entropy space from a descriptive variable. For example, this adapter should:

  1. Query the IBE scheme to get its message space (e.g., "G_T in a 224 bit MNT curve")
  2. Ask the toolbox how bit this message space is in bits (e.g., 224 would mean that there are 2^224 possible messages).
  3. For (a = signature scheme security parameter; a >= 0) a. Encrypt a random message in the space "G_T in a 224 bit MNT curve" (we need a toolbox routine that can do this) b. Set a = a - message space size (e.g., 224)

Clone this wiki locally