Legendre符號的用途
一、 二次剩餘
勒讓德符號的提出的意義是判斷一個數是否是模n的二次剩餘,所以研究勒讓德符號之前應該瞭解一下二次剩餘。
存在x使x的平方與a MOD (p)就稱a爲模p的二次剩餘,其中p爲素數,a>0且a<p。
通過勒讓德符號和雅可比符號可以判定二次剩餘是否存在。
二、 勒讓德符號
勒讓德符號可以計算當p爲素數的情況的二次剩餘判別問題,而雅可比符號判定條件爲a爲任意整數,p爲任意奇數。
高斯推導出著名的二次互反律。
通過二次互反律解決了勒讓德符號的計算問題,可以通過遞歸調用解決計算。
三、 計算:
(1)如果a=1,則L(a,p)=1;
(2)如果a爲偶數,則L(a,p)= L(a/2,p)*(-1)(p2-1)/8;
(3)如果a爲奇數,且不等於1,則L(a,p)=L(p mod a,a)*(-1)(a-1)*(p-1)/4.
int Legrend(int a, int p)
{if (a == 1)
return1;
if (p % a== 0)
return0;
if (a % 2== 0)
returnLegrend(a / 2, p) * pow(-1, (pow(p, 2) - 1) / 8);
returnLegrend(p%a, a)*pow(-1, (a - 1)*(p - 1) / 4);}
運行結果:
四、 用途:
(1)可以判別選取的數是否爲模n的二次剩餘。
(2)可以判斷兩個大數是否被整除,即判斷勒讓德符號是否爲0。
(3)在Feige-Fiat-Shamir身份驗證體制中,由仲裁人選取一個數v,令v爲模n的一個二次剩餘,所以通過勒讓德符號的計算,可以快速計算出勒讓德符號來判別v是否符合要求。