@profile<EOL>def proveG1(x,tTilde,kw,y):
<EOL>assertType(x, G1Element)<EOL>assertType(tTilde, G2Element)<EOL>beta = pair(x,tTilde)<EOL>Q = generatorG1()<EOL>p = Q*kw<EOL>v = randomZ(orderGt())<EOL>t1 = Q*v<EOL>t2 = beta**v<EOL>t1.normalize()<EOL>c = hashZ(Q,p,beta,y,t1,t2)<EOL>u = (v-(c*kw)) % orderGt()<EOL>return (p,c,u)<EOL>
Generate a zero-knowledge proof that DL(Q*kw) == DL(e(x,tTilde)^kw) where
<Q> = G1.