亚洲精品久久久久久第一页-人妻少妇精彩视品一区二区三区-91国产自拍免费视频-免费一级a在线播放视频正片-少妇天天日天天射天天爽-国产大屁股喷水视频在线观看-操美女骚穴抽插性爱视频-亚洲 欧美 中文字幕 丝袜-成人免费无码片在线观看

每天一算法:什么是AES算法 aes是什么意思


每天一算法:什么是AES算法 aes是什么意思

文章插圖
假設(shè)有一個(gè)發(fā)送方在向接收方發(fā)送消息 。如果沒有任何加密算法,接收方發(fā)送的是一個(gè)明文消息:“我是小灰”
如果消息被中間人截獲到,即使中間人無法篡改消息,也可以窺探到消息的內(nèi)容,從而暴露了通信雙方的私密 。
因此我們不再直接傳送明文,而改用對稱加密的方式傳輸密文,畫風(fēng)就變成了下面這樣:
具體工作的步驟如下:
1.發(fā)送方利用密鑰123456,加密明文“我是小灰”,加密結(jié)果為TNYRvx+SNjZwEK+ZXFEcDw== 。
2.發(fā)送方把加密后的內(nèi)容TNYRvx+SNjZwEK+ZXFEcDw==傳輸給接收方 。
3.接收方收到密文TNYRvx+SNjZwEK+ZXFEcDw==,利用密鑰123456還原為明文“我是小灰” 。
1.密鑰
密鑰是AES算法實(shí)現(xiàn)加密和解密的根本 。對稱加密算法之所以對稱,是因?yàn)檫@類算法對明文的加密和解密需要使用同一個(gè)密鑰 。
AES支持三種長度的密鑰:
128位,192位,256位
平時(shí)大家所說的AES128,AES192,AES256,實(shí)際上就是指的AES算法對不同長度密鑰的使用 。
2.填充
要想了解填充的概念,我們先要了解AES的分組加密特性 。
什么是分組加密呢?我們來看看下面這張圖:
AES算法在對明文加密的時(shí)候,并不是把整個(gè)明文一股腦加密成一整段密文,而是把明文拆分成一個(gè)個(gè)獨(dú)立的明文塊,每一個(gè)明文塊長度128bit 。
這些明文塊經(jīng)過AES加密器的復(fù)雜處理,生成一個(gè)個(gè)獨(dú)立的密文塊,這些密文塊拼接在一起,就是最終的AES加密結(jié)果 。
但是這里涉及到一個(gè)問題:
假如一段明文長度是192bit,如果按每128bit一個(gè)明文塊來拆分的話,第二個(gè)明文塊只有64bit,不足128bit 。這時(shí)候怎么辦呢?就需要對明文塊進(jìn)行填充(Padding) 。
NoPadding: 不做任何填充,但是要求明文必須是16字節(jié)的整數(shù)倍 。
PKCS5Padding(默認(rèn)): 如果明文塊少于16個(gè)字節(jié)(128bit),在明文塊末尾補(bǔ)足相應(yīng)數(shù)量的字符,且每個(gè)字節(jié)的值等于缺少的字符數(shù) 。比如明文:{1,2,3,4,5,a,b,c,d,e},缺少6個(gè)字節(jié),則補(bǔ)全為{1,2,3,4,5,a,b,c,d,e,6,6,6,6,6,6} ISO10126Padding: 如果明文塊少于16個(gè)字節(jié)(128bit),在明文塊末尾補(bǔ)足相應(yīng)數(shù)量的字節(jié),最后一個(gè)字符值等于缺少的字符數(shù),其他字符填充隨機(jī)數(shù) 。比如明文:{1,2,3,4,5,a,b,c,d,e},缺少6個(gè)字節(jié),則可能補(bǔ)全為{1,2,3,4,5,a,b,c,d,e,5,c,3,G,$,6}
3.模式
AES的工作模式,體現(xiàn)在把明文塊加密成密文塊的處理過程中 。AES加密算法提供了五種不同的工作模式:
ECB、CBC、CTR、CFB、OFB
模式之間的主題思想是近似的,在處理細(xì)節(jié)上有一些差別 。我們這一期只介紹各個(gè)模式的基本定義 。
ECB模式(默認(rèn)):
電碼本模式 Electronic Codebook Book
CBC模式:
密碼分組鏈接模式 Cipher Block Chaining
CTR模式:
計(jì)算器模式 Counter
CFB模式:
密碼反饋模式 Cipher FeedBack
OFB模式:
輸出反饋模式 Output FeedBack
1. kgen.init傳入的第一個(gè)參數(shù)128決定了密鑰的長度是128bit 。
2. Cipher.getInstance(“AES/CBC/NoPadding”)決定了AES選擇的填充方式是NoPadding,工作模式是CBC模式 。
幾點(diǎn)補(bǔ)充:
1.我們在調(diào)用封裝好的AES算法時(shí),表面上使用的Key并不是真正用于AES加密解密的密鑰,而是用于生成真正密鑰的“種子” 。
2.填充明文時(shí),如果明文長度原本就是16字節(jié)的整數(shù)倍,那么除了NoPadding以外,其他的填充方式都會(huì)填充一組額外的16字節(jié)明文塊 。
以上就是AES的基本概念 。但我們是有追求的程序員,不能知其然不知其所以然 。下面來給大家講一講AES算法的底層原理 。


以上關(guān)于本文的內(nèi)容,僅作參考!溫馨提示:如遇健康、疾病相關(guān)的問題,請您及時(shí)就醫(yī)或請專業(yè)人士給予相關(guān)指導(dǎo)!

「愛刨根生活網(wǎng)」www.malaban59.cn小編還為您精選了以下內(nèi)容,希望對您有所幫助: