ElGamal公钥密码体制
ElGamal公钥密码体制
ElGamal公钥密码体制1、问题描述设计ElGamal公钥密码体制算法。
2、算法设计(1)选取大素数p和p的一个原根a,(a,p)=1,1<a<p(2)随机选取整数d,1<d<p-1,计算b≡ad (mod p);p,a,b为公钥,d为私钥(3)加密:对0<m<p,秘密的随机选取整数k,1<k<p-1,加密后密文为c=(c1 ,c2 ),c1 ≡ak (mod p), c2 ≡ m bk (mod p)(4)解密:明文m ≡c2 ( c1 d) -1 (mod p)主要步骤3、算法分析该算法的基础是找到一个原根,大数的原根产生过程比较慢,本人目前也只能产生8位以内的素数的原根,还有待改进。
同时也涉及到模幂运算,选取的幂指数如果较大,时间复杂度也会相应的增加。
int inverse(int a,int m){long int c,d;int j;int q[100],r[100],t[100],s[100];c=a;d=m;r[0]=c;r[1]=d;s[0]=1;s[1]=0;t[0]=0;t[1]=1;for(j=1;r[j]!=0;j++){q[j]=(int)(r[j-1]/r[j]);r[j+1]=r[j-1]-q[j]*r[j];if(j>=2){s[j]=s[j-2]-q[j-1]*s[j-1];t[j]=t[j-2]-q[j-1]*t[j-1];}}return s[j-1];}int gcd(int a,int b){int c;if(a<b){c=b;b=a;a=c;}while(b!=0){c=b;b=a%b;a=c;}return a;}void main(){int p,g,k,s,x,r,t=1,i,j,f,y,m,M;cin>>p>>g>>k;s=2;for(i=1;i<=k;i++){t*=s;t=t%p;}while(t<0){t=t+p-1;}cout<<"public key is"<<"("<<t<<","<<g<<","<<p<<")"<<endl;cin>>r;if(gcd(p-1,r)!=1)cout<<"the data is not suitable"<<endl;x=1;for(j=1;j<=r;j++){x*=s;x=x%p;}cin>>m;f=inverse(r,p-1);y=(m-k*x)*f%(p-1);while(y<0){y=y+p-1;}cout<<"the signature is"<<"("<<x<<","<<y<<")"<<endl;for(i=1;i<=m;i++){g*=g;}g=g%p;for(i=1;i<x;i++){y*=y;}for(j=1;j<y;j++){x*=x;}M=x*y%p;if(M=p){cout<<"the signature is useful"<<endl;}else{cout<<"the signature is not useful"<<endl;}}运行结果。
ElGamal公钥密码体制及安全性
下面我们首先计算
γ
2,0
=α
0×(p-1)/2
mod 29
= 20 mod 29 = 1, γ
2,1
=α
1×(p-1)/2mod
29
= 228/2 mod 29
= 28. 因为 = 28 =γ
2,1 ,
0
ß mod 29 = 1828/2 mod 29
所以 a = 1.令
ß = ß α 1 因为
0, 1 e i 1
i
根据目前的计算能力,只有当p-1 的素因子是小素数时,才 能有效分解 p-1求得 。因此,Pohlig-Hellman 算法适用于p1 的素因子是小素数的情况。 例5.8 设p = 29, 则 p-1= 28 = 22×7.设α = 2, ß 18. = 求log 。令log a .
s ( p 1 ) qi
mod p
qi ,s
· ,k, · ·
s = 0, 1,2, ·· i -1. 将这些 q ·
ei i
排成一个
下面利用表L求 a mod q
a mod q
ei i
, i= 1,2,
1 i
· ,k. · ·
e i 1
设
q
ei 1 i
a a q a
0
ß=αd mod p,
所以
k c2(c1d)–1≡mß (α
dk
)
–1
(mod p)
–1(mod
≡mα
dk
(α
dk
)
p) α ∈zp*
≡m(mod p). 因此,解密变换能正确的从密文恢复相应的明文。
5.4.2. ElGamal公钥密码体制的安全性
ELGamal算法
实例解析: p=19; a=13,d=10,a与d均小于 p,符合条件; y = 13^10(mod19)=6; 公钥:y=6 a=13 p=19 私钥:d=10
签名过程: 1.随机选取一个数k,1< k<p-1,且k和p-1互质 2、计算r,r满足:r≡a^k (mod p) 3、待签名信息为m, 计算s≡(m-dr)*(k^(1)) (mod p-1) (r,s)构成对m的签名
一个群被称为有限群,如果它有有限个元素。元素 的数阶叫做群 G 的阶 例如,模19下7的阶为3,[1, 7, 49, 343, 2401, 16807, 117649, 823543, 5764801...]={1,7,11,1,7,11,1,7,11...}这里的 1,7,11循环,实际只有3个元素
群是一个集合G,连同一个运算 "· ",它结合任何两个元素 a 和 b 而形成另一个元素,记为 a · b。符号 "· " 是对具体给出的运算,比如加 法的一般的占位符。要具备成为群的资格,这个集合和运算 (G, · ) 必须 满足叫做群公理的四个要求: 1.封闭性。 对于所有 G 中 a, b,运算 a · b 的结果也在G 中。 2.结合性。 对于所有 G 中的 a, b 和 c,等式 (a · b) · c = a · (b · c) 成立。 3.单位元。 存在 G 中的一个元素 e,使得对于所有 G 中的元素 a,等式 e · a = a · e = a 成立。 4.反元素。 对于每个 G 中的 a,存在 G 中的一个元素 b 使得 a · b = b · a = e, 这里的 e 是单位元。
现代密码学小题整理
一一、是非判断题(10分)1.差分分析是一种攻击迭代密码体制的选择明文攻击方法,所以,对于DES和AES都有一定的攻击效果。
(对)2.反馈移位寄存器输出序列生成过程中,抽头位对输出周期长度的影响起着决定性的作用,而初态对输出周期长度没影响。
(对)二、选择题(15分)1.公钥密码体制至少能抵御的攻击是(C.选择明文攻击)2.适合文件加密,而且有少量错误时不会造成同步失败,是软件加密的最好选择,这种分组密码的操作模式是指(D.输出反馈模式)3.按目前的计算能力,RC4算法的密钥长度至少应为(C.128)位才能保证安全强度。
4.密钥在其生命生命周期中处于不同的状态,每种状态包含若干时期,那么密钥备份时期是密钥处于(B.使用状态)5.量子密码更适合实现下面哪项密码技术。
(D.密钥分发)6.当用户收到一个证书是,应当从(C.CRL)中检查证书是否已经被撤销。
(CRL:证书撤销列表)A.在PKI中,关于RA的功能,下面说法正确的是(B.验证申请者身份)。
7.数字水印是信息隐藏技术研究领域的重要分支,现主要应用领域是(A.版权保护)8.在DES算法中,如果给定初始密钥K,经子密钥产生器产生的各个子密钥都相同,则称该密钥K为弱密钥,DES算法中弱密钥的个数为(B.4个)。
9.生日攻击是针对于下面哪种密码算法的分析方法(D.MD5)。
10.指数积分法是针对下面哪种密码算法的分析方法(C.ElGamal)11.密钥存档是密钥处于(C.过期状态)三、填空题(15分)1.关于DES算法的安全性,若Ek(m)=Dk(m),则这样的密钥称为弱密钥,又其互补性使DES在选择明文攻击下所需的工作量减半。
2.选择合适的n级线性反馈移位寄存器可使序列的周期达到最大值2^n-1,这样序列称为m 序列,但敌手知道这序列中一段长为 n 的明密文对即能破译其后序列的密文。
3.密钥分配和协商的最大区别是:密钥分配是通信双方中一方或密钥分配中心选取一个秘密密钥发给双方,而密钥协商是保密通信双方(或更多方)通过公开信道的通信来共同形成秘密密钥的过程。
elgamal加密算法原理
ElGamal加密算法原理ElGamal加密算法是一种公钥密码体制,由Taher Elgamal在1985年提出。
它基于离散对数问题的困难性,被广泛应用于保护数据的机密性和安全通信。
ElGamal加密算法涉及到两个关键方面:密钥生成和加解密过程。
在下面的内容中,我们将详细介绍这些方面的基本原理。
1. 密钥生成ElGamal加密算法使用一对相关联的公钥和私钥来进行加解密操作。
下面是生成这些密钥的步骤:1.选择一个大素数p作为有限域,以及一个生成元g。
2.随机选择一个整数x(0 < x < p-1),作为私钥。
3.计算y = g^x mod p,并将(x, y, p, g)作为公钥,(x)作为私钥。
在这个过程中,p和g是公开信息,而x是保密的。
2. 加解密过程加密假设Alice想要向Bob发送一条消息m。
下面是Bob使用ElGamal加密算法对消息进行加密的步骤:1.Alice首先获取Bob的公钥信息(y, p, g)。
2.Alice选择一个随机整数k(0 < k < p-1)。
3.Alice计算c1 = g^k mod p,并发送给Bob。
4.Alice计算c2 = (y^k * m) mod p,并发送给Bob。
在这个过程中,c1和c2是加密后的消息,Alice只需要将它们发送给Bob即可。
解密Bob接收到加密后的消息(c1, c2)后,可以使用ElGamal加密算法进行解密。
下面是解密的步骤:1.Bob使用自己的私钥x计算s = c1^x mod p。
2.Bob计算m’ = (s^(-1) * c2) mod p。
最终,Bob可以得到原始消息m’。
3. 安全性分析ElGamal加密算法基于离散对数问题的困难性,具有较高的安全性。
攻击者需要解决离散对数问题才能成功破解加密文本。
然而,在实际应用中,ElGamal加密算法存在一些安全性问题和限制:•密文扩张:加密后的消息长度为明文长度的两倍或更多。
第六讲 Elgaml和ECC与密钥管理
是否模11平方剩余 No No Yes Yes No Yes No Yes Yes No Yes
y
4,7 5,6 2,9 2,9 3,8 2,9
34
Chapter 10 ElGamal and ECC and Key Management
Chapter 10 ElGamal and ECC and Key Management
11
椭圆曲线密码已成为除RSA密码之外呼声最高的公钥密码之一。 它密钥短、签名短,软件实现规模小、硬件实现电路省电。普遍认 为,160位长的椭圆曲线密码的安全性相当于1024位的RSA密码, 而且运算速度也较快。 一些国际标准化组织已把椭圆曲线密码作为新的信息安全标准。 如,IEEE P1363/D4,ANSI F9.62,ANSI F9.63等标准,分 别规范了椭圆曲线密码在Internet协议安全、电子商务、Web服 务器、空间通信、移动通信、智能卡 V-1 mod p =(UM)V-1 mod p =UM(C1 d)-1 mod p =UM((αk)d)-1 mod p =UM((αd)k)-1 mod p =UM((y)k)-1 mod p =UM(U)-1 mod p =M mod p
Chapter 10 ElGamal and ECC and Key Management
Chapter 10 ElGamal and ECC and Key Management
15
G a k k
G a
Chapter 10 ElGamal and ECC and Key Management
16
椭圆曲线
一般来讲,椭圆曲线的曲线方程是以下形式的三次方程:
Chapter 10 ElGamal and ECC and Key Management
elgamal公钥密码体制
elgamal公钥密码体制
摘要:
I.简介
- 公钥密码体制的定义
- ElGamal 公钥密码体制的提出背景
II.ElGamal 公钥密码体制的基本原理
- 加密和解密过程
- 数字签名和验证过程
III.ElGamal 公钥密码体制的安全性
- 密钥生成和分发
- 攻击模型的分析
IV.ElGamal 公钥密码体制的应用
- 电子商务领域的应用
- 安全通信领域的应用
正文:
ElGamal 公钥密码体制是一种非对称加密算法,由Taher ElGamal 于1985 年提出。
该体制基于离散对数问题的困难性,相较于RSA 密码体制,ElGamal 密码体制在相同安全级别下具有更小的密钥长度。
ElGamal 公钥密码体制的基本原理包括加密和解密过程、数字签名和验证过程。
在加密过程中,发送方使用接收方的公钥对明文进行加密;在解密过程中,接收方使用自己的私钥对密文进行解密。
数字签名过程类似于加密过程,
发送方使用接收方的公钥对自己发送的消息进行签名,接收方则使用发送方的私钥对签名进行验证。
ElGamal 公钥密码体制的安全性主要依赖于密钥生成和分发。
密钥生成过程中,用户需要选择一个大于1 的素数p,并在模p 意义下找到一个随机数x,通过计算得到公钥和私钥。
密钥分发过程中,发送方需要将公钥发送给接收方,而私钥则需要妥善保管,以防止泄露。
尽管ElGamal 公钥密码体制在电子商务领域和安全通信领域有着广泛的应用,但由于其密钥长度相对较小,容易受到暴力破解攻击。
因此,研究者们针对该体制提出了许多改进方案,以提高其安全性和抵抗攻击的能力。
信息安全概论第四章公钥密码体制
14
Diffie-Hellman密钥交换算法 密钥交换算法
Diffie和Hellman在其里程碑意义的文章中, 虽然给出了密码的思想,但是没有给出真正意 义上的公钥密码实例,也既没能找出一个真正 带陷门的单向函数 然而,他们给出单向函数的实例,并且基于此 提出Diffie-Hellman密钥交换算法
13
常用的公开密钥算法
公钥算法的种类很多,具有代表性的三种密码: 公钥算法的种类很多,具有代表性的三种密码: 基于整数分解难题(IFP)的算法体制 基于整数分解难题(IFP)的算法体制(RSA) 基于离散对数难题(DLP)算法体制 基于离散对数难题(DLP)算法体制(ElGamal) 基于椭圆曲线离散对数难题( ECDLP ) 的算法体制 基于椭圆曲线离散对数难题 ( ECDLP) (ECC)
3
4.1 公钥密码体制的基本原理
对称算法的不足
(1)密钥管理量的困难 传统密钥管理:两两分别用一个密钥时, 传统密钥管理:两两分别用一个密钥时,则n个用户需 C(n,2)=n(n-1)/2个密钥 当用户量增大时, 个密钥, 要C(n,2)=n(n-1)/2个密钥,当用户量增大时,密钥空 间急剧增大。 间急剧增大。如: n=100 时, C(100,2)=4,995 n=5000时 n=5000时, C(5000,2)=12,497,500 (2)密钥必须通过某一信道协商,对这个信道的安全 密钥必须通过某一信道协商, 性的要求比正常的传送消息的信道的安全性要高
7
公开密钥密码的重要特性
加密与解密由不同的密钥完成 Y: X: Y = EKU(X) X = DKR(Y) = DKR(EKU(X))
加密: X 解密: Y
知道加密算法,从加密密钥得到解密密钥在计算上 , 是不可行的 两个密钥中任何一个都可以用作加密而另一个用 作解密(不是必须的) X = DKR(EKU(X))
公钥密码体制中基于离散对数的ELGamal数字签名方案
信息安全与密码学院:数学与统计学院专业: 数学与应用数学班级:12级数应(3)班姓名:田佳学号: 20121010357信息安全与密码知识点总结第一章信息安全概论§1 信息安全的目标§1.1 信息系统中的主要安全问题1、网络可靠性问题(备份,网络管理,计费等)2、系统本身的缺陷(芯片、操作系统,数据库后门等)3、恶意攻击和破坏(黑客攻击,病毒破坏等)4、信息安全问题(信息窃取,假冒,抵赖等)网络与信息安全的主要任务(1)网络安全的任务:保障各种网络资源稳定可靠的运行,受控合法的使用。
(2)信息安全的任务:保证:机密性、完整性、不可否认性、可用性(3)其他方面:病毒防治,预防内部犯罪§1.2 我国信息安全的现状§1.3 信息安全威胁信息安全威胁:指某个人、物、事件或概念对信息资源的保密性、完整性、可用性或合法使用性等等所造成的危险。
虽然人为因素和非人为因素都可以对通信安全构成威胁,但是精心设计的人为攻击威胁最大。
网络安全性威协:(1)截获(interception)(2)中断(interruption)(3)篡改(modification)(4)伪造(fabrication)主动与被动攻击被动攻击:目的是窃听、监视、存储数据,但是不修改数据。
很难被检测出来,通常采用预防手段来防止被动攻击,如数据加密。
主动攻击:修改数据流或创建一些虚假数据流。
常采用数据加密技术和适当的身份鉴别技术。
网络安全攻击截获:以保密性作为攻击目标,表现为非授权用户通过某种手段获得对系统资源的访问,如搭线窃听、非法拷贝等中断:以可用性作为攻击目标,表现为毁坏系统资源,切断通信线路等篡改:以完整性作为攻击目标,非授权用户通过某种手段获得系统资源后,还对文件进行窜改,然后再把篡改过的文件发送给用户。
伪造:以完整性作为攻击目标,非授权用户将一些伪造的、虚假的数据插入到正常系统中§1.4 常见的安全威胁信息泄露,破坏完整性,拒绝服务,非法使用,窃听,业务流分析,假冒,旁路控制,授权侵犯,特洛伊木马,陷阱门,抵赖,重放,计算机病毒安全威胁分类物理环境:自然灾害 ,电源故障、设备被盗通信链路:安装窃听装置或对通信链路进行干扰网络系统:互联网的开放性、国际性操作系统:系统软件或硬件芯片中的植入威胁应用系统:木马、陷阱门、逻辑炸弹管理系统:管理上杜绝安全漏洞§1.5 信息安全基本要素机密性,完整性,可用性,可控性,可审查性§1.6 信息安全的目标安全工作的目的就是为了在安全法律、法规、政策的支持与指导下,通过采用合适的安全技术与安全管理措施,完成:1,使用访问控制机制,阻止非授权用户进入网络,即“进不来”,从而保证网络系统的可用性。
Elgamal算法
Elgamal算法ElGamal算法,是一种较为常见的加密算法,它是基于1984年提出的公钥密码体制和椭圆曲线加密体系一.ElGamal算法定义:ElGamal算法,是一种较为常见的加密算法,它是基于1984年提出的公钥密码体制和椭圆曲线加密体系。
既能用于数据加密也能用于数字签名,其安全性依赖于计算有限域上离散对数这一难题。
在加密过程中,生成的密文长度是明文的两倍,且每次加密后都会在密文中生成一个随机数K。
二.密钥产生方法密钥对产生办法。
首先选择一个素数p,获取一个素数p的一个原根g(若g模p的阶等于φ(m),则称a为模m的一个原根。
(其中φ(m)表示m的欧拉函数)) 和一个随机数x,且g和x 均小于p, 计算y = g^x ( mod p ),则其公钥为y, g 和p。
私钥是x。
g和p 可由一组用户共享。
ElGamal用于数字签名。
被签信息为M,首先选择一个随机数k, k与p - 1互质,计算a = g^k ( mod p )再用扩展Euclidean 算法对下面方程求解b:M = xa + kb ( mod p - 1 )签名就是( a, b )。
随机数k须丢弃。
验证时要验证下式:y^a * a^b ( mod p ) = g^M ( mod p )同时一定要检验是否满足1<= a < p。
否则签名容易伪造。
ElGamal用于加密。
被加密信息为M,首先选择一个随机数k,k与p - 1互质,计算a = g^k ( mod p )b = y^k M ( mod p )( a, b )为密文,是明文的两倍长。
解密时计算M = b / a^x ( mod p )ElGamal签名的安全性依赖于乘法群(IFp)* 上的离散对数计算。
素数p必须足够大,且p-1至少包含一个大素数因子以抵抗Pohlig & Hellman算法的攻击。
M一般都应采用信息的HASH值(如SHA 算法)。
ElGamal的安全性主要依赖于p和g,若选取不当则签名容易伪造,应保证g对于p-1的大素数因子不可约。
基于Polar码的ElGamal型公钥密码体制
基于Polar码的ElGamal型公钥密码体制
刘冰;吴旭聃;聂艇
【期刊名称】《计算机应用研究》
【年(卷),期】2024(41)1
【摘要】在量子计算技术飞速发展的时代背景下,为了满足密码应用的安全需求,提出了一种基于Polar码的ElGamal型公钥密码体制。
采用Polar码为基于纠错码ElGamal型公钥密码体制中的公开码,利用SC译码算法进行译码,并对方案的译码失败概率和安全性进行了分析。
结果表明算法具有较高的传信率,选取的参数满足信息集译码复杂度和译码失败概率的要求,且算法满足IND-CPA安全性。
【总页数】7页(P254-259)
【作者】刘冰;吴旭聃;聂艇
【作者单位】北京电子科技学院密码科学与技术系
【正文语种】中文
【中图分类】TP393.04
【相关文献】
1.基于公钥密码体制RSA算法的注册码生成器
2.基于ElGamal公钥密码体制的电子拍卖协议
3.基于四元整数的ElGamal公钥密码体制
4.基于Polar码的Niederreiter公钥密码体制
5.基于QC-LDPC码的M公钥密码体制及其性能研究
因版权原因,仅展示原文概要,查看原文内容请购买。
EIGamal体制
数学基础
本原元(原根 : 为素数, 本原元 原根):设p为素数,若存在一个整数 , 原根 为素数 若存在一个整数a, 使得a, 关于模p互不同 使得 ,a2,a3,……,ap-1,,关于模 互不同 , - ,,关于模 则称模p的本原元 或原根). 的本原元( 余,则称模 的本原元(或原根). 离散对数问题: 离散对数问题:Y=logaX 计算Y是容易的 由X计算 是容易的,至多需要 ×log2p次运 计算 是容易的,至多需要2× 算就可以. 但是根据Y计算 就是困难的, 计算X就是困难的 算就可以 . 但是根据 计算 就是困难的 , 利用 目前最好的算法, 对于小心选择的p将至少需要 目前最好的算法 , 对于小心选择的 将至少需要 p 1/2 次以上的运算 , 只要 足够的大 , 求解离散 次以上的运算, 只要p足够的大 足够的大, 对数就是相当困难的. 对数就是相当困难的.
EIGamal公钥密码体制 公钥密码体制
设计过程: 设计过程 Z * 的一个本原 Step1 选取大素数p,再选取 p 元a,并将p和a公开. Step2 随机选取整数 d : 1 ≤ d ≤ p 2 ,并计 算出 β = α d mod p 并将 β 作为公开的加密 密钥,将d作为保密的脱密密钥.
实现方法
(1) 大素数的选择与构造 将大素数p选为安全素数,即使p=2q+1且q为 素数. 实验表明,平均100个随机数中可选出1个素 数, 平均100素数中可选出1个安全素数.
(2)安全素数条件下本原元的判断方法 安全素数条件下本原元的判断方法
由Fermat定理知 α mod p = 1 ,即 因而如果 w = min{t > 0 : α t mod p = 1} 则有w 整除p-1=2q,因而由q是素数知,w只能 是2或q. 此时是 α 本原元等价于 α 2 mod p ≠ 1 且 α q mod p ≠ 1
ELGamal数字签名
摘要随着网络的发展,人们之间的各种交流变得越来越来方便,但同时也对信息传递的安全提出了新的要求,数字签名随之广泛的深入到了人们的日常生活中。
ELGamal作为目前应用比较广泛的数字签名算法,其信息安全性,以及可实现程度,在很大程度上决定了它的应用范围。
本文主要对ELGamal数字签名体制中的签名和认证过程中所需的模块,以及用户如何由离散对数难题保证了签名的正确性进行了必要的描述。
接下来对ELGamal数字签名安全性以及他在基于身份认证中的应用做了一定介绍。
论文重点是对密码算法前提的大整数运算算法做了进一步研究,对大素数的生成,其中包括素性测试和随机数生成算法原理做了一定介绍,然后介绍了乘法群的生成元的生成原理,论文最后将系统介绍签名过程。
关键词:ELGamal数字签名验证大整数运算大素数生成元ABSTRACTWith the development of network, the communions between people become more and more convenient, but also it brings forward the new security requirements of in-formation transfer. Digital Signature goes into the people's daily life along with these processes.As one of the most widely used Digital Signature, the application of the ELGamal Signature is largely depend on his information security and the operation process. In this paper, we will discuss the process of the ELGamal Signature and the attestation. One can check his authorization of the sign which rely on the problem of the discrete logarithm. And then we will analyze the security of the signature. The application the ELGamal signature in the ID-BASE system will also be discussed. The key part of this paper is to introduce the concept the large integer. The arithmetic of the large in-teger is crucial in most cryptosystems.As to the construction of a large prime inte-ger,we will discuss the method to construct a Random Number and the primality test.Then the high-order-cycle generator method for the formation of the foundation will introduced too.In the last part of the paper,we will go through the process of the ELGamal Signature.keywords: ELGamal Digital Signature authorization large Integer large Prime Number generator目录错误!未定义书签。
公钥密码(中Elgamal)
16
ELGamal公钥密码
1985年,El Gamal 在Differ-Hellman密钥交换协议基础上改 进而来 依赖数学难题:DLP (Discrete Logarithm Problem)
17
ELGamal公钥密码
算法
生成密钥对GenKeyPair 加密Encrypt 解密Decrypt
离散对数问题
(备注)算法复杂度:
例如:
离散对数问题
离散对数问题 (Discrete Logarithm Problem),简称 DLP
Given α, y , p, to find x s.t. αx=y (mod p) e.g.
α=2 , y=3 , p=23 , x=? α=2 , y=97206 , p=136943 , x=?
24
ELGamal公钥密码
算法可还原性证明
C2 V-1 mod p =(UM)V-1 mod p =UM(C1 d)-1 mod p =UM((αk)d)-1 mod p =UM((αd)k)-1 mod p =UM((y)k)-1 mod p =UM(U)-1 mod p =M mod p
25
27
ELGamal公钥密码
安全性
针对k重复使用的攻击方法
攻击1(假设攻击者掌握k)如果 k不是一次性的,时间长了 就可能被攻击者获得。又因y是公开密钥,攻击者自然知道。 于是攻击者就可以根据 U=y k mod p计算出U,进而利 用Euclid算法求出U-1。又因为攻击者可以获得密文C2,于是 可根据式C2=UM mod p通过计算U-1C2得到明文M。 攻击2 设用同一个k加密两个不同的明文M和M’,相应的密文 为(C1 ,C2)和(C1’,C2’)。因为y k 不变,所以C2∕C2’= M∕M’,如果攻击者知道M,则很容易求出M’。
第4章公钥密码体制
利用推广的欧几里德算法简化计算:
其计算原理依赖于下面的定理:
定理 :gcd(a,b) = gcd(b,a mod b) ② 定理:a存在模p的乘法逆元的充要条件 是 gcd(a,p) = 1 如果gcd(a,b)=d,则存在m,n,使得d = ma + nb, 称呼这种关系为a、b组合整数d,m,n称为组 合系数。当d=1时,有 ma + nb = 1 ,此时可以 看出m是a模b的乘法逆元,n是b模a的乘法逆元
公钥和私钥必须相关,而且从公钥到私钥不可
推断
必须要找到一个难题,从一个方向走是容易的,从 另一个方向走是困难的 如何把这个难题跟加解密结合起来
计算可行和不可行的界与计算复杂性理论密
切相关
计算复杂性理论可以提供指导
但是需求不尽相同
计算复杂性通常针对一个孤立的问题进行研究 而公钥密码学往往需要考虑一些相关的问题 比如,密码分析还需要考虑已知明文、选择明文等相关的情形 计算复杂性考虑最坏的情形 而对于公钥密码学则是不够的
二、密钥的选取
①
挑选大素数p 和 q 。 选择 e 或 d ,并计算另外一个。
②
选取一个素数的过程如下:
①随机选一个奇数n; ②随机选一个整数a<n; ③完成素性检测,如下面的Miller-Rabin算法 ④如果n没有通过检验,舍弃n并转向步骤(1),如果n
通过了足够多次的检验,就接受它为素数,否则转 向步骤(2)
ElGamal:安全性基于有限域内计算离散对
数的困难性。
– 数字签名 – 加密
基础知识
若p是素数,则0,1……,p-1
构成一个有限域 本原元定义:若(a,m)=1,以m为模a的指数φ (m) 为使ad=1 mod m成立的最小的正整数d,则a叫 做模m的原根或本原元。 本原元α :α 满足α p-1=1 mod p且p-1是使此关 系式成立的最小正整数,p为素数
网络安全-09-密钥管理和其它公钥密码体制-DH-ElGamal-ECC要点
2020/10/1
西安电子科技大学计算机学院
2
2020/10/1
西安电子科技大学计算机学院
3
Diffie - Hellman密钥交换
是一个公钥分配方案
不能用于交换任意的消息 只限于进行公共密钥的建立 只对通信的双方已知
密钥的值依赖于通信的参与者 (以及他们的 私钥和公钥信息)
有限域中的指数运算(模一个素数)是相对 容易的,而离散对数的计算是相对困难的。
《计算机与网络安全》
Chapter 10
密钥管理和其它公钥密码体制
§10.1 Diffie-Hellman密钥交换
第一个公钥算法 1976由Diffie 和 Hellman 提出 DH算法是一个实用的密钥公开交换的算法 算法本身只限于进行密钥交换 已应用在许多商业产品中
“New directions in cryptography ”
会话密钥KAB 作为A和B两个用户在传统密码体制中的 共享密钥来使用的
可以一直使用前面产生的会话密钥,直到想重新选择新 的会话密钥为止。
攻击者需要解出x, 必须求解离散对数。
2020/10/1
西安电子科技大学计算机学院
7
Diffie-Hellman 举例
用户 Alice 和 Bob 想交换密钥:
双方同意使用全局参数 q = 353 和α=3
随机选择一个保密的私钥:
A 选择 xA = 97, B 选择 xB = 233
分别计算各自的公钥:
yA=397 mod 353 = 40 (Alice) yB=3233 mod 353 = 248 (Bob)
计算共享的会话密钥:
KAB= yBxA mod 353 = 24897 = 160 KAB= yAxB mod 353 = 40233 = 160
第十二讲 ElGamal公钥密码体制及Diffie-Hellman协议
Exercises
3、Illustrate the operation of RSA, given the following parameters: System modulus n=119 (7x17) encryption exp e=11 Determine the decryption exponent d, and hence details the public and private keys for this user. Then show how a message M=20 would be encrypted and decrpyted.
Diffie-Hellman 密钥分配方案 公钥密码问世 Diffie & Hellman in 1976: 密钥交换的实际方法 公钥方案概念的提出
W Diffie, M E Hellman, "New directions in Cryptography", IEEE Trans. Information Theory, IT-22, pp644-654, Nov 1976
α b , 并 计 算 (α b ) a α a , 并 计 算 (α a ) b αb
,并把计算
此 时 , A 和 B 已 有 了 共 享 的 群 元 素 α ab ( 可 作 为 共 享 密 钥 ) ( 此 。 协议是没有认证的交换协议,但可以通过第三方对交换的消息认
证、签名)
改进措施
使用STS协议时,A与B都提供自己的公 协议时, 与 都提供自己的公 使用 协议时 密钥对和共钥的证书, 根据一些消 钥/密钥对和共钥的证书,A根据一些消 密钥对和共钥的证书 息来计算一个签名, 息来计算一个签名,其中包括公共值 g^a mod p,B也做类似的运算。即使 p,B也做类似的运算 也做类似的运算。 C仍然能够截取 C仍然能够截取A与B之间的信息,但他 仍然能够截取A与B之间的信息 之间的信息, 并不能在没有A和 的密钥的情况下伪造 并不能在没有 和B的密钥的情况下伪造 签名,因此,这个增强的协议抵挡了中 签名,因此, 间人攻击。 间人攻击。
基于编码的ElGamal_型公钥密码体制研究概述
第31卷第2期北京电子科技学院学报2023年6月Vol.31No.2JournalofBeijingElectronicScienceandTechnologyInstituteJun.2023基于编码的ElGamal型公钥密码体制研究概述∗刘㊀冰㊀吴旭聃㊀冯雨薇北京电子科技学院,北京市㊀100070摘㊀要:基于编码的公钥密码算法具有安全性高㊁加解密速度快㊁易于实现的优点,但也普遍存在公钥规模大的缺点㊂常用的基于编码的加密方式有McEliece型㊁Niederreiter型和ElGamal型三种㊂作为新出现的加密模式,ElGamal型体制中涉及两类不同功能的编码,存在译码失败概率问题,采用了独特的临时密钥方法,提高了其安全性能㊂本文重点对ElGamal型加密方式进行介绍,对其结构㊁所基于的困难问题和译码失败概率等进行了研究,从而可以对该结构有更深入的认识,并据此为以后的设计和分析工作奠定基础㊂关键词:编码;ElGamal型;临时密钥;译码失败概率中图分类号:TP309㊀㊀㊀文献标识码:A文章编号:1672-464X(2023)2-01-09∗㊀基金项目:北京电子科技学院一流学科建设项目(项目编号:1201011)∗∗㊀作者简介:刘冰(1976-),男,博士,副教授,研究方向:密码学;吴旭聃(1996-),男,硕士研究生,研究方向:密码学;冯雨薇(1998-),女,硕士研究生,研究方向:密码学㊂引言㊀㊀随着时代的发展,量子计算机能将许多传统的公钥密码算法轻易破解,所以须寻求安全性更高的公钥密码算法,这就有了后量子密码算法[1,2]的出现㊂后量子密码算法能够有效抵御量子计算机的攻击,它们大致有以下几种:基于格的㊁基于编码的㊁基于多变量的㊁基于同源的㊁基于哈希函数的等㊂目前,越来越多的学者开始对后量子密码学进行研究㊂NIST发布公告,呼吁制定新标准用于后量子密码系统,CACR也举办了包括后量子密码在内的算法竞赛,来鼓励更多的人加入此项研究㊂美国国家标准技术研究所(NIST)在2012年启动了后量子密码的研究工作,并于2016年2月启动了全球范围内的后量子密码标准征集㊂NIST主要聚焦于以下3类后量子密码算法的征集:公钥加密㊁密钥交换㊁数字签名㊂有82个提案提交给NIST,其中69个方案进入第一轮,基于编码的方案有20个㊂有26个提案进入第二轮,有7个基于编码的方案[3]㊂有15个提案进入第三轮,基于编码的有3个㊂NIST于2022年7月发布了进入第四轮的候选算法,其中基于编码的有3个,分别是BIKE[4]㊁ClassicMcEliece[5]㊁HQC[6]㊂CACR的公钥密码竞赛中,也有进入到第二轮的基于编码的算法Piglet-1㊂基于编码的困难问题是公认的NP完全问题,在安全性方面能够得到保障,因而基于编码的密码算法有望成为后量子密码算法的主要选择㊂基于编码的公钥加密算法一直有着公钥规模大的缺点,但减小公钥规模可能会对其安全性北京电子科技学院学报2023年造成影响,有关方面的专家一直在这两者之间寻找一个平衡㊂基于编码的公钥密码系统,最早由McEliece[7]于1978年提出,称为McEliece方案,该方案基于Goppa码构造㊂Niederreiter在1986年提出了安全性等价的Niederreiter型方案㊂这两个体制的区别在于前者加密使用的是生成矩阵,而后者使用的是校验矩阵㊂近些年,受到格的加密算法的启发,编码的加密方案也开始使用ElGamal型加密方式[6]㊂本文对NIST中的一些基于编码的方案,根据它们的加密方式㊁所用的码㊁所基于的困难问题进行分类,如表1所示㊂表1㊀基于编码的NIST方案汇总类别结构码困难问题遴选结果ClassicMcElieceNiederreiter型Goppa码SD问题第四轮BIKENiederreiter型QC⁃MDPC码QCSD问题第四轮HQCElGamal型QC⁃MDPC码QCSD问题第四轮RQCElGamal型QC⁃LRPC码RQCSD问题第二轮ROLLOElGamal型QC⁃LRPC码RQCSD问题第二轮LEDAcryptMcEliece型QC⁃MDPC码QCSD问题第二轮BIGQUAKENiederreiter型Goppa码QCSD问题第一轮RLCE⁃KEMMcEliece型广义Reed⁃Solomon码SD问题第一轮DAGSMcEliece型DyadicGeneralizedSrivastava码SD问题第一轮1㊀相关定义㊀㊀定义1汉明距离和线性码㊂令Fq是一个有限域,则Fnq上两个字x和y之间的汉明距离[8]定义为x和y在对应位上不相同的位数㊂字x的汉明重量wt(x)定义为x中非零的位数㊂一个码是汉明空间Fnq的一个非空子集合㊂一个Fnq的k维子空间被称为是Fq上的一个(n,k)线性码㊂定义2生成矩阵和校验矩阵㊂设C是Fq上的(n,k)线性码㊂码C的生成矩阵[9]G是一个Fq上的矩阵,且使得C=<G>,<G>表示码C的向量子空间由G的行向量所张成㊂通常,G的行向量是相互独立的,且G是kˑn阶矩阵㊂如果G矩阵的前k列构成k阶单位阵,则称G为系统形式的生成矩阵㊂码C的对偶码Cʅ是在Fq上的标量乘意义下与C正交的码㊂它是Fq上的一个(n,n-k)码㊂码C的校验矩阵[9]H就是其对偶码Cʅ的生成矩阵㊂定义3最小距离和最小重量㊂设C是Fq上的(n,k)线性码㊂码C的最小距离d=dmin(C)是码的任意两个不同码字之间汉明距离的最小值㊂码C的最小重量是码的任意非零码字重量的最小值㊂线性码的最小距离等于其最小重量㊂设码的最小距离为d,则将(n,k)线性码称为(n,k,d)码㊂定义4秩距离㊂在有限域Fqm上(Fqm可视为Fq的m维空间),设u=(u1,u2,...,un)ɪFnqm,β1, ,βm是Fq上的一组基向量,每个ui可以由基表示为ui=ðmj=1xjiβj,则矩阵U=(xji)1ɤjɤm,1ɤiɤn,的秩称为u的秩重量,记为wR(.)㊂∀u,vɪFnqm,u和v的秩距离[10]d(u,v)=wR(u-v)㊂定义5循环矩阵㊂令x=(x1, ,xn)ɪFn㊂则循环矩阵定义如下:rot(x)=x1xn x2x2x1 x3︙︙⋱︙xnxn-1 x1éëêêêêêêùûúúúúúúɪFnˑn定义6准循环码(Quasi⁃CyclicCodes)[11]㊂将Fsn2的向量x=(x1, ,xs)视为s个连续块(n元组)㊂对于任意c=(c1, ,cs)ɪC,每个块c1, ,cs同时进行循环变换后获得的向量仍是㊃2㊃第31卷基于编码的ElGamal型公钥密码体制研究概述㊀一个是码字,则称一个[sn,k,d]线性码C是s阶的准循环(QC)㊂定义7MDPC码[12]:即中密度奇偶校验码㊂一个(n,r,w)-MDPC码是指长度为n,其奇偶校验矩阵行重量为w,余维数为r的线性码㊂MDPC码与LDPC码(低密度奇偶校验码)的区别在于它们行重量的大小,MDPC码行重量约为O(nlogn)数量级㊂定义8QC⁃MDPC码[12]㊂(n,r,w)-MDPC码为准循环结构时,即准循环中密度奇偶校验码(QC⁃MDPC码)㊂QC⁃MDPC码的定义是关于该码的校验矩阵H㊂(n,k,w,t)-QC⁃MDPC码中n是码长,也是H的列数;k为码的维度,r=n-k表示码的校验维度,也是H的行数;w表示校验矩阵H的固定行汉明重量;t表示码的纠错能力㊂QC⁃MDPC码的准循环结构奇偶校验矩阵HQC为HQC=H11 H1j︙⋱︙Hi1Hijéëêêêêùûúúúú定义9Polar码㊂极化码(Polarcode)[13]是一种信道编码方法,最早由土耳其Arikan[14]于2009年提出,其在理论上具有无限接近于香农限的独特性质㊂Polar码的原理是信道极化[15]㊂在信道极化中,有两个重要参数信道容量I(W)和巴氏参数Z(W)㊂给定一个B⁃DMC信道,如W:XңY,X和Y为输入和输出㊂令W(Y|X)为信道转移概率,其中Xɪ{0,1}㊂对信道W,信道的参数为信道容量I(W)和巴氏参数Z(W),则I(W)≜ðyɪYðxɪX12W(y|x)logWyx()12Wy0()+12Wy1()Z(W)≜ðyɪYWy0()Wy1()2㊀编码中的困难问题㊀㊀基于编码的困难问题[16]是一类量子计算机无法有效求解的NP完全问题㊂大多数编码的困难问题是源于SyndromeDecoding(SD)问题,它已经被证明是NP完全问题㊂本节将介绍3种常见的编码困难问题,分别是校验子译码(SD)困难问题㊁准循环码的校验子译码(QCSD)困难问题和准循环秩码的校验子译码(RQCSD)困难问题㊂NIST中的大部分参数方案都是基于以上的三个问题㊂2 1㊀SD困难问题H是有限域F上的随机线性码C的(n-k)ˑn的校验矩阵,sɪFn-k,找一个重量小于d的字xɪFn使得HxT=s㊂2 2㊀QCSD困难问题H是有限域F上的准循环码C的(n-k)ˑn的准循环校验矩阵,sɪFn-k,找一个汉明重量小于d的字xɪFn使得HxT=s㊂QCSD问题的困难性虽未得到严格证明,但对于准循环(QC)码的矩阵,SD问题仍然适用,目前也没有对其有效的攻击算法㊂2 3㊀RQCSD困难问题H是有限域Fq上的准循环码C的(n-k)ˑn的准循环校验矩阵,sɪFn-kq,找一个秩重量小于d的字xɪFnq使得HxT=s㊂RQCSD问题与上一问题的区别在于这里是在秩距离下,而上者是汉明距离㊂3㊀McEliece和Niederreiter加密方式㊀㊀在基于编码的公钥密码算法中,包括三种常见的构造模式㊂其中McEliece型和Niederreiter型出现较早,对其讨论也比较充分㊂这两种算法设计思路比较明确,但它们是直接通过隐藏码的结构来保证方案的安全性,这就对码的结构要求㊃3㊃北京电子科技学院学报2023年十分严格,并且存在破解的可能㊂目前这两种方式又可以分为原始方案与现代方案,主要区别在于现代方案使用的码字为系统码,其生成矩阵和校验矩阵具有G=(Ik X)和H=(-XTIn-k)的形式,因此可以减少部分密钥量㊂3 1㊀McEliece型加密方案3 1 1㊀原始方案密钥生成:生成一个能纠t个错的[n,k]线性码ς的生成矩阵G;私钥sk,(S,G,P),其中S是一个混淆可逆矩阵,P是一个置换矩阵;公钥pk:G =S㊃G㊃P㊂加密:给定一个明文m和一个重量w(e)ɤt的噪声向量e,密文为cѳmG +e㊂解密:令ΦG是能纠t个错误的译码算法,则明文可通过如下过程解密得到mѳΦG(cP-1)S-1㊂3 1 2㊀现代方案密钥生成:给定一个能纠t个错的[n,k]线性码ς的生成矩阵G;私钥sk,G;公钥pk,Gᶄ=(IQ)为G的标准型㊂加密:给定要加密的明文m,一个重量w(e)ɤt的噪声向量e,密文通过如下过程获得cѳmGᶄ+e㊂解密:令ΦG是能纠t个错误的译码算法,则明文可通过如下过程解密得到mѳΦG(c)㊂3 2㊀Niederreiter型加密方案3 2 1㊀原始方案密钥生成:给定一个能纠t个错的[n,k]线性码ς的校验矩阵H;私钥sk,(S,H,P),其中S是混淆可逆矩阵,P是一个置换矩阵;公钥pk,H=S㊃H㊃P㊂加密:重量wt(e)ɤt的噪声向量e,被用来表示明文信息m,密文为sѳHᶄeT㊂解密:令ΦH是能纠t个错误的译码算法,则明文可通过如下过程解密得到eѳP-1ΦH(S-1s)㊂3 2 2㊀现代方案密钥生成:给定一个能纠t个错的[n,k]线性码ς的校验矩阵H;私钥sk,H;公钥pk,Hᶄ=[Q|In-k]ѳH㊂加密:重量w(e)ɤt的噪声向量e,被用来表示明文信息m,密文s通过如下过程获得sѳHᶄeT㊂解密:令ΦH是能纠t个错误的译码算法,则明文可通过如下过程解密得到eѳΦH(s)㊂4㊀ElGamal型加密方式㊀㊀2017年,CarlosAguilar等人提出了第一个安全性依赖于随机准循环码译码的高效密码系统[17],即ElGamal型密码系统,随之又出现了ElGamal型的HQC和RQC[18]算法㊂Barreto[19]等人提出了ElGamal型的CAKE算法,Jean⁃ChristopheDeneuville提出了ElGamal型的Ou⁃roboros[20]算法,NicolasAragon等人提出的BIKE算法,其中第二轮中BIKE3是以Ouroboros算法为基础进行改进的ElGamal型算法㊂2019年,王丽萍等人提出了秩距离下的ElGamal型Piglet-1算法㊂ElGamal型加密方式与另外两种加密方式不同之处在于采用了两个独立的码㊂其中随机拟循环码不需要解密,保证了方案的安全性;而公开码C(或QC⁃MDPC码)保证了算法的正确性,对效率有很大影响㊂它让使用难以隐藏但译码效率很高的公开码成为可能㊂与之相比,McEliece型和Niederreiter型方案的编译码方法是固定的㊂同时ElGamal型采用的公私钥是临时密钥,每次密钥交换时都会生成一个新的密钥对,这意味着ElGamal型方式在信息传输时的密钥是不断更新的,这样可有效抵御GJS攻击㊂4 1㊀ElGamal型加密方式概况ElGamal型方案又可以分两类㊂㊃4㊃第31卷基于编码的ElGamal型公钥密码体制研究概述㊀4 1 1㊀版本一(以HQC㊁Piglet-1等为代表)密钥生成:随机取样hƔѳR=F2[X]/(Xn-1),GɪFkˑn2是具有快速译码算法的编码C在R上的生成矩阵;私钥sk,(x,y)ƔѳR2且ω(x)=ω(y)=w;公钥pk,(h,s=y+h㊃x),得到(pk,sk)㊂加密:生成噪声向量eƔѳR㊁(r1,r2)ƔѳR2使得ω(e)=we,ω(r1)=ω(r2)=wr,密文(c1,c2),c1=r1+h㊃r2,c2=mG+s㊃r2+e,得到c=(c1,c2)㊂解密:令DG是码C的能纠δ个错误的译码算法,解密如下mѳDG(c2-c1㊃x)=DG(mG+yr2-r1x+e),返回DG(c2-c1㊃x)㊂4 1 2㊀版本二(以Ouroboros,BIKE第二轮算法3为代表)密钥生成:随机取样hƔѳR=F2[X]/(Xn-1),;私钥sk,(x,y)ƔѳR2且ω(x)=ω(y)=w;公钥pk,(h,s=y+h㊃x),得到(pk,sk)㊂加密:生成噪声向量eƔѳR㊁(r1,r2)ƔѳR2使得ω(e)=we,ω(r1)=ω(r2)=wr,密文(c1,c2),c1=r1+h㊃r2,c2=s㊃r2+e,得到c=(c1,c2)㊂解密:对(c2-c1㊃y)进行译码,得到e和(r1,r2)㊂4 2㊀正确性验证以版本一为例,版本二类似㊂假设合法的接收者可以使用sk从消息的噪声编码c2中去除足够多的错误,系统的正确性可以得到保证㊂此方案的正确性显然依赖于码C的译码能力㊂特别的,假定码C正确译码c2-c1㊃y,则有Decrypt(sk,Encrypt(pk,m))=m㊂要使码C正确译码c2-c1㊃y,还需满足以下条件:ω(s㊃r2-m㊃y+e)ɤδ,即ω(x㊃r2-r1㊃y+e)ɤδ,此条件将通过译码失败概率分析(以足够大的概率)得到保证㊂4 3㊀设计特点与传统的McEliece和Niederreiter型方案相比,ElGamal型方案具有一些新的设计特点,从而进一步提高了方案的安全性㊂其中临时密钥的采用和不需隐藏码的结构是其中两个主要特点㊂使用临时密钥在安全性方面的提升主要体现在可以抵御GJS攻击[21]㊂GJS攻击全称为密钥恢复攻击,是指A采用公钥加密消息并将密文发给B,在这一过程中如果产生译码上的错误,B会给A反馈㊂如果攻击者C假扮成A向B发密文,并从B的反馈中收集译码错误信息,通过收集大量译码错误信息,攻击者C便能恢复出方案的私钥㊂McEliece和Niederreiter型方案不能抵御GJS攻击,原因是其在传输过程中的密钥是固定的㊂而ElGamal型采用了传输时不断更新的临时密钥,GJS的攻击者最多只有一次观察解密的机会,因此无法创建关于不同错误模式的统计信息,GJS攻击本质上是失效的㊂在McEliece和Niederreiter型方案加密框架中,是通过直接隐藏码的结构(通过给码的生成矩阵或校验矩阵进行变换)来保证安全性,这使得算法安全性依赖于隐藏码的结构,解密算法由译不可更改的隐藏码组成㊂这种方式使其面临攻击,存在安全隐患㊂而ElGamal型框架中,安全性寄托在不需译码的随机QC码上,而需要进行编译码的码C是公开参数,不需要进行保密,这就进一步提高了其安全性㊂4 4㊀信息位编码方式版本一的信息位为m,版本二的有效信息为e和(r1,r2)㊂如果用于混合加密中的对称密钥生成,信息位可如以上算法所示随机产生㊂如果用于信息传输在版本二中会涉及到等重编码[22]的问题㊂等重码是将信息编码为具有规定重量的码字的方法㊂令q为整数,C集合如果是w=(w1,w2, ,wn)ɪ{0,1}n{:ðni=1wi=q}的子集,则称C为长度为n,重量为q的等重码其㊃5㊃北京电子科技学院学报2023年构造方法可参考文献[22]等㊂在版本二中,因为错误向量e和(r1,r2)都有重量要求,所以必须先将信息编码为具有特定重量的码字才能使用版本二传输特定信息㊂4 5㊀ElGamal体制中涉及的编译码在版本一中包含了两类码㊂一个是[n,k]码C,它需要进行编码和译码,为此需要具有高效译码算法DG㊂码C和它的生成矩阵是公开的,对安全性没有影响㊂第二种码是随机QC码㊂从公钥求解私钥,以及在只有公钥情况下从密文破解明文可以视为随机拟循环码的译码问题,无法进行有效译码㊂总体思路是通过拟循环码生成噪声,生成的噪声可被码C译码㊂对算法进行优化的一个思路是选择具有更优纠错能力和快速算法的公开码C,比如Polar码㊂Polar码具有达到香农极限的编码效率,有利于进一步压缩密钥量,同时保持快速的编译码㊂Polar码的译码可采用SC译码[23]算法㊂在版本二同样存在两类编码㊂与安全相关的随机拟循环码与上面类似㊂版本二中不需要构造公开码C,但需要对(yr2-r1x+e)进行译码,在私钥(x,y)已知的情况下恢复e和(r1,r2)为QC⁃MDPC码译码问题,即带噪声的校验子译码㊂准循环性不会改变译码算法,但因为存在额外的噪声e,此为带噪声的校验子译码㊂噪声校验子译码是校验子译码的一种变体,在给定H和s的情况下,需寻找eɪFn2,使s-eHT和e都具有较小的重量㊂比特翻转算法在进行修改后同样适用于噪声校验子译码[4]㊂4 6㊀安全归约一个编码方案的安全性要归结到它的困难问题㊂ElGamal型密码体制在进行加解密时所使用的是随机拟循环(QC)码,所以其困难问题可以归结到QCSD问题或者RQCSD问题㊂选择明文攻击下的不可区分性(IND⁃CPA)通常通过以下的游戏来证明:攻击者A选择两个明文μ0和μ1,并将它们发送给的挑战者,挑战者随机决定bɪ{0,1}的值,将μb加密为密文c,并将c返回给A㊂如果A在决定密文c加密哪个明文时具有可以忽略的优势,则认为该加密方案是IND⁃CPA安全的㊂汉明距离下的El⁃Gamal型方案在QCSD假设下的IND⁃CPA㊂在ElGamal型体制中,已知公钥(h,s=y+h㊃x),求解私钥(x,y),即为已知随机QC码的校验矩阵(1,h)和伴随式s,求解满足重量要求的向量(x,y)㊂而已知公钥和密文(c1,c2)=(r1+h㊃r2,mG+s㊃r2+e)求解明文的过程,可以归结为在校验矩阵(10h01s)和伴随式(c1,c2-mG)已知下求解满足重量要求的向量(r1,e,r2).很明显,以上均为QCSD问题㊂以上为对汉明距离下的方案的分析,秩距离下可以类比完成㊂4 7㊀译码失败概率由算法可知,要想正确译码,需要满足ω(x㊃r2-r1㊃y+e)ɤδ㊂与McEliece型和Niederre⁃iter型相比,ElGamal型体制必然存在着译码失败概率(DFR),需要将其限定在2-λ以下,其中λ为算法的设计安全强度㊂对译码失败概率进行分析,目前的主要方法包括理论分析和实验分析两种㊂在理论分析中,首先假设误差向量eᶄ的每个固定坐标eᶄk的概率分布为伯努利分布,参数p∗=P[eᶄk=1],利用参数p∗的二项分布来估算eᶄ的重量分布㊂而在实验中,由于译码失败概率通常较小,直接进行标准参数下的实验测量所需数据量过大以至无法实现㊂通常的方法是首先进行短码下的测试,然后利用外推法来估算长码的情况,总体来看所得结果较实际情况保守㊂由于译码失败概率估计的复杂性,目前两种方法都无法得到精准的结果,这也在一定程度上限定了密钥尺寸的进一步压缩㊂因此对此问题进行研究也成为了ElGamal型方案应用研究的重要方面㊂㊃6㊃第31卷基于编码的ElGamal型公钥密码体制研究概述㊀4 8㊀参数选取码长等参数的选择会影响密钥尺寸和编译码复杂度,从而对安全性和效率都有较大影响㊂一方面,出于结构性原因,实际攻击的复杂性会随着码长的增加而迅速增长㊂特别是拟循环码有其特殊的结构,面对特定的结构攻击会有很大的危险,需要保持一定的安全冗余㊂另一方面,计算量会随着系统规模的增加而增加,所以它可以表示成系统规模的函数,常用规模的幂方数来度量计算量的大小㊂所以,参数选择是基于编码的公钥密码设计的重要部分㊂对参数的选取要考虑的内容有安全性㊁解码效率㊁占用空间等㊂最终的参数要综合考虑有高解码效率,不易被攻破又尽可能小的占据密钥空间㊂在设定参数时,最重要的要素是考虑方案针对现有攻击的抵抗强度,同时考虑满足译码失败概率的要求㊂信息集译码[24](ISD)是目前对于编码最有效的攻击方法㊂基本思想是将校验矩阵变为系统形式,再进行信息位匹配和校验位匹配㊂最简单的ISD形式是1962年Prange提出的,它试图猜测码中设置的无错误信息㊂根据定义,信息集是确定整个码字的位置集㊂如果该集合避免了密文中的所有错误位置,则该集合是无错误的;那么这些位置上的密文就是这些位置上的码字㊂攻击者通过线性运算确定码字的其余部分,并通过检查错误权值是否为t来判断攻击是否成功㊂对于k/n=1/2的算法,通用的信息集译码算法的复杂度为WFA(n,k,t)=2ct(1+o(1))c取决于算法,编码率R=k/n和错误率t/n㊂对于次线性(tʈn)的情况,可取C=log211-R而针对ElGamal型算法中所采用的QC码,需要考虑针对其循环结构的特殊译码算法㊂DecodingOneOutofMany(DOOM)[25]算法就针对准循环结构,对产生循环结构的多项式进行攻击,QC码比起随机码的信息集译码方式快r倍,尤其当多项式有多个低次因子更有效㊂因此准循环码在选取参数时需使(Xr-1)/(X-1)ɪF2[X]不可约,防止使用DOOM算法快速破解准循环结构㊂在能够抵抗以上攻击方法的前提下,同时考虑译码失败概率满足安全强度要求,可以反推参数选择范围㊂如在安全参数λ的要求下,ElGamal类型码长为O(λ2),对应公钥长度为O(λ2),与之相比,基于Goppa码的McEliece类型分别为O(λlogλ)和O(λ2(logλ)2)㊂需要指出的是,目前典型的ElGamal型算法的安全性均建立在拟循环码译码的基础上,因此其参数选择范围相近㊂如在2128强度下,HQC的(n,w)参数为(17669,66),BIKE-3为(24538,67),其中n为码长,w为错误向量x和y重量㊂与之相比,其设计灵活性更加体现在公开码C的选择等方面㊂5㊀结语㊀㊀基于编码的公钥密码算法能有效抵抗量子算法的攻击,目前已有许多高效且安全的基于编码的公钥加密算法,是后量子密码算法的主流方向之一㊂本文先介绍了基于编码的公钥密码算法的背景,然后对加密方式㊁编码困难问题做了简要回顾㊂目前对McEliece型和Niederreiter型研究地较为充分,相比较,对ElGamal型加密方式的相关工作较少,EIGamal型加密使用临时密钥,并且不需要在公开的矩阵中隐藏码结构,具有一定的优势,本文以ElGamal型公钥加密方式为重点,对其正确性㊁安全性及译码失败概率等方面进行了总结㊂并给出后续设计和分析中需要注意的问题,主要包括:(1)译码失败概率对算法性能有重要影响,需要从理论和实验方面给出更为精确的结果;(2)利用编码理论发展的最新结果,选择更为高效的码字C,对提高算法的㊃7㊃北京电子科技学院学报2023年实现效率有重要帮助;(3)通过等重码等方式对错误向量进行编码,有可能进一步提高传输效率,等等㊂通过本文,希望可以为基于编码的El⁃Gamal型方案的设计与分析打下基础㊂参考文献[1]㊀CHENL,JORDANS,etal.ReportonPost⁃QuantumCryptography[M].Washington:USDepartmentofCommerce,NationalInstituteofStandardsandTechnology,2016.[2]㊀ALAGICG,ALPERINJ,etal.StatusReportontheFirstRoundoftheNISTPost⁃QuantumCryptographyStandardizationProcess[M].Washington:USDepartmentofCommerce,NationalInstituteofStandardsandTechnology,2019.[3]㊀王丽萍,戚艳红.基于编码的后量子公钥密码研究进展[J].信息安全学报,2019,4(2).[4]㊀AragonN,BarretoP,BettaiebS,etal.BIKE:bitflippingkeyencapsulation[J/OL].(2017-12-22)[2021-3-10].https://hal.archives⁃ouvertes.fr/hal-01671903.[5]㊀ChouT,CidC,UibS,etal.ClassicMcE⁃liece:conservativecode⁃basedcryptography[J/OL].(2020-10-10)[2021-3-10].ht⁃tps://classic.mceliece.org/nist/mceliece-20201010.pdf.[6]㊀MelchorCA,AragonN,BettaiebS,etal.Hammingquasi⁃cyclic(HQC)[J].NISTPQCRound,2018,2:4-13.[7]㊀McElieceRJ.APublic⁃KeyCryptosystembasedonAlgebraicCodingTheory[J].DeepSpaceNetworkProgressReport,1978,44:114-116.[8]㊀McElieceRJ.Thetheoryofinformationandcoding[M].Cambridge,UK:CambridgeUni⁃versityPress,2002:139-228.[9]㊀RobinsonDJS.Anintroductiontoabstractalgebra[M].Berlin:WalterdeGruyter,2008:255-266.[10]㊀GABORITP,HAUTEVILLEA,PHANDH,etal.Identity⁃basedencryptionfromcodeswithrankmetric[C]//The37thAnnualInter⁃nationalCryptologyConference(CRYPTO).2017:194-224.[11]㊀MisoczjiR,TillichJP,SendrierN,etal.MD⁃PC⁃McEliece:NewMcEliecevariantsfrommoderatedensityparity⁃checkcodes[C]//2013IEEEinternationalsymposiumoninfor⁃mationtheory.Istanbul:IEEE,2013:2069-2073.[12]㊀GallagerR.Low⁃densityparity⁃checkcodes[J].IRETransactionsoninformationtheory,1962,8(1):21-28.[13]㊀HOOSHMANDR,AREFMR.EfficientPolarCode⁃BasedPhysicalLayerEncryptionScheme[J].IEEEWirelessCommunicationsLetters,2017,6(6):710-713.[14]㊀ARIKANE.ChannelPolarization:AMethodforConstructingCapacityAchievingCodesforSymmetricBinary⁃InputMemorylessChannels[J].IEEETransactionsonInformationTheory,2009,55(7):3051-3073.[15]㊀HooshmandR,ArefMR.Polarcode⁃basedsecurechannelcodingschemewithsmallkeysize[J].IETCommunications,2017,11(15):2357-2361.[16]㊀SENDRIERN.Code⁃basedcryptography:stateoftheartandperspectives[J].IEEESe⁃curity&Privacy,2017,15(4):44-50.[17]㊀CarlosAguilar⁃Melchor,OlivierBlazy,Jean⁃ChristopheDeneuville,PhilippeGaborit,andGillesZ mor.Efficientencryptionfromrandomquasi⁃cycliccodes[J].IEEETransactionsonInformationTheory,64(5):3927-3943,2018.㊃8㊃第31卷基于编码的ElGamal型公钥密码体制研究概述㊀[18]㊀Aguilar⁃MelchorC,BlazyO,DeneuvilleJC,etal.Efficientencryptionfromrandomquasi⁃cycliccodes[J].IEEETransactionsonInfor⁃mationTheory,2018,64(5):3927-3943.[19]㊀BarretoPSLM,GueronS,GuneysuT,etal.Cake:Code⁃basedalgorithmforkeyencapsula⁃tion[C]//IMAInternationalConferenceonCryptographyandCoding.Cham:Springer,2017:207-226.[20]㊀DeneuvilleJC,GaboritP,Z morG.Ourobo⁃ros:Asimple,secureandefficientkeyex⁃changeprotocolbasedoncodingtheory[C]//Post⁃QuantumCryptography:8thInternationalWorkshop,PQCrypto2017,Utrecht,TheNetherlands,June26-28,2017,Proceedings8.SpringerInternationalPublishing,2017:18-34.[21]㊀GuoQian,JohanssonT,StankovskiP.AkeyrecoveryattackonMDPCwithCCAsecurityusingdecodingerrors[C]//ProcofInterna⁃tionalConferenceontheTheoryandApplicationofCryptologyandInformationSe⁃curity.Berlin:Springer,2016:789-815.[22]㊀TianC,VaishampayanVA,SloaneNJA.Acodingalgorithmforconstantweightvectors:Ageometricapproachbasedondissections[J].IEEETransactionsonInformationTheory,2009,55(3):1051-1060.[23]㊀杨超,肖东亮,顾珍珍,等.基于Polar码的Niederreiter公钥密码体制[J].密码学报,2018,5(6):623-630.[24]㊀PrangeE.Theuseofinformationsetsindeco⁃dingcycliccodes[J].IRETransactionsonIn⁃formationTheory,1962,8(5):5-9.[25]㊀SendrierN.Decodingoneoutofmany[C]//Post⁃QuantumCryptography:4thInternationalWorkshop,PQCrypto2011,Taipei,Taiwan,November29-December2,2011.Proceedings4.SpringerBerlinHeidelberg,2011:51-67.AResearchSummaryofCoding⁃basedElGamalTypePublicKeyCryptosystem∗LIUBing㊀WUXudan㊀FENGYuweiBeijingElectronicScienceandTechnologyInstitute,Beijing100070,P.R.ChinaAbstract:Coding⁃basedpublickeycryptographyalgorithmhastheadvantagesofhighsecurity,fasten⁃cryptionanddecryptionspeedandeasyimplementation,butitalsohasthedisadvantagesoflargepublickeyscale.TheMcEliece,theNiederreiterandtheElGamalarethreetypesofcommonlyusedcoding⁃basedencryptionmethods.Asanewencryptionmode,theElGamalsysteminvolvestwocodingtypeswithdifferentfunctions,facingtheproblemofdecodingfailureprobability.Auniquetemporarykeymethodisutilizedtoimprovethesecurityperformance.ThispaperfocusesonintroducingtheElGamalencryption,andthestructure,difficultproblemsanddecodingfailureprobabilityarestudied,toachieveadeeperunderstandingofthestructureandtoobtainelementaryforfuturedesignandanalysis.Keywords:coding;ElGamaltype;temporarykey;decodingfailureprobability(责任编辑:张卷美)㊃9㊃。
elgamal 离散对数
ElGamal离散对数介绍ElGamal是一种基于离散对数问题的公钥密码体制。
它由塞尔弗·埃尔加马尔在1985年提出,是非对称密钥加密算法中的一种重要算法。
ElGamal算法具有安全性高、可证明安全等特点,在实际应用中得到广泛使用。
离散对数问题在介绍ElGamal算法之前,首先需要了解离散对数问题(Discrete Logarithm Problem)。
离散对数问题是指给定一个有限群G和元素g,找到满足g^x ≡ h (mod p)的整数x。
其中p是一个大素数,g是群G的生成元,h是群G中的一个元素。
离散对数问题被认为是计算复杂度非常高的问题,目前没有有效的算法可以在多项式时间内解决。
这使得离散对数成为了很多公钥密码体制的基础。
ElGamal加密算法ElGamal加密算法利用了离散对数问题来实现公钥加密和解密过程。
它包括了密钥生成、加密和解密三个主要步骤。
密钥生成1.选择一个大素数p作为模,并选择一个生成元g。
2.随机选择一个整数a,满足1 ≤ a ≤ p-2。
3.计算h = g^a (mod p)。
4.公钥为(p, g, h),私钥为a。
加密假设要加密的明文为m,加密过程如下: 1. 随机选择一个整数k,满足1 ≤ k ≤ p-2。
2. 计算c1 = g^k (mod p)。
3. 计算c2 = m * h^k (mod p)。
4. 密文为(c1, c2)。
解密解密过程如下: 1. 根据私钥a计算s = c1^a (mod p)。
2. 计算m’ = c2 * s^-1 (mod p)。
其中s^-1是s的模p的逆元素。
3. 明文为m’。
安全性分析ElGamal算法的安全性基于离散对数问题的困难性。
在大素数p和合适的参数选择下,破解ElGamal加密需要计算离散对数,这是一个非常耗时的任务。
然而,在实际应用中,需要注意一些安全性问题。
例如,如果相同的随机数k被重复使用来加密不同的明文,则可以通过观察两个密文之间的关系来推导出私钥a。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ElGamal公钥密码体制
1、问题描述
设计ElGamal公钥密码体制算法。
2、算法设计
(1)选取大素数p和p的一个原根a,(a,p)=1,1<a<p
(2)随机选取整数d,1<d<p-1,计算b≡ad (mod p);p,a,b为公钥,d为私钥
(3)加密:对0<m<p,秘密的随机选取整数k,1<k<p-1,加密后密文为c=(c1 ,c2 ),
c1 ≡ak (mod p), c2 ≡ m bk (mod p)
(4)解密:明文m ≡c2 ( c1 d) -1 (mod p)
主要步骤
3、算法分析
该算法的基础是找到一个原根,大数的原根产生过程比较慢,本人目前也只能产
生8位以内的素数的原根,还有待改进。
同时也涉及到模幂运算,选取的幂指数
如果较大,时间复杂度也会相应的增加。
int inverse(int a,int m)
{
long int c,d;
int j;
int q[100],r[100],t[100],s[100];
c=a;d=m;
r[0]=c;
r[1]=d;
s[0]=1;
s[1]=0;
t[0]=0;
t[1]=1;
for(j=1;r[j]!=0;j++)
{
q[j]=(int)(r[j-1]/r[j]);
r[j+1]=r[j-1]-q[j]*r[j];
if(j>=2)
{
s[j]=s[j-2]-q[j-1]*s[j-1];
t[j]=t[j-2]-q[j-1]*t[j-1];
}
}
return s[j-1];
}
int gcd(int a,int b)
{
int c;
if(a<b)
{
c=b;
b=a;
a=c;
}
while(b!=0)
{
c=b;
b=a%b;
a=c;
}
return a;
}
void main()
{
int p,g,k,s,x,r,t=1,i,j,f,y,m,M;
cin>>p>>g>>k;
s=2;
for(i=1;i<=k;i++)
{
t*=s;
t=t%p;
}
while(t<0)
{
t=t+p-1;
}
cout<<"public key is"<<"("<<t<<","<<g<<","<<p<<")"<<endl;
cin>>r;
if(gcd(p-1,r)!=1)cout<<"the data is not suitable"<<endl;
x=1;
for(j=1;j<=r;j++)
{
x*=s;
x=x%p;
}
cin>>m;
f=inverse(r,p-1);
y=(m-k*x)*f%(p-1);
while(y<0)
{
y=y+p-1;
}
cout<<"the signature is"<<"("<<x<<","<<y<<")"<<endl;
for(i=1;i<=m;i++)
{
g*=g;
}
g=g%p;
for(i=1;i<x;i++)
{
y*=y;
}
for(j=1;j<y;j++)
{
x*=x;
}
M=x*y%p;
if(M=p){cout<<"the signature is useful"<<endl;}
else{cout<<"the signature is not useful"<<endl;}
}
运行结果。