Elgamal算法由T.E1Gamal在1985年发表的一篇论文中提出,是Rabin体制的一种变型。其修正形式已被美国国家标准技术研究所作为数字签名标准(DS),其核心就是著名是数字签名方法(DSA)。与RSA密码体系既可以用于公钥加密又可以用于数字签名等计划。E1gamal数字签名计划是专门为数字签名的意图而规划的。后来有很多变型的Elgamal签名计划被提出。在1989年,Schnorr提出了一种可看做是Eigamal数字签名计划的变型的一种签名计划,其签名的长度被大大地缩短了。数字签名办法(DSA)是E1Gamal数字签名计划的另外一种变型,它吸收了Schnorr签名计划的一些思维。

Elgamal数字签名算法的理论基础是求解离散对数的困难性。基于离散对数问题的数字签名体制是数字签名体制中最为常用的一类,其中包括 Elgamal签字体制、DSA签字体制、 Okamoto签字体制等。

Elgamal数字签名方案可分为初始化进程(设置体系参数,发生密钥)、签名进程和验证进程三个部分。

1)初始化过程—设置系统参数,产生密钥

p、q为两个大素数,可使Z*q中求解离散对数为困难问题。用户A秘密密钥x∈Z*q;

用户A的公开密钥为y=gx mod p 。

2)签名过程

对于待签名的消息m,用户A执行以下步骤:

(1)计算m的散列值H(m)。

(2)选择随机数k:k∈RZ*p,计算r=gk(mod p)

其中, k∈RZ*q表示k是以Z*p中随机选取的, Z*p=Zp-{0}

(3)计算s=(H(m)-xr)k-1-(mod p-1)。(r,S)即为产生的数字签名。

3)验证过程

接收方在收到消息m和数字签名(r,s)后,先计算H(m)并按下式验证:

Ver(y,(r,s),H(m))=True台→yrrs=gH(m)(mod p)

正确性可由下式证明:

yrrs =grxgks=grx+H(m)-rx=gH(m)(mod p)

4)安全性

该方案的安全性基于求离散对数的困难性。所谓离散对数,就是给定正整数x、y、n求出正整数k(如果存在的话),使y=xk(mod n)。就目前而言,人们还没有找到计算离散对数的快速算法(所谓快速算法,是指其计算复杂性在多项式范围内的算法,即O(logn)k,其中k为常数)。

该计划的安全性根据求离散对数的困难性。所谓离散对数,就是给定正整数x、y、n求出正整数k(如果存在的话),使y=xk(mod n)。就现在而言,人们还没有找到核算离散对数的快速算法(所谓快速算法,是指其核算复杂性在多项式范围内的算法,即O(logn)k,其间k为常数)。

5)应用

此体制专门设计作为签名使用ANSIX9.30-199X已将Eigamal签字体制作为签名标准算法。

elgamal签名算法c语言,elgamal数字签名方案相关推荐

  1. elgamal签名算法c语言,ELGamal数字签名.doc

    ELGamal数字签名 摘要 随着网络的发展,人们之间的各种交流变得越来越来方便,但同时也对信息传递的安全提出了新的要求,数字签名随之广泛的深入到了人们的日常生活中. ELGamal作为目前应用比较广 ...

  2. elgamal签名算法c语言,ElGamal算法

    [声明] 一.本文实用于初学者,目的在于帮助大家熟悉一些系统底层的知识. 二.本文只是为了让广大网友共同提高一些基础知识,本人决无卖弄之意,只供需要这方面知识的读者阅读,如果你是高手,或者不需要这方面 ...

  3. elgamal签名算法c语言,ElGamal加密、签名算法笔记

    注意:只是我的理解,可能有不正确的地方算法 ElGamal加密算法是一种非对称加密算法,基于Diffie-Hellman密钥交换算法,由Taher Elgamal在1985年提出.安全 ElGamal ...

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

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

  5. ElGamal公钥密码算法及ElGamal数字签名方案实现

    ElGamal公钥密码算法是在密码协议中有着重要应用的一类公钥密码算法,其安全性是基于有限域上离散对数学问题的难解性.它至今仍是一个安全性良好的公钥密码算法.它既可用于加密又可用于数字签名的公钥密码体 ...

  6. 信息安全——ELGamal数字签名方案的实现

    ELGamal数字签名方案的实现 1. 问题描述 为简化问题,我们取p=19,g=2,私钥x=9,则公钥y=29 mod 19=18.消息m的ELGamal签名为(r,s),其中r=gk mod p, ...

  7. Schnorr数字签名方案

    Schnorr数字签名方案 Schnorr签名算法最初由德国密码学家claus schnorr于2008年提出,在密码学中,它是一种数字签名方案,以其简单著称 Schnorr数字签名方案也是基于离散对 ...

  8. 区块链中的密码学之数字签名方案(十二)

    1. 前言 类似在纸质合同上签名确认合同内容,数字签名用于证实某数字内容的完整性( integrity)和来源( 或不可抵赖,non-repudiation). 一个典型的场景是,A 要发给 B 一个 ...

  9. c语言策划案,大班语言活动策划方案5篇

    幼儿阶段的语言学习会影响到幼儿一生的发展,所以,幼儿园语言学习非常重要,教师要在语言活动方法上进行创新,发展幼儿的想象力,引导幼儿进入语言学习状态,以下是小编精心收集整理的大班语言活动,下面小编就和大 ...

最新文章

  1. 逻辑斯蒂回归(Logistics Regression)
  2. weui 弹出 $.toast(“我是文本“,“text“); 总是带有图标
  3. 软件工程实践2017 结队项目——第二次作业
  4. vc2008中使用boost库
  5. SSH (Secure Shell)详解
  6. pagehelper的使用_SpringBoot项目中,如何更规范的使用PageHelper分页?
  7. python表单防重复提交_关于PHP使用token防止表单重复提交的方法
  8. java hook全局钩子,牛逼骚操作:Java 虚拟机关闭钩子(Shutdown Hook)!
  9. devops_如何成为DevOps的合适人选
  10. 小程序字符串拼接_小程序突袭预约!Yeezy 350quot;氧化满天星quot;拼接配色本月发售!...
  11. 卢伟冰:Redmi K30 Pro的主板可能是业内最复杂“三明治”主板设计
  12. ICPC程序设计题解书籍系列之二:刘汝佳:《算法竞赛入门经典训练指南》
  13. 剑指offer——面试题54:表示数值的字符串
  14. C语言课程设计|职工工资管理系统
  15. 经纬度距离、范围、方位角计算、坐标转换
  16. 【Android】模拟Android微信APK底部的TabHost选项卡
  17. 如何在CentOS系统服务器下搭建代理IP
  18. 关于python数据的纬度_Python插值时间,纬度和经度
  19. 打印机打印中文,截取字符时出现乱码问题
  20. C/C++面试/笔试题2022

热门文章

  1. xboxone修改服务器,《方舟 生存进化》XboxOne版可以搭设服务器
  2. C++语音识别接口快速入门(Microsoft Speech SDK)——文字转语音
  3. 香港城市大学刘晨老师组招收机器学习方向全奖博士/博后/研究助理
  4. python sklearn 安装注意点
  5. 数组和字符串的方法以及常用事件、函数this
  6. 图文并茂带你弄懂物理分辨率、分辨率、物理像素、逻辑像素、dpr、ppi
  7. 谁是移动应用开发的最佳智能手机系统?
  8. angular实现图片懒加载
  9. 更简单的ASP.NET Core多语言(国际化和本地化, 欢迎转载)
  10. 亚马逊美国站fbm是什么意思?亚马逊美国站店铺fbm如何发货?