ElGamal密码

Posted block2016

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ElGamal密码相关的知识,希望对你有一定的参考价值。

ElGamal也是一种基于离散对数的公钥体制,与Diffie-Hellman密钥体制密切相关。ElGamal密码体系用于数字签名标准(DSS)和S/MIME电子邮件标准等一些技术标准中。

算法描述:

  1、用户A选择一个素数qq的某本原根α,并产生一随机数XA1 < XA < q - 1。计算YA = αXA mod qA的私钥为XA,公钥为{q , α , YA}

  2、用户B要和用户A通信,使用A的公钥加密信息。加密过程如下:

    a) 使用分组密码序列的方式发送消息,每块分组表示成一个整数M, 1 ≤ M ≤ q - 1

    b) 选择一个随机整数β,使得1 ≤ β ≤ q - 1。每块分组的k值不相同

    c) 计算一次密钥K = (YA)β mod q

    d) 将M加密成明文对(C1,C2),其中

      C1 = αβ mod q     C2 = KM mod q

  用户A恢复明文

    a)  通过计算K = (C1)XA mod q恢复密钥K   

    b)  计算M = (C2K-1) mod q

 

之所以每块分组的k都必须不同是因为若有多块分组k相同,则攻击者可以根据某块已知明文推算出其他的未知明文。

    C1.1 = αk mod q       C2.1 = KM1 mod q

    C1.2 = αk mod q       C2.2 = KM2 mod q

  于是

    

    如果M1已知,则可以很容易计算出M2

    M2 = (C2.1)-1C2.2M1 mod q

以上是关于ElGamal密码的主要内容,如果未能解决你的问题,请参考以下文章

密码学之公钥密码体系:ElGamal算法

密码学——公钥密码体系之ElGamal算法3

ELGamal非对称加密算法

ElGamal加密算法|公钥密码|数字签名|密码学|信息安全

ElGamal密码

什么是ElGamal非对称加密算法?