Elgamal算法
- 格式:doc
- 大小:29.00 KB
- 文档页数:3
常见加密算法概述筒子楼常见的加密算法可以分成三类:对称加密算法,非对称加密算法和Hash(散列)算法。
1.1 对称加密对称加密就是加密和解密使用同一个密钥,通常称之为“Session Key ”。
这种加密技术目前被广泛采用,如美国政府所采用的DES加密标准就是一种典型的“对称式”加密法,它的“Session Key”长度为56 Bits。
对称加密算法的优点在于加解密的高速度和使用长密钥时的难破解性。
假设两个用户需要使用对称加密方法加密然后交换数据,则用户最少需要2个密钥并交换使用。
如果企业内用户有n个,则整个企业共需要n×(n-1) 个密钥,密钥的生成和分发将成为企业信息部门的恶梦。
对称加密算法的安全性取决于加密密钥的保存情况,但要求企业中每一个持有密钥的人都保守秘密是不可能的,他们通常会有意无意的把密钥泄漏出。
如果一个用户使用的密钥被入侵者所获得,入侵者便可以读取该用户密钥加密的所有文档,这是非常可怕的。
常见的对称加密算法有:① DE S:数据加密标准(Data Encryption Standard),1976年被美国国家标准局确定为联邦资料处理标准(FIPS),随后在国际上广泛流传开来。
其优点是加密速度较快,适用于加密大量数据的场合。
DES是使用56位密钥的对称算法,现在已经不被视为一种安全的加密算法,主要因为它使用的56位密钥过短。
现在DES已经逐渐被淘汰。
② 3DES:(或称为Triple DES)是三重数据加密算法(TDEA,Triple Data Encryption Algorithm)。
它相当于是对每个数据块用三个不同的密钥进行三次DES加密。
3DES是DES向AES过渡的加密算法(1999年,NIST将3-DES指定为过渡的加密标准),是DES的一个更安全的变形。
③ DESX:DESX是DES的加强型的变体,由RAS信息安全公司的工具包支持。
DESX与DES之间的区别主要是:在进行DES加密之前,输入的明文要按位与一个额外的key 进行异或运算,并且DES加密输出之后也同样要按位与另一个key进行异或运算。
常见公钥加密算法有哪些什么是公钥加密公钥加密,也叫非对称(密钥)加密(public key encrypTIon),属于通信科技下的网络安全二级学科,指的是由对应的一对唯一性密钥(即公开密钥和私有密钥)组成的加密方法。
它解决了密钥的发布和管理问题,是目前商业密码的核心。
在公钥加密体制中,没有公开的是私钥,公开的是公钥。
常见算法RSA、ElGamal、背包算法、Rabin(Rabin的加密法可以说是RSA方法的特例)、Diffie-Hellman (D-H)密钥交换协议中的公钥加密算法、EllipTIc Curve Cryptography (ECC,椭圆曲线加密算法)。
使用最广泛的是RSA算法(由发明者Rivest、Shmir和Adleman 姓氏首字母缩写而来)是著名的公开金钥加密算法,ElGamal是另一种常用的非对称加密算法。
非对称是指一对加密密钥与解密密钥,这两个密钥是数学相关,用某用户密钥加密后所得的信息,只能用该用户的解密密钥才能解密。
如果知道了其中一个,并不能计算出另外一个。
因此如果公开了一对密钥中的一个,并不会危害到另外一个的秘密性质。
称公开的密钥为公钥;不公开的密钥为私钥。
如果加密密钥是公开的,这用于客户给私钥所有者上传加密的数据,这被称作为公开密钥加密(狭义)。
例如,网络银行的客户发给银行网站的账户操作的加密数据。
如果解密密钥是公开的,用私钥加密的信息,可以用公钥对其解密,用于客户验证持有私钥一方发布的数据或文件是完整准确的,接收者由此可知这条信息确实来自于拥有私钥的某人,这被称作数字签名,公钥的形式就是数字证书。
例如,从网上下载的安装程序,一般都带有程序制作者的数字签名,可以证明该程序的确是该作者(公司)发布的而不是第三方伪造的且未被篡改过(身份认证/验证)。
对称密钥密码体制所谓对称密钥密码体制,即加密密钥与解密密钥是相同的密码体制。
数据加密标准DES属于对称密钥密码体制。
同态学习的加密算法介绍同态加密是一种特殊的加密方式,它允许对加密数据进行计算,而无需先解密数据。
这意味着即使在加密状态下,数据也可以进行加法、乘法等运算,然后解密后得到与运算结果相同的明文。
同态加密对于保护数据隐私和安全非常重要,尤其在云计算和数据共享等场景下具有广泛的应用前景。
本文将介绍同态学习的加密算法,探讨其基本原理和应用领域。
一、同态加密的基本原理同态加密的基本原理是通过数学算法来实现对加密数据的运算。
最早的同态加密算法由 Rivest、A. Shamir和L. Adleman于1978年提出,被称为RSA加密算法。
RSA算法是一种公钥加密算法,其安全性基于大数分解的难解性。
而同态加密算法则是在不泄露数据的情况下,对数据进行加密和计算,然后解密后得到运算结果。
在同态加密的实现中,需要考虑到加密数据的保密性、运算的正确性以及运算结果的可验证性。
因此,同态加密算法通常涉及到众多的数学概念和密码学技术,如离散对数、椭圆曲线密码学等。
目前,常见的同态加密算法包括Paillier加密算法、ElGamal加密算法、Benaloh加密算法等。
二、同态加密的应用领域同态加密在许多领域都有着重要的应用价值。
首先,在云计算中,用户可以使用同态加密算法将数据加密后上传到云端,然后在云端进行计算,而无需泄需数据的隐私。
这对于保护用户隐私和数据安全非常重要。
其次,在医疗健康领域,同态加密也可以用来对医疗数据进行加密和计算,而无需泄露患者的隐私信息。
此外,在金融领域、物联网领域以及数据共享领域,同态加密也都具有广泛的应用前景。
三、同态加密的挑战和发展趋势尽管同态加密具有巨大的潜在应用价值,但其在实际应用中仍然面临着一些挑战。
首先,同态加密算法的计算效率较低,运算速度较慢,这限制了其在大规模数据场景下的应用。
其次,同态加密算法的安全性和可验证性也需要进一步加强,以应对不断变化的安全威胁。
因此,目前的研究重点在于提高同态加密算法的计算效率、增强其安全性和可验证性,以及拓展其在各个领域的应用场景。
一种基于ElGamal和(t,n)门限的密钥恢复方案
徐小平;闫俊虎
【期刊名称】《微电子学与计算机》
【年(卷),期】2005(22)3
【摘要】本文提出了一种基于ElGamal公钥算法和(t,n)门限的密钥恢复方案。
它将要托管的密钥K分成n份并交给n个托管代理保管,当需要恢复时,任何t个代理托管的子密钥均可以恢复密钥K,而任何少于t个代理托管的子密钥均无法恢复。
在密钥和子密钥的传送过程中,采用了ElGam al算法和ECC算法作校验,分两个阶段实现,提高了安全性和灵活性。
【总页数】4页(P208-210)
【关键词】E1Gamal;ECC;(t,n)门限;密钥恢复
【作者】徐小平;闫俊虎
【作者单位】广东技术师范学院电子信息工程系
【正文语种】中文
【中图分类】TP309
【相关文献】
1.一个基于ECC的ElGamal型(t,n)门限数字签名方案 [J], 张险峰;秦志光;刘锦德
2.一种新的ElGamal型门限数字签名方案 [J], 吴克力;王庆梅;朱保平;刘凤玉
3.基于(r,n)门限的密钥恢复方案 [J], 魏家好;侯整风
4.基于ElGamal公钥体制的动态(k,n)门限密钥托管方案 [J], 谢丽丽;张龙;刘绍武;
柯品惠
5.基于ElGamal体制的门限秘密共享方案 [J], 王天成;张建中
因版权原因,仅展示原文概要,查看原文内容请购买。
⾮对称加密算法(RSA、DSA、ECC、DH)⾮对称加密算法 (RSA、DSA、ECC、DH)1.1 概念⾮对称加密需要两个密钥:公钥 (publickey) 和私钥 (privatekey)。
公钥和私钥是⼀对,如果⽤公钥对数据加密,那么只能⽤对应的私钥解密。
如果⽤私钥对数据加密,只能⽤对应的公钥进⾏解密。
因为加密和解密⽤的是不同的密钥,所以称为⾮对称加密。
⾮对称加密算法的保密性好,它消除了最终⽤户交换密钥的需要。
但是加解密速度要远远慢于对称加密,在某些极端情况下,甚⾄能⽐对称加密慢上1000倍。
1.2 特点算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,⽽使得加密解密速度没有对称加密解密的速度快。
对称密码体制中只有⼀种密钥,并且是⾮公开的,如果要解密就得让对⽅知道密钥。
所以保证其安全性就是保证密钥的安全,⽽⾮对称密钥体制有两种密钥,其中⼀个是公开的,这样就可以不需要像对称密码那样传输对⽅的密钥了。
这样安全性就⼤了很多。
1.3 ⼯作原理(1) A 要向 B 发送信息,A 和 B 都要产⽣⼀对⽤于加密和解密的公钥和私钥。
(2) A 的私钥保密,A 的公钥告诉 B;B 的私钥保密,B 的公钥告诉 A。
(3) A 要给 B 发送信息时,A ⽤ B 的公钥加密信息,因为 A 知道 B 的公钥。
(4) A 将这个消息发给 B (已经⽤ B 的公钥加密消息)。
(5) B 收到这个消息后,B ⽤⾃⼰的私钥解密 A 的消息。
其他所有收到这个报⽂的⼈都⽆法解密,因为只有 B 才有 B 的私钥。
1.4 主要算法RSA、Elgamal、背包算法、Rabin、D-H、ECC (椭圆曲线加密算法)。
使⽤最⼴泛的是 RSA 算法,Elgamal 是另⼀种常⽤的⾮对称加密算法。
1.5 应⽤场景(1) 信息加密收信者是唯⼀能够解开加密信息的⼈,因此收信者⼿⾥的必须是私钥。
发信者⼿⾥的是公钥,其它⼈知道公钥没有关系,因为其它⼈发来的信息对收信者没有意义。
基于离散对数问题(一)基于离散对数问题在密码学中,离散对数问题是一种重要的数学难题,基于这个问题的算法在密码学中得到广泛应用。
本文将介绍相关问题,并对其进行解释说明。
离散对数问题简介离散对数问题是指在一个有限域中,找到一个数的指数是另一个给定数的问题。
具体而言,对于素数p和整数a,找到一个整数x,使得a^x ≡ b (mod p)。
相关问题离散对数问题相关的一些问题包括:•离散对数问题的求解:给定p、a和b,找到一个满足a^x ≡ b (mod p)的整数x。
•离散对数问题的困难性:证明离散对数问题在计算上是困难的,即没有已知的有效算法可以在多项式时间内解决该问题。
•离散对数问题的应用:探讨离散对数问题在密码学中的应用,如基于离散对数问题的公钥密码算法,例如Diffie-Hellman密钥交换算法和ElGamal加密算法。
•离散对数问题的安全性:研究离散对数问题的安全性,即它是否可以被破解。
目前,离散对数问题被认为是一个强大的密码学基础,并且在合适的参数选择下,具有很高的安全性。
•离散对数问题的优化算法:探索提高离散对数问题求解效率的优化算法。
例如,Pohlig-Hellman算法是一种用于解决离散对数问题的优化算法。
解释说明离散对数问题是一个在密码学中经常使用的问题,它基于一个简单的数学难题,即找到一个指数使得指数函数的结果与给定值同余。
离散对数问题的困难性保证了基于该问题的密码体系的安全性。
离散对数问题的应用非常广泛。
其中,Diffie-Hellman密钥交换算法允许两个通信方通过公开的通道协商出一个共享密钥,而该密钥对于外部攻击者是困难的。
ElGamal加密算法则基于离散对数问题提供了对称密钥加密的安全性。
尽管离散对数问题被广泛应用于密码学中,但目前没有已知的有效算法可以在多项式时间内解决这个问题。
因此,离散对数问题被认为是一个困难的数学难题,并被广泛接受为安全的密码学基础。
非对称加密算法是一种密钥的保密方法。
非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。
公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。
因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将公钥公开,需要向甲方发送信息的其他角色(乙方)使用该密钥(甲方的公钥)对机密信息进行加密后再发送给甲方;甲方再用自己私钥对加密后的信息进行解密。
甲方想要回复乙方时正好相反,使用乙方的公钥对数据进行加密,同理,乙方使用自己的私钥来进行解密。
1.非对称加密算法有哪些主要算法:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。
使用最广泛的是RSA算法,Elgamal是另一种常用的非对称加密算法。
2.非对称加密算法原理及应用工作原理1.A要向B发送信息,A和B都要产生一对用于加密和解密的公钥和私钥。
2.A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A。
3.A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥。
4.A将这个消息发给B(已经用B的公钥加密消息)。
5.B收到这个消息后,B用自己的私钥解密A的消息。
其他所有收到这个报文的人都无法解密,因为只有B才有B的私钥。
应用非对称加密(公钥加密):指加密和解密使用不同密钥的加密算法,也称为公私钥加密。
假设两个用户要加密交换数据,双方交换公钥,使用时一方用对方的公钥加密,另一方即可用自己的私钥解密。
如果企业中有n个用户,企业需要生成n对密钥,并分发n个公钥。
假设A 用B的公钥加密消息,用A的私钥签名,B接到消息后,首先用A的公钥验证签名,确认后用自己的私钥解密消息。
由于公钥是可以公开的,用户只要保管好自己的私钥即可,因此加密密钥的分发将变得十分简单。
同时,由于每个用户的私钥是唯一的,其他用户除了可以通过信息发送者的公钥来验证信息的来源是否真实,还可以通过数字签名确保发送者无法否认曾发送过该信息。
《现代密码学》练习题(含答案)一、填空题(每空1分,共7分)1. 加密算法的功能是实现信息的保密性。
2. 数据认证算法的功能是实现数据的完整性即消息的真实性。
3. 密码编码学或代数中的有限域又称为伽罗华(Galois)域。
记为GF(pn)4. 数字签名算法可实现不可否认性即抗依赖性。
信息安全基本要求:可用性、保密性、完整性、不可否认性、可控性、真实性。
5. Two-Track-MAC算法基于带密钥的RIPEMD-160。
密钥和输出MAC值都是20B6. AES和Whirlpool算法是根据宽轨迹策略设计的。
7. 序列密码的加密的基本原理是:用一个密钥序列与明文序列进行叠加来产生密文。
8. Rabin密码体制是利用合数模下求解平方根的困难性构造了一种非对称/公钥/双钥密码体制。
1. 现代对称密码的设计基础是:扩散和混淆。
2. 加密和解密都是在密钥控制下进行的。
3. 在一个密码系统模型中,只截取信道上传送信息的攻击方式被称为被动攻击。
4. Caesar密码体制属于单表代换密码体制。
(字母平移)5. 尽管双重DES不等价于使用一个56位密钥的单重DES,但有一种被称为中途相遇攻击的破译方法会对它构成威胁。
(成倍减少要解密的加密文本)6. 设计序列密码体制的关键就是要设计一种产生密钥流的方法。
2. 椭圆曲线密码是利用有限域GF(2n)上的椭圆曲线上点集所构成的群上定义的离散对数系统,构造出的公钥/非对称密码体制。
3. 在公钥密码体制中,加密密钥和解密密钥是不一样的,加密密钥可以公开传播而不会危及密码体制的安全性。
2. 密码学上的Hash函数是一种将任意长度的消息压缩为某一固定长度的消息摘要的函数。
3. 数字签名主要是用于对数字消息进行签名,以防止消息的伪造或篡改,也可以用于通信双方的身份认证。
2. CTR/计数器加密模式与CBC认证模式组合构成CCM模式;GMAX算法与CTR加密模式组合构成GCM模式。
非对称密钥加密算法-RSA一.非对称密钥加密概述前面讲述了对称密钥加密体制。
使用对称密钥加密体制进行保密通信时,任意不同的两个用户之间都应该使用互不相同的密钥。
这样,如果一个网络中有n个用户,他们之间彼此可能需要进行秘密通信,这时网络中将共需要n(n-1)/2个密钥(其中,每个用户都需要保存n-1个密钥),这样巨大的密钥量给密钥分配和管理带来了极大的困难。
另外,随着计算机网络,特别是因特网的发展,网络上互不相识的用户可能需要进行保密的会话(例如,如果用户在进行电子商务活动时,需要保密的连接,这时的客户对象可能根本不是固定的对象)。
最后,对称密钥加密机制难以解决签名验证问题。
非对称密钥加密也称为公开密钥加密,或者叫做公钥加密算法。
使用公开密钥密码的每一个用户都分别拥有两个密钥:加密密钥和解密密钥,它们两者并不相同,并且由加密密钥得到解密密钥在计算机上是不可行的。
每一个用户的加密密钥都是公开的(因此,加密密钥也称为公开密钥)。
所有用户的公开密钥都将记录在作用类似于电话号码薄的密钥本上,而它可以被所有用户访问,这样每一个用户都可以得到其他所有用户的公开密钥。
同时,每一个用户的解密密钥将由用户保存并严格保密(因此,解密密钥也称为私有密钥)。
非对称密码算法解决了对称密码体制中密钥管理的难题,并提供了对信息发送人的身份进行验证的手段,是现代密码学最重要的发明。
公钥加密算法一般是将对密钥的求解转化为对数学上的困难问题的求解,例如RSA算法的安全性是建立在“大数分解和素性检测”这个数论难题的基础上,已知两个大素数a、b,求出a*b是容易计算的,而已知a*b,想知道其是哪两个大素数的乘积目前还没有好的计算方法,另外也有一些非对称加密算法(如ELGamal算法)的安全性是基于求“离散对数”这个数学难题上的。
在公钥密码系统中每个实体都有自己的公钥和相应的私钥。
公钥密码系统的加密变换和解密变换分别用E和D表示。
任何实体B要向实体A发送信息m的步骤如下:实体B首先获得实体A的真实公钥的拷贝(eA),实体B使用eA计算密文 c=E(m)并发送给实体A ,实体A使用自己的私钥dA,计算m=D(c)解密密文,恢复出明文m。
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的大素数因子不可约。
三.一般的ElGamal数字签名方案
在系统中有两个用户A和B,A要发送消息到B,并对发送的消息进行签名。B收到A
发送的消息和签名后进行验证。
1.系统初始化
选取一个大的素数p,g是GF(p)的本原元。h:GF(p)→GF(p),是一个单向Hash函
数。系统将参数p、g和h存放于公用的文件中,在系统中的每一个用户都可以从公开的文
件中获得上述参数。
2.对发送的消息进行数字签名的过程
假定用户A要向B发送消息m [1,p-1],并对消息m签字。第一步:用户A选取一个x
[1,p-1]作为秘密密钥,计算y= (mod p)作为公钥。将公钥y存放于公用的文件中。第二步:
随机选取k [1,p-1]且gcd(k,(p-1))=1,计算r= (mod p)。对一般的ElGamal型数字签名方案
有签名方程(Signature Equation):ax=bk+c(mod(p-1))。
其中(a,b,c)是(h(m),r,s)数学组合的一个置换。由签名方程可以解出s。那么(m,(r,s))
就是A对消息m的数字签名。第三步:A将(m,(r,s))发送到B
3.数字签名的验证过程
当B接收到A发送的消息(m,(r,s)),再从系统公开文件和A的公开文件中获得系统公用
参数p,g,h和A的公钥y。由(m,(r,s))计算出(a,b,c)验证等式: = (mod p)是否成立。
D.Bleichenbache“GeneratingElGamal Signatures Without Knowing the Secret
Key”中提到了一些攻击方法和对策。ElGamal的一个不足之处是它的密文成倍扩张。
美国的DSS(Digital Signature Standard)的DSA(Digital Signature Algorithm)算法是经
ElGamal算法演
变而来。