At we see, the matrices A and B are 33−SLT and matrix C is 33−Diag. Also AzoBz=Cz.
We consider multiplicative subgroup H of order n=ng+ni+1=37 with generator
ω=1137p−1≡1101389(modp). Therefore, H={1,ω,ω2,ω3,ω4,...,ω36}={1,1101389,876941,1253722,373750,668759,747302,1444226,727349,1364683,1298322,1224122,644775,127745,1610054,257937,1257144,1496263,722913,1195510,1536124,1669124,870923,784349,1262357,1500979,469942,1466322,1364193,358753,1173208,586481,1605555,1190739,1632256,159545,899305}
Note that based on construction for matrices A, B and C, we can conclude that the most number nonzero entries in A and C is ng and in B is 2ng, therefore we can consider m=2ng.
Therefore, consider multiplicative subgroup K of order m=2ng=8 with generator γ=118p−1≡216(modp). Therefore, K={1,γ,γ2,...,γ7}={1,216,46656,7770,1678320,1678105,1631665,1670551}.
AHP Commitment
Commit(ck,if=(A,B,C),r∈R):
1 - The Prover Selects r=(r1,...,rsAHP(0)) of random space R.
2- The Prover calculates OAHP=Enc(if=(A,B,C)) as encoded index as following:
The polynomial rowA′:K→H with rowA′(k=γi)=ωri for 1≤i≤∣∣A∣∣ , and otherwise rowA′(k) returns an arbitrary element in H.
So rowA′(k) on K is a polynomial so that rowA′(1)=ω33 , rowA′(γ)=ω34, rowA′(γ2)=ω35 , rowA′(γ3)=ω36 and otherwise rowA′(k) returns arbitrary elements of H, for example rowA′(γi)=ωi for 4≤i≤7. Therefore,
Also, colA′:K→H with colA′(k=γi)=ωci for 1≤i≤∣∣A∣∣ and otherwise colA′(k) returns an arbitrary element in H.
So, colA′(k) on K is a polynomial so that colA′(1)=1 , colA′(γ)=ω2, colA′(γ2)=1 , colA′(γ3)=ω33 and otherwise colA′(k) returns arbitrary elements of H, for example colA′(γi)=ωi for 4≤i≤7. Therefore, colA′(x)=∑i=18yiLi(x)=344425x7+1483132x6+490249x5+246919x4+662128x3+101801x2+833805x+872505
and , valA′:K→H with valA′(k=γi)=uH(rowA′(k),rowA′(k))uH(colA′(k),colA′(k))vi for 1≤i≤∣∣A∣∣=4 where vi is value of ith nonzero entry and otherwise valA′(k) returns zero. Note that based on definition of uH(x,y), for each x∈H, uH(x,x)=∣H∣x∣H∣−1=37x36. So valA′(1)=(37rowA′36(1))(37colA′36(1))1=37×(ω33)36×37×11, valA′(γ)=(37rowA′36(γ))(37colA′36(γ))2=37×(ω34)36×37×(ω2)362 , valA′(γ2)=(37rowA′36(γ2))(37colA′36(γ2))1=37×(ω35)36×37×11, valA′(γ3)=(37rowA′36(γ3))(37colA′36(γ3))7=37×(ω36)36×37×(ω33)367 ,
and valA′(k)=0 for k∈K−{1,γ,γ2,γ3}. Therefore valA′(x)=∑i=18yiLi(x)=1349736x7+870027x6+189189x5+1024786x4+201373x3+194896x2+1568354x+1218943
Now, rowA′^, colA′^ and valA′^ are extensions of rowA′, colA′ and valA′ so that are agree on K.
Therefore,
and similarly
Similarly, rowB′:K→H so that rowB′(1)=ω33, rowB′(γ)=ω33, rowB′(γ2)=ω34 , rowB′(γ3)=ω35, rowB′(γ4)=ω35, rowB′(γ5)=ω36 and for the rest values of K, rowB′(k) returns arbitrary elements of H, for example rowB′(γi)=ωi for 6≤i≤7. Therefore rowB′(x)=∑i=18yiLi(x)=745068x7+1550888x6+311204x5+1053454x4+781197x3+709275x2+356449x+718167
Also, colB′:K→H so that colB′(1)=1 , colB′(γ)=ω, colB′(γ2)=ω10, colB′(γ3)=1 , colB′(γ4)=ω34, colB′(γ5)=1 and for the rest values of K , colB′(k) returns arbitrary elements of H, for example, colB′(γi)=ωi for 6≤i≤7. Therefore colB′(x)=∑i=18yiLi(x)=757883x7+1334841x6+941775x5+1041045x4+898965x3+1498879x2+781052x+1137166
and , valB′:K→H so that valB′(1)=(37rowB′36(1))(37colB′36(1))5=37×(ω33)36×37×15=, valB′(γ)=(37rowB′36(γ))(37colB′36(γ))1=37×(ω33)36×37×(ω)361 ,
valB′(γ2)=(37rowB′36(γ2))(37colB′36(γ2))1=37×(ω34)36×37×11 , valB′(γ3)=(37rowA′36(γ3))(37colA′36(γ3))10=37×(ω35)36×37×110, valB′(γ4)=(37rowA′36(γ4))(37colA′36(γ4))1=37×(ω35)36×37×(ω34)361 , valB′(γ5)=(37rowA′36(γ5))(37colA′36(γ5))1=37×(ω36)36×37×11 ,
and valB′(k)=0 for k∈K−{1,γ,γ2,γ3,γ4,γ5}. Therefore valB′(x)=∑i=18yiLi(x)=1592245x7+169676x6+1573426x5+1612428x4+256156x3+1249861x2+995621x+462292
Now, rowB′^, colB′^ and valB′^ are extensions of rowB′, colB′ and valB′ so that are agree on K.
Similarly, rowC′:K→H so that rowC′(1)=ω33, rowC′(γ)=ω34, rowC′(γ2)=ω35, rowC′(γ3)=ω36 and for the rest values of K, rowC′(k) returns arbitrary elements of H, for example rowC′(γi)=ωi for 4≤i≤7. Therefore rowC′(x)=∑i=18yiLi(x)=739930x7+100821x6+664621x5+147929x4+1066695x3+902750x2+454730x+469905
Also, colC′:K→H so that colC′(1)=ω33 , colC′(γ)=ω34, colC′(γ2)=ω35, colC′(γ3)=ω36 and for the rest values of K , colC′(k) returns arbitrary elements of H, for example colC′(γi)=ωi for 4≤i≤7. Therefore colC′(x)=∑i=18yiLi(x)=739930x7+100821x6+664621x5+147929x4+1066695x3+902750x2+454730x+469905
and , valC′:K→H so that valC′(1)=(37rowC′36(1))(37colC′36(1))1=37×(ω33)36×37×(ω33)361, valC′(γ)=(37rowC′36(γ))(37colC′36(γ))1=37×(ω34)36×37×(ω34)361 , valC′(γ2)=(37rowC′36(γ2))(37colC′36(γ2))1=37×(ω35)36×37×(ω35)361 ,valC′(γ3)=(37rowC′36(γ3))(37colC′36(γ3))1=37×(ω36)36×37×(ω36)361
and valC′(k)=0 for k∈K−{1,γ,γ2,γ3}. Therefore valC′(x)=∑i=18yiLi(x)=435354x7+1188860x6+1158417x5+525698x4+1126753x3+467855x2+544916x+1083027
Now, rowC′^, colC′^ and valC′^ are extensions of rowC′, colC′ and valC′ so that are agree on K.