第二章 相關文獻分析
2.2 無線傳輸的安全與 TEA
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 的主要目的是增加 TEA 在處理較長訊息時的效率。
圖 13 XTEA 流程圖
第三章 改良式 Auto-ID 系統
3.1 現有系統問題分析
Auto-ID 基本上仍是是無線傳輸的一種架構。而無線傳輸因為相較起來於 更容易被頡取與收集,故受到攻擊的機會又比有線傳輸來得大。不論是主動式 或是被動式的攻擊,均會嚴重的影響到此系統資料傳輸的安全。接下來以常見 的攻擊方式來檢視原有的 Auto-ID 架構所面臨的安全議題。
3.1.2 竊聽(Eavesdropping):
竊聽可能是最簡單、也是最有效的攻擊方式,因為它不會留下任何線索。
Auto-ID 本身的特性為讀碼機會發出控制訊號。此為較長時間的傳輸。而在應 答器回應叫號的過程中,是以二個天線在很短的時間內發出資料。然後就保持 在聆聽的狀態。雖然這樣增加了使用者竊聽有價值資料(EPC) 的難度,但如果 竊聽設備非常靠近一個應答器,且有足夠的時間,竊聽仍然可以很輕易的取得 EPC 碼。如果能將 EPC 碼將某種方式加以編碼,雖不能阻止竊聽,但也可以防 止惡意使用者取得有用的資訊。
3.1.3 偽裝(Masquerade):
攻擊者會欺騙系統,非法取得資源。在 Auto-ID 中此為最嚴重的問題,因 為惡意使用只需持有一台讀碼機,或是相容的產品。就可以直接收集到所有接 收範圍內應答器的 EPC 碼。或是於取得 EPC 碼後,複製一個具有同樣 ECP 碼 的應答器用來干擾系統的運作。
3.1.4 重送攻擊(Replay):
攻擊者將網路截取的某些通訊內容再重新發送,最常見的莫過於重新發送 認證資訊以假冒合法的使用者。此類攻擊便是傷害使用者身份驗證系統的功 能。而在 Auto-ID 的系統中,如果只是單純的將 EPC 碼加以編碼、重組、或是
加密。惡意使用者仍可以將之固定的訊息錄製並進行重送攻擊。雖然惡意使用 者不能輕易的得知內容,但如果是應用於即時倉儲管理的 Auto-ID 系統,惡意 使用者就可以使用重送攻擊來製造某項物件還在倉庫,但其實該物件已經不存 在的假象。
3.1.5 訊息竄改(Message Modification):
攻擊者企圖竄改無線網路通訊內容,此類攻擊主要是傷害資料的完整性。
而在原有的 Auto-ID 環境中,會發生的狀況是惡意使用者使用收集到的 EPC 碼後加以修改,製造出某個不存在的物件或是擾亂原有的物件。這點是無法預 防與阻止的。
3.1.6 阻斷服務(Denial-of-Services):
阻斷服務是最常見的攻擊手段之一。因為它會對遠端系統進行攻擊,藉此 達到使系統無法提供服務或是使系統降低服務品質。而這樣的問題,事實上存 在於所有的無線網路系統,在 Auto-ID 的系統中。由於大部份的資料都是由讀 碼器向著應答器。在碰到惡意的干擾使用時。就確實只能比雙方的敏感度與訊 號強度了。而阻斷服務的另一個目地是要消耗能源。這點對 Auto-ID class 0 的 應答器是不起作用的,因為它的能量來源是來自天線收到訊號時所產生的電 場,可說是半永久性的。
由以上的分析可得知,原始的 Auto-ID 在先天上對惡意使用者攻擊是很脆 弱的。但它的 Class 0 應答器因受成本的考量,不可能具有太多的計算能力與儲 存空間。也因此無法像其他的無線網路環境,像是 IEEE 802.11、GSM 等,可 以在傳輸的二端使用昂貴的運算晶片來完成加解密與金鑰的傳遞以提供傳輸上 的保障。
3.2 安全的 Auto-ID 傳輸環境。
為了解決 3.1Auto-ID 系統所面臨的安全議題,在本論文中將在第二章所提
出的 TEA 引入 Auto-ID 的傳輸過程中。本論文將以外加模組並與原來的運作模 式相同的前提下,達成在 Auto-ID 的環境中完成安全傳輸的目地。本論文提出 將原有的應答器架構上加入一加密電路,並定義一以原有的叫號 ID 基礎上的 加密內容。另外,在與原架構相容的前提下,修改了讀碼器的運作模式以期能 跟與修改過後的應答器相容。為此,提出一個適用於本架構的新操作協定也是 本論文為完成此系統所不可少的。這以上三者的配合,可使改良後的 Auto-ID 傳輸環境能免於安全上的顧慮,同時達到應答器低成本的要求。
3.2.1 安全傳輸的實現
由於本論文選擇了使用 TEA 作為本系統中的加/解密演算法,且設計目地 為可以附加在原有 Auto-ID Class0 的原有架構上。選用 TEA 演算法及稱為加密 電路而不稱為加密晶片的原因有二,首先為忠實呈現 TEA 演算法的特色—只使 用了加法與位移—這樣的特色使得整個 TEA 的電路可以直接使用數位電路的 邏輯閘設計例如全加器、暫存器、位移器來達成,而不需要使用較高階、具有 乘法與指數功能的運算晶片。在一般的情沿下,單一乘法器所需要的電晶體數 量就數倍於同位元數的全加器。而減少使用的羅輯閘數量是減少生產與設計成 本的保證。第二個原因是為了要達成 TEA 演算法的電路可以在很小的 DICE 上 設計完成,可以在不改變原有的應答器核心 IC 的 DICE 大小下將原本的核心 以指令集的方式將其與核心 IC 電路整合設計一起。以下將針對整個系統的各個 元件設計作詳細說明:
3.2.2 應答器的設計
由於在前文已提及應答器是由四個部份所組成的,以下就一一針對各部份 元件的設計提出修改,並將本論文所提出的加密模組晶片加入應答器的設計中。
3.2.2.1 核心晶片:
為了因應本改良系統的設計。本系統在核心 IC 中設置有一隨機存取記憶體 區塊,用以儲存 ID0—這是原始規格中定義為當接收器收到重設的訊號時,會 由亂數產生器產生的呼叫代號。另一個在 RAM 區儲存的資料則為本論文所提
出的加密後的資料碼 ID3。ID3 的資料格式將在下一節中仔細的介紹。RAM 區 尚有一個存放目前工作模式的 sta 暫存器。而在核心晶片中另有一亂數產生器 rnd。此外還有一個開關電路 sw,用以關啟或關閉外部的電力供應來源(P)。而 在 ROM 區有 ID1,ID2,以及本論文所特別提出的 Key--用於加密時所需的資料。
Key 值是出廠時,依據 ID1 與 key ring serial 所對應的金鑰值,換言之。具有同 樣 ID1 與同一個 Key ring serial 的應答器具有同樣的 key 值。圖 14 為應答器核 心晶片的示意圖。
core IC
ID0 ID3 ID2 ID1 RND
Key SW sta
power
圖 14 核心 IC 的設計圖
圖示說明:
¾ ID0: class 0 應答器所定義的一亂數,在每次呼叫後會重設
¾ ID1:一個以該應答器的 EPC 碼為基本所產生的固定值
¾ ID2:該應答器所含的 ECP 碼
¾ ID3: 本論文所提出的一個數值,為經加密後的數值,會在每次叫號完 成後變動。
¾ RND:亂數產生器
¾ Sw:外接電源控制開關
¾ Sta:工作模式暫存器
¾ Key: 加密用的金鑰值。
3.2.2.2RF 模組:
在應答器中原有之 RF 模組,增設有 RDY 腳位與核心 IC 相連接。在 RDY 設為低位元時會進行接收及傳送的動作。而 RDY 腳位設為高位元時,就會暫 時停止接收或是傳送(圖 12)。
在應答器中原有之 RF 模組,增設有 RDY 腳位與核心 IC 相連接。在 RDY 設為低位元時會進行接收及傳送的動作。而 RDY 腳位設為高位元時,就會暫 時停止接收或是傳送(圖 12)。