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.on
🗝message;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 🗝 .
- q = (✍🏻 s ⚲ message)key; this time the rhs the public key acts on the lhs namely (✍🏻 s ⚲ message) and places returns the evaluation boolean result in q.
- (✍🏻 s ⚲ message) is a generalization of list in other programming languages. Symbols ✍🏻 and ⚲ "pin" contents into the list and depending the pin symbol the content is interpreted
- ⚲ message pins a message the subject matter of interest in this signature computations
- ✍🏻 s pins the signature from a previous program who allegedly signed the message namely ⚲ message
base = "/certs/free/signature1";
s = "base/signature/value";
key = "base/🔑";
message = "hi";
q = (✍🏻 s ⚲ 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