离散对数加密算法首先,A、B两人要共同公开约定一个素数q和有限域Fq中的一个生成元g;   A选定一个随机数a∈{1,2

行走的黑颈鹤2022-10-04 11:39:541条回答

离散对数加密算法
首先,A、B两人要共同公开约定一个素数q和有限域Fq中的一个生成元g;   A选定一个随机数a∈{1,2,…,q-1}(a可以认为是A之私钥),并将g a(modq)传送给B;   B选定一个随机数b∈{1,2,…,q-1}(b可以认为是B之私钥),并将gb(modq)传送给A;   此时A可以算出(g b)a(modq),B也可以算出(g a)b(modq),由于(gb)a(modq) = (g a)b(modq) = g ab(modq),因此,A和B就形成了一个公共的密钥g ab(modq),日后便可以此钥来进行传统的加密解密计算,
1 我想问的是此时有明文M如何用g^ab加密和解密,以及算法的数学基础.
2 还是说只能用公钥g^a和g^b分别加密,那这种情况的数学基础是什么,数学基础要具体的运算式子,谁都知道是离散对数!

已提交,审核后显示!提交回复

共1条回复
笑傻涕淌小郎君 共回答了14个问题 | 采纳率92.9%
加密的时候直接用X=M*g^{ab}来实现,mod q就不写了,反正你知道域的概念.
至于解密,就是要知道g^{-ab}.以A为例,A已经掌握的信息是g,a,q,g^b,那么
g^{-ab}=g^{-ab+b(q-1)}=g^{b(q-1-a)}=(g^b)^{q-1-a}
这里唯一需要的条件就是g^{q-1}=1,注意{1,2,…,q-1}的乘法构成群,所以由Lagrange定理可得到g^{q-1}=1.
原理就是这样,这种方法叫Diffie–Hellman交换.
1年前

相关推荐

什么是离散对数mod是求余么?
lbs1491年前1
龙须弓 共回答了16个问题 | 采纳率87.5%
离散对数是在整数中,一种基于同余运算和原根的一种对数运算
当模m有原根时,设l为模m的一个原根,则当时:
,此处的Indlx为x以整数l为底,模φ(m)时的离散对数值
性质
离散对数和一般的对数有著相类似的性质:
所谓离散对数,就是给定正整数x,y,n,求出正整数k(如果存在的话),使y≡xk(mod n).