2024.12.13 經(jīng)驗分享會
2024年12月13日下午,上海實邦電子科技有限公司開展了一次經(jīng)驗交流會,由瞿工和曾工一起分享了他們在工作中積累的一些經(jīng)驗。
首先是瞿工分享了----通訊加密知識點
一,分享概述
1,對稱加密理解
2,非對稱加密理解
3,信息摘要理解
4,數(shù)字簽名和數(shù)字證書理解
5,AES加密使用詳情
6,Baes64編碼
二,加密簡述
1,什么是加密
加密就是對明文數(shù)據(jù)按某種特殊算法進行處理,使其成為不可讀的一段代碼,通常稱為“密文“, 密文通過”密鑰“解密后還原出原來的明文,通過這樣的途徑可以達到保護數(shù)據(jù)不被非法人竊取、閱讀的目的。
2,常見的幾種加密方式
· AES 對稱加密算法。
· RSA 非對稱加密算法。
· MD5 消息摘要算法。
3,對稱加密算法
對稱加密是指加密和解密是使用同一相同的密鑰。
4,非對稱加密算法
非對稱加密是指加密和解密使用不同的密鑰進行加密和解密。非對稱加密會同時生成一對密鑰,公鑰和私鑰。
一般情況下公鑰進行公開給發(fā)送方加密數(shù)據(jù),私鑰不公開將收到的數(shù)據(jù)進行解密。私鑰加密公鑰解密一般用于簽名和驗簽。
5,信息摘要(MD5)
信息摘要算法(例如:MD5)是一種散列函數(shù),用以提供消息的完整性保護,MD5就是一種常用的摘要算法(或者指紋算法)。
主要特點是具有壓縮性:任意長度的數(shù)據(jù)算出的MD5值長度都是固定的。
容易計算:從原數(shù)據(jù)計算MD5值很容易,不吃算力。
抗修改性:對原數(shù)據(jù)有任何改動,哪怕只修改一個字節(jié),所得到的值都有很大區(qū)別。
結(jié)果不可逆:從結(jié)果無法反推出原數(shù)據(jù)。
三,AES加密詳解
高級加密標準(Advanced Encryption Standard: AES)是美國國家標準與技術(shù)研究院(NIST)在2001年建立了電子數(shù)據(jù)的加密規(guī)范。其是對稱加解密算法的最經(jīng)典算法之一,它是一種分組加密標準,每個加密塊大小為128位,允許的密鑰長度為128、192和256位
1,AES加密模式
ECB(Electronic Codebook,電子密碼本)
之所以使用分組密碼模式是因為分組密碼只能處理定長的數(shù)據(jù),如AES處理128bit,那么將明文切分成若干個128bit,分別加密。這種模式就是ECB模式,實際上有很明顯的弱點,現(xiàn)在已經(jīng)不被使用。
ECB模式是最簡單的一種,它有很嚴重的問題,就是相同的明文會得到同樣的密文。因為每個分組加密方式和密鑰都相同,若分組明文相同,加密后密文也相同。
CBC(Cipher Block Chaining,串行密鑰傳輸)模式
CBC模式由IBM發(fā)明與1976年,在CBC模式中,每個平文塊先與前一個密文塊進行異或后,再進行加密。在這種方法中,每個密文塊都依賴于它前面的所有密文塊。同時,為了保證每條消息的唯一性,在第一個塊中需要使用初始化向量。
CTR(Counter,計數(shù)器)模式
通過使用計數(shù)器生成密鑰流,將密鑰流與明文進行異或操作得到密文。
CTR模式與CBC模式非常相似,但是它使用了不同的密鑰分配方法。在CTR模式中,每個數(shù)據(jù)塊都由一個隨機數(shù)生成器產(chǎn)生,該隨機數(shù)生成器用于確定數(shù)據(jù)的索引位置。這使得CTR模式非常適合于流式數(shù)據(jù)傳輸,例如視頻和音頻流媒體。CTR模式也非???,因為它只需要處理每個數(shù)據(jù)塊的中間結(jié)果,而不需要像CBC模式那樣處理整個數(shù)據(jù)塊。
CFB(可逆計數(shù)器)模式
CFB模式類似于CTR模式,但是它使用的是可變長度的密鑰。在CFB模式中,每個數(shù)據(jù)塊都有一個偏移量,這個偏移量是根據(jù)密鑰計算出來的。這使得CFB模式非常適合于多通道應用程序,例如網(wǎng)絡路由表。然而,由于密鑰的長度可變,所以CFB模式不如CTR模式快速
2,填充模式
填充算法用于填充輸入數(shù)據(jù)以匹配AES模式的要求。下面是一些常用的填充算法及其優(yōu)缺點:
(1)NoPadding
NoPadding是一種不使用填充算法的加密模式。不做任何填充,但是要求明文必須是16字節(jié)的整數(shù)倍。這意味著輸入數(shù)據(jù)將被直接編碼為字節(jié)序列,而不會受到填充的影響。雖然NoPadding模式非常安全,但它會導致填充算法無法正確地處理數(shù)據(jù)。
(2)ZerosPadding
ZerosPadding是一種簡單的填充算法,它將輸入數(shù)據(jù)的最后一個字節(jié)替換為0。這種填充方式適用于所有AES加密模式,包括ECB、CBC和CTR模式。缺點是填充后的字節(jié)數(shù)量可能超過原始輸入數(shù)據(jù)的大小。
(3)PKCS5padding(默認)
如果明文塊少于16個字節(jié)(128bit),在明文塊末尾補足相應數(shù)量的字符,且每個字節(jié)的值等于缺少的字符數(shù)。
比如明文:{1,2,3,4,5,a,b,c,d,e},缺少6個字節(jié),則補全為{1,2,3,4,5,a,b,c,d,e,6,6,6,6,6,6}。
PKCS5padding是一種常見的填充算法,用于填充數(shù)據(jù)以符合AES模式的要求。這種填充方式使用一個固定長度的填充字節(jié)序列,以確保輸入數(shù)據(jù)被完全填充。PKCS#5 padding的優(yōu)點是它可以適應各種輸入數(shù)據(jù)的大小,但缺點是填充過程可能很慢。
PKCS7padding
PKCS7padding也是一種填充算法,它使用一個固定長度的填充字節(jié)序列來填充數(shù)據(jù)。這種填充方式的優(yōu)點是可以適應各種輸入數(shù)據(jù)的大小,并且填充過程相對較快。但是,它與PKCS#5 padding一樣,可能需要較長的填充時間。
ISO10126Padding
如果明文塊少于16個字節(jié)(128bit),在明文塊末尾補足相應數(shù)量的字節(jié),最后一個字符值等于缺少的字符數(shù),其他字符填充隨機數(shù)。
比如明文:{1,2,3,4,5,a,b,c,d,e},缺少6個字節(jié),則可能補全為{1,2,3,4,5,a,b,c,d,e,5,c,3,G,$,6}
四,Base64
1,Base簡述
目前Base64已經(jīng)成為網(wǎng)絡上常見的傳輸8Bit字節(jié)代碼的編碼方式之一。網(wǎng)絡傳輸時一般都需要使用Base64對明文進行轉(zhuǎn)碼,然后再進行簽名或加密,之后再進行(或再次Base64)傳輸。
在參數(shù)傳輸?shù)倪^程中經(jīng)常遇到的一種情況:使用全英文的沒問題,但一旦涉及到中文就會出現(xiàn)亂碼情況。與此類似,網(wǎng)絡上傳輸?shù)淖址⒉蝗强纱蛴〉淖址热缍M制文件、圖片等。Base64的出現(xiàn)就是為了解決此問題,它是基于64個可打印的字符來表示二進制的數(shù)據(jù)的一種方法。
曾工介紹了 CAN與W5500網(wǎng)絡通訊
CAN總線通訊(ISO 11898 )
CAN通訊是異步通訊,半雙工,差分信號。沒有時鐘線,無法同時發(fā)送與接收,在同一時刻,只能有一個節(jié)點發(fā)送數(shù)據(jù),其余節(jié)點都只能接收數(shù)據(jù)。由CAN_HIGH與 CAN_LOW兩條差分信號線組成,差分信號能有效抑制電磁干擾(EMI),具有很強的抗干擾能力。時序定位準確。
總線兩端必須連接終端電阻才可以正常工作,終端電阻應該與通訊電纜的阻抗相同,典型值為120歐姆。其作用是匹配總線阻抗,提高數(shù)據(jù)通信的抗干擾性及可靠性
閉環(huán)總線網(wǎng)絡
特點就是高速短距離,閉環(huán)最高速度可達 5kbps-1Mbps,最長距離40m
開環(huán)總線網(wǎng)絡
特點就是傳輸距離遠,開環(huán)最高速度125Kbps,最遠距離1km。如果是發(fā)送數(shù)據(jù):控制器發(fā)送一個信號(0或1),收發(fā)器將這個信號變成差分信號傳送到總線中。
如果是接收數(shù)據(jù):收發(fā)器將差分信號轉(zhuǎn)化為0或1的二進制編碼
總線網(wǎng)絡的終端電阻
在總線線纜的末端,阻抗的急劇變化會導致信號邊沿能量反射,從而在總線信號上產(chǎn)生振鈴現(xiàn)象。如果振鈴幅度過大,將對整個總線的通信質(zhì)量造成影響。通過在電纜末端增加一個與線纜特征阻抗相匹配的終端電阻,可以吸收這部分能量,避免振鈴的產(chǎn)生
(1)提高抗干擾能力:終端電阻能夠加速總線的放電過程,讓寄生電容的能量更快走掉,使總線迅速進入隱性狀態(tài),從而增強系統(tǒng)的抗干擾性能
(2)提升信號質(zhì)量:通過消除阻抗不連續(xù)和不匹配問題,讓反射能量降低,終端電阻有助于提升整個總線的信號質(zhì)量。
|
總線差分邏輯
|
CAN總線上的數(shù)據(jù)采用兩種互補的邏輯值,即顯性和隱性兩種狀態(tài),顯性代表邏輯0,顯性電平指的是CANH和CANL之間的電壓差為 1.5V 到 3V,隱性代表邏輯1,隱性電平指的是CANH和CANL之間的電壓差為 -0.5V 到 0.05V。
CAN控制器輸出輸出邏輯電平后,由外部CAN收發(fā)器轉(zhuǎn)換為適合CAN總線的差分信號。
- 上一篇: 電路圖解讀之濾波電路詳解 2024/12/24
- 下一篇:RS485 CAN SPI IIC UART RS232這些 2024/12/6