I'm aware that a SIM card is electrically just a smart card but to focus my question more, can I use any smartcard with contacts that I've cut down to size as a SIM card if programmed correctly. Is software the only thing that makes a SIM card a smartcard? I know I can just cut the plastic away and that shouldn't affect the chip itself. Is there proprietary code loaded on first?
I'm trying to write my own SIM cards for a private LTE network I'm developing. Smartcards are cheap, but "SIM" cards from gemalto are not. I can use pysim well enough, can I just plug a smart card into that and go to town? There's a lot of security concerns as well, do regular smartcards fulfill the SIM spec?
Thanks, Ryan
SIM card is a smart card (similarly a web server is a "server") it just implements SIM card specific APIs (like a web server implements HTTP).
Mobile network operators use available SIM card products which they personalize/customize to fit their needs (just like internet projects use existing web server software and configure it to serve their content).
Technically nothing prevents you from implementing your own SIM card on a compatible smart card (in the same way you would implement a web server on any "server" supporting TCP/IP communication) as SIM card API requirements are publicly available /e.g. GSM 11.11,3GPP TS 51.011.../ (just like HTTP is specified in RFC 7230).
It would be much easier to implement it on some Java Card /which is open and quite well supported/ than on some "bare chip" /which is quite complicated to get and develop for/ (similarly it is much easier to develop a web server for linux than for Cisco IOS).
For a proof-of-concept SIM card implementation have a look at SSIM which I wrote some long time ago for PIC16F877+24LC256 Silver Wafer Card (unfortunately in assembly).
You might find Sysmocom SIM/USIM cards for sale useful (I am not sure about LTE support thought).
Disclaimer: My hobbyist GSM experience ended several years ago (before 2.5G) so please do validate my thoughts...
Good luck!