Skip to main content

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
  • message: any expression from symbols to numerals to expressions to images to audio and video and so on
  • πŸ«†: Free Form language symbol for digital signature in binary operator form in this case. keyπŸ«†message 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 πŸ— .
  • 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

Cloud Object Browser: verify1-2