I don't like to give out information, either, but I strongly agree with the posters who beg not to take it out on the cashiers by being rude or even snippy or cold about it. They are just doing their job, and if they are anything like the posters here who report having had such jobs, they already are unhappy enough. True, they are representatives of their company, but it isn't their choice.
Even "No, thank you," in my opinion, isn't quite enough, because it isn't really clear -- I mean, someone asked you for something, they didn't offer something, so "no thank you" isn't really responsive. If I were the cashier, I'd probably think you didn't hear me right and ask again.
I usually say something like, "If you don't really need it, I'd rather not give my [phone number, address, whatever]. But I like Rose Red's formula: "I know you are required to ask, but I don't give out personal information" better.