
摘? 要: 本算法通過加密因子對數據進行運算,改變數據形態,實現加密。本文闡述了算法的加密原理和加密因子的生成原理,并分析了算法的復雜度以及難以破解性。根據本算法編寫的程序,經過大量實驗,證明了算法的可行性。
關鍵詞: 算法;數據加密;本原多項式;m序列;加密因子;非線性變換;周期長度
中圖分類號: TP309.2? ? 文獻標識碼: A? ? DOI:10.3969/j.issn.1003-6970.2020.10.031
本文著錄格式:張國慶. ZGQ數據加密算法[J]. 軟件,2020,41(10):129131
【Abstract】: This algorithm operates on data through encryption factors, changes the data form, and implements encryption. This article explains the encryption principle of the algorithm and the generation principle of the encryption factor, and analyzes the complexity and difficulty of the algorithm. The program written according to this algorithm, after a lot of experiments, proved the feasibility of the algorithm.
【Key words】: Algorithm; Data encryption; Primitive polynomial; M-sequence; Encryption factor; Nonlinear transformation; Period length
0? 引言
為了保護信息安全,目前我們能夠采取的手段一般就是口令認證方式。這種方式存在很多弱點,(1)有后門。經常有這樣的情況,不需要輸入口令即可付款,說明可以繞過口令直接通過后門進入我們的體系; (2)簡單破解。由于賬號口令設置簡單而被進入的情況屢見不鮮,即便是復雜一些的口令,也不能確保信息安全,比如我們經常使用的六位數字口令密碼,其窮盡量僅為106=100萬次,這個數量級對于現代計算機來說,完全不在話下,相信有很多破譯軟件可以輕易破解;(3)無意泄密。口令很方便,也很隨意,但是無意中已被周圍的人所知,這一點也使我們無法確保信息安全。凡此種種我們期待有更好的加密方式出現,本人獨立研發的“ZGQ數據加密算法”,就是一款可以確保信息安全的加密算法。
以下的介紹涉及到一些數學知識,因篇幅所限,本文只引用結論,不做具體闡述,感興趣者可查閱相關資料,特此說明。
1? 形象描述
“ZGQ數據加密算法”顧名思義,就是對數據進行加密。與口令方式的不同點在于,口令是將數據存放在一個受保護的地方,憑借口令才能獲取數據。而本算法加密后的數據改變了原有的形態,只有通過相應的解密軟件才能使其還原成本來的樣子。如果沒有解密軟件,唯一的辦法就是破解其算法。
后面的分析我們將看到,這個算法是非常難以破解的。
2? 數據加密算法原理
眾所周知,隨機序列是不可破解的?;诖吮舅惴ㄖ荚诶媒o定的生成邏輯構造一條隨機序列或準隨機序列,并用這條序列作為加密因子,對數據(文件)的二進制信息進行運算,達到加密的目的。
本算法由兩部分組成,一是加密方式,二是加密因子生成邏輯。
2.1? 加密方式
首先引入三個概念:明文,密文,加密因子
明文:要加密的數據文件
密文:加密后的結果
加密因子:對明文進行加密的元素
加密公式: 加密因子-明文=密文
解密公式: 加密因子-密文=明文
為了直觀起見,以十進制數進行mod10運算,舉例如下:
加密因子:3209773581
明文:1234567890
則密文:3209773581-1234567890=2075216791
解密:3209773581-2075216791=1234567890
加密后,非法訪客只能看到2075216791,如果他想得到明文1234567890,只有破解加密因子的生成邏輯以及獲取相應的加密軟件才行。
2.2? 加密因子生成邏輯
一個n級線性反饋移位寄存器(LFSR)[1]可以產生一條01序列,這條序列的周期[2]長度是2n–1或2n–1的因子,當其周期為2n–1時,這條序列稱作m序列[3]。LFSR的數學模型就是建立在GF(2)上的多項式理論,m序列與GF(2)上的本原多項式[4](一個n次本原多項式是指周期長度為2n–1的不可約多項式)是一一對應的,理論界對GF(2)上本原多項式的研究已經非常透徹,其結論完全適用m序列,在此不再贅述。研究結論表明,盡管m序列有很好的統計特性,很長的反復周期,但是,由于其內在的線性生成規律,極易被破解,因此,被稱作偽隨機序列。加密因子生成邏輯的重點就是破壞其偽隨機性特點。
(1)首先需要有一個n次本原多項式,并生成一條周期長度為p1=2n–1的m序列。
比如:令n=31,查表得到本原多項式
(2)其次需要構造一條隨機序列或準隨機序列
然后用H對m序列進行重新組合,破壞其線性特點,得到一條周期為
的隨機序列或準隨機序列S,進行截取,就是所要的加密因子序列。由于對m序列進行了非線性變換,破壞了其線性規律,因此,序列S可以看做隨機序列或準隨機序列。
非線性序列H的構造方法有很多,舉例如下。
1)手寫法就是根據某種規則,人工寫出一串數字,并以此作為非線性序列H。這種方法原始,但無規律可乘,因此也是最安全的隨機序列,缺點是不便于大量生成。例如:
2)機器生成法給定一個生成邏輯讓機器生成H。比如以混同余算法為基礎生成一條混同余序列,然后再進行一次模處理,變成一條非線性序列,這種方法的好處是不依賴人工,便于大量生成,缺點是有一定規律可乘,考慮到其對m序列的破壞,這種規律很難以被利用,不失為一種選擇,其產生的序列可以看做準隨機序列。例如:
這就是我們要的非線性序列H。
(3)關于截取
由于m序列很長,變換后的S更長,因此,不可能也沒必要完全生成后再進行截取。采用密鑰控制,不同的密鑰代表從不同的起點開始,生成足夠多的比特,以此實現把序列S截取為若干段互不相同的Si的目的。
說明:有關本原多項式和m序列方面的知識,網上很多,有興趣者可自行查閱相關內容,在此只引用結論,不做具體闡述。
3? 算法的復雜度分析
加密算法的復雜度決定了破解難度,一般取決于下列幾個因素。
3.1? 生成因素的隨機性
隨機性是復雜度的主要考察因素。破解的目的就是找出并利用其規律。人工手寫的序列是隨機的,無規律可循,是無法破解的。但是人工無法大量手寫,因此往往是采用一些復雜的變換由機器生成,這種變換五花八門,其復雜度也是無法考量的。
一般認為,隨機序列是復雜度最高的序列,而一條非隨機序列與隨機序列(或準隨機序列)相結合的產物就是隨機序列(或準隨機序列)?;谶@個共識,本算法提出了人為構造一條較短的隨機序列或準隨機序列,控制偽隨機序列m進行變換,破壞其規律,得到加密因子序列Si。
因為這種變換是有隨機或準隨機因素參與的,因此加密因子序列也可以看做是隨機序列或準隨機序列,所以這種變換保證了其足夠的復雜度。
3.2? S序列周期長度
加密因子序列的周期長度,也是考察復雜度的一個因素。以本人編寫的“本原加密軟件”為例進行說明。
選用的多項式是31級(次),其產生的m序列長度為p1=231–1=2147483647
這是一個梅森素數[5](梅森素數Mn是指形如2n–1的素數)人工構造的非線性序列H周期
p2=1057(這個長度是由具體序列H的元素ai決定的),
因為(p1,p2)=1,即p1, p2互素,因此加密因子序列S的周期為
p=p1*p2,
也就是說,加密因子序列S的周期p是2147483647的1057倍,這是一個天文數字,完全可以滿足復雜度對周期長度的要求。
3.3? 生成因素變化量
加密因子序列生成因素的變化量,是復雜度的另一個考察因素。前面說過,生成因素有2個,即非線性控制序列H和線性m序列。
首先僅考慮31級的m序列就有69273666個,這個數字已經足夠大,更何況還有其他級數的m序列 (已知的有足夠級數的m序列并非無限)。
其次非線性變換序列可以任意給出,因此是無限的。兩者結合其變化量也是無限的,遠遠超過復雜度的要求。
綜上所述,算法的復雜度無論對于商用還是民用,都是足夠的。也就是說,本算法對于目前已知的各種攻擊手段比如黑客,病毒,盜竊,非法破譯等等,有足夠的抗攻擊能力。
4? 實驗結果
經過多年的潛心研究,本人獨立研發了“ZGQ數據加密算法”,并編寫了應用程序“本原加密軟件”,在國家版權局的注冊登記號為2008SR25184。
事實上,這個算法構成了一個加密體系,而由算法派生的這個軟件可以看做是一個密碼體系(裝置)的軟件化實現。
生成軟件按照給定的密鑰生成足夠長度的加密因子序列Si;加密軟件利用Si對明文(或密文)的比特流(不考慮其文件格式)進行加密(或解密),因此任意格式的文件均可加密(解密);文件超長時,則循環利用Si進行加密。生成軟件生成的加密因子序列Si是互不相同的,確保一人一密。
經過對word,excel,視頻,圖片,dll,exe,bmp等各種文件格式的大量實驗,證明了本原加密軟件可以對任意格式,任意長度的文件進行加密。且無需設置口令,無需安裝,一人一密,安全可靠,完全實現了算法提出的要求。
5? 結束語
本算法是一項核心技術,擁有完全獨立的自主知識產權。具有以下特點:(1)幾乎不可破解的安全性;(2)因為是對數據本體進行加密,因此沒有后門;? (3)可對各種類型數據進行加密;(4)加密因子序列是唯一的且互不相同,保證了加密結果的安全性。
“本原加密軟件”是算法的具體實現,大量實驗證明了算法的可行性。本算法顛覆了我們對加密的認識,填補了民用加密方式的一項空白,為信息安全提供了一個可靠選項。
國家的強大離不開企業的發展,企業的發展離不開科學技術和自主核心技術的開發和保護。本算法有能力為企業的信息安全保駕護航。
參考文獻
[1]楊鶴. 一種可重構線性反饋移位寄存器設計[J]. 通信技術, 2010(8): 172-174.
[2]何士元. m序列與其一類短周期Niho型采樣序列的互相關性研究[D]. 中南民族大學, 2019.
[3]林智慧, 陳綏陽, 王元一. m序列及其在通信中的應用[J]. 現代電子技術, 2009, 32(9): 49-51+55.
[4]呂輝, 何晶, 王剛. 偽隨機序列中本原多項式生成算法[J]. 計算機工程, 2004(16): 108-109+165.
[5]趙云. 梅森素數探究永不休[J]. 科學世界, 2018(4): 128- 129.
[6]尹曉琦, 殷奎喜, 李中惠, 等. 偽隨機序列及其在通信加密中的應用[J]. 現代電子技術, 2005(19): 42-44.
[7]李澤帥. 偽隨機序列設計及其隨機性分析[D]. 電子科技大學, 2019.
[8]本原多項式表(64)[OL] https://wenku.baidu.com/view/b7300 87611661ed9ad51f01dc281e53a5802510f.html.