I would like to backup the ROM on my phone before I attempt to install Cyanogenmod on it. It is a Samsung Galaxy SIII on Sprint in the United States. My phone is not currently rooted and I'm running a standard ROM.

Can someone point me to free and/or open source software that will allow me to backup the ROM completely and be able to restore it later?