• 沒有找到結果。

本章節將介紹與本論文相關的一些研究。首先是傳輸聲音封包於 IP 網路上的特性 研究,接著是一些使用IPSec 傳送 VoIP 的相關研究與分析,以及 cIPSec 的介紹。最後 是與本論文提出的方法相關的研究:視覺加密(Visual cryptography)與互斥多路徑路由演 算法(Disjoint multipath routing algorithm)。

3.1 VoIP 效能需求

在這個小節中,我們將從過去的研究與試驗中,如 [7] [8] 等,獲得有關於網路上 的參數對於IP 電話的聲音品質影響,藉以用來做為本論文所提出來的論述基礎,也更 進一步了解IP 電話需要克服的問題,提出對應的解決方法。

單向 Mouth-to-ear 延遲相當於聲音由發話端到收話端的延遲,大至上包含三個部 份:將聲音數位化並且編碼與封裝、封包傳送時間,以及接收端消除 jitter 與解回類比 資料的時間,如下圖所示。一般而言,一般的端對端(End to end)VoIP 延遲的範圍在 150

ms 到 400 ms 之間 [7],而根據 [8] 的研究結果,Mouth-to-Ear 延遲時間在 200 ms 以內

的 VoIP 產品即可用於商業用途上。ITU-T 也於 G.114 [26] 標準中提出,單向延遲 (One-way delay)在 150 ms 內電話產品可以得到最佳的聲音品質(G.114 原先是為 PSTN 聲 音品質做測試的標準,同樣的也可以適用於VoIP 聲音品質的測量上)。

圖 21 單向 Mouth-to-ear 延遲示意圖 (資料來源:[8])

底下我們將從 [8] 與其它相關 [9] 的研究中,討論上圖中,聲音封包透過 IP 網路

Payload size (bytes)

Encode delay (

ms

)

這類延遲主要為傳送延遲(Propagation delay,約傳送每一公里產生 5 microseconds 的延 遲)。另一種為排程延遲(Queuing delay),這部份的延遲主要產生在封包經過路由器

在接收端,因為每個封包傳輸的延遲不同,產生所謂的延遲振盪(Delay jitter),為 了處理振盪(Jitter),通常在接收端會使用消除振盪(Dejittering)的技術來消除振盪對聲音 撥放的影響,最簡單的方法是將收到的封包放置於一個暫存區內(Buffer),然後再按照 撥放的順序依時間撥放。同樣的,使用消除振盪的技術同樣也會使 Mouth-To-Ear 的延 遲增加,所以消除振盪的技術選用也是很重要的課題之一。 (Security Association),接著在 SA 中使用傳輸模式或是隧道模式配合 Encapsulating Security Protocol (ESP)或是 Authentication Header (AH)以達到資料的安全與正確傳輸的 目地。由上一節的結論得知,VoIP 在傳輸上對時間的要求有比較嚴格的限制,所以封

所以在Reberto Barbieri 的研究 [6] 中,提出了 cIPSec(將於下一節介紹)的概念,試圖解 決使用IPSec 導致封包擴張而使延遲增加的情形。

圖 23 使用 IPSec 於 VoIP 封包的標頭成長示意圖 (資料來源:[5])

圖 24 封包延遲與網路流量的關係圖,最右邊的線段為沒有使用IPSec的情形,最左邊 的線段則是使用DES加密於IPSec的情形

(資料來源:[6])

由於IPSec不對加密與認證方法做限制,所以用不同的加密或是認證方法會對封包 大小有不同的影響,但是不論是那一種組合,都對聲音傳輸有相當的影響,所以底下我 們將介紹cIPSec來改善這個問題。

圖 25 左圖為 SIP call setup 時間的模擬結果,右圖為模擬傳送聲音封包延遲時間所得 到的結果

(資料來源:[5])

3.2.2 壓縮 IPSec(cIPSec)

cIPSec 的概念是來自觀察封包傳送的標頭所得來的,有許多的欄位在通訊過程中根 本不會變化,或是只和前一個封包相差1 個位元的成長,如 sequence number,又或是 某些欄位的值在更上層的通訊協定標頭(Protocol header)中已經存在…等情形,可以加以 縮減,以減少所需要傳送的資料量,此種方法也可以用在低速網路連接上(cSLIP,

Low-Speed Serial Links,RFC 1133)。

由上面的觀察,在 [6] 這篇論文中打算把隧道模式中 IP/UDP/RTP 的內部標頭壓縮 成4 bytes,方法是將上述的欄位不在網路上傳輸,以減少傳輸的資料量。為了達到上面 的目的,每個連線的兩端點都需要維護一些資訊以及連線內容等,這些資料用來幫助接 收端回復原來完整的封包標頭。

儲存在加密兩端點上的資訊包含下列的幾個部份,主要是 IP header 中的來源與目 的地位址、UDP 中的來源與目的 port 以及 RTP 中的 SSRC 欄位…等,如下所列:

z 尚未使用壓縮(cIPSec)前最後一個完整的 IP/UDP/RTP 標頭,使用內部的資訊 來幫助壓縮後的封包重組。

z 尚未使用壓縮(cIPSec)前最後一個 sequence number 的後四位元,用來檢驗封包 遺失於compressor 和 decompressor 之間。

經過壓縮後的內部標頭(Internal header) (IP/UDP/RTP)如下圖所示,各欄位說明見於 圖下所示:

圖 26 cIPSec 標頭(Header) (資料來源:[6])

z Session context ID:共有 16 bits,用來區分同樣兩個端點間,不同連線用,如 此可在兩端點間同時存在65536 通連線。

z Link sequence:8 bits,用來表示 RTP 標頭末 8 位的位元,如此可以讓接收端 追蹤至多連續256 個的封包遺失。

z S、C、R:各為 1 bit,S 與 C bit 分別用來表示是否有 RTP sequence 與 UDP checksum;R bit 用來指出是否需要重送封包並且不經過壓縮。

z UDP checksum 與 RTP sequence:為選擇性存在(Option)的欄位,即為原封包的 UDP checksum 與 RTP sequence。

原封包格式為 2.4.3 節中圖 19 的 ESP 隧道模式,經過 cIPSec 的處理後,將會被轉 換成為下圖的格式:

圖 27 cIPSec 用於 ESP 隧道模式的封包標頭示意圖

經過該論文的實作 cIPSec 與模擬之後,可以得到下圖的結果,很明顯的可以大大 的減少頻寬的使用量。雖然可以減少頻寬的使用量,但是 cIPSec 還是使用需要加解密 的過程並且需要用到金鑰的觀念,所以本篇論文僅將此方法用於訊號(Signals)傳遞的保 護上。

圖 28 由左到右分別為:一般的聲音封包、使用 IPSec、使用 cIPSec、2%資料遺失率、

5%資料遺失率,以及 10%資料遺失率的頻寬使用大小 (資料來源:[6])

3.3 視覺加密(Visual cryptography)

視覺加密法(Visual cryptography) [10],是由 Moni Naor 與 Adi Shamir 兩人於 1995 年所提出,一種藉由人類視覺特性,將書面的材料(如:書面文字、手寫筆記、圖畫…

等)加密的方法,最後直接由人類的視覺系統加以解密。這種加密方式基本上包括一張 密文(以傳真或是郵寄的方式傳送)與一張列印出來的投影片(如同密鑰的功能),收到的 一方將兩者重疊觀看即可得到原本的明文(可能會有一些隨機雜訊的存在),如此即可簡 單與快速的將明文加密,而不需要經過繁複的處理過程。

最早被提出的視覺加密是運用在黑白兩色的圖文上,將原圖分成兩個相等大小分享 資料(Share data)的方法如下表所示,當原圖(明文)上的點為白色時,share-1 與 share-2 皆使用白色;當原圖(明文)上的點為黑色時,share-1 與 share-2 使用 Black 一行中,三種 方法的其中一種(黑白、白黑、黑黑)。這種方法的好處是可以節省空間,但最大的缺點 是可以很容易的從分享資料(Share data)中看出原圖內容,如圖 29 所示。

表 5 每個像素使用 1 位元分割的視覺加密法(Visual crytography)

圖 29 每個像素使用 1 位元分割的視覺加密法範例

由於上述的方法有嚴重的安全缺點,所以經過研究以後,將原本在原圖上的1 個像 素(Pixel)擴充為分享資料(Share data)上的四個像素來表示,對應的表格如下(表 6)所示,

如此一來即可得到像雜訊般的分享資料(Share data),增加安全性。此方法的缺點是,需 要原圖四倍的空間來儲存分享資料,如圖 30 的例子所示。

表 6 每個像素使用 4 位元分割的視覺加密法(Visual crytography)

圖 30 每個像素使用 4 位元分割的視覺加密法範例

由視覺加密法的構想,我們可以引用於聲音安全加強的方面,將已經數位化的聲音 依照視覺加密的方式,再根據聲音的特性使擴張倍數減小,如此可以產生一個不需要建 立、傳送與保護金鑰的加密方法,此即為本篇論文的基本構想,如下圖所示:

圖 31 運用視覺加密演算法於聲音傳輸的構想圖

3.4 互斥多路徑路由演算法(Disjoint multi-path routing algorithm)

由於上一節提到將資料分割傳送的概念原本並非使用於網路上傳輸,所以轉移到網 路平臺上便需要一些技術的幫助,互斥多路徑路由(Disjoint multi-path routing)即為其中 一項。在分享資料的觀念中,兩個不同的分享資料需要在不同的路徑上傳輸,否則被攔 截到的分享資料依原方法組合即可得到原本的資訊,如此就失去了資料分享(Data sharing)的安全性了。另外,根據許多的研究顯示[2, 3, 4],動態多路徑路由(Dynamic multi-path routing)的方式有減緩網路阻塞,使傳輸延遲減低的好處,利於時間敏感度高 的應用,如VoIP、多媒體串流(Multimedia stream)…等,底下我們將介紹一些過去別人 所提出的互斥多路徑路由演算法(Disjoint multi-path routing)與一些分析所得的結果。

對於尋找互斥集合(Disjoint-set)的路由路徑(Routing path),已經有許多的研究與演 算法被提出來,如相關研究中的 [11] [12] [13]等,各有各的優點,在此不一一列出。於 [12] 中所提出的構想與本論文相似,所以將此篇論文所提的演算法為基礎,介紹 [12]

中所提出來的互斥多路徑路由演算法。

在介紹演算法之前,先對一些網路拓樸(Network topologic)的表示法介紹與說明。

一個網路架構可以模型化為一個無向圖(Undirected graph),G=(V,E),其中 V 表示一個 有限的節點(Node)集合,E 為一個有限的連線(Link)集合。一個 E 中的連線連接著一對

id,pid(p)=y。G 中存在一個以 t 為根節點(Root)的最短路徑樹(Shortest path tree),記號 msg{mytype, nid, pid, cst, path},其中 mytype 為 message type 為 0 或是 1,nid 表示發出 訊息的節點id,pid 為 path id,cst 表示經過路徑的花費和,path 為經過節點的集合。

此互斥多路徑的尋找演算法分為兩個步驟。第一步由目的節點 t 發出訊息類別 (Message type)為 0 的訊息 msg{0, t, Φ, 0, (t)}到各個 neighbor,當網路中的節點 x 收到訊 息 msg{0, nid, pid, cst, path}後,可分為下列兩種情形:

1. 若是從 x 的 parent 所傳送來的訊息,則 x 將路徑加上 x 後,紀錄下來,並將訊 息修改成msg(0,x,(pid==Φ)?x:pid,cst+c(x,parent(x)),path+x)後,傳給 x 的 uptree 與horizontal neighbor。

2. 若是從 x 的 horizontal neighbor 所傳送來的訊息,則檢查其中的路徑加上 x 後,

是否與存在x 節點中已知的路徑重疊,若無,則加入可傳輸的路徑內。此收到 的訊息並不向外傳送。

第二個步驟是透過交換訊息類別(Message type) 1 的訊息來獲得更多的互斥路徑集 合,訊息類別1 的訊息由各個節點獨自發出。對於每個節點 x 記錄的替代路徑,x 將產 生msg{1, x, p.pid, p.cst, p}並且將此訊息傳給適當的 neighbor,所謂適當的 neighbor 需包 含三個條件:(1)

v

nbr

(x);(2)vp;(3)v 不為 x 的 uptree neighbor。如此傳遞完之後 即可得到互斥路徑集合。下頁圖32、33 為例:

圖 32 互斥多路徑演算法訊息類別 0 傳送圖

圖 33 互斥多路徑演算法訊息類別 1 傳送圖

相關文件