y=104CD5256C36A4E2 // given

g=15B224DC17BE9B96 // given

p=EB8C340BBDF95BC3 // given

x=53795FE19DB89F3 // y=g^x mod p => dlp

a=3A01C4D1DBBA3897 // given

k=111111111 // a=g^k mod p => dlp

b=796104B9 // hash(name)

M=Serial

M=(a*x + b*k) mod (p-1)

u = a*x mod (p-1) = 584E650DA1961415

v = b*k mod (p-1) = 81788D921A0A9949

M = v+w mod (p-1) = D9C6F29FBBA0AD5E

verification:

(y^a * a^b) mod p == g^M mod p

r = y^a mod p = 1967B57CA867BE7F

s = a^b mod p = 169FCB3130F49782

t = r*s mod p = 3F825B3333337FEC

z = g^M mod p = 3F825B3333337FEC

=> t == z

and with dlp of: t = g^M mod p

M = 3CBECFED3CFA7032

proof: z = g^M mod p = 3F825B3333337FEC

## Bookmarks