公钥密码技术理论及应用介绍

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

椭圆曲线密码编码学ECC
➢ 1985年Miller,Koblitz 独立提出 y2+axy+by=x3+cx2+dx+e
表示曲线上的点连同无穷远点O的集合 ➢ 加法:若曲线三点在一条直线上,则其和为O; ➢ 倍数:一个点的两倍是它的切线与曲线的另一个交点;
椭圆曲线上的加法规则
加法公式: ➢O 作为加法的单元,O=-O,P+O=P ➢如果P=(x,y),则P+(x,-y)=O,(x,-y)点是P的负点,记为 -P,而且(x,-y)也在EP(a,b)中 ➢如果P=(x1,y1),Q=(x2,y2),则 P+Q=(x3,y3)为 x3=2-x1-x2 (mod p) y3=(x1-x3)-y1 (mod p) 其中,如果PQ,则 = (y2-y1)/(x2-x1) 如果P=Q,则 = (3x12+a)/(2y1)
➢ 密码分析者攻击RSA体制的关键点在于如何分解n。若分解成 使n=p×q,则可以算出φ(n)=(p-1)(q-1),然后由公开的e 解出秘密的d
RSA算法举例
➢ 设 p=7, q=17, n=7*17=119; 参数T={n=119}; ➢ φ(n)=(7-1)(17-1)=96; ➢ 选择e=5, gcd(5,96)=1; ➢ 计算d, d*e =1 mod 96; d=77; 因为77×5=385=4×96+1 设:明文m=19
2. 数字签名问题。信息的电子化对密码学提出了新的要求:电子 报文和电子文件需要一种与书面材料中使用的签名等效的认证 手段。
公钥密码的初始化阶段
加密通信阶段
第三章 公钥密码技术 2
1. 公钥密码的概念 2. 公钥密码学的理论基础 3. 公钥密码算法 4. 密钥交换 5. 公钥密码算法的应用
计算复杂度与公钥密码
ECC 密钥交换算法
类似Diffie-Hellman密钥交换,思考如何用ECC来 实现密钥交换。
第三章 公钥密码技术 5
1. 公钥密码的概念 2. 公钥密码学的理论基础 3. 公钥密码算法 4. 密钥交换 5. 公钥密码算法的应用
公钥密码的典型应用
• 使用RSA和DES对信息加密 • 使用散列函数和RSA进行数字签名
Diffie-Hellman密钥交换算法
证明:K = (YB)XA mod q = (aXB mod q)XA mod q =(aXB mod q =a XBXA mod q =(aXA)XB mod q =(aXA mod q)XB m q =(YA)XB mod q
攻击分析:公开数据 q,a,YA和YB,若想攻击用户B的秘密密 攻击者必须计算 XB = inda,q(YB);
参考欧拉定理
M k (n)1 M k ( p1)(q1)1 M mod n
可以得到:ed= k×φ(n)+1
也就是说: ed 1mod(n) d e1 mod(n)
RSA算法的实现
➢ 实现的步骤如下:Bob为实现者 (1) Bob寻找出两个大素数p和q (2) Bob计算出n=p×q 和φ(n)=(p-1)(q-1) (3) Bob选择一个随机数e (0<e< φ(n)),满足(e,φ(n))=1 (4) Bob使用辗转相除法计算d=e-1modφ(n) (5) Bob在目录中公开n和e作为公钥
➢例如,令P=23,a=b=1,椭圆曲线为y2=x3+x+1, 4×13+27×12(mod 23)=8 0 满足模23椭圆群的条件
椭圆曲线上的密钥交换
1)双方选择EP(a,b)以及EP(a,b)的一个元素G,使得nG=0的最 小n值是一个非常大的素数; 2)A选择私钥X<n,计算公钥PA=XG; 3)B选择私钥Y<n,计算公钥PB=YG; 4)A计算秘密密钥:K=X(PB)=XYG 5)B计算秘密密钥:K=Y(PA)=YXG=XYG
椭圆曲线示例
椭圆曲线上的加法: P + Q = -R 椭圆曲线上一点的2倍: Q+Q=-S
有限域上的椭圆曲线
➢有限域上的椭圆曲线定义如下: y2x3+ax+b (mod p)
p是素数,a,b为非负整数,且满足4a3+27b2 (mod p) 0 针对所有的0<= x <p,可以求出有效的y,得到曲线上的点 (x,y),其中x,y < p。曲线记为EP(a,b),EP(a,b)中也包括O点
椭圆曲线加密/解密
1)双方选择椭圆群EP(a,b)以及EP(a,b)的一个元素G,使得 nG=0的最小n值是一个非常大的素数; 2)A选择私钥X<n,计算公钥PA=XG; 3)B选择私钥Y<n,计算公钥PB=YG; 4)A若想加密和发送报文Pm给B,选择随机数k,并产生一对 点组成的密文Cm={kG,Pm+kPB}; 5)B解密密文, Pm+kPB-Y×kG= Pm+k×YG- Y×k×G= Pm 除了A,无人知道k,因此无法破译
➢ 给 定 两 个 素 数 p 和 q, 以 及 整 数 n=p×q, 和 m, 其 中 0<mm<n(n,)1 则 m( p1)(q1)1 m mod n mk (n)1 mk ( p1)(q1)1 mmod n
RSA算法的描述
➢ 对于明文分组M和密文分组C,加密解密形式分别为: C = Me mod n M = Cd mod n = (Me)d mod n = Med mod n
➢ 因此,公钥 KU={e,n},私钥 KR={d,n},公钥算法必须满足: 1)有可 能找到 e、d、n的值,使得对所有M<n 有Med =
mod n; 2)对于所有M<n,要计算Me和Cd相对简单; 3)给定e和n时,判断出d是不可行的;
RSA算法的描述
➢ 如何找到: M ed M mod n ?
RSA算法的安全性分析
➢ EDI攻击标准使用的RSA算法中规定n的长度为512至1024比 特位之间,但必须是128的倍数;
➢ 国际数字签名标准ISO/IEC 9796中规定n的长度位512比特位 ➢ 为了提高加密速度,通常取e为特定的小整数,如EDI国际标准
中规定 e=216+1;ISO/IEC9796中甚至允许取e=3;这时加 密速度一般比解密速度快10倍以上;
Baidu Nhomakorabea
两类加密算法比较
保密密钥算法 40 位 56 位 64 位 80 位 90 位 112 位 120 位 128 位
RSA 算法 —— 400 位 512 位 768 位
1024 位 1792 位 2048 位 2304 位
椭圆曲线算法 —— —— —— —— 160 位 195 位 210 位 256 位
第三章 公钥密码技术
第三章 公钥密码技术 1
1. 公钥密码的概念 2. 公钥密码学的理论基础 3. 公钥密码算法 4. 密钥交换 5. 公钥密码算法的应用
提出公钥密码的动因
1. 密钥分配问题。使用对称加密算法的通信双方要进行加密通信 时,需要通过秘密的安全信道协商加密密钥,而这种安全信道 如何实现呢?机械阶段
• 计算复杂度 • P问题和NP完全问题 • 密码与计算复杂度的关系
单向陷门函数
一个单向陷门函数 f (X ) 要满足下面的条件:它将一
个定义域映射到一个值域,使得每一个函数值都有一个
唯一的原象;同时,函数值计算很容易而逆计算是困难
的,但是如果知道某个陷门 t 后,逆计算是容易的。即
Y f (X)
公钥算法的种类很多,具有代表性的三种密码: ❖ 基 于 离 散 对 数 难 题 ( DLP) 的 算 法 体 制 , 例 如 Diffie-
Hellman 密钥交换算法; ❖ 基于整数分解难题(IFP)的算法体制,例如RSA算法;
❖ 基于椭圆曲线离散对数难题(ECDLP)的算法体制;
RSA算法
➢麻省理工学院的Ron Rivest, Adi Shamir和Len Adleman于 1977年研制,并于1978年首次发表;
加密:(19)5 mod 119 = 66 解密:(66)77 mod 119 = 19
RSA算法的安全性分析
➢ 密码分析者攻击RSA体制的关键在于分解n,若分解成功使n=p× 则可以算出φ(n)=(p-1)×(q-1),然后由公开的e,解出秘密的d;
➢ 若使RSA安全,p与q必为足够大的素数,使分析者没有办法在 多项式时间内将n分解出来,建议选择p和q大约是100位的十进制 素数,模n的长度要求至少是512比特;
设p=3, q=5, 那么 n=p×q=15; 1)小于15而且与15互素的正整数是: {1,2,4,7,8,11,13,14}
因此, φ(15)=8;
2)φ(15)=(3-1)*(5-1)=8
欧拉定理
➢ 对于任何互素的整数a和n, a(n)(m 1od n), 或者写作 a(na)(1mod n)
安全性分析:计算模一个素数的指数相对容易,计算离散对数 很难;
Diffie-Hellman密钥交换算法举例
1)密钥交换基于素数q=97和q的一个原根a=5; 2)A和B分别选择密钥 XA=36和XB=58,并分别计算其公开密
YA = 536= 50 mod 97 YB = 558= 44 mod 97 3)交换了公开密钥后,每人计算共享的秘密密钥如下 K= (YB)XA mod 97 = 4436 = 75 mod 97 K= (YA)XB mod 97 = 5058 = 75 mod 97
RSA算法的安全性分析
为了抵抗现有的整数分解算法,对RSA模n的素因子p和q还有 如下要求:
(1) |p-q|很大,通常 p和q的长度相同; (2) p-1 和q-1分别含有大素因子p1和q1; (3) P1-1和q1-1分别含有大素因子p2和q2; (4) p+1和q+1分别含有大素因子p3和q3;
➢ 欧拉函数 (Euler’s totient function),记为φ(n),表示小 于n而且与n互素的正整数个数;
➢ 对于任一素数p,φ(p)=p-1; ➢ 对于两个不同的素数p和q,若n=p×q,
则φ(n)= φ(p×q)= φ(p)×φ(q)=(p-1)×(q-1);
Euler 函数举例
因此,双方获得了一个共享会话密钥(XYG)
椭圆曲线上的密钥交换攻击
双方选择EP(a,b)以及EP(a,b)的一个元素G,使得G的阶n是一 个大素数 A选择私钥X<n,计算公钥PA=XG, AB: PA E截获PA,选私钥Z,计算PE=ZG,冒充AB:PE B选择私钥Y<n,计算公钥PB=YG, BA: PB E截获PB,冒充BA: PE A计算: XPE = XZG B计算: YPE = YZG E计算: ZPA=ZXG, ZPB =ZYG ❖E无法计算出XYG ❖E永远必须实时截获并冒充转发,否则会被发现.
➢RSA是一种分组密码,其理论基础是一种特殊的可逆模幂运算 ,其安全性基于分解大整数的困难性;既可用于加密,又可用于 数字签名,已得到广泛采用;
➢RSA已被许多标准化组织(如ISO、ITU、IETF和SWIFT等)接纳 ;RSA-155(512 bit), RSA-140于1999年分别被分解;
Euler 函数
第三章 公钥密码技术 4
1. 公钥密码的概念 2. 公钥密码学的理论基础 3. 公钥密码算法 4. 密钥交换 5. 公钥密码算法的应用
Diffie-Hellman密钥交换算法
➢ 若用户A和用户B希望交换一个密钥,如何进行? 1)全局公开参数:一个素数q和其一个原根a; 2)用户A选择一个随机数XA<q,计算YA=aXA mod q,YA 开; 3)用户B选择一个随机数XB<q,计算YB=aXB mod q ,YB 开; 4)用户A计算密钥K=(YB)XA×mod q;
容易
X f 1(Y )
困难
知道陷门 t 后, X ft1(Y )
容易
单向陷门函数的数学问题
1. 分解整数问题。 2. 离散对数问题。 3. RSA问题。
第三章 公钥密码技术 3
1. 公钥密码的概念 2. 公钥密码学的理论基础 3. 公钥密码算法 4. 密钥交换 5. 公钥密码算法的应用
公开密钥算法
相关文档
最新文档