You won't be on a good negotiation position if you aren't willing to risk lost the job offer for not agreeing to disclose your salary. That also applies to salary negotiations of a job you are already in. If you are not willing to quit if you are underpaid, then you will be underpaid. Forever.
So, just tell the recruiter that you won't disclose your current salary - no explanations on why - and what is your desired salary. If the recruiter says it is mandatory, so just decline the offer and go find a better one.
The appropriate way is just being polite. Not lying, not being rude. Just say "sorry, but I won't disclose my current salary" and move on with the conversation.