ElGamal加密

利用离散对数对大素数取模计算的困难性

  • STEP1: 获取密钥(p,r,b)\left(p,r,b\right)

    • pp: 选择一个素数pp

    • rr: pp的原根为rr

    • aa: 选取整数aa0ap10\leq a\leq p-1

    • bb: bra(modp)b\equiv r^a\left(\mod p\right)

  • STEP2: 加密信息MM

    • kk: 选取整数kk1kp21\leq k\leq p-2

    • γ\gamma: γrk(modp),0γp1\gamma\equiv r^k\left(\mod p\right),0\leq\gamma\leq p-1

    • δ\delta: δMbk(modp),0δp1\delta\equiv M\cdot b^k\left(\mod p\right),0\leq\delta\leq p-1

  • STEP3: 解密信息(γ,δ)\left(\gamma,\delta\right)

    Mγaδ(modp)M\equiv \overline{{\gamma^{a}}}\delta\left(\mod p\right)

最后更新于