Until now, I had been using SketchUp and manually editing a key model. Obviously, it wasn't precise enough so I decide to give OpenSCAD a shot. OpenSCAD is a programming environment where the code deals with manipulating 3d models. It can export .STLs, which is perfect for almost all 3d printing software.
A bit of programming later and, voila!:
An OpenSCAD program that generates models of Kwikset KW1 keys. It defines a function that, given the positions of the 5 teeth of the key, output a model. The models should be accurate - I found a decent tech spec here (PDF).
Next thing to do was import the model into my 3d printing software - I use Simplify3D - and prepare it for printing! Notice that I scaled the model by 2540% - OpenSCAD is unitless, meaning you "just" use numbers and worry about scaling it in whereever you send the model. Well, most 3D printing software assumes millimeters, but I like Imperial inches. One inch is 2.54cm, so we get that 2.54x scale factor.