亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于BLE芯片CC2541的AES CCM加密解密算法的實(shí)現(xiàn)

        2016-09-13 09:13:08李仁杰
        電子設(shè)計(jì)工程 2016年5期

        李仁杰

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

        基于BLE芯片CC2541的AES CCM加密解密算法的實(shí)現(xiàn)

        李仁杰

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

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

        藍(lán)牙;無線通信;信息安全;加密解密;CCM

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

        1 CCM算法簡介

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

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

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

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

        輸入數(shù)據(jù)的相關(guān)信息如表1所示。

        表1 CCM算法的輸入數(shù)據(jù)信息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。完整數(shù)據(jù)包的長度是32字節(jié),其中開始的8個字節(jié)00 01 02 03 04 05 06 07 是packet header,接下來24字節(jié)的內(nèi)容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個字節(jié)。

        在CCM算法中,加密解密的數(shù)據(jù)都是以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個輸入信息可以構(gòu)造出B_i(i=0,1,2,3),由L,nonce,i這3個輸入信息可以構(gòu)造出A_i(i=0,1,2)。

        由圖1和圖2不難發(fā)現(xiàn),CCM加密算法的輸出數(shù)據(jù)信息如表2所示。

        表2 CCM算法的輸出數(shù)據(jù)信息Tab.2 Output data information of CCM algorithm

        圖3 Block B_0的構(gòu)造Fig.3 Construction of Block B_0

        圖4 Block B_1的構(gòu)造Fig.4 Construction of Block B_1

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

        2 加密的實(shí)現(xiàn)

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

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

        如圖3所示[5],B_0的字段中,flag占1個字節(jié),最高位是保留為,默認(rèn)為0。A_data的取值取決于l(a)的大?。喝鬺(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,用三位二進(jìn)制表示就是011。L’=L-1=1,用三位二進(jìn)制表示就是001。因此B_0的flag字段就是01011001=0x59。Nonce字段前文已給出,l(m)=24=0x18。因此可以推導(dǎo)出:

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

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

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

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

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

        其中ENCCS是AES加密控制和狀態(tài)寄存器,其設(shè)置方式如圖6所示。

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

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

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

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

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

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

        將關(guān)鍵代碼組織完整,在某款搭載CC2541芯片的藍(lán)牙BLE開發(fā)板上運(yùn)行AES CCM加密算法的結(jié)果如圖7所示。

        3 解密的實(shí)現(xiàn)

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

        圖7 CC2541上AES CCM加密算法運(yùn)行結(jié)果Fig.7 Result of AES CCM encryption algorithm in CC2541

        將關(guān)鍵代碼組織完整,在某款搭載CC2541芯片的藍(lán)牙BLE開發(fā)板上運(yùn)行AES CCM解密算法的結(jié)果如圖8所示。

        圖8 CC2541上AES CCM解密算法運(yùn)行結(jié)果Fig.8 Result of AES CCM decryption algorithm in CC2541

        4 結(jié) 論

        本文結(jié)合CCM算法標(biāo)準(zhǔn)的相關(guān)文檔和CC2541芯片文檔,具體討論了CC2541 AES協(xié)處理器的使用方式和相關(guān)寄存器的配置,在CC2541芯片上實(shí)現(xiàn)了AES CCM的硬件加密解密。在藍(lán)牙BLE成為穿戴式設(shè)備開發(fā)的主流技術(shù)的今天,BLE的數(shù)據(jù)安全性問題應(yīng)當(dāng)受到廣泛的關(guān)注。

        [1]項(xiàng)士標(biāo),何加銘.基于嵌入式平臺802.16 AES-CCM算法的優(yōu)化及實(shí)現(xiàn)[J].寧波大學(xué)學(xué)報(bào),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協(xié)處理器的研究與設(shè)計(jì)[D].武漢:華中科技大學(xué),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—),男,湖北孝感人,碩士。研究方向:無線通信。

        亚洲精品国产一区av| 九月婷婷人人澡人人添人人爽| 爆乳熟妇一区二区三区霸乳 | 日日摸夜夜添夜夜添无码免费视频 | 日本一区二区在线播放视频| 欧洲女人与公拘交酡视频| 亚洲妇女无套内射精| a毛片全部免费播放| 日韩无码电影| 亚洲av性色精品国产| 日本一区二区三区经典视频| 精品国产sm最大网站| 欧美日韩精品久久久免费观看| 人禽伦免费交视频播放| 亚洲人免费| 一区二区高清视频在线观看| 国产一区二区长腿丝袜高跟鞋| 成人免费无码大片a毛片抽搐色欲 日本动漫瀑乳h动漫啪啪免费 | 少妇精品无码一区二区三区| 97人人超碰国产精品最新o| 91久国产在线观看| 国产盗摄一区二区三区av| 9久久婷婷国产综合精品性色| 精品国产精品国产偷麻豆| 中文字幕影片免费在线观看| 漂亮的小少妇诱惑内射系列| 亚洲av乱码二区三区涩涩屋| 亚洲av无码专区亚洲av网站| 久久精品国产亚洲av高清色欲| 蜜桃一区二区免费视频观看| 亚洲日本精品国产一区二区三区| 国产精品狼人久久久久影院| 日本中文字幕不卡在线一区二区| 青青视频在线播放免费的| 中国久久久一级特黄久久久| 精品久久久久久无码中文字幕| 国产精品久免费的黄网站| 丰满人妻无套内射视频| 日本免费一区二区三区影院| 97精品一区二区视频在线观看| 国产丝袜精品不卡|