ElGamal加密体制
ElGamal加密体制的公私密钥生成过程如下。
(1)随机选择一个满足安全要求的大素数p,并生成有限域。的一个生成元;
(2)选一个随机数x(1<r<p-1),计算,则公钥为(y,g,p),私钥为x。
1.加密过程
与RSA密码体制相同,加密时首先将明文比特串分组,使得每个分组对应的十进制数小于,即分组长度小于,然后对每个明文分组分别加密。具体过程分为如下几步:
(1)得到接收方的公钥(y,g,p);
(2)把消息m分组为长度为的消息分组
(3)对第i块消息(1≤i≤t)随机选择整数,1<<p-1;
(4)计算;
(5)将密文发送给接收方。
2.解密过程
(1)接收方收到的密文;
(2)使用私钥和解密算法进行计算;
(3)得到明文。
3.正确性
下面证明若严格按步骤执行算法,则接收者可以使用私钥和解密算法恢复明文。
因为
,;
所以
又因为,故
得证。
ElGamal加密过程需要两次模指数运算和一次模乘积运算,解密过程需要模指数运算,求逆运算和模乘积运算各一次。每次加密运算需要选择一个随机数,所以密文既依赖于明文,又依赖于选择的随机数,故对于同一个明文,不同的时刻生成的密文不同。另外,El-Gamal加密使得消息扩展了两倍,即密文的长度是对应明文长度的两倍。
ElGamal加密体制相关推荐
- merkle-hellman背包算法 java_浅析几种公钥密码体制-RSA;Merkle-Hellman、背包加密体制、ECC优缺点...
自从公钥密码体制被提出以来,出现了许多公钥密码方案 如RSA.ELGamal密码体制.背包算法和ECC.XTR.NTRU等. 下面就介绍一下各种密码体制的优缺点,并进行比较. 2RSA 在Diffie ...
- 基于同态加密体制的安全多方计算
本文首发公众号VenusBlockChain,关注公众号后可免费阅读!VenusBlockChain致力于区块链技术研究,传播区块链技术和解决方案.区块链应用落地.区块链行业动态等.有兴趣的小伙伴们, ...
- 【公钥密码】ECC椭圆密码体制 (实现Elgamal加密方法)
CryptoAlgor 项目地址 (四个实验完整源码) 1. Github 项目地址 2. Gitee 项目地址 该项目的目录: 1.四个古典密码 /classcipher ...
- ElGamal加密、签名算法笔记
2019独角兽企业重金招聘Python工程师标准>>> 注意:只是个人理解,可能有不正确的地方 ElGamal加密算法是一种非对称加密算法,基于Diffie-Hellman密钥交换算 ...
- elgamal签名算法c语言,ElGamal加密、签名算法笔记
注意:只是我的理解,可能有不正确的地方算法 ElGamal加密算法是一种非对称加密算法,基于Diffie-Hellman密钥交换算法,由Taher Elgamal在1985年提出.安全 ElGamal ...
- ELGAmal加密与解密
实验目的 熟悉EIGamal加解密算法的构造和运行过程,加深离散对数问题的理解. 二. 实验原理 读取消息M 使用serializeMsg函数转化消息M serializeMsg函数的运行结果是将明文 ...
- 现代密码学期末复习总结(个人整理自存)
写在前面: 以下材料均为个人从互联网各处整理而成,不保证所含信息完全正确,考点基于个人学校答疑课和相关考试资料总结,不保证考点和您的实际考点相吻合. 仅供学习分享,如需转载还请私信告知. word版文 ...
- 2015上半年系统集成项目管理工程师(上午+下午)真题解析
上午试题 1.信息化是人类社会发展的一个高级进程,它的目标是( ). A.建设基于现代信息技术的先进社会生产工具 B.创建信息时代的社会生产力 C.推动社会生产关系及社会上层建筑的改革 ...
- 用c语言elgamal共密钥密码加密算法,非对称密钥体制RSA加密原理
一.非对称密钥加密概述 前面讲述了对称密钥加密体制.使用对称密钥加密体制进行保密通信时,任意不同的两个用户之间都应该使用互不相同的密钥.这样,如果一个网络中有n个用户,他们之间彼此都可能进行秘密通信, ...
最新文章
- 2018-3-22论文一种新型的智能算法--狼群算法(笔记三)算法的步骤+收敛性分析
- 膨胀腐蚀操作(MATLAB)
- 文档过期打不开怎么办_网络上下载文档,常见的3个问题,一招教你快速解决!...
- sql 中使用 where 1=1 和 where 1=0的作用
- 从 Alpha 到 Beta,这次是 New mPaaS
- 浅谈vue $mount()
- 博文视点图书市场快讯 第46期
- centos安装cmake
- i2c驱动之at24c08(1)
- 推荐好用的两个搜索下载书籍网站
- 阳线双响炮K线形态,上升势不可挡,送指标源码
- Web前端零基础入门HTML5+CSS3基础教程——了解前端
- python除数为0报错_python——异常
- Android部分手机报 解析包时出现问题 原因与解决方法
- 鸿蒙os系统测评,鸿蒙OS 2首批评价出炉,看已升级用户都怎么说的
- arcmap fishnet 经纬度
- 【Pytorch】复现FCN for Left Ventricle(LV) segmentation记录
- 为什么我中签的不是股票,都是转债?
- linux5.8下dns,Redhat 5.8 操作系统上DNS详细配置(DNS resolution for SCAN VIPs)
- leetcode——回溯法基础
热门文章
- 前端css让div浮动,Web前端篇:css浮动
- Java对接海康摄像头坑点总结
- c语言strcat()/strcat_s()函数详解
- android手机到iphone6s,iPhone6s相当于现在什么档次的安卓手机?结果让国产手机品牌汗颜...
- 验证证书链 java_java实现证书链和签名验证
- 讲python讲得好的评价_分析20万条弹幕告诉你,8.9分的高分剧《隐秘的角落》到底好看在哪儿?...
- Undetected
- 如何将本地代码推送至github
- 实验6、灰盒测试实验
- 提升网站黏着度的技术手段其实跟“搞对象”完全一样,也有“潜规则”