Non-repudiation and digital signature of a dishonest participant Let's assume a dishonest Alice who sends, encrypts &amp; digitally signs a message to Bob.

Bob stores the decrypted message and the digital signature in a database.

However, Alice is a bad girl and erases all data from her side, including her private/public keys. She then claims she never sent the message.

Is there a solution to this case?

In my case, Alice uses a communication tool that Bob has provided, where the private/public keys are generated within the context of the tool (with no 'public key' advertised anywhere else, hence making it even more difficult to prove anything).
Yes, the solution is that her public key needs to be stored in a place that is and will be accessible to Bob.

(such as in Bob's database)

I had not realized that importance of that before reading your question.