Pairing based cryptography