可逆矩陣加密算法

為了防止通信過程中重要信息泄露,確保網(wǎng)絡(luò)信息傳輸?shù)陌踩?,我們根?jù)可逆矩陣的特性并結(jié)合加密算法原理,提出了一種新的可逆矩陣加密算法,并且根據(jù)可逆矩陣加密算法自身的加密特性,研究了其應(yīng)用模式。

一、可逆矩陣加密算法理論分析

1、加密算法的加密原理

信息發(fā)送端首先根據(jù)密鑰矩陣A的階數(shù)(||A||=n),將明文轉(zhuǎn)換為n維數(shù)向量X,然后將X與A相乘得到密文Y,既Y-AX,再將Y發(fā)送,信息端接受到Y(jié)后,則利用密鑰矩陣A-1(其中A與A-1互為可逆矩陣)與Y相乘,則會得到明文X,既:A-1Y=A-1AX=X。

例如:一個密鑰矩陣:

另一個密鑰矩陣:

信息發(fā)送端欲發(fā)送信息ABC。首先根據(jù)ASCII碼表將ABC轉(zhuǎn)為三維數(shù)向量:

則對應(yīng)的密文:

將密文接收端接收到密文Y時,利用解密密鑰矩陣A-1,根據(jù)公式求得:

然后利用ASCII碼表則可解析出發(fā)送信息為ABC。

2、加密算法安全性分析

在已知加密密鑰矩陣A的情況下,求得解密密鑰矩陣A-1理想算法的時間復(fù)雜度為13,其中n為A的階數(shù)。而在A未知的情況下,求得A—t的可能性為0。因為,每一個n階矩陣都有無數(shù)個可逆矩陣存在,而每一個可逆矩陣只有唯一的一個矩陣與它互為逆矩陣,從無數(shù)個可選矩陣中選取唯一的與加密矩陣對應(yīng)的解密矩陣的可能性為0,故在A未知的情況下,求得A-1的可能性為0。本文提出的C/S應(yīng)用模式,服務(wù)端具有無數(shù)個成對的密鑰矩陣,服務(wù)端可以定期的為需要安全服務(wù)的通信雙方各自隨機安全地提供一個密鑰矩陣隊列,這兩個密鑰矩陣隊列對應(yīng)位置的對應(yīng)的矩陣互為可逆矩陣。在每次通信時,信息發(fā)送端根據(jù)一定的規(guī)則從密鑰矩陣隊列中選擇一個密鑰矩陣A加密信息,而每次選擇都隨外界條件變化而變化,因此相當于從無數(shù)個密鑰矩陣中隨機選取一個密鑰矩陣加密信息,只有對應(yīng)的信息接收端利用反規(guī)則和對應(yīng)的密鑰矩陣隊列,才可以解密出發(fā)送的信息內(nèi)容。竊密者即使知道加密和解密規(guī)則,也會由于密鑰空間的無限而無法獲取解密密鑰矩陣A-1,從而也無法獲取密文信息。因此該加密算法是安全的。

3、加密算法的加密和解密復(fù)雜度分析

加密復(fù)雜度:在已知加密密鑰矩陣A(||A||=n)和數(shù)向量X的情況下,求得密文Y需要計算n*n乘法和n*n次加法。

解密復(fù)雜度:在已知解密矩陣A-1(||A-1||=n)和密文數(shù)向量Y的情況下,求得明文X也需要計算n*n乘法和n*n次加法。

根據(jù)上面的結(jié)論,我們可以知道矩陣的階數(shù)大小直接影響到算法的執(zhí)行效率,所以選擇階數(shù)適合的密鑰矩陣很重要。

二、可逆矩陣加密算法的密鑰生成

1、基本概念介紹

密鑰矩陣庫:密鑰矩陣存放的數(shù)據(jù)庫。能夠按照密鑰矩陣的階數(shù),對存放密鑰矩陣進行成對的存取。

隨機密鑰矩陣選擇器:用來隨機選取成對密鑰矩陣的算法??梢愿鶕?jù)用戶初始化參數(shù)n,在矩陣階數(shù)為n的密鑰矩陣庫里隨機的選取其中的一對密鑰矩陣。

初等可逆矩陣生成器:用來生成可逆矩陣的算法??梢愿鶕?jù)用戶的初始化參數(shù)n,隨機生成一個n階密鑰矩陣。

2、密鑰生成算法的流程

首先,隨機密鑰選擇器根據(jù)初始化參數(shù)[A,Aq,n](n=||A||)中n的值,從密鑰矩陣庫里隨機選取一個n階密鑰矩陣,如果選取失敗,就會觸發(fā)初等可逆矩陣生成器,使其生成—個n密鑰矩陣,并將其送人密鑰矩陣庫里。然后將隨機密鑰矩陣選擇器選取產(chǎn)生(或初等可逆矩陣生成器生成)的密鑰矩陣[p,p-1]和初始化參數(shù)[A,A-1]送入矩陣乘法器,接著就會產(chǎn)生B,B-1,n,最后初始化參數(shù)構(gòu)造器就會根據(jù)[B,Bq,n],構(gòu)造出兩個新的初始化參數(shù),這兩參數(shù)將會進行下一次的運算,如此反復(fù)循環(huán)直到結(jié)束。其主要流程如圖1所示:

三、可逆矩陣加密算法的工作模式

1、數(shù)據(jù)格式定義

在進行加密通信時,傳輸?shù)臄?shù)據(jù)包括時間和信息內(nèi)容。其中a代表信息發(fā)送的時間,b代表信息內(nèi)容。

2、通信信息表定義

在進行加密通信時,通信雙方為了生成實時動態(tài)的密鑰矩陣所維護的通信狀態(tài)表。其中D代表目的通信目的方,C代表通信次數(shù)計數(shù)器,Q代表密鑰矩陣隊列地址。

3、加密算法工作過程綜述

由于密鑰矩陣是無限的,需要較大的存儲容量,大部分通信設(shè)備的存儲容量有限,又考慮到密鑰的安全性維護、管理和密鑰矩陣分發(fā)工作。本算法采用C/S模式,減輕了用戶端的負擔。

用戶在需要進行安全通信時,首先與通信對方進行交互,取得對方同意后,向密鑰服務(wù)器提出密鑰申請,密鑰服務(wù)器將隨機產(chǎn)生—對密鑰矩陣隊列分別發(fā)給通信雙方(這對密鑰矩陣隊列對應(yīng)位置的密鑰矩陣對應(yīng)的矩陣互為可逆矩陣),通信雙方則利用自己的密鑰矩陣隊列進行通信。一定時間和次數(shù)之后,再向密鑰服務(wù)器申請,生成新密鑰隊列,直到通信結(jié)束。具體過程如下所示;

準備階段:

(1)A向B發(fā)送安全通信請求;

(2)B向A發(fā)送安全通信回應(yīng);

(3)如果B同意與A進行安全通信,則A通過密鑰服務(wù)器的密鑰服務(wù)接口向發(fā)出密鑰隊列請求信息;

(4)密鑰服務(wù)接口通過訪問密鑰矩陣庫,隨機生成一對一定大小的密鑰矩陣隊列,將其中一個密鑰矩陣隊列發(fā)送到A;

(5)將另一個密鑰矩陣隊列發(fā)送到B。

此時,A端和B端分別生成各自的通信信息表,D將賦值為對方的地址,C初始化為0,Q存放各自密鑰矩陣隊列的索引地址。具體過程如圖2所示。

4、數(shù)據(jù)加密

當通信A端有信息數(shù)據(jù)要發(fā)送時,則要進行數(shù)據(jù)加密。首先將通信信息表(信息D、C和Q)和數(shù)據(jù)格式表(時間a)送進密鑰矩陣選擇器,密鑰矩陣首先根據(jù)D和Q的信息確定密鑰矩陣隊列的地址,然后再根據(jù)C的信息,在密鑰矩陣隊列里隨機選取時間加密密鑰矩陣A,再根據(jù)發(fā)送時間a,隨機生成加密信息內(nèi)容的密鑰矩陣B,接著分別將(時間a和密鑰矩陣A)和(信息b和密鑰矩陣B)送入加密器,分別對時間信息a和傳輸信息bjj日密,生成密文Aa~IIBb,則完成加密過程。具體過程如圖3所示。

5、數(shù)據(jù)解密

數(shù)據(jù)解密是數(shù)據(jù)加密的一個反過程。首先,利用通信信息表的信息,通過密鑰矩陣選擇器選取出對應(yīng)于密鑰矩陣A的可逆矩陣A-1,然后利用Aq解密出信息的發(fā)送時間a,根據(jù)時間信息a,生成對應(yīng)于密鑰矩陣B的B-1,然后利用B-1解密出信息b。

6、密鑰傳榆安全維護方法

密鑰服務(wù)器首先從密鑰矩陣庫里隨機選擇—系列的成對的密鑰矩陣隊列,再將這一系列的密鑰矩陣隊列分成對應(yīng)的兩份。其中一份用于生成服務(wù)器端的通信信息表(其中D是服務(wù)端生成的客戶端的代碼),另—份生成與服務(wù)器通信信息表對應(yīng)的安全通信服務(wù)卡。安全通信卡類似于銀行卡,它包含三部分,一部份是服務(wù)器端的地址信息,另一部分是標示自己身份的信息(與服務(wù)器端的地址D相對應(yīng)),還有一部分則是與服務(wù)器首次通信的密鑰矩陣隊列信息。服務(wù)端服務(wù)請求端與服務(wù)端的通信,類似于上面的加密通信過程(上面的安全通信都是基于通信雙方已經(jīng)初始了自己與服務(wù)端的通信信息表)。唯一有所不同的就是當一個對象需要安全通信時,如果它是第一次通信時,需要根據(jù)給自己分發(fā)的安全通信服務(wù)卡,初始化自己與服務(wù)器通信的信息表,然后就可以按照和普通通信端一樣向服務(wù)器發(fā)送加密請求。服務(wù)器也會根據(jù)發(fā)送的請求,用與對應(yīng)用戶的密鑰矩陣隊列加密響應(yīng),并且定期更新服務(wù)端和通信端的密鑰矩陣隊列。

小知識之可逆矩陣

可逆矩陣是線性代數(shù)中的一個矩陣,其定義為在線性代數(shù)中,給定一個 n 階方陣A,若存在一n 階方陣B, 使得AB=BA=In(或AB=In、BA=In 任滿足一個),其中In 為n 階單位矩陣,則稱A 是可逆的,且B 是A 的逆陣,記作 A^(-1)。