日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

ATSHA204芯片手册阅读笔记

發(fā)布時(shí)間:2023/12/15 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ATSHA204芯片手册阅读笔记 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

使用心得:
(1)配置好IIC,訪問(wèn)芯片之前先喚醒。
(2)按個(gè)人需求配置好Config區(qū)域,配置好之后鎖住Config。只有鎖住了Config,才能去操作Data區(qū)。
(3)開(kāi)始寫(xiě)數(shù)據(jù)區(qū),可以將一些自己覺(jué)得重要的數(shù)據(jù)寫(xiě)到數(shù)據(jù)區(qū),寫(xiě)完之后,鎖住才能讀。
????關(guān)于ATSHA204的庫(kù)文件,Atmel會(huì)更新,內(nèi)容可能會(huì)不一樣,下面的鏈接是我在2021/12/07在Github上下載的,本人用的也是這個(gè)庫(kù)文件:
https://pan.baidu.com/s/148GmFoX_r940jYtDje85ng
密碼:10af
????關(guān)于怎么使用這個(gè)庫(kù)文件,可以向下拉看文章結(jié)尾處。

1 簡(jiǎn)介

1.1 芯片介紹和應(yīng)用

ATSHA204A是Atmel公司的加密認(rèn)證芯片。
基于硬件,具有受保護(hù)的密鑰存儲(chǔ)的加密元件
安全對(duì)稱身份驗(yàn)證設(shè)備主機(jī)和客戶端操作
具有消息身份驗(yàn)證碼(MAC)的高級(jí)SHA-256哈希算法
具有唯一的72位序列號(hào)
具有內(nèi)部高質(zhì)量的隨機(jī)數(shù)產(chǎn)生器(RNG)
具有4.5Kb的EEPROM,用于存儲(chǔ)密鑰和數(shù)據(jù)
具有512位OTP(一次性可編程)用于保存固定信息
可以使用IIC接口,也可以使用單串口。
可應(yīng)用于如下場(chǎng)景:
????*安全下載和boot
????*系統(tǒng)控制
????*反克隆
????*消息加密
????該芯片有靈活的命令,用戶可以通過(guò)命令將芯片設(shè)置成不同的功能,可以應(yīng)用于:
(1)防偽
????驗(yàn)證可移動(dòng)、可更換或可消費(fèi)的客戶端的身份,還可用于驗(yàn)證軟件或者內(nèi)存存儲(chǔ)元件。
(2)保護(hù)固件程序
????驗(yàn)證boot啟動(dòng)時(shí)存儲(chǔ)在閃存中的代碼,以防止未經(jīng)授權(quán)的修改(這也稱為安全啟動(dòng));加密下載的媒體文件;并對(duì)代碼映像進(jìn)行唯一加密,使其僅在單個(gè)系統(tǒng)上可用。
(3)交換會(huì)話密鑰
????安全方便地交換加密密鑰,供MCU處理器使用,以管理機(jī)密通信通道、加密下載和類似項(xiàng)目。
(4)安全保存數(shù)據(jù)
????在標(biāo)準(zhǔn)微處理器中存儲(chǔ)加密加速器使用的密鑰??梢杂脕?lái)存儲(chǔ)配置、校準(zhǔn)、過(guò)程值、消耗數(shù)據(jù)或者校準(zhǔn)所需的少量數(shù)據(jù)和其他密鑰。通過(guò)加密、認(rèn)證讀寫(xiě)保護(hù)實(shí)現(xiàn)可編程保護(hù)。
(5)檢查用戶密碼
????驗(yàn)證用戶輸入的密碼而不讓期望值被人知道,將簡(jiǎn)單密碼映射到復(fù)雜密碼,并與遠(yuǎn)程系統(tǒng)安全地交換密碼值。

1.2 設(shè)備特性

????ATSHA204A設(shè)備包含一個(gè)電可擦除可編程只讀存儲(chǔ)器(EEPROM),可用于密鑰存儲(chǔ)、讀/寫(xiě)數(shù)據(jù)、只讀、保密數(shù)據(jù)、消耗記錄和安全配置??梢酝ㄟ^(guò)多種方式限制對(duì)內(nèi)存各個(gè)部分的訪問(wèn),然后可以鎖定配置以防更改。ATSHA204具有廣泛的防御機(jī)制,專門(mén)設(shè)計(jì)用于防止對(duì)設(shè)備本身的物理攻擊或?qū)υO(shè)備與系統(tǒng)之間傳輸數(shù)據(jù)的邏輯攻擊(說(shuō)白了就是防止別人抄板子)。
????可以使用標(biāo)準(zhǔn)I2 C總線(高達(dá)1Mb/s的速度)訪問(wèn)芯片。
????每個(gè)ATSHA204A都附帶一個(gè)保證唯一的9字節(jié)(72位)序列號(hào)。使用芯片支持的加密協(xié)議,主機(jī)系統(tǒng)或遠(yuǎn)程服務(wù)器可以證明序列號(hào)是真實(shí)的,而不是副本(反克隆)。序列號(hào)通常存儲(chǔ)在標(biāo)準(zhǔn)的串行EEPROM中,可以很容易地復(fù)制,主機(jī)無(wú)法知道序列號(hào)是真實(shí)的還是克隆的,必須使用整個(gè)序列號(hào)來(lái)保證唯一性。
????ATSHA204A可以生成高質(zhì)量的隨機(jī)數(shù),并將其用于任何目的,包括作為該設(shè)備加密協(xié)議的一部分。由于每個(gè)32字節(jié)(256位)隨機(jī)數(shù)不依賴于此設(shè)備或任何其他設(shè)備上生成的過(guò)去的數(shù)字,因此將其包含在協(xié)議計(jì)算中可確保重播攻擊(即重新傳輸以前成功的事務(wù))無(wú)計(jì)可施。

1.3 加密操作

????ATSHA204A支持標(biāo)準(zhǔn)隨機(jī)數(shù)響應(yīng)協(xié)議,以簡(jiǎn)化編程。在其最基本的安裝中,主機(jī)系統(tǒng)向客戶機(jī)中的設(shè)備發(fā)送隨機(jī)數(shù),芯片通過(guò)使用來(lái)自系統(tǒng)的消息認(rèn)證碼(MAC)命令將該隨機(jī)數(shù)與密鑰相結(jié)合,并將該MAC命令響應(yīng)發(fā)送回MCU。該芯片使用加密哈希算法進(jìn)行組合(也稱為摘要)。散列算法的使用可以防止別人在通訊總線上導(dǎo)出密鑰的值,同時(shí)允許接收者通過(guò)執(zhí)行相同的計(jì)算來(lái)驗(yàn)證響應(yīng)是否正確,該計(jì)算將隨機(jī)數(shù)與密鑰相結(jié)合,以使用存儲(chǔ)的密鑰副本創(chuàng)建摘要。
????由于ATSHA204A的靈活命令集,對(duì)芯片的基本操作可以以多種方式擴(kuò)展。通過(guò)使用GenDig命令,使其他SLOT(Slot可以理解為一個(gè)32字節(jié)的存儲(chǔ)單元)中的值可以包含在響應(yīng)摘要中,這提供了一種有效的方法來(lái)證明讀取的數(shù)據(jù)確實(shí)來(lái)自設(shè)備,而不是由中間人攻擊者插入。該命令可用于將兩個(gè)密鑰與隨機(jī)數(shù)組合在一起,這在需要執(zhí)行多層身份驗(yàn)證時(shí)非常有用。
????DeriveKey命令,實(shí)施密鑰滾動(dòng)方案。例如,根據(jù)命令模式參數(shù),產(chǎn)生的操作可能類似于遙控車(chē)庫(kù)門(mén)開(kāi)啟器中實(shí)現(xiàn)的操作。每次使用密鑰時(shí),密鑰的當(dāng)前值將以加密方式與特定于該系統(tǒng)的值組合,然后該結(jié)果將形成下一次加密操作的密鑰。即使攻擊者獲得一個(gè)密鑰的值,該密鑰在下次使用時(shí)也將永遠(yuǎn)消失。
????DeriveKey還可用于生成新的隨機(jī)密鑰,這些密鑰可能僅對(duì)特定主機(jī)ID、特定時(shí)間段或某些其他限制條件有效。每個(gè)生成的密鑰都不同于任何設(shè)備上生成的任何其他密鑰。通過(guò)以這種方式在字段中“激活”主機(jī)-客戶端,單個(gè)客戶端的克隆將無(wú)法在任何其他主機(jī)上工作。
????在主機(jī)-客戶端配置中,主機(jī)(如移動(dòng)電話)需要驗(yàn)證客戶端(如OEM電池),需要將密鑰存儲(chǔ)在主機(jī)中,以驗(yàn)證客戶機(jī)的響應(yīng)。CheckMac命令允許主機(jī)設(shè)備安全地存儲(chǔ)客戶端的機(jī)密,并從SDA引腳上隱藏正確的響應(yīng)值,僅向微控制器返回是/否答案。
????在需要用戶輸入密碼的情況下,CheckMac命令還提供了一種方法,既可以驗(yàn)證密碼而不在通信總線上公開(kāi)密碼,也可以將密碼映射到具有更高熵的存儲(chǔ)值。
????最后,隨機(jī)數(shù)和密鑰的散列組合(即摘要)可以保存在芯片上,并與Slot的內(nèi)容異或以實(shí)現(xiàn)加密讀取,或者可以與加密輸入數(shù)據(jù)異或以實(shí)現(xiàn)加密寫(xiě)入。通過(guò)在計(jì)算中包含隨機(jī)nonce(32字節(jié)),可以保護(hù)這些操作免受重放攻擊。
????所有安全功能均使用行業(yè)標(biāo)準(zhǔn)SHA-256安全哈希算法實(shí)現(xiàn),ATSHA204A使用的是256位密鑰,以防止任何類型的窮舉攻擊。

2.芯片內(nèi)部結(jié)構(gòu)

設(shè)備包含下面的兩個(gè)內(nèi)存區(qū):
????*EEPROM
????*SRAM

2.1 EEPROM結(jié)構(gòu)

EEPROM總共包含664字節(jié)(5312位),分為以下幾個(gè)區(qū)域:
>Data區(qū)(512字節(jié))
????一個(gè)512字節(jié)(4Kbit)的區(qū)域,分為16個(gè)32字節(jié)(256位)的通用、只讀或讀/寫(xiě)內(nèi)存Slot,每個(gè)Slot可用于存儲(chǔ)鑰匙、校準(zhǔn)數(shù)據(jù)、型號(hào)或與ATSHA204A設(shè)備所連接項(xiàng)目相關(guān)的其他信息。根據(jù)存儲(chǔ)在配置區(qū)域中的值,每個(gè)Slot可能具有不同的訪問(wèn)限制。
>Configuration(88字節(jié))
????一個(gè)88字節(jié)(704位)的區(qū)域,包含序列號(hào)和其他ID信息以及數(shù)據(jù)存儲(chǔ)器每個(gè)Slot的訪問(wèn)權(quán)限信息。88字節(jié)可從三塊地址空間中訪問(wèn)
>OTP(一次性可編程)區(qū)(64字節(jié))
????一個(gè)64字節(jié)(512位)區(qū)域,可用于存儲(chǔ)只讀數(shù)據(jù)或單向(保險(xiǎn)絲類型)消耗記錄信息。在鎖定OTP區(qū)域之前,可以使用標(biāo)準(zhǔn)寫(xiě)入命令自由寫(xiě)入位。OTP區(qū)域可從兩塊地址空間內(nèi)訪問(wèn)。在本文件中,術(shù)語(yǔ)OTP[bb]表示OTP區(qū)域內(nèi)的一個(gè)字節(jié),而OTP[aa:bb]表示一個(gè)字節(jié)范圍。
????在鎖定設(shè)備的配置和/或數(shù)據(jù)部分之前,必須使用所需內(nèi)容覆蓋此數(shù)據(jù)。

2.1.1 Data Zone

????數(shù)據(jù)區(qū)為512字節(jié)(4Kbit),是EEPROM陣列的一部分,可用于安全存儲(chǔ)目的。在使用lock(Config)鎖定配置之前,數(shù)據(jù)區(qū)域是不可訪問(wèn)的,既不能讀取也不能寫(xiě)入。配置鎖定后,可以使用Write命令寫(xiě)入整個(gè)數(shù)據(jù)區(qū)域。如果需要,可以對(duì)要寫(xiě)入的數(shù)據(jù)進(jìn)行加密。

2.1.2 Configuration Zone

????配置區(qū)中的88字節(jié)(704位)包含數(shù)據(jù)區(qū)內(nèi)Slot的訪問(wèn)權(quán)限配置。這88字節(jié)的值始終可以使用Read命令獲得。該區(qū)域的字節(jié)排列如表所示。

????這個(gè)表格比較重要,從表格中我們可以知道配置區(qū)中有序列號(hào),修訂碼,I2C相關(guān),CheckMac配置,OTP模式,選擇模式,并且有對(duì)應(yīng)數(shù)據(jù)區(qū)的Slot配置信息,還有其他一些配置信息等等。這0x15個(gè)字的內(nèi)容都是可以讀取訪問(wèn)的。

2.1.2.1 I2C Enable

????如果Bit0為0,設(shè)備使用的是單串;否則使用的是IIC接口。

2.1.2.2 I2C Address

(1)如果設(shè)備是工作在IIC模式下,忽視掉Bit0,Bit1-7是I2C地址,如果Bit0為1,我們可以把它看作是I2C的讀(設(shè)備地址|0x01)
(2)如果設(shè)備是工作在單串模式下,那么Bit3為T(mén)TL的使能,為1代表輸入電平使用Vcc作參考。

2.1.2.3 CheckMacConfig

????這個(gè)字節(jié)僅僅使用于命令CheckMac,Read,和Write:
(1)Read和Write情況下:
????位0控制Slot0、1,位1控制Slot2、3,依此類推。如果TempKey.SourceFlag與此字節(jié)中的相應(yīng)位不匹配,則任何加密的讀/寫(xiě)命令都將失敗。對(duì)于明文讀取和寫(xiě)入,忽略此字節(jié)。
(2)CheckMac情況下:
????位0控制Slot1,位1控制Slot3,依此類推。僅當(dāng)與目標(biāo)Slot對(duì)應(yīng)的CheckMacSource值與CheckMac命令的模式位2的值匹配時(shí),才會(huì)啟用復(fù)制功能。如果模式位2與TempKey.SourceFlag不匹配,則該命令將失敗。因此這相當(dāng)于要求該字節(jié)中的相應(yīng)位與TempKey.SourceFlag匹配。

2.1.2.4 OTP Mode

????0xAA(只讀模式)=當(dāng)OTP區(qū)域被鎖定時(shí),將禁用寫(xiě)入,并允許讀取所有字。
????0x55(消耗模式)=OTP區(qū)域鎖定時(shí)寫(xiě)入OTP區(qū)域?qū)?dǎo)致位僅從1轉(zhuǎn)換為零。允許閱讀所有字。
????0x00(傳統(tǒng)模式)=當(dāng)OTP區(qū)域被鎖定時(shí),寫(xiě)入被禁用,字0和1的讀取以及32字節(jié)讀取被禁用。
????所有其他模式均保留。

2.1.2.5 Selector Mode

????如果為0,則選擇器將更新為UpdateExtra。

2.1.2.6 SlotConfig

????總共有16個(gè)Slot,每個(gè)Slot對(duì)應(yīng)一個(gè)Slot Config。Slot Config用于配置Slot的讀寫(xiě)方式。下面是SlotConfig每個(gè)位的意義:

淺析下上面的表格:
Bit0-3:用于加密讀取的密鑰Slot,值可以是0-15,恰好16個(gè)Slot。如果為0,則此Slot可以用作CheckMac Copy命令。
Bit4: 如果為0,代表這個(gè)Slot可以用于所有加密命令;如果為1,代表這個(gè)Slot能用于CheckMac和GenDig命令
Bit5: 如果為0,沒(méi)有限制鑰匙的使用次數(shù);如果為1,根據(jù)Slot的UseFlag(或LastKeyUse)限制可以使用密鑰 的次數(shù)。
Bit6: 如果為0,允許明文讀;如果為1,要求Slot是加密的,加密讀取才能訪問(wèn)。
Bit7: 如果為0,Slot不是加密的,允許明文讀取、明文寫(xiě)入、無(wú)MAC檢查和無(wú)Derivekey命令。如果為1,Slot是加密的,允許加密讀寫(xiě)。
????除非WriteConfig為“始終”,否則要啟用正確的芯片操作,必須設(shè)置此位。設(shè)置該位為1的Slot,禁止4字節(jié)訪問(wèn)。用于存儲(chǔ)密鑰的Slot應(yīng)始終將IsSecret設(shè)置為1,將EncryptRead設(shè)置為0(禁止讀取),以獲得最大的安全性。對(duì)于固定密鑰,WriteConfig應(yīng)設(shè)置為“從不”。以這種方式配置時(shí),數(shù)據(jù)區(qū)域鎖定后無(wú)法讀取或?qū)懭朊荑€。它只能用于加密操作。
Bit8-11: 4個(gè)位,用于驗(yàn)證加密寫(xiě)入的密鑰Slot
Bit12-15: 4個(gè)位,具體看下面的表格:
(1)執(zhí)行DeriveKey命令情況下:

(2)執(zhí)行寫(xiě)命令情況下:
注意:上面的表格會(huì)重疊。例如,0110表示可以使用Write命令以加密形式寫(xiě)Slot,并且該SLOT也可以是未經(jīng)授權(quán)的DeriveKey命令的目標(biāo)。

2.1.2.7 Use Flag

????用于“一次性Slot”?!?”位的數(shù)量表示Slot0到7在被禁用之前可以使用的次數(shù)

2.1.2.8 Update Count

????指示Slot0到7已使用DeriveKey更新了多少次(所以我們這里可以知道DeriveKey命令是更新Slot內(nèi)容)。

2.1.2.9 Last Key Use

????用于控制slot15的有限使用,也即是說(shuō)上面表格的16個(gè)Last Key Use都是給Slot15使用的,Slot15的有限使用次數(shù)最大為16*8 = 128。每個(gè)“1”位表示Slot15的剩余使用。僅當(dāng)設(shè)置了SlotConfig.SingleUse單次使用時(shí)適用

2.1.2.10 UserExtra

????為了通用系統(tǒng)使用,可以通過(guò)UpdateExtra命令修改。

2.1.2.11 Selector

????選擇執(zhí)行Pause命令后將保持活動(dòng)模式的設(shè)備

2.1.2.12 Lock Data

????0x55:表示數(shù)據(jù)和OTP區(qū)未上鎖,可以寫(xiě)訪問(wèn)。
????0x00:表示數(shù)據(jù)和OTP區(qū)上鎖。只能根據(jù)相應(yīng)的WriteConfig字段修改數(shù)據(jù)區(qū)中的Slot。OTP區(qū)域只能根據(jù)OTP模式進(jìn)行修改。

2.1.2.13 Lock Config

????0x55:表示配置區(qū)擁有寫(xiě)訪問(wèn)(未上鎖)。
????0x00:表示配置區(qū)失去寫(xiě)訪問(wèn)(上鎖)。

2.1.2.14 配置區(qū)的特殊內(nèi)存值(Bytes 0-12)

????ATSHA204A中包含各種固定信息,這些信息在任何情況下都無(wú)法寫(xiě)入,并且始終可以讀取,而不管鎖位的狀態(tài)如何。
SerialNum
????9個(gè)字節(jié)的序列號(hào)(SN[0:8]),形成一個(gè)唯一的值,加密身份驗(yàn)證系列中的任何設(shè)備不可能存在相同的序列號(hào),序列號(hào)分為兩組:
1.SN[0:1]和SN[8]
????在大多數(shù)版本的ATSHA204A中,這些位的值在制造時(shí)是固定的。其默認(rèn)值為(0x01 0x23 0xEE)。這24位始終包含在ATSHA204A進(jìn)行的SHA-256計(jì)算中.
2.SN[2:7]
????這些位的值在制造過(guò)程中由Atmel編程,每個(gè)芯片的值都不同。這些6字節(jié)(48位)可選地包括在ATSHA204A進(jìn)行的一些SHA-256計(jì)算中。
RevNum
????Atmel用于提供制造版本信息的4字節(jié)信息。這些字節(jié)可以自由讀取為RevNum[0:3],但系統(tǒng)軟件不應(yīng)使用這些字節(jié),因?yàn)樗鼈兛赡軙?huì)不時(shí)變化。(小編不知道這里啥意思,為啥可能,試了好幾次沒(méi)變化)

2.1.3 OTP區(qū)

????64字節(jié)(512位)的OTP區(qū)域是EEPROM陣列的一部分,可用于只讀存儲(chǔ)。在鎖定配置部分(使用lockConfig)之前,OTP區(qū)域是不可訪問(wèn)的,既不能讀取也不能寫(xiě)入。在配置鎖定之后,但在鎖定OTP區(qū)域之前(使用lockData),可以使用Write命令寫(xiě)入整個(gè)OTP區(qū)域。如果需要,可以對(duì)要寫(xiě)入的數(shù)據(jù)進(jìn)行加密。OTP未上鎖是無(wú)法讀取OTP區(qū)域。
????鎖定OTP區(qū)域后,配置區(qū)域中的OTPmode字節(jié)將控制此區(qū)域的權(quán)限。

2.1.4 設(shè)備鎖

設(shè)備兩個(gè)獨(dú)立的鎖字節(jié):
????配置區(qū)的鎖和數(shù)據(jù)及OTP的鎖。
(上面的兩把鎖都放在配置區(qū)里面,通過(guò)Lock命令修改鎖的值。內(nèi)存區(qū)一旦鎖上,無(wú)法解鎖。)
????在應(yīng)用芯片時(shí),根據(jù)需求對(duì)設(shè)備進(jìn)行個(gè)性化配置,并鎖定配置區(qū)域。此鎖定完成后,應(yīng)使用寫(xiě)入命令(允許的話,可以加密寫(xiě)入)將所有必要的公共和機(jī)密信息寫(xiě)入EEPROM Slot。完成對(duì)數(shù)據(jù)和OTP區(qū)域的寫(xiě)入后,應(yīng)鎖定數(shù)據(jù)和OTP區(qū)域。
????在鎖定配置節(jié)之前讀取或?qū)懭霐?shù)據(jù)或OTP節(jié)的操作都會(huì)導(dǎo)致芯片返回錯(cuò)誤。

2.1.4.1 配置區(qū)上鎖

????無(wú)論LockConfig的狀態(tài)如何,都無(wú)法修改配置區(qū)域中的某些字節(jié),比如前面說(shuō)到的序列號(hào)和修訂號(hào)碼??聪旅娴膱D(Table2-7),使用配置區(qū)域中的LockConfig字節(jié)控制對(duì)區(qū)域內(nèi)剩余字節(jié)的訪問(wèn)。如果LockConfig為0x55,則表示配置區(qū)域未上鎖;否則它是鎖定狀態(tài)。

2.1.4.2 數(shù)據(jù)區(qū)及OTP上鎖

2.2靜態(tài)RAM

2.2.1TempKey

????TempKey是SRAM陣列中的一個(gè)存儲(chǔ)寄存器,可用于存儲(chǔ)來(lái)自Nonce、GenDig、CheckMac或SHA命令。該寄存器的內(nèi)容永遠(yuǎn)無(wú)法被微控制器讀取(只有芯片本身可以內(nèi)部讀取和使用該TempKey)

????在應(yīng)用中,我們說(shuō)的“TempKey”指的是32字節(jié)(256位)數(shù)據(jù)寄存器的內(nèi)容。其余的位字段稱為T(mén)empKey.SourceFlag,TempKey.GenData等等。
TempKey在以下的幾種情況下是無(wú)效的:
*上電,睡眠,斷電,看門(mén)狗溢出,篡改檢測(cè)。(空閑模式下TempKey的內(nèi)容是保留的)。
*無(wú)論命令執(zhí)行是否成功,執(zhí)行除Nonce或GenDig以外的任何命令后。除非成功復(fù)制,否則可通過(guò)CheckMac命令清除。如果存在通信問(wèn)題,則不會(huì)清除,比如循環(huán)冗余校驗(yàn)(CRC)錯(cuò)誤。
*分析或執(zhí)行GenDig和/或Nonce命令時(shí)出錯(cuò)。
*GenDig的執(zhí)行將會(huì)使用其輸出替換Nonce命令的輸出。Nonce命令的執(zhí)行同樣會(huì)替換GenDig命令以前的任何輸出。

3 安全特性

3.1 物理加密

????主要介紹了內(nèi)存的硬件加密。

3.2 RNG

????ATSHA204A包括向主控制器返回32字節(jié)隨機(jī)數(shù)的高質(zhì)量RNG。該芯片將生成的數(shù)字與單獨(dú)的輸入數(shù)字組合,以形成一個(gè)nonce,該nonce存儲(chǔ)在設(shè)備中的TempKey中,可供后續(xù)命令使用。系統(tǒng)可將此RNG用于任何目的。一個(gè)常見(jiàn)的用途是在單獨(dú)的加密身份驗(yàn)證設(shè)備上作為MAC命令的輸入隨機(jī)數(shù)。該芯片為此目的提供了一個(gè)特殊的隨機(jī)命令,該命令不會(huì)影響內(nèi)部存儲(chǔ)的nonce。
????為了簡(jiǎn)化系統(tǒng)測(cè)試,在鎖定配置區(qū)域之前,RNG始終返回以下值:ff ff 00 ff 00…其中ff是從設(shè)備讀取的第一個(gè)字節(jié),用于SHA消息。我們可以在應(yīng)用中用邏輯分析儀抓取波形驗(yàn)證。
????為了防止對(duì)傳遞給ATSHA204A或從ATSHA204A傳遞來(lái)的加密數(shù)據(jù)的重播攻擊,芯片要求在用于保護(hù)正在讀取或?qū)懭氲臄?shù)據(jù)的加密序列中包含一個(gè)新的內(nèi)部生成的nonce。為實(shí)現(xiàn)此要求,GenDig生成(并由Read或Write命令使用)的數(shù)據(jù)保護(hù)密鑰必須使用內(nèi)部RNG,所以Gendig命令的輸入?yún)?shù)沒(méi)有隨機(jī)數(shù),而是SlotID。
????隨機(jī)數(shù)由硬件RNG的輸出和內(nèi)部種子值的組合生成,外部MCU無(wú)法訪問(wèn)該值。內(nèi)部種子存儲(chǔ)在EEPROM中,通常在每次通電或睡眠/喚醒循環(huán)后更新一次。更新后,該種子值保留在設(shè)備內(nèi)的SRAM寄存器中,如果設(shè)備進(jìn)入睡眠模式或電源斷開(kāi),該寄存器將失效。

4 通用I/O信息

4.1 字節(jié)和位排序

CryptoAuthentication對(duì)字節(jié)以及數(shù)據(jù)表中數(shù)字和數(shù)組的表示方式使用通用的排序方案:
所有多字節(jié)聚合單元都被視為字節(jié)數(shù)組,并按照索引#0首先接收或發(fā)送的順序進(jìn)行處理。
2字節(jié)(16位)整數(shù),典型的Param2,低字節(jié)優(yōu)先傳輸在總線上。

5 I2C接口

· 通信速度<1Mhz
· 喚醒的條件是SDA維持60us以上的低電平,這里我直接將IIC總線的頻率設(shè)置成100KHZ,然后發(fā)送字節(jié)0x00,低電平超過(guò)了60us就會(huì)被喚醒,喚醒之后延遲2.5ms就可以開(kāi)始通訊了。
在IIC寫(xiě)過(guò)程中,第一個(gè)字節(jié)是寫(xiě)信號(hào),第二個(gè)字節(jié)是Word Address Values,Word Address Values如下表所示:

????看起來(lái)也就4個(gè)word address value有用到,前面3個(gè)都很簡(jiǎn)單,但是后面的Command功能就多了,我們配置芯片和讀寫(xiě)操作都是通過(guò)這個(gè)Command展開(kāi)的,后面會(huì)講到。

5.1 I2C同步

????系統(tǒng)可能會(huì)失去與ATSHA204A上I/O端口的同步,例如,由于系統(tǒng)復(fù)位、I/O噪聲或某些其他情況。在這種情況下,ATSHA204A可能沒(méi)有按預(yù)期響應(yīng),可能處于休眠狀態(tài),或者可能在系統(tǒng)預(yù)期發(fā)送數(shù)據(jù)的時(shí)間間隔內(nèi)發(fā)送數(shù)據(jù)。當(dāng)系統(tǒng)和設(shè)備失去同步時(shí),I/O緩沖區(qū)中的任何命令都可能丟失,這時(shí)就需要同步芯片的I2C接口了。下面是I2C同步步驟:
(1).發(fā)送IIC起始信號(hào)
(2).發(fā)送九個(gè)時(shí)鐘周期的SDA_H(總線上會(huì)返回NACK)
(3).重新發(fā)送IIC起始信號(hào)
(4).發(fā)送IIC停止信號(hào)
(5).嘗試發(fā)送讀信號(hào),同步成功的話是會(huì)返回ACK的
(6).如果(5)有ACK,那么就發(fā)送Reset(Word Address Values)給芯片,以強(qiáng)制忽略可能已發(fā)送的任何部分輸入命令。如果(5)接收到的是NACK,那么芯片可能進(jìn)入睡眠模式,此時(shí)需要先將設(shè)備喚醒;如果芯片仍然沒(méi)有相應(yīng),那么它就是在執(zhí)行命令,此情況下需要等待tEXEC,再發(fā)送讀信號(hào)給芯片,芯片會(huì)有應(yīng)答的。

6 安全命令

這一小節(jié)講解的命令都是使用Word address value = Command展開(kāi)的,總線的寫(xiě)命令格式是這樣子的:

ByteName
IIC_address_Write寫(xiě)信號(hào)
Command字地址值0x03
Count數(shù)據(jù)包字節(jié)長(zhǎng)度(包含Count,Data,Checksum)
N Data如果命令有參數(shù)的話,非空
ChecksumCRC-16,多項(xiàng)式為0x8005

6.1 Status/Error Codes

芯片是沒(méi)有狀態(tài)寄存器的,但是輸出FIFO能返回一些狀態(tài)碼代表芯片的工作狀態(tài)。狀態(tài)有:

6.2 命令排序

6.2.1 命令打包

6.2.2 命令操作碼和執(zhí)行時(shí)間

????注意,在使用芯片的過(guò)程中,命令的執(zhí)行時(shí)間也是值得關(guān)心的,當(dāng)你在執(zhí)行完一條命令后,到從機(jī)的響應(yīng)這段期間就是命令的執(zhí)行時(shí)間,在這段時(shí)間內(nèi)嘗試讀,會(huì)無(wú)響應(yīng)(NACK)。

????后面我們會(huì)來(lái)學(xué)習(xí)上面涉及到的命令。在學(xué)習(xí)這些命令之前,我們先來(lái)了解區(qū)編碼和地址編碼。

6.2.3 區(qū)編碼

????命令數(shù)據(jù)幀中,我們使用參數(shù)1來(lái)指定命令訪問(wèn)的是哪一個(gè)區(qū),如下圖所示:

????可以看到,(1)配置區(qū)任何時(shí)候都能讀訪問(wèn)。未上鎖時(shí),部分內(nèi)存支持寫(xiě)。在上鎖或者加密后是寫(xiě)禁止的。
(3)OTP區(qū)在未上鎖時(shí)不允許讀,鎖上之后能讀,除了遺留模式。當(dāng)配置區(qū)未上鎖不允許寫(xiě);當(dāng)配置區(qū)上鎖數(shù)據(jù)區(qū)不上鎖支持寫(xiě)。
(4)Data區(qū)未上鎖是不能讀的,鎖上之后根據(jù)IsSecret和EncryptRead進(jìn)行讀操作。當(dāng)配置區(qū)未上鎖不允許寫(xiě);當(dāng)配置區(qū)上鎖數(shù)據(jù)區(qū)未上鎖支持寫(xiě)操作;當(dāng)數(shù)據(jù)區(qū)上鎖之后寫(xiě)訪問(wèn)通過(guò)WriteConfig位控制。

6.2.4 地址編碼

????命令數(shù)據(jù)幀中,我們使用參數(shù)2來(lái)指定命令訪問(wèn)的是區(qū)的哪個(gè)字地址,如下圖所示


????可以看到,Data有16個(gè)塊;Config有3個(gè)塊;OTP有2個(gè)塊,每個(gè)塊32字節(jié),即8個(gè)字,因此偏移offset占3個(gè)位。
下面我們就開(kāi)始了解指令吧。

6.2.5 CheckMac Command

????CheckMac命令計(jì)算和生成MAC響應(yīng),并將內(nèi)部MAC響應(yīng)與外部輸入的Digest進(jìn)行比較,返回一個(gè)布爾結(jié)果。
在運(yùn)行此命令之前,可以選擇運(yùn)行Nonce和/或GenDig命令,以在TempKey中創(chuàng)建和加載Key或Nonce值。
輸入?yún)?shù)格式:

參數(shù)1:Mode:bit0決定“key”(SHA消息的前32字節(jié))的源;
???????Mode:bit1決定“challenge/nonce”(SHA消息的第二個(gè)32字節(jié))的源。
???????Mode:bit2,如果TempKey被使用,這個(gè)位必須與TempKey.SourceFlag的值匹配。
???????Mode:bit3-4:0。
???????Mode:bit5,SHA消息中的8字節(jié),0:Zeros;1:OTP區(qū)。
???????Mode:bit6-7:0。
參數(shù)2:SlotID: bit0:3用于指定哪個(gè)內(nèi)部Slot用作響應(yīng)產(chǎn)生。
數(shù)據(jù)1:微控制器給的隨機(jī)數(shù),32字節(jié)
數(shù)據(jù)2:微控制器的響應(yīng),32字節(jié),這里的響應(yīng)最終是要跟CheckMac命令產(chǎn)生的內(nèi)部響應(yīng)做比較的。
數(shù)據(jù)3:其他數(shù)據(jù),目的是構(gòu)造一條SHA-256消息,該消息將與MAC消息完全匹配,通過(guò)比較MAC命令的SHA-256所使用的消息,其他數(shù)據(jù)可以定義為如下:

????輸出參數(shù):返回1個(gè)字節(jié),0代表相應(yīng)與芯片內(nèi)部計(jì)算出的摘要匹配;1代表不匹配。
????如果TempKey是計(jì)算值的一部分,Mode:bit2控制對(duì)隨機(jī)nonce的要求。如果bit2為1,則必須使用Nonce(固定)生成TempKey;如果為零,則必須使用Nonce(隨機(jī))生成TempKey。
如果比較結(jié)果匹配,則可以將目標(biāo)Slot值復(fù)制到TempKey中。如果SlotID為偶數(shù),則目標(biāo)Slot為SlotID+1,否則目標(biāo)插槽為SlotID。要進(jìn)行復(fù)制,必須滿足以下條件。如果它們不是全部為真,則ATSHA204A將返回比較結(jié)果,但不會(huì)復(fù)制Key值。
1.CheckMac的Mode參數(shù)的值必須為0x01或0x05。
2.目標(biāo)Key的SlotConfig.ReadKey必須為零。
3.與Slot對(duì)應(yīng)的Config.CheckMacSource的值必須與Mode:bit2匹配。
CheckMac命令執(zhí)行流程大致是:
TempKey與Slot或者隨機(jī)數(shù)組合,然后加入Sha認(rèn)證,認(rèn)證會(huì)生成一個(gè)摘要,將摘要與微處理器發(fā)送過(guò)來(lái)的響應(yīng)進(jìn)行匹對(duì),相同輸出0,不相同輸出1
。

6.2.6 DeriveKey命令

前面說(shuō)到這個(gè)命令是用來(lái)更新Slot內(nèi)容的,先來(lái)看看該命令的輸入?yún)?shù)格式:

????命令執(zhí)行之后將會(huì)返回1個(gè)有效字節(jié),表示命令執(zhí)行成功與否,為0x00表示成功。

????芯片組合key的當(dāng)前值和存儲(chǔ)在TempKey中的Nonce,然后將結(jié)果存放在目標(biāo)key Slot里面。注意,SlotConfig[目標(biāo)Key].Bit13必須為1,不然DeriveKey將返回錯(cuò)誤。
????如果SlotConfig[目標(biāo)Key].Bit12為0,即將與TempKey組合的源Key是命令行中指定的目標(biāo)Key;如果SlotConfig[目標(biāo)Key].Bit12為1,源Key就是目標(biāo)Key的Parent Key(這里我譯為上級(jí)Key),上級(jí)Key可以SlotConfig[目標(biāo)Key].WriteKey中找到。
在執(zhí)行DeriveKey命令之前,必須先運(yùn)行Nonce命令以在TempKey中創(chuàng)建有效的Nonce。根據(jù)輸入模式第二位的狀態(tài),該nonce可能是使用內(nèi)部RNG創(chuàng)建的,也可能是固定。
若SlotConfig[TargetKey].Bit15為1,則必須存在輸入MAC,即命令中的Data不能少。
如果SlotConfig[TargetKey].Bit12或者Bit15為1,并且SlotConfig[ParentKey].SingleUse為1,那么在UseFlag[ParentKey]為0的情況下命令最終將返回錯(cuò)誤。如果SlotConfig[TargetKey].Bit12和Bit15都0的話DeriveKey命令忽視目標(biāo)Key的SingleUse和UseFlag。
????注意該命令只對(duì)Slot0到7有效。

6.5.7 DevRev命令

????DevRev命令返回四個(gè)字節(jié)表示設(shè)備版本號(hào)。它可能會(huì)時(shí)不時(shí)更改。該指令比較簡(jiǎn)單,輸入?yún)?shù)格式如下:

成功執(zhí)行之后會(huì)返回四個(gè)有效字節(jié)。

6.5.8 GenDig命令

????GenDig命令使用SHA-256將存儲(chǔ)值與TempKey的內(nèi)容組合在一起,TempKey的內(nèi)容必須在執(zhí)行此命令之前有效。存儲(chǔ)值可以來(lái)自其中一個(gè)數(shù)據(jù)Slot、OTP頁(yè)、配置區(qū)域的前兩個(gè)頁(yè)或從硬件傳輸密鑰數(shù)組檢索。生成的摘要保留在TempKey中,可按以下三種方式之一使用:
1.它(結(jié)果)可以作為MAC、CheckMac或HMAC命令使用的消息的一部分。由于MAC響應(yīng)輸出包含GenDig計(jì)算中使用的數(shù)據(jù)和來(lái)自MAC命令的密鑰,因此它用于驗(yàn)證存儲(chǔ)在數(shù)據(jù)和/或OTP區(qū)域中的數(shù)據(jù)。
2.后續(xù)讀或?qū)懨羁梢允褂迷撜獮閿?shù)據(jù)提供身份驗(yàn)證和加密,在這種情況下,它又被稱為數(shù)據(jù)保護(hù)摘要。
3.通過(guò)使用傳輸密鑰數(shù)組中的值,此命令可用于安全個(gè)性化。生成的數(shù)據(jù)保護(hù)摘要可以被Write命令使用。
先來(lái)看看該命令的輸入?yún)?shù)格式:

參數(shù)1:選擇存儲(chǔ)值的區(qū),可以是Data、Config或者OTP。
????0x00,選擇的是Config區(qū),根據(jù)參數(shù)2(SlotID)來(lái)決定選擇配置區(qū)的 哪一塊數(shù)據(jù)作為組合對(duì)象,只能選擇第0塊和第1塊。
????0x01,選擇的是OTP區(qū),根據(jù)參數(shù)2(SlotID)來(lái)決定選擇第0/1塊數(shù) 據(jù)作為組合對(duì)象。
????0x02,選擇的是Data區(qū),根據(jù)參數(shù)2(SlotID)來(lái)決定組合對(duì)象是來(lái)自 Data區(qū)的某個(gè)Slot還是來(lái)自硬件陣列傳輸密鑰。
注意:SlotID<=15時(shí),GenDig命令會(huì)將TempKey.GenData置1,并且 TempKey.SlotID = SlotID(參數(shù)2)。
參數(shù)2:指定使用哪個(gè)密鑰,或者選擇哪個(gè)OTP塊。
Data: 如果使用CheckOnly Key那么這里應(yīng)該為SHA運(yùn)算填上4個(gè)字節(jié)。否則 忽視。
不管計(jì)算的結(jié)果摘要如何,我們都不能讀的到。TempKey.Valid如果是無(wú)效(0),命令執(zhí)行失敗返回Error;如果是有效(1),那么摘要已經(jīng)存放到TempKey中。
????如果命令執(zhí)行成功返回1個(gè)有效字節(jié)表示成功狀態(tài),0表示成功。

6.5.9 HMAC命令

????HMAC命令計(jì)算存儲(chǔ)在芯片中的密鑰的HMAC/SHA-256摘要、隨機(jī)數(shù)和其他信息。
正常使用步驟:
1.運(yùn)行Nonce命令加載輸入隨機(jī)數(shù),并可以選擇將其與生成的隨機(jī)數(shù)組合。此操作的結(jié)果是芯片內(nèi)部Tempkey存儲(chǔ)一個(gè)nonce。
2.可選地運(yùn)行GenDig命令,將設(shè)備中的一個(gè)或多個(gè)存儲(chǔ)值與nonce組合。結(jié)果存儲(chǔ)在設(shè)備內(nèi)部。
3.運(yùn)行此HMAC命令,將步驟1(和步驟2,如果需要)的輸出與EEPROM Key組合,以生成輸出響應(yīng)。
輸入?yún)?shù)格式如下:

參數(shù)1:Mode決定哪個(gè)區(qū)用于消息中。該字節(jié)描述如下:

????HMAC命令執(zhí)行成功的話返回32個(gè)有效字節(jié)(HMAC摘要)。

6.5.10 Lock命令

????Lock命令用于將配置區(qū)和Data(OTP)區(qū)上鎖。如果已經(jīng)上鎖了再執(zhí)行這條命令會(huì)返回錯(cuò)誤。
輸入?yún)?shù)格式如下:

????一般我們只需配置參數(shù)1的Bit0,和參數(shù)2,指定了哪個(gè)區(qū),區(qū)里邊的哪個(gè),不過(guò)我用的時(shí)候是把Param2直接設(shè)置成0。
執(zhí)行成功返回0。

6.5.11 MAC命令

????MAC命令計(jì)算存儲(chǔ)在設(shè)備中的密鑰的SHA-256摘要、隨機(jī)數(shù)以及設(shè)備上的其他信息。此命令的輸出是此消息的摘要。
正常使用步驟:
??1.運(yùn)行Nonce命令加載輸入隨機(jī)數(shù),并可以選擇將其與生成的隨機(jī)數(shù)組合。此操作的結(jié)果是設(shè)備內(nèi)部存儲(chǔ)一個(gè)nonce。
??2.可選地運(yùn)行GenDig命令,將設(shè)備中的一個(gè)或多個(gè)存儲(chǔ)值與nonce組合。結(jié)果存儲(chǔ)在設(shè)備內(nèi)部。
??3.運(yùn)行此MAC命令,將步驟1(和步驟2,如果需要)的輸出與EEPROM Key組合,以生成輸出響應(yīng)。
輸入?yún)?shù)格式如下:

????其中的參數(shù)1(Mode)的定義如下:
????其中注意Bit2,如果bit0或是bit1為1,表示數(shù)值取于Tempkey,那么bit2就要匹配Tempkey.sourceflag位,前面使用了Nonce命令的話,如果nonce命令中的nonce.mode等于0或者1,這里就等于0,如果nonce.mode等于3,這里就等于1.
????命令執(zhí)行完成將會(huì)返回32字節(jié)(SHA-256摘要)。

6.5.12 Nonce命令

????這條命令很常用,Nonce命令通過(guò)將內(nèi)部生成的隨機(jī)數(shù)與來(lái)自系統(tǒng)的輸入值相結(jié)合,生成一個(gè)Nonce,供后續(xù)GenDig、MAC、HMAC、Read或Write命令使用。生成的nonce存儲(chǔ)在TempKey內(nèi)部,生成的隨機(jī)數(shù)返回給系統(tǒng)。輸入值旨在防止針對(duì)主機(jī)的重播攻擊,必須由系統(tǒng)從外部生成,并使用此命令傳遞到設(shè)備中。它可以是任何持續(xù)變化的值,例如非易失性計(jì)數(shù)器、當(dāng)前實(shí)時(shí)時(shí)間等;也可以是外部生成的隨機(jī)數(shù)。
????為隨后的加密命令提供nonce值,輸入碼和輸出隨機(jī)數(shù)散列(are hashed)在一起。結(jié)果摘要(nonce)始終存儲(chǔ)在TempKey寄存器TempKey中。TempKey.Valid置1、TempKey.SourceFlag清0使內(nèi)部產(chǎn)生隨機(jī)數(shù)。
??或者,如果后續(xù)命令需要固定的nonce,則此命令也可以在傳遞模式下運(yùn)行。在這種情況下,輸入值必須為32字節(jié)長(zhǎng),并且直接傳遞給TempKey而無(wú)需修改。
輸入?yún)?shù)格式如下:

????在此再貼出Mode參數(shù)的定義表格:

????可以從Mode的表格中看出Bit0:1為0代表內(nèi)部隨機(jī)數(shù)和傳入芯片的Numln數(shù)據(jù)組合生成一個(gè)nonce存儲(chǔ)在TempKey中,在隨機(jī)數(shù)產(chǎn)生之前自動(dòng)更新EEPROM種子;為1代表內(nèi)部隨機(jī)數(shù)和傳入芯片的Numln數(shù)據(jù)組合生成一個(gè)nonce存儲(chǔ)在TempKey中,使用EEPROM中已存在的種子生成隨機(jī)數(shù),不更新EEPROM種子;為2無(wú)效;為3工作在旁路模式下,直接使用傳入芯片的值寫(xiě)入到TempKey。
值得注意的是命令中的Data有20個(gè)字節(jié)或者是32個(gè)字節(jié)長(zhǎng)度,那么怎么確定命令中Data的長(zhǎng)度呢?如果Mode[Bit0:1]為0或者1,那么Data為20個(gè)字節(jié)的隨機(jī)數(shù),為3則是32字節(jié)。另外為3命令執(zhí)行結(jié)果只返回1個(gè)字節(jié),否則返回的是32字節(jié)(隨機(jī)數(shù))。

6.5.13 Random命令

????顧名思義,該命令用來(lái)產(chǎn)生隨機(jī)數(shù)的。
????隨機(jī)數(shù)是通過(guò)硬件RNG的輸出和存儲(chǔ)在EEPROM或SRAM中的內(nèi)部種子值的組合生成的。外部系統(tǒng)可選擇在生成隨機(jī)數(shù)之前更新內(nèi)部存儲(chǔ)的EEPROM種子值。生成的隨機(jī)數(shù)可以作為nonce或random命令執(zhí)行的一部分,為了最高安全性,Atmel建議始終更新EEPROM種子。
下面是輸入?yún)?shù)格式:

????Mode設(shè)置為0可以確保更新EEPROM隨機(jī)數(shù)種子,一般我們就設(shè)置為0。
????命令執(zhí)行成功返回32字節(jié)的隨機(jī)數(shù)。

6.5.15 Read命令

????該命令用的頻率非常高,如果讀取SlotConfig.EncryptRead為1的對(duì)應(yīng)Slot,那么在執(zhí)行這條命令之前必須先執(zhí)行GenDig命令獲取加密使用的Key。SlotConfig.ReadKey中指定的密鑰必須已在GenDig計(jì)算中使用。
????該設(shè)備通過(guò)將從EEPROM讀取的每個(gè)字節(jié)與TempKey中相應(yīng)的字節(jié)進(jìn)行異或來(lái)加密要讀取的數(shù)據(jù)。不允許對(duì)配置和OTP區(qū)域進(jìn)行加密讀取。
????對(duì)于Data,如果數(shù)據(jù)區(qū)未上鎖,Read命令返回Error;否則,根據(jù)SlotConfig來(lái)對(duì)Slot進(jìn)行讀訪問(wèn)。如果SlotConfig.IsSecret置1和嘗試讀四字節(jié),最終只會(huì)返回Error。如果EncrytRead置1,Read命令按指定方式加密數(shù)據(jù)。如果IsSecret置1并且EncryptRead為0,命令執(zhí)行結(jié)果Error;如果IsSecret為0并且EncryptRead為0,命令返回的是明文的Slot數(shù)據(jù)。
????對(duì)于Config,數(shù)據(jù)允許在任何情況下讀取。
????對(duì)于OTP,如果OTP區(qū)未上鎖,不能讀。一旦鎖上,并且OTP模式?jīng)]設(shè)置成Legacy,所有的字都能被讀取;如果OTP模式設(shè)置成Legacy,只允許四字節(jié)讀,讀取地址0或者1將返回錯(cuò)誤。
下面是該命令的輸入?yún)?shù)格式:

????上面的表格理解起來(lái)也簡(jiǎn)單,再看看數(shù)據(jù)區(qū)的讀操作中涉及到的一個(gè)重要的表格:

????如果要讀取的Slot號(hào)是偶數(shù),那么TempKey.SourceFlag必須為Rand(隨機(jī)數(shù));如果Slot號(hào)為奇數(shù),TempKey.SourceFlag必須與相應(yīng)Slot的Config.CheckMacSource匹配。內(nèi)存區(qū)的數(shù)據(jù)異或上TempKey的值就能返回明文。
這里參考8981文檔,簡(jiǎn)單說(shuō)一下標(biāo)準(zhǔn)的加密讀取流程:
(1)運(yùn)行一次Random命令獲取高質(zhì)量隨機(jī)數(shù);
(2)運(yùn)行一次Nonce命令,將第一步的隨機(jī)數(shù)作為輸入?yún)?shù)使用,mode=1,執(zhí)行后更新TempKey;
(3)MCU使用相同的Nonce函數(shù)算出ATSHA204中的TempKey,并返回32字節(jié)的隨機(jī)數(shù)(Randout);
(4)運(yùn)行一次Gendig命令,傳參中的SlotID是讀取密鑰的ID號(hào),ID號(hào)等于想讀的Slot的ReadKey,比如我想讀Slot5的內(nèi)容,但是我們先前就將Slot5配置成加密讀取的,密鑰是存在Slot3(也就是Readkey);
(5)MCU使用相同的Gendig函數(shù)算出Tempkey的值;
(6)接下來(lái)就使用Read命令,指定讀取的Slot,返回32字節(jié),這32字節(jié)是密文的;
(7)將讀取到32字節(jié)與TempKey異或,這樣就得到了Slot里面的明文數(shù)據(jù)。
上面講到的Nonce函數(shù)和Gendig函數(shù)是Atmel提供的,可以在官網(wǎng)上下載得到,函數(shù)在help.c里面。

6.5.16 Write命令

????Write命令將一個(gè)4字節(jié)的字或一個(gè)32字節(jié)的8字塊寫(xiě)入設(shè)備上的一個(gè)EEPROM區(qū)域。根據(jù)此Slot的WriteConfig字節(jié)的值,微控制器可能需要在將數(shù)據(jù)發(fā)送到設(shè)備之前對(duì)其進(jìn)行加密。
????對(duì)于Data,如果配置區(qū)域已鎖定且數(shù)據(jù)區(qū)域未上鎖,則所有區(qū)域中的所有字節(jié)都可以使用純文本或加密數(shù)據(jù)寫(xiě)入,使用32字節(jié)方式寫(xiě)入。鎖定數(shù)據(jù)區(qū)域后,WriteConfig字節(jié)中的值控制對(duì)數(shù)據(jù)Slot的訪問(wèn)。如果此Slot的WriteConfig位設(shè)置為“始終”,則輸入數(shù)據(jù)應(yīng)以明文方式傳遞給設(shè)備。如果SlotConfig的位:14設(shè)置為1,則應(yīng)加密輸入數(shù)據(jù)并計(jì)算輸入MAC。
????對(duì)于Config,如果配置區(qū)域已鎖定或Zone:6為1,則此命令返回錯(cuò)誤;否則,將按請(qǐng)求寫(xiě)入字節(jié)。
????對(duì)于OTP,如果OTP區(qū)域已解鎖,則可以使用此命令寫(xiě)入所有字節(jié)。如果OTP區(qū)域被鎖定,且OTPmode字節(jié)為只讀或Legacy(遺留),則此命令返回錯(cuò)誤;否則,OTP模式為消耗模式,此命令將OTP區(qū)域中與輸入?yún)?shù)值中的零位對(duì)應(yīng)的位設(shè)置為零。當(dāng)OTP區(qū)域被鎖定時(shí),無(wú)論OTP模式如何,都不允許對(duì)其進(jìn)行加密寫(xiě)入。
輸入?yún)?shù)格式如下:

如果滿足以下四個(gè)條件,則僅允許在數(shù)據(jù)和OTP區(qū)域中進(jìn)行四字節(jié)寫(xiě)入:
???? *SlotConfig.IsSecret必須為0
???? *SlotConfig.WriteConfig必須為Always
????*輸入數(shù)據(jù)必須是沒(méi)加密的
????*Data/OTP區(qū)必須上鎖
在其他情況下,四字節(jié)寫(xiě)將會(huì)返回錯(cuò)誤。
命令上面的Address格式可以參考前面的Address編碼,如果是32位的寫(xiě)忽略Address[0:2]。
命令執(zhí)行成功返回0。

6.5.17 SHA命令

????SHA命令計(jì)算供系統(tǒng)通用的SHA-256摘要??梢匀菁{任何消息長(zhǎng)度。MCU負(fù)責(zé)發(fā)送最后一個(gè)塊的pad和length字節(jié)。
可以通過(guò)下面兩個(gè)步驟生成一個(gè)摘要:
1.初始化
????通過(guò)使用初始化常量覆蓋TempKey的當(dāng)前值來(lái)設(shè)置SHA-256計(jì)算單元。強(qiáng)制TempKey標(biāo)志與Nonce(Fixed)命令后的狀態(tài)匹配。此模式不接受任何消息字節(jié)。
2.計(jì)算
????在這種模式下,可以多次調(diào)用該命令以向消息中添加字節(jié)。此模式的每次迭代必須包含64字節(jié)的消息。輸出緩沖區(qū)始終包含摘要,如果需要,可以忽略摘要。摘要也會(huì)加載到TempKey中。
????先執(zhí)行初始化再執(zhí)行計(jì)算。微控制器可以根據(jù)需要運(yùn)行任意多個(gè)SHA(Compute)命令來(lái)計(jì)算所需摘要。如果在“Init”迭代和最后一次“Compute”迭代之間運(yùn)行SHA以外的任何命令,則返回錯(cuò)誤。如果模式字節(jié)的值不是0或1,則該命令還返回分析錯(cuò)誤。
????如果設(shè)備處于睡眠狀態(tài)或看門(mén)狗計(jì)時(shí)器過(guò)期,則存儲(chǔ)在TempKey中的中間摘要將無(wú)效。系統(tǒng)軟件必須確保在單個(gè)喚醒/看門(mén)狗間隔期間將整個(gè)消息發(fā)送至設(shè)備。
下面是該命令的輸入?yún)?shù)格式:

????應(yīng)用SHA需要調(diào)用該命令兩次,一次是初始化,一次是運(yùn)算。
????初始化成功返回0,計(jì)算摘要成功返回32字節(jié)的SHA-256摘要。

7 庫(kù)文件的使用

解壓之后會(huì)有兩個(gè)文件夾:
sha204_library文件夾和sha204_helper文件夾
sha204_library文件夾目錄內(nèi)容如下:

????其中arch文件夾里面存的是IIC的驅(qū)動(dòng)和延時(shí)的驅(qū)動(dòng),平臺(tái)不一樣,我們可能需要修改它們。
????sha204_comm.c文件主要是提供CRC計(jì)算檢查,芯片的喚醒和收發(fā)函數(shù)API,不是底層。
????sha204_comm_marshaling.c有命令執(zhí)行函數(shù),我們所有的命令都是通過(guò)調(diào)用里面的一個(gè)函數(shù)執(zhí)行的。

uint8_t sha204m_execute(uint8_t op_code, uint8_t param1, uint16_t param2,uint8_t datalen1, uint8_t *data1, uint8_t datalen2, uint8_t *data2, uint8_t datalen3, uint8_t *data3,uint8_t tx_size, uint8_t *tx_buffer, uint8_t rx_size, uint8_t *rx_buffer)

????其中的傳參tx_size和rx_size其實(shí)不起作用,函數(shù)會(huì)根據(jù)命令來(lái)決定tx_size和rx_size是多大,我們需要做的是tx_buffer和rx_buffer指向的緩存足夠就可以,40個(gè)字節(jié)應(yīng)該就夠了。
????sha204_i2c.c文件就是調(diào)用底層IIC驅(qū)動(dòng)對(duì)芯片進(jìn)行訪問(wèn),比如進(jìn)入空閑模式,進(jìn)入睡眠模式,復(fù)位IO等等。
sha204_helper文件目錄如下:

????我們可以利用sha204_helper.c文件里面提供的函數(shù)算出芯片內(nèi)部的TempKey等數(shù)據(jù),實(shí)現(xiàn)對(duì)稱加密。

8 總結(jié)

????關(guān)于ATSHA204的了解就到這。
????在應(yīng)用的過(guò)程,筆者使用的是AtmelSamE70Q21做主控,使用TWI接口實(shí)現(xiàn)與ATsha204芯片的通訊,過(guò)程中出現(xiàn)點(diǎn)小問(wèn)題就是不能讀取TWI_SR寄存器里面的NACK位來(lái)判斷從機(jī)有沒(méi)有響應(yīng),導(dǎo)致我讀ATSHA204命令執(zhí)行響應(yīng)需要中間靠延時(shí)來(lái)確保在執(zhí)行時(shí)間之后正常讀取執(zhí)行結(jié)果數(shù)據(jù)。

總結(jié)

以上是生活随笔為你收集整理的ATSHA204芯片手册阅读笔记的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

91成人网在线 | 日日夜夜精品网站 | 国产精品黄色 | 精品欧美一区二区三区久久久 | 日韩视频免费在线观看 | 国产又粗又猛又色 | 狠狠狠狠狠干 | 精品久久一级片 | 最近字幕在线观看第一季 | 日韩高清在线一区二区三区 | 成人一区二区在线观看 | 国产高清黄 | 日韩a在线看 | 日韩精品久久久久 | 精品在线观看一区二区三区 | 欧美日韩在线免费视频 | 欧美性受极品xxxx喷水 | 久久一区二区三区超碰国产精品 | 日韩两性视频 | 婷婷丁香激情 | 91精品国产三级a在线观看 | 国产精品1区| 国产美女免费观看 | 丰满少妇在线观看 | 91香蕉视频色版 | japanesefreesexvideo高潮 | 久久亚洲免费 | 夜夜天天干 | 国产精品成人久久久 | 黄色亚洲在线 | 综合国产视频 | 天天操天天色天天射 | 五月天综合激情 | 麻豆成人网 | 天堂av网在线 | 免费观看av网站 | 久久久国内精品 | 亚洲人成网站精品片在线观看 | 中文字幕一区二区三区四区 | 一级a性色生活片久久毛片波多野 | 国产黄色片网站 | 国产午夜三级一二三区 | 欧美一级免费在线 | 久久久精品久久日韩一区综合 | 久久国产亚洲精品 | av一级在线 | 日韩精品一区二区在线观看视频 | 五月天久久婷 | 久久精品欧美一区 | 天天色天天操天天爽 | 久久久精品高清 | 伊人亚洲综合网 | 久草99| 在线成人欧美 | 久久久综合 | 天天曰夜夜操 | 少妇精69xxtheporn | 天天干,天天操 | 日韩色在线观看 | 欧美少妇18p | 天天干夜夜 | 国产精品久免费的黄网站 | 欧美一区二区三区在线视频观看 | 亚洲黄色成人av | 奇米影视999 | 婷婷伊人综合亚洲综合网 | 超碰人人干人人 | 国产高清视频免费在线观看 | 久久色网站 | 一本一道久久a久久精品蜜桃 | 欧美a级成人淫片免费看 | 亚洲综合色av | 国产精品黄色 | 久久久999精品视频 国产美女免费观看 | 99久久婷婷国产综合亚洲 | 婷婷六月综合网 | 毛片的网址 | 亚洲色综合 | 国产一区二区免费看 | 国产电影黄色av | 国产视频91在线 | 欧美日韩亚洲在线观看 | 日韩精品视频在线免费观看 | 人人射av | 超碰人人做| 久久视| 涩涩色亚洲一区 | 欧美黑人巨大xxxxx | 久久99精品久久久久婷婷 | 黄色在线看网站 | 欧美性大战 | 99国产精品久久久久久久久久 | 伊人婷婷久久 | 日韩精品不卡在线观看 | 黄色三级网站 | 国产黄色av网站 | 在线观看av国产 | 久久久久久久久久久久国产精品 | 怡红院久久| 亚洲片在线资源 | 久久久免费| 婷婷五天天在线视频 | 天天操天天操 | 日韩精品一区二区三区在线视频 | 色视频在线免费 | 日本不卡一区二区三区在线观看 | 国产精品免费在线视频 | 色综合网 | 香蕉视频导航 | 天天av综合网| 在线观看中文字幕一区 | 日韩精品在线视频免费观看 | 久久综合加勒比 | www.久久精品视频 | 亚洲人成网站精品片在线观看 | 日韩欧美在线视频一区二区 | 中文字幕在线视频一区 | 日韩欧美网址 | 亚洲成人软件 | 日本在线视频网址 | 欧产日产国产69 | 婷婷色av | 日韩精品你懂的 | 午夜手机电影 | 国产资源精品 | 国产在线观看一区 | 81国产精品久久久久久久久久 | 国产一级二级在线播放 | 国产精品视频全国免费观看 | 手机av在线免费观看 | 日韩三级视频在线观看 | 97看片网 | 国内精品毛片 | 激情婷婷| 精品福利在线视频 | 国产亚洲精品久久久久久久久久久久 | 日韩色高清 | 国产精品成人国产乱一区 | 狠狠的干 | 夜夜澡人模人人添人人看 | 免费电影一区二区三区 | 国产成人精品亚洲 | 久久爱综合 | 99精品国产亚洲 | 日本黄色大片免费 | 欧美一级电影片 | 免费国产在线观看 | 免费成人在线电影 | 国产不卡在线看 | 超碰公开在线观看 | 国产色视频123区 | 欧美俄罗斯性视频 | 久久免费视频这里只有精品 | av在线激情 | 成人在线视频你懂的 | av在线官网| 久久国产精品区 | 中文字幕在线观看完整版 | 在线视频欧美亚洲 | 久久精品高清 | 亚洲精品国产精品国自 | 国产一区二区在线影院 | 欧美黑人xxxx猛性大交 | 国产中文字幕国产 | 久久av高清 | 97偷拍视频 | 91chinese在线 | 日韩高清成人 | 国产99久久久欧美黑人 | 91网在线看 | 国产麻豆果冻传媒在线观看 | 特级黄色视频毛片 | 国产日韩av在线 | 色综合综合 | 午夜av免费看| 999久久久久久久久 69av视频在线观看 | 婷婷资源站 | 99r国产精品| 亚洲草视频 | 视频福利在线 | 激情久久综合网 | av大片免费在线观看 | 国产亚洲视频在线 | www.狠狠色 | 亚洲精品小视频在线观看 | 久久免费视频精品 | 狠狠88综合久久久久综合网 | 日韩二三区 | 高清av在线免费观看 | 黄色大片视频网站 | www.狠狠色 | 五月天天色 | 色天天天 | 日韩久久精品一区 | 黄色片免费在线 | 插综合网 | 亚洲精品在线观看av | 天天色中文 | 中文字幕91 | 九九九热精品免费视频观看网站 | 特黄免费av | 美女在线免费观看视频 | 超碰97人| 91禁看片| 色网站中文字幕 | 日韩欧美电影 | 欧美 亚洲 另类 激情 另类 | 少妇av片| 香蕉视频久久久 | 日本精品午夜 | 黄色高清视频在线观看 | 99产精品成人啪免费网站 | 九九久久国产 | 四虎永久免费在线观看 | 国产色婷婷精品综合在线手机播放 | 在线观看日韩精品 | av超碰在线| 亚洲男女精品 | 中文字幕av全部资源www中文字幕在线观看 | 久久精品欧美一区二区三区麻豆 | 五月婷婷免费 | 亚洲日本一区二区在线 | 一级c片| 丰满少妇麻豆av | 天天在线免费视频 | 国产中文字幕在线播放 | 波多野结衣视频一区 | 91免费在线看片 | 色综合久久88色综合天天6 | 久操伊人 | 综合网av | www五月| 亚洲午夜精品一区 | 国产第一福利 | 国产99久久久国产 | 久久99亚洲精品久久 | 亚洲国产精品电影 | 国产精品嫩草影院99网站 | 91视频在线看| 日日操日日操 | 国产原创中文在线 | 男女日麻批| 国产一级淫片免费看 | 久久激情小视频 | 999国产在线 | 9在线观看免费高清完整版 玖玖爱免费视频 | 日本三级吹潮在线 | 日韩一区二区三区视频在线 | 色网站在线免费观看 | 粉嫩av一区二区三区四区五区 | 日韩高清在线一区二区 | 国产在线观看h | 亚洲精品66 | 国产在线观看午夜 | 免费看成人a | 久久综合中文字幕 | 狠狠操欧美 | 99re国产视频| 欧洲色吧| 亚洲精品麻豆 | 国产精品视频app | 丁香视频| 国产精品99久久久久久久久久久久 | 精品国产一区二区三区久久久 | 超碰97久久| 午夜精品视频一区二区三区在线看 | 美女视频永久黄网站免费观看国产 | 亚洲午夜精品一区 | 久久人人爽人人爽人人 | 免费看日韩 | 在线小视频你懂得 | 97人人超碰在线 | 在线中文字幕观看 | 天天激情天天干 | 五月激情六月丁香 | 国产破处在线视频 | 天天av资源 | 国产玖玖精品视频 | 亚洲午夜久久久久 | 在线观看国产 | 国产精品女同一区二区三区久久夜 | 精品欧美日韩 | av 一区 二区 久久 | 精品在线观看视频 | 欧美精品视 | 狠狠操天天射 | 日本不卡123区 | 国产精品久久久久aaaa | 久久精品国产精品 | 99热这里只有精品在线观看 | 国产成人一区三区 | 看v片| 亚洲精品五月天 | 人人澡人人爽欧一区 | 亚洲成年片 | 综合在线观看色 | 免费看一级| 欧美伦理电影一区二区 | 国产一区视频在线观看免费 | 成年人电影免费在线观看 | 免费精品久久久 | 日韩精品中文字幕在线观看 | 久久综合久久综合九色 | 久久久久久久久久久精 | 国产999精品视频 | 高清一区二区三区 | 成人网在线免费视频 | 国产999久久久| 天堂av在线 | 欧美色黄 | 亚洲女欲精品久久久久久久18 | 69欧美视频| 中文欧美字幕免费 | 涩涩网站在线看 | 99视频在线精品免费观看2 | 日韩精品在线观看av | 色www永久免费 | 国产精品自产拍在线观看网站 | 色操插| 欧美精品一区二区三区四区在线 | 中文电影网 | 五月天.com| 96精品视频 | 久久短视频 | 国产精品福利无圣光在线一区 | 欧美极品久久 | 日韩欧美精品一区二区 | 亚洲国产中文在线 | 96精品高清视频在线观看软件特色 | av久久久| 免费日韩视 | 日韩欧美电影网 | 午夜视频在线观看一区二区三区 | www.夜夜爽 | 亚洲成人二区 | 久久婷婷精品 | 在线看国产一区 | 久久久久久久久免费 | 一区二区三区免费在线观看视频 | 日韩精品一区二 | 成人一级| 免费成人在线网站 | 波多野结衣久久资源 | 久草在线网址 | 在线视频成人 | 看v片| 久久国内视频 | 欧洲精品码一区二区三区免费看 | 99成人免费视频 | 99久久精品日本一区二区免费 | 亚洲天堂网在线观看视频 | 黄色大片国产 | 天天爽天天搞 | 国产视频在线观看一区二区 | 国产在线一线 | 四虎在线观看 | 国产专区在线播放 | 中文字幕亚洲欧美日韩2019 | 在线国产视频观看 | 日韩免费三区 | 天天综合网在线 | 欧美日韩国产一二三区 | 国产精品久久久久久影院 | 欧美91精品国产自产 | 成人午夜电影久久影院 | 97超碰资源 | 国产在线色视频 | 成人中文字幕av | 久久久午夜精品福利内容 | 日日夜夜天天久久 | 久久在视频 | 成年人国产在线观看 | 国产亚州精品视频 | 97人人澡人人添人人爽超碰 | 福利二区视频 | 久久视频中文字幕 | 五月天激情视频在线观看 | 伊人精品在线 | 免费观看成人网 | 国产精品一区二区三区四 | 碰超人人 | 久久精品之 | 在线精品视频在线观看高清 | 99视频精品| 久久激情视频 久久 | 亚洲成人精品久久 | 欧美日韩精品区 | 国产免费嫩草影院 | 欧美成人精品在线 | 国产高清在线观看 | 在线免费观看视频一区二区三区 | 国产精品亚州 | 日韩黄色在线电影 | 国产精品mv | 日本精a在线观看 | 日韩免费在线播放 | 久久精品中文字幕少妇 | 国产成人精品亚洲 | 91一区啪爱嗯打偷拍欧美 | 一区二区三区在线电影 | 九九久久免费视频 | 一区二区三区影院 | 久久不色 | 热久久免费视频精品 | 国产色拍拍拍拍在线精品 | 黄色免费观看网址 | 狠狠躁夜夜躁人人爽超碰91 | 亚洲成人国产精品 | 亚洲天天 | 日韩精品一区二区久久 | 色综合网 | 91精品久久久久久久99蜜桃 | 韩国av永久免费 | 亚洲美女免费精品视频在线观看 | 丝袜美女在线 | wwwwwww黄| 人人爽人人爽人人片av免 | 91在线看黄 | 一区二区三区视频网站 | 日日夜夜精品视频 | 91tv国产成人福利 | 日韩在线国产精品 | www.夜夜夜| 国产精品视频一二三 | bbb搡bbb爽爽爽 | 一级一片免费视频 | 日本免费久久高清视频 | 日日日日干 | 视频国产| 在线看v片成人 | 97免费在线观看视频 | 欧美激情精品久久久久久 | 久久的色 | 成人av在线直播 | 国产二区视频在线观看 | 国产专区在线 | 国产精品一区二 | 久久精品中文字幕免费mv | av在线不卡观看 | 在线观看精品一区 | 91久久精品日日躁夜夜躁国产 | 欧美日本日韩aⅴ在线视频 插插插色综合 | 免费精品视频在线观看 | 国产美女视频免费观看的网站 | 欧美高清视频不卡网 | 久久久久久久久毛片 | 中文字幕一区在线观看视频 | 日日干夜夜干 | 丁香视频全集免费观看 | 久久久国产精品亚洲一区 | 亚洲视频第一页 | 99re国产视频 | 超碰人人舔 | 成人av高清在线 | 69国产盗摄一区二区三区五区 | 99精品福利 | av在线h| 欧美在线aaa | 国产精品入口麻豆www | 93久久精品日日躁夜夜躁欧美 | 久久亚洲影院 | 五月婷婷丁香激情 | 99精品久久久久久久 | 欧美精品久久久久久久亚洲调教 | 国产中文字幕视频在线观看 | 99成人精品 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 在线视频 国产 日韩 | 国产精品第一页在线 | 狠狠操操| www.五月天 | 国内久久视频 | 国产精品 视频 | 丁香导航 | 黄色毛片视频免费 | 欧美激情精品久久久久 | 国产字幕av | 亚洲国产精品传媒在线观看 | 成人久久久久 | 久久精品美女视频网站 | 久久久久久免费网 | 深夜免费小视频 | 精品一区在线 | 亚洲精品久久久久999中文字幕 | 精品国产一区二区三区在线 | 欧美日韩国产亚洲乱码字幕 | 超碰在线最新地址 | 免费av的网站 | 中文字幕在线日亚洲9 | 国产精品美女久久久久aⅴ 干干夜夜 | 四虎在线观看精品视频 | 综合精品在线 | 四虎影视成人精品国库在线观看 | 麻豆一区二区 | 日韩欧美国产激情在线播放 | 天天曰天天射 | 久久不卡av | 91精品在线播放 | 毛片二区 | 国产一级免费在线观看 | 五月天天av | 天天操天天干天天 | 国产视频一区精品 | 日韩在线观看av | a在线一区 | 91超在线 | 99视频在线精品国自产拍免费观看 | 一区二区激情视频 | 国产精品99久久免费黑人 | 国产精品成人国产乱 | 激情黄色一级片 | 亚洲国产精品一区二区尤物区 | 波多野结衣最新 | 在线看免费 | 亚洲婷婷在线视频 | 精品福利网站 | 午夜骚影 | 亚洲综合在线观看视频 | 色综合久久久久综合体 | 四虎成人精品永久免费av九九 | 在线视频99 | 超碰人人草 | 美女网站视频一区 | 色网站在线免费观看 | 中文在线字幕免 | 亚洲成人精品在线 | 国产精品毛片一区视频播不卡 | 91精品无人成人www | 欧美成人精品欧美一级乱黄 | 成人av网址大全 | 午夜精品久久久久久久99热影院 | 欧美性色综合 | 亚洲成年片 | 一级黄色片在线播放 | 麻豆视频大全 | 亚洲精品男人的天堂 | 亚洲午夜av | 夜夜澡人模人人添人人看 | 久久免费电影网 | 国产在线精品一区二区 | 精品在线观 | 日韩欧美国产精品 | 韩国av永久免费 | 91视频a| 久久99国产精品自在自在app | 欧美aa在线 | 久久久久久高潮国产精品视 | 日韩精品久久久免费观看夜色 | 97超碰人人澡人人爱学生 | 国产精品成人久久久久久久 | 玖玖视频精品 | 91成人天堂久久成人 | 成人全视频免费观看在线看 | 在线观看911视频 | 国产精品高潮久久av | 久久久久国产一区二区三区 | 美女黄视频免费看 | 日本公妇在线观看高清 | 色婷婷www | 91精品在线视频观看 | 中文字幕视频网站 | 成人欧美一区二区三区黑人麻豆 | 亚洲一二三在线 | 国产精品原创在线 | 很黄很黄的网站免费的 | av在线电影免费观看 | 国产精品久久久久久久久搜平片 | 在线观看黄网站 | 久久久国产精品人人片99精片欧美一 | 久久久久电影网站 | 国产系列精品av | 日本二区三区在线 | 久久国产亚洲精品 | 国产在线黄色 | 人人插人人费 | 2022久久国产露脸精品国产 | 中文字幕在线观看的网站 | 国产又粗又猛又黄又爽视频 | 久久综合九色欧美综合狠狠 | 在线高清一区 | 探花视频网站 | www.色爱| 黄色小说在线观看视频 | 免费视频18| 最近av在线 | 国产v视频| 亚洲国产69| 日韩欧美国产成人 | 在线免费观看黄 | 香蕉影院在线播放 | 精品一区精品二区高清 | 国产精品美女久久久久久久久 | 国产91精品一区二区 | 91av色| 天天色天天爱天天射综合 | 久艹视频免费观看 | 国产99久久九九精品 | 精品免费99久久 | 在线精品视频在线观看高清 | 欧美网址在线观看 | 97人人爽人人 | 97视频在线免费 | 99久久精品费精品 | 婷婷中文字幕综合 | 黄色软件网站在线观看 | 狠狠操影视 | 亚洲最大免费成人网 | 中文字幕免费在线 | 精品视频区 | 中文字幕 国产视频 | 亚洲第一久久久 | 97精品国产97久久久久久免费 | 久久人人爽av | 久热香蕉视频 | 99九九99九九九视频精品 | 天天干.com | 日韩大片在线观看 | 国产精选在线观看 | 久久精品在线视频 | 日韩视频a| 久久成视频 | 国产精品99久久久久久久久 | 中文字幕av在线播放 | 久久福利剧场 | 中文字幕888 | aaa亚洲精品一二三区 | 色五月成人 | 麻豆影视在线观看 | 99久久久国产精品免费观看 | 久久五月情影视 | 欧美国产不卡 | 天天av天天 | 亚洲 综合 精品 | 日韩国产欧美在线视频 | 久久开心激情 | 伊人成人激情 | 久久免费电影网 | 久久99亚洲精品久久久久 | 精品久久国产一区 | 国产精品久久久999 国产91九色视频 | 天天躁天天躁天天躁婷 | 久久久99精品免费观看乱色 | 成人黄色大片在线免费观看 | 91在线你懂的 | 激情五月激情综合网 | 亚洲成人黄色在线 | 最近中文字幕在线中文高清版 | 色福利网站| 99精品欧美一区二区三区黑人哦 | 国产天天爽 | 国产精品亚洲片夜色在线 | 综合色狠狠 | 成人国产在线 | 久久成人资源 | 久爱综合| 久青草视频| 国产中文视频 | 成人午夜av电影 | 色综合色综合色综合 | 国产a免费 | av电影免费在线看 | 中文字幕在线观看视频网站 | 日韩欧美精品在线 | 在线v片免费观看视频 | 日日狠狠| 91在线视频免费播放 | 色婷婷国产精品一区在线观看 | av蜜桃在线 | 久久99热精品这里久久精品 | 日韩乱码中文字幕 | 91视频这里只有精品 | 97超在线视频 | 91精品在线播放 | av先锋影音少妇 | 亚洲成人第一区 | 人人爱人人射 | 毛片888 | 中文字幕精品www乱入免费视频 | 91在线看黄| 在线电影av| 天天久久夜夜 | 亚洲视频在线观看免费 | 久久亚洲私人国产精品va | 精品久久久久久电影 | 五月激情av | 菠萝菠萝在线精品视频 | 狠狠干网站 | 亚洲视频999 | 天天干夜夜想 | 日韩电影一区二区在线 | 国产精品日韩欧美一区二区 | 国产玖玖精品视频 | 国产精品久久久久久69 | 在线观看播放av | 日韩黄色免费看 | 精品人人人 | 精品国产亚洲日本 | 久久亚洲专区 | 色婷婷久久久综合中文字幕 | 中文av在线免费观看 | 精品免费在线视频 | 中文字幕在线观看2018 | 亚洲天堂网在线观看视频 | 一级免费片 | 国产又黄又爽又猛视频日本 | 在线色视频小说 | 五月婷婷综合网 | 免费看在线看www777 | 国产欧美综合在线观看 | 国产偷v国产偷∨精品视频 在线草 | 久草视频在线资源 | 久久精品4 | 日批视频国产 | 国产.精品.日韩.另类.中文.在线.播放 | 中文不卡视频 | 91av视屏| 婷婷国产精品 | 亚洲精品视频久久 | 久久伦理 | 久久精品免费播放 | 91av原创| 国产视频精品网 | 日韩av高清在线观看 | 在线观看视频中文字幕 | 探花视频免费观看 | 亚洲欧美视频一区二区三区 | 亚洲精品资源 | 欧美日韩首页 | 午夜在线资源 | 欧美成人xxxxxxxx | 国产高清不卡一区二区三区 | 色婷婷激情电影 | 狠狠色丁香久久婷婷综合_中 | 亚洲最新视频在线播放 | 黄色免费网站大全 | 一区二区三区视频在线 | 999久久久久久久久6666 | 国内视频| 91九色免费视频 | 免费观看的黄色片 | 国产中文字幕三区 | 欧美韩国日本在线 | 黄色av影视 | 91九色porny在线 | 国产成人精品在线观看 | 欧美精品资源 | 国产自产高清不卡 | 精品国产亚洲在线 | 黄色免费观看网址 | 亚洲免费成人 | www免费在线观看 | 国产手机视频在线观看 | 婷婷久久一区二区三区 | 精品免费在线视频 | 精品国产免费看 | 欧美日韩国产精品一区 | 狠狠狠色丁香婷婷综合激情 | 国产 视频 高清 免费 | 亚洲精品国产精品国 | 欧美日韩免费观看一区二区三区 | 国产美女搞久久 | 99中文在线 | 中文字幕精品在线 | 三级小视频在线观看 | 91超在线 | 国产精品女同一区二区三区久久夜 | 在线免费精品视频 | 99av国产精品欲麻豆 | 激情网站网址 | 91麻豆精品国产午夜天堂 | 狠狠干 狠狠操 | 亚洲国产伊人 | 国产四虎影院 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 天天操天天爽天天干 | 在线观看免费黄视频 | 久久人人射 | 免费午夜视频在线观看 | 国产91全国探花系列在线播放 | 四虎在线视频 | 国产在线美女 | 国产高清av| 中文字幕久久精品 | 99热精品在线观看 | 91在线中文 | 91成人免费看片 | 超碰在线中文字幕 | 麻豆传媒一区二区 | 在线观看视频一区二区三区 | av在线成人 | 久久久国产精品人人片99精片欧美一 | 人人插人人草 | 国产免费亚洲高清 | 欧美成人在线免费 | 国产精品区在线观看 | 999成人网| 毛片a级片| 99久e精品热线免费 99国产精品久久久久久久久久 | 欧美午夜视频在线 | 国产中文字幕视频在线 | 绯色av一区 | 色就是色综合 | 99爱国产精品 | 手机在线看片日韩 | 亚州国产精品视频 | 中文字幕乱码日本亚洲一区二区 | 爱色av.com| 99精品视频在线观看视频 | 黄色成人在线 | av一区在线播放 | 丁香婷五月 | 色婷婷视频在线观看 | 特级xxxxx欧美| 久久免费看片 | 国产成人精品一区二 | 国产高清 不卡 | 国内精品久久久久久久久久久 | 欧美专区日韩专区 | 色综合天天色综合 | 久久久久久久久久福利 | 日韩欧美69 | 国产不卡一区二区视频 | 成人va天堂| 久久久久久久久久网站 | 99精品国产高清在线观看 | 激情综合站 | 免费看的av片 | 亚洲精品视频网址 | 日韩v在线| 国产精品va最新国产精品视频 | www最近高清中文国语在线观看 | 国产成人久久 | 视频一区二区国产 | 国产成人av电影 | 一级一片免费视频 | 97偷拍视频 | 婷婷精品国产欧美精品亚洲人人爽 | 色婷婷视频 | 91丨精品丨蝌蚪丨白丝jk | 午夜.dj高清免费观看视频 | 99久久国产免费,99久久国产免费大片 | 欧美日韩免费在线观看视频 | 亚洲精品在线一区二区三区 | 国产在线观看a | 人人射人人 | 手机看片中文字幕 | 精品国产一区二区三区在线观看 | 国产亚洲婷婷 | 波多野结衣视频一区二区三区 | 米奇影视7777 | 中文字幕在线视频网站 | 天天操天天操天天操天天 | 在线黄色免费av | 亚洲国产日韩一区 | 日韩久久激情 | 男女免费视频观看 | 久久成人综合视频 | 久香蕉| 亚洲精品国产成人av在线 | 国产香蕉97碰碰碰视频在线观看 | 国产性天天综合网 | 91女神的呻吟细腰翘臀美女 | 黄av免费在线观看 | 99精品在线免费视频 | 天堂中文在线视频 | 日本在线观看中文字幕 | 久久久性 | 麻豆视频免费看 | 久久高清 | 五月综合激情 | 亚洲经典精品 | jizz18欧美18 | 日韩视频免费看 | 四虎在线永久免费观看 | 黄色av三级在线 | 国产精品国产三级国产不产一地 | 91日韩在线播放 | 日韩中文字幕免费看 | 一二区电影 | 热久久国产精品 | 成人久久国产 | 免费高清av在线看 | 色av婷婷 | 99精品国产免费久久 | 国产精品久久一 | 欧美成人理伦片 | 亚洲精品一区二区三区高潮 | 日韩av片无码一区二区不卡电影 | 狠狠干网 | 丝袜网站在线观看 | 色哟哟国产精品 | 国产日本三级 | 五月婷婷综合网 | 久草线 | 午夜三级福利 | 911久久 | 久草在线免费看视频 | 欧美精品乱码99久久影院 | 欧美日韩精品综合 | 欧美男女爱爱视频 | 日韩在线不卡视频 | 日韩av片无码一区二区不卡电影 | 91禁在线看| 精品久久一级片 | 久久精品一区二区三区四区 | 婷婷色中文| 中文字幕视频一区 | 日韩动态视频 | 欧美午夜精品久久久久 | 婷婷av资源 | 久久国产福利 | 久久综合久久综合这里只有精品 | 国内精品久久久久久久久久清纯 | 免费h漫在线观看 | a黄在线观看 | 99久久久久久久久 | 99riav1国产精品视频 | 美女av电影 | 久久99精品国产一区二区三区 | 久久国产精品免费观看 | 九九色在线观看 | 成人一区二区三区在线 | 成年人黄色大片在线 | 美国av大片| 国产无套精品久久久久久 | 狠狠色丁香久久婷婷综 | 三级在线国产 | 91在线看 | 日韩黄色av网站 | 亚洲综合在线观看视频 | 九色porny真实丨国产18 | 黄色片视频在线观看 | 五月天中文在线 | 中文av网 | 国产中文字幕一区二区 | 国产精品免费观看视频 | 亚洲欧美精品在线 | 97免费视频在线 | 免费视频a | 久久久精品久久 | 日本成人免费在线观看 | 亚洲国产手机在线 | 91在线播| 久草在线手机观看 | 成人毛片a | 超碰激情在线 | 久久躁日日躁aaaaxxxx | 久久艹影院 | 日韩69视频 | 在线观看视频亚洲 | 97碰在线| 日韩精品 在线视频 | 麻豆一二三精选视频 | 亚洲日本一区二区在线 | 国产精品成人久久久久 | 国产在线视频一区二区三区 | 一二三区高清 | 国产精品 中文字幕 亚洲 欧美 | 不卡电影一区二区三区 | 在线观看av大片 | 69国产精品成人在线播放 | 免费黄色一区 | 91最新在线视频 | 日韩电影久久 | 国产精品免费久久久久影院仙踪林 | 欧美视频一区二 | 久99久在线 | 欧美成人亚洲成人 | 国产精品欧美 | 亚洲伊人天堂 | 国产亚洲精品xxoo | 久久国产精品久久精品国产演员表 | 97网在线观看 | 亚洲区视频在线 | 香蕉网在线观看 | 亚av在线 | 91女子私密保健养生少妇 | 91视视频在线直接观看在线看网页在线看 | 久久久综合| 98精品国产自产在线观看 | 又黄又爽又刺激 | 久久久久成人精品亚洲国产 | 欧美另类xxx | 久久成人免费 | 日韩午夜精品福利 | 欧洲亚洲女同hd | 狠狠天天 | 黄色免费网站大全 | 色婷婷色 | 亚洲欧美国产精品18p | av大全免费在线观看 | av官网| 天天天天爱天天躁 | 久久久国产99久久国产一 | 国产精品毛片网 | www.午夜色.com| 天天射天天艹 | 亚洲精品视频免费在线观看 |