Multi-Input Functional Encryption for Inner Products: Function-Hiding Realizations and Constructions without Pairings