利用离散对数对大素数取模计算的困难性
STEP1: 获取密钥(p,r,b)\left(p,r,b\right)(p,r,b)ppp: 选择一个素数ppprrr: ppp的原根为rrraaa: 选取整数aaa,0≤a≤p−10\leq a\leq p-10≤a≤p−1bbb: b≡ra(mod p)b\equiv r^a\left(\mod p\right)b≡ra(modp)STEP2: 加密信息MMMkkk: 选取整数kkk,1≤k≤p−21\leq k\leq p-21≤k≤p−2γ\gammaγ: γ≡rk(mod p),0≤γ≤p−1\gamma\equiv r^k\left(\mod p\right),0\leq\gamma\leq p-1γ≡rk(modp),0≤γ≤p−1δ\deltaδ: δ≡M⋅bk(mod p),0≤δ≤p−1\delta\equiv M\cdot b^k\left(\mod p\right),0\leq\delta\leq p-1δ≡M⋅bk(modp),0≤δ≤p−1STEP3: 解密信息(γ,δ)\left(\gamma,\delta\right)(γ,δ)M≡γa‾δ(mod p)M\equiv \overline{{\gamma^{a}}}\delta\left(\mod p\right)M≡γaδ(modp)
STEP1: 获取密钥(p,r,b)\left(p,r,b\right)(p,r,b)
ppp: 选择一个素数ppp
rrr: ppp的原根为rrr
aaa: 选取整数aaa,0≤a≤p−10\leq a\leq p-10≤a≤p−1
bbb: b≡ra(mod p)b\equiv r^a\left(\mod p\right)b≡ra(modp)
STEP2: 加密信息MMM
kkk: 选取整数kkk,1≤k≤p−21\leq k\leq p-21≤k≤p−2
γ\gammaγ: γ≡rk(mod p),0≤γ≤p−1\gamma\equiv r^k\left(\mod p\right),0\leq\gamma\leq p-1γ≡rk(modp),0≤γ≤p−1
δ\deltaδ: δ≡M⋅bk(mod p),0≤δ≤p−1\delta\equiv M\cdot b^k\left(\mod p\right),0\leq\delta\leq p-1δ≡M⋅bk(modp),0≤δ≤p−1
STEP3: 解密信息(γ,δ)\left(\gamma,\delta\right)(γ,δ)
M≡γa‾δ(mod p)M\equiv \overline{{\gamma^{a}}}\delta\left(\mod p\right)M≡γaδ(modp)
最后更新于3年前