Multi-input functional encryption for inner products: Function-hiding realizations and constructions without pairings