可逆矩阵加密算法初步研究与应用设计

时间:2022-06-06 05:34:05

可逆矩阵加密算法初步研究与应用设计

摘要:为了防止通信过程中重要信息泄露,确保网络信息传输的安全,本文根据可逆矩阵的特性并结合加密算法原理,提出了一种新的可逆矩阵加密算法,并且根据可逆矩阵加密算法自身的加密特性,研究了其应用模式。

关键词:可逆矩阵 加密算法 密钥矩阵

中图分类号:TP309.7 文献标识码:A 文章编号:1007-9416(2012)09-0111-02

密码技术在网络安全中具有重要的作用。目前常用的加密算法有:DES算法、3DES加密算法、IDEA加密算法、AES加密算法和RSA加密算法等。然而随着计算方法的改进,计算机运行速度的加快,网络的发展,越来越多的加密算法被破解,目前常用的加密算法都有可能在短时间内被破解,因此,需要研究新的安全加密方法。

可逆矩阵加密算法与以往的加密算法不同,它属于非对称加密算法,但其用于加密和解密两个密钥均不对外公布。该算法采用C/S模式对密钥进行分发和管理,每个密钥对应一个可逆矩阵(称其为密钥矩阵),因此其密钥矩阵也具有无数个。在每次通信中,从中随机选取一对密钥矩阵加密和解密信息,这一对密钥矩阵对应的矩阵互为可逆矩阵。由于每一个可逆矩阵只有唯一的一个可逆矩阵与其互为逆矩阵,所以在加密密钥矩阵未知的情况下,求得解密密钥矩阵的可能性为0。该加密算法就是利用密钥矩阵空间无穷大的特性,在每次通信中对密钥矩阵进行随机选择,确保了通信数据信息的安全。

1、可逆矩阵加密算法理论分析

1.1 算法的加密原理

信息发送端首先根据密钥矩阵A的阶数(||A||=n),将明文转换为n维数向量X,然后将X与A相乘得到密文Y,既Y=AX,再将Y发送,信息端接受到Y后,则利用密钥矩阵A-1(其中A与A-1互为可逆矩阵)与Y相乘,则会得到明文X,既:A-1Y=A-1AX=X。

例如:一个密钥矩阵,另一个密钥矩阵,信息发送端欲发送信息ABC。首先根据ASCII码表将ABC转为三维数向量,则对应的密文,然后将密文Y传输,当信息接收端接收到密文Y时,利用解密密钥矩阵A-1,根据公式求得,然后利用ASCII码表则可解析出发送信息为ABC。

1.2 算法安全性分析

在已知加密密钥矩阵A的情况下,求得解密密钥矩阵A-1理想算法的时间复杂度为n3,其中n为A的阶数。而在A未知的情况下,求得A-1的可能性为0。因为,每一个n阶矩阵都有无数个可逆矩阵存在,而每一个可逆矩阵只有唯一的一个矩阵与它互为逆矩阵,从无数个可选矩阵中选取唯一的与加密矩阵对应的解密矩阵的可能性为0,故在A未知的情况下,求得A-1的可能性为0。本文提出的C/S应用模式,服务端具有无数个成对的密钥矩阵,服务端可以定期的为需要安全服务的通信双方各自随机安全地提供一个密钥矩阵队列,这两个密钥矩阵队列对应位置的对应的矩阵互为可逆矩阵。在每次通信时,信息发送端根据一定的规则从密钥矩阵队列中选择一个密钥矩阵A加密信息,而每次选择都随外界条件变化而变化,因此相当于从无数个密钥矩阵中随机选取一个密钥矩阵加密信息,只有对应的信息接收端利用反规则和对应的密钥矩阵队列,才可以解密出发送的信息内容。窃密者即使知道加密和解密规则,也会由于密钥空间的无限而无法获取解密密钥矩阵A-1,从而也无法获取密文信息。因此该算法是安全的。

1.3 算法的加密和解密复杂度分析

加密复杂度:在已知加密密钥矩阵A(||A||=n)和数向量X的情况下,求得密文Y需要计算n*n乘法和n*n次加法。

解密复杂度:在已知解密矩阵A-1(||A-1||=n)和密文数向量Y的情况下,求得明文X也需要计算n*n乘法和n*n次加法。

根据上面的结论,我们可以知道矩阵的阶数大小直接影响到算法的执行效率,所以选择阶数适合的密钥矩阵很重要。

2、可逆矩阵加密算法的密钥生成

2.1 基本概念介绍

密钥矩阵库:密钥矩阵存放的数据库。能够按照密钥矩阵的阶数,对存放密钥矩阵进行成对的存取。

随机密钥矩阵选择器:用来随机选取成对密钥矩阵的算法。可以根据用户初始化参数n,在矩阵阶数为n的密钥矩阵库里随机的选取其中的一对密钥矩阵。

初等可逆矩阵生成器:用来生成可逆矩阵的算法。可以根据用户的初始化参数n,随机生成一个n阶密钥矩阵。

2.2 密钥生成算法的流程

首先,随机密钥选择器根据初始化参数[A,A-1,n](n=||A||)中n的值,从密钥矩阵库里随机选取一个n阶密钥矩阵,如果选取失败,就会触发初等可逆矩阵生成器,使其生成一个n阶密钥矩阵,并将其送入密钥矩阵库里。然后将随机密钥矩阵选择器选取产生(或初等可逆矩阵生成器生成)的密钥矩阵[P,P-1]和初始化参数[A,A-1]送入矩阵乘法器,接着就会产生[B,B-1,n],最后初始化参数构造器就会根据[B,B-1,n],构造出两个新的初始化参数,这两参数将会进行下一次的运算,如此反复循环直到结束。其主要流程如图1所示:

3、可逆矩阵加密算法的工作模式

3.1 数据格式定义

在进行加密通信时,传输的数据包括时间和信息内容。其中a代表信息发送的时间,b代表信息内容。

3.2 通信信息表定义

在进行加密通信时,通信双方为了生成实时动态的密钥矩阵所维护的通信状态表。其中D代表目的通信目的方,C代表通信次数计数器,Q代表密钥矩阵队列地址。

3.3 算法工作过程综述

由于密钥矩阵是无限的,需要较大的存储容量,大部分通信设备的存储容量有限,又考虑到密钥的安全性维护、管理和密钥矩阵分发工作。本算法采用C/S模式,减轻了用户端的负担。

用户在需要进行安全通信时,首先与通信对方进行交互,取得对方同意后,向密钥服务器提出密钥申请,密钥服务器将随机产生一对密钥矩阵队列分别发给通信双方(这一对密钥矩阵队列对应位置的密钥矩阵对应的矩阵互为可逆矩阵),通信双方则利用自己的密钥矩阵队列进行通信。一定时间和次数之后,再向密钥服务器申请,生成新密钥队列,直到通信结束。具体过程如下所示:

准备阶段:

(1)A向B发送安全通信请求;

(2)B向A发送安全通信回应;

(3)如果B同意与A进行安全通信,则A通过密钥服务器的密钥服务接口向发出密钥队列请求信息;

(4)密钥服务接口通过访问密钥矩阵库,随机生成一对一定大小的密钥矩阵队列,将其中一个密钥矩阵队列发送到A;

(5)将另一个密钥矩阵队列发送到B。

此时,A端和B端分别生成各自的通信信息表,D将赋值为对方的地址,C初始化为0,Q存放各自密钥矩阵队列的索引地址。具体过程如图2所示。

3.4 数据加密

当通信A端有信息数据要发送时,则要进行数据加密。首先将通信信息表(信息D、C和Q)和数据格式表(时间a)送进密钥矩阵选择器,密钥矩阵首先根据D和Q的信息确定密钥矩阵队列的地址,然后再根据C的信息,在密钥矩阵队列里随机选取时间加密密钥矩阵A,再根据发送时间a,随机生成加密信息内容的密钥矩阵B,接着分别将(时间a和密钥矩阵A)和(信息b和密钥矩阵B)送入加密器,分别对时间信息a和传输信息b加密,生成密文Aa和Bb,则完成加密过程。具体过程如图3所示。

3.5 数据解密

数据解密是数据加密的一个反过程。首先,利用通信信息表的信息,通过密钥矩阵选择器选取出对应于密钥矩阵A的可逆矩阵A-1,然后利用A-1解密出信息的发送时间a,根据时间信息a,生成对应于密钥矩阵B的B-1,然后利用B-1解密出信息b。

3.6 密钥传输安全维护方法

密钥服务器首先从密钥矩阵库里随机选择一系列的成对的密钥矩阵队列,再将这一系列的密钥矩阵队列分成对应的两份。其中一份用于生成服务器端的通信信息表(其中D是服务端生成的客户端的代码),另一份生成与服务器通信信息表对应的安全通信服务卡。安全通信卡类似于银行卡,它包含三部分,一部份是服务器端的地址信息,另一部分是标示自己身份的信息(与服务器端的地址D相对应),还有一部分则是与服务器首次通信的密钥矩阵队列信息。服务端服务请求端与服务端的通信,类似于上面的加密通信过程(上面的安全通信都是基于通信双方已经初始了自己与服务端的通信信息表)。唯一有所不同的就是当一个对象需要安全通信时,如果它是第一次通信时,需要根据给自己分发的安全通信服务卡,初始化自己与服务器通信的信息表,然后就可以按照和普通通信端一样向服务器发送加密请求。服务器也会根据发送的请求,用与对应用户的密钥矩阵队列加密响应,并且定期更新服务端和通信端的密钥矩阵队列。

4、结语

为了防止通信过程中重要信息泄露。本文提出了可逆矩阵加密算法,并且对其密钥生成算法和应用模式进行了研究。为解决网络信息安全问题,提供了一种新的解决思路和方案。本文只对算法实现思路和关键过程进行了论述,并没有牵扯到各个模块的具体实现技术和方法,为了能使该方法得到较好的应用,读者可以根据本文的提供的思路,进一步对该算法的各个模块进行详细的研究和论证。

参考文献

[1]北京大学数学系几何与代数小组.高等代数(第三版)[M].北京:高等教育出版社,2003.

[2]程云鹏.矩阵论(第二版)[M].西安:西北工业大学出版社,2005.

[3]张友纯.计算机网络安全.武汉:华中科技大学出版社,2006.

[4]章照止.现代密码学基础.北京:北京邮电大学出版社,2004.

[5]DES密码体制及其应用探讨[期刊论文].中国科技博览,2008.

上一篇:AOS自适应算法与虚拟信道复用结合的性能仿真 下一篇:基于STM32的粮仓粮情监测仪系统设计①