史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > Hacker/Cracker 及加解密技術文件
忘記密碼?
論壇說明 標記討論區已讀

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2006-05-25, 03:50 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 軟體 - 牢不可破的排列碼加密方法及其加密器

下面的兩篇文章是河北工業大學電腦系武金木教授歷時20餘年,傾注畢生心血的研究成果希望各位密碼學前輩各抒己見, 我們以貼會友,共同教學!

鄭重宣告: 本貼涉及的技術部分的所有權,解釋權歸河北工業大學武金木教授所有.本帖只供大家教學討論之用,任何服務機構,組織及個人不得隨意轉載,修改,發表.違者我們將按照相關法律追究其刑事責任.

下面是正文.

牢不可破的排列碼加密方法及其加密器
此方法已經獲得發明專利,專利號為:ZL 99 1 07969.8,利用此專利我們已經註冊7項軟體,登記號分別為:2005SR09926,2005SR09927,2005SR10917,2005SR10918,2005SR12749,2005SR12750,2005SR12751。可在http://waumo.kingjet.cn/ 檢視證書掃瞄件。
排列碼具有如下八大特徵:
1.加密強度極高 加密強度為(n!)^2╳2^(n*n) ,世界最先進的AES加密強度為2^n, 因此當n=128時,排列碼的加密強度比AES高出10的5千多次方倍。當加密強度大於2^512時就可以號稱牢不可破,從這點說排列碼做到了無論你有多少資源都不可破密,即可號稱牢不可破。我們建議凡是購買我們技術的客戶都要簽定經過公證的合同,如果我們的技術指標不達標,我們可根據中國消費法進行雙倍賠償。若有人能證明排列碼的加密強度不大於2^n,我們將發放100萬元人民幣的獎金給此人,當然一定要簽經過公證的合同,不簽合同者我們不進行交易。此話的有效期一直到此100萬元人民幣發出為止!
2.加密速度極快 硬體實現僅幾級門電路的延遲,7.5ns內可完成1個分組的加密,而AES當前需要幾百ns。
3.實現成本極低 使用少量門電路即可實現。
4.算法極多 算法有(n!)!個,每個分組換一個算法。
5.使用非常靈活 分組長度可以是任意正整數,密鑰可以是任意字串型或任意數值型。
6.套用面極廣 凡是使用DES和AES的項目都可以使用排列碼;
7.套用價值極大 例如:可用於製作加密手機,一隻西門子的GSM加密手機售價高達3000美圓,我們製作比他技術指標更高的加密手機,只需增加開發成本,生產成本並不增加多少。目前,我國部隊不允許使用手機,就是因為沒有加密強度高的加密手機。我們已有可以監控或不可以監控不能竊聽的加密手機方案。
8.可以解決目前加密算法不能解決的技術難題 比如DES和AES無法解決的既時圖像加密傳輸,用排列碼就可以解決。


人類還沒有探索過的密碼學新領域

摘要 本文簡單介紹了被普遍認為是密碼界真理的一些現狀,根據我們研製排列碼的實踐提出了我們的一些新的見解,以供科學界進行驗證。

關鍵字 密碼學 分組密碼 流密碼 排列碼 訊息論 訊息安全

1密碼學的現狀
1.1 當前對密碼的分類
根據密鑰的特點,Simmons[1]將密碼體制分為對稱和非對稱密碼體制兩種。對稱密碼體制又稱單鑰或私鑰或傳統密碼體制,非對稱密碼體制又稱雙鑰或公鑰密碼體制。在私鑰密碼體制中,加密密鑰和解密密鑰是一樣的或彼此之間容易相互確定。按加密方式又可將私鑰密碼體制分為流密碼和分組密碼兩種。在流密碼中,將明文消息按字串逐位地加密。在分組密碼中,將明文消息分組(每組含有多個字串),逐組地進行加密。在公鑰密碼體制中,加密密鑰和解密密鑰不同,從一個難於推出另一個,可將加密能力和解密能力分開。當前對分組密碼的概念是模糊的,一個字串是8位元 ,這是分組密碼還是流密碼?許多初學者無法區分分組密碼和流密碼。由此把人們的研究引入到研究分組密碼,密鑰一定不能改變,因此分析分組密碼僅分析一個分組就可以,因為整個文件的加密強度是一個分組的加密強度。而流密碼每次加密一個服務機構(一個服務機構或一個位元 ),每個服務機構的加密強度等於1,流密碼的加密強度取決於對密鑰流變化規律的隱藏。
1.2 當前對訊息空間的認識
由n位2進制數位組成的訊息空間的大小是2^n[2]。因為他的真值表是2^n,或者說他的全排列個數2^n。這裡忽略了n位2進制數位的位置訊息。因此人們研究的訊息空間不能越過2^n。一見到超過2^n,不用想就是錯的,研究超過2^n的訊息空間就好像發明了永動機一樣不可思議。
1.3 當前加密方法只能使用一對一的影射
現在所見到的所有的除我們以外所有的書籍和論文,以及文字資料,都認為加密不能有兩個以上的明文加密成同一密文,也不能有兩個以上的密文解密成同一明文。因為若有兩個明文對應同一個密文,那這個密文變成哪個明文無法確定[7],因此此加密沒有實用價值。人們只能在一對一的影射領域內研究問題。
1.4 分組密碼的加密強度只能靠增加加密強度來實現。
DES被攻破之後,人們認為只有加大n,才能解決加密強度問題。因此美國推出AES時主要指標之一是n=128,認為n<128是不可靠的。加密強度不能大於2^n。
2.排列碼簡介
排列碼加密方法[3],[4]讓我們獲得了中國發明專利,專利號為ZL 99 1 07969.8。
用排列碼方法我們註冊了7項軟體,登記號為2005SR09926、2005SR09927、2005SR10917、2005SR10918、2005SR12749、2005SR12750、2005SR12751 。
2.1 n=4的排列碼演示程序設計說明:[6]
1排列碼表見表1,這樣的表共有24!個。
我們任意地建立其中的256個。
表中第5行4 0 3 1 2表示當Key=4時,明文第0位的2進制數送第0位做密文, 明文第1位的2進制數送第3位做密文, 明文第2位的2進制數送第1位做密文, 明文第3位的2進制數送第2位做密文。
為了節省儲存於空間,0用2進制數00表示 , 1用2進制數01表示 ,2用2進制數10表示 , 3用2進制數11表示, Key 用儲存於位址來表示。這樣1個排列碼表占24個字元。
表1 排列碼表
Key 0 1 2 3
0 0 1 2 3
1 1 2 3 0
2 2 3 0 1
3 3 0 1 2
4 0 3 1 2
5 0 3 2 1
……..
23 3 2 1 0

2關於密鑰的設計,用1個字元作整數,它表示的範圍是0~255。根據他的值就可以確定一個排列碼表。
在這個排列碼表中,再進去行模24運算。得到一個0~23的整數,恰好對應排列碼表中的Key值,確定bit的交換順序。
3關於求非的運算,為了進一步增加破密的難度,我們在交換順序的同時,在某些交換路徑上求反。因為n=4,0點有可能有4個路徑,1、2、3點都有可能有4個路徑,所以可能的路徑總數共有16條,每一bit 對應一條路徑,使用16bit或者說2個字元控制哪個路徑上是否加非。用0表示不加非,用1表示加非,或者反之。
4綜合以上密鑰的長度為24bit。
5為了進一步增加加密強度,第二個分組的密鑰選取,密鑰是在原密鑰的基礎上加上前一個密鑰的一定規律的變換,只要加密密鑰和解密密鑰的規律相同則解密不成問題,但密碼分析者雖然可以從程序知道密鑰是如何變換的,因它的原始密鑰的輸入密碼分析者是不知道的,因此知道的僅是密鑰的一部分;密碼設計這每下一個分組再加3個字元的明文,輸入都是已知,所以方法可行。密碼分析者相當於用未知數求未知數,因此無規律可尋。
6這樣一來每個分組的密鑰都是一個偽隨機數。但必定有明文的特徵。可是產生的密文隨機性特別強。
7以上程序連續做多遍,每遍都用不同的24bit的密鑰。
8為了提高速度,並不是一遍加密結束後再進去行下一遍,而是一個分組連續進行多遍加密,這種做法理論上進行4遍,按目前的密碼分析水準加密強度可能已經達到2^96,遠遠超過了DES,幾乎是目前破密難度的極限。 因為加密強度是關於n的函數,f(n)的常數為1。所以當n稍微大一點的時候, 函數的值都相當大,可以說是2的n次方的高階無窮大。如果n=4你都不能破密,那想破密n=64還不是天方夜談。
這裡我們指出的是查表法;實際上128! 排列碼表無法用查表法實現,但是可以用計算法實現。使用計算法n可以是任意的正整數。
2.2 n=3的排列碼的一些結果
因為加密強度是關於n的函數,為了讀者體會加密強度,驗證較小的n,比驗證較大的n要容易的多,所以我們指出n=3時,密鑰是16進制的000000時,排列碼程序僅僅對每個字元的最低3位進行運算的結果。為了是感興趣的人能驗證我們的資料,產生此結果的程序我們交給了雜誌社。下面是說明問題的資料。

明文是:00000000000000000000000000000000000000000000000000000000000000000
密文是:76226620234204620644100540021061241605034252250014020562154521061

密文是:0000000000000000000000000000000000000000000000000000000000000000
明文是:7746711631743661714140713076565005510653223736345310704360555105

明文是:0123456701234567012345670123456701234567012345670123456701234567
密文是:7622662023420462064410054002106124160503425225001402056215452106

密文是:0123456701234567012345670123456701234567012345670123456701234567
明文是:7315214301652164722246106370602715370027570327745411544336777216
3.我們的新發現
3.1 分組流密碼
對於分組密碼,我們見到的資料基本上都只強調分組(每組含有多個字串),逐組地進行加密,有的明確指出了用同一個密鑰進行加密。而排列碼每個分組都更換密鑰,按這個原則應該屬於流密碼;但是我們見到的所有流密碼都是可以很容易從明文、密文對推出密鑰,不存在同一明文、密文對有多個密鑰對應的情況,因此研究流密碼都啟始到研究偽隨機函數發生器的軌道上來了。檢測流密碼的加密強度就是檢測偽隨機函數的隨機特性。如果隨機特性不好就很容易破密;排列碼根據分組密碼多對多的路徑概念設計出來,分析每個分組只能分析出密鑰的幾個位元 ,而下一個分組需要用分組密碼的分析法重新分析,不能使用流密碼的分析方法。所以排列碼是以往分類中沒有包括的分組流密碼,因此人類史上沒有研究過。
3.2 訊息的上標是客觀存在的
對於訊息00000000000000…………0B,人們一直見到的就是一串0,因此才得出1.2節 當前對訊息空間的認識。而客觀世界可以把這一串0分成j個分組,每個分組有
個位元 。這才是客觀世界的真實表示。也就是每個位元 的0都可以帶上兩個上標,一個上標表示在組內它是第幾位元 ,另一個上標則表示它是第幾個分組。這才是分組密碼的完整客觀的表示。
3.3 多對多的路徑解決了一對一的影射不能解決的問題
鑒於當前對於一串0不帶上標,只能匯出現在的一對一的影射,加密強度也就不可能跨越2^n,但是有了2.2對客觀世界的描述,比如有0000,都給他們帶上上標他們的全排列個數就是24,而不是1了。而2.1編程方法就是可以理解的了,帶上標的4個0交換位置後是不同的表示,交換後做密文,我們可以把再在交換回來,我們可以用Key那個整數記錄怎麼交換的,這個交換的程序我們稱做路徑。有了2.2的表示我們就可以把0~7變成0,而且能把0再變回0~7,解決了1.3人們用一對一的影射不能解決的問題。由2.2的1可見明文0可以加密成密文0~7,密文0~7都可以解密成0,由2.2的2可見明文0~7都可以加密成密文0,密文0可以解密成明文0~7。
3.4 排列碼使差分分析法失效
因為差分分析法是針對一對一的影射設計的,現在每一個明文密文對有多個密鑰,差分分析法忽略了上標這個訊息,只能分析出多個密鑰中的一個密鑰的一部分訊息對得到整個密鑰的訊息沒有說明 ,因此排列碼使差分分析法失效。
3.5 排列碼使線性分析法失效
同樣道理,因為線性分析法是針對一對一的影射設計的,現在每一個明文密文對有多個密鑰,線性分析法忽略了上標這個訊息,只能分析出多個密鑰中的一個密鑰的一部分訊息對得到整個密鑰的訊息沒有說明 ,因此排列碼使線性分析法失效。
3.6 排列碼使字典分析法失效
由2.21可見明文0~7都可以加密成0,由2.22可見密文0~7都可以解密成0。0~7即可以變成0,也可以變所有的8個值,沒有密鑰配合,明文密文就沒有對應關係,因此即使有無限的資源排列碼也使字典分析法失效。
3.7 排列碼使流密碼分析法失效
我們指出的編程方法並沒有使用真正的偽隨機數,密鑰的變化規律全部公開對排列碼破解沒有任何說明 ,而流密碼的分析方法都是檢測偽隨機數的隨機特性的,因此排列碼和流密碼是毫不相干的事。
3.8 排列碼使唯密文攻擊失效
一串密文0可以由2^96個密鑰確定2^96個不同的明文,和密文0的個數無關,僅和密鑰有關,因此排列碼使唯密文攻擊失效。 同樣一串1,一串2都可以是密文。
3.9 排列碼使已知明文攻擊失效
之所以有已知明文攻擊,那是現實中很容易找到已知明文攻擊事例[5],但是對於排列碼就不存在了。比如2.23明文指出了8遍,明密文對指出的訊息仍然使你很難攻擊。
3.10 排列碼使Kerckhoffs原則必須修改
  因為排列碼每個分組都要換一個算法,不同的分組使用不同的算法,使用的算法和密鑰相關。而且算法有(n!)!個。當n>6的時候,算法的個數就已經超過了2的500次方,任何人是不可能依靠弄明白這麼多算法來提高密碼分析的能力的。因此Kerckhoffs原則必須修改,它原來僅僅對密碼設計者提出密碼的安全性不能建立在密碼算法的保密上。但另一方面密碼分析者分析密碼也不能建立在對密碼算法的公開上。
3.11 排列碼可以在很小的n的情況下獲得牢不可破的密碼
就對稱密碼體制來說,我們幾乎永遠不會用到比512位元 更長的密鑰[8],這是因為:即使假設宇宙中每個原子(約有2^300個)都是電腦,並且均可每秒搜尋2^100個密鑰,要搜尋512位元 也需10^51年,根據宇宙大爆炸理論,宇宙誕生至今也不超過10^10年。而排列碼當n=22時,密鑰的長度就遠遠超過了512位元 。況且我們如果用換算法做密鑰,(5!)!就已經遠遠大於2^512。也就是說n=5的時候,排列碼就可以做成牢不可破。n小了的好處是容易提高加密速度,且使用很少的邏輯元件就可以實現。比如n=4的排列碼加密晶片,加密每個分組僅僅7ns。
3結論
任何訊息都可以用2進制訊息來表示,2進制訊息總是按一定順序出現才有意義,有一定順序的2進制訊息,用兩個下表來表示它的順序,不考慮下表的訊息量僅僅是有上標訊息量的滄海之一滴。目前的密碼學僅僅研究和探索了不考慮上標的訊息空間,若進入帶上標的訊息空間,那麼密碼學的許多概念需要改變,密碼編碼學可以使加密強度更高,加密速度更快,加密更簡潔,密碼分析法需要更新,相關的新的數學領域需要建立。
參考文獻
[1]Simmons,G.J.,Symmetric and Asymmetric Encryption Computing Surveys, Vol.11, No.4, Dec.1979, 305-330.
[2]馮登國,裴定一.密碼學導引[M].北京:科學出版社,1999. 292.
[3]武金木,武優西.建立分組密碼加密技術的新概念[J].河北工業大學學報,2000,(1):78-81.
[4]武金木,武優西.排列碼加密解密方法及其排列碼加密解密器中國發明專利, CN99107969.8,2003,3.
[5]張煥國,劉玉珍.密碼學引論.[M].武漢大學出版社,2003.11.
[6]武優西,武金木,洪流濤等.分組密碼加密解密的方法及其加密解密器,中國發明專利, CN200510013807.X,2005,11.
[7]黃月江,龔奇敏.訊息安全與保密--現代戰爭的訊息衛士[M].國防工業出版社,1999.19.
[8]胡向東,魏琴芳.套用密碼學教學[M].電子工業出版社,2005,61
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1630 篇, 收花: 3204 次
 


主題工具
顯示模式

發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 09:03 PM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2020, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1