网站大量收购独家精品文档,联系QQ:2885784924

LectureofClass#17(pptfile).ppt

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

補充資料 資訊安全 資料來源: Visual C# 2005資訊安全程式設計(張宇超編著,松崗出版) 背景 在資訊安全的概念下,軟體開發者將不再以撰寫系統功能為唯一目標,而必須兼顧功能與安全。安全性的問題可能包括: 資料保密 身份辨識 入侵偵測 .NET平台提供了完整的安全機制與類別庫幫助程式開發者撰寫高安全性、高穩定性的系統。 學習目標 加密程式開發實務 對稱金鑰加密 RijnDael對稱式金鑰加密程式開發 非對稱金鑰加密 數位簽章 對稱式金鑰加密 背景說明 現今加密技術可約略分為 對稱式金鑰加密演算法(Symmetric Key Encryption) 資料傳送過程中使用相同的金鑰進行加密及解密 在雙方交換訊息前,即是先持有一個共同的密鑰;當甲方傳輸前,先以該金鑰對明文編碼成密文,乙方收到後,再以同一把金鑰將密文解碼回明文。 非對稱式金鑰加密演算法(Asymmetric Key Encryption) 資料傳送過程中使用不同的金鑰進行加密及解密 專有名詞解釋 明文(Plain Text) 未經過編碼,原始可讀的資訊。 密文(Encrypt Text) 經過編碼,無明確意義的資訊。 密鑰(Secret Key) 在加密/解密演算法中使用的鍵值(Key),可能是一段資訊或字串。在對稱式金鑰加密法中,傳輸的雙方持有相同內容的密鑰。 加密演算法(Encryption Algorithm) 利用密鑰對明文進行加密編碼動作的演算法。 解密演算法(Decryption Algorithm) 利用密鑰對密文進行解密解碼的演算法。 示意圖 加密演算機制的特性 加密演算機制必須滿足的四大特性: 身份認證性(Authentication) 確認溝通對象的身份與辨識溝通對象的資料內容。 機密性(Confidentiality) 將重要的訊息、機密檔、電子契約等重要資訊以金鑰進行加密,確保只有許可權的人才可讀取。 完整性(Integrity) 確保傳輸的內容在傳送與接收都是一致的、未經竄改的。 不可否認性(Non-repudiation) 傳送端在傳送資料後,無法抵賴傳送該項資料內容。 對稱式金鑰演算法的優缺點 優點 加密、解密運算快。 缺點 無法有效處理「金鑰分送」與「數位簽章」的問題。 因為溝通訊息的雙方必須先持有共同的金鑰,故在金鑰的分送上,就成為該加密法的一大罩門。 網路分送:安全漏洞。 人工分送:浪費成本。 解決方法:非對稱性金鑰加密演算法 速度快,所以適合應用程式專屬檔案的加密解密;或可配合非對稱式金鑰加密演算法作其他的整合應用。 .NET支援的對稱金鑰加密演算法 .NET Framework提供以下四種對稱性加密演算法: Rijndael加密演算法 命名空間 System.Security.Cryptography 建立物件 Rijndael rd = Rijindael.Create(); Rijndael rd = new RijndaelManaged(); 常用公用屬性: KeySize: 秘密金鑰的長度,以位元為單位。 Key: 加密演算法的秘密金鑰;在對稱性金鑰加密演算法中,加密解密所使用的的金鑰必須相同。 IV: 對稱演算法的初始化向量(Initial Vector)。實務開發上,初始化向量用來打亂原有的密鑰,始有心者更難對加密內容進行破解。 對稱性金鑰加密,雙方的金鑰和初始化向量必須相等。 金鑰長度選擇 BlockSize: 密碼編譯作業的區塊大小(緩衝區大小),以位元為單位。 緩衝區長度與金鑰長度可隨系統開發者自行選定,但必須位於合法的長度範圍內,且滿足「遞增原則」。 例如:Rijndael要求金鑰的長度在128~256位元之間,且以64位元遞增。意指,金鑰長度可選定128、192、256位元其中之一。 若緩衝區長度更改,需注意初始化向量也需修改,因為初始化向量長度必須和緩衝區長度一致,如此可避免錯誤產生。 Rijndael rd = Rijndael.Create(); Rd.BlockSize = 128; Rd IV = new byte[] {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}; 程式開發技巧 若欲加密的資料量超過既定的緩衝區大小,就必須採取分段加密的方式來因應。善用CrytoStream物件,便可以免除開發緩衝區塊的處理流程,大幅縮短程式的開發時間。 CrytoStream結合MemoryStream與加密/解密演算法,將記憶體串流當成輸出/輸入的目標(命名空間:System.IO)。 結合StreamWriter/StreamReader直接從來源寫入/讀取來源資料,最後以字串變數型態回傳加密/解密的結果

文档评论(0)

youbika + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档