Because it has been so abused.
I would not have much trouble with a patent on the concept of public/private keys, but patents today are too expensive to get, obscure to read and cover extremely simple material.
In addition software patents lasts way the equivalent of several hundred years because the field moves so fast, imagine that basic concept behind the steam engine was still patented today.