系統架構師學習筆記_第十一章(上)_連載

第十一章? 信息安全技術


11.1? 信息安全關鍵技術

11.1.1? 加密和解密

有意的計算機犯罪 和 無意的數據破壞

被動攻擊:非法地從傳輸信道上截取信息,或從存儲載體上 偷竊、復制 信息。

主動攻擊:對傳輸或存儲的數據進行 惡意的刪除、篡改 等。

密碼技術是防止數據攻擊的一種有效而經濟的方法。

信源、信宿、明文、密文。

傳輸消息的通道稱為信道,參數 稱為 密鑰,解密算法是加密算法的逆運算。

加密密鑰與解密密鑰相同,或者可以簡單相互推導 的密碼體質 稱為 對稱密碼體質。

不能(在有效時間內)相互推導的,稱為 非對稱密碼體質。


1、對稱密鑰密碼體質及典型算法

對稱算法(Symmetric Algorithm),有時又稱為 傳統密碼算法,也稱 單密鑰算法。

安全通信之前,商定一個密鑰,安全性依賴于密鑰,密鑰的保密性對通信至關重要。

優點:算法實現的 效率高、速度快。

缺點:密鑰的管理過于復雜。


1. DES 算法簡介

DES(Data Encryption Standard,數據加密標準)是IBM公司研制,美國國家標準局 1977年公布,作為 非機要部門 使用的數據加密標準。

DES 是一個分組加密算法,以64位為分組對數據加密。密鑰長度56位(因為每個第8位都用作奇偶校驗)。


2. IDEA 算法簡介

國際數據加密算法(International Data Encryption Algorithm,IDEA)前身是 推薦加密標準(Proposed Encryption Standard,PES)。

分組長度 64b,密鑰長度128b。

運算非常簡單,只是 異或,速度極快,窮舉破解不現實。


2、不對稱密碼加密算法

不對稱密碼體制又稱 雙密鑰和公鑰密碼體質,1976年 由 Diffie 和 Hellman 提出的。

私鑰 秘密保存。

不需要事先通過安全秘密管道交換密鑰。

RSA 的安全性依賴于大素數分解。公鑰和私鑰 都是兩個大素數(大于100個十進制 位)的函數。

據猜測,從一個 密鑰和密文 中,推斷出明文的難度 等同于 分解兩個大素數的 積。

具體操作時 考慮到 安全性 和 M信息量 較大等因素,一般是 先做 HASH 運算。

速度慢一直是 RSA 的缺陷,因此一般來說,RSA只用于少量數據加密。


11.1.2? 散列函數與數字簽名

1、MD5 散列算法

散列函數是一種公開的數學函數。散列函數運算的輸入信息叫做 報文,運算后所得的結果叫做 散列碼 或 消息摘要。

特點:

1. 給定 M,要找到另一消息 M,使 H(M)= H(M')很難。

2. 散列函數都是 單向的,反推 M 很難。

3. 對于任何一個報文,無法預知它的散列碼。

4. 散列碼具有固定的長度,不管原始報文長度如何。

常見的散列函數有:MD5、SHA、HMAC 等。

MD5(Message Digest 5)已成為國際標準,產生128位(16字節)長度的散列值(或稱 消息摘要)。

通過以下4個步驟:

1. 附加填充位,填充后數據長度 MOD 512 后 余 448。如果數據長度正好 MOD 512 余 448,增加 512 個填充位,填充個數也就是1~512。
填充位第一個為 1,其余全部是 0。

2.? 補足長度。

3.? 初始化 MD緩存器。

4個32位寄存器,A、B、C、D,初始化為:

A: 01 23 45 67
B: 89 AB CD EF
C: FE DC BA 98
D: 76 54 32 10

4.? 處理數據段。


2、數字簽名與數字水印


1.? 數字簽名可以解決 否認、偽造、篡改、冒充 等問題。

凡是需要對用戶身份進行判斷的情況 都可以使用數字簽名。

三個過程:系統的初始化過程、簽名產生過程、簽名驗證過程。

簽名者必須注意保護好私有密鑰,因為它是公開密鑰體系安全的重要基礎。

如果密鑰丟失,應該立即報告鑒定中心取消認證,鑒定中心必須能夠迅速確定用戶的身份及其密鑰的關系。

RSA、ElGamal、Fiat-Shamir、美國的數字簽名標準/算法(DSS/DSA)、橢圓曲線 等多種。


2.? 數字水印(Digital Watermarking)是實現版權保護的有效辦法,也是信息隱藏技術研究領域的重要分支。

通過在原始數據中嵌入秘密信息——水印(Watermark)來證實該數據段所有權。

水印可以是一段 文字、標識、序列號 等,通常是不可見或不可察的,與原始數據緊密結合并隱藏其中。

數字水印技術必須具有較強的 魯棒性、安全性、透明性。

數字水印主要應用領域:

版權保護,作品被盜版或出現版權糾紛時,所有者即可 從盜版作品或水印版作品中 獲取水印信號作為依據。

加指紋,將不同用戶端 ID 或 序列號 作為不同的水印(指紋)嵌入作品的合法備份中,一旦發現未授權的備份,就可以 確定它的來源。

標題與注釋。

篡改提示,可將原始圖像分成多個獨立塊,再將每個塊加入不同的水印,來確定作品的完整性,這類水印必須是脆弱的,并且檢測水印信號時,不需要原始數據。

使用控制,防復制。


空域算法、變換域算法、壓縮域算法、NEC算法、生理模型算法 等。


11.1.3? 密鑰分配中心與公鑰基礎設施

現代密碼系統中,算法本身的保密已經不重要了,只要密鑰能夠保密,即使加密算法公開,甚至加密設備丟失,也不會對加密系統的堅固性和正常使用產生多大影響。

如何高效地分配密鑰、安全地管理密鑰 對保證數據安全來說 至關重要。


1、密鑰分配中心

密鑰自動分配 是 密鑰分配中心(Key Distribution Center,KDC)技術。


2、數字證書和公開密鑰基礎設施

數字證書的內容一般包括:唯一標識證書所有者的名稱、唯一標識證書簽發者的名稱、證書所有者的公開密鑰、證書簽發者的數字簽名、證書的有效期、證書的序列號 等。

PKI(Public Key Infrastructure,公鑰基礎設施)的結構模型有三類實體:管理實體、端實體、證書庫。

管理實體是PKI的核心,是服務的提供者,端實體是PKI的用戶。

CA 和 RA 是兩種管理實體,CA 能夠 發布和撤銷 證書,維護證書的生命周期。RA負責處理用戶請求。

證書庫的存取對象為證書和CRL,其完整性由數字簽名來保證,因此不需要額外的安全機制。

轉載于:https://www.cnblogs.com/hack/archive/2010/08/18/1802824.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/275929.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/275929.shtml
英文地址,請注明出處:http://en.pswp.cn/news/275929.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

跨庫一致性_設計跨平臺的一致性

跨庫一致性I offended an Apple employee the other day when I was checking out the new iPad Pro and I told him that I was an Android phone user. Eyes rolled, jokes were made, and we agreed to disagree.前幾天,我在檢閱新iPad Pro時冒犯了一名蘋果員工&…

React-生命周期雜記

前言 自從React發布Fiber之后,更新速度日新月異,而生命周期也隨之改變,雖然原有的一些生命周期函數面臨廢棄,但理解其背后更新的機制也是一種學習 在這里根據官方文檔以及社區上其他優秀的文章進行一個對于生命周期的總結&#xf…

漫畫 | 一個NB互聯網項目的上線過程…

大家好,我是若川(點這里加我微信 ruochuan12,長期交流學習)。今天雖然是周六,但還是要上班,所以就推薦一篇比較輕松的漫畫。點擊下方卡片關注我、加個星標,或者查看源碼等系列文章。學習源碼整體…

stm32 中斷處理級別_STM32中斷優先級徹底講解

文章來源:http://blog.sina.com.cn/s/blog_4fed55ce0100j7nd.html一:綜述STM32 目前支持的中斷共為 84 個(16 個內核68 個外部), 16 級可編程中斷優先級的設置(僅使用中斷優先級設置 8bit 中的高 4 位)和16個搶占優先級(因為搶占優先級最多可…

胖子臉:庫珀·布萊克100年

In 16th century Europe, roman typefaces were the first to surpass blackletter as the preferred choice for expressing emphasis in print. True bold weight roman letters didn’t appear until the 19th century, which critics quickly coined “Fat Faces” due to …

C語言中的布爾值

C語言的布爾類型在C語言標準(C89)沒有定義布爾類型,所以C語言判斷真假時以0為假,非0為真。所以我們通常使用邏輯變量的做法: //定義一個int類型變量,當變量值為0時表示false,值為1時表示trueint flag;flag 0;//......…

用委托實現窗體間傳值

1.新建一個工程.在Form1中添加一個Label和一個Button.新建一個事件類,讓它有一個string 類型的屬性,用于傳值. 1 ///ReturnValueEventArgs.cs 2 using System; 3 using System.Collections.Generic; 4 using System.Text; 5 6 namespace test 7 { 8 public class Return…

c++ explicit關鍵字_聊一聊 C++的特性 explicit 匿名空間

聊一聊 C的特性 explicit && 匿名空間explicit關鍵字首先看一下explicit的作用:explicit 是避免構造函數的參數自動轉換為類對象的標識符,平時代碼中并不是經常用到,但是,有時候就是因為這個,會造成一定的BUG出…

谷歌瀏覽器那些有趣的隱藏功能

大家好,我是若川(點這里加我微信 ruochuan12,長期交流學習)。今天推薦一篇實用文章。文末有抽獎。點擊下方卡片關注我、加個星標,或者查看源碼等系列文章。學習源碼整體架構系列、年度總結、JS基礎系列很多小伙伴說還是…

AppDelegate的模塊化+瘦身

前言 關于iOS的模塊化,要追溯到16年接觸的BeeHive了,BeeHive將功能模塊化,以module的形式進行構建,以performSelector:的形式進行module的事件響應,以protocol的形式進行module間的通信。可以說思路非常清晰…

yii mysql_Yii2框架操作數據庫的方法分析【以mysql為例】

本文實例講述了Yii2框架操作數據庫的方法。分享給大家供大家參考,具體如下:準備數據庫DROP TABLE IF EXISTS pre_user;CREATE TABLE pre_user(id int(11) AUTO_INCREMENT PRIMARY KEY,username varchar(255) NOT NULL,password varchar(32) NOT NULL DEF…

C++接口注意

1. 用Record接口,要注意 Packed的區別 2. cdecl和stdcall的區別 3. C導出的函數建議用C格式stdcall導出,使用Def文件定義名稱 4. 用VS寫的API dll要注意是否引用了MFC的DLL,否則會使LoadLibrary失敗,并GetLastError后返回14001 Ap…

Vue 3.1.0 的 beta 版發布

大家好,我是若川(點這里加我微信 ruochuan12,長期交流學習)。昨晚尤大視頻號直播說到vue 3.1.0 beta版發布了,今天分享這篇文章。也有小伙伴可能注意到了昨晚我一直在送禮物。點擊下方卡片關注我、加個星標&#xff0c…

設計模式練習_設計練習是邪惡的

設計模式練習It was the final round of interviews. Or, so the candidate thought.這是采訪的最后一輪。 或者,所以候選人認為。 She’d spent all day interviewing in our office. As the final interviewer, I walked her out the building. She seemed confi…

morningcat2018 LearningDocs

2019獨角獸企業重金招聘Python工程師標準>>> LearningDocs 學習資料與文檔 JCP(Java Community Process ,Java社區進程 ) https://www.jcp.org/en/home/index JSR(Java Specification Requests,Java規范請求…

firefox下可惡的value

前幾天做項目 遇到這樣一個情況 document.getElementById("txtTest").value "111"; 這條語句在ff下和ie下都是好用的 但是用開發工具看html代碼 ie下顯示正常 ff下顯示的卻是修改之前的(實際上已經修改了,只是html沒有修改過來) 用js修改input…

據說 99% 的人不知道 vue-devtools 還能直接打開對應組件文件?本文原理揭秘

1. 前言你好,我是若川[1],微信搜索「若川視野」關注我,專注前端技術分享,一個愿景是幫助5年內前端開闊視野走向前列的公眾號。歡迎加我微信ruochuan12,長期交流學習。這是學習源碼整體架構系列 之 launch-editor 源碼&…

mysql 存儲 事務_MYSQL 可以在存儲過程里實現事務控制嗎

展開全部6.7 MySQL 事務與鎖定命令6.7.1 BEGIN/COMMIT/ROLLBACK 句法缺省的,MySQL 運行在 autocommit 模式。這就意味著,當你執行完一e69da5e887aa62616964757a686964616f31333361326265個更新時,MySQL 將立刻將更新存儲到磁盤上。如果你使用…

如何忽略證書繼續訪問_前5個最容易被忽視的可訪問性問題

如何忽略證書繼續訪問Accessibility is quickly becoming one of the most important aspects of the way we use the web, if not the most important. Just between 2017 and 2018, the number of federal court cases regarding web accessibility nearly tripled, signifyi…

《認清C++語言》のrandom_shuffle()和transform()算法

1&#xff09;STL中的函數random_shuffle()用來對一個元素序列進行重新排序&#xff08;隨機的&#xff09;&#xff0c;函數原型如下&#xff1a; template<class RandomAccessIterator> void random_shuffle( RandomAccessIterator _First, //指向序列首元素的迭代器 R…