This is the best I've found (and it definitely isn't easy). List mostly gained from http://www.forum.nokia.com/forum/showthread.php?t=106756:
Its not easy because so many technical specifications are involved but to start with you need to read
GSM 11.11 Specification of the Subscriber Identity Module - Mobile Equipment (SIM-ME) Interface
http://www.3gpp.org/ftp/Specs/html-info/1111.htm
GSM 11.14 Specification of the SIM Application Toolkit (SAT) for the Subscriber Identity Module - Mobile Equipment (SIM-ME) interface
http://www.3gpp.org/ftp/Specs/html-info/1114.htm
GSM 03.48 Security mechanisms for SIM application toolkit
http://www.3gpp.org/ftp/Specs/html-info/0348.htm
Then the Java implementation of SAT
GSM 03.19 Subscriber Identity Module Application Programming Interface (SIM API) for Java Card
http://www.3gpp.org/ftp/Specs/html-info/0319.htm
These just cover SIM cards, there are also related standards for USIM cards which are used in 3G/UMTS mobile phones.
SIM API for Java Card is a subset of the Java Card specs so you will need to go and read that
http://java.sun.com/products/javacard/index.jsp
Then once you've got your head around all of that there are the SMS specifcations and there are no free tools available. Gemplus now Gemalto have http://www.gemalto.com/products/gemxplore_developer/ which has a 20 day trial.