• 沒有找到結果。

第四章、 效能與安全性分析

4.1 效能分析

4.1.3 環境限制

4.1.3 環境限制

(1)我們必須假設通話雙方背後已經有 PKI 架構的支援。

(2)比較早期的 VoIP 可能沒有實作 RTCP,我們在這裡假設使用的是較新的 VoIP 技術,並實作RTCP。

(3)我們使用 Gilbert Model 模擬網路,並根據 3.4.1 小節提到的三條線切割網路參 數。我們的假設是真實世界的 VoIP 大部份會落在這三條線所切割出來的梯形 內。

4.1.4 預估 number_of_hash

我們根據 3.4.1 小節的方法,將梯形切割成 8 個區塊(切割得越多,可以得 到 越 精 準 的 估 計 值 ) , 並 且 針 對 每 個 區 塊 的 最 差 點 , 給 定 N 、 interval 、 distribution(N 及 interval 視應用程式的實作而有所不同),驗證率的門檻值

γ,估計出為滿足 γ,所需的最小 number_of_hash 為多少。

如上圖所示,將梯形切割成八個區塊後,可以用來估計的八個點分別是:

A(0.05,0.8)、B(0.1,0.8)、C(0.15,0.8)、D(0.2,0.8)、E(0.25,0.8)、F(0.3,0.8)、

G(0.35,0.8)、H(0.4,0.8),各點實驗結果如下:

(1)A 點的環境參數如下:

ulp clp N interval distribution 0.05 0.8 15 10(秒) U(1,50)

令 number_of_hash 為 2,3,4,5,6 各執行 1000 次,計算驗證率的平均值和變 異數,結果如下表所示。

number_of_hash 2 3 4 5 6

組數 1000 1000 1000 1000 1000 平均數 0.965841 0.988773 0.994638 0.997285 0.998321 變異數 0.000617 0.000073 0.000025 0.000009 0.000007 以右尾檢定,門檻值 γ 為 0.95,拒絕域 α=0.95 時,z-value=1.96。

number_of_hash 2 3 4 5 6 P-value 20.1705 143.57212 280.097605 493.40241 568.70756

結果如上表所示,表示在 ulp=0.00~0.05 的這個區塊,為滿足 γ=0.95 的最 小 number_of_hash 的值為 2。

(1)B 點的環境參數如下:

ulp clp N interval distribution 0.1 0.8 15 10(秒) U(1,50)

令 number_of_hash 為 2,3,4,5,6 各執行 1000 次,計算驗證率的平均值和變 異數,結果如下表所示。

number_of_hash 2 3 4 5 6

組數 1000 1000 1000 1000 1000 平均數 0.940694 0.981082 0.992258 0.995712 0.996712 變異數 0.002729 0.001151 0.000057 0.000035 0.001000 以右尾檢定,門檻值 γ 為 0.95,拒絕域 α=0.95 時,z-value=1.96。

number_of_hash 2 3 4 5 6

P-value -5.633059 28.97718 176.5422 245.6514 46.70922 結果如上表所示,表示在 ulp=0.05~0.1 的這個區塊,為滿足 γ=0.95 的最 小 number_of_hash 的值為 3。

(1)C 點的環境參數如下:

ulp clp N interval distribution 0.15 0.8 15 10(秒) U(1,50)

令 number_of_hash 為 2,3,4,5,6 各執行 1000 次,計算驗證率的平均值和變 異數,結果如下表所示。

number_of_hash 2 3 4 5 6

組數 1000 1000 1000 1000 1000 平均數 0.9004441 0.9713509 0.9884716 0.9939223 0.9965960 變異數 0.0071369 0.0016960 0.0001386 0.0000672 0.0000622 以右尾檢定,門檻值 γ 為 0.95,拒絕域 α=0.95 時,z-value=1.96。

number_of_hash 2 3 4 5 6

P-value -18.549835 16.394559 103.32327 169.45949 186.8238 結果如上表所示,表示在 ulp=0.1~0.15 的這個區塊,為滿足 γ=0.95 的最 小 number_of_hash 的值為 3。

(1)D 點的環境參數如下:

ulp clp N interval distribution 0.2 0.8 15 10(秒) U(1,50)

令 number_of_hash 為 2,3,4,5,6 各執行 1000 次,計算驗證率的平均值和變 異數,結果如下表所示。

number_of_hash 2 3 4 5 6

組數 1000 1000 1000 1000 1000 平均數 0.8495209 0.9558529 0.9799905 0.9893645 0.9924684 變異數 0.0133133 0.0047488 0.0029612 0.0021673 0.0024312 以右尾檢定,門檻值 γ 為 0.95,拒絕域 α=0.95 時,z-value=1.96。

number_of_hash 2 3 4 5 6

P-value -27.537986 2.685858 17.428207 26.739151 27.236771 結果如上表所示,表示在 ulp=0.15~0.2 的這個區塊,為滿足 γ=0.95 的最 小 number_of_hash 的值為 3。

(1)E 點的環境參數如下:

ulp clp N interval distribution 0.25 0.8 15 10(秒) U(1,50)

令 number_of_hash 為 2,3,4,5,6 各執行 1000 次,計算驗證率的平均值和變異數,

結果如下表所示。

number_of_hash 2 3 4 5 6

組數 1000 1000 1000 1000 1000 平均數 0.759502 0.931121 0.970691 0.983349 0.989656 變異數 0.031752 0.008157 0.004292 0.003988 0.00319 以右尾檢定,門檻值 γ 為 0.95,拒絕域 α=0.95 時,z-value=1.96。

number_of_hash 2 3 4 5 6

P-value -33.8066 -6.61026 9.987258 16.69847 22.20235 結果如上表所示,表示在 ulp=0.2~0.25 的這個區塊,為滿足 γ=0.95 的最小 number_of_hash 的值為 4。

(1)F 點的環境參數如下:

ulp clp N interval distribution 0.3 0.8 15 10(秒) U(1,50)

令 number_of_hash 為 2,3,4,5,6 各執行 1000 次,計算驗證率的平均值和變 異數,結果如下表所示。

number_of_hash 2 3 4 5 6

組數 1000 1000 1000 1000 1000 平均數 0.640016 0.900065 0.958352 0.972527 0.982026 變異數 0.052854 0.014361 0.006679 0.008278 0.006997 以右尾檢定,門檻值 γ 為 0.95,拒絕域 α=0.95 時,z-value=1.96。

number_of_hash 2 3 4 5 6

P-value -42.6384 237.5074 3.231424 7.829943 12.10738 結果如上表所示,表示在 ulp=0.25~0.3 的這個區塊,為滿足 γ=0.95 的最 小 number_of_hash 的值為 4

(1)G 點的環境參數如下:

ulp clp N interval distribution 0.35 0.8 15 10(秒) U(1,50)

令 number_of_hash 為 2,3,4,5,6 各執行 1000 次,計算驗證率的平均值和變 異數,結果如下表所示。

number_of_hash 2 3 4 5 6

組數 1000 1000 1000 1000 1000 平均數 0.523805 0.859694 0.935768 0.966368 0.977454 變異數 0.056869 0.018689 0.011794 0.007238 0.00723 以右尾檢定,門檻值 γ 為 0.95,拒絕域 α=0.95 時,z-value=1.96。

number_of_hash 2 3 4 5 6

P-value -56.5159 -20.8892 -4.14407 6.084047 10.21061 結果如上表所示,表示在 ulp=0.3~0.35 的這個區塊,為滿足 γ=0.95 的最 小 number_of_hash 的值為 5。

(1)H 點的環境參數如下:

ulp clp N interval distribution 0.4 0.8 15 10(秒) U(1,50)

令 number_of_hash 為 2,3,4,5,6 各執行 1000 次,計算驗證率的平均值和變 異數,結果如下表所示。

number_of_hash 2 3 4 5 6

組數 1000 1000 1000 1000 1000 平均數 0.360909 0.786802 0.912002 0.955798 0.970545 變異數 0.05297 0.029386 0.011812 0.007452 0.006864 以右尾檢定,門檻值 γ 為 0.95,拒絕域 α=0.95 時,z-value=1.96。

number_of_hash 2 3 4 5 6

P-value -80.9408 -30.1056 -11.0559 2.123834 7.841755 結果如上表所示,表示在 ulp=0.35~0.4 的這個區塊,為滿足 γ=0.95 的最 小 number_of_hash 的值為 5。

總結 A、B、C、D、E、F、G、H 的數據,得到結果下圖所示:

圖 49 給定 N、distribution、interval 及 γ,預估 number_of_hash 這個圖表示在給定 N=15,distribution=U(1,50),interval=10(s)的情況下,

為滿足平均驗證率能有 95%,各區塊所需要的 number_of_hash 值為多少。

我們在這裡示範『給定 N、distributiojn、interval 及 γ,用 Gilbert Model 及 p-value 檢定來估計最小的 number_of_hash 值』的技巧,若是使用其它的參 數值,也一樣可以套用這個預估方法。此外必須特別說明的一點是,在這裡 interval 是拿來預估 number_of_hash 用的,而實際上簽署方可以在小於等於 interval 的時間送出簽章(因為 interval 越長,越會降低驗證率),ex:我們在 預估時將 interval 設成 10 秒,但簽署方在實作上可以 7 秒送出簽章而不會讓驗 證率小於 γ,但若簽署方在實作上 20 秒才送出簽章,那就有可能會讓驗證率低 於 γ。

4.1.5 動態調整 number_of_hash

在這個實驗裡,我們加入 3.4.2 小節的方法,並以 4.1.4 小節估計出的結果 為依據,去動態調整 number_of_hash。除了一組動態調整為實驗組(EMSS_dynamic) 之外,另外再給予 4 組不調整的當做對照組 EMSS_fix(2)、EMSS_fix(3)、

EMSS_fix(4) 、 EMSS_fix(5) 【 EMSS_fix(x) 表 示 該 對 照 組 從 頭 到 尾 的 number_of_hash 都是 x】,在不同的環境底下模擬數分鐘,並觀察結果。

每一組實驗的 EMSS 參數必須和 4.1.4 一樣:分別為:N=15、Interval=10(s)、

distribution=U(1,50)我們設計六個 Case 如下列所示:

表 9 驗證動態調整實驗 Case 一覽表

Case 1:將網路狀態維持在 ulp=0.02,clp=0.6 之下,執行 10 分鐘的平均驗

觀察使用動態調整時,記錄 number_of_hash 的改變狀態如下圖所示:約在 34 秒的時候 number_of_hash 會調整到 2 的位置。

圖 52 Case1 使用動態調整,number_of_hash 的變化圖 0.978688814 0.979151446 0.991341766 0.996052892 0.997712231

0

EMSS_dynamic EMSS_fix(2) EMSS_fix(3) EMSS_fix(4) EMSS_fix(5)

2.0750499 2

EMSS_dynamic EMSS_fix(2) EMSS_fix(3) EMSS_fix(4) EMSS_fix(5)

0

Case 2:將網路狀態維持在 ulp=0.09,clp=0.7,執行 10 分鐘的平均驗證率

觀察使用動態調整時,number_of_hash 的改變狀態如下圖所示:約在 16 秒 的時候 number_of_hash 會調整到 3 的位置。

圖 55 Case2 使用動態調整,number_of_hash 的變化圖 0.9864  0.9519  0.9856  0.9933  0.9971 

0

EMSS_dynamic EMSS_fix(2) EMSS_fix(3) EMSS_fix(4) EMSS_fix(5)

3.04781822

EMSS_dynamic EMSS_fix(2) EMSS_fix(3) EMSS_fix(4) EMSS_fix(5)

0

Case 3:將網路狀態維持在 ulp=0.15,clp=0.7,執行 10 分鐘得到的平均驗

圖 58 Case3 使用動態調整,number_of_hash 的變化圖 0.9689  0.8641  0.9672  0.9863  0.9902 

0

EMSS_dynamic EMSS_fix(2) EMSS_fix(3) EMSS_fix(4) EMSS_fix(5)

3.34726235

EMSS_dynamic EMSS_fix(2) EMSS_fix(3) EMSS_fix(4) EMSS_fix(5)

0

Case 4:將網路狀態維持在 ulp=0.27,clp=0.75,執行 10 分鐘的平均驗證率如

圖 61 Case4 使用動態調整,number_of_hash 的變化圖 0.9794 

0.7699 

0.9456  0.9782  0.9902 

0

EMSS_dynamic EMSS_fix(2) EMSS_fix(3) EMSS_fix(4) EMSS_fix(5)

4.09361 

EMSS_dynamic EMSS_fix(2) EMSS_fix(3) EMSS_fix(4) EMSS_fix(5)

0

Case 5:將網路狀態維持在 ulp=0.35,clp=0.8,執行 10 分鐘後的平均驗證率如

圖 64 使用動態調整,number_of_hash 的變化圖 0.9695 

0.5261 

0.8480  0.9447  0.9711 

0

EMSS_dynamic EMSS_fix(2) EMSS_fix(3) EMSS_fix(4) EMSS_fix(5)

4.91373 

EMSS_dynamic EMSS_fix(2) EMSS_fix(3) EMSS_fix(4) EMSS_fix(5)

0

Case 6:令程式每隔亂數秒緩慢移動 ulp 及 clp,我們想用這個 case 看出使用 動態調整可能會出現的問題。執行 10 分鐘後我們記錄封包遺失率如下圖所示:

圖 65 Case6 封包遺失率記錄圖

以折線圖觀察每一組在每一時點的驗證率如下圖所示:

圖 66 Case 6 各組實驗的驗證率細部比較圖

我們可以在上圖察覺到,EMSS_fix(2)及 EMSS_fix(3)在約 100 秒左右時,因為 無法反應封包的大量遺失,驗證率會驟降至 40%左右,而使用動態調整的話,仍 然維持在 85%以上。

4.1.6 小結

我們透過 4.1.5 的實驗,可以看到根據 RTCP 去動態調整 number_of_hash 的 值,可以在驗證率及 communication overhead 之間達到某種程度的平衡,平衡 的意思並不代表它就是最好,回顧實驗 4.1.5 的第一個 Case,使用動態調整的 實驗組 EMSS_dynamic 在 34 秒的時候才將值調整到 2,若拿來和對照組

EMSS_fix(2)相比較的話,可以說它前面 34 秒多使用的雜湊值反而造成了浪費,

0

但是和 EMSS_fix(5)相比,EMSS_dynamic 卻節省了很多頻寬。而在 Case 6 中我 們也可以看到,對於網路封包遺失率的突然暴升,使用動態調整的方法雖然會在 短時間之內無法維持驗證率在 95%而掉到 85%左右,但仍然比 EMSS_fix(2)及 EMSS_fix(3)好得多。由於一般正常的網路在短時間之內都會維持在某個穩定狀 態,所以我們認為使用動態調整 number_of_hash 確實存在其效益。

必須再次強調的一點是,因為 VoIP 的封包大小約在 100 bytes~200 byte 之 間,所以即使只節省一個約 16 bytes 雜湊值,對於整體頻寬也是不算小的節省。