首页
随机
登录
设置
资助
關於維基學院
免责声明
搜索
院系
:
李煌數學研究院/非對稱公鑰加密算法
语言
监视
编辑
<
School:李煌數學研究院
李煌算法(m<q)
编辑
任取
2
{\displaystyle 2}
個任意大的隨機正整數
q
,
s
,
{\displaystyle q,s,}
滿足
(
q
,
s
)
=
1
,
q
<
s
;
{\displaystyle (q,s)=1,q<s;}
通過
p
=
s
q
−
1
{\displaystyle p=sq-1}
計算出
p
;
{\displaystyle p;}
隨機産生
k
1
,
k
2
,
k
3
{\displaystyle k_{1},k_{2},k_{3}}
使三者滿足
(
k
1
,
q
)
=
1
,
(
k
2
,
q
)
=
1
,
(
k
3
,
q
)
=
1
,
{\displaystyle (k_{1},q)=1,(k_{2},q)=1,(k_{3},q)=1,}
並且通過方程
x
1
q
≡
1
(
mod
s
k
1
p
)
,
x
2
q
≡
1
(
mod
s
k
1
k
2
p
)
,
x
3
q
≡
1
(
mod
s
k
1
k
2
k
3
p
)
{\displaystyle x_{1}q\equiv 1{\pmod {sk_{1}p}},x_{2}q\equiv 1{\pmod {sk_{1}k_{2}p}},x_{3}q\equiv 1{\pmod {sk_{1}k_{2}k_{3}p}}}
依次算出
x
1
,
x
2
,
x
3
;
{\displaystyle x_{1},x_{2},x_{3};}
公開
s
,
x
1
,
x
2
,
x
3
,
{\displaystyle s,x_{1},x_{2},x_{3},}
保密
p
,
q
,
{\displaystyle p,q,}
丟棄
k
1
,
k
2
,
k
3
;
{\displaystyle k_{1},k_{2},k_{3};}
{\displaystyle }
每次加密都隨機産生
4
{\displaystyle 4}
個大正整數
t
,
w
,
h
,
u
,
{\displaystyle t,w,h,u,}
這
4
{\displaystyle 4}
個數兩兩互素
,
{\displaystyle ,}
且與
s
,
x
1
,
x
2
,
x
3
,
{\displaystyle s,x_{1},x_{2},x_{3},}
全部都互素
,
{\displaystyle ,}
通過加密公式
c
=
t
s
+
w
x
1
+
h
x
2
+
u
x
3
+
m
{\displaystyle c=ts+wx_{1}+hx_{2}+ux_{3}+m}
計算出密文
c
,
{\displaystyle c,}
隨機産生密文
v
,
{\displaystyle v,}
滿足
t
+
w
+
h
+
u
−
v
<
m
,
{\displaystyle t+w+h+u-v<m,}
加密完後丟棄
t
,
w
,
h
,
u
,
{\displaystyle t,w,h,u,}
傳送密文
c
,
v
{\displaystyle c,v}
給解密方
;
{\displaystyle ;}
解密方通過私鑰
p
,
q
{\displaystyle p,q}
和解密公式
m
=
(
(
c
q
−
v
)
mod
p
)
−
(
(
(
c
q
−
v
)
mod
p
)
mod
q
)
q
{\displaystyle m={\frac {{{\bigg (}{(cq-v)}\mod p{\bigg )}}-{{\bigg (}{{\big (}(cq-v)\mod p{\big )}\mod q}{\bigg )}}}{q}}}
恢複出明文
m
{\displaystyle m}
來源
编辑
《計算機算法基礎》.李煌 著
<<
School:李煌數學研究院