摘要:的加密算法由于之前看過是由實現(xiàn)的。基于協(xié)議使用作為密鑰交換算法加密算法密鑰與初始向量的長度為算法總結(jié)端密鑰算法套件端密鑰算法套件,則,,將被優(yōu)先返回的使用問題問題第一次使用的時候,不顯示接口。
前言
因為排版不理想,所以直接用兩個文檔承載,有什么不便,還請擔待。
killBase -- 密碼學(一) 傳送門
1. **對輸入的密鑰進行變換**。 用戶的64bit密鑰,其中第8, 16, 24, 32, 40, 48, 56, 64位是校驗位, 使得每個密鑰都有奇數(shù)個1。所以密鑰事實上是56位。對這56位密鑰進行如下表的換位。 57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18, 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36, 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22, 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4, 表的意思是第57位移到第1位,第49位移到第2位,...... 以此類推。變換后得到56bit數(shù)據(jù),將它分成兩部分,C[0][28], D[0][28]。 2. **計算16個子密鑰**,計算方法C[i][28] D[i][28]為對前一個C[i-1][28], D[i-1][28]做循環(huán)左移操作。16次的左移位數(shù)如下表: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 (第i次) 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1 (左移位數(shù)) 3. **串聯(lián)**計算出來的C[i][28] D[i][28] 得到56位,然后對它進行如下變換得到48位子密鑰K[i][48] 14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10, 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2, 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32, 表的意思是第14位移到第1位,第17位移到第2位,以此類推。在此過程中,發(fā)現(xiàn)第9,18,22,25, 35,38,43,54位丟棄。 4. 對64bit的明文輸入進行換位變換。換位表如下: 58, 50, 12, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4, 62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8, 57, 49, 41, 33, 25, 17, 9, 1, 59, 51, 43, 35, 27, 19, 11, 3, 61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7 表的意思就是第一次變換時,第58位移到第1位,第50位移到第2位,...... 依此類推。得到64位數(shù)據(jù),將這數(shù)據(jù)前后分成兩塊L[0][32], R[0][32]。 5. 加密過程,對R[i][32]進行擴展變換成48位數(shù),方法如下, 記為E(R[i][32]) 32, 1, 2, 3, 4, 5, 4, 5, 6, 7, 8, 9, 8, 9, 10, 11, 12, 13, 12, 13, 14, 15, 16, 17, 16, 17, 18, 19, 20, 21, 20, 21, 22, 23, 24, 25, 24, 25, 26, 27, 28, 29, 28, 29, 30, 31, 32, 1, 6. 將E(R[i][32])與K[i][48]作異或運算,得到48位數(shù),將48位數(shù)順序分成8份,6位一份,B[8][6]。 7. 使用S[i]替換B[i][6]。過程如下: 取出B[i][6]的第1位和第6位連成一個2位數(shù)m, m就是S[i]中對應(yīng)的行數(shù)(0-3),取出B[i][6]的第2到第5位連成一個4位數(shù)n(0-15),n就是S[i]中對應(yīng)的列數(shù),用S[i][m][n]代替B[i][6]。S是4行16列的對應(yīng)表,里面是4位的數(shù),一共有8個S,定義如下: S[1]: 14,4,13,1,2,15,11,8,3,10,6,12,5,9,0,7, 0,15,7,4,14,2,13,1,10,6,12,11,9,5,3,8, 4,1,14,8,13,6,2,11,15,12,9,7,3,10,5,0, 15,12,8,2,4,9,1,7,5,11,3,14,10,0,6,13, S[2]: 15,1,8,14,6,11,3,4,9,7,2,13,12,0,5,10, 3,13,4,7,15,2,8,14,12,0,1,10,6,9,11,5, 0,14,7,11,10,4,13,1,5,8,12,6,9,3,2,15, 13,8,10,1,3,15,4,2,11,6,7,12,0,5,14,9, S[3]: 10,0,9,14,6,3,15,5,1,13,12,7,11,4,2,8, 13,7,0,9,3,4,6,10,2,8,5,14,12,11,15,1, 13,6,4,9,8,15,3,0,11,1,2,12,5,10,14,7, 1,10,13,0,6,9,8,7,4,15,14,3,11,5,2,12, S[4]: 7,13,14,3,0,6,9,10,1,2,8,5,11,12,4,15, 13,8,11,5,6,15,0,3,4,7,2,12,1,10,14,9, 10,6,9,0,12,11,7,13,15,1,3,14,5,2,8,4, 3,15,0,6,10,1,13,8,9,4,5,11,12,7,2,14, S[5]: 2,12,4,1,7,10,11,6,8,5,3,15,13,0,14,9, 14,11,2,12,4,7,13,1,5,0,15,10,3,9,8,6, 4,2,1,11,10,13,7,8,15,9,12,5,6,3,0,14, 11,8,12,7,1,14,2,13,6,15,0,9,10,4,5,3, S[6]: 12,1,10,15,9,2,6,8,0,13,3,4,14,7,5,11, 10,15,4,2,7,12,9,5,6,1,13,14,0,11,3,8, 9,14,15,5,2,8,12,3,7,0,4,10,1,13,11,6, 4,3,2,12,9,5,15,10,11,14,1,7,6,0,8,13, S[7]: 4,11,2,14,15,0,8,13,3,12,9,7,5,10,6,1, 13,0,11,7,4,9,1,10,14,3,5,12,2,15,8,6, 1,4,11,13,12,3,7,14,10,15,6,8,0,5,9,2, 6,11,13,8,1,4,10,7,9,5,0,15,14,2,3,12, S[8]: 13,2,8,4,6,15,11,1,10,9,3,14,5,0,12,7, 1,15,13,8,10,3,7,4,12,5,6,11,0,14,9,2, 7,11,4,1,9,12,14,2,0,6,10,13,15,3,5,8, 2,1,14,7,4,10,8,13,15,12,9,0,3,5,6,11, 8. 將從B[i][6]經(jīng)過S得到的8個4位數(shù)連起來得到32位數(shù)。對這個數(shù)進行如下變換: 16,7,20,21,29,12,28,17, 1,15,23,26, 5,18,31,10, 2,8,24,14,32,27, 3, 9,19,13,30, 6,22,11, 4,25, 得到的結(jié)果與L[i][32]作異或運算,把結(jié)果賦給R[i][32]。 9. 把R[i-1][32]的值賦給L[i],從5開始循環(huán)。直到K[16][48]結(jié)束。 10. 將最后的L,R合并成64位,然后進行如下轉(zhuǎn)化得到最后的結(jié)果。這是對第4步的一個逆變化。 40, 8, 48, 16, 56, 24, 64, 32, 39, 7, 47, 15, 55, 23, 63, 31, 38, 6, 46, 14, 54, 22, 62, 30, 37, 5, 45, 13, 53, 21, 61, 29, 36, 4, 44, 12, 52, 20, 60, 28, 35, 3, 43, 11, 51, 19, 59, 27, 34, 2, 42, 10, 50, 18, 58, 26, 33, 1, 41, 9, 49, 17, 57, 252. https 的加密算法
由于之前看過 https 是 由 secure socket layer 實現(xiàn)的。 也是通過 公鑰私鑰 保證其安全性,所以在學習這篇文章的時候,就想 https 是由哪種 加密算法 做為其 底層實現(xiàn)的呢。 因此,就有了下面這部分。
關(guān)于 https 與 http 的區(qū)別 請看我的這篇博客,不再贅述。網(wǎng)絡(luò)基礎(chǔ)知識
原理:
瀏覽器把自身支持的一系列Cipher Suite(密鑰算法套件,后文簡稱Cipher)[C1,C2,C3, …]發(fā)給服務(wù)器;
服務(wù)器接收到瀏覽器的所有Cipher后,與自己支持的套件作對比,如果找到雙方都支持的Cipher,則告知瀏覽器;
瀏覽器與服務(wù)器使用匹配的Cipher進行后續(xù)通信。如果服務(wù)器沒有找到匹配的算法,瀏覽器(以 Chrome 56為例)將給出錯誤信息:
下面講一下如何分析。
準備: 通過可以抓取網(wǎng)絡(luò)包的工具,這里通過 Wireshark 分析。關(guān)于wireshark 的介紹請點擊這里.查看瀏覽器發(fā)送給服務(wù)器的 Ciper服務(wù)器的 Ciper
流程:
瀏覽器首先發(fā)起握手協(xié)議, 一個"Client Hello"消息,如下圖,按照Protocol協(xié)議順序排序,然后,找到Client Hello,選中,依次查找 "Secure Sockets Layer" -> TLSv1.2 Record Layer -> Handshake protocal ->Ciper Suites.
可以看到, Cipher有很多。總共16,第一個是Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)。
如果按照順序繼續(xù)尋找第一個 Info 為"Sever Hello" 的報文,可以找到相應(yīng)的Cipher Suite: TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b) 。.
Cipher介紹:
密鑰交換算法,用于決定客戶端與服務(wù)器之間在握手的過程中如何認證,用到的算法包括RSA,Diffie-Hellman,ECDH,PSK等
加密算法,用于加密消息流,該名稱后通常會帶有兩個數(shù)字,分別表示密鑰的長度和初始向量的長度,比如DES 56/56, RC2 56/128, RC4 128/128, AES 128/128, AES 256/256
報文認證信息碼(MAC)算法,用于創(chuàng)建報文摘要,確保消息的完整性(沒有被篡改),算法包括MD5,SHA等。
PRF(偽隨機數(shù)函數(shù)),用于生成“master secret”。
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b):
基于TLS協(xié)議
使用 ECDHE,ECDSA作為密鑰交換算法
加密算法 AES(密鑰與初始向量的長度為128)
MAC 算法 SHA
總結(jié):
Client端密鑰算法套件[C1,C2,C3],Server端密鑰算法套件[C4,C2,C1,C3],
則,IIS[(Internet Infomation Services)](),C2將被優(yōu)先返回
問題:第一次使用 wireshark 的時候,不顯示接口。原因是。。。
剛開始使用 在windows 上需要 winpacp 并且開啟 npf 服務(wù)。
注: 如果 沒有安裝 winpacp ,想直接 通過 net start npf 開啟服務(wù),將會提示。 發(fā)生系統(tǒng)錯誤2
winpacp 安裝 。。。
這里是下載網(wǎng)站
直接安裝即可。
開啟 npf 服務(wù)
打開 cmd ,輸入 net start npf ,提示:服務(wù)已經(jīng)啟動。
進入界面,選擇相應(yīng)的網(wǎng)卡。
這里,可以通過 網(wǎng)絡(luò)連接 看出來。
所以,我的是無線網(wǎng)絡(luò)連接。
最終界面
WireShark 主要分為這幾個界面
Display Filter(顯示過濾器), 用于過濾
Packet List Pane(封包列表), 顯示捕獲到的封包, 有源地址和目標地址,端口號。 顏色不同,代表
Packet Details Pane(封包詳細信息), 顯示封包中的字段
Dissector Pane(16進制數(shù)據(jù))
Miscellanous(地址欄,雜項)
結(jié)語發(fā)現(xiàn)排版,好像是有問題的,閱讀效果不理想,可以去我的個人博客中。
都看到這里了,點個關(guān)注,點波贊再走,QAQ。
你的小手輕點,是我最大的動力哦。
參考一只想當程序員的1米88處女座大可愛如此說。
DES 加密算法解析
分組加密的四種模式
阮一峰--RSA算法原理
java中RSA加解密的實現(xiàn)
關(guān)于RSA算法密鑰長度/密文長度/明文長度
https背后的加密算法
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/67990.html
摘要:系列密碼學二傳送門密碼學一基礎(chǔ)密碼學算法分類消息編碼消息摘要類,類,對稱密碼非對稱密碼數(shù)字簽名五元組明文原始信息。非對稱密碼包提供給,,等非對稱加密算法。對稱加密算法在分布式網(wǎng)絡(luò)系統(tǒng)上使用較為困難,主要是因為密鑰管理困難,使用成本較高。 前言 最近一場面試,面試官問了我 對稱加密與非對稱加密的問題,雖然曾經(jīng)看過一些內(nèi)容,但是沒有系統(tǒng)的整理,所以當被問的時候,腦子里一片空白,沒有回答上...
摘要:框架具有輕便,開源的優(yōu)點,所以本譯見構(gòu)建用戶管理微服務(wù)五使用令牌和來實現(xiàn)身份驗證往期譯見系列文章在賬號分享中持續(xù)連載,敬請查看在往期譯見系列的文章中,我們已經(jīng)建立了業(yè)務(wù)邏輯數(shù)據(jù)訪問層和前端控制器但是忽略了對身份進行驗證。 重拾后端之Spring Boot(四):使用JWT和Spring Security保護REST API 重拾后端之Spring Boot(一):REST API的搭建...
摘要:二基本服務(wù)簡單使用語音文本轉(zhuǎn)換假定已經(jīng)完成關(guān)于的注冊和服務(wù)的創(chuàng)建。但是協(xié)議是一種非持久的單向的網(wǎng)絡(luò)協(xié)議。而彌補了這一缺點,它是一種全雙工通信協(xié)議,在通過建立握手后,單獨建立一條通道用以服務(wù)器和瀏覽器之間的信息傳送。 這是這個系列的第二篇文章,主要基于上一篇文章中提到服務(wù)進行一些基礎(chǔ)的功能實現(xiàn)。 二. 基本服務(wù)簡單使用 2.1 speech to text(語音文本轉(zhuǎn)換) 假定已經(jīng)完成關(guān)...
摘要:我們將登錄按鈕上綁上事件,點擊登錄之后向服務(wù)端提交賬號和密碼進行驗證。所以前端和后端權(quán)限的劃分是不太一致。側(cè)邊欄最后一個涉及到權(quán)限的地方就是側(cè)邊欄,不過在前 完整項目地址:vue-element-admin 系列文章: 手摸手,帶你用vue擼后臺 系列一(基礎(chǔ)篇) 手摸手,帶你用vue擼后臺 系列二(登錄權(quán)限篇) 手摸手,帶你用vue擼后臺 系列三 (實戰(zhàn)篇) 手摸手,帶你用vu...
閱讀 2248·2021-11-18 10:02
閱讀 3499·2021-11-15 11:36
閱讀 1124·2019-08-30 14:03
閱讀 741·2019-08-30 11:08
閱讀 2772·2019-08-29 13:20
閱讀 3295·2019-08-29 12:34
閱讀 1382·2019-08-28 18:30
閱讀 1648·2019-08-26 13:34