34
九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊 教授 資工四A 楊景皓 963801 資工四B 戴成儒 963921

九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

  • Upload
    others

  • View
    33

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

九十九學年度

資訊工程學系專題研究報告

使用二維串流加密技術實作檔案之保護

指導教授︰黃宜豊 教授

資工四A 楊景皓 963801

資工四B 戴成儒 963921

Page 2: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

2

中華民國九十九年十一月十日

目錄 第一章 緒論...............................................5

1.1專題背景與動機..................................5

第二章 串流加密技術.......................................6

2.1傳統的串流加密技術..............................6

2.2二維串流加密的原理..............................7

2.3安全度分析.....................................10

第三章 擬亂數產生器......................................11

3.1擬亂數產生器的設計理念.........................11

3.2 擬亂數產生器設計架構...........................12

3.3π-e亂數產生器 ................................13

3.3.1初始化機制(Initialization Mechanism)....14

3.3.2亂數產生機制(Generation Mechanism).......15

3.3.3種子重設機制(Modification Mechanism)....16

3.3.4種子修正機制(Y-seed Reseed Mechanism)....16

第四章 擬亂數列檢測方法..................................17

4.1美國聯邦資訊處理標準公告(FIPS PUB)140-2......17

4.1.1單一位元測試(Monobit Test)............17

4.1.2撲克測試(Poker Test)..................17

4.1.3連串測試(Runs Test)....................18

4.1.4長連串測試(Long Runs Test)............18

4.2卡方檢定法(Chi-Square Test)..................18

4.3深度檢定法.....................................19

第五章 檔案保護機制實作..................................20

第六章 比較..............................................24

6.1系統簡介.......................................24

6.1.1 RAR簡介............................................24

Page 3: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

3

6.1.2 EOC簡介................................26

6.2安全度比較.....................................28

第七章 結論與展望........................................30

(附錄) Demo.............................................30

參考資料、網站............................................33

Page 4: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

4

摘要

傳統的加密方式大多是依密碼作為參數,將明文經由複雜的處理

方式偽裝,以避免遭到駭客解讀破解而使資料曝光,不過由於密碼的

藏匿地點大多有跡可尋,會使駭客有機會尋跡而解,因此本文中主要

研究在於如何設計一個更完善的加密系統。

串流式加密技術是目前密碼學中一種擁有較高機密性的方法。在

本文中研究中,我們為二維串流加密設計一個經過檢測具有高品質且

高亂度的亂數產生器(π-e亂數產生器),不過在此我們仍擔心使用

者僅慣用同一組密碼,導致總是得到同一組亂數來進行加密造成規律

而冥冥之中增加了危險性,為了解決這點我們思考讓使用者與被加密

檔的副檔名、檔案長度作為因子,利用幾個運算製造出具有唯一性的

種子群(Seed1~5),並將它們作為輸入到亂數產生器得到擬亂數序列

(PRNS1、PRNS2)。利用二維串流加密技術將擬亂數序列(PRNS1、

PRNS2)與明文使用 XOR和 ADD融合在一起化為密文,以避免駭客使

用暴力法的竊取。

關鍵字:PRNG、串流加密

Page 5: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

5

第一章 緒論 1.1 專題背景與動機

幾年來隨著科技日新月異,電腦的發展、普及與進化也漸趨快速,

許多重要的資料與檔案的處理漸漸離不開電腦的使用,更甚將資料數位

化的比例與過去相比也隨著之提高許多,因此我們能從中知道現今這個

世界已經完全陷入了數位的潮流之中,

然而對如今的使用者來說,但在人們享受網路帶來方便的同時,許

多的負面問題也逐漸浮出抬面------病毒、駭客、資料竊取… …等等,

眾人開始對安全性進行思考,以最近轟動全球的「維基解密」為例,各

國的機密外交電文遭到全面披露就能知道在資訊時代,偷取龐大資料是

多麼容易,保持機密又是多麼的困難。

而面對這些威脅的存在,僅僅只是使用上、放置上的方便已經無法

滿足使用者的需要,使用者想要的是一個安全的環境來存放他們珍貴的

資料。因此,為了保護這些重要的檔案不被竊取,許多加密的系統不斷

的推陳出新,與技術同樣日新月異的駭客們不斷抗衡。

如今這個網路通訊相當發達的世代,人與人之間的資訊傳播已經是

無遠弗屆的可怕,所以我們試著開發更佳安全的加密系統,可以作為保

護個人隱私與智慧財產。

Page 6: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

6

第二章 串流加密技術

2.1 傳統的串流加密技術

串流加密技術是於近代密碼學中被廣泛的應用,其本身是一種對稱式的加密

演算法,一般來說,它是對最小單位元的明文(bit )做加密,並且它的加密速度

比一般的區塊加密法快很多,而且一般的區塊加密如果給予相同的明文和相同的

金匙(key),則會得到相同的密文,但是對於串流加密法來說則不一定會得到相

同的密文,必須看當時由亂數產生器所生成的擬亂序列來決定。

串流加密法一般來說在硬體上的表現比區塊加密法迅速,並且其硬體電路較

區塊加密法較簡單。在被應用於某些通訊上時(ex:暫存器的空間有限時、每一

個最小單位元都需在接收時做個別處理時),串流加密法是必要的。而且因為串

流加密法幾乎沒有錯誤傳播(error propagation),所以在比較有可能發生傳輸

錯誤的情況下是較有利的方式。

串流加密法會產生所謂的擬亂序列,而加密過程則是把明文和擬亂序列做組

合運算,一般常見的是使用 XOR運算,如此即可以得到相對應的密文。這種加密

法被廣泛用於軍事與外交上,而其中較常被討論到的演算法是 RC4 和 SEAL,不

過由於專利的關係演算法的細節沒有被公開。

串流加密法雖然有很多的優點,並且已經有許多的相關原理和研究,然而相

較於區塊式的加密法,在公開的學術研究中,串流加密演算法數量並非很多。不

過由於串流加密法的優點明顯,因此它的重要性不容忽視。

Page 7: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

7

而一個理想的串流加密器,從上面的示意圖片中能知道,其設計上的關鍵最

主要在於亂數產生器的安全性,因此一個亂數產生器至少具備「隨機性」、「不可

預測性」、「長週期」、「符合統計測試」、「擁有良好的輸入敏感度」,讓其產生之

擬亂序列位元串“夠亂"、複雜度“夠高"、週期“夠長"… …,這影響的結

果將反應在串流加密器之安全性上。

2.2二維串流加密的原理

二維串流加密處理的保護技術(two dimension stream cipher technique

protection),其中二維運算係指以二種不同之運算對同一明文訊息進行加密運

算,而串流加密係指每一不同的明文位元組皆與不同的隨機亂碼進行加密處理,

而結合此二特性的加密運算技術則稱為二維串流加密處理技術。

在本系統中,我們以"♁"(XOR)和"+"(ADD)的運算,來做為二維的

運算。

我們讓使用者輸入 8~16個數字來做為二維的串流加密的密碼。同時也使用

明文長度和副檔名來做為產生種子的主要因素,讓種子不致於因為使用者輸入相

同的密碼而毫無改變。

Definition:

n:密碼長度(位元組)。

i[ ]:密碼 ASCII數值陣列。

i[k]:第 k位置的密碼 ASCII數值。

p[ ]:附檔名 ASCII 數值陣列。

Page 8: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

8

p[m]:第 m位置附檔名的 ASCII數值。

p.length():附檔名的長度。

Data total length:明文檔案長度(byte) 。

n1: Data total length mod 103

Seed(j) :第 j個種子。

種子 1~5(Seed)的產生:

Seed1: ((第 k項+Data total length mod 103)÷第 k+1項)的總和。

Seed2: |(第 k項-第 k+1項)|的總和× Seed(1)÷Data total length mod 103。

Seed3:密碼長度為單((第 k 項的值×當下項的平方)÷(第(n+1)/2+k 項+

Data total length mod 103)的總和)× 正中間質。(共(n-1)/2項)

密碼長度為雙((第 k項的值×當下項的三次方)÷(第(n)/2+k項)÷Data

total length mod 103。(共 n/2項)

Page 9: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

9

Seed4: 密碼長度為單|(前(n-1)/2項和-後(n-1)/2項和)|× Seed(3)。

密碼長度為雙|(前(n)/2項和-後(n)/2項和)|× Seed(3)。

Seed5:

((密碼的 1、4、7… …項)×附檔名第一個質+(密碼的 2、5、8… …項)×附檔

名第二個質)÷(密碼的 3、6、9… …項) ×附檔名第三個質+(密碼長度×附檔名

長度)2)

得到種子後,將其投入π-e 擬亂數產生器中產生亂數,並取得 PRNS1 和

PRNS2。

將 PRNS1和明文做 XOR,其結果再與 PRNS2 做 ADD,完成資料的加密。

Page 10: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

10

在資料完成二維串流加密後,資料名稱將變成"原檔名.原副檔名.二維串流

加密系統副檔名"。

由於原附檔名對加解密具有影響,因此除了原檔名外,其他部分不開放使用

者修改。

2.3安全度分析

以一般的串流加密而言,由於使用的是 XOR的運算方法,因此每個 bit都有

0和 1兩種可能性,要破解(X,Y)的話則所需花費的次數為 2n。

我們使用的二維串流是在原本的 XOR運算後加入 ADD的運算,ADD運算比 XOR

運算更複雜的地方在於會造成進位的可能性,因此,從理論計算上,當 n>>1 時,

若要破解由 ADR加密過的(X,Y),所需花費的次數為 2*4n-1。

綜合兩者從理論上得出由二維串流加密的(X,Y,Z)所需破解的次數為

4*8n-1,這幾乎與暴力法破解(X,Y,Z)的 8n相當,因此能知道二維串流具有高度

的安全性。

Page 11: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

11

第三章 擬亂數產生器

亂數是所有離散式事件模擬最基本的成份。常用來產生隨機產生事件的時間

及其他統計上的隨機變數(Random variables)。而目前所有模擬語言與模擬器

少不了亂數,且已成為內定函數。藉由此函數功能以產生亂數。產生的亂數直接

影響模擬結果的隨機性。一般俗稱亂數,均為「擬」亂數,即利用人工已知的序

列原理,製造出一系列在某兩數之間具有獨立性的數值。所以亂數並非真亂數,

而有一定的統計性質。

3.1擬亂數產生器的設計理念

每個 PRNG都有不同的演算法,在設計一個好的 PRNG,了解其所需的特性是

很重要的,我們把他分成下列幾項,而我們應朝這方面設計一個良好的 PRNG。

1.隨機性:

隨機性是亂術最基本的特性,其定義在一定的範圍內所有可能出現的數值,其發

生機率都一樣,也就是說,以位元的角度來講,理想的擬亂數列 0與 1的發生率

皆為 50%。

2.不可預測性:

真正的亂數是沒有規律的,因此一支擬亂數產生器不應該產生出可被預測的擬亂

數序列。這對擬亂數產生器而言尤其重要,若產生之擬亂數序列存在規律性,將

會嚴重降低加密機制的安全性。

3.長週期:

週期亦為規律性之一,不應該存在於真正的亂數之中,因此擬亂數產生器的週期

越長越好。再者以密碼應用的角度來看,產生的擬亂數列不應在短區間內重複出

現,避免讓攻擊者偵測到週期,進而預測其後的擬亂數列,進行破譯。

4.符合統計測試:

擬亂數產生器所產生的擬亂數序列必須要能夠通過各種針對亂數所制定的統計

測試。

此外針對密碼應用的需求,必須能夠達到:

Page 12: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

12

5.穩定性:

擬亂數序列是經由對擬亂數產生器輸入某一組種子來產生的。在相同的輸入種子

下,每次產生的擬亂數序列都必須是相同的。這是可供加、解密的最基本需求:

若每次輸出都不相同,經過加密後的密文無法被還原成明文,就失去了保護文件

的意義。

6.初值敏感度:

在任兩組初始種子差異極小的情況下,能夠產生出截然不同的擬亂數列,以使攻

擊者無法歸納,增加破密難度。

3.2 擬亂數產生器設計架構

在擬亂數產生器設計架構中,有五個主要組成的部份。

(一)初始化機制(Initialization Mechanism)

此機制主要江使用者輸入的 seed(有限空間)產生 X-seed 以及心的變數

G-parameters,合併生成 Y-seed,加強初始種子的空間亂度。

(二)亂數產生機制(Generation Mechanism)

透過 Y-seed種子序列間的元素之運算,來產生亂數輸出。

(三)種子控制(Y-seed Control)

除了複雜的演算法提供亂度強的因子外,seed 所提供的能量有限,為了滿足週

期長之特性,判斷 Y-seed種子序列是否需要進行重置。

(四)種子修改機制(Modification Mechanism)

執行 Y-seed種子修改的動作,以產生下一筆亂數。

(五)種子重置機制(Y-seed Reseed Mechanism)

在達某條件下,做整體 Y-seed 種子的重置,給予種子新的能量,維持輸出的亂

度因子,避免衰竭。

Page 13: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

13

3.3π-e亂數產生器

我們所製作的π-e 擬亂數產生器,是讓使用者任意輸入 8~16 個字元轉成

ASCII後,作為初始種子序列,透過初始機制,得到的第一組 Y-seed,經過亂數

產生機制,得到第一個亂數值 。接著透過種子修改機制,產生下一組

Y-seed,在返回亂數產生機制來產生下一個亂數 ,i>1。檢查種子條件若

有必要進行種子重置,重複以上動作循環,直到產生足夠數量的擬亂數列

Definition:

n : Input個數。(5<n<10)

m : output個數。

X :seed序列。

x(k) :seed序列中第 k個元素。

G :global parameter序列。

g(k) :global parameter序列中的第 k個元素。

i :迴圈變數。(1<i<m)

Y(i) :第 i筆 reseed序列。

Page 14: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

14

Y(i)(k) :第 i筆 reseed序列中的第 k個元素。

Ψ(i) :第 i筆 r擬亂數。

% :對實數中的部分取餘數並保留小數。

Φ :Temporary parameter。

Max(Yi):取Yi序列元素中的最大值。

3.3.1初始化機制(Initialization Mechanism)

此機制的目的主要是增加是用者輸入之 Seed的初步亂度。增加其空間變

數。避免使用者輸入的變數過於單調,而使得往後的 Generation Mechanism 部

分之值的亂度不夠。依其目的設計以下演算法分成三步驟完成。

Step1:

首先先對使用者輸入的種子序列 X作篩選動作,以 256為基準,前後各以

10+6為範圍,以及超過此範圍的部份,皆作有效與合理的控制,避免使用者輸入

極大與極小的種子,導致系統輸出品質不理想,並且對輸入敏感度也有一定的控

制,同時,為了讓種子的空間亂度變大,我們加入了 2個自然數π、e,指需透

過簡單的運算,即可有長達 17位的有效位數,以達到我們的目的。

Algorithm :

其中

Switch(x(k)) for all 1 1≦k≦n

Case"x(k) ≦10-6":

x(k) = (x(k)×1010) ÷Π)%256+ k × e;

Case" 10-6<x(k) < 256":

x(k) = (x(k)+k3)÷ e;

Case" 256≦x(k) ≦ 106 ":

x(k) = x(k) ÷ (Π×k) ;

Page 15: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

15

Case" 106< x(k)":

x(k) = ( x(k) × k ÷e )%106+256;

Step2:

我們利用 X作累加運算,並加入迴圈變數 p來增加亂度因子產生 G,如此一

來可以保留原本的 17 為有效位數,也可以透過累加達到初值敏感度。

Algorithm :

G = ( g(1) , g(2) , … … , g(n) ),其中 g(1)

g(1) = ( x(1) + x(2) + x(3) ) ÷ 3;

For (p = 2 to n)

{

If (p<n-1)

g(p) = g(p-1)+x(p+2)÷p ;

Else

g(p) = g(p-1)+x(p+2-n)÷p ;

End If

Step3:

由 X與 G交錯合併產生初始 Y-seed, Y(1) 。

Algorithm :

Y(1) = ( y(1) (1) , y(1) (2) , y(1) (3) , … … ,y(1) (2n) )

= (x(1) , g(1) , x(2) , g(2) ,… … ,x(n) , g(n) )

3.3.2亂數產生機制(Generation Mechanism) 由於前置作業系統已經達到良好的空間亂度,每筆 Yi進入此機制後,只需

經過簡單運算就能得到良好的亂度。透過中間兩項的相加,再與頭尾兩項相乘,

不但擁有非線性的成長,也可以控制其成長速度。再透過取 mod運算、取絕對值、

取整數部分,可以控制我們亂數的範圍,同時是一個良好的 one way

function,避免有人利用輸出破解此機制。

Algorithm :

Page 16: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

16

Φ= |( (y(i) (n) + y(i) (n+1) ) × y(i) (1) × y(i) (2n) ) % 256|

Ψ(i) =INT(Φ),其中 Ψ(i) Z

3.3.3種子重設機制(Modification Mechanism)

修改 Y-seed 序列,分成前半部和後半部,利用部分元素相加減來達到重設

的目的,並且充分利用道序列裡的每個元素。

Algorithm :

y(i+1) (K) :

y(i)(2n-2k+1)+ y(i)(2k)-y(i)(k), 1≦k≦n

y(i)(3n-k+1)+y(i)(k)-y(i)(k-n),n+1≦k≦2n

3.3.4種子修正機制(Y-seed Reseed Mechanism)

由於 Generation Mechanism執行多後,造成 Y-seed趨於某種規律,所以透

過此機制修正 Y-seed 序列,給予新的亂數能量,使其週期增長,不會因輸出長

度越長而衰竭。我們先判斷 Y-seed 中任一元素其絕對值若是>65536 就更改

Y-seed 序列,其中也利用了上一筆輸出亂數,增加其空間亂度。

Algorithm :

If ( Max(Y(t)) > 65536 ) {

ψgt = Max(Y) /65536 + ψ+e

Y(t)(k) = (Y(t)(k) + ψ* k) % 256 , 1≦k ≦2n

End If

}

Page 17: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

17

第四章 擬亂數列檢測方法

4.1美國聯邦資訊處理標準公告(FIPS PUB)140-2

聯邦資訊處理標準 (Federal Information Processing Standard, FIPS) 是

由美國國家標準技術局 (NIST) 所制定,用以定義聯邦政府機構購買資訊系統的

要求條件及審核電腦及通訊系統的一套標準。FIPS PUB 140-2 制定了密碼模組

的安全需求 (Security Requirements for Cryptographic Modules),其中針對

亂數產生器所產生的擬亂序列定義了四項統計測試。各項測試都是以 20000個位

元為一個單位來進行測試:

4.1.1單一位元測試(Monobit Test)

該項測試主要目的是檢測擬亂序列單一位元的隨機性。根據亂數的性質,在

一定範圍之中發生的機率是均等的,也就是說若以位元的角度來看,1與 0的發

生機率大約都是 50 %。該項測試將合格範圍限定在 48.625 % 到 51.375 % 之間。

測試方法為產生 20000 位元擬亂序列,計算 1位元的個數 X,若滿足 ,同時

0位元的個數亦會介於 9,725到 10,275之間,則該項測試通過

4.1.2撲克測試(Poker Test)

該項測試是針對擬亂數列中半位元組 (nibble, 1 nibble = 4 bits) 的隨

機性做檢測。

檢測方法為將產生之 20000 位元擬亂序列每個半位元組為一區段,切割成

5000個區段,計算 16 種可能的區段值發生的次數。令 f (i) 表示區段值 i的出

現次數,其中 ,計算下式:

若 ,則該項測試通過。

Page 18: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

18

4.1.3連串測試(Runs Test)

「連串」之定義為取樣的位元串列中 “1" 或 “0" 的連續位元。計算所

產生 20000 位元擬亂數列中各種長度的連串之發生次數,長度大於 6 的連串併入

6的次數計算,對照下表所列出的相對應之次數區間:

連串長度

(bit) 次數區間 (次)

1 2315 – 2685

2 1114 – 1386

3 527 – 723

4 240 – 384

5 103 – 209

6+ 103 – 209

表 1 連串長度與標準次數對照表

若 “1" 與 “0" 連串各 6 項,總共 12 項連串長度在上表所列的次數區

間內,則該項測試通過。

4.1.4長連串測試(Long Runs Test)

「長連串」的定義為長度 26 以上的連串。若 20000 位元的擬亂序列中不存

在長連串,則該項測試通過。存在任何一個 “1" 或 “0" 的長連串,則測試

不通過。

4.2卡方檢定法(Chi-Square Test)

卡方檢定的目的是針對一隨機的現象,由收集到的數據,透過公式運算得到

的 p-value 來檢定某一種模型對這組數據是否合適,又被稱為「皮爾生卡方合適

度檢定」(Pearson’s Chi-Square Goodness-of-Fit Test)。

我們配合前一節 FIPS 140-2 測試,以 20000 個位元,即 2500 個位元組為

一個測試單位。針對單一位元組所有可能出現的值 0 ~ 255,每 8個分為一組,

即 0 ~ 7 為一組、8 ~ 15 為一組、…、248 ~ 255 為一組,共 32 組,再利用卡

方分配來檢定該 2500 個位元組的擬亂序列發生在各組之中的機率是否趨近於相

Page 19: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

19

等:

統計 2500 個位元組的擬亂數列在各組的發生的累積次數,第 i 組發生 Yi

次, ,透過卡方公式計算 ,其中 n = 2500,pi = 1/32 ,即

。再根據所得 x2 查卡方分配表,自由度為 32 – 1 = 31,找到其

p-value ,將品質區分為六個等級,評定標準如下表:

p-value 範圍 Goodness-of-Fit

0.3 < p < 0.7 Excellent

0.2 ≦ p < 0.3 或 0.7 < p ≦

0.8 Good

0.1 ≦ p < 0.2 或 0.8 < p ≦

0.9 May Be Random

0.05 ≦ p < 0.1 或 0.9 < p ≦

0.95 Almost Suspect

0.01 ≦ p < 0.05 或 0.95 < p

≦ 0.99 Suspect

0 ≦p ≦ 0.01 或 0.99 ≦ p

≦ 1 Reject

表 2 自由度 31的卡方分配 p-value 對於亂數檢定的等級對照表

4.3深度檢定法

若產生亂數的機制不夠完善,在產生大量的亂數之後可能會發生品質降低的

情形,我們稱之為「變化衰竭」。

為了檢測這種情形,我們對一個固定的輸入種子序列以 20000個位元為一個

測試單位,做 1000 次的 FIPS 140-2與卡方檢定的綜合測試,每 100 次統計一次

並輸出結果以觀察品質是否有不穩定的情形,並統計總通過測試的比率。也就是

說,測試一個初始種子在輸出 20,000,000 個位元的擬亂數列之內,是否會產生

衰竭的現象。這項測試同時也能表現出該筆擬亂序列的可用性,若要對很長的明

文位元串加密,深度檢測能夠表現出亂數產生器的可靠性。

Page 20: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

20

第五章 檔案保護機制實作 加密:

(1)啟動程式

(2)尋找想加密的檔案

Page 21: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

21

(3)讀入檔案後設定密碼

(4)加密完成後的檔案

Page 22: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

22

(5)開啟被加密的檔案 解密:

(1)開啟被加密的檔案且輸入密碼

Page 23: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

23

(2)檔案還原

Page 24: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

24

第六章 比較

6.1系統簡介

6.1.1 RAR簡介

WinRAR 是目前在辦公室中被廣為使用的知名壓縮軟體,加密是他的附加的

其中一項功能。RAR 加密的原理,是將 UNICODE 格式的密碼,與隨機生成的一個

8位元組的 SALT(數值)連在一起,根據它生成 AES 演算法的密鑰來進行加密。

Page 25: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

25

Page 26: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

26

6.1.2 EOC簡介

EncryptOnClick 是一款免費的資料加解密工具,使用者只需要透過介面選

擇要進行加解密的檔案或資料夾,那麼程式就會以使用者所輸入的密碼做為加解

密的依據,以 AES-256 bits 的方式對資料進行高安全性的保護。

Page 27: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

27

Page 28: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

28

6.2安全度比較

在此章節之中,我們試著使用解密的程式(archpr)對 RAR、ROC 和 SCT 作

解密嘗試。

(1)準備密碼皆為"1024"的三份密檔

(2)RAR 檔案在 14.71 秒後被破解出密碼。

Page 29: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

29

(3)EOC 檔案在 0.34 秒後被破解出密碼。

雖然我們開發出的系統所產生的 SCT加密檔案,由於目前尚未能找到能夠讀

取它格式的解密程式,因此無法在實作上做到實際的比較。不過從各家的解密程

式的手段來看,我們能知道它們大都是以暴力法不斷的嘗試得到真正的密碼,因

此,提供判斷密碼的正確與否,成為了安全上的漏洞,所以從這觀點來看的話,

不具提供判別密碼是否正確的 SCT加解密程式,能夠有效的防止加密的檔案遭到

此手段的破解。

Page 30: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

30

第七章 結論與展望

以傳統串流加密技術為基礎下,我們使用 π-e 亂數產生器製造具有高品質

的亂數,並給予全新的演算法與加解密方式。經過不斷的研討和實作測試,開發

出了新的加密系統 SCT(二維串流加密技術)。

在前述的安全度分析比較中得知,我們的 SCT加密系統並不會對使用者所輸

入的密碼是否正確而進行判定,因為這功能的存在無疑是必須將密碼存放在某處

進行比對,因此有可能成為安全上的漏洞。

不過我們所開發的 SCT系統,由於不驗證密碼是否輸入正確作為解密依據,

只要輸入了密碼,系統一律進行強制解密,因此能夠同時在不損使用者權益下,

有效的避免遭到機械式的暴力法破解,使安全度大為提高。

不過,在得到安全的加密系統後,伴隨而來的是萬一忘記密碼時該如何處

理,這個資訊爆炸的年代,繁雜的資訊檔案一多,很有可能讓我們與其他密碼的

記憶搞混在一起,以至於可能發生空有密檔使用者卻無可奈何的窘境,因此使用

者忘記密碼的補救處理機制,極可能是接下來的問題所在。

而這些問題,老師與我們在理論方面也已經有了部分的共識,只可惜我們沒

足夠的時間實作出新的理論,望學弟妹能更精進於 SCT的研究,讓老師的理論能

在學術界得以展現,同時,讓需要資訊安全的產業都能接受我們實作的成果,得

以開發而達到廣泛的應用。

(附錄) Demo

(圖 A.1 輸出 5000筆比擬亂數序列)

Page 31: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

31

(圖 A.2 FIPS PUB140-2 測試圖表)

Page 32: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

32

(圖 A.3 卡方測試圖表 Chi-Square Test)

Page 33: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

33

(圖 A.4 深度測試圖表 Depth Test)

參考資料、網站

[1] S. Palit, B. K. Roy, “Cryptanalysis of LFSR-Encrypted Codes with

Unknown Combining Function," International Conference on the Theory

and Application of Cryptology and Information Security, 1999, pp.

306-320.

[2] K. Ichino, K. Watanabe, M. Arai, S. Fukumoto, and K. Iwasaki, “A Seed

Selection Procedure for LFSR-based Random Pattern Generators,"

Design Automation Conference 2003, Proceedings of the ASP-DAC 2003,

Asia and South Pacific, Jan. 2003, pp. 869-874.

[3] Chen-In Henry Chen, “Synthesis of Configurable Linear Feedback

Shifter Registers for Detecting Random-pattern-resistant Faults,"

Proceedings of the 14th international symposium on Systems synthesis,

International Symposium on Systems Synthesis, 2001, pp. 203-208.

[4] J. Boyar Plumstead, “Inferring a Sequence Generated by a Linear

Congruence," Proceedings of 23th IEEE Symposium on the Foundations

of Computer Science, 1982, pp. 153-159.

[5] J. Boyar, “Inferring Sequence Produced by a Linear Congruential

Generator Missing Lower-Order Bits," Journal of Cryptology, vol. 1,

no. 3, pp.174-184, 1989.

[6] A. Pfeiffer, “Overview of the LCG Application Area Software

Projects," Nuclear Science Symposium Conference Record, 2004 IEEE,

Oct. 2004, pp. 2020-2023.

[7] E. L. Key, “An Analysis of the Structure and Complexity of Nonlinear

Binary Sequence Generators," IEEE Trans. Information Theory, vol.

IT-22, no. 6, Nov. 1976, pp. 732-736.

[8] P. Hellekalek, “Good Random Number Generator Are (not so) Easy to

Find," Mathematics and Computers in Simulation, vol 46, June 1998,

pp. 485-505.

[9] J. L. Deng, “A Introduction to Grey System Theory," Journal of Grey

System, vol. 1, no. 1, pp. 1-24, 1989.

[10] H. K. Chianq, and C. H. Tseng, “Integral Variable Structure

Controller with Grey Prediction for Synchronous Reluctance Motor

Drive," IEE Proceedings, Electric Power Applications, vol. 151, issue.

3, pp. 349-358, May. 2004.

[11] K. L. Wen, “Study of GM(1,N) with Data Square Matrix," Journal of

Page 34: 九十九學年度 資訊工程學系專題研究報告 · 九十九學年度 資訊工程學系專題研究報告 使用二維串流加密技術實作檔案之保護 指導教授︰黃宜豊

34

Grey System, vol. 13, no. 1, pp.41-48, 2001.

[12] H. K. Chiou, G. H. Tzeng, and C. K. Cheng, “Grey Prediction GM(1,1)

Model for Forecasting Demand of Planned Spare Parts in Navy of

Taiwan," MCDM 2004, Whistler, B. C. Canada August 6-11, 2004.

[13] C. C. Tong, J. W. Dai, T. C. Chang, and K. L. Wen, “A New Algorithm

in Throughput Prediction of ALOHA protocol by using GM(1,1) Model,"

System, Man, and Cybernetics, 2001 IEEE International Conference, vol.

4, pp. 2105-2109, 2001.

[14] Federal Information Processing Standards Publication 140-2,

Security Requirements for Cryptographic Modules, Cryptographic,

Computer Security, National Institute of Standards and Technology

(NIST),

http://csrc.nist.gov/publications/fips/fips140-2/fips1402.pdf.

[15]

http://www.pki.gov.tw/rsa/RSA_ENCY.doc

http://oasis.csie.ntu.edu.tw/2006_fall_network/slides/32

http://www.slidefinder.net/%E7%8F%BE/%E7%8F%BE%E4%BB%A3%E4%B8%B2%E

6%B5%81%E5%8A%A0%E5%AF%86%E6%B3%95/13245286

http://toget.pchome.com.tw/category/utility/26372.html

http://hi.baidu.com/timeless2008/blog/item/8d3229f5497568d7f2d3858

a.html

http://tw.news.yahoo.com/article/url/d/a/101129/5/2i20k.html