第十一章公钥密码学基础课件.ppt

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十一章公钥密码学基础课件.ppt

计算机算法设计与分析 第十一章 公钥密码学基础 密码、加密与解密 密码是通信双方按约定的法则进行信息特殊变换的一种重要保密手段。 依照法则变明文为密文,称为加密变换; 依照法则变密文为明文,称为解密变换。 早期密码学仅对文字或数码进行加、解密变换。现代密码学还可以对语音、图像、数据等都可实施加、解密变换。 密码体制 进行明密变换的法则,称为密码体制。 密钥和公钥密码的思想 1976年美国斯坦福大学的Diffle和Hellman提出了公钥密码的思想: 秘钥与公钥 密码学分为秘钥密码学和公钥密码学。 秘钥密码学在加密和解密所使用的密钥是相同的,又称为对称密码学。 公钥密码学加密和解密所使用的密钥是不相同的,且前者(签字密钥)公开而后者(验证密钥)保密,又称为非对称密码学。 公钥密码学的各种技术及功能 1、保密通信 2、数字签名 3、秘密共享 4、认证功能 单向函数 加密的过程和解密的过程分别为: c = E (m)和m = D(c) 显然D是E的逆函数,即D = E–1。 单向陷门函数 加密容易解密难。要难住别人,却不要难住自己。怎么办? 单向陷门函数 例如:取两个不相等的质数p和q,令n = pq,取函数f(x) = xk mod n,且(k, ф(n))=1,其中ф(n)是n的欧拉函数(即ф(n)=(p – 1)*(q – 1)),则f(x)是一个单向函数。 如果有d使得kd ≡ 1(mod ф(n)),已知d,由y计算出x是容易的,因为yd ≡ x (mod n)。d就是它的陷门信息。如果我们不知道ф(n),而仅知道k,要想求出d是很困难的,这是一个NPC问题。所以f(x)还是一个单向陷门函数。 代表算法 RSA(Rivest, Shamir, Adleman) 椭圆曲线(ECC) (Eilliptic Curve Croptography) 背包算法 RSA公钥密码体制 RSA公钥算法 RSA公钥算法是由R. Rivest, A. Shamir和L. Adleman在1977年提出来的。 该算法的数学基础是初等数论中的欧拉(Euler)定理并建立在大整数因子分解的困难性之上的 欧拉定理 若整数a和m互素,则 a?(n) ≡ 1 (mod n) 其中?(n)为比n小但与n互素的正整数个数, 称为n的欧拉函数。 用欧拉函数构造单向陷门函数 选取大整数n和一个与?(n)互质的整数e,将n和e公开。 若要对明文m加密,则令 c = me (mod n)。 显然,这是一个单向函数。 RSA密码体制描述 A. 密钥的生成: RSA密码体制描述 B. 加密的过程: 1、将明文数字化,并选取长度小于log n位的数字作为明文信息块。 2、加密明文m,令c = E(m) = mb mod n。 RSA算法的举例 A. 密钥的生成 1、取素数43和59,则n = 43*59 = 2537,?(n) = 42*58 = 2436。 2、选取b为13,显然满足gcd(b, ?(n)) = 1,1 b ?(n)。 3、解方程ab≡1 mod 2436 ,a = 937。 4、将2537和13作为加密公钥,937和2436保密。 RSA算法的举例 B. 加密过程: 现有明文“public key encryptions”要加密。首先将其以两个字符为一组进行分组为:pu bl ic ke ye nc ry pt io ns 令00表示a,01表示b,…,将其数字化编码为: 1520 0111 0802 1004 2404 1302 1742 1519 0814 1418 RSA算法的举例 先讨论对第一个明文数字m1 = 1520的加密: E(m1) = m1b mod n = 152013 mod 2537 = (15202)6*1520 mod 2537 RSA算法的举例 类似地,对其它数字加密后得到密文序列为: 0095 1648 1410 1299 1365 1379 2333 2132 1751 1289 RSA算法的讨论 若使RSA安全,p与q必为足够大的素数。 建议选择p和q为100位以上的十进制素数。 模n的长度要求至少是512比特。EDI攻击标准使用的RSA算法中规定n的长度为512至1024比特位之间,但必须是128的倍数。 国际数字签名标准ISO/IEC 9796中规定n的长度位512比特位。 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分别含有大素因子p

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档