Digital Signature
- Your digital signature is the proof that you signed something
- Your digital signature attests to the fact that your data was not tampered with
- In asymmetric key system you ought to sign with the private key 🗝 or any symbol representing one
Example:
message: any expression from symbols to numerals to expressions to images to audio and video and so on.
🗝message;
: Free Form language symbol for digital signature in binary operator form in this case. keymessage computes a signature for the message given this key. Operator form should be thought of a multiplication a ⨉ b where two left and right operands are act on each other to compute a product. In a b, the key a acts on the message/data b to output a signature.
Sign
🔐["rsa"];
message = "hi";
signature = 🗝message;
save as signature1;
Cloud Object Browser: signature1
Verify Signature
- Signature, generally performed in another program in another system and in the past. To access that signature Free Form language follows the path paradigm e.g. "/certs/free/signature1"
- base = "/certs/free/signature1"; states that the symbol base represents the path on the rhs; base can by any other symbol/word
- s = "base/signature/value"; allows the access to the external signature value again in path form and s presents the accessed signature
- key = "base/🔑"; in paired key cryptography systems, assumption is everyone has access to the public key 🔑. This public key is then used to verify if the computed signature was indeed performed by the secret private key 🗝 .
base = "/certs/free/signature1";
s = "base/signature/value";
key = "base/🔑";
message = "hi";
q = ( ✍🏻 s ⚲ message ) message)key;
show q;
save as verify1;
Output:
"q" ⟶ True
Cloud Object Browser: verify1
FAIL: Verify Signature
base = "/certs/free/signature1";
s = "base/signature/value";
key = "base/🔑";
message = "hi!";
q = ( ✍🏻 s ⚲ message ) key;
show q;
save as verify1-2;
Output:
"q" ⟶ False