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体制相关推荐

  1. 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 是 ...

  2. java管理从程序员到CTO的Java技术路线图

    查了好多资料,发现还是不全,干脆自己整理吧,至少保证在我的做法正确的,以免误导读者,也是给自己做个记录吧! 在技巧方面无论我们怎么学习,总感觉需要晋升自已不知道自己处于什么水平了.但如果有清晰的指示图 ...

  3. Java程序员职业规划如何做?发展方向有哪些?

    Java程序员职业规划如何做?程序员一直被贴青春饭的标签,很多人写了3年代码生活工作趋于稳定,每天忙忙碌碌抱怨没有时间提升学习,职业发展遇瓶颈,入行前就应该规划好自己的职业发展发展方向. 一.按照Ja ...

  4. Java程序员职业生涯规划完整版:从程序员到CTO

    查了好多资料,发现还是不全,干脆自己整理吧,至少保证在我的做法正确的,以免误导读者,也是给自己做个记录吧! 在技巧方面无论我们怎么学习,总感觉需要晋升自已不知道自己处于什么水平了.但如果有清晰的指示图 ...

  5. Java程序员职业生涯规划完整版:从程序员到CTO( 摘)

    原文链接:https://blog.csdn.net/chunyufeiyun/article/details/11394575 查了好多资料,发现还是不全,干脆自己整理吧,至少保证在我的做法正确的, ...

  6. Java程序员职业规划如何做?

    在中国有很多人都认为IT行业是吃青春饭的,如果过了30岁就很难有机会再发展下去!其实现实并不是这样子的,在下从事.NET及JAVA方面的开发的也有8年的时间了,在这里在下想凭借自己的亲身经历,与大家一 ...

  7. 使用JPBC实现双线性对加密算法(BasicIdent体制的java实现)

    转自  http://blog.csdn.net/qifuchenluo/article/details/45100851 前言 现在网上关于Java版的双线性对算法的实现的代码很少,我在前段时间想找 ...

  8. Java加密与解密笔记(三) 非对称加密

    非对称的特点是加密和解密时使用的是不同的钥匙.密钥分为公钥和私钥,用公钥加密的数据只能用私钥进行解密,反之亦然. 另外,密钥还可以用于数字签名.数字签名跟上文说的消息摘要是一个道理,通过一定方法对数据 ...

  9. java自学手记——继承

    java面向对象三大特点封装.继承和多态.继承作为三大特点之一,主要是为了实现多态的,即多态的前提条件是继承.代码示例: 1 class Person{ 2 String name; 3 String ...

最新文章

  1. 开发日记-20190905 关键词 Linux (Ubuntu) 下的Android模拟器:Genymotion
  2. Leetcode-595. 大的国家
  3. oracle 运营维护_oracle运维(持续更新)
  4. Genymotion模拟器安装ARM架构编译应用失败解决方案
  5. Oracle 常用命令举例
  6. OpenCV学习笔记(十六):直方图均衡化:equalizeHist()
  7. 【BZOJ2440】完全平方数,莫比乌斯反演+二分答案+容斥思想
  8. python海龟交易策略_【手把手教你】用Python量化海龟交易法则
  9. JavaScript学习笔记(三)——从简单模仿到创作
  10. 9008线刷包紧急救砖
  11. 这位985名校的教授火了!当了10年博导,竟无一博士毕业?
  12. 微信群发工具,纯Python编写~
  13. Android开发丶openinstall的集成和使用(推广二维码)
  14. 跨平台开发 uni-app
  15. 基于自然语言处理的垃圾信息过滤方法
  16. H3C无线控制器双链路备份配置
  17. uni-app关于uni.navigateTo的坑以及解决方案
  18. 一行代码得到全学科的北大核心期刊投稿方式
  19. 模电笔记 2理想运放电路
  20. 开学第一周acm训练总结

热门文章

  1. Xcode7无证书真机调试 Xcode Could ont lauch XXX process launch failed:security
  2. 做一款比“网红索菲亚”更实用机器人需哪些技能?猎豹移动3.21要交作业了
  3. 统计指定文件后缀的文件数量
  4. 厦门2017计算机考试题目,2017年厦门市小学生计算机LOGO语言竞赛(初赛)试卷
  5. 【一周AI新鲜事】“擎天柱”霸气登场/全球创新指数中国排名11位/摩尔定律死了,又活了?...
  6. 图像像素数和分辨率的区别
  7. 智能化赋能应急安全管理创新
  8. linux和windows哪个好用,Windows 1709和1803版本哪个好用
  9. Outlook Express客户端收发雅虎邮件Error logging in .PLEASE visit
  10. 2018 秦皇岛CCPC-Wannafly Winter Camp Day4 Div2 题解