Collision means one of the corners of object A touching one of the faces of object B (or the other way around). This is because it is incredibly unlikely that two of their faces will perfectly line up, or that two corners will meet exactly.
So let's say face i of object A touches corner j of object B. Then the force will be in the direction normal to face i and at the point of corner j. This force will act in opposite directions on A and B to push the two objects away from each other.
In actual collisions, the objects will squash a bit, and then spring back (imagine a tennis ball being hit by a racquet). So the value of the force, and the length of time it acts will depend on the material. In your simulation, I advise you just use values for these which make the simulation look fairly real. (I think a small time, with a fairly large force would look most realistic).
Now you have the force, its direction and how long it acts. The change in momentum is equal to the force times the time, so this gives you the change in momentum.
The component of the force pointing to the centre of gravity of the object contributes to the change in linear momentum.
The component of the force pointing at right-angles to the centre of gravity gives the change in angular momentum of the object. The angular momentum (assuming the object is roughly spherical) is equal to [itex]m 2 \pi f r^2[/itex] In this equation, m is the mass of the object, f is the frequency of rotation of the object. And r is the radius at which the force happened (in our case, it will be distance from the centre of gravity to the point of corner j at the time of collision).
Hope this helped, its actually a pretty complicated simulation to make, now that I've thought about it.