java elgamal_ElGamal体制
ElGamal体制
(1)参数设置
① 随机选择大素数p,且要求p-1有大素因子,g是Zp*
的生成元。
② 随机选取一个整数x(1
公开密钥(公钥):k1=(y,g,p)
私有密钥(私钥):k2=x
(2)加密
消息明文为m,随机选取整数r,1
c=grmodp,c'=myrmodp
将密文(c,c')发送给接收方。
(3)解密
注1:发送方A利用接收方B的公钥进行加密,接收方利用自己的私钥进行解密。
注2:r解密过程中用不到,所以不需告知接收者。另,每次加密r的选取都不同,好处:
①如果每次r值不变均相同,则有:
②相同明文的密文不同,不同明文的密文可能相同,增加破译难度。
例 发送方为A,接收方为B,B选择素数p=13171,生成元g=2,私钥 x=23,A将消息m=bu加密后发送给B,消息明文按英文字母表m=bu=0120
解:密钥生成:
公钥:y=11852,g=2,p=13171
私钥:x=23
加密:
解密:
(4)攻击
攻击者需由y,g,p及y=g^xmodp求出x,该问题称为离散对数问题:
x=loggy
注:该问题目前还没有被解决,是公认的数学难题之一。
注:有如下一些攻击方法:小步大步算法、指数积分法,但威胁不大。
量子计算机若出现,则可以很轻松穷举破译离散对数问题。
java elgamal_ElGamal体制相关推荐
- java elgamal_ElGamal算法进行加密和解密的基本原理及实现
1.准备步骤 1)取大素数 p 和 g(g < p,g 最好是 p 的素根) 注解:若 g 是素数 p 的一个素根,则 g mod p, g^2 mod p , -, g^p-1 mod p 是 ...
- java管理从程序员到CTO的Java技术路线图
查了好多资料,发现还是不全,干脆自己整理吧,至少保证在我的做法正确的,以免误导读者,也是给自己做个记录吧! 在技巧方面无论我们怎么学习,总感觉需要晋升自已不知道自己处于什么水平了.但如果有清晰的指示图 ...
- Java程序员职业规划如何做?发展方向有哪些?
Java程序员职业规划如何做?程序员一直被贴青春饭的标签,很多人写了3年代码生活工作趋于稳定,每天忙忙碌碌抱怨没有时间提升学习,职业发展遇瓶颈,入行前就应该规划好自己的职业发展发展方向. 一.按照Ja ...
- Java程序员职业生涯规划完整版:从程序员到CTO
查了好多资料,发现还是不全,干脆自己整理吧,至少保证在我的做法正确的,以免误导读者,也是给自己做个记录吧! 在技巧方面无论我们怎么学习,总感觉需要晋升自已不知道自己处于什么水平了.但如果有清晰的指示图 ...
- Java程序员职业生涯规划完整版:从程序员到CTO( 摘)
原文链接:https://blog.csdn.net/chunyufeiyun/article/details/11394575 查了好多资料,发现还是不全,干脆自己整理吧,至少保证在我的做法正确的, ...
- Java程序员职业规划如何做?
在中国有很多人都认为IT行业是吃青春饭的,如果过了30岁就很难有机会再发展下去!其实现实并不是这样子的,在下从事.NET及JAVA方面的开发的也有8年的时间了,在这里在下想凭借自己的亲身经历,与大家一 ...
- 使用JPBC实现双线性对加密算法(BasicIdent体制的java实现)
转自 http://blog.csdn.net/qifuchenluo/article/details/45100851 前言 现在网上关于Java版的双线性对算法的实现的代码很少,我在前段时间想找 ...
- Java加密与解密笔记(三) 非对称加密
非对称的特点是加密和解密时使用的是不同的钥匙.密钥分为公钥和私钥,用公钥加密的数据只能用私钥进行解密,反之亦然. 另外,密钥还可以用于数字签名.数字签名跟上文说的消息摘要是一个道理,通过一定方法对数据 ...
- java自学手记——继承
java面向对象三大特点封装.继承和多态.继承作为三大特点之一,主要是为了实现多态的,即多态的前提条件是继承.代码示例: 1 class Person{ 2 String name; 3 String ...
最新文章
- 开发日记-20190905 关键词 Linux (Ubuntu) 下的Android模拟器:Genymotion
- Leetcode-595. 大的国家
- oracle 运营维护_oracle运维(持续更新)
- Genymotion模拟器安装ARM架构编译应用失败解决方案
- Oracle 常用命令举例
- OpenCV学习笔记(十六):直方图均衡化:equalizeHist()
- 【BZOJ2440】完全平方数,莫比乌斯反演+二分答案+容斥思想
- python海龟交易策略_【手把手教你】用Python量化海龟交易法则
- JavaScript学习笔记(三)——从简单模仿到创作
- 9008线刷包紧急救砖
- 这位985名校的教授火了!当了10年博导,竟无一博士毕业?
- 微信群发工具,纯Python编写~
- Android开发丶openinstall的集成和使用(推广二维码)
- 跨平台开发 uni-app
- 基于自然语言处理的垃圾信息过滤方法
- H3C无线控制器双链路备份配置
- uni-app关于uni.navigateTo的坑以及解决方案
- 一行代码得到全学科的北大核心期刊投稿方式
- 模电笔记 2理想运放电路
- 开学第一周acm训练总结
热门文章
- Xcode7无证书真机调试 Xcode Could ont lauch XXX process launch failed:security
- 做一款比“网红索菲亚”更实用机器人需哪些技能?猎豹移动3.21要交作业了
- 统计指定文件后缀的文件数量
- 厦门2017计算机考试题目,2017年厦门市小学生计算机LOGO语言竞赛(初赛)试卷
- 【一周AI新鲜事】“擎天柱”霸气登场/全球创新指数中国排名11位/摩尔定律死了,又活了?...
- 图像像素数和分辨率的区别
- 智能化赋能应急安全管理创新
- linux和windows哪个好用,Windows 1709和1803版本哪个好用
- Outlook Express客户端收发雅虎邮件Error logging in .PLEASE visit
- 2018 秦皇岛CCPC-Wannafly Winter Camp Day4 Div2 题解