第8章中国剩余定理和RSA算法

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

计时攻击 攻击者可以通过记录计算机解密消息所用的 时间来确定私钥。 解决方法: 不变的幂运算时间 随机延时 隐蔽
*选择密文攻击和最佳非对称加密填充
基本的RSA算法易受选择密文攻击(在此不深入讲解), 可以采用最佳非对称加密填充(OAEP)来解决: 第一步,待加密的消息M被填充。可选参数集P作为散列 函数H的输入,输出用0加以填充以获得期望的长度, 从而可以放入整体数据块(DB)内。 第二步,随机选择一个种子,并作为一个散列函数的输 入,该散列函数称为掩码生成函数(MGF)。输出散 列值和DB进行按位异或运算产生掩码DB (maskedDB)。 第三步,该maskedDB反过来又作为MGF的输入产生一个 散列值,该散列值和种子进行异或运算产生掩码种子。 掩码种子和掩码DB连接起来构成加密后的消息EM。注 意,EM包含填充过的消息,该消息由种子进行隐蔽, 而种子又由maskedDB进行隐蔽。最后用RSA对整个EM 进行加密。
由Euler定理有 mφ(q) ≡1 mod q 于是 (mφ(q))kφ(p)≡1 mod q 写成 mkφ(n) ≡1 mod q 或 m kφ(n) =1+jq 这里j是正整数 由(2)式有 D[C] ≡m.(mφ(n))k(mod n) ≡m(1+jq) ≡m+mjq≡m+spjq=m+sjn≡m(mod n) 即D[C]=m

1976年9月,一篇题为“New Directions in Cryptography(密码术的新方向)”的文章, 打破了几千年来对称密码技术的垄断局 面,开辟了现代密码技术的新领域——公 钥密码技术。这篇文章是一个名叫 Whitfield Diffie的自学成才的的密码学专 家和一个与他兴趣相投的斯坦福大学学 生Hellman共同发表的。其中阐述了一种 实用的密钥交换技术,解决了在对称密 码技术中一直困扰人们的密钥传递问题, 这就是著名的Diffie-Hellman(简称DH)密 码技术(以后再介绍)。
*计算方面的问题
运用中国剩余定理可以加快运算速度。 先计算一些中间结果: Vp≡Cd mod p Vq≡Cd mod q Xp≡qq-1mod p Xq≡pp-1mod q M≡(Vp Xp+ Vq Xq) mod n 进一步,可以用费马定理来简化计算 Vp≡Cd mod p≡Cd mod (p-1) mod p Vq≡Cd mod q≡Cd mod (q-1) mod q
除了要指定n的大小外,研究者还提出了其他一些限 制条件: p和q的长度应仅相差几位。这样对1024位(309 个十进制位)的密钥而言,p和q都应约在1075到 10100之间。 (p-1)和(q-1)都应有一个大的素因子。 (p-1,q-1)应该较小。 1/4,则d很容易被 另外,已经证明,若e<n且d<n 确定。


但Diffie-Hellman的开创性论文却引起了美国麻 省理工学院(MIT)的年青教授Ron Rivest对公 钥加密技术的极大兴趣,他下决心要开发一个 最终的公钥加密技术。于是他邀请两位同事Adi Shamirt和 Len Adleman一起来解决这个问题。 1977年,三人开发出了一个能够真正加密数据 的公钥加密算法,并于1978年在一篇题为“A Method for Obtaining Digital Signatures and Public Key Cryptosystems(获取数字签名和公钥 加密系统的方法)”中公开了这个算法,这就是 著名的RSA算法(以三位发明者名字的首字母 缩写命名)。 RSA先后被ISO、ITU、SWIFT等国际化标准组 织采用作为标准。
wenku.baidu.com
RSA密码体制描述
参数的构成: (1)选取两个不同的大素数p、q。 (2)计算n: n=pq和φ (n)=(p-1)(q-1) (3)随机选取e,使e满足1<e<φ (n),且(e, φ(n))=1 那么公钥就是(e,n) (4)计算d:满足ed≡1 (mod φ(n)) 那么私钥就是(d,n) (5)销毁p、q、φ(n);自己保存好私钥(d,n);公开公钥(e,n). 明文和密文空间就是0到(n-1)之间的整数值。
9.1公钥密码体制的基本原理
9.1.1公钥密码体制 公钥密码体制的特点: 仅根据密码算法和加密密钥来确定解密密钥 在计算上是不可行的。 有些公钥密体制还有如下特点: 两个密钥中的任何一个都可用来加密,另一 个用来解密。
9.1.2公钥密码体制的应用



加密/解密: 发送方用接收方的公钥对消息 加密。 数字签名:发送方用其私钥对消息“签 名”。签名可以通过对整条消息加密或者 对消息的一个小的数据块加密来产生。其 中该小数据块是整条消息的函数。 密钥交换:通信双方交换会话密钥。
①若(m,n)=1,由Euler定理有 mφ(n) ≡1(mod n),即D[C] ≡m。 ②若(m,n)≠1,又n=pq,由素数性质得 (m,n)=p或q。 假设 (m,n)=p,有m=sp ,这里s是正整数 ∵1<m<n, ∴1≤s<q (p,q)=1,(s,q)=1,又p、q都是素数,故 从而 (sp,q)=1,即(m,q)=1
模[m1,m2,…,mk]有惟一解, x≡M1M1-1b1 + M2M2-1b2 +…+ MkMk-1bk mod m m=m1m2…mk Mi=m/mi,MiMi-1≡1 mod mi
例: 今有物不知其数,三三数之剩二,五五数之剩三, 七七数之剩二,问物几何? 解: 问题归结为解
X≡2 mod 3 X≡3 mod 5 X≡2 mod 7
x≡M1M1-1b1 + M2M2-1b2 + M3M3-1b3 ≡70 b1 +21 b2+15 b3 mod 105 ≡70*2+21*3+15*2 mod 105 ≡23 mod 105
答案是: 三人同行七十稀 五树梅花廿一枝 七子团圆月正半 除百零五便得知
第9章公钥密码学与RSA

公钥密码学与以前的密码学完全不同。首 先,公钥算法是基于数学函数而不是基于 替换、置换等运算,更重要的是,与只使 用一个密钥的对称传统密码不同,公钥密 码是非对称的,它使用两个独立的密钥 (公钥和私钥)。
课后习题: 1.韩信点兵的故事。今有兵员不知其数,每五个数 之,剩下1人;每六个数之,剩下5人;每七人数 之,剩下4人;每十一人数之,剩下10人,问兵 员多少? *编写中国剩余定理算法程序。 2.什么是单向陷门函数? 3.P201 9.2 a, b 9.3


单向陷门函数的定义:一个函数,若计 算函数值很容易,并且在缺少一些附加 信息时计算函数的逆是不可行的,但是 已知这些附加信息时,可在多项式时间 内计算函数的逆,那么我们称这样的函 数为单向陷门函数。即单向陷门函数是 满足下列条件的一类不可逆函数fk 若k和X已知,则容易计算Y=fk(X)。 若k和Y已知,则容易计算X=fk-1(Y) 若Y已知但k未知,则计算X=fk-1(Y)是不可 行的 。
8.4中国剩余定理
8.4中国剩余定理
定理1-10中国剩余定理 (CRT:Chinese Remainder Theorem) 设m1,m2,…,mk是两两互素的正整数,即: (mi,mj)=1,i≠j,i, j=1,2,…,k,则同余方 程组:
X≡b1 mod m1 X≡b2 mod m2 …… X≡bk mod mk
加密: C≡me mod n 这里,m是明文,C是密文 解密: m≡Cd mod n. 使用RSA算法要满足:m〈n
举例: (1)构造用户A的参数: p=5 q=11 n=p╳q=55 φ (n)=(p-1)╳(q-1)= 4╳10=40 选择一个整数e,使e与φ(n)互素。现选择e=17 公钥为(e,n),即(17,55) 从ed≡1 mod φ(n)即17d≡1 mod 40 中求得d,解得d=33。 私钥(d,n)即为(33,55)。 (2)假如B想把明文m=25发给A,那么他就利用公式 C=me mod n把明文m加密成密文C,即 C=me mod n=2517 mod 55=20 并把C=20发送给A。 (3)A收到密文C后,利用公式m=Cd mod n把密文C恢复 成明文m。即 m=Cd mod n=2033 mod 55=25 A把B发给他的密文C=20恢复为明文m=25。
(2) me mod n是将明文以指数形式表示出来,或 者说以指数形式将明文隐藏起来。 (3)如果攻击者设法得到了一个明、密文对 (m,c),他想得到解密密钥d,则必须在 Zn={1,2,…,n-1}中求解(离散)对数问题: d=logcm,这是一个困难问题。 (4)加密、解密过程中的主要运算是Zn中的幂运算。 由于n可能非常大,所以模n的幂运算的效率就 成为算法效率的关键。 (5)在找到一个可用的数,即与φ(n)互素的数之 前,要测试多少个随机数呢?可以很容易地证 明,两个随机数互素的概率约为0.6。
m = m1 m2 m3 =3*5*7=105 M1= m / m1=105/3=35 M2=m/m2=105/5=21 M3=m/ m3=105/7=15 M1M1-1≡1 mod m1 M2M2-1≡1 mod m2 M3M3-1≡1 mod m3
即:35M1-1≡1 mod 3 21M2-1≡1 mod 5 15M3-1≡1 mod 7 得:M1-1≡2 M2-1≡1 M3-1≡1
RSA的安全性
对RSA算法的攻击可能有如下四种方式: 穷举攻击:这种方法试图穷举所有可能的 私钥; 数学攻击:有多种数学攻击方法,它们的 实质都是试图分解两个素数的乘积; 计时攻击:这类方法依赖于解密算法的运 行时间; 选择密文攻击:这种攻击利用了RSA算法的 性质。
因子分解问题
用数学方法攻击RSA的途径有以下三种: 分解n为两个素因子。这样就可以计算出φ(n)= (p-1)(q-1),从而可以确定 d≡e-1(mod φ(n))。 直接确定φ(n)而不先确定p和q。 直接确定d,而不先确定φ(n)。 对RSA的密码分析的讨论大都集中于第一种攻击 方法,即分解n。在选择RSA的n时,密钥大小在 1024至2048位范围内是合适的。

课堂练习:p=11,q=7,e=13,问私钥是什么, 若加密明文m=10,则对应的密文是什么?
RSA算法分析
(1)RSA算法原理基于Euler定 理及大数分解的困难性
下面证明RSA解密过程的正确性: D[C] ≡Cd≡med(mod n) (1) ∵ed ≡1 mod φ(n) ∴ed=1+kφ(n) 这里k是整常数,代入(1)有 D[C] ≡med(mod n) ≡m1+ kφ(n)(mod n) =m.(mφ(n))k(mod n) (2)
相关文档
最新文档