注:需要有密码学基础才能看懂,全文以N=21举例
基础推导:
假设模数
N
=
p
⋅
q
N=p\cdot q
N=p⋅q 。p和q是两个不同的奇素数,N是一个Blum Integer(参考链接)。举例N=21(p=3,q=7).
Z
N
∗
Z_N^{*}
ZN∗是他的简化剩余系。则
Z
N
∗
Z_N^{*}
ZN∗含有
(
p
−
1
)
⋅
(
q
−
1
)
(p-1)\cdot (q-1)
(p−1)⋅(q−1)个元素(原理:欧拉函数).
N
=
21
,
ϕ
(
N
)
=
2
∗
6
=
12
,
Z
N
∗
=
{
1
,
2
,
4
,
5
,
8
,
10
,
11
,
13
,
16
,
17
,
19
,
20
}
.
N=21,\phi (N)=2*6=12,Z_N^{*} = \{ 1,2,4,5,8,10,11,13,16,17,19,20\}.
N=21,ϕ(N)=2∗6=12,ZN∗={1,2,4,5,8,10,11,13,16,17,19,20}.
根据Chinese remainder theorem(中国剩余定理),我们可以作如下映射
x
→
(
x
m
o
d
p
,
x
m
o
d
q
)
x → (x mod p, x mod q)
x→(xmodp,xmodq),且是双射。
上面
Z
N
∗
Z_N^{*}
ZN∗的点则变为了
{
(
1
,
1
)
,
(
2
,
2
)
,
(
1
,
4
)
,
(
2
,
5
)
,
(
2
,
1
)
,
(
1
,
3
)
,
(
2
,
4
)
,
(
1
,
6
)
,
(
1
,
2
)
,
(
2
,
3
)
,
(
1
,
5
)
,
(
2
,
6
)
}
.
\{ (1,1),(2,2),(1,4),(2,5),(2,1),(1,3),(2,4),(1,6),(1,2),(2,3),(1,5),(2,6)\}.
{(1,1),(2,2),(1,4),(2,5),(2,1),(1,3),(2,4),(1,6),(1,2),(2,3),(1,5),(2,6)}.这个点构成的
Z
N
∗
Z_N^{*}
ZN∗同样构成乘法群。(1)封闭性,
x
=
(
x
p
,
x
q
)
,
y
=
(
y
p
,
y
q
)
.
z
=
(
x
p
⋅
y
p
m
o
d
p
,
y
p
⋅
y
q
m
o
d
q
)
.
如
果
x
,
y
属
于
Z
N
∗
那
么
x
p
,
x
q
,
y
p
,
y
q
均
为
非
零
元
,
可
知
z
m
o
d
p
,
z
m
o
d
q
同
样
为
非
零
元
。
x=(x_p,x_q),y=(y_p,y_q).z=(x_p \cdot y_p mod p,y_p\cdot y_q mod q).如果x,y属于Z_N^{*} 那么x_p,x_q,y_p,y_q均为非零元,可知z mod p,z mod q同样为非零元。
x=(xp,xq),y=(yp,yq).z=(xp⋅ypmodp,yp⋅yqmodq).如果x,y属于ZN∗那么xp,xq,yp,yq均为非零元,可知zmodp,zmodq同样为非零元。 (2)单位元(1,1).(3)逆元满足。所以是一个群。
如果
r
=
x
2
m
o
d
N
r=x^{2} mod N
r=x2modN是二次剩余,且是
Z
N
∗
Z_N^{*}
ZN∗中的元素,那么他在
Z
N
∗
Z_N^{*}
ZN∗中有四个平方根。
x
p
=
x
m
o
d
p
,
x
q
=
x
m
o
d
q
x_p=x mod p,x_q =x mod q
xp=xmodp,xq=xmodq
x
1
=
(
x
p
,
x
q
)
x_1=(x_p,x_q)
x1=(xp,xq)
x
2
=
(
−
x
p
,
x
q
)
x_2=(-x_p,x_q)
x2=(−xp,xq)
x
3
=
(
x
p
,
−
x
q
)
x_3=(x_p,-x_q)
x3=(xp,−xq)
x
4
=
(
−
x
p
,
−
x
q
)
x_4=(-x_p,-x_q)
x4=(−xp,−xq)
x
1
2
=
x
2
2
=
x
3
2
=
x
4
2
=
r
m
o
d
N
x_1^{2} =x_2^{2} =x_3^{2} =x_4^{2}=r mod N
x12=x22=x32=x42=rmodN
因此这四个均是r不同的平方根。
可知在
Z
N
∗
Z_N^{*}
ZN∗中有
(
p
−
1
)
⋅
(
q
−
1
)
/
4
(p-1)\cdot (q-1)/4
(p−1)⋅(q−1)/4个元素是二次剩余。(
Z
N
∗
Z_N^{*}
ZN∗有
(
p
−
1
)
⋅
(
q
−
1
)
个
元
素
,
每
一
个
二
次
剩
余
在
(p-1)\cdot (q-1)个元素,每一个二次剩余在
(p−1)⋅(q−1)个元素,每一个二次剩余在Z_N^{*}
中
有
四
个
平
方
根
,
因
此
有
(
p
−
1
)
⋅
(
q
−
1
)
/
4
个
元
素
是
二
次
剩
余
中有四个平方根,因此有(p-1)\cdot (q-1)/4个元素是二次剩余
中有四个平方根,因此有(p−1)⋅(q−1)/4个元素是二次剩余)
在
Z
21
∗
Z_{21}^{*}
Z21∗中:
(
1
,
1
)
2
=
(
1
,
1
)
m
o
d
21
,
(
2
,
2
)
2
=
(
1
,
4
)
m
o
d
21
,
(
1
,
4
)
2
=
(
1
,
2
)
m
o
d
21
,
(
2
,
5
)
2
=
(
1
,
4
)
m
o
d
21
剩
下
的
自
行
计
算
总
之
最
后
结
果
为
{
(
1
,
1
)
,
(
1
,
4
)
,
(
1
,
2
)
}
三
个
平
方
剩
余
(1,1)^{2}=(1,1) mod 21,(2,2)^{2}=(1,4) mod 21,(1,4)^{2}=(1,2) mod 21,(2,5)^{2}=(1,4) mod 21剩下的自行计算总之最后结果为\{ (1,1),(1,4),(1,2)\}三个平方剩余
(1,1)2=(1,1)mod21,(2,2)2=(1,4)mod21,(1,4)2=(1,2)mod21,(2,5)2=(1,4)mod21剩下的自行计算总之最后结果为{(1,1),(1,4),(1,2)}三个平方剩余
困难性问题:如果存在一个算法A能以多项式时间t,以概率 ≥ ξ \geq \xi ≥ξ寻找以模为N=pq的二次剩余,那么存在算法 A ∗ A^{*} A∗以时间 t + O ( l o g N ) O ( 1 ) t+O(log N)^{O(1)} t+O(logN)O(1),以概率 ≥ ξ 2 \geq \frac{\xi}{2} ≥2ξ分解N。证明略。
参考资料:
1.The Group of Signed Quadratic Residues and Applications(Dennis Hofheinz and Eike Kiltz)
2.Notes on Zero Knowledge(Professor Luca Trevisan)
3.https://math.stackexchange.com/questions/1090675/blum-blum-shub-pseudorandom-numbers-clarification-on-prerequisites
4.https://crypto.stanford.edu/pbc/notes/numbertheory/crt.html
5.https://brilliant.org/wiki/legendre-symbol/