• 沒有找到結果。

Auto-ID 應答器

第二章 相關文獻分析

2.1 A UTO ID 介紹

2.1.3 Auto-ID 應答器

根據 MIT 的 Auto-ID 技術規格[2],一個被動式的應答器由以下四個部份 所形成。

¾ A.核心 IC

¾ B.天線(Antenna)

¾ C.IC 與天線之間的連接匯流排 (connection between IC an antenna)

¾ D.放置天線的基座。(the substrate on which the antenna resides

)

而在實用中,這樣的應答器很可能在生產的過程中就直接加在容器裏。例 如在包裝物品的厚紙箱中。如圖 4 所示:

圖 4 一個應答器的構成[2]

2.1.3.1Class0 應答器技術特性

Auto ID 的 Class 0 初步技術規格中[2]裏定義了 auto-ID class 0 應答器所 必需具備的技術特色:

¾ 1 必需出廠時就至少內建有 EPC 碼,一個 24 bit 的中止碼,以及其他 需要的資料。

¾ 2 可被讀碼器解讀。

¾ 3 可被視為被群體選擇的一部份。

¾ 4 可以被單獨的破壞(destroy)。

而在設計一個 Class 0 的應答器時,在實務上所需滿足的條件為:

¾ 1 必需是非常低價。

¾ 2 應答器在設計上就必需考量到可能會受到群體選擇的情況。

¾ 3 必需具有夠長的工作距離。

¾ 4 要能不受鄰近的其他類似的讀碼系統干擾。

2.1.3.2 運作方式:

由於以上的限制,在[2]裏提出了一個(Reader talk first) 的運作方式。需要 被讀取的應答器全部可以表示成一個二元樹。在此我們假設這樣的一個二元樹 足以表示所有的 EPC 碼,如圖 5 所示

圖 5 應答器的 Tree traversal

如果讀碼器會依某個路徑下的子節點數量分為 single populated 與 multiple populated,而讀碼器會依二元樹的方式去整個掃描所範圍內的 EPC 碼,並依

EPC 碼叫號。而當應答器收到它獨有的 EPC 碼時,就產生回應並將 EPC 碼傳 回讀碼器。這樣的叫法雖然很直接,但是很明顯的在效率上與安全會有很大問 題。在效率上,因無線電的電波發送最多只能一次進行數千次的發送而已,用 於本系統中,讀碼器一次掃描能進行大約數千次的掃描就已經是極限了。[2]

因此在 Auto-ID 的 Class 0 應答器技術規格裏[2],創造出三種存在應答器 裏的代號,並依此定義了以下三種叫號的依據:

¾ ID0 是一個單純的亂數,使用於工作模式 mode 0,其建議長度為 10bit,

在每次叫號並回應後就予以重設(Reset),而讀碼器會先行設定所有的應 答器進行 Mode0 的叫號方式後,開始叫號,而應答器在收到叫號後,

如果與 ID0 相同,則將 ID2 送出。並重設 ID0。

¾ ID1 是一個基於 EPC 碼所產生的靜態碼,使用於工作模式 Mode 1,其 建議長度為 10bit。用以識別或是用回復一個已經建立的連線。ID1=

Hash(EPC),是一個出廠時就燒在其中的固定值。而應答器接收到來自讀 碼器的 ID1 叫號後,如果與 ID1 相同,則回應且將 ID2 送出。

¾ ID2 為 96bit 的碼,使用於 Mode 2 的工作模式,該值為該應答器所對 應的 EPC 碼。

在圖 6 展示了 Class 0 應答器三種模式的詳細運作流程[2]

圖 6 Class 0 的運作協定[2]。

2.2 無線傳輸安全與 TEA

2.2.1 無線網路安全

無線網路,汎指所有不使用實體電纜為介質而構成的網路。而這樣的架構 讓無線網路在安全性上先天上就與有線網路有許多差異。欲控管有線網路的安 全性僅需監控接入區域網路中的所有實體節點即可。因此有線網路的存取安全 控制被視為區域網路節點的實體控制。因為有線網路上資料的傳輸是直接送至 一個特定的目標位址,其間並不會產生所謂存取授權(privacy) 的權限問題,除 非有心人士以特定的儀器加以攔截,因此有線區域網路的安全性考量主要在於 區域網路實體連結的破壞。

但對無線網路而言,資料的收送主要經由無線電波透過空氣介質來廣播傳 輸,所以它會被某一特定服務區域內的所有無線網路用戶端所接收。由於無線 電波可穿透天花板、樓板及牆壁等結構體,因此資料傳輸可能會被不同樓層甚 至不同建築物中的非預期接收者所得到。因此,架設一個無線網路就好像將無 數的網路節點隨意置於各處,甚至是停車場中。此時資料的存取授權就會變成 一個無線網路中主要的考量。因為對無線網路而言,我們並沒有辦法要求無線 電波只單點傳輸至某一接收端手中。也因此。無線網路採取了以下的二個方式 來保障傳輸上的安全。

2.2.1.1 網路使用者認證:

以 IEEE 802.11 為例,就定義了二種型態的認証方法:Open 及 Shared-key。

[3]而認証的方法必須被設定於每個使用端,這些設定值必須與無線存取基地台 中的設定值相符。

整個 Open 認証方式的認証流程均以無加密的文字方式進行,而且使用端 甚至不須要提供正確的 WEP 金鑰就可與無線基地台互相連繫。而 Shared-key 認証方式,無線基地台會送出要求登錄的無加密文字的封包給使用端,而使用 端則必須將此一文字與本身持有的 WEP 金鑰一起加密後,再傳回無線基地台,

而由無線基地台來判別是否此一使用端可存取網路資源。圖 7,8 展示這二種認 證方式的運作。

圖 7 open 認證

圖 8 shared-key 認證方式

有些無線區域網路設備供應商也支援由網路卡實體位址(MAC address)來 執行認證的動作,一個使用端僅當它的 MAC address 符合無線基地台中儲存的 認證表列時,才被允許存取網路資源。

2.2.1.2 傳輸資料加/解密:

以 IEEE 802.11b 標準為例,其中制定了一個可選用的加密機制,稱之為 Wired Equivalent Privacy 或 WEP,可提供安全的維護無線區域網路的資料傳 送。WEP 使用對稱的加/解密機制,即在資料加/解密的過程中均使用相同的加 密金鑰。使用 WEP 的主要目的[3]是:

- 存取控制:避免非法且無正確 WEP 金鑰的使用者,任意存取網路資源。

- 存取授權:利用加密的機制,保護無線區域網路的資料傳送,並且僅允 許持有正確 WEP 金鑰的使用者才可解讀。

雖然 WEP 是一個以 RC4 演算法為基底的選用的安全選項[4],但若要通過 由 WECA 檢驗的“Wi-Fi"認証,就必須具備 40-bit 的加密金鑰機制,所以所 有 WECA 的成員均支援 WEP 設定。至於 WEP 的做法,有些無線網路設備製 造商利用軟體來完成加/解密的動作。而另一些設備製造商,如思科(Cisco),則 利用硬體加速器來完成資料加/解密的流程,以避免機器本身處理效能的大幅下 降。

IEEE 802.11b 提供二種方式去定義使用於無線區域網路的 WEP 金鑰。第一 種方式是可設定一組最多 4 把內定的加密金鑰,並由所有的無線存取設備(如用 戶端及無線基地台)所共享。當使用者取得內定的金鑰後,就能安全地在同一無 線區域網路子系統中與其他使用者溝通。但問題是當持有內定金鑰的使用者數 量太多時,這時就不可避免的會產生安全上的顧慮。

第二種方式,每個使用端會與其他的使用端建立一個"金鑰對映(key mapping)"的關係,這是一種較為安全的方式,因為較少的使用者會持有對映 的金鑰。但同樣當使用者持續增加時,則這種單點傳送的金鑰散佈方式就變成 極為困難。

另以全球行動系統(Global System for Mobile communication)為例。其為史 上第一個具有複合安全機制的通訊系統。它制定了以下的安全標準,包括了具 有匿名性、可認證性’ 訊號保護與使用者資料保護。GSM 系統中的加密也只是 指無線路徑上的加密,是指基地台(Base Transceiver Station,BTS)和行動服務交 換中心(Mobile services Switching Centre,MSC)之間交換客戶資訊和客戶參數 時,不被非法個人或團體所得或監聽。在鑒權程式中,當客戶側計算 SRES 三 參數組的提供時,同時用 A8 演算法計算出密鑰 Kc。根據 MSC/VLR 發送出 的加密命令,BTS 側和 MS 側均開始使用 Kc。在 MSC 側,由 Kc、TDMA(Time Division Multiple Access,分時多工)時槽號和加密命令 M 一起經 A5 演算法,

對客戶資訊資料流程進行加密(也叫擾碼),在無線路徑上傳送。在 BTS 側,把

從無線通道上收到加密資訊資料流程、TDMA 時槽號和 Kc,再經過 A5 演算法 解密後,傳送 BSC(基地台控制中心 Base Station Centre)和 MSC。 而在 GSM 系 統中所使用的 A3, A5 , A8 系統均為一未公開的加/解密演算法。所以其安全性 與強度一直受到大家的質疑與挑戰。

2.2.2 TEA 演算法

TEA 是由 Cambridge Computer Lab 的 David wheeler 與 Roger Needham 於 1994 年首度發表。[4] TEA 的特性包括有

¾ 64 Bit 的 block cipher 能力。

¾ 128Bit 的金鑰

¾ 具有 Feistel network 的特性。可以一直遞迴加密以增加強度。

¾ 圖 9 表示了 TEA 的加密原理[4]

圖 9 TEA 的單一攪拌示意圖[4]

void encipher(unsigned long *const v,unsigned long *const w, const unsigned long *const k)

{

register unsigned long y=v[0],z=v[1],sum=0,delta=0x9E3779B9, a=k[0],b=k[1],c=k[2],d=k[3],n=32;

while(n-->0)

void decipher(unsigned long *const v,unsigned long *const w, const unsigned long *const k)

{

register unsigned long y=v[0],z=v[1],sum=0xC6EF3720, delta=0x9E3779B9,a=k[0],b=k[1], c=k[2],d=k[3],n=32;

2.2.3.1 Equivalent keys

針對此演算的第一個目標就是本演算法中將金鑰分為四個子金鑰的特色。

32bit 的本文與二個子金鑰 與 ,則

2.2.3.2 Related-key

在[7]中有提到 TEA 面對 Related-key 攻擊時的討論,而根據它的結論,在 最佳的情境下,只需要

2

個挑選過的明文,並以 2 個相關金鑰來進行攻擊,

只要次計算

2

次就有可能破譯出 TEA。

2.2.3.3 SAC Distinguisher

與 Differential Attack

在[8]中,TEA 被用以作 Strict Avalanche certification. 在少於 5 個回合的攪 拌中,TEA 可以經由挑選 個選定文字,以亂數的方式來辯別出來。不過超 過 5 次以後的攪拌就無法以 SAC Distinguisher 的方式來加以分辨。又另外在[9]

中,指出使用一個經個 11 次攪拌後的 TEA,使用 impossible differential 攻擊法 加以攻擊。經證明需要

2

個選定文字與

2

個加密後文字來作比較才得以辨 別。TEA 對於 truncated differential 的攻擊強度在[10]有被提出。機率為 1 的 Truncated differentials 用來攻擊一個 17 回合攪拌過的 TEA 需要 1920 個選定明 文與與

2

次的計算時間。

2

在表 2 裏整理了以上所提的 TEA 面對攻擊時的強度。

表 2 TEA 對不同攻擊的強度表

攻擊類別 攪拌回合數 所需的選定

明文 計算時間 資料來源

Equivalent Keys Any 1 [6]

Related-Key 64 [7]

SAC

Distinguisher

10 - [8]

Impossible Differential

11 [9]

2.2.4 TEA 與其他演算法的比較

由於目前的加/解密演算法多如繁星。且不只 TEA 演算法只使用加法與位 移。故有必要於針對一些其他的演算法與 TEA 作比較。

2.2.4.1 演算法挑選基準

我們透過以下的二個篩選標來挑選作為 TEA 的對照組:

¾ 條件一: 同樣為 symmetric block cipher

經過尋找,我們找到了 IDEA, DES, Triple-DES (DES-EDE2 and DES-EDE3), DESX (DES-XEX3), RC2, RC5, Blowfish, Diamond2, SAFER, 3-WAY, GOST, SHARK 等皆為 symmetric key cipher 的演算法。

¾ 條件二: 同為 Festiel network 性質,且只能使用 Add 與 shift 與 XOR 。不得使用乘法與指數。

符合此條件的只剩下 DES , BLOWFISH, RC5

2.2.4.2 加解密演算法分析

DES :

該演算法主要的不便之處在於 DES 需要大量的空間來準備多個 table 的值 以供存取,包括有 Initial Permutation , Inverse Initial Permutation,Expansion permutation1,以及 Sbox,這樣的非線性化結構使得 DES 在數位電路的實現上 需要大量的記憶空間來進行,對設計一個在成本上斤斤計較的 Auto-ID 應答器 R15=L14 xor f(R14,K15)

R2=L0 xor f(R0,K1) R1=L0 xor f(R0,K1)

R0

R16=L15 xor f(R15,K16) L15=R14

XOR

S-box2 s-box3 X-box2 Sbox-1

ADD

以 C 語言在電腦進行加解密的流通量(throughput)效能測試(benchmark)測試環 境如下,並將模擬的結果呈現於圖表 4 中。

¾ 測試程式:列於附錄 1

表 3 TEA 與其他演算法的效能比較

演算法 Bytes proceed Time taken Throughput(MB/sec)

TEA (32 rounds) 67108864 2.554 25.059

DES 33554432 1.442 22.191

BLOWFISH(16r ounds)

134217728 3.003 42.244

RC5(32 rounds) 134217728 6.32 20.253

分析表 4,首先,可以看到 BLOW FISH 不愧是最快的加/解密演算法,幾 乎是其他對照演算法的二倍數度,而其主要原因為 Blow FISH 只需進行 16 次 的攪拌(round),其他的演算法均進行了 32 次的攪拌。而 TEA 演算法在與其他 進行 32 rounds 的演算法來比,具有較高的流通量。

2.2.4.5 小結

由以上的內容與討論,可以得知 TEA 相較於其他演算法,具有以下的特性

¾ 使用累加作 Key Extension,不需大量的空間。

¾ 混合內容時使用固定的位移量,在數位電路的設計上具有優勢

¾ 使用位移作為混合,設計簡單。

¾ 效能卓越

¾ 無專利問題,成本低廉。

而這些特性,在適用本論文的前提—以數位電路來設計加密電路上具有絕 大的優勢。也因此選擇以 TEA 來進行改良 Auto-ID 系統的加密演算法是一個絕 佳的選擇。

2.2.5 TEA 的其他討論:

TEA 目前仍是 public domain 的版權,並未受任何的專利的保護。在製造 產品上,可以省下授權費用。此點於應用在需要超低成本的 Auto-ID 應答器上 具有相當的優勢。

而 TEA 還有後續的變化型,TEA 的原作者在 1997 年公開發表了 XTEA[4],

主要是針對 TEA 面對 Related-key 攻擊時相形較為脆弱進行了改善,圖 13 展 示了 XTEA 的流程。另外在同一篇論文中,作者另外提出了 BLOCK TEA 的演 算法,利用 XTEA 為運算區塊來組成陣列,可以一次處理較長串的訊息。Block

主要是針對 TEA 面對 Related-key 攻擊時相形較為脆弱進行了改善,圖 13 展 示了 XTEA 的流程。另外在同一篇論文中,作者另外提出了 BLOCK TEA 的演 算法,利用 XTEA 為運算區塊來組成陣列,可以一次處理較長串的訊息。Block

相關文件