公开金钥密码学的原则RSA演算法.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
公开金钥密码学的原则RSA演算法

* * * * * * * * * * * * * * * * * * * * * * * 密碼學與網路安全 第9章 公開金鑰密碼學與RSA * 私密金鑰密碼學 傳統的私密/秘密/單一金鑰密碼學使用一把金鑰 傳送端和接收端共用同一把金鑰 所以也稱為對稱式加密 若通訊時洩漏金鑰,會危及通訊安全 而且也無法確認傳送端的真實身份 * 公開金鑰密碼學 公開金鑰密碼學是整個密碼學最重大的發展,也是整個密碼學演進史唯一真正的變革 使用兩把金鑰:公開金鑰和私密金鑰 也稱為非對稱加密,兩端使用不一樣的金鑰 公開金鑰演算法是以數學函數為基礎,而非替代和重排 * 為什麼要使用公開金鑰加密? 解決兩大金鑰的議題: 金鑰分送 數位簽章 公開金鑰加密是由菲迪和赫爾曼在1976年於史丹佛大學公開發表 安全單位更早之前也已提出類似的概念,但未公開 * 公開金鑰密碼學 公開金鑰/雙金鑰/非對稱密碼學使用兩把金鑰: 公開金鑰:公開並用於加密訊息、確認簽章(即是解密) 私密金鑰:只由接收端擁有,用來解密訊息、簽署(建立)簽章(即是加密) 非對稱式因為 加密訊息或確認簽章之金鑰無法解密訊息或建立簽章 * 公開金鑰密碼學 * 公開金鑰密碼學 * 公開金鑰的特徵 非對稱演算法的加密是依賴一把金鑰,並且用另一把不同但相關的金鑰來解密,這些演算法具有以下重要的特性: 若只知道密碼系統的演算法和加密金鑰,無法經由計算得到解密金鑰 對於已加密的密文而言,搭配另一把金鑰可以快快的解密 兩把金鑰的任一把可用來加密,另一把可用來解密(對某些演算法而言) * 公開金鑰加密系統之認證加保密 * 公開金鑰密碼系統的應用 廣義的三大應用: 加密/解密:傳送者以接收者的公開金鑰加密訊息 數位簽章:傳送者以自己的私密金鑰「簽署」訊息 交換金鑰:通訊雙方合作交換通訊金鑰 有些演算法適合這三種應用,而有些只能用在其中的一或兩種應用 * 公開金鑰的安全性 公開金鑰加密也會受到暴力法攻擊,雖然反制的對策也相同:使用更長的金鑰。不過,公開金鑰系統依靠某些反向的數學函數,這些函數的計算複雜度可能超過線性成長於金鑰位元數。所以金錀的大小必須 大得足夠抵擋暴力攻擊。 小得足以不會太難解密和加密。 另一種類型的攻擊,是找出某些方法而以公開金鑰計算出私密金鑰 (並未有數學證明此法無可破解!) 最後一種針對公開金鑰系統的特殊攻擊方式,屬於「可能訊息」攻擊法 假設欲傳送的明文是DES的56位元金鑰,則不論公開金鑰的金鑰長度有多長,只要加密256 種明文而得到256種密文即查表解密。這種攻擊法會簡化暴力攻擊而針對56位元金鑰。若要阻止這種攻擊,能在訊息之後加上一些隨機位元 * RSA RSA是1977年由Ron Rivest、Adi Shamir、和Len Adleman在MIT所發展 是目前最好也最廣為使用的公開金鑰架構 使用指數運算式,將明文加密成二進位值小於整數n的區塊 n的大小通常是1024個位元 (故n 小於等於21024 ?? 1) * RSA演算法 Rivest、Shamir、Adleman發展的方法使用指數運算式,將明文加密成二進位值小於整數n的區塊 區塊大小必須要小於或等於log2(n) 實際上的區塊大小是i個位元(2i n ≦ 2i+1) 某些明文區塊M和密文區塊C是以如下形式加密、解密: 傳送者與接收者都必須知道n值,傳送者知道e值,而只有接收者知道d值 * RSA演算法 RSA演算法若要滿足公開金鑰加密,就必須符合以下要求: 若M n、Med mod n = M,就有可能找出e、d、n的值 若M n,要計算Me mod n和Cd mod n就相對容易 知道e和n而要找出d是不可行 e和d之間的關係可以表示為: * RSA演算法 * RSA範例 - 產生金鑰 選擇質數:p=17 q=11 計算 n = pq =17 × 11=187 計算 ?(n)=(p–1)(q-1)=16 × 10=160 選擇 e: gcd(e,160)=1; e=7 者出 d: de=1 mod 160 且 d 160; d=23,使用擴充歐幾里德演算法即可算出。 公布公開金鑰 PU={7,187} 保持私密金鑰 PR={23,187} 的安全 * RSA範例 - 加/解密 * 模數算數的指數運算 RSA的加密和解密都有整數的指數運算和取n同餘 以取n同餘來減小計算過程的中間值,讓計算變得實際可行 另一個考量是指數運算的效率,因為我們會在RSA使用很大的指數 * 模數算數的指數運算 c = 0; f = 1 for i = k downto 0 do c = 2 x c f = (f x f) mod n if bi == 1 then c

文档评论(0)

teda + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档