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:

Example:

message: any expression from symbols to numerals to expressions to images to audio and video and so on.on

🗝🫆message;

🫆: 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