人人都要懂点密码学
文章目錄
你可以從別人那里汲取某些思想,但必須用你自己的方式加以思考,在你的模子里鑄成你思想的砂型。——蘭姆
本文已經收錄至我的GitHub,歡迎大家踴躍star 和 issues。
https://github.com/midou-tech/articles
點關注,不迷路!!!
?上次say&see了密碼學的DES算法,接下來就有人私信說是一開始就直接講算法有點難理解,想讓我給打打底,這么說當然沒問題,那以后我們就每周一篇,從最基礎的東西講起,下面我還會附上一張基礎的知識框架圖,感興趣的盆友來看一看,跟著我帶你學習密碼學。
?剛開始接觸密碼學的時候,我也是一頭霧水😳,每次看到加密和解密,各種相似又不同的算法在我的大腦里轉圈,我真的是太南了,但是隨著學習的深入,好像慢慢了解了其中奧秘,這件事情就不再那么難了,于是我把自己的學習方法總結出來,和大家共同分享。
?我的所有寫作內容會更多的照顧到初學者和進階的大佬,每一個大綱中的知識點都會從簡單到復雜,不會一上來就講些太難的,也不會只分享一些簡單易學的、沒有營養的內容。大家在看博文的過程中遇到任何問題或者生活工作上遇到問題私聊我,`在這里插入代碼片`or發e-mail至:2507367760@qq.com 或者 longyueshier@163.com 或者 longyueshier@gmail.com 。
密碼學基礎框架數學基礎:
?關于在密碼學中的數學基礎(數學+密碼學=……雖然有點難,我還是得說給你聽,困難的事情簡單的道理),主要講到群、環、域這三個基礎的數學模型,聽起來覺著復雜,但其實用起來簡單,這個時候我們已經不僅僅滿足于對單純的數字進行普通的運算了,它們所描述的就是將數與運算結合起來的一種運算集合。
?舉個簡單例子,我簡單解釋一下什么是群,群就是在一個非空集合上定義一個新的運算,使這個運算存在交換律、結合律、單位元(e·a=a)、逆元(a·a的逆元=e)就可稱之為一個群。環和域和群類似,相比會增多其中的元數個數,以及自定義運算個數。關于代數的內容,推薦大家可以參考楊子胥的《近世代數》,里邊關于密碼學中所要用到的數學知識都有詳細的介紹,看完書可謂是受益匪淺。
基本概念 :
?講完數學基礎,接下來,我對后邊要講的知識的大概框架描述一下下,首先給大家講講在密碼學中的一些基本概念,明文(可不是wang zhe rong yao銘文嗷~ ~)、密文、密鑰等等這些詞匯都是可以通過字面意思理解的,后邊再遇到難以理解的詞匯我在給大家解釋,首先我們要接觸的第一個知識就是通信保密系統,當我們理解了這個系統的整體流程,我們就可以知道,當消息泄露時候,我們從哪里入手排查。
保密通信系統框圖?在框圖中我們可以看出,加解密的過程中都需要使用到密鑰,而密鑰的不同使用方法就將密碼體制分為單鑰體制(加密解密使用同一密鑰)和雙鑰體制(使用不同密鑰進行加密和解密),而對于不同的加密結果,都存在多種密碼攻擊方式,至于這里的具體內容,下次我們來詳細解釋。
流密碼:
?了解完這些基礎,我們就算是正式進軍密碼學了,開門見山的說,一來你遇到的第一個問題就是流密碼,這算是密碼學里第一個難懂的專業詞匯,流密碼主要就是指利用一個密鑰流生成器產生一個密鑰流,然后用這個密鑰流來對明文消息進行加密和解密,所謂同步流密碼和自同步流密碼就是取決于其輸入的明文是否會影響加密器中的記憶元件的存儲狀態。密鑰流的產生依賴于密鑰流生成器,這個東西主要由一個驅動系統和一個非線性系統,兩者相互配合完成任務,目前所用最多的就是利用一個或者多個LFSR構成其驅動部分,這樣看來線性反饋移位寄存器可謂是功不可沒。流密碼的安全性取決于密鑰流的安全性,要求密鑰流序列有好的隨機性,,以使竊聽者對它無法預測。也就是說,即使截獲其中一段,也無法推測后面是什么。如果密鑰流是周期的,要完全做到隨機性是困難的。嚴格地說,這樣的序列不可能做到隨機,只能要求截獲比周期短的一段密鑰流時不會泄露更多信息,這樣的序偽隨機序列。
分組密碼:
?分組密碼與流密碼最大的不同在于,流密碼的加密器中有一個記憶元件,而分組密碼不存在,在許多密碼系統中,分組密碼也是系統安全的一個重要組成部分,用分組密碼易于構造偽隨機數生成器、流密碼、消息認證碼(MAC)和雜湊函數等,還可進而成為消息認證技術、數據完整性機制、實體認證協議以及單鑰數字簽字體制的核心組成部分。本部分主要介紹一下feistel結構,以及利用feistel結構構成的DES算法和AES算法,并且從一名學習者的角度介紹一下其安全性。
公鑰密碼:
?在公鑰密碼體制中,我們首先需要掌握一些簡單的數論知識,例如,模運算,費爾瑪定理,歐拉定理,歐幾里得定理,中國剩余定理等等,這些基礎數論知識在之后的學習中再和大家一一道來,掌握了數論知識以后,我們主要學習公鑰加密體制以及RSA算法,以及基于橢圓曲線的密碼體制,這一部分就稍稍有些難以理解,公鑰密碼體制的概念是在解決單鑰密碼體制中最難解決的兩個問題時提出的,這兩個問題分別是密鑰分配和數字簽字。公鑰密碼算法的最大特點是采用兩個相關密鑰將加密和解密能力分開,一個密鑰是公開密鑰,用于加密;另一個密鑰是秘密密鑰,用于解密。RSA算法是1978年由R.Rivest,A.Shamir和L.Adleman提出的一種用數論構造的、也是迄今為止理論上最為成熟完善的公鑰密碼體制,該體制已得到廣泛的應用。為保證RSA算法的安全性,它的密鑰長度需一再增大,使得它的運算負擔越來越大。相比之下,橢圓曲線密碼體制ECC可用短得多的密鑰獲得同樣的安全性,因此具有廣泛的應用前景。ECC已被IEEE公鑰密碼標準P1363采用。
消息認證與雜湊算法:
?關于消息認證機制呢,簡單來說就是對所接受到的消息進行確認,保證其一定來自于發送方,且消息內容并未被篡改,在認證過程中,需有產生認證符,這一基本功能又作為認證協議的一個組成部分。認證符也就是用于認證消息的數值,主要由消息認證碼MAC(messageauthenticationcode)和雜湊函數(hashfunction)兩個途徑來產生認證符,所以在這個部分我們就要主要講兩者的區別和聯系。在雜湊函數中主要涉及兩種算法,分別是MD系列以及SHA系列,兩者相似又不同,具體詳情我們以后慢慢說。
數字簽名:
?數字簽名的主要目的就是對消息進行簽字,確保其本身的身份,數字簽字由公鑰密碼發展而來,它在網絡安全,包括身份認證、數據完整性、不可否認性以及匿名性等方面有著重要應用。
?以上就是密碼學的基礎框架圖,想必看到這里你也理解了不少東西吧,當然這些都還只是基礎部分,想要學好還需要多下功夫多了解,關于后邊的具體內容呢,我們下回詳解😉
求點贊👍 求關注??
「轉發」是明目張膽的喜歡,「在看」是偷偷摸摸的愛。
總結
- 上一篇: 伟大时刻:小米的命门
- 下一篇: 【MapGIS精品教程】001:MapG