文章目录

  • 前言
  • 离散对数问题
  • ElGamal加密算法
    • 算法描述
      • 密钥生成
      • 加密算法
      • 解密算法
  • 椭圆曲线群上的ElGamal加密
    • 密钥生成
    • 加密算法
    • 解密算法
    • 优势
    • 点压缩
  • 离散对数问题的困难性
    • 穷举搜索法
    • Shanks算法BSGS
      • 原理
      • 算法描述
    • Pohlig-Hellman算法
      • 原理
      • 伪代码
    • Pollard ρ算法
      • 原理
      • 伪代码
      • 例子
    • 指数计算算法
      • 原理
      • 例子

前言

ElGamal加密算法是由Taher ElGamal于198年提出的一种基于离散对数问题公钥加密算法。是一种非确定性的加密算法,即每次加密会使用一个随机数,加密相同的明文时,不同的随机数可能会产生不同的密文。好的加密算法应该具有非确定性,可引入工作模式将算法转变成非确定性加密算法。

离散对数问题

给定乘法群(G,·),一个阶为n的元素α∈G(即αn=e)以及元素β∈<α>。计算唯一的整数a,0≤a≤n-1,满足**αa=β**,其中a称为β的离散对数以a为底的logβ

ElGamal加密算法

算法描述

密钥生成

加密算法

解密算法

椭圆曲线群上的ElGamal加密

密钥生成

加密算法

解密算法

优势

①基于计算椭圆曲线上离散对数的困难性

密钥短(160-bit)

③同一基域上选取不同的椭圆曲线

点压缩

表示明文或公钥参数的时候,用点表示,且点有一定规律。

横坐标相同的点,纵坐标互为相反数。

离散对数问题的困难性

穷举搜索法

在0≤a≤n-1之间去遍历a,看哪个a满足条件。

时间O(n),空间O(1)

Shanks算法BSGS

原理

算法描述

时间O(n0.5),空间O(n0.5)

所以群的阶应该足够大

Pohlig-Hellman算法

原理



伪代码

时间复杂度O(cq)

因此群的阶应该含有足够大的素因子

Pollard ρ算法

原理

伪代码

例子

所以群的阶应该足够大

指数计算算法

只适用于模p的群上

原理

例子

所以模p应该足够大,群中元素难以用少量素数表示

[密码学] ElGamal加密算法与离散对数相关推荐

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

    ElGamal加密算法 简单介绍 EIGamal密码是除了RSA密码之外最有代表性的公开密钥密码 EIGamal是建立在离散对数的困难问题上的一种公钥体制密码 密钥产生 选一个素数p,以及小于p的两个 ...

  2. Elgamal 加密算法

    Elgamal 加密算法 1.ElGamal算法简介 2.ElGamal算法原理 3.c语言代码实现 4.测试结果 1.ElGamal算法简介 ElGamal算法是由Tather ElGamal在19 ...

  3. ElGamal加密算法简介

    目录 简介 阶 本原元 算法流程 1.密钥生成 2.加密 3.解密 简介 上一篇介绍了非对称加密算法中的RSARSA算法简介,这次看一下ElGamal算法. 首先它是一个基于迪菲-赫尔曼密钥交换的非对 ...

  4. Elgamal加密算法原理及实现

    目录 一.概述 二.知识准备 1.阶 2.本原元 三.算法流程 1.密钥生成 2.加密 3.解密 四.代码实现 一.概述 Rsa是基于大质数分解难题:而Elgamal是基于G上的离散对数难题 ElGa ...

  5. elgamal算法加解密C语言,详解ElGamal加密算法

    ElGamal公钥密码体制是1984年斯坦福大学的Tather ElGamal提出的一种基于离散对数问题困难性的公钥体制.1985年,Tather ElGamal利用ElGamal公钥密码体制设计出E ...

  6. ELGamal 加密算法及Java实现

    ElGamal算法,是一种较为常见的加密算法,它是基于1985年提出的公钥密码体制和椭圆曲线加密体系.既能用于数据加密也能用于数字签名,其安全性依赖于计算有限域上离散对数这一难题.在加密过程中,生成的 ...

  7. elgamal加密算法 java_JAVA加解密17-非对称加密算法-ElGamal算法

    一.概述 1.ElGamal算法和ECC算法基于离散对数问题 2.这个是一个单向的过程.虽然密钥对构造简单,但是只是乙方向另外一方单向传送数据进行加解密,不能反向操作 3.这里只有"公钥加密 ...

  8. 密码学-常见加密算法逆向学习

    加密算法分为多种形式,一种是单向散列算法,也叫做hash算法,该算法常用于数字签名与完整性检测,常见的散列算法有MD5,SHA,RIPE_MD,HAVAL,N_Hash这几种,另一种则是对称加密算法, ...

  9. 计算机密码学思路,密码学中加密算法的研究和实现

    密码学是一门古老而深奥的学科,是研究计算机信息加密.解密及其变换的科学,是数学和计算机的交叉学科,也是一门新兴的学科[1].早在四千年前,古埃及人就开始使用密码来保密传递消息.两千多年前,罗马国王Ju ...

最新文章

  1. 20169212 2016-2017-2 《网络攻防实践》第四周学习总结
  2. 连接到kali linux服务器上的MySQL服务器错误
  3. React 18 Beta 来了
  4. linux gfs文件系统,Linux环境下使用GFS文件系统
  5. 系统分析员备考之经济管理篇(一)
  6. 工作总结-虚拟机参数
  7. cad详图怎么画_CAD的图框应该怎么画? - CAD自学网
  8. 经典论文-SqueezeNet论文及实践
  9. 【Python】实现B站MP4格式音频与视频合并,ffmpeg一个命令即可
  10. tbc新服务器没消息,魔兽世界怀旧服,官方再流出TBC消息,舅舅党再次爆料燃烧的远征...
  11. 程序员女友在京东被领导“潜规则”,竟然不回绝:表明非单身会影响绩效
  12. 2017年最新基于hexo搭建个人免费博客——从零开始
  13. CLOB、BLOB , CLOB与BLOB的区别
  14. 3com - 美国设备提供商
  15. S1000D数据模块类型中英文对照
  16. 07 数据库系统设计综合实验 实验报告
  17. 奥巴马演讲雷人文言文版
  18. Android 开机流程
  19. 网站推荐|DataCamp
  20. 京东宙斯杯应用大赛 推荐宝 刷票记录 有图有真相

热门文章

  1. linux复制文件命令cat ,Linux学习之四(复制移动文件命令cp等及查看文本命令cat等)2017-03-28...
  2. UpTime:供电、系统、网络、制冷——2020年数据中心宕机四大主因
  3. 2020年中国医疗数据中心市场规模及发展趋势预测分析
  4. DL之CNN:利用自定义DeepConvNet【7+1】算法对mnist数据集训练实现手写数字识别并预测(超过99%)
  5. TF之p2p:基于TF利用p2p模型部分代码实现提高图像的分辨率
  6. Dataset:数据集集合(CV方向数据集)-常见的计算机视觉图像数据集大集合包括表面缺陷检测数据集(持续更新)
  7. 成功解决AttributeError: type object 'scipy.interpolate.interpnd.array' has no attribute '__reduce_cython
  8. Py之argparse:Python库之argparse(命令行解析)简介、安装、使用方法之详细攻略
  9. Py:数据挖掘之对微信朋友圈好友的性别、区域、昵称、签名信息进行情感分析
  10. 7.2 TensorFlow笔记(基础篇): 生成TFRecords文件