/* ------------------------------------------------------------- Verification Process of (Unbalanced) Oil and Vinegar loads public key from UOV/public_key.txt and signature and hash value from UOV/signature.txt checks if signature is a valid UOV Signature for the hash value and outputs TRUE or FALSE ---------------------------------------------------------------*/ printf "******************************************************* \n"; printf "*** (U)OV Signature Scheme - Signature Verification *** \n"; printf "******************************************************* \n \n"; load "public_key.txt"; load "signature.txt"; printf "signature:= %o \n \n", signature; printf"message:= %o \n \n", hashvalue; hash2:=Pk; for i:=1 to o do for j:=1 to n do hash2[i]:=Evaluate(hash2[i],x[j],signature[j]); end for; end for; hash2:=Hashspace!(hash2); printf"P(signature):= %o \n \n", hash2; if hashvalue eq hash2 then printf"CORRECT!"; else printf"FALSE!"; end if;