-
Notifications
You must be signed in to change notification settings - Fork 172
Improving adapters
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:
- Query the input IBE scheme to determine its ID space (it gets back a descriptive string)
- Check to see whether there exists a collision resistant hash function that can hash from {0,1} -> ID space (this is a toolbox routine)
- 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:
- Query the IBE scheme to get its message space (e.g., "G_T in a 224 bit MNT curve")
- Ask the toolbox how bit this message space is in bits (e.g., 224 would mean that there are 2^224 possible messages).
- 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)