• 沒有找到結果。

我們提出的 RFID 認證協定

在文檔中 中 華 大 學 (頁 60-65)

50

51

4.2 初始階段

在初始階段中,資料伺服器以及標籤上同樣會儲存一些在認證協定中所需要用到 的相關資料,為了增加 Khor 等學者方法的安全性,我們在資料伺服器增加了幾筆資 料,而在標籤增加了判斷值,資料伺服器以及標籤儲存的資料分別如下:

 標籤:Ki、EPCT、FP、F

 資料伺服器:indexi、indexi-1、Ki、Ki-1、EPCT、FP 其中:

F 的初始值為 F = 1,F = {1, 0}

indexi = CRC(EPCT||FP)⊕Ki indexi-1 = CRC(EPCT||FP)⊕Ki-1

以上 indexi和 indexi-1資料的儲存方式為事先計算完成的結果。

4.3 認證階段

我們所提出的認證協定主要分為五個步驟。圖 4-1 為詳細的認證流程圖,認證步 驟如下:

步驟一:讀取器發送一個 Request 查詢訊號給標籤,進行查詢標籤的動作。

步驟二:當標籤收到 Request 查詢訊號之後,首先會產生一個虛擬隨機亂數 R = PRNG( ), 然後 將標 籤所儲存 的 重要資料 EPCT 及 FP 做保護,M1 = CRC(EPCT||FP|| Ki),計算完成後計算判斷值 X = CRC(R||F),以上全部運算 完成之後將資料 M1、X 以及 R 回傳給讀取器。將認證資料傳給讀取器之後,

標籤會產生一個臨時虛擬隨機金鑰 Kt = PRNG(Ki)。

52

步驟三:當讀取器收到標籤所回傳的 M1、X 以及 R 資料之後,會將 M1、X 和 R 資料 不做任何處理立即轉送到資料伺服器進行認證。

步驟四:當資料伺服器收到 M1、X 以及 R 資料之後會進行標籤的身份認證,認證分 為以下幾個部分:

i. 首先資料伺服器會利用接收到的虛擬隨機亂數 R 來判斷 X 值,若 X = CRC(R||1)時,會搜尋儲存在資料伺服器裡面所有的索引值 indexi,將全部 索引值和 M1做比對,找出 indexi = M1,若找到相等的索引值 indexi,此 時資料伺服器就可以得知此標籤儲存在資料伺服器裡面的所有對應值;

否則,資料伺服器會回傳錯誤訊息,停止此回合認證。

ii. 若 X = CRC(R||0)時,資料伺服器會搜尋所有的索引值 indexi-1,將 M1所有的索引值做比對,找出 indexi-1 = M1,若找到相等的索引值 indexi-1, 就可以得到這個標籤儲存在資料伺服器裡面的所有對應值;否則,資料 伺服器會回傳錯誤訊息,停止此回合認證。

iii. 當比對完 M1之後,資料伺服器會利用經由比對得到的對應值 EPCT、FP 和 Ki自行重新計算 CRC(EPCT||FP||Ki),然後驗證 M1是否和資料伺服器 自行運算的值相等,CRC(EPCT||FP||Ki) ?= M1,若兩個值相等則代表認證 成功,然後資料伺服器會產生一個臨時虛擬隨機金鑰 KS,並且利用 KS 計算出 M2 = CRC(EPCT||FP||KS),算好之後資料伺服器會將 M2傳給讀取 器;否則,資料伺服器會回傳錯誤訊息,停止認證。

53

iv. 當資料伺服器成功將訊息 M2 傳送出去之後,資料伺服器會做更新的動 作,動作如下:

若 X = CRC(R||1)時:將 Ki儲存到 Ki-1,將更新值 Ki+1 = PRNG(KS)儲存到 Ki;然後 indexi儲存到 indexi-1,將更新值 indexi+1 = CRC(EPCT||FP|| Ki+1) 儲存到 indexi

若 X = CRC(R||0)時:則不做任何更新。

步驟五:當標籤透過讀取器接收到資料 M2之後,標籤會利用事先產生的臨時虛擬隨 機金鑰 Kt以及自身儲存的資料計算 Mt = CRC(EPCT||FP||Kt),計算完之後驗 證所接收到的 M2是否等於 Mt,Mt ?= M2,若兩個值相等代表認證成功;否 則,標籤會回傳錯誤訊息,停止此回合認證。當標籤認證成功之後會做更 新的動作,動作如下:

若收到 M2且認證成功:將更新值 Ki+1 = PRNG(Kt)儲存到 Ki;F = 1。

若沒收到 M2進行認證:Ki不做更新;F = 0。

54

資料伺服器 (Data Server)

讀取器 (Reader)

標籤 (Tag)

indexi = CRC(EPCT || FP || Ki) indexi-1 = CRC(EPCT || FP || Ki-1)

Ki , Ki-1 , EPCT , FP, DATA

產生隨機亂數 R = PRNG( ) M1 = CRC(EPCT || FP || Ki) X = CRC(R|| F)

Kt = PRNG(Ki) Request

M2

M2

Ki , EPCT , FP, F

判斷 X

X = CRC(R|| 1) 比對資料庫全部indexi

搜尋indexi = M1

若找到indexi = M1

則可得知標籤存在資料伺服器所有對應值 否則回傳錯誤訊息

X = CRC(R|| 0) 比對資料庫全部indexi-1

搜尋indexi-1 = M1

若找到indexi-1 = M1

則可得知標籤存在資料伺服器所有對應值 否則回傳錯誤訊息

計算 CRC(EPCT || FP || Ki) 驗證 CRC(EPCT || FP || Ki) ?= M1

若驗證成功 Ks = PRNG(Ki)

M2 = CRC(EPCT || FP || Ks) 否則回傳錯誤訊息

更新

X = CRC(R|| 1) Ki <= Ki+1 = PRNG(Ks) Ki-1 <= Ki

indexi <= CRC(EPCT || FP || Ki+1) indexi-1 <= indexi

X = CRC(R|| 0) 不做更新

Mt = CRC(EPCT || FP ||Kt) 驗證Mt ?= M2

若收到M2且驗證成功 更新:

Ki <= Ki+1 = PRNG(Kt) F = 1

若沒收到M2進行驗證 F = 0

停止認證 M1, X, R

M1, X, R

圖 4-1、我們提出的認證協定流程圖

55

在文檔中 中 華 大 學 (頁 60-65)

相關文件