《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 模擬設(shè)計(jì) > 解決方案 > 用于ADF7023和ADF7023-J的AES加密與解密

用于ADF7023和ADF7023-J的AES加密與解密

2018-04-25
作者:Stephen Hinchy; Kalim Khan
關(guān)鍵詞: ADI AES

  本文說明ADF7023和ADF7023-J收發(fā)器可用的高級(jí)加密標(biāo)準(zhǔn)(AES)固件模塊(在下文中,提到ADF7023的內(nèi)容也適用于ADF7023-J)。 可下載的AES固件模塊支持密鑰大小為128位、192位和256位的128位塊加密和解密。 它支持兩種模式:電碼本(ECB)模式和密碼塊鏈接(CBC)模式1。

1.png

  圖1. ECB模式

  ECB模式利用一個(gè)密鑰逐塊地加密和解密128位數(shù)據(jù),如圖1所示。 CBC模式1則是先做一次加法運(yùn)算(通過模2算法,用戶提供的128位初始化向量)再加密, 所得的密文用作下一個(gè)塊的初始化向量,依此類推,如圖2所示。

  解密過程正好相反。 固件利用片內(nèi)硬件加速模塊來增大吞吐量,并將AES處理的延遲時(shí)間降至最短。

  該固件模塊名為rom_ram_7023_2_2_RS_AES.dat,包含里德-所羅門(RS)前向糾錯(cuò)和AES加密,可從www.analog.com/firmwaremodules-adf7023下載。

2.png

  圖2. CBC模式1

  命令和數(shù)據(jù)包隨機(jī)存取存儲(chǔ)器寄存器位置

  表1. 需在AES加密或解密之前進(jìn)行初始化的寄存器位置

3.jpg

  1這些寄存器定義針對(duì)該固件模塊,不適用于ADF7023的正常操作。

  AES配置變量、密鑰和數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)包隨機(jī)存取存儲(chǔ)器(RAM)中。

  表2中列出了執(zhí)行AES加密、生成逆密鑰或執(zhí)行AES解密所需的命令。 有關(guān)AES加密和解密步驟的更多信息,參見“AES步驟”部分。

  由于使用指針、不同密鑰大小和兩種不同模式,ADF7023上的AES實(shí)現(xiàn)是高度可配置的。 圖3顯示了一個(gè)配置示例。

  表2. AES命令

4.jpg

5.png

  圖3. AES操作的數(shù)據(jù)包RAM存儲(chǔ)器分配示例

   AES步驟

  向ADF7023寫入AES固件模塊

  使用AES固件模塊之前,用戶必須將其寫入ADF7023的程序RAM中。 下列步驟詳細(xì)解釋了如何向程序RAM寫入AES固件模塊:

  1.確保ADF7023處于PHY_OFF狀態(tài)。

  2.發(fā)出CMD_RAM_LOAD_INIT命令(地址0xBF)。

  3.使用串行外設(shè)接口(SPI)存儲(chǔ)器塊寫入命令(0x1E00[固件模塊])向程序RAM寫入模塊;有關(guān)塊寫入的更多信息,請(qǐng)參見ADF7023數(shù)據(jù)手冊(cè)。

  4.發(fā)出CMD_RAM_LOAD_DONE命令(地址0xC7)。

  固件模塊現(xiàn)已存儲(chǔ)到程序RAM中。

  AES加密步驟

  下列步驟詳細(xì)說明了如何執(zhí)行AES加密:

  1.將AES工作空間的起始地址寫入VAR_W_PTR。

  2.寫入VAR_KEYSIZE以設(shè)置密鑰大小。

  3.寫入VAR_AES_MODE以選擇ECB模式或CBC模式1。

  4.若使用CBC模式1(若使用ECB模式則跳過此步),

  a.將加密初始化向量的起始地址寫入VAR_ECV_PTR。

  b.將初始化向量寫入VAR_ECV_PTR指定的位置。

  5.將密鑰的地址寫入VAR_WFOR_PTR。

  6.將密鑰寫入VAR_WFOR_PTR指定的位置。

  7.將要加密的16字節(jié)塊數(shù)寫入VAR_NUM_BLOCKS。

  8.將要加密的數(shù)據(jù)地址寫入VAR_C_PTR。

  9.將要加密的數(shù)據(jù)寫入VAR_C_PTR指定的位置。

  10.發(fā)出CMD_AES_ENCRYPT (0xD0)。 用加密后的數(shù)據(jù)覆蓋要加密的數(shù)據(jù)。

  11.等待命令完成。

  AES加密示例

  在下面的AES加密示例中,將SPI命令寫入ADF7023:

  1.寫入0x18112A。 VAR_W_PTR設(shè)置為0x2A。 算法的32字節(jié)工作空間從地址0x02A開始。

  2.寫入0x18140C。 通過VAR_KEYSIZE選擇128位的密鑰。

  3.寫入0x181600。 通過VAR_AES_MODE選擇ECB模式。

  4.不使用CBC模式1,因此跳過第4步。

  5.寫入0x18136A。 VAR_WFOR_PTR設(shè)置為0x6A。 密鑰從地址0x06A開始。

  6.將密鑰寫入從地址0x06A開始的數(shù)據(jù)包RAM。

  7.寫入0x180101。 VAR_NUM_BLOCKS設(shè)置為0x01。 加密一個(gè)16字節(jié)塊。

  8.寫入0x18108A。 VAR_C_PTR設(shè)置為0x8A。 要加密的數(shù)據(jù)從地址0x08A開始。

  9.將要加密的數(shù)據(jù)寫入從地址0x08A開始的數(shù)據(jù)包RAM。

  10.寫入0xD0。 發(fā)出CMD_AES_ENCRYPT。

  11.等待命令完成。

  AES解密步驟

  下列步驟詳細(xì)說明了如何執(zhí)行AES解密:

  1.將AES工作空間的起始地址寫入VAR_W_PTR。

  2.寫入VAR_KEYSIZE以設(shè)置密鑰大小。

  3.寫入VAR_AES_MODE以選擇ECB模式或CBC模式1。

  4.將密鑰的地址寫入VAR_WFOR_PTR。

  5.將密鑰寫入VAR_WFOR_PTR指定的位置。

  6.將逆密鑰的地址寫入VAR_WINV_PTR。

  7.若使用CBC模式1(若使用ECB模式則跳過此步),

  a.將解密初始化向量的地址寫入VAR_DCV_PTR。

  b.將初始化向量寫入VAR_DCV_PTR指定的位置。

  c.將解密需要的保留存儲(chǔ)地址寫入VAR_CIPHERBUF_PTR。

  8.發(fā)出CMD_AES_DECRYPT_INIT (0xD1)。 此命令生成并保存逆密鑰。

  9.等待命令完成。

  10.將要解密的16字節(jié)塊數(shù)寫入VAR_NUM_BLOCKS。

  11.將要解密的數(shù)據(jù)地址寫入VAR_C_PTR。

  12.將要解密的數(shù)據(jù)寫入VAR_C_PTR指定的位置。

  13.發(fā)出CMD_AES_DECRYPT (0xD2)。 用解密后的數(shù)據(jù)覆蓋要解密的數(shù)據(jù)。

  14.等待命令完成。

  AES解密示例

  在下面的AES解密示例中,將SPI命令寫入ADF7023:

  1.寫入0x18112A。 VAR_W_PTR設(shè)置為0x2A。 算法的32字節(jié)工作空間從地址0x02A開始。

  2.寫入0x18140C。 通過VAR_KEYSIZE選擇128位的密鑰。

  3.寫入0x181600。 通過VAR_AES_MODE選擇ECB模式。

  4.寫入0x18136A。 VAR_WFOR_PTR設(shè)置為0x6A。 密鑰從地址0x06A開始。

  5.將密鑰寫入從地址0x06A開始的數(shù)據(jù)包RAM。

  6.寫入0x18124A。 VAR_WINV_PTR設(shè)置為0x4A。 逆密鑰從地址0x04A開始。

  7.不使用CBC模式1,因此跳過第7步。

  8.寫入0xD1。 發(fā)出CMD_AES_DECRYPT_INIT。 此命令生成并保存逆密鑰,從地址0x04A開始。

  9.等待命令完成。

  10.寫入0x180101。 VAR_NUM_BLOCKS設(shè)置為0x01。 解密一個(gè)16字節(jié)塊。

  11.寫入0x18108A。 VAR_C_PTR設(shè)置為0x8A。 要解密的數(shù)據(jù)從地址0x08A開始。

  12.將要解密的數(shù)據(jù)寫入從地址0x08A開始的數(shù)據(jù)包RAM。

  13.寫入0xD2。 發(fā)出CMD_AES_DECRYPT。

  14.等待命令完成。

  確定AES命令完成的時(shí)間

  使用CMD_FINISHED中斷來確定CMD_AES_ENCRYPT、CMD_AES_DECRYPT_INIT和CMD_AES_DECRYPT命令何時(shí)完成。 要使能該中斷,請(qǐng)置位INTERRUPT_MASK_1寄存器(地址0x101)的位0 (CMD_FINISHED)。 置位該屏蔽位后,ADF7023的中斷引腳(IRQ_GP3)將在完成任何命令后置位。 向INTERRUPT_SOURCE_1(地址0x337)的位0寫入邏輯1可清除中斷。 有關(guān)中斷產(chǎn)生的更多信息參見ADF7023數(shù)據(jù)手冊(cè)。

  AES加密和解密時(shí)間

  典型AES執(zhí)行時(shí)間如表3所示。

  表3. AES初始化、加密和解密時(shí)間

6.jpg

  


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲电影欧美电影有声小说| 一区二区三区精品视频| 欧美日韩视频免费播放| 麻豆精品精华液| 久久精品成人一区二区三区蜜臀| 亚洲欧美视频在线| 亚洲香蕉伊综合在人在线视看| 亚洲精品黄网在线观看| 亚洲黄色视屏| 91久久国产综合久久91精品网站| 亚洲国产高清一区二区三区| 亚洲第一成人在线| 久久精品国产在热久久| 亚洲国产精品激情在线观看| 亚洲欧美资源在线| 亚洲欧美春色| 亚洲欧美成人综合| 99国内精品久久久久久久软件| 欧美成人a∨高清免费观看| 久久久人成影片一区二区三区观看| 欧美诱惑福利视频| 久久国产精品色婷婷| 久久www免费人成看片高清| 久久国产一区二区三区| 久久激情网站| 久久综合色一综合色88| 蜜臀a∨国产成人精品| 免费成人高清视频| 欧美激情综合五月色丁香小说| 欧美激情2020午夜免费观看| 欧美日韩高清在线| 国产精品久久久对白| 国产精品试看| 国产亚洲一区二区在线观看| 禁断一区二区三区在线| 亚洲黄色成人网| 99亚洲一区二区| 亚洲永久免费观看| 久久国产天堂福利天堂| 亚洲欧洲综合另类| 亚洲图片欧洲图片av| 午夜精品久久久99热福利| 欧美在线视频全部完| 亚洲影视综合| 欧美一区二区日韩| 亚洲高清一区二区三区| 亚洲精品欧美| 亚洲免费综合| 久久亚洲国产精品一区二区| 国产精品久久久久久久久免费| 亚洲美洲欧洲综合国产一区| 亚洲性夜色噜噜噜7777| 欧美一区二区精美| 日韩视频一区二区三区在线播放免费观看 | 欧美视频三区在线播放| 国产精品亚洲一区| 在线看国产日韩| 99国产麻豆精品| 欧美综合国产| 中文亚洲字幕| 狂野欧美激情性xxxx| 欧美午夜电影在线观看| 好吊色欧美一区二区三区四区| 亚洲精品美女| 欧美在线视频一区二区| 一区二区三区四区国产| 久久免费偷拍视频| 欧美午夜免费电影| 伊人久久av导航| 亚洲午夜小视频| 亚洲欧洲视频| 久久精品99国产精品| 欧美日韩日日夜夜| 影音先锋另类| 亚洲欧美日本国产专区一区| 日韩亚洲欧美在线观看| 久久久久女教师免费一区| 欧美日韩精品高清| 激情av一区| 亚洲一级影院| 亚洲欧美中文另类| 亚洲黄色在线| 欧美在线短视频| 亚洲欧美激情四射在线日| 欧美成人第一页| 国产婷婷色一区二区三区四区| 99re6热只有精品免费观看| 亚洲高清毛片| 久久国产成人| 国产精品视频福利| 亚洲美女少妇无套啪啪呻吟| 亚洲欧洲日韩在线| 久久精品综合网| 国产精品美腿一区在线看| 亚洲精品中文字幕在线| 亚洲国产午夜| 久久香蕉国产线看观看av| 国产精品五月天| 一区二区三区免费观看| 99精品免费网| 美女91精品| 一区二区三区在线观看欧美| 欧美一区日韩一区| 欧美在线观看日本一区| 国产精品一区在线播放| 亚洲午夜av在线| 亚洲一区中文| 欧美视频中文字幕| 日韩视频在线观看国产| 日韩网站在线观看| 欧美激情五月| 亚洲欧洲日夜超级视频| 亚洲精品一二区| 欧美国产日韩一区二区三区| 亚洲第一天堂av| 亚洲精品乱码久久久久久蜜桃麻豆 | 国产视频精品网| 中文高清一区| 亚洲图片在区色| 欧美日韩在线一二三| 亚洲精品久久久久久久久| 亚洲精品乱码久久久久久久久| 免费看精品久久片| 亚洲高清一二三区| 最新国产拍偷乱拍精品| 欧美成人黑人xx视频免费观看| 亚洲国产二区| 9国产精品视频| 欧美日韩一区二区在线观看| 日韩一区二区免费高清| 亚洲一级黄色| 国产精品一国产精品k频道56| 亚洲免费在线精品一区| 久久福利影视| 伊人精品久久久久7777| 亚洲精品视频一区| 欧美日韩午夜精品| 亚洲私拍自拍| 欧美在线一区二区三区| 狠狠88综合久久久久综合网| 最新日韩在线| 欧美日韩国产区一| 正在播放欧美一区| 欧美一区二区三区男人的天堂| 国产日韩一区二区| 亚洲国产影院| 欧美日韩综合另类| 亚洲欧美网站| 麻豆精品在线视频| 日韩亚洲国产欧美| 性欧美暴力猛交另类hd| 狠狠色丁香婷婷综合久久片| 亚洲精品美女在线观看播放| 国产精品扒开腿做爽爽爽软件| 亚洲欧美日韩久久精品| 久久精品一区二区三区四区| 欧美一二三区精品| 国内精品久久久久久久影视蜜臀| 91久久精品美女高潮| 欧美激情在线免费观看| 亚洲午夜精品一区二区三区他趣| 欧美在线免费一级片| 精品96久久久久久中文字幕无| 亚洲综合第一页| 久久成人免费电影| 欧美韩日精品| 亚洲欧美欧美一区二区三区| 免费日韩av片| 亚洲一级在线| 欧美日韩国产精品 | 夜夜爽99久久国产综合精品女不卡| 亚洲欧美日韩精品久久久| 国产一区二区在线观看免费| 亚洲毛片av在线| 国产裸体写真av一区二区| 欧美激情精品久久久| 亚洲精品综合久久中文字幕| 亚洲欧美日本视频在线观看| 在线成人免费观看| 亚洲欧美激情一区| 亚洲国产欧美精品| 欧美一区二区三区视频在线观看| 亚洲第一主播视频| 欧美一级播放| 最近看过的日韩成人| 久久精品国产清自在天天线| 亚洲开发第一视频在线播放| 久久成人免费网| 亚洲美女视频网| 另类成人小视频在线| 亚洲一区999| 欧美国产日韩一区二区三区| 欧美一区二区播放| 欧美视频二区| 亚洲精品五月天| 精品成人国产| 久久国产免费看| 亚洲色图自拍| 欧美日韩大片一区二区三区| 亚洲国产视频直播|