一、背景

在密码学中,ElGamal加密算法是一个基于迪菲-赫尔曼密钥交换的非对称加密算法。它在1985年由塔希尔·盖莫尔提出。GnuPG和PGP等很多密码学系统中都应用到了ElGamal算法。
ElGamal加密算法可以定义在任何循环群G上。它的安全性基于离散对数难题

  • elgama算法可分别用作加解密与数字签名。

二、加解密算法细节

2.1 公私钥产生算法(KeyGenKeyGenKeyGen):

  • 随机选择一个满足安全要求的大素数ppp(通常1024bits),并生成有限域ZpZ_pZp​的一个生成元g∈Zp∗g∈Z_p^*g∈Zp∗​;

    • 通常ppp产生方法:
    • p=2x∗q+1p=2^x *q+1p=2x∗q+1,qqq为160bits大素数
  • 随机选择一个随机数x(1<x<p−1)x(1<x<p-1)x(1<x<p−1),计算y≡gx(modp)y≡g^x (mod\ p)y≡gx(mod p),则公钥为(y,g,p)(y,g,p)(y,g,p),私钥为xxx。

2.2 加密过程(EncryptionEncryptionEncryption)

  • 对消息mmm进行加密;
  • 随机选择整数r(1<r<p−1)r(1<r<p-1)r(1<r<p−1);
  • 计算密文C=(c,c′)C=(c, c^{'})C=(c,c′),其中:c≡gr(modp),c′≡myr(modp)c≡g^r (mod\ p), c^{'}≡my^r(mod\ p)c≡gr(mod p),c′≡myr(mod p)。

2.3 解密过程(DecryptionDecryptionDecryption)

  • 收到密文C=(c,c′)C=(c, c^{'})C=(c,c′);
  • 使用密钥xxx对密文CCC解密得到消息mmm,m=c′/cx=(myr)/(gx)r=(myr)/yr(modp)m= c^{'}/c^x =(my^r)/(g^x )^r =(my^r)/y^r (mod\ p)m=c′/cx=(myr)/(gx)r=(myr)/yr(mod p)。

三、数字签名算法

3.1 公私钥产生算法(KeyGenKeyGenKeyGen):

  • 随机选择一个满足安全要求的大素数ppp(通常1024bits),并生成有限域ZpZ_pZp​的一个生成元g∈Zp∗g∈Z_p^*g∈Zp∗​;

    • 通常ppp产生方法:
    • p=2x∗q+1p=2^x *q+1p=2x∗q+1,qqq为160bits大素数
  • 随机选择一个随机数x(1<x<p−1)x(1<x<p-1)x(1<x<p−1),计算y≡gx(modp)y≡g^x (mod\ p)y≡gx(mod p),则公钥为(y,g,p)(y,g,p)(y,g,p),私钥为xxx。

3.2 签名算法(SignSignSign)

  • 对消息m进行签名;
  • 随机选择整数k(1<k<p−1)k(1<k<p-1)k(1<k<p−1);
  • 计算rrr,r≡gk(modp)r≡g^k (mod p)r≡gk(modp);
  • 计算sss,s≡[h(m)−xr]k−1(mod(p−1))s≡[h(m)-xr] k^{-1} (mod (p-1))s≡[h(m)−xr]k−1(mod(p−1)),h(m)h(m)h(m)表示哈希函数;
  • 得出数字签名(r,s)(r, s)(r,s)。

3.3 签名验证(VerifyVerifyVerify)

  • 根据公钥yyy,消息mmm验证数字签名(r,s)(r, s)(r,s);
  • 计算gh(m)′g^{h(m)'}gh(m)′,gh(m)′=yrrs=(gx)r(gk)(h(m)−xr)/kg^{h(m)'}=y^r r^s=(g^x )^r (g^k )^{(h(m)-xr)/k}gh(m)′=yrrs=(gx)r(gk)(h(m)−xr)/k;
  • 验证等式gh(m)′=gh(m)g^{h(m)'}=g^{h(m)}gh(m)′=gh(m)是否成立,若成立则为真,否则为假。

密码学——elgama加解密及数字签名算法相关推荐

  1. 现代密码学上机程序c语言,现代密码学与加解密技术实验报告

    现代密码学与加解密技术实验报告 现代密码学与加解密技术实验 一. 实验教学目标与基本要求 现代密码学与加解密技术实验是本课程重要的实践教学环节.实验的目的 不仅仅是验证理论知识,更重要的是通过实验加强 ...

  2. 现代密码学上机程序c语言,现代密码学与加解密技术实验指导书.doc

    软件工程课程设计指导书 现代密码学与加解密技术实验指导书 高天寒 编 东北大学 软件学院 2007年8月 软件工程实验指导书 目 录 一.现代密码学与加解密技术实验指导书选用范围 二.实验基本目的与要 ...

  3. 前后端java+vue 实现rsa 加解密与摘要签名算法

    RSA有两个密钥,一个是公开的,称为公开密钥:一个是私密的,称为私密密钥. 特点: 公开密钥是对大众公开的,私密密钥是服务器私有的,两者不能互推得出. 用公开密钥对数据进行加密,私密密钥可解密:私密密 ...

  4. 区块链之加解密算法数字证书

    目录 一.加解密算法 数字签名 对称加密 DES(Data EncryptionStandard) 3DES(Triple DES) AES(Advanced EncryptionStandard) ...

  5. 加解密和数字证书详解

    一,对称加密 所谓对称加密,就是它们在编码时使用的密钥e和解码时一样d(e=d),我们就将其统称为密钥k. 对称加解密的过程如下: 发送端和接收端首先要共享相同的密钥k(即通信前双方都需要知道对应的密 ...

  6. 密码学基础篇----密码学的加解密

    认识密码学 什么是密码 密码简单来说就是用不是我们所熟悉的,不能马上识别的符号来代替的信息. 大概过程就是这样 密码学的发展史 古典密码学(1949年之前) 主要特点:数据的安全基于算法的保密. 密码 ...

  7. java 数字信封_GitHub - zhopen/eos-crypto-java: EOS 公钥加密,私钥解密。基于ECC+AES 实现的双向验证加解密。数字信封的 加解密。...

    /** * * sender * * EOS8g1u3ktAGHs4QsVp9aeaWNebFLtprQHwpaSjegx6iEuoTNhjXU * 5KTZYCDdcfNrmEpcf97SJBCtT ...

  8. java 数字信封_GitHub - yanjunli/eos-crypto-java: EOS 公钥加密,私钥解密。基于ECC+AES 实现的双向验证加解密。数字信封的 加解密。...

    /** * * sender * * EOS8g1u3ktAGHs4QsVp9aeaWNebFLtprQHwpaSjegx6iEuoTNhjXU * 5KTZYCDdcfNrmEpcf97SJBCtT ...

  9. .NET Core加解密实战系列之——消息摘要与数字签名算法

    简介 加解密现状,编写此系列文章的背景: 需要考虑系统环境兼容性问题(Linux.Windows) 语言互通问题(如C#.Java等)(加解密本质上没有语言之分,所以原则上不存在互通性问题) 网上资料 ...

最新文章

  1. S-T平面图中利用最短路求最小割(BZOJ 1001)
  2. 数据库连接池连接异常com.alibaba.druid.pool.GetConnectionTimeoutException
  3. iframe内容 固定比例_允知研习|浅析固定总价合同的结算问题
  4. 信息系统项目管理知识--物联网
  5. 在VC6中使用ADO读取Oracle中的BLOB字段
  6. 《精解 Windows 10》——2.10 触摸手势
  7. H.264参考软件JM12.2RC代码详细流程
  8. 数据结构笔记(一)-- 概念
  9. 无法抗拒Minecraft给予超高的自由度和探索-微访谈
  10. 2019白金之星 第一次初赛 第一题 Polynomial
  11. 游戏是怎么赚钱的 - 科普篇
  12. 成都盛铭轩:产品主图提升转化率
  13. element ui表单必填_element-ui设置下拉选择切换必填和非必填
  14. 投资理财-合理配置资产结构
  15. vue 引入字体图标显示方块
  16. 2. 查询表product——统计所有库存商品的总价值
  17. 圣诞表白html,圣诞节表白语 圣诞节表白情话
  18. EF(一) -- EF简介
  19. 学习强国十年磨剑最新分数及排名
  20. 阿里云服务器1核1G内存1M带宽能放几个网站及多少流量

热门文章

  1. 一款非常萌的桌面工具 --- Bongo Cat Mver 附使用教程
  2. 关于IOS中uni.downloadFile下载的图片显示不出来的解决方法
  3. 初学古琴怎么学?古琴入门基础知识
  4. Mysql安装步骤方法
  5. VSCode更新到1.42.1版本有问题(January 2020 (version 1.42))
  6. 计算机网络第五章(谢希仁)--运输层 思维导图
  7. 苹果手机4g网速慢怎么办_手机推荐:选华为5G还是苹果4G:内行人说出了大实话!...
  8. Susman Godfrey L.L.P.与Hausfeld LLP宣布3.4亿美元诉讼及和解方案,涉及在2007年8月至2010年5月期间持有基于美元LIBOR工具的个人和机构
  9. 群晖 NAS DS218j的优秀与缺憾
  10. 基础IT技术(Java,c++等)技术学习资料300篇