ZGQ数据加密算法

2020-12-23 05:47张国庆
软件 2020年10期
关键词:数据加密算法

摘  要: 本算法通过加密因子对数据进行运算,改变数据形态,实现加密。本文阐述了算法的加密原理和加密因子的生成原理,并分析了算法的复杂度以及难以破解性。根据本算法编写的程序,经过大量实验,证明了算法的可行性。

关键词: 算法;数据加密;本原多项式;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  数据加密算法原理

众所周知,随机序列是不可破解的。基于此本算法旨在利用给定的生成逻辑构造一条随机序列或准随机序列,并用这条序列作为加密因子,对数据(文件)的二进制信息进行运算,达到加密的目的。

本算法由两部分组成,一是加密方式,二是加密因子生成逻辑。

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.

猜你喜欢
数据加密算法
基于MapReduce的改进Eclat算法
Travellng thg World Full—time for Rree
进位加法的两种算法
基于增强随机搜索的OECI-ELM算法
云数据存储安全关键技术研究
一种改进的整周模糊度去相关算法