Popular multivariate schemes are constructed by having a several easy-to-invert functions/maps as parivate key, and their composition as the public key.
When signing, the hash, or a padded form of which is converted to a series of multivariate variables, and its pre-image under the maps computed as signature. However, public-key encryption is not as easy to construct as signature schemes in multivariate cryptography right now.
I'm wondering if it's possible to do the following:
For signature:
Generate a random public multivariate system $g()$,
Generate a random private multivariate system $f()$ as private key, and publish $p = g \circ f$ as public key.
Publish $\sigma = f(h)$ where $h$ is the hash of the message signed, and verify $g(\sigma) = p(h)$.
For key exchange:
Generate a random public multivariate system $g()$,
Generate a random private multivariate system $f()$ as private key, and publish $p = f \circ g$ as public key.
Client generates a random $x$ and sends $y = g(x)$ as public component, and calculates $p(x)$ as the key exchanged.
Server calculates $f(y)$ as the key exchanged.
My questions are:
What are the known attacks that doesn't involving inverting the multivariate equations system?
Had there been similar proposals? And if not, possibly why?