With two different known colours you can use the Separate RGB node:
The R output of the node already give us a map of the red areas (full white=1)
You can use the mask both in a Bump Node and in a Mix Shader node.
If you would like to implement a similar process with every possible colour you can set up a Node tree capable of recognize where a given color is.
Basically you have to mask where the the color that correspond to the shader to mix is on the map by masking individually each component. Starting from the HUE values we check with math nodes where the subtraction gives almost = 0.
Than we can copy this node also for the Saturation and Value...ehm...values! By multiplying their output we are running an Logical AND operation, so at the and we'll have only the places where all three parameters have the same values.
By making a whole group of these operations you'll be able to match each colour to a shader simply by giving the color to pick:
Here's an example of usage with files made by an external application such as the SciFi Helmet by Michael Pavlovic. You can pick the colour from the Colour Id mask directly from the render preview.