Multi-Input Inner Product Encryption: Function-Hiding Instantiations without Random Oracles