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—),男,湖北孝感人,碩士。研究方向:無線通信。

主站蜘蛛池模板: 国产在线91在线电影| 国产在线一区视频| 人妻无码中文字幕第一区| 国产视频欧美| 亚洲第一av网站| 国产主播在线一区| 国产成人亚洲无码淙合青草| 国产成人免费高清AⅤ| 四虎永久免费在线| 精品视频一区二区观看| 在线播放国产一区| 欧美日韩国产在线播放| 欧洲成人在线观看| 无码啪啪精品天堂浪潮av| 亚洲日本中文字幕天堂网| 色国产视频| 国产丝袜啪啪| 久久中文字幕不卡一二区| 欧美中文一区| P尤物久久99国产综合精品| 综合色88| 久久免费视频播放| 亚洲无码高清免费视频亚洲| 亚洲精品国产综合99久久夜夜嗨| 亚洲伊人天堂| 91麻豆精品视频| 国产剧情无码视频在线观看| 青青青国产视频| 伊人久久久大香线蕉综合直播| 青青青国产视频| 亚洲有无码中文网| 国产精品部在线观看| 一级毛片在线播放| a色毛片免费视频| 国产欧美日韩91| 一区二区三区国产| hezyo加勒比一区二区三区| 无码国产偷倩在线播放老年人| 成年女人a毛片免费视频| 中文字幕在线日韩91| 青草视频在线观看国产| 婷婷六月激情综合一区| www.狠狠| 国产精品美人久久久久久AV| 性色在线视频精品| 亚洲色无码专线精品观看| 99re在线免费视频| 免费午夜无码18禁无码影院| 亚洲综合中文字幕国产精品欧美| 高清无码手机在线观看| 亚洲美女久久| 国产欧美精品专区一区二区| 天天色天天操综合网| 99re在线视频观看| 欧美久久网| 中文无码伦av中文字幕| 99re这里只有国产中文精品国产精品| 波多野结衣视频一区二区| 在线观看亚洲国产| 成人国产精品2021| 97综合久久| 强奷白丝美女在线观看| 欧美日本在线一区二区三区| 亚洲美女高潮久久久久久久| 亚洲成人网在线观看| 婷婷色中文网| 精品一区二区无码av| 亚洲三级a| 国产欧美性爱网| 久久情精品国产品免费| 日韩亚洲综合在线| av免费在线观看美女叉开腿| 在线a视频免费观看| 久热精品免费| 亚洲国产一区在线观看| 欧美成a人片在线观看| 久热99这里只有精品视频6| Jizz国产色系免费| 国精品91人妻无码一区二区三区| 亚洲中文字幕国产av| 精品一区二区三区视频免费观看| 亚洲高清无码精品|