首页
随机
登录
设置
资助
关于维基学院
免责声明
搜索
院系
:
李煌数学研究院/非对称公钥加密算法
语言
监视
编辑
<
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:李煌数学研究院