ElGamal密码

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

算法描述:

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

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

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

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

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

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

      C1 = αk 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

时间: 2024-10-11 12:08:39

ElGamal密码的相关文章

GF(p)上的ELGamal型椭圆曲线密码详解(Java实现)

GitHub 椭圆曲线密码 椭圆曲线密码(Elliptic Curve Cryptosystem),简称ECC,是Neal Koblitz和Victor Miller于1985年提出的. 研究发现,有限域上的椭圆曲线上的一些点构成交换群,而且离散对数问题是难解的.于是在此群上定义ELGamal密码,并称为椭圆曲线密码. 目前,椭圆曲线密码已成为除RSA密码之外呼声最高的公钥密码之一.它密钥短.签名短.软件实现规模小.硬件实现电路省电.普遍认为,160位长的椭圆曲线密码的安全性相当于1024位的R

希赛信息安全工程师考试视频教程介绍

信息安全工程师是软考新增的一项考试,将于2016年下半年开考.为了帮助广大考生们顺利通过考试,希赛软考学院编写了信息安全工程师培训视频教程,下面为你介绍教程相关信息.  一.希赛信息安全工程师考试视频教程介绍 <信息安全工程师考试培训视频教程(2016)>是由希赛教育信息安全工程师考试培训专家根据信息安全工程师考试大纲.教材编写的经验而录制的视频教程.视频对信息安全工程师考试知识点进行了全面深入的讲解,对考试重难点进行了梳理. <信息安全工程师考试培训视频教程(2016)>每个视频

常用加密算法之非对称加密算法

非对称加密算法 非对称加密算法是一种密钥的保密方法.非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey).公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密:如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密.因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法. 非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开:得到该公用密钥的乙方使用该密钥对

FIDO联盟:我们将杀死密码

前不久发布的三星S5与iPhone 5S一样,配备了指纹识别技术.但更为重要的是,这一识别器可以与PayPal关连,进而与多种支付系统相连.通过这一过程,你很可能会摆脱密码,用指纹就可以畅游网络.当然,S5的指纹识别技术还不完美,但这只是一个开始.Google正在开发一款USB钥匙扣,用它可以直接登陆账户:微软虽然没有透露更多细节,但亦表示正在考虑寻求替代密码的另一种方式. 这一切都不是空穴来风,而是建立在一个耗时2年才确立的标准之上.2012年起,FIDO(快速身份在线)联盟便开始建立连接硬件

密码技术小总结

密码技术与编码技术不同,但现在很多人把两者的技术混在一起,但两者某些地方界限确实有些模糊.密码技术与信息隐藏也不同,密码技术是让你看得到但是看不懂,信息隐藏是让你看不到找不到 参考和查看更多内容推荐 本文只是简要总结 http://www.mamicode.com/info-detail-2252602.html https://blog.csdn.net/pdsu161530247/article/details/75667218 <码书 解码与编码的战争> <图解密码技术 第三版&g

密码算法详解——AES

0 AES简介 美国国家标准技术研究所在2001年发布了高级加密标准(AES).AES是一个对称分组密码算法,旨在取代DES成为广泛使用的标准. 根据使用的密码长度,AES最常见的有3种方案,用以适应不同的场景要求,分别是AES-128.AES-192和AES-256.本文主要对AES-128进行介绍,另外两种的思路基本一样,只是轮数会适当增加. 1 算法流程 AES加解密的流程图如下: AES加密过程涉及到4种操作:字节替代(SubBytes).行移位(ShiftRows).列混淆(MixCo

linux 本地账号密码无法登陆,一直返回 登陆的login界面

登陆redhat一直是返回login,账号和密码没错 通过ssh crt类的软件远程连接系统 然后更改文件   vi /etc/pam.d/login 把 :session required /lib/security/pam_limits.so 更改为:session required /lib64/security/pam_limits.so wq保存

凯撒密码、GDP格式化输出、99乘法表

1凯撒密码加密plaincode=input('请输入明文:')print('密文:',end='')for i in plaincode:print(chr(ord(i)+3),end='') 2.国家名称 GDP总量(人民币亿元) 中国 ¥765,873.4375澳大利亚 ¥ 78,312.4375 print('国家名称 GDP总量(人民币亿元)')print('{0:''<12}¥{1:''>10,.2f}'.format('中国',765873.4375))print('{0:''&

洛谷 P1079 Vigen&#232;re 密码 题解

此文为博主原创题解,转载时请通知博主,并把原文链接放在正文醒目位置. 题目链接:https://www.luogu.org/problem/show?pid=1079 题目描述 16 世纪法国外交家 Blaise de Vigenère 设计了一种多表密码加密算法――Vigenère 密 码.Vigenère 密码的加密解密算法简单易用,且破译难度比较高,曾在美国南北战争中为 南军所广泛使用. 在密码学中,我们称需要加密的信息为明文,用 M 表示:称加密后的信息为密文,用 C 表示:而密钥是一种