第九讲_离散对数
elgamal 离散对数
elgamal 离散对数ElGamal加密算法是一种基于离散对数问题的公钥加密算法。
离散对数问题是一个数学难题,即在给定的模数和基底的情况下,找到一个整数指数使得某个幂等于给定的值。
在ElGamal加密算法中,离散对数问题被用于生成公钥和私钥,以及加密和解密过程。
具体来说,ElGamal加密算法的步骤如下:1. 密钥生成:选择一个大素数p,然后选择一个基底g(通常是p的某个原根)。
然后随机选择一个私钥a,计算公钥A=g^a mod p。
2. 加密操作:将要加密的明文m转化为一个数字,然后随机生成一个密钥k。
计算C1=g^k mod p,C2=m×A^k mod p。
密文为(C1, C2)。
3. 解密操作:使用私钥a,利用公式C2/C1^a mod p得到明文m。
ElGamal加密算法的安全性依赖于离散对数问题的难解性。
离散对数问题在计算上是非常困难的,因此ElGamal加密算法具有较高的安全性。
然而,需要注意的是,在实际应用中,选择合适的素数和基底非常重要,以确保算法的安全性。
除了ElGamal加密算法的基本步骤外,还有一些常见的优化和改进方法。
例如,为了提高加密和解密的效率,可以使用混合加密方案,将ElGamal加密与对称加密算法如AES相结合。
这种方案可以充分利用ElGamal加密的非对称性,同时利用对称加密的高效性,实现更快的加密和解密速度。
另外,由于ElGamal加密算法在实际应用中存在较大的密文尺寸问题,即C1和C2的尺寸较大,因此在传输和存储上会带来一定的负担。
为了解决这个问题,可以采用压缩技术或者使用线性组合等方法来减小密文尺寸。
尽管ElGamal加密算法在安全性方面具有优势,但它也存在一些不足之处。
例如,由于ElGamal加密算法的密文尺寸较大,它在传输过程中可能受到攻击,如中间人攻击(Man-in-the-Middle Attack)。
为了解决这个问题,可以采用安全协议,如SSL(安全套接字层)或TLS(传输层安全)等,来确保传输过程的安全性。
sage离散对数
sage离散对数
离散对数问题可以描述为:给定一个质数p,和有限域Zp上的一个本原元a,对Zp上整数b,寻找唯一的整数c,使得a^c≡b(mod p)。
一般来说,如果仔细选择p,则认为该问题是难解的,且目前还没有找到计算离散对数问题的多项式时间算法。
为了抵抗已知的攻击,p至少应该是150位的十进制整数,且p-1至少有一个大的素数因子。
目前有几种求解离散对数问题的方法:
离散对数的一般算法:该算法基于数学中的一些基本定理和性质,例如欧拉定理和费马小定理。
但是,对于大整数和模数,该算法的复杂性非常高,需要指数级别的时间。
指数演算法:该算法是求解离散对数问题的最常用的方法之一。
它基于数学中的一些基本定理和性质,例如牛顿迭代法和二分法等。
该算法的时间复杂性取决于输入参数的大小和精度。
Pollard-Rho算法:该算法是一种随机化的离散对数算法,它利用了数学中的一些随机性质和技巧,从而大大提高了算法的效率。
该算法的时间复杂性取决于随机性因素。
椭圆曲线离散对数算法:该算法基于椭圆曲线上的离散对数问题,利用椭圆曲线的性质和技巧,从而大大提高了算法的效率。
该算法的时间复杂性取决于椭圆曲线的参数和精度。
需要注意的是,离散对数问题是一个经典的数学问题,也是一个非常难的问题。
虽然有一些有效的算法可以求解离散对数问题,但是它们都需要指数级别的时间或随机性因素。
因此,在实际应用中,需要谨慎考虑离散对数问题的求解方法和应用场景。
python 离散对数
python 离散对数
离散对数是数论中的重要概念之一,指的是在一个给定的群中,
找到某个元素经过几次运算后得到另一给定元素的过程。
对于一个有
限域或群来说,离散对数问题的求解是相当困难的。
离散对数问题可以用数学符号来表示,对于一个有限域(或群)G,如果给定一个元素y,我们需要找到一个整数x,使得x满足公式:y = g^x,其中g是G中的一个元素。
这个求解过程就是离散对数问题。
离散对数问题在密码学中具有重要应用。
例如,Diffie-Hellman
密钥交换协议中,参与方通过交换公开信息来生成共享密钥。
在这个
过程中,离散对数问题的难解性保证了密钥的安全性。
此外,离散对
数问题还被广泛应用于椭圆曲线密码算法等密码学领域。
求解离散对数问题的方法有多种,常见的有蛮力搜索法、Baby-step Giant-step算法和Pollard's rho算法等。
这些算法通过对群中的元素进行逐个计算,找到满足离散对数问题的解。
然而,随着计算
能力的提高,离散对数问题的求解算法也在不断进化,为了保证密码
算法的安全性,需要选择合适的参数和算法来防止暴力攻击。
总之,离散对数问题是数论中一个重要的概念,它在密码学中具
有广泛应用。
解决离散对数问题需要使用适当的算法和参数,以确保
密钥的安全性。
对于学习密码学和数论的人来说,了解和理解离散对
数问题的性质和求解方法是至关重要的。
高考一轮总复习 数学 第10章 第9讲 离散型随机变量的均值、方差和正态分布
【变式训练 2】 某校设计了一个实验学科的考查方案:考生从 6 道备选题中一次性随机抽取 3 题,按 照题目要求独立完成全部实验操作.规定:至少正确完成其中 2 题的便可通过.已知 6 道备选题中考生甲
有 4 题能正确完成,2 题不能完成;考生乙每题正确完成的概率都为32,且每题正确完成与否互不影响. (1)分别写出甲、乙两考生正确完成题数的分布列,并计算其数学期望;
1 5.[2015·广东高考]已知随机变量 X 服从二项分布 B(n,p).若 E(X)=30,D(X)=20,则 p=___3_____.
解析 根据二项分布的期望与方差. 由题知nnpp=1-30p=20 得 p=13.
板块二 典例探究·考向突破
点击观看 考点视频
命题角度 1 均值与方差的计算 例 1 袋中有 20 个大小相同的球,其中记上 0 号的有 10 个,记上 n 号的有 n 个(n=1,2,3,4).现从袋中 任取一个球,ξ 表示所取球的标号. (1)求 ξ 的分布列、期望和方差; (2)若 η=aξ+b,E(η)=1,D(η)=11,试求 a,b 的值.
[双基夯实] 一、疑难辨析 判断下列结论的正误.(正确的打“√”,错误的打“×”) 1.随机变量的均值是常数,样本的平均值是随机变量,它不确定.( √ ) 2.随机变量的方差和标准差都反映了随机变量取值偏离均值的平均程度,方差或标准差越小,则偏离 变量平均程度越小.( √ ) 3.正态分布中的参数 μ 和 σ 完全确定了正态分布,参数 μ 是正态分布的期望,σ 是正态分布的标准 差.( √ ) 4.一个随机变量如果是众多的、互不相干的、不分主次的偶然因素作用结果之和,它就服从或近似服 从正态分布.( √ ) 5.期望是算术平均数概念的推广,与概率无关.( × )
第九讲 离散对数
1 离散对数
定 义 1 离散对数问题 (DLP ) 定义如下:给定一个素 p, 数 有限乘法群Z * 上一个生成元 和一个元β Z *,找到整 p p 数x, x p 2,满足 x (mod p),写为x log ( )。 0 事 实 1令是有限乘法群 * 上一个生成元, , Z *。 Zp p 令s为一个整数。有 ( ) (log + log ) mod ( p 1) log 和 log ( s ) s log ( ) mod ( p 1)。 例 子 1令p = 11 = 2是有限乘法群 11上的一个生成元。 。 Z* 由于 26 9 (mod11) ,在有限乘法群 11上 log2 9 = 6 。 Z* 当然, 26 216 2 26 9 (mod11) 。
事 实 2DLP的困难性与生成元无关 。 令 和为 有限乘法群Z 上的两个生成元,令
* p
Z 。令x = log , = log ,和 z = log , y
* p
则 = ( ) 。 结果是x z y mod ( p 1),
x y z y
和 log (log ) (log ) mod(p 1),这里
2 计算离散对数
2.1 穷举搜索
最为简单的求解 DLP的方法是连续计算 0,
1, 2,.,直到得到。这一方法需要 p 1) .. O( 次乘法,这里 p 1是的阶,因此,当 取 p
足够大的值时,这不是 有效方法(这恰好是密 码关注的情形)。
2.2 小步大步算法
令m = p 1 ,这里p 1 是 的阶。小步大步 算法是对穷举搜索方法 在效率和存储之间的 平衡,它的基础是以下 事实。如果 = x,则 我们可以写 x=i m +j,这里 0 i, m。因此, j
离散对数问题的算法shanks算法
离散对数问题的算法shanks算法下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by the editor. I hope that after you download them, they can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!In addition, our shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!离散对数问题一直是密码学和计算数论领域中的一个重要课题,其解决方法影响着许多加密算法的安全性。
基于离散对数问题(一)
基于离散对数问题(一)基于离散对数问题在密码学中,离散对数问题是一种重要的数学难题,基于这个问题的算法在密码学中得到广泛应用。
本文将介绍相关问题,并对其进行解释说明。
离散对数问题简介离散对数问题是指在一个有限域中,找到一个数的指数是另一个给定数的问题。
具体而言,对于素数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加密算法则基于离散对数问题提供了对称密钥加密的安全性。
尽管离散对数问题被广泛应用于密码学中,但目前没有已知的有效算法可以在多项式时间内解决这个问题。
因此,离散对数问题被认为是一个困难的数学难题,并被广泛接受为安全的密码学基础。
密码学 离散对数
RSA利用大素数分解的困难性,提供了一种密钥发送的 方案。
Diffie和Hellman利用离散对数求值的困难性,也提供了
另一种密钥发送的方案。
Diffie-Hellman密钥交换的算法 Step1. 公开 ( p, ).
Step2. Alice选择私钥a 2 a p 1 , 发送Bob: A a (mod p); Bob选择私钥b 2 b p 1 , 发送Alice: B b (mod p).
x
例1: 已知2 x 9(mod11), 判断x的奇偶?
解:
9
111 2
(mod11)
95 1
所以x为偶数。 事实上 x=6 (mod10).
例2 求解 7 x 12(mod 41).
p 1 解:两边幂 ,得 2 p 1 x 2 7 1(mod 41)
所以设 x 2 x1 1. 原方程转化为
p, 其中p为模4余3的素数,
为模p的本原根根. 0——巴西赢;1——巴西输
Alice随机选择一个能够隐藏赛 果的二进制数x (<p-1), 使得x的 次低位b1为结果位。 例如:Alice预测巴西赢。
0
赛前:
算出b1。 Bob担心 Alice的准确度,希望 思考:在约定中, 先验证; 为什么“p为模4余3的素 Alice不愿赛前就让Bob知道赛 数”? 果。 将之改为“p为模4余1的 方案素数”行吗? 1 假设Alice和Bob空间距离很近
原方程转化为
7 31(mod 41) 78 x3 37(mod 41) 将 x3 0,1,2,3,4,5 代入检验,得 x3 1.
离散对数基础
群的概念
设G是一个非空集合, 是G上的一种代数运算,若 该运算
G, 。 具有如下性质,则称 G关于运算 构成一个群,记为
1.封闭性:a, b G, a * b G 2.结合律:a, b, c G, 恒有a * b * c a * b * c 4.存在逆元:a G存在元素b G使得a * b b * a e
元素x 负元-x 0 0 1 4 2 3 3 2
4 1
2018/7/19
10
基于离散对数的密码体制
加法群中的倍加运算
设 G, 是一个加群, n Z , a G,则 n 个 a 相加的 运算称为倍加:即a a ... a na, 特别地: 0a 0, n a n a
2018/7/19
22
2018/7/19
2
基于离散对数的密码体制
群的性质
群中的单位元是唯一的,单位元也称为恒等元。 群中每个元素的逆元是唯一的。
消去律对任意的a, b, c G,
如果 a * b a * c,则 b c, 称为左消去律; 如果 b * a c * a,则 b c, 称为右消去律。
单位元称为 "零元",记为: "0"。a G 的逆元称为 a 的负元,记为: "a",即有:a a 0。
2018/7/19
9
基于离散对数的密码体制
加法群举例
集合Z5 0, 1, 2, 3, 4关于模 5 的加法构成群,即加群
Z5 , ,单位元e 0 零元,各元素的负元为:
2 3 2 2 2 6 0 mod6,所以 ord 2 3
elgamal 离散对数
ElGamal 离散对数1. 简介ElGamal是一种公钥密码体制,其安全性基于离散对数问题。
离散对数问题是一个在密码学中非常重要的数学难题,它指的是在一个有限群中找到满足a^x ≡ b (mod p)的整数x。
ElGamal密码体制利用了这个难题的计算困难性来保证加密过程的安全性。
2. 历史背景ElGamal密码体制最早由Taher Elgamal于1985年提出,他在该年提交了一份论文,详细描述了这个密码体制的原理和实现方法。
ElGamal密码体制被广泛应用于数字签名、密钥交换以及加密通信等领域。
3. 基本原理ElGamal密码体制基于离散对数问题,其核心思想是利用离散对数问题的计算困难性来保证加密过程的安全性。
该密码体制包含三个主要步骤:密钥生成、加密和解密。
3.1 密钥生成在ElGamal密码体制中,每个用户都有一对公私钥。
首先,选择一个大素数p作为有限域,并选择一个生成元g作为生成乘法群的元素。
然后,选择一个私钥x,满足0 < x < p-1,并计算公钥y = g^x mod p。
最后,将公钥(y, g, p)和私钥x进行存储。
3.2 加密为了加密明文消息m,发送者需要获取接收者的公钥(y, g, p)。
发送者首先选择一个随机数k,满足1 < k < p-1,并计算c1 = g^k mod p和c2 = (y^k * m) mod p。
然后,将密文(c1, c2)发送给接收者。
3.3 解密接收者使用自己的私钥x来解密接收到的密文(c1, c2)。
首先,计算s = c1^x mod p的逆元s^-1,并再次计算明文消息m = (c2 * s^-1) mod p。
4. 安全性分析ElGamal密码体制的安全性基于离散对数问题的困难性。
在没有有效解决离散对数问题的算法之前,破解ElGamal密码体制是非常困难甚至不可能的。
然而,在实际应用中,为了提高安全性并抵抗各种攻击手段,我们需要注意以下几点:4.1 密钥长度选择合适长度的素数p和私钥x对于保证安全性至关重要。
离散对数难题
离散对数难题离散对数难题是一个研究数学中可解决问题的方法。
起源于20世纪80年代,它是一个相对较新的理论,但受到国际社会的广泛关注,被广泛用于解决实际问题。
离散对数难题关心数学中的“离散”计算机科学,即在计算过程中,使用的非线性的数值分析来推导变量的最优解,这需要艰苦的数学操作。
这些操作通常涉及极其复杂的解析和数值计算,因此,我们正寻找一种通用的办法来解决离散对数难题。
离散对数问题的基本思想是将不同的数字变量从实际数学领域转化为数字空间,然后构建一个微分方程,以解决解析解。
在实际操作中,由于该方法涉及到复杂的计算,因此需要专业的数学知识。
具体来说,需要理解和掌握一些数学理论,例如偏微分方程、线性方程组、统计学、概率论等,以及其他相关的基本概念和方法。
在现今,离散对数问题已经成为了一个广泛应用的研究领域,其在许多数学领域都有广泛的应用,如微积分、优化、金融数学等等。
在这些数学领域,离散对数问题在计算复杂问题时表现出很强的效率,对于我们许多实际问题也有很大的帮助。
例如,离散对数问题应用于复杂系统的分析,可以提高计算速度,减少计算误差;可以应用于金融市场的价值评估,解决期权定价等问题,以及多种优化技术在应用程序设计中的应用。
除此之外,离散对数问题也有着重要的社会意义。
在某些特定的实际问题中,离散对数问题可以帮助我们更好地改善社会经济状况,以及更好地维护社会的共同利益。
例如,离散对数问题可以应用于资源优化配置,以解决城市拥堵问题,可以针对特定的实际问题进行分析,减少能源的浪费,以及提高对资源的利用率等。
总之,离散对数问题是一个相对较新的理论,有着重要的应用和社会意义,它关注数学中的“离散”计算机科学,为许多实际问题提供了有效的解决办法,增强了计算效率,提高了资源利用率。
虽然它是一个非常复杂的理论,但是我们也可以通过深入研究,把它应用到实际问题中,取得更好的效果。
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。
ecdsa算法离散对数
ECDSA算法离散对数简介ECDSA(Elliptic Curve Digital Signature Algorithm)是一种基于椭圆曲线密码学的数字签名算法,它利用离散对数问题的困难性来保证数字签名的安全性。
本文将详细介绍ECDSA算法与离散对数问题的关系,并解释ECDSA算法的原理和流程。
离散对数问题离散对数问题是指在一个有限域上寻找一个整数x,使得满足公式g^x ≡ h (mod p),其中g、h和p分别为给定的底数、结果和模数。
在这个问题中,我们已知g、h和p,需要求解x。
离散对数问题被认为是计算复杂度非常高的一类问题,目前没有有效的解决方法可以在多项式时间内求解。
椭圆曲线密码学椭圆曲线密码学是一种基于椭圆曲线上点运算的密码学体系,它具有较高的安全性和效率。
椭圆曲线密码学中使用了离散对数问题作为其核心难题,通过在椭圆曲线上进行点运算来实现各种加密和签名操作。
ECDSA算法原理ECDSA算法的原理基于椭圆曲线上的离散对数问题。
具体而言,ECDSA算法包括密钥生成、签名和验证三个主要步骤。
密钥生成在密钥生成阶段,首先选择一个椭圆曲线,通常表示为E(a, b),其中a和b是曲线的参数。
然后选择一个基点G,该点位于曲线上。
接下来,选择一个私钥d,并计算公钥Q = dG。
私钥d应该是一个大于0且小于曲线上的一个数。
签名在签名过程中,首先需要选择一个随机数k,并计算点R = kG。
然后计算r ≡ xR (mod p),其中xR是点R的x坐标。
接下来,计算s = k^(-1)(hash(m) + dr) (mod p),其中hash(m)是消息m的哈希值。
最终的签名为(r, s)。
验证在验证过程中,首先检查r和s是否满足0 < r < p 和 0 < s < p 的条件。
然后根据公式计算w ≡ s^(-1) (mod p) 和u1 ≡ hash(m)w (mod p),再计算u2 ≡ rw (mod p)。
第九讲 离散对数
x im j,这意味着 ( m ) i j。 这就给出
如下计算 x的方法。
2.2 小步大步算法(续)
算 法 1小步大步法 输入:生成元的阶 p 1和元 。 输出: 离散对数 x= log 。 (1) 设置m
p 1 。
(2) 建立一个条目为( j, j )的表, 这里 0 j m。以条目中 的第2项对表排序。 (3) 计算 m 和设置 。 (4) For i from 0 to m 1 do thefollowing: (4.1) 检查 是否为表中某个第 2项 。 (4.2) 如果 j, 则 return( x = i m + j)。 (4.3) 设置 · m。
2 计算离散对数
2.1 穷举搜索
最为简单的求解 DLP的方法是连续计算 0,
1, 2, . . . ,直到得到。这一方法需要 O( p 1) 次乘法,这里 p 1是的阶,因此,当 p取
足够大的值时,这不是 有效方法(这恰好是密 码关注的情形)。
2.2 小步大步算法
令m = p 1 ,这里p 1 是 的阶。小步大步 算法是对穷举搜索方法 在效率和存储之间的 平衡,它的基础是以下 事实。如果 = x,则 我们可以写 x=i m +j,这里 0 i, j m。因此,
2.2 小步大步算法(续)
例 子 2 令p=113 。 = 3 是阶为p 1 = 112 的生成元。考虑 = 57。 计算离散对数 log3 57的过程如下。 (1) 设置m
112 = 11。
(2) 建立一个表,条目是( j, α j (mod p)), 这里0 j 11 ,以条目的 第2项排列表: j 0 1 8 2 5 9 3 3 j (mod113) 1 3 7 9 17 21 27 7 6 10 4 40 51 63 81
离散对数
离散对数目录离散对数概述是在整数中,一种基于同余运算和原根的一种对数运算:当模m有原根时,设L为模m的一个原根,则当?x≡L^k(mod m)时: Ind L x≡?k (mod Φ(m)),此处的Ind L x为 x以整数L为底,模Φ(m)时的离散对数值。
或者简单描述离散对数问题为:给定一个质数p,和有限域Zp上的一个本原元a,对Zp上整数b,寻找唯一的整数c,使得a^c≡b(mod p)。
一般的,如果仔细选择p,则认为该问题是难解的,且目前还没有找到计算离散对数问题的多项式时间算法。
为了抵抗已知的攻击,p至少应该是150位的十进制整数,且p-1至少有一个大的素数因子。
性质离散对数和一般的对数有著相类似的性质:离散对数的由来及发展在一般参考文献中,都认为公钥密码体制是迪菲(W.Diffie)和赫尔曼(E.Hellman)发明的[1][1],可鲜为人知的是,默克勒(R.C.Merkle)甚至在他俩之前的1975年就提出了类似的思想,尽管其文章是于1978年发表的,但投稿比较早。
因此,公钥密码体制的创始人应该是他们三人。
当然,他们三人只是提出了一种关于公钥密码体制与数字签名的思想,而没有真正实现。
不过,他们确实是实现了一种体现公钥密码体制思想、基于离散对数问题的、在不安全的通道上进行密钥形成与交换的新技术。
所谓离散对数,就是给定正整数x,y,n,求出正整数k(如果存在的话),使y≡xk(mod n)。
就目前而言,人们还没有找到计算离散对数的快速算法(所谓快速算法,是指其计算复杂性在多项式范围内的算法,即O(logn)k,其中k为常数)。
虽然有快速计算离散对数的量子算法,其计算复杂性为O(logn)2+?着,但现在并没有量子计算机(实用的量子计算机也许根本就建造不出来)。
离散对数的应用离散对数公钥加密算法是目前最为热门的公钥加密算法,其安全性要远远高于基于大数分解的RSA算法。
首先说明一下明一下上述三位科学家公钥密码体制的运作过程(假定A 和B两个人要在一个不安全通道如因特网上形成密钥以备日后加密解密所用)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(3) 计算 1 31 (mod113) 38,接着计算 m 3811 (mod113) 58。 (4) 对于 i = 0, 1, 2, . . . ,连续计算 = mi (mod113) 直到有一个 值与表中第2行的某个元相等。这一 过程如下: i 0 1 2 3 4 5 6 7 8 9 57 · 58i (mod113) 57 29 100 37 112 55 26 39 2 3 最后,由于 mi 3 1, 100,因此,离散对数为 log3 57 = 100 。
2.3 Pollard的Rho算法(续)
评述. (1) 计算离散对数的P ollard 的rho算法是一个随机算法, 平 均运行时间与小步大步 算法 相当,但是相对小步大 步算 法存储需求可以忽略。 (2) 算 法 2 很少情况会以失败结束 ,此外,计算过程也可 以在 [1 ,p 2]区间随机选择整数a0和b0并以 x0 = a0 b0 为起点。
2.2 小步大步算法(续)
评述. 算法1 需要存储 O( p 1) 个群元。表需要 O( p 1)次乘法来建立和 O( p 1 lg p 1)次 比较来排序。建立这个 表以后,步骤(4)需要 O( p 1)次乘法和O( p 1)次查表完成算法。 假定一次乘法需要的时 间多于 lg p 1次比较 需要的时间,那么我们 可以得出算 法 1 需要的 运行时间的明确结论, 也就是小步大步算法 需要O( p 1) 次乘法。
2.3 Pollard的Rho算法 (续)
ai,如果xi S1 bi 1,如果xi S1 ai+1 2 ai, 如果xi S 2 和bi+1 2 bi,如果xi S 2 , a 1,如果x S b ,如果x S i 3 i 3 i i 这里i 0。我们可以看到要是两 个群元 xi 和x2i 满足 xi x2i,就有 ai bi a2i b2i,因此, bi b2i a2i ai。 对最后式子两边取以 为底的对数得到 (bi b2i ) · log ≡ (a2i ai ) mod ( p 1)。 假定 bi 方程通常可以有效的确 定离散 b2i mod( p 1), 对数log 。
26 216 2 26 9 (mod11) 。
事 实 2DLP的困难性与生成元无关 。 令 和为 有限乘法群Z 上的两个生成元,令
* p
Z 。令x = log , y = log ,和 z = log ,
* p
则 = ( ) 。 结果是x z y mod ( p 1),
2 计算离散对数
2.1 穷举搜索
最为简单的求解 DLP的方法是连续计算 0,
1, 2, . . . ,直到得到。这一方法需要 O( p 1) 次乘法,这里 p 1是的阶,因此,当 p取
足够大的值时,这不是 有效方法(这恰好是密 码关注的情形)。
2.2 小步大步算法
令m = p 1 ,这里p 1 是 的阶。小步大步 算法是对穷举搜索方法 在效率和存储之间的 平衡,它的基础是以下 事实。如果 = x,则 我们可以写 x=i m +j,这里 0 i, j m。因此,
我们可以判定x必为偶数。事实上, x 6。
2.4 Pohlig-Hellman算法(续)
算 法 3P ohlig- Hellman 算法 输入:一个阶为 p 1的生成元和一个元 。 输出: 离散对数x = log 。
e2 (1)找到素数分解p 1 = p1e1 p2 prer ,这里ei 1。
11 372
38 144
2.4 Pohlig-Hellman算法
事 实 3令为有限乘法群Z * p的生成元,并假定
x, 0 x p 1。
我们可以很容易得到x的最后一比特。 注意 ( ( p 1)/2 ) 2 ( p 1) 1(mod p ),因此 ( p 1)/2 1(mod p )。然而, p 1被假定为产生 1的最小指数, 因此,我们有
x y z y
和 log (log ) (log ) mod(p 1),这里
1
(log ,p 1) 1。 这意味着任何可以计算 以为底数的离散对数算 法同样可以用来计算任 意其它底数的离散对数。
定 义 2 一般离散对数问题(GDLP) 定义如下:给定任 何一个阶为n的有限循环群 G,和其上的生成元 ,以 及元 G,找到整数x, 0 x n 1,满足 x = 。 评述. 一个更一般的GDLP形式可以表述为:给定 一 个有限群G和元, G,找到整数x满足 x = , 这里假定存在。在这种 表述下,没有要求 G是循环群, 也没有要求是G的生成元。这一问题通 常比GDLP更 难于解决。
2.2 小步大步算法(续)
例 子 2 令p=113 。 = 3 是阶为p 1 = 112 的生成元。考虑 = 57。 计算离散对数 log3 57的过程如下。 (1) 设置m
112 = 11。
(2) 建立一个表,条目是( j, α j (mod p)), 这里0 j 11 ,以条目的 第2项排列表: j 0 1 8 2 5 9 3 3 j (mod113) 1 3 7 9 17 21 27 7 6 10 4 40 51 63 81
( p 1)/2 1(mod p )。
因此,
( p 1)/2 x( p 1) / 2 (1) x (mod p )。
如果 ( p 1)/2 1, 则 x是偶数; 否则,x是奇数。 例 子 4假定我们试图解2 x 9(mod11)。 由于
( p 1)/2 95 1(mod11) ,
(2) For i from1 to r do thefollowing: (计算xi = l0 + l1 pi lei1 piei 1,这里xi x (mod piei )) (2.1) (简化符号) 设定 q pi 和 e ei。 (2.2) 设定 1 和 l1 0。 (2.3) 计算 ( p 1) /q。 (2.4) (计算l j ) For j from0 to e 1 do thefollowing: 计算
2.3 Pollard的Rho算法(续)
i 1 2 3 4 5 6 7 8 9 10 12 13 14 xi 228 279 92 184 205 14 28 256 152 304 121 12 144 ai 0 0 0 1 1 1 2 2 2 3 3 61 6 12 bi 1 2 4 4 5 6 6 7 8 8 9 8 19 x2i 279 184 14 256 304 121 144 235 72 14 256 304 121 a2i 0 1 1 2 3 6 12 48 48 96 97 98 5 10 b2i 2 4 6 7 8 18 38 152 154 118 119 120 51 104
令s为一个整数。有 log ( ) (log + log ) mod ( p 1) 和 log ( s ) s log ( ) mod ( p 1)。
* 例 子 1令p = 11 。 = 2是有限乘法群Z11 上的一个生成元。 * 由于 26 9 (mod11) ,在有限乘法群 Z11 上 log2 9 = 6 。 当然,
2.3 Pollard的Rho算法(续)
* 例 子 3 元 2 是乘法群Z 383 阶为n = 191 的子群。假定 * 228 。对Z 383 上的元的分类依据规则 :如果x 1 (mod3),
则x S1;如果x 0 (mod3),则x S 2;如果x 2 (mod3), 则x S3。我们可以计算出 算法2 第2步每一次迭代过程x, ai, bi,x2i, a2i,和b2i的值。 注意x14 = x28 = 144 。最后, 计算 r (b14 b28 ) (mod191) 125 , r 1 1251 (mod191)= 136 , 和r 1 (a28 a14 )(mod191) 110 。因此, log2 228 110 。
1 离散对数
定 义 1 离散对数问题 (DLP ) 定义如下:给定一个素 数p,
* 有限乘法群Z * 上一个生成元 和一个元 β Z p p,找到整
数x, 0 x p 2,满足 x (mod p),写为x log ( )。
* 事 实 1令是有限乘法群 Z* 上一个生成元, , Z p p。
第九讲 离散对数
在 RSA 密码算法中,我们看到如何利用 分解的困难性产生有用的密码系统。另 一个数论问题,称为离散对数问题,也 有相似的应用。Diffie认为离散对数问题 来源于Gill的提示。离散对数问题是公钥 密码学的又一个重要公开困难问题。
本讲提要
离散对数 计算离散对数 ElGamal公钥加密算法 比特承诺
2.3 Pollard的Rho算法
模p的群可以被分成 3个规模基本相等的集合 S1,S 2,和S3, 且元落在哪个集合容易 确定。需要对集合的确 定加以关注, 例如, 1 x1,x2, . . . 序列和 S 2。定义如下群元x0 = 1, xi,如果xi S1 2 xi+1 f ( xi ) xi ,如果xi S 2 x ,如果x S i i 3 这里i 0。这一 群元序列按顺序定义了 两个整数序列a0,a1, a2, . . . ,和 b0,b1, b2, . . .,满足xi ai bi,这里i 0。 因此, 有a0 0, b0 0,和
2.3 Pollard的Rho算法(续)
算 法 2P ollard 的rho算法 输入: 阶为p 1的生成元和元。 输出: 离散对数x= log 。 (1) 设置 x0 1,a0 0, b0 0。 (2) For i 1, 2, . . . do thefollowing: (2.1)使用以前计算了的值 xi 1, ai 1,bi 1,和 x2i 2,a2i 2, b2i 2, 利用前面提到的方程来 计算xi, ai,bi,和x2i,a2i, b2i。 (2.2)如果 xi x2i, 则做如下步骤: 设定 r bi b2i mod( p 1)。 如果 r 0,则算法以失败告终; 否则,计算 x r 1 (a2i ai )mod( p 1)并 return(x)。