我必須實施Jablon的協議(paper),但我一直在坐着一個bug兩個小時。在Zp中是否((a^x)^ 1/x)== a? (對於Jablon協議)
我對數學不太好,所以我不知道這是我的錯在寫它還是它是不可能的。如果這是不可能的,我不會看到Jablon的協議如何實現,因爲它依賴於((gP^x)^ yi)^(1/x)= gP^yi的事實。
取下面的代碼。它不起作用。
BigInteger p = new BigInteger("101");
BigInteger a = new BigInteger("83");
BigInteger x = new BigInteger("13");
BigInteger ax = a.modPow(x, p);
BigInteger xinv = x.modInverse(p);
BigInteger axxinv = ax.modPow(xinv, p);
if (a.equals(axxinv))
System.out.println("Yay!");
else
System.out.println("How is this possible?");
這太不公平了,我只能給你+1。這個答案顯然值得*至少* +2。 – ruakh