Member-only story
FAME and Enhanced Attributed-Based Security
With CP-ABE (Cipher Policy — Attributed-Based Encryption), we can generate an encryption key based on a policy and a set of attributes. One method is FAME: Fast Attribute-based Message Encryption and created by Shashank Agrawal and Melissa Chase [1] [here]:
FAME uses Type-III pairing groups (such as BNS256 [here]), and which are the most efficient of cryptography pairings. It has the key features of [1]:
- No restriction on the size of policies or attribute sets.
- Allow any arbitrary string to be used as an attribute.
- Requires just a small number of pairings for decryption.
- Satisfy the natural security requirement under a standard hardness assumption.
With this, we can create a cipher policy, along with a public key pair:
a := abe.NewFAME()
// Key Pair
pk, sk, err := a.GenerateMasterKeys()Next, we can implement our policy to produce an MSP (monotone span programs):
policy:="((Edinburgh AND NHS) OR (Glasgow AND SOCIAL)) AND GOV"
msp, err := abe.BooleanToMSP(policy, false)