A great type of part for this kind of application is a "difference amplifier" such as the INA105 from TI. Four tightly matched resistors are combined with an op amp in a single package. Analog Devices and TI make lots of these types of parts with different bandwidths, power and accuracy. Combine one of these with a low output impedance, 0.5 volt reference source and your done. This will give you an extremely accurate solution with a low parts count. Put a -0.5V reference on the inverting input and the signal to be shifted on the non-inverting input with the other non-inverting input to ground and your done. Or, put a +0.5V reference on the other non-inverting input and ground the inverting input. Now, for the reference voltage.... Another post? Checkout the TI and Analog Devices data sheets for these parts for circuit examples which will do exactly what you need. If your design is for a class assignment, check these out anyway. They solve your problem. For example, Figure 15 on the INA105 data sheet shows the circuit with a positive reference.
The posts above have the right idea but do not always get the sign of the level shift and signal amplification correct.