Add cryptographic signature

Closes #660.