999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于BLE芯片CC2541的AES CCM加密解密算法的實現

2016-09-13 09:13:08李仁杰
電子設計工程 2016年5期

李仁杰

(武漢郵電科學研究院 湖北 武漢 430074)

基于BLE芯片CC2541的AES CCM加密解密算法的實現

李仁杰

(武漢郵電科學研究院 湖北 武漢430074)

藍牙SIG工作組于2014年12月02日發布了最新的藍牙4.2協議,該協議保留了之前發布的4.0版本中的Bluetooth Low Energy的相關內容,其中包括AES CCM加密解密算法。針對TI官方只提供CCM加密解密庫文件但未同時提供詳細參考文檔的實際情況,本文結合CCM算法和藍牙協議以及CC2541芯片文檔,具體討論了如何設置相關寄存器,以在CC2541芯片上實現AES CCM加密解密算法。

藍牙;無線通信;信息安全;加密解密;CCM

Bluetooth 4.0規范提出了Bluetooth Low Energy(以下簡稱BLE)協議。BLE協議指出,鏈路層(Link Layer)的數據加密認證方式采用AES CCM算法。TI CC2541是一款基于BLE開發的芯片,該芯片自帶的AES協處理器(AES Coprocessor)可以實現 CBC、CFB、OFB、CTR、ECB、CBC MAC等多種加密解密算法[1,7]。TI官方提供的CC2541芯片文檔并沒有針對AES協處理器的操作使用給出詳細的說明,只是大概的指出了加密解密的一些流程。本文詳細討論了如何在CC2541芯片上通過AES協處理器來實現BLE的AES CCM加密解密算法。

1 CCM算法簡介

BLE鏈路層采用CCM算法實現認證和加密。CCM實際上分為CBC-MAC認證算法和CTR加密算法兩部分[1]。CBCMAC認證算法的輸出是長度為M的認證字段T,CTR加密算法針對兩種數據進行加密:其一是針對認證字段T進行CFB/OFB加密,得到的輸出是加密后的認證字段U,如圖1所示;其二是針對消息字段m(可以劃分為一個或多個blocks,不足一個block的部分補0)進行CTR加密,得到的輸出是加密后的消息字段,如圖2所示。

圖1 認證字段的生成和加密Fig.1 Generation and encryption of authentication field

圖2 消息字段的加密Fig.2 Encryption of message field

CCM算法有2個重要的參數:認證字段字節長度M和長度字段字節長度L。文中討論的CCM加密解密算法采用RFC3610文檔[2]的Packet Vector#2輸入數據:

輸入數據的相關信息如表1所示。

表1 CCM算法的輸入數據信息Tab.1 Input data information of CCM algorithm

由表1可知,nonce的長度是15-L=13,附加信息a的長度是M=8。表1中的K即是AES Key,在加密解密過程中,AES Key是不變的。表1中的N即是Nonce。完整數據包的長度是32字節,其中開始的8個字節00 01 02 03 04 05 06 07 是packet header,接下來24字節的內容08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F就是表1中的消息字段m。表1中的a是CBC-MAC算法的輸出T(見圖1),共M=8個字節。

在CCM算法中,加密解密的數據都是以block為單位,1 block=128 bits。圖1和圖 2中的A_i(i=0,1,2)和B_i(i= 0,1,2,3)都是一個block大小,即128 bits。其中,由表1中的nonce,a,m這3個輸入信息可以構造出B_i(i=0,1,2,3),由L,nonce,i這3個輸入信息可以構造出A_i(i=0,1,2)。

由圖1和圖2不難發現,CCM加密算法的輸出數據信息如表2所示。

表2 CCM算法的輸出數據信息Tab.2 Output data information of CCM algorithm

圖3 Block B_0的構造Fig.3 Construction of Block B_0

圖4 Block B_1的構造Fig.4 Construction of Block B_1

在本文所討論的輸入數據中,消息字段m被分解成B_2 和B_3,其中B_2就是消息字段m的前16字節:08 09 0A 0B 0C 0D 0E 0F 10 11 12 13 14 15 16 17,B_3就是消息字段m的剩余部分補0:18 19 1A 1B 1C 1D 1E 1F 00 00 00 00 00 00 00 00。B_3經過CTR加密之后得到M_2,因此M_2只取其前8個字節。

2 加密的實現

前文已討論了加密的大致流程,本小節將繼續討論CC2541 AES協處理器加密過程中的一些細節,比如A_i(i=0,1,2)和B_i(i=0,1,2,3)的構造以及相關寄存器的設置方式。

首先討論B_i(i=0,1,2,3)的構造。

如圖3所示[5],B_0的字段中,flag占1個字節,最高位是保留為,默認為0。A_data的取值取決于l(a)的大小:若l(a)=0,則A_data=0;若l(a)>0,則A_data=1。在文中所討論的例子中,l(a)為8,因此A_data=1。M’=(M-2)/2=(8-2)/ 2=3,用三位二進制表示就是011。L’=L-1=1,用三位二進制表示就是001。因此B_0的flag字段就是01011001=0x59。Nonce字段前文已給出,l(m)=24=0x18。因此可以推導出:

B_2和B_3就是將packet的消息字段劃分成一個個完整的block。因此很容易得出:

下面再來看看block A_i(i=0,1,2)的構造,如圖5所示。

圖5 Block A_i(i=0,1,2)的構造Fig.5 Construction of Block A_i(i=0,1,2)

根據圖1和圖2可知,已知輸入A_i(i=0,1,2)和B_i(i= 0,1,2,3)還有key,通過AES CCM算法就可以得到相應的輸出。下面我們根據圖1和圖2的加密框圖對CC2541 AES協處理器的相關寄存器進行設置,從而在該芯片上實現AES CCM加密解密算法。

首先看TI CC2541芯片文檔[8]對AES協處理器相關寄存器的描述。CC2541的CPU與AES協處理器之間通過3個特殊功能寄存器進行信息交互:

其中ENCCS是AES加密控制和狀態寄存器,其設置方式如圖6所示。

圖6 ENCCS寄存器的配置Fig.6 Configuration of ENCCS

在進行CCM加密之前,首先要加載秘鑰key和初始向量IV。秘鑰key在加密解密過程中保持不變,初始向量在CCM加密時定義為一個全0的block,即128 bits的全 0。CC2541芯片文檔規定,在將ENCCS寄存器配置為CBCMAC模式后,需要加載B_0,B_1,B_2,然后在加載最后一個block之前,要將ENCCS寄存器設置成CBC模式,然后進行加密。CBC-MAC加密的關鍵代碼如下[3]:

CC2541芯片文檔規定,在對A_0進行CFB加密的時候,必須在選擇CFB模式的同時,將ENCCS寄存器配置為load IV/Nonce模式。CFB加密的關鍵代碼[4]:

接下來進行CTR加密,在正式進行CTR加密之前必須重新加載初始向量:

下面是來自RFC3610文檔的Packet Vector#2從輸入到輸出的一些中間結果,方便與代碼編譯運行后的結果進行對照。

表3 程序和RFC3610文檔的CCM中間變量Tab.3 Intermediate variables of CCM from RFC3610 and the program

將關鍵代碼組織完整,在某款搭載CC2541芯片的藍牙BLE開發板上運行AES CCM加密算法的結果如圖7所示。

3 解密的實現

一般而言,解密就是加密的逆過程。解密過程的輸入包括:秘鑰key,數據包的頭部,nonce,加密后的消息字段C_1 和C_2(不足1個block的用0填充),以及加密后的認證字段U。根據前文所述AES CCM加密的結果以及A_i的構造方式,不難得出:

圖7 CC2541上AES CCM加密算法運行結果Fig.7 Result of AES CCM encryption algorithm in CC2541

將關鍵代碼組織完整,在某款搭載CC2541芯片的藍牙BLE開發板上運行AES CCM解密算法的結果如圖8所示。

圖8 CC2541上AES CCM解密算法運行結果Fig.8 Result of AES CCM decryption algorithm in CC2541

4 結 論

本文結合CCM算法標準的相關文檔和CC2541芯片文檔,具體討論了CC2541 AES協處理器的使用方式和相關寄存器的配置,在CC2541芯片上實現了AES CCM的硬件加密解密。在藍牙BLE成為穿戴式設備開發的主流技術的今天,BLE的數據安全性問題應當受到廣泛的關注。

[1]項士標,何加銘.基于嵌入式平臺802.16 AES-CCM算法的優化及實現[J].寧波大學學報,2009(2):170-172.

[2]The Internet Engineering Task Force.Counter with CBCMAC(CCM)[EB/OL].(2003-09)[2003-09].http://tools.ietf. org/html/rfc3610.

[3]National Institute of Standards and Technology.Announcing the ADVANCED ENCRYPTION STANDARD(Federal Information Processing Standards Publication 197)[S].Maryland: National Institute of Standards and Technology,2001.

[4]National Institute of Standards and Technology.Recommendation for Block Cipher Modes of Operation:The CCM Mode for Authentication and Confidentiality(NIST Special Publication 800-38C)[S].Maryland:National Institute of Standards and Technology,2004.

[5]Bluetooth SIG.Specification of the Bluetooth System Version 4.0[S].Washington:Bluetooth SIG,2010.

[6]Bluetooth SIG.Specification of the Bluetooth System Version 4.2[S].Washington:Bluetooth SIG,2014.

[7]懷蓮.IEEE 802.15.4 CCM-AES協處理器的研究與設計[D].武漢:華中科技大學,2009.

[8]Texas Instruments.CC253x/4x User's Guide(Rev.F)[EB/ OL].(2014-04-09)[2014-04-09].http://www.ti.com/lit/ug/ swru191f/swru191f.pdf.

Realization of AES CCM encryption and decryption algorithm based on CC2541

LI Ren-jie
(Wuhan Research Institute of Posts and Telecommunications,Wuhan 430074,China)

Bluetooth SIG released Bluetooth specification v4.2 on Dec.02,2014,which contains BLE(including AES CCM algorithm)from Bluetooth specification v4.0.Unfortunately,TI provides only library that realizes CCM encryption and decryption algorithm but not relevant documentation at the same time.This article discusses this issue of how to manipulate relevant registers in order to realize AES CCM encryption and decryption algorithm on the CC2541 chip.

bluetooth;wireless communication;information security;encryption and decryption;CCM

TN918.4

A

1674-6236(2016)05-0134-04

2015-04-07稿件編號:201504061

李仁杰(1988—),男,湖北孝感人,碩士。研究方向:無線通信。

主站蜘蛛池模板: 欧美亚洲欧美区| 国产成人亚洲日韩欧美电影| 国产情精品嫩草影院88av| 国产精品中文免费福利| 亚洲av色吊丝无码| 国产又色又爽又黄| 亚洲一区毛片| 无码免费试看| 老司机久久精品视频| 有专无码视频| 精品黑人一区二区三区| 亚洲无线观看| 九九热视频在线免费观看| 国产成人无码久久久久毛片| 欧美日韩一区二区三| 亚洲清纯自偷自拍另类专区| 国产微拍精品| 国产探花在线视频| 欧美成人午夜影院| 国产浮力第一页永久地址 | 国产人成在线视频| 午夜福利免费视频| 国产在线欧美| 18禁高潮出水呻吟娇喘蜜芽| 国产国语一级毛片| 亚洲三级视频在线观看| 日韩免费毛片| 国产性生大片免费观看性欧美| 亚洲一欧洲中文字幕在线| 久久精品人人做人人爽电影蜜月| 欧美国产精品不卡在线观看| 韩日午夜在线资源一区二区| 91久久夜色精品国产网站| 操美女免费网站| 日本久久网站| 色噜噜久久| 一本视频精品中文字幕| 伊人久久久久久久久久| 日韩精品无码免费一区二区三区 | 欧美福利在线观看| 激情视频综合网| 日本道中文字幕久久一区| 国产成人精品2021欧美日韩| 91色在线观看| 一本综合久久| 午夜色综合| 欧美啪啪网| 欧美、日韩、国产综合一区| 亚洲91精品视频| 国产乱人乱偷精品视频a人人澡| 久久久久亚洲Av片无码观看| 91成人在线免费视频| 99久久国产综合精品女同| 日本国产精品一区久久久| 成人免费一区二区三区| 无码一区二区三区视频在线播放| 综合亚洲网| 精品无码人妻一区二区| 亚洲欧美日韩中文字幕在线| 韩日免费小视频| 亚洲全网成人资源在线观看| 97免费在线观看视频| 国产无码高清视频不卡| 久久综合亚洲色一区二区三区| 91人人妻人人做人人爽男同| 99这里只有精品6| 婷婷亚洲天堂| 欧美a在线看| 青青草原偷拍视频| 色婷婷视频在线| 国产白浆在线| 尤物成AV人片在线观看| 国产精品美女自慰喷水| 久久天天躁狠狠躁夜夜躁| 黑人巨大精品欧美一区二区区| 人人妻人人澡人人爽欧美一区 | 日本三区视频| 国产原创第一页在线观看| 国产成人毛片| 亚洲精品无码av中文字幕| 无码AV日韩一二三区| 欧美一级专区免费大片|