點擊上方藍字談思實驗室
獲取更多汽車網絡安全資訊

01
密鑰
密鑰是AES算法 實現加密和解密的根本。對稱加密算法之所以對稱,是因為這類算法對明文的加密和解密需要使用同一個密鑰。
AES支持三種長度的密鑰:
128位,192位,256位
平時大家所說的AES128,AES192,AES256,實際上就是指的AES算法對不同長度密鑰的使用。
02
填充
要想了解填充的概念,我們先要了解AES的分組加密特性。
什么是分組加密 呢?我們來看看下面這張圖:

AES算法在對明文加密的時候,并不是把整個明文一股腦加密成一整段密文,而是把明文拆分成一個個獨立的明文塊,每一個明文塊長度128bit。
這些明文塊經過AES加密器的復雜處理,生成一個個獨立的密文塊,這些密文塊拼接在一起,就是最終的AES加密結果。
但是這里涉及到一個問題:
假如一段明文長度是192bit,如果按每128bit一個明文塊來拆分的話,第二個明文塊只有64bit,不足128bit。這時候怎么辦呢?就需要對明文塊進行填充(Padding)。
NoPadding:
不做任何填充,但是要求明文必須是16字節的整數倍。
PKCS5Padding(默認):
如果明文塊少于16個字節(128bit),在明文塊末尾補足相應數量的字符,且每個字節的值等于缺少的字符數。
比如明文:{1,2,3,4,5,a,b,c,d,e},缺少6個字節,則補全為{1,2,3,4,5,a,b,c,d,e,6,6,6,6,6,6}
模板ISO10126Padding:
如果明文塊少于16個字節(128bit),在明文塊末尾補足相應數量的字節,最后一個字符值等于缺少的字符數,其他字符填充隨機數。
比如明文:{1,2,3,4,5,a,b,c,d,e},缺少6個字節,則可能補全為{1,2,3,4,5,a,b,c,d,e,5,c,3,G,$,6}

03
模式
AES的工作模式,體現在把明文塊加密成密文塊的處理過程中。AES加密算法提供了五種不同的工作模式:
ECB、CBC、CTR、CFB、OFB
模式之間的主題思想是近似的,在處理細節上有一些差別。我們這一期只介紹各個模式的基本定義。
ECB模式(默認):
電碼本模式 Electronic Codebook Book
CBC模式:
密碼分組鏈接模式 Cipher Block Chaining
CTR模式:
計算器模式 Counter
CFB模式:
密碼反饋模式 Cipher FeedBack
OFB模式:
輸出反饋模式 Output FeedBack
具體分成多少輪呢?
初始輪(Initial Round) 1次
普通輪(Rounds) N次
最終輪(Final Round) 1次
AES的Key支持三種長度:AES128,AES192,AES256。Key的長度決定了AES加密的輪數。
除去初始輪,各種Key長度對應的輪數如下:
AES128:10輪
AES192:12輪
AES256:14輪
不同階段的Round 有不同的處理步驟。
初始輪只有一個步驟:
加輪密鑰(AddRoundKey)
普通輪有四個步驟:
字節代替(SubBytes)
行移位(ShiftRows)
列混淆(MixColumns)
加輪密鑰(AddRoundKey)
最終輪有三個步驟:
字節代替(SubBytes)
行移位(ShiftRows)
加輪密鑰(AddRoundKey)
1. 字節替代(SubBytes)

首先需要說明的是,16字節的明文塊在每一個處理步驟中都被排列成4X4的二維數組。
所謂字節替代,就是把明文塊的每一個字節都替代成另外一個字節。替代的依據是什么呢?
依據一個被稱為S盒(Subtitution Box)的16X16大小的二維常量數組。
假設明文塊當中a[2,2] = 5B(一個字節是兩位16進制),那么輸出值b[2,2] = S[5][11]。
2. 行移位(ShiftRows)

這一步很簡單,就像圖中所描述的:
第一行不變
第二行循環左移1個字節
第三行循環左移2個字節
第四行循環左移3個字節
3. 列混淆(MixColumns)

這一步,輸入數組的每一列要和一個名為修補矩陣(fixed matrix)的二維常量數組做矩陣相乘,得到對應的輸出列。
4. 加輪密鑰(AddRoundKey)

這一步是唯一利用到密鑰的一步,128bit的密鑰也同樣被排列成4X4的矩陣。
讓輸入數組的每一個字節a[i,j]與密鑰對應位置的字節k[i,j]異或一次,就生成了輸出值b[i,j]。
需要補充一點,加密的每一輪所用到的密鑰并不是相同的。這里涉及到一個概念:擴展密鑰(KeyExpansions)。
擴展密鑰(KeyExpansions)
AES源代碼中用長度 4 * 4 *(10+1) 字節的數組W來存儲所有輪的密鑰。W{0-15}的值等同于原始密鑰的值,用于為初始輪做處理。
后續每一個元素W[i]都是由W[i-4]和W[i-1]計算而來,直到數組W的所有元素都賦值完成。
W數組當中,W{0-15}用于初始輪的處理,W{16-31}用于第1輪的處理,W{32-47}用于第2輪的處理 …一直到W{160-175}用于最終輪(第10輪)的處理。

模式解析(KeyExpansions)
1.ECB模式
ECB模式(Electronic Codebook Book)是最簡單的工作模式,在該模式下,每一個明文塊的加密都是完全獨立,互不干涉的。

這樣的好處是什么呢?
簡單
有利于并行計算
缺點同樣也很明顯:
相同的明文塊經過加密會變成相同的密文塊,因此安全性較差。
2.CBC模式
CBC模式(Cipher Block Chaining)引入了一個新的概念:初始向量IV(Initialization Vector)。
IV是做什么用的呢?它的作用和MD5的“加鹽”有些類似,目的是防止同樣的明文塊始終加密成同樣的密文塊。

從圖中可以看出,CBC模式在每一個明文塊加密前會讓明文塊和一個值先做異或操作。IV作為初始化變量,參與第一個明文塊的異或,后續的每一個明文塊和它前一個明文塊所加密出的密文塊相異或。
這樣以來,相同的明文塊加密出的密文塊顯然是不一樣的。
CBC模式的好處是什么呢?
安全性更高
壞處也很明顯:
無法并行計算,性能上不如ECB
引入初始化向量IV,增加復雜度。
來源:CSDN@源自1994
https://blog.csdn.net/weixin_40117614/article/details/93018940?spm=1001.2014.3001.5502
談思-汽車出海安全合規(歐洲)
交流群
談思 AutoSec Europe 峰會旨在搭建一個能融匯全球視野與中國實踐、連接技術前沿與落地應用的國際性專業平臺,以助力中國汽車應對在出海過程中面臨的網絡與數據安全合規痛點。從前沿技術研討、合規要點解析到經驗交流,都將通過本平臺為您提供持續支持。社群已超過200人,需邀請加入,如需入群,歡迎添加社群小助手微信taaslabs01。

談思-SDV&AIDV技術出海
交流群
誠邀行業同仁加入談思SDV&AIDV出海技術交流群,聚焦軟件定義汽車、AI定義汽車、下一代EEA、智能座艙、智能駕駛、軟件架構、域控制器開發、芯片技術、軟件工具等核心議題,歡迎大家加群交流探討~~社群已超過200人,需邀請加入,如需入群,歡迎添加社群小助手微信taaslabs01。

end

談思汽車媒體門戶

精品活動推薦



AutoSec系列沙龍

專業社群
部分入群專家來自:
新勢力車企:
特斯拉、理想、極氪、小米、零跑汽車、阿維塔汽車、智己汽車、小鵬、嵐圖汽車、蔚來汽車、吉祥汽車、賽力斯......
外資傳統主流車企代表:
大眾中國、大眾酷翼、奧迪汽車、寶馬、福特、戴姆勒-奔馳、通用、保時捷、沃爾沃、現代汽車、日產汽車、捷豹路虎、斯堪尼亞......
內資傳統主流車企:
吉利汽車、上汽乘用車、長城汽車、上汽大眾、長安汽車、北京汽車、東風汽車、廣汽、比亞迪、一汽集團、一汽解放、東風商用、上汽商用......
全球領先一級供應商:
博世、大陸集團、聯合汽車電子、安波福、采埃孚、科世達、舍弗勒、霍尼韋爾、大疆、日立、哈曼、華為、百度、聯想、聯發科、普瑞均勝、德賽西威、蜂巢轉向、均聯智行、武漢光庭、星紀魅族、中車集團、濰柴集團、地平線、紫光同芯、字節跳動、......
二級供應商(500+以上):
中科數測、ETAS、BlackDuck、NXP、上海軟件中心、Deloitte、奇安信、為辰信安、云馳未來、信長城、澤鹿安全、紐創信安、復旦微電子、天融信、奇虎360、中汽中心、中國汽研、上海汽檢、加特蘭微電子、浙江大學......
人員占比

公司類型占比

文章
關于涉嫌仿冒AutoSec會議品牌的律師聲明
一文帶你了解智能汽車車載網絡通信安全架構
網絡安全:TARA方法、工具與案例
汽車數據安全合規重點分析
淺析汽車芯片信息安全之安全啟動
域集中式架構的汽車車載通信安全方案探究
系統安全架構之車輛網絡安全架構
車聯網中的隱私保護問題
智能網聯汽車網絡安全技術研究
AUTOSAR 信息安全框架和關鍵技術分析
AUTOSAR 信息安全機制有哪些?
信息安全的底層機制
汽車網絡安全
Autosar硬件安全模塊HSM的使用
首發!小米雷軍兩會上就汽車數據安全問題建言:關于構建完善汽車數據安全管理體系的建議